| Internet-Draft | Audit Record Limits | October 2026 |
| Zhang | Expires 30 April 2027 | [Page] |
Agent audit records are signed, chained, counter-signed, timestamped, and registered with transparency services. Each mechanism establishes a narrower fact than it is often taken to establish. This document states, for any record format, protocol, or payment method, what a check of an agent audit record can and cannot establish about four properties: the independence of the entities that signed or observed it, the completeness of a set of records, the time at which a record or an action existed, and the result that a verifier reports. It defines independence by control rather than by key or process separation, separates the independence of a signer from the independence of an observation, states which commitments cannot support a report that a set of records is complete, and requires a verifier to report unauthenticated content as unauthenticated. It defines no record format, role, log, or service.¶
This note is to be removed before publishing as an RFC.¶
Comments on this document are welcome by email to the author. The proposed AUDIT working group charter is discussed on the audit@ietf.org mailing list, archived at https://mailarchive.ietf.org/arch/browse/audit/.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 30 April 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Software agents act for users and organizations across administrative domains. They call tools, delegate tasks to other agents, read and share data, and make payments. The proposed AUDIT working group charter [AUDIT-CHARTER] says that audit information "must be verifiable by a party that trusts neither the agent nor its operator". Discussion of that text on the AUDIT list [MSG-STEELE] [MSG-WONG-1] [MSG-SAHU] [MSG-KROEHL-1] [MSG-WONG-2], and an issue on the architecture draft [ARCH-ISSUE-32], asked one question in several forms: for each verification mechanism, what does a successful check establish, under what assumptions, and would an omitted record be detectable, and by whom?¶
Several individual drafts define formats for agent audit records [I-D.sharif-agent-audit-trail] [I-D.gilda-audit-agent-audit-record] [I-D.bradleyb-audit-decision-records] [I-D.sparysh-pala-audit], and an architecture draft describes the roles that produce, store, and audit them [I-D.kuehlewind-audit-architecture]. Others state requirements or limits without a format [I-D.wadkins-agentproto-action-determinability] [I-D.abak-agent-control-delivery-evidence] [I-D.sergeev-claim-boundaries] [I-D.sergeev-audit-task-requirements] [I-D.he-agentproto-verifier-evidence]; several of these overlap with this document, as Section 7 describes. This document collects limits that hold for every format, so that a format, profile, or verifier can say which of them it meets, and so that a reader can keep three questions apart: whether records verify, whether a set of them is complete, and whether what they say is true.¶
The limits fall into four areas: who is independent of the recorded actions, and in what sense (Section 3); which commitments cannot support a report that a set of records has no omissions (Section 4); what a time in a record, and an anchor over it, show (Section 5); and how a verifier reports what it checked, so that its output is never stronger than its checks (Section 6).¶
Payment protocols appear only as examples; the limits apply to records of any agent action. This document defines no record format, protocol, role, log, registry, or service. It does not require any deployment to involve an independent entity, and it states what a check cannot establish whether or not one is involved.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The requirements in this document apply to verifiers that claim to follow it, and to specifications and profiles that claim one of the properties defined here. They do not apply to a deployment that makes no such claim.¶
This section defines what makes an entity independent of the actions a record describes, and separates two things that can be independent: the signature on a record, and the observation behind it.¶
A signature shows that whoever controlled a key signed particular bytes. Separate keys show two keys. Separate processes, hosts, or attested platforms show separate execution environments. None of these shows two independent entities: an operator can hold several keys, run a recording component as a separate process on separate hardware, and still control what that component records. Some formats use key or process separation as an indicator of independent recording [I-D.sharif-agent-audit-trail] [I-D.gilda-audit-agent-audit-record], and one of them states that a producer holding two keys can satisfy every clause of its format [I-D.gilda-audit-agent-audit-record]. Key separation can be checked from the bytes of a record; control cannot. One requirements draft already forbids inferring independence from a different process name, service label, or signing key alone [I-D.abak-agent-control-delivery-evidence], and another states that components over which one party has the relevant capability do not count separately against that party [I-D.sergeev-claim-boundaries]. Platform attestation [RFC9334] lets a verifier appraise claims about the state of the platform that produced a record, to the extent that it trusts the attester's root of trust and the endorsements it relies on. It does not establish who controls that platform, or that the content of the record is true (see also Section 5.4.1 of [I-D.sharif-agent-audit-trail]).¶
Whether an entity is independent is therefore a fact about the world that a relying party establishes outside the record, for example by identifying the entity that controls a key and that entity's relationships to the parties. A record can carry a claim of independence. It cannot prove one.¶
Two different things can be independent of the parties to an action:¶
A counter-signature by an independent entity over a record that a party reported establishes signer independence, not observation independence. The content of the record still rests on the party that reported it. The counter-signer shows who signed what. It does not show that the reported action happened, that it happened as described, that it was authorized, or that it had its intended effect. Those are separate facts [I-D.wadkins-agentproto-action-determinability]. Two drafts draw the same line for an entity that verifies rather than signs: an independent party's ability to verify a party's own account does not make that account an independent observation [I-D.sergeev-claim-boundaries] [I-D.sergeev-audit-task-requirements].¶
An entity can stand in one of three positions relative to an action:¶
An observation by an entity in the second position can be stronger evidence than a party's own report of what crossed that boundary; the architecture draft makes this point for records produced at a service boundary [I-D.kuehlewind-audit-architecture]. It is still not independent.¶
"Complete" is used for two questions that have different answers:¶
Formats can make some absences visible, for example by emitting a record on entry into each state [I-D.bradleyb-audit-decision-records], or by fixing the expected population of records before evidence is evaluated [I-D.abak-agent-control-delivery-evidence]. These narrow the second question. They do not answer it from records alone. An omission of an action from every record can be detected only with evidence that the omitting party did not control.¶
A sequence kept, or a scope committed, by a party to the actions in it, by anyone acting for such a party in carrying them out, or by anyone under common control with one, cannot establish that nothing was omitted, whatever format records it. Neither can a scope chosen by the presenter, a commitment that did not exist before the set was presented, or a commitment whose later change would not be detectable.¶
The reason is as follows. A sequence number, hash chain, or Merkle tree kept by a party detects a gap relative to itself, and an anchor over its head detects later truncation relative to that head [I-D.sparysh-pala-audit]. Both remain under the control of the keeper in two ways. First, the keeper chooses the scope. It can present a set that ends at an earlier anchored head, and that set will check. Second, the keeper can maintain more than one sequence. An anchor shows that a head existed, not that it was the only head, so a keeper can anchor a full sequence and a reduced one and present whichever it prefers. Fixing the expected population in advance [I-D.abak-agent-control-delivery-evidence] does not remove the first choice when the keeper fixes the population. The first choice is not limited to keepers: a presenter that selects which commitment to present can present an earlier commitment, and a set that ends there will check against it.¶
A requirements draft states a related rule for verifier results: an evaluator is not to report a completeness claim as verified when the mechanism that would reveal an omission is operated by a material party (one whose conduct or assertion is at issue in the claim), or its inputs are selected by one, unless an independent basis has been appraised for that result (Section 9 of [I-D.he-agentproto-verifier-evidence]). That draft counts among such bases an append-only log whose inclusion is witnessed by parties not material to the claim; the disqualifications below do not depend on whether a sequence kept by a party is witnessed.¶
A completeness result still rests on two assumptions that no single presented set can check:¶
A selection made by the presenter after the fact, such as "every record relevant to this dispute", is not a scope in the sense of this document, and neither is a rule that the relying party cannot itself apply to the committed sequence.¶
The disqualifications above are not exhaustive: that none of them applies does not by itself establish that a set is complete.¶
A time written into a record is an assertion by the entity that wrote it. A signature binds that assertion to the key of the signer. It does not show that the clock of the signer was right, or that the signer reported its clock honestly. A counter-signature shows that the key of the counter-signer signed. It does not show when it signed; a time that the counter-signer writes into what it signs is that entity's assertion, in the same way.¶
An anchor shows that a value existed no later than the time of the anchor, to the extent that the issuer of the anchor is trusted: for a timestamp token, the timestamping authority [RFC3161]; for a public ledger, the rules by which that ledger accepts entries. An anchor over a commitment bounds every record that the commitment covers. An anchor does not show:¶
An anchored time is an upper bound on existence. Rule 8 in Section 6 of [I-D.sergeev-claim-boundaries] bounds time and sequence evidence by the party and mechanism that produced it in the same way. A lower bound requires the record to depend on a value that could not have been known earlier, for example a value issued by an independent entity at a known time; an issue on the architecture draft proposes the same for records registered with a transparency service [ARCH-ISSUE-37]. In the same way, that a decision preceded the action it authorized is established by the action depending on the decision, not by comparing times [I-D.bradleyb-audit-decision-records] [MSG-KROEHL-3].¶
An anchor is checked against the trust root of its issuer, such as the certificate of a timestamping authority. A trust root carried in the presented material bounds nothing, because the presenter can replace the anchor and the trust root together.¶
This section addresses a verifier output that is stronger than its checks: a single "verified" that a reader takes to mean authentic, independent, complete, and true, when the verifier checked only that the bytes had not changed since they were signed [MSG-SAHU] [MSG-SCHROCK].¶
This document addresses the following properties of a verifier result. A result can cover others, such as the validity of a delegation or an authorization, which this document does not address:¶
A check of the records themselves does not establish that their content is true.¶
Section 11 of [I-D.sergeev-claim-boundaries] separates whether an evaluation was made from what it found, and Section 6 of [I-D.he-agentproto-verifier-evidence] requires a result to keep a check that could not reach an answer apart from one that held or failed; items 1 and 4 below make the same separation for the properties of this document.¶
A record that only one implementation can check is checkable only by trusting that implementation. Specifications that claim the properties in this document can avoid this with verification procedures that independent implementations can reproduce from published inputs, and with test vectors in which every requirement has at least one input that must be rejected and a near-identical input that must be accepted, so that an implementation that accepts everything and one that rejects everything both fail (Section 5 of [I-D.he-agentproto-verifier-evidence] requires a discriminating pair for each declared exercise path of a check). A verifier distributed inside the presented material is under the control of the presenter; a relying party obtains its verifier from another source.¶
This section is to be removed before publishing as an RFC.¶
This section records the status of known implementations of the requirements defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in [RFC7942]. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist.¶
All three entries below are maintained by the organization of the author. None of them is a reference implementation, and nothing in this document depends on any of them. Each diverges from this document in ways its entry states.¶
This document is about the evidential weight of records. Its main security concern is a claim that appears stronger than the mechanism behind it, and its requirements exist to prevent such claims from being made silently. The following considerations remain.¶
The considerations in [RFC6973] apply. In addition:¶
This document has no IANA actions.¶
This document responds to questions raised in the discussion of the proposed AUDIT charter; the messages it draws on are cited in the references. The author is affiliated with Tersign, which maintains the implementations listed in Section 8. This document was drafted with AI tools working for the author, who is responsible for its content.¶