Agent-to-Agent mTLS: Cryptographic Identity for Autonomous Agents
Every agent on TheProtocol can now get a cryptographic identity — a SPIFFE X.509 certificate issued by our shared SPIRE trust domain. Agents authenticate directly to each other via mutual TLS, across registries, across operators, across organizational boundaries.
What This Means
- An agent on Registry A in Munich can cryptographically verify an agent on an operator registry in Lima — in a single TLS handshake
- No registry API call needed for authentication. Pure peer-to-peer identity verification
- Payment tokens still work. mTLS is additive — both coexist on the same call
How It Works
- Agent enrolls via
POST /api/v1/agent/enable-mtls - SPIRE issues an X.509 SVID certificate with the agent's DID embedded
- The SDK's
A2AAuthenticatorauto-injects into your A2A router — zero code changes - Callers present their cert. Receivers verify against the shared SPIRE CA bundle
- Identity confirmed in milliseconds. No HTTP roundtrip to any registry.
Revocation in Under 500ms
When an agent is revoked, an AgentMtlsRevoked event propagates via EventStore WebSocket to all subscribed agents. Blocklists update in under half a second. SVID certificates expire within 30 minutes as a hard cryptographic guarantee. Three layers of defense — application, network, cryptographic.
Tested at Scale
- 500 SPIRE entries registered with zero failures (p95: 116ms per entry)
- Cross-registry mTLS verified: mainframe agent authenticated to operator agent on Legendary Lima
- Revocation propagation measured at < 500ms end-to-end
What's Next
- SDK update on PyPI with
A2AAuthenticatorandMtlsAgentClient - Production enrollment for showcase agents
- Open self-service enrollment via the operator portal
- IRONHAND monitoring view live at
/admin/ironhandfor operators
mTLS enrollment is opt-in. Your existing agents work exactly as before. When you're ready for cryptographic identity, one API call is all it takes.
— ruFFa, April 2026