[agent2agent] Re: Security-principal separation for agent communication protocols

Chris Hood <chris@nomotic.ai> Fri, 03 July 2026 13:55 UTC

Return-Path: <chris@nomotic.ai>
X-Original-To: agent2agent@mail2.ietf.org
Delivered-To: agent2agent@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 0E5D910DB66CB for <agent2agent@mail2.ietf.org>; Fri, 3 Jul 2026 06:55:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783086905; bh=5q5IEjmRLKCiSwFDuKyx+tTlOKWrpn6o6OPol66o5Uw=; h=Subject:In-Reply-To:From:To:Date; b=njzCCXDvgRoY10GV8x4wfmuzMg+40kf99PJok4092mVR6TFgfK/Sdq///muSrPEz9 bZIByNZc578Pvee68ZWdt7xST8xkzjYowcEnCtu3UU9DcU7cgKdS1Rg6g0uifcqmXE x1lyrLlDkSwGpF0VGU6Yb9VCd9D1X1F6ZaiUarz4=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=nomotic.ai
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8G6uW57TLKDv for <agent2agent@mail2.ietf.org>; Fri, 3 Jul 2026 06:55:02 -0700 (PDT)
Received: from siberian.tulip.relay.mailchannels.net (siberian.tulip.relay.mailchannels.net [23.83.218.246]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id EDDDB10DB66B8 for <agent2agent@ietf.org>; Fri, 3 Jul 2026 06:55:01 -0700 (PDT)
X-Sender-Id: hostingeremail|x-authuser|chris@nomotic.ai
Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 85BFD4C25BD; Fri, 03 Jul 2026 13:54:55 +0000 (UTC)
Received: from fr-int-smtpout12.hostinger.io (trex-green-2.trex.outbound.svc.cluster.local [100.99.151.5]) (Authenticated sender: hostingeremail) by relay.mailchannels.net (Postfix) with ESMTPA id AB1F04C09B9; Fri, 03 Jul 2026 13:54:54 +0000 (UTC)
X-Sender-Id: hostingeremail|x-authuser|chris@nomotic.ai
X-MC-Relay: Neutral
X-MailChannels-SenderId: hostingeremail|x-authuser|chris@nomotic.ai
X-MailChannels-Auth-Id: hostingeremail
X-Robust-Juvenile: 2cfc19490a4faf26_1783086895371_3818064957
X-MC-Loop-Signature: 1783086895371:3159882102
X-MC-Ingress-Time: 1783086895371
Received: from fr-int-smtpout12.hostinger.io (fr-int-smtpout12.hostinger.io [148.222.54.46]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.99.151.5 (trex/8.0.2); Fri, 03 Jul 2026 13:54:55 +0000
Received: from [192.168.0.68] (162-196-81-188.lightspeed.irvnca.sbcglobal.net [162.196.81.188]) (Authenticated sender: chris@nomotic.ai) by smtp.hostinger.com (smtp.hostinger.com) with ESMTPSA id 4gsFcX6L6rz1y38; Fri, 3 Jul 2026 13:54:52 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nomotic.ai; s=hostingermail-a; t=1783086893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=5q5IEjmRLKCiSwFDuKyx+tTlOKWrpn6o6OPol66o5Uw=; b=Kthy+ZHTlHaYm/zDeq7djUFmdLPY1YW2OdwR2c0a0NtcifiumodTcXOYGj7+dLuPTmnq4+ Ur3JDAz2anRy723JOeASjJSHLuCAwQPu+Q2be9sIc8QC82Fslpmvif8wGR0OgiQxjpZmMl N1hdrYAp52bcsnlMG4u2TuQ2yMGlWQcm/8ASy9aoiw9oW+4PKImOhIkrk0iLZmJaAEvvax UugqXNQcy/wVjUVg1JV1jWcUsvX6XEUs172JsoXvuUq2zFEUz3otS/EyOKN9f6HiMtI84e MWuuXLUivjb6y4tDVnMhV+KYoc9eZxeS4+wG9li+4A7o6sdXmdg8u8CNSyus9Q==
SavedFromEmail: chris@nomotic.ai
In-Reply-To: <CAK08nYa6jxOdG-N008-wHvfLdj7b50=SZjibT0W6KPobQJbcvA@mail.gmail.com>
Importance: normal
From: Chris Hood <chris@nomotic.ai>
To: Songbo Bu <bluedognull@gmail.com>, agent2agent@ietf.org
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="--_com.samsung.android.email_29889057780250"
Message-Id: <4gsFcX6L6rz1y38@fr-int-smtpout12.hostinger.io>
Date: Fri, 03 Jul 2026 13:54:52 +0000
X-CM-Analysis: v=2.4 cv=UN2PHzfy c=1 sm=1 tr=0 ts=6a47bf2d a=0Jc/PamxAqIYG3i5sr16IA==:117 a=0Jc/PamxAqIYG3i5sr16IA==:17 a=pGLkceISAAAA:8 a=48vgC7mUAAAA:8 a=bO_ZKhtVIoa5LwZkKz8A:9 a=QEXdDO2ut3YA:10 a=-UD7uMa8RFq1mH3A:21 a=_W_S_7VecoQA:10
X-CM-Envelope: MS4xfA9wJPeuHPa4VGqpAcOqc5ErXXoiKjVANnd25iUSNJSK4UqQiTgahd8BRnrDrasIzV4ISTI7gd+h7IzBqbeN6DkaBOPq8gN7t2APpoXN+FFHbFV2gnGF fd5Q19pqjvamEdl8izRr1L2VimeGhmsF6+uJREOoRVGXR6QeP3OC0kYWkQHypigKXmbFfLrzSblmSREjRTtkLiajXz1wr4ZrPtqPldxf5Kz7iEzlTWCSEVcE
X-AuthUser: chris@nomotic.ai
Message-ID-Hash: CU3VVMFZONYD37UQNWSPO5BPEHN7Z43B
X-Message-ID-Hash: CU3VVMFZONYD37UQNWSPO5BPEHN7Z43B
X-MailFrom: chris@nomotic.ai
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [agent2agent] Re: Security-principal separation for agent communication protocols
List-Id: Standardization of AI Agent Communications <agent2agent.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/agent2agent/zFyH0_fDNt6o32ybPxdhKCl0vok>
List-Archive: <https://mailarchive.ietf.org/arch/browse/agent2agent>
List-Help: <mailto:agent2agent-request@ietf.org?subject=help>
List-Owner: <mailto:agent2agent-owner@ietf.org>
List-Post: <mailto:agent2agent@ietf.org>
List-Subscribe: <mailto:agent2agent-join@ietf.org>
List-Unsubscribe: <mailto:agent2agent-leave@ietf.org>

Songbook,As a side note, and for reference, The Agent Transfer Protocol, AGTP covers the items you outlined.1. User/organizational authority. AGTP has Owner-ID. This is the accountable principal — the human or organization on whose behalf the agent acts. Directly addresses this. AGTP-LEI extends this into institutional identity through GLEIF. 2. Agent instance identity. AGTP has Agent-ID derived from the Agent Genesis. AGTP-CERT binds the identity to X.509 credentials for TLS mutual authentication. AGTP-IDENTIFIERS extends this into a hash chain. 3. Tool/external-resource identity. This is where AGTP's story gets interesting. AGTP composition profiles cover MCP tool invocations, external IdP credentials, and HTTP gateway translation. Each carries the target resource identity but through the composition layer rather than as an AGTP primitive. Partial coverage — the tool identity is present but is expressed at the composition layer rather than as a first-class AGTP primitive.4. Delegation state. AGTP has Delegation-Chain header carrying the chain of who delegated what to whom. The DELEGATE method invocation produces attribution records for each delegation event. Authority-Scope narrows on delegation. 5. Session state. AGTP has Session-ID and Task-ID. The AGTP-Session companion draft (v00) covers session semantics for bounded and persistent sessions. 6. Action evidence. AGTP-IDENTIFIERS defines the identifier chain with Audit-ID producing a per-agent hash chain from every action back to Agent Genesis. AGTP-LOG aligns with RFC 9162 (Certificate Transparency 2.0) and RFC 9943 (SCITT) for interoperable audit receipts. So, from at least one protocol position, security and governamce has been substantially looked at and is included in the draft. Chris Hood
-------- Original message --------From: Songbo Bu <bluedognull@gmail.com> Date: 7/2/26  12:49 AM  (GMT-08:00) To: agent2agent@ietf.org Subject: [agent2agent] Security-principal separation for agent communication protocols Hi all,
One useful early contribution to AGENTPROTO may be a security-principal separation for agent sessions and delegation.
In agent communication protocols, user authority, agent instance identity, tool identity, gateway identity, delegated scope, session continuity, and audit evidence are easy to conflate. If those claims are not separated early, protocol text can accidentally allow a token, session, or tool call to imply more authority than it actually carries.
The distinction I would suggest is:

user or organizational authority: who authorized the task or policy;
agent instance identity: which agent/runtime is acting in the current session;
tool or external-resource identity: what the agent is invoking;
delegation state: what authority has been delegated, by whom, and under what scope;
session state: what is bound to the current long-lived communication channel;
action evidence: what can later be verified about what the agent actually did.

From this, the requirements surface would include token attenuation, session binding, replay/freshness, tool/agent confusion prevention, revocation continuity, and auditable failure behavior for denied or blocked actions.
I am outlining a short individual note under the working title “Security Requirements for Agent Session and Delegation Binding”. I would appreciate feedback on whether this is most useful as charter input, requirements text, security-considerations text, or a separate individual draft.
Best,
Songbo