diff --git a/src/pages/learn/agent-conversation-integrity-and-protocol-level-trust.astro b/src/pages/learn/agent-conversation-integrity-and-protocol-level-trust.astro new file mode 100644 index 00000000..534c8c50 --- /dev/null +++ b/src/pages/learn/agent-conversation-integrity-and-protocol-level-trust.astro @@ -0,0 +1,112 @@ +--- +import BlogLayout from '../../layouts/BlogLayout.astro'; + +const bodyContent = `
When one AI agent sends a message to another, two questions decide whether that conversation is trustworthy: did the message arrive exactly as sent, and is the sender actually who it claims to be? These are the two halves of agent conversation integrity and protocol-level trust — and neither can be bolted on at the application layer. They are properties of the transport and the trust model underneath it. This post breaks down what each half requires, why common setups leave them as an afterthought, and how a protocol designed for agents from the start handles both.
+ +Integrity in a conversation means the receiving agent can verify four things about every message:
+ +These properties matter more for autonomous agents than for human traffic. A human notices when a response looks wrong. An agent acting on a tampered instruction may not — it just executes. A replayed command can double-execute a destructive action. When agents operate unattended across clouds, integrity failures compound silently.
+ +The natural instinct is to add integrity checks inside the application protocol: sign the payload, add a nonce, validate the sender field. That works for the message body, but it leaves the transport assumptions untouched.
+ +Consider the most common agent setup today: an HTTP endpoint behind TLS, reached by webhook or API call. TLS gives you confidentiality and integrity on the wire — but only between the caller and whatever public endpoint the request reaches. That endpoint must be reachable by IP or DNS name, which means either a public address, a port-forward, or a tunnel to some intermediary. Every hop the message crosses before it reaches the agent is a place where the integrity guarantee ends and trust is delegated to whoever operates that hop. Application-layer signatures authenticate the content, but nothing binds that content to the agent that sent it — unless the transport itself is authenticated end to end.
+ +There is also the NAT problem. Agents inside private networks have no stable inbound address, so a webhook-driven design cannot reach them at all without an always-on intermediary that holds the connection open. Replays, spoofed senders, and stale endpoints are not edge cases here; they are the default failure modes of a request-response architecture that was designed for human users, not agent fleets.
+ +Integrity tells you a message was not altered. Trust tells you the sender is who it says it is — and that you want to talk to it in the first place. At the protocol level, trust is a connection-time decision, not a message-time decoration.
+ +The classic model conflates membership with trust. Join the network (a VPN, a shared broker) and you are trusted by everyone on it. That is convenient and dangerous: one compromised member is trusted by all. Agent-to-agent systems need the opposite property — membership and trust are decoupled. Being on the network does not make you trusted; trust is granted explicitly, per peer, in both directions.
+ +Pilot Protocol implements this as a mutual handshake. Agent A initiates a handshake with Agent B, stating who it is and why it wants to connect. Agent B approves. Only then does an encrypted tunnel exist between them. Until then, the agents are invisible to each other — presence on the network does not imply reachability. Revocation works the same way: pilotctl untrust removes a peer from the local trust store and tears down the active tunnel immediately. No central directory to update, no token blocklist to propagate.
Pilot Protocol was built so that conversation integrity and trust are properties of the protocol, not of whatever application happens to be running over it. Three mechanisms do the work.
+ +Agent-to-agent traffic runs over encrypted UDP tunnels using X25519 key exchange with AES-GCM. AES-GCM is an authenticated encryption mode: it provides confidentiality and integrity in one operation. Every message carries a tag that fails verification if a single bit was altered in transit, and the receiving agent drops unauthenticated messages outright. An observer on the wire sees encrypted payloads and virtual addresses — not credentials, not plaintext instructions, not replayable tokens.
+ +Every agent generates its own key pair; its identity is its public key. Handshake messages are signed and verified against the registered key, so the trust decision and the integrity check use the same cryptographic root. There is no shared secret to leak, no token to replay, and no certificate authority to keep online. Each message carries source and destination virtual addresses, so a conversation is bound to a specific pair of agents — the binding property from earlier is structural, not advisory.
+ +Integrity does not stop at messages — it extends to the tools agents run. Pilot's app store ships installable capability apps whose manifests pin sha256 hashes with Ed25519 signatures, re-checked every time the daemon spawns an app. An app that has been tampered with since installation fails verification and does not run. Permissions are grant-scoped, accepted at install time, so an app holds no ambient authority. The same trust discipline that governs who you talk to governs what you execute.
+ +Put it together for a concrete scenario: an agent in a private cloud network needs to talk to an agent behind a residential NAT. No public endpoints, no port-forwards, no webhook relay.
+ +# on agent A: initiate
+pilotctl handshake <agent-b> "coordinating the deployment run"
+
+# on agent B: approve
+pilotctl approve <node-id>
+
+# agent A: verify the relationship is live
+pilotctl trust
+
+From that point, the two agents exchange messages over an encrypted tunnel — established via STUN and hole-punching, with relay fallback when direct connection is impossible. Every message is authenticated and integrity-checked by the transport. If the relationship sours, pilotctl untrust ends it on the spot, and the peer cannot reconnect without a new handshake.
None of this makes TLS, VPNs, or MCP obsolete. They solve adjacent problems well:
+ +These are complementary layers. Pilot Protocol's contribution is the layer they all assume but rarely get: a transport with integrity baked in and a trust model that treats every peer as untrusted until proven otherwise.
+ +Agent conversation integrity is the property that every message between agents arrives exactly as sent — unmodified, from the claimed sender, and not a replay. In Pilot Protocol it is guaranteed at the transport layer by authenticated encryption (AES-GCM), so applications running over the tunnel inherit it without adding their own checks.
+ +Application-level auth happens inside messages — a token, a signature, a header. Protocol-level trust decides who may open a connection at all. Pilot Protocol separates the two: a mutual handshake governs whether a tunnel exists, while application protocols over that tunnel can use their own authentication as needed.
+ +Yes. Pilot Protocol establishes encrypted tunnels through NAT using STUN and hole-punching, with relay fallback when direct connection fails. The tunnel — and its integrity guarantees — is end to end between the two agents, not to an intermediary.
+ +Authenticated encryption binds each message to the specific encrypted session and key between the two agents, so a message captured from one conversation cannot be replayed into another. The handshake itself is signed and verified against each agent's registered public key before any tunnel exists.
+ +Get started with one command:
+ +curl -fsSL https://pilotprotocol.network/install.sh | sh
+
+Learn more about Pilot Protocol's trust model and handshake, the core concepts behind addressing and transport, or dig into the X25519 key exchange that secures every tunnel. For how identity differs from traditional tokens, see how network agent tokens differ.
`; +--- +Every AI agent on a network needs a way to prove who it
No. Pilot Protocol uses Ed25519 signatures for identity verification. There is no certificate authority, no chain of trust to maintain, and no CA to keep online. Trust is established peer-to-peer through the handshake protocol — the registry relays signed messages but does not act as a CA.
-Learn more about Pilot Protocol's trust model and handshake mechanism. For a deeper technical comparison, see the core concepts documentation covering addressing, encryption, and transport.
`; +Learn more about Pilot Protocol's trust model and handshake mechanism. For a deeper technical comparison, see the core concepts documentation covering addressing, encryption, and transport. For how identity and trust hold up across a full agent conversation, see agent conversation integrity and protocol-level trust.
`; ---For the full implementation details — including wire format, nonce management, and Go standard library code — see the X25519 + AES-GCM implementation guide. For how encryption integrates with trust and identity, see secure AI agent communication with zero trust.
+For the full implementation details — including wire format, nonce management, and Go standard library code — see the X25519 + AES-GCM implementation guide. For how encryption integrates with trust and identity, see secure AI agent communication with zero trust. And for how that integrity holds up across a full agent conversation, see agent conversation integrity and protocol-level trust.