Agent双向认证与零信任
原创 pandazhengzheng 2026-11-14 22:00 广东

目录
引言:多 Agent 信任问题
威胁模型
Agent 身份与证书体系
双向认证与 mTLS
持续验证机制
零信任策略引擎
Agent 服务网格
跨信任域联邦
评估框架
前沿挑战
参考文献
1. 引言:多 Agent 信任问题
多 Agent 系统中 Agent 间通信面临多重威胁:
威胁 | 描述 | 后果 |
|---|---|---|
冒充 | 攻击者伪造 Agent 身份 | 未授权访问 |
中间人 | 窃听/篡改 Agent 间通信 | 数据泄露/注入 |
被攻陷 Agent | 持有合法证书但行为恶意 | 内部攻击 |
证书滥用 | 复制/重放合法证书 | 身份盗用 |
信任传递 | 通过信任链过度获取权限 | 权限蔓延 |
零信任原则:永不信任,始终验证——每次 Agent 间请求都经过身份、上下文、行为风险评估。
2. 威胁模型
攻击者能力:
网络位置:可观察、拦截、注入 Agent 间通信
身份:可能持有部分合法证书(被攻陷 Agent)
计算:多项式时间
限制:无法破解密码学原语,无法攻破硬件信任根
安全目标:
认证性:通信双方确认为声称的 Agent
机密性:通信内容仅双方可知
完整性:通信内容未被篡改
新鲜性:无重放攻击
授权性:每次请求经权限检查
持续验证:通信过程中持续验证身份与完整性
3. Agent 身份与证书体系
3.1 基于硬件信任根的身份
信任根:TPM 2.0 / AMD SEV-SNP / Intel TDX 提供硬件级密钥保护。
Agent 身份生成:
1. 硬件信任根生成 Agent 专用密钥对 (pk_agent, sk_agent)
sk_agent 存储于 TPM 内,永不导出
2. CA 签发 Agent 身份证书:
Cert_agent = Sign_CA(pk_agent, {agent_id, capabilities, expiry, issuer})
3. Agent 持有 Cert_agent,私钥永不离开 TPM证书内容:
{
"agent_id": "agent-uuid-xxx",
"public_key": "Ed25519:...",
"creator": "org-yyy",
"capabilities": ["read:db1", "write:queue1", "call:api_zzz"],
"trust_level": "verified",
"issued_at": "2026-09-10T00:00:00Z",
"expires_at": "2026-09-10T01:00:00Z",
"attestation": {
"tpm_quote": "...",
"measurement": "SHA256:..."
}
}3.2 远程证明
远程证明:Agent 向对方证明其运行在可信执行环境(TEE)中,且代码度量值符合预期。
协议:
Agent A → Agent B:
1. A 生成 nonce_A
2. TPM_A 生成 quote = Quote(nonce_A, measurement_A)
3. A 发送 (Cert_A, quote, nonce_A) → B
Agent B 验证:
4. B 验证 Cert_A 的 CA 签名
5. B 验证 quote 的 TPM 签名
6. B 检查 measurement_A ∈ ExpectedMeasurements
7. B 生成 nonce_B, 发送 (Cert_B, quote_B, nonce_B) → A
8. 双方派生会话密钥 = KDF(nonce_A, nonce_B, ...)3.3 证书生命周期
阶段 | 操作 | 安全要求 |
|---|---|---|
签发 | CA 签发证书 | 身份验证、能力审核 |
分发 | Agent 获取证书 | 安全通道、私钥不出 TEE |
使用 | 出示证书认证 | 每次通信出示 |
轮换 | 定期更新证书 | 自动轮换、零停机 |
吊销 | 撤销被攻陷证书 | 及时传播、OCSP/CRL |
归档 | 保留审计记录 | 防篡改存储 |
短期证书:证书有效期 < 1 小时,减少吊销需求(过期即失效)。
4. 双向认证与 mTLS
4.1 mTLS 通信
Agent 间 mTLS 握手:
Agent A Agent B
| |
| ---- ClientHello(Cert_A) ----> |
| |
| <--- ServerHello(Cert_B) ---- |
| |
| <--- CertificateRequest ----- |
| |
| ---- Certificate(Cert_A) ---> |
| |
| ---- Finished(verify) -------> |
| |
| <--- Finished(verify) ------- |
| |
| <== Secure Channel (mTLS) ==> |证书钉扎:Agent 预配置信任的 CA/证书指纹,防止 CA 被攻陷后的中间人攻击。
4.2 会话安全
本文转载自微信公众号「安全分析与研究」,查看原文。版权归原作者所有,如有侵权请联系删除。