从零信任视角重构 AI Agent 凭证管理——Keygate 的架构设计与实现
问题背景
Snyk 2025 报告披露,2025 年上半年 GitHub 上泄露了 2865 万个硬编码凭证,同比增长 34%。TechRadar 的数据进一步指出,AI 辅助代码提交使密钥泄露率翻倍。OWASP 2025 MCP Top 10 将 Token 管理列为 AI Agent 安全首要风险。Wiz Research 的扫描结果显示 65% 的顶级 AI 公司存在密钥泄露。
这些数据背后是一个架构层面的核心矛盾:AI Agent 需要凭证才能工作,但凭证一旦暴露给 AI,它们不再安全。
传统方案的根本缺陷在于——它们把"授权"和"暴露"绑定在了一起:
| 方案 | AI 可见内容 | 凭证存储 | 泄露面 |
|---|---|---|---|
| 写入 prompt | 明文 Key | LLM 上下文(云端持久化) | 极高 |
| .env 文件 | 不可见 | 磁盘(git push 风险) | 中 |
| 直接注入代码 | 真实凭证 | 源码仓库 | 极高 |
本文分析 Keygate 如何通过 alias 隔离 + 本地代理 + MCP 协议集成 来解耦授权与暴露,实现零信任凭证管理。
核心架构
Keygate 的架构可以概括为三层:
┌─────────────────────────────────────────────────┐
│ AI Agent Layer │
│ (Claude Code / Cursor / 自定义 Agent) │
│ 只持有 alias: pm-deepseek │
└──────────────────┬──────────────────────────────┘
│ MCP 协议查询
▼
┌─────────────────────────────────────────────────┐
│ Keygate Gateway │
│ │
│ ┌──────────┐ ┌───────────┐ ┌──────────────┐ │
│ │ MCP Server│ │ Alias Map │ │ Proxy Engine │ │
│ │ 凭证发现 │ │ 别名映射 │ │ alias→凭证 │ │
│ └──────────┘ └───────────┘ └──────────────┘ │
│ │
│ ┌──────────┐ ┌───────────┐ ┌──────────────┐ │
│ │ 加密存储 │ │ 审计日志 │ │ 插件系统 │ │
│ │AES-256 │ │ 全量记录 │ │ HMAC/自定义 │ │
│ │OS Keychain│ │ │ │ │ │
│ └──────────┘ └───────────┘ └──────────────┘ │
└──────────────────┬──────────────────────────────┘
│ alias 替换为真实凭证后转发
▼
┌─────────────────────────────────────────────────┐
│ Upstream API Providers │
│ DeepSeek / 智谱GLM / 通义千问 / OpenAI / ... │
└─────────────────────────────────────────────────┘
关键设计决策
1. Alias 隔离——为什么不直接用 token vault?
传统的 vault 方案(HashiCorp Vault 等)解决的是存储安全,但没有解决运行时暴露问题。AI Agent 仍然需要读取真实凭证来构造 API 请求,这个读取动作本身就构成了泄露风险。
Keygate 的 alias 机制在授权层做了根本性的隔离:AI Agent 永远不持有、不接触真实凭证。它只拿到一个无意义的字符串(如 pm-deepseek),然后通过本地代理发起请求。代理层在进程内存中完成 alias 到真实凭证的替换,凭证的生命周期完全限定在 Keygate 进程内。
// alias 映射的简化逻辑
// AI Agent 发起请求时,只携带 alias
// Keygate 在 proxy 层完成替换
func (p *Proxy) handleRequest(req *http.Request) {
alias := req.Header.Get("Authorization")
// alias = "pm-deepseek"
credential, err := p.store.Resolve(alias)
// credential = "sk-real-api-key-xxxxx"
req.Header.Set("Authorization", "Bearer " + credential)
p.forwardToUpstream(req)
}
2. MCP 协议集成——自动发现而非手动配置
MCP(Model Context Protocol)是 Anthropic 维护的 AI Agent 与外部工具通信的标准协议。Keygate 实现了一个 MCP Server,AI Agent 启动时自动发现可用凭证:
AI Agent 启动
→ MCP 协议发现 Keygate
→ Keygate 返回可用 alias 列表
→ AI Agent 按需使用 alias 构造请求
这意味着开发者不需要手动配置 AI Agent 的凭证,也不需要把 API Key 复制粘贴到任何地方。整个流程从"人传递凭证"变成了"协议自动发现"。
3. 加密存储——AES-256-GCM + OS Keychain
凭证在磁盘上以 AES-256-GCM 加密存储,主密钥由 OS Keychain(macOS Keychain / Linux Secret Service / Windows Credential Manager)托管。这种设计避免了主密钥硬编码或环境变量泄露的问题。
# 添加凭证的命令行操作
kg add deepseek.com -n "My DeepSeek" -p "sk-your-real-key"
# 凭证加密后存入 OS Keychain,返回 alias: pm-deepseek
实战场景
场景一:多 Agent 共享凭证 + 密钥轮转
五个人的产品团队,共享一套 API 账户。传统方案下,Key 轮转意味着每个人都要更新配置。用 Keygate:
Keygate 凭证中心
├── pm-deepseek-dev → DeepSeek 开发环境 key
├── pm-deepseek-prod → DeepSeek 生产环境 key
├── pm-zhipu → 智谱 GLM key
├── pm-qwen → 通义千问 key
└── pm-kimi → Kimi key
密钥轮转时,只需在 Keygate 中执行一次 kg rotate pm-deepseek-prod,所有 Agent 立即生效。每个人的 Agent 从头到尾只认识 alias,凭证变更对它们透明。
场景二:自定义插件——HMAC 签名
某些企业内部 API 不使用 Bearer Token,而是用 HMAC 签名认证。Keygate 的插件系统支持自定义认证逻辑:
# 注册自定义插件
kg plugin add hmac-signer \
--script ./plugins/hmac.sh \
--match "*.internal-api.com"
请求经过 Keygate 代理时,自动触发 HMAC 签名插件,在请求头中注入签名。AI Agent 无需了解签名逻辑,甚至不知道后端用的是 HMAC 认证。
Provider Presets
Keygate 内置了 9 个主流 AI Provider 的一键配置:
| Provider | alias 示例 | 用途 |
|---|---|---|
| DeepSeek | pm-deepseek | 代码生成 |
| 智谱 GLM | pm-zhipu | 文案/对话 |
| 通义千问 | pm-qwen | 中文理解 |
| Kimi | pm-kimi | 长文本 |
| 豆包 | pm-doubao | 多模态 |
| MiniMax | pm-minimax | 语音 |
| 阶跃星辰 | pm-stepfun | 推理 |
| OpenAI | pm-openai | 通用 |
| 自定义 | pm-* | 任意 API |
审计与合规
每次 API 调用都会记录完整的审计日志:
kg audit logs
# 输出:
# 2025-04-04 10:23:15 | alias=pm-deepseek | agent=claude-code | status=200 | latency=342ms
# 2025-04-04 10:23:18 | alias=pm-zhipu | agent=cursor | status=200 | latency=156ms
日志包含调用方(agent)、使用的 alias、响应状态、延迟等信息,不包含真实凭证。这在企业合规场景中是硬需求。
快速开始
# 安装
curl -fsSL https://raw.githubusercontent.com/cm8421/keygate/main/scripts/install.sh | bash
# 添加凭证
kg add deepseek.com -n "My DeepSeek" -p "sk-your-key"
# AI Agent 自动通过 MCP 发现凭证,无需额外配置
GitHub 仓库:https://github.com/cm8421/keygate
总结
Keygate 的核心价值不在于"更安全的存储",而在于从根本上消除了 AI Agent 接触真实凭证的可能性。通过 alias 隔离 + 本地代理 + MCP 自动发现,它实现了一个真正的零信任凭证架构:
- AI 只拿 alias,凭证永远不出 Keygate 进程
- 密钥轮转一次操作,全局生效
- 环境隔离(dev/test/prod)天然防误操作
- 审计日志满足合规要求
- 插件系统覆盖非标认证场景
如果你的团队正在使用 AI Agent,凭证管理不再是"以后再说"的问题——OWASP 已经把它列为首要风险了。
浙公网安备 33010602011771号