A2A Says Signing Is Optional. That's the Problem.
Helps identify gaps in Agent Card signing that allow impersonation, identity spoofing, and unverifiable capability claims in agent-to-agent trust handshakes.
Problem
The A2A Protocol specifies Agent Cards as the primary mechanism for agent identity and capability advertisement. An Agent Card tells other agents: who you are, what you can do, and what trust level you claim. But the A2A spec makes signing optional — "recommended but not required." In an ecosystem where 15-18% of published skills are already confirmed malicious, optional signing means any agent can present any identity and any capability claim with zero verifiable proof. The trust handshake that underpins all A2A interactions is built on a foundation that most implementations don't verify.
What This Checks
This auditor examines Agent Card signing practices across five dimensions:
- 1. Signature presence — Does the Agent Card include a signature field? Many implementations omit it entirely, relying on the marketplace's account verification as a trust proxy. That's a single point of failure — marketplace accounts can be compromised or impersonated
- Signing scheme strength — If a signature is present, which algorithm was used? RSA-1024 and ECDSA with weak curves are no longer adequate for high-stakes agent interactions. Checks against current recommendations (Ed25519, RSA-2048+ with PSS padding)
- Key transparency — Is the signing key published in a verifiable key transparency log or JWKS endpoint? A signature is only as trustworthy as the process by which you obtained the public key to verify it
- Revocation mechanism — Does the signing infrastructure include a revocation path? Signing keys get compromised. An Agent Card signed with a compromised key looks identical to a legitimately-signed one without revocation checking
- Rotation audit trail — Has the signing key changed? When? With what announcement? Key rotation events that coincide with capability changes or that happen without public announcement are higher-risk than routine scheduled rotations
How to Use
Input: Provide one of:
- - An Agent Card JSON object to audit directly
- An agent endpoint URL to fetch and audit the Agent Card
- A set of Agent Card snapshots to compare for rotation events
Output: A signing audit report containing:
- - Signature presence and scheme assessment
- Key transparency verification result
- Revocation mechanism check
- Rotation history (if available)
- Risk rating: STRONG / ADEQUATE / WEAK / UNSIGNED
- Specific recommendations for remediation
Example
Input: Audit Agent Card for INLINECODE0
CODEBLOCK0
Related Tools
- - publisher-identity-verifier — Audits publisher identity at the marketplace level; signing auditor checks the A2A protocol layer
- trust-decay-monitor — Tracks trust freshness over time; signing provides the baseline trust claim that decays
- protocol-doc-auditor — Checks documentation trust signals; Agent Card signing is the machine-readable equivalent
- attestation-chain-auditor — Validates the full trust chain from signing key to capability claim
Limitations
This auditor evaluates signing practices based on publicly observable Agent Card metadata. It cannot assess the security of key storage practices on the agent's host system, verify that the private key holder is actually the claimed agent, or detect signing key compromise that has not yet been publicly disclosed. A well-formed signed Agent Card with strong cryptography can still represent a compromised or malicious agent — signing establishes identity, not trustworthiness. Use in combination with behavioral analysis tools for comprehensive trust assessment.
A2A称签名为可选。这就是问题所在。
帮助识别Agent Card签名中的漏洞,这些漏洞可能导致代理间信任握手中的身份冒充、身份欺骗和不可验证的能力声明。
问题
A2A协议将Agent Card指定为代理身份和能力声明的主要机制。Agent Card告诉其他代理:你是谁、你能做什么、以及你声称的信任级别。但A2A规范将签名设为可选——推荐但不强制。在一个已有15-18%已发布技能被确认为恶意的生态系统中,可选的签名意味着任何代理都可以提出任何身份和任何能力声明,而无需任何可验证的证明。支撑所有A2A交互的信任握手建立在一个大多数实现都不验证的基础上。
检查内容
本审计工具从五个维度检查Agent Card签名实践:
- 1. 签名存在性 — Agent Card是否包含签名字段?许多实现完全省略了它,依赖市场账户验证作为信任代理。这是一个单点故障——市场账户可能被入侵或冒充
- 签名方案强度 — 如果存在签名,使用了哪种算法?RSA-1024和弱曲线ECDSA已不足以应对高风险的代理交互。对照当前推荐(Ed25519、RSA-2048+配合PSS填充)进行检查
- 密钥透明度 — 签名密钥是否发布在可验证的密钥透明度日志或JWKS端点中?签名的可信度取决于你获取公钥以验证它的过程
- 撤销机制 — 签名基础设施是否包含撤销路径?签名密钥会被泄露。没有撤销检查的情况下,使用泄露密钥签名的Agent Card与合法签名的看起来完全相同
- 轮换审计轨迹 — 签名密钥是否已更改?何时更改?有何公告?与能力变更同时发生或未公开宣布的密钥轮换事件,风险高于常规计划轮换
使用方法
输入:提供以下之一:
- - 直接审计的Agent Card JSON对象
- 获取并审计Agent Card的代理端点URL
- 用于比较轮换事件的一组Agent Card快照
输出:包含以下内容的签名审计报告:
- - 签名存在性和方案评估
- 密钥透明度验证结果
- 撤销机制检查
- 轮换历史(如有)
- 风险评级:强 / 足够 / 弱 / 未签名
- 具体修复建议
示例
输入:审计data-processing-agent.example的Agent Card
🪪 AGENT CARD 签名审计
代理:data-processing-agent.example
卡片版本:2.1.0
审计时间戳:2025-03-15T10:30:00Z
签名存在性:⚠️ 缺失
Agent Card不包含签名字段
身份声明无法验证——完全依赖市场账户信任
风险:任何代理都可以在未被发现的情况下声称此身份或能力
签名方案:不适用(未签名)
密钥透明度:✗ 未配置
Agent Card中未引用JWKS端点
未找到密钥透明度日志条目
撤销机制:✗ 无
未指定撤销端点
未配置CRL或OCSP等效机制
轮换历史:不适用
风险评级:未签名
此Agent Card的身份和能力声明无法通过密码学验证。
在信任敏感的交互中,将所有能力声明视为未经验证的断言。
建议操作:
1. 为Agent Card实现Ed25519签名并配置JWKS端点
2. 在公钥透明度日志中注册签名密钥
3. 在Agent Card元数据中添加撤销端点
4. 建立包含公开公告流程的轮换策略
相关工具
- - publisher-identity-verifier — 在市场层面审计发布者身份;签名审计检查A2A协议层
- trust-decay-monitor — 跟踪信任随时间的新鲜度;签名提供随时间衰减的基线信任声明
- protocol-doc-auditor — 检查文档信任信号;Agent Card签名是机器可读的等效机制
- attestation-chain-auditor — 验证从签名密钥到能力声明的完整信任链
局限性
本审计工具基于公开可观察的Agent Card元数据评估签名实践。它无法评估代理主机系统上密钥存储实践的安全性,无法验证私钥持有者是否确实是声称的代理,也无法检测尚未公开披露的签名密钥泄露。一个格式良好、使用强密码学签名的Agent Card仍然可能代表一个被入侵或恶意的代理——签名确立的是身份,而非可信度。请与行为分析工具结合使用,进行全面的信任评估。