<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-gilda-audit-restoration-evidence-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Restoration Evidence Records">Restoration Evidence Records for AI Agent Incident Response</title>
    <seriesInfo name="Internet-Draft" value="draft-gilda-audit-restoration-evidence-00"/>
    <author fullname="Sankalp Gilda">
      <address>
        <email>sankalp.gilda@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <keyword>audit</keyword>
    <keyword>agent</keyword>
    <keyword>incident response</keyword>
    <keyword>revocation</keyword>
    <keyword>restoration</keyword>
    <abstract>

<t>When an AI agent system is stopped, restricted or has its credentials revoked during an incident, someone later decides whether it may run again. Incident response guidance asks for that decision to be documented with the risk that remains, but no format says what the record must contain for a party outside the deploying organization to check it. This document defines five record types for that purpose: an incident action authorization, a revocation sweep, a re-enable decision, a joint authority assignment for incidents that span organizations, and a revocation boundary report. Each is an in-toto Statement carried in a DSSE envelope, uses the canonical form of the agent audit record, and is checked by ordered rules with a named reason for each failure. A bundle rule set binds a re-enable decision to the records it cites, by digest. A published conformance corpus carries a reject member for every rule that a member can force.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-gilda-audit-restoration-evidence/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        AUDIT Birds of a Feather mailing list (<eref target="mailto:audit@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/audit/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/audit/"/>.
      </t>
    </note>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The agent audit record <xref target="AUDIT-RECORD"/> records one authorization decision and its observed effect. An incident adds decisions that record does not carry: who authorized a pause or a revocation, which credentials the revocation reached, who decided that the stopped system may resume and on what evidence, and, when two organizations are involved, which of them may act on which asset. These decisions are made over time, by different parties, and they refer to one another. The proposed charter of the AUDIT working group <xref target="AUDIT-CHARTER"/> names "authorization state over time" among the things its data models should represent; this document covers that state for the period from containment to restoration. Section 11 of <xref target="AIMS"/> likewise requires durable audit logs covering "authorization decisions and subsequent remediations" and leaves their form open; the records here give the remediation half a form.</t>
      <t>Incident response guidance asks for these decisions and leaves their form open. NIST SP 800-61 Rev. 3 <xref target="NIST-SP-800-61R3"/> has handlers work with system owners to confirm restoration (RC.RP-04) and declares the end of recovery "based on criteria" (RC.RP-06). NIST SP 800-184 <xref target="NIST-SP-800-184"/> describes restored assets being validated "before receiving approval to restore network operations" (Section 6.2.2) without naming the approver. The NIST, NSA and CISA Key Practices for incidents in agent training and evaluation <xref target="KEY-PRACTICES"/> ask that containment layers be shown working before agents restart (7.3), that new controls be shown to catch a replay of the incident (7.4), and that the recovery decision be documented with the remaining risks (7.5). None of these texts says what that documentation must contain for a party that trusts neither the agent nor its operator to check it.</t>
      <t>This document fixes that record. It defines five predicate types and the rules a reader applies to each, and a set of rules for a bundle of records that together support one re-enable decision. It specifies no admission policy: whether a given decision is enough to let a system run again is the relying party's own policy, written against these records.</t>
      <t>The goals are:</t>
      <ul spacing="normal">
        <li>
          <t>to name, in each decision, the parties who held each role and the kind of grant each authorizer acted on, so that "the team decided" becomes a statement someone can be held to;</t>
        </li>
        <li>
          <t>to make a revocation's reach visible from the record alone, so that a claim wider than the evidence is refused;</t>
        </li>
        <li>
          <t>to make an omitted restart condition distinguishable from one the decision-maker chose not to address;</t>
        </li>
        <li>
          <t>to bind a restart decision to the authorization and revocation records it rests on, by digest, so the chain can be checked offline.</t>
        </li>
      </ul>
      <section anchor="relationship-to-the-agent-audit-record">
        <name>Relationship to the agent audit record</name>
        <t>This document uses the canonical form, statement shape and envelope of <xref target="AUDIT-RECORD"/> and does not amend it. The predicate type of that document is frozen (Section 8 of <xref target="AUDIT-RECORD"/>), so the record types defined here are separate predicate types and do not extend it. A re-enable decision (R3) <bcp14>MAY</bcp14> cite an agent audit record as evidence by its digest (Section 5.3), which is how an enforced action and the decision that authorized resuming it are joined.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

</section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Containment:</dt>
        <dd>
          <t>An action that limits what an agent system can do while an incident is handled: a pause, a restriction of a credential, permission or tool, or an isolation of channels.</t>
        </dd>
        <dt>Restoration:</dt>
        <dd>
          <t>The decision to end a containment wholly or in part. It is separate from containment and from remediation and does not follow from either.</t>
        </dd>
        <dt>Producer:</dt>
        <dd>
          <t>The party that signs a record.</t>
        </dd>
        <dt>Reader:</dt>
        <dd>
          <t>A party that checks a record against this document.</t>
        </dd>
        <dt>Relying party:</dt>
        <dd>
          <t>A party that decides what to do on the basis of a checked record, under its own admission policy.</t>
        </dd>
        <dt>Bundle:</dt>
        <dd>
          <t>One re-enable decision record together with every record it names as a predecessor, recursively, and any joint authority or revocation boundary record the producer adds.</t>
        </dd>
        <dt>Closed value:</dt>
        <dd>
          <t>A value drawn from a set this document or <xref target="VOCABULARY"/> enumerates. A value outside the set makes the record malformed.</t>
        </dd>
      </dl>
    </section>
    <section anchor="common">
      <name>Common Structure</name>
      <section anchor="statement">
        <name>Statement and envelope</name>
        <t>A record is an in-toto Statement v1 <xref target="IN-TOTO"/> carried in a DSSE envelope <xref target="DSSE"/>. The statement <bcp14>MUST</bcp14> have exactly the members <tt>_type</tt>, <tt>subject</tt>, <tt>predicateType</tt> and <tt>predicate</tt>. <tt>_type</tt> <bcp14>MUST</bcp14> be <tt>https://in-toto.io/Statement/v1</tt>, and <tt>predicateType</tt> <bcp14>MUST</bcp14> be one of the five URIs of <xref target="types"/>.</t>
        <t>Statements are I-JSON <xref target="RFC7493"/> and are canonicalized as in Section 4.1 of <xref target="AUDIT-RECORD"/>, using JCS <xref target="RFC8785"/>. A duplicate member at any depth makes the statement malformed. Times are RFC 3339 <xref target="RFC3339"/> UTC times to whole seconds and are compared as instants.</t>
        <t>A member this document does not define for a type <bcp14>MUST</bcp14> be refused. This departs from the in-toto parsing rule that consumers ignore unknown fields: a revision that adds a member publishes it under a new predicate type URI (<xref target="iana"/>), so a reader of a v1 type never meets a member it has not been told how to read.</t>
        <t>Each <tt>subject</tt> member carries a <tt>digest</tt> holding only <tt>sha256</tt>. What the digest is taken over is stated for each type.</t>
      </section>
      <section anchor="common-members">
        <name>Common predicate members</name>
        <t>Every predicate defined here carries these members:</t>
        <dl>
          <dt>incident:</dt>
          <dd>
            <t>An object with <tt>issuer</tt>, an https URL naming who assigns the identifier; <tt>id</tt>, a non-empty string; and, optionally, <tt>related</tt>, a list of further <tt>{issuer, id}</tt> pairs naming the same incident in another organization's records. This is the term <tt>incident_identifier</tt> of <xref target="VOCABULARY"/>.</t>
          </dd>
          <dt>producer:</dt>
          <dd>
            <t>An object with <tt>id</tt>, an https URL naming the signing party.</t>
          </dd>
          <dt>issuedAt:</dt>
          <dd>
            <t>The time the record was issued.</t>
          </dd>
          <dt>registryDigest:</dt>
          <dd>
            <t>An object with <tt>sha256</tt>, the SHA-256 of the exact bytes of the <xref target="VOCABULARY"/> registry the record's closed values are expressed in.</t>
          </dd>
          <dt>doesNotAssert:</dt>
          <dd>
            <t>A list of non-empty strings, each stating something the producer says the record does not claim. The list <bcp14>MAY</bcp14> be empty; the member <bcp14>MUST NOT</bcp14> be absent.</t>
          </dd>
        </dl>
        <t>Where a type uses it, <tt>predecessors</tt> is a list of <tt>{predicateType, digest}</tt> naming earlier records of this document, where <tt>digest</tt> holds the <tt>sha256</tt> of the predecessor statement's bytes exactly as carried in its DSSE payload.</t>
      </section>
      <section anchor="closed-values">
        <name>Closed values</name>
        <t>The values of <tt>response_function</tt>, <tt>pause_hold</tt>, <tt>restoration_decision</tt>, <tt>revocation_state</tt>, <tt>intent_binding</tt>, <tt>independence_basis</tt> and <tt>set_sufficiency</tt> are those of the registry whose digest is <tt>1c5ff80bd97237a603afc402db692ffe5abe15e4a7f9eca13f20068ada347fdc</tt>, published under https://w3id.org/agent-evidence/vocab/v1/registry/ with the file name <tt>sha256-</tt>, then the digest, then <tt>.yaml</tt>. Values that a section of this document lists itself are closed by this document.</t>
        <t>A reader <bcp14>MUST</bcp14> refuse a value outside a closed set and <bcp14>MUST NOT</bcp14> ignore the member. Registration in <xref target="VOCABULARY"/> gives a value its identity; which values a member accepts is set by this document alone.</t>
      </section>
      <section anchor="rule-order">
        <name>Rule order and verdicts</name>
        <t>Each type has an ordered rule table. A reader applies the rules in order and reports the first that fails, with its reason code. Rules 1 to 3 are the same for every type:</t>
        <table>
          <thead>
            <tr>
              <th align="left">#</th>
              <th align="left">Rule</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">The statement has the shape of <xref target="statement"/> and the predicate type of this section</td>
              <td align="left">
                <tt>statement-malformed</tt></td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">The predicate has exactly its members, each well formed</td>
              <td align="left">
                <tt>predicate-malformed</tt></td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Every closed value is in its set</td>
              <td align="left">
                <tt>closed-vocabulary-violation</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A record that passes every rule of its type is accepted with the verdict named for the type. Two readers that apply this document reach the same verdict and the same first failing reason on the same bytes; the conformance corpus (<xref target="conformance"/>) tests that.</t>
      </section>
    </section>
    <section anchor="types">
      <name>Record Types</name>
      <t>The five predicate type URIs are:</t>
      <artwork><![CDATA[
https://probityai.github.io/agent-evidence-vectors/predicate/v1/
  incident-action-authorization
https://probityai.github.io/agent-evidence-vectors/predicate/v1/
  revocation-sweep
https://probityai.github.io/agent-evidence-vectors/predicate/v1/
  re-enable-decision
https://probityai.github.io/agent-evidence-vectors/predicate/v1/
  joint-authority
https://probityai.github.io/agent-evidence-vectors/predicate/v1/
  revocation-boundary
]]></artwork>
      <t>Each URI is the common prefix on the first line followed directly by the type name on the second, with no space or line break.</t>
      <section anchor="r1">
        <name>R1: Incident action authorization</name>
        <t>An R1 records who authorized one incident response action, which role each named party held, on what kind of grant the authorizer acted, and whether the authority was committed before the action ran.</t>
        <t>The subject is the operation authorized: one or more members, each the SHA-256 of the operation's declared description.</t>
        <t>The predicate carries the common members and:</t>
        <dl>
          <dt>action:</dt>
          <dd>
            <t><tt>functions</tt>, a non-empty sorted list of <tt>response_function</tt> values (<tt>monitoring_increase</tt>, <tt>restriction</tt>, <tt>isolation</tt>, <tt>pause</tt>, <tt>remediation</tt>, <tt>restoration</tt>); <tt>targets</tt>, a non-empty list of <tt>{id}</tt> naming the agents, tools, routes or credentials acted on; and <tt>inducedEffects</tt>, which is one of <tt>{"declared": "listed", "items": [...]}</tt>, <tt>{"declared": "none_observed", "observation": {"sha256": ...}}</tt> or <tt>{"declared": "unknown"}</tt>. A credential revocation is recorded as <tt>restriction</tt>, and its reach as an R2.</t>
          </dd>
          <dt>parties:</dt>
          <dd>
            <t>A non-empty list of <tt>{id, roles, authorityBasis?, independenceBasis?}</tt>. <tt>roles</tt> is a non-empty sorted list drawn from <tt>advised</tt>, <tt>authorized</tt>, <tt>executed</tt> and <tt>accountable</tt>. One party <bcp14>MAY</bcp14> hold several roles. <tt>authorityBasis</tt> is one of <tt>role_grant</tt>, <tt>policy_preauthorized</tt>, <tt>contract_third_party</tt>, <tt>executive_approval</tt> and <tt>unknown</tt>, and <bcp14>MUST</bcp14> be present on every party holding <tt>authorized</tt>. <tt>independenceBasis</tt> is an <tt>independence_basis</tt> value.</t>
          </dd>
          <dt>authorizedAt, notAfter:</dt>
          <dd>
            <t>When the authority was given, and when it lapses.</t>
          </dd>
          <dt>executedAt:</dt>
          <dd>
            <t>Optional. When the action ran.</t>
          </dd>
          <dt>intentBinding:</dt>
          <dd>
            <t>An <tt>intent_binding</tt> value: <tt>committed_before_execution</tt> or <tt>asserted_after_execution</tt>.</t>
          </dd>
          <dt>pause:</dt>
          <dd>
            <t>Optional. <tt>{hold, holdProof}</tt>, where <tt>hold</tt> is a <tt>pause_hold</tt> value and <tt>holdProof</tt> is <tt>{sha256}</tt> of the observation that established it.</t>
          </dd>
        </dl>
        <table>
          <thead>
            <tr>
              <th align="left">#</th>
              <th align="left">Rule</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">4</td>
              <td align="left">At least one party holds <tt>authorized</tt></td>
              <td align="left">
                <tt>no-authorizer</tt></td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">At least one party holds <tt>accountable</tt></td>
              <td align="left">
                <tt>no-accountable-party</tt></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">Every party holding <tt>authorized</tt> carries <tt>authorityBasis</tt></td>
              <td align="left">
                <tt>authority-basis-missing</tt></td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">
                <tt>authorizedAt</tt> is not after <tt>notAfter</tt></td>
              <td align="left">
                <tt>authorization-window-inverted</tt></td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">When <tt>intentBinding</tt> is <tt>committed_before_execution</tt> and <tt>executedAt</tt> is present, <tt>executedAt</tt> is not before <tt>authorizedAt</tt></td>
              <td align="left">
                <tt>intent-not-committed-before</tt></td>
            </tr>
            <tr>
              <td align="left">9</td>
              <td align="left">When <tt>executedAt</tt> is present, it is not after <tt>notAfter</tt></td>
              <td align="left">
                <tt>authorization-expired</tt></td>
            </tr>
            <tr>
              <td align="left">10</td>
              <td align="left">
                <tt>inducedEffects</tt> declared <tt>none_observed</tt> carries <tt>observation</tt></td>
              <td align="left">
                <tt>induced-effects-unobserved</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A record passing every rule is accepted as <tt>authorization-recorded</tt>. A reader <bcp14>MUST NOT</bcp14> read an absent <tt>authorityBasis</tt> as <tt>role_grant</tt>; the value for not knowing is <tt>unknown</tt>.</t>
      </section>
      <section anchor="r2">
        <name>R2: Revocation sweep</name>
        <t>An R2 records which credentials of a declared population were revoked during an incident, which were not, and how far the producer claims the sweep reaches.</t>
        <t>The subject is the population manifest: one member, the SHA-256 of the list of credential identifiers the sweep was run over. Identifiers are opaque names; they <bcp14>MUST NOT</bcp14> be secrets, hashes of secrets or key fingerprints.</t>
        <t>The predicate carries the common members, <tt>predecessors</tt> (at least one R1, the authorization of the sweep), and:</t>
        <dl>
          <dt>population:</dt>
          <dd>
            <t><tt>credentials</tt>, a non-empty, sorted, duplicate-free list of identifiers.</t>
          </dd>
          <dt>partition:</dt>
          <dd>
            <t>A list of <tt>{state, credentials}</tt> parts, <tt>state</tt> one of <tt>revoked</tt>, <tt>retained</tt> and <tt>unassessed</tt>.</t>
          </dd>
          <dt>revocations:</dt>
          <dd>
            <t>One entry per revoked credential: <tt>credential</tt>; <tt>revokedAt</tt>; <tt>evidence</tt>, a resource descriptor <tt>{digest, uri?, mediaType?}</tt> of the deny record or policy change; and <tt>relyingParties</tt>, a list of <tt>{id, state}</tt> with <tt>state</tt> a <tt>revocation_state</tt> value (<tt>issued</tt>, <tt>enforced_observed</tt>, <tt>use_after_revocation</tt>, <tt>not_established</tt>).</t>
          </dd>
          <dt>coverage:</dt>
          <dd>
            <t><tt>claim</tt>, one of <tt>complete_verified</tt>, <tt>issued_after_only</tt>, <tt>partial</tt> and <tt>unknown</tt>; and <tt>issuedAfter</tt>, a time, present when <tt>claim</tt> is <tt>issued_after_only</tt>.</t>
          </dd>
        </dl>
        <table>
          <thead>
            <tr>
              <th align="left">#</th>
              <th align="left">Rule</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">4</td>
              <td align="left">The parts are disjoint and their union equals <tt>population.credentials</tt></td>
              <td align="left">
                <tt>denominator-union-mismatch</tt></td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">
                <tt>revocations</tt> names exactly the credentials of the <tt>revoked</tt> part</td>
              <td align="left">
                <tt>revocation-entries-mismatch</tt></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">
                <tt>complete_verified</tt> is claimed only when every credential is in the <tt>revoked</tt> part</td>
              <td align="left">
                <tt>coverage-claim-exceeds-proof</tt></td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">
                <tt>issued_after_only</tt> carries <tt>issuedAfter</tt></td>
              <td align="left">
                <tt>coverage-claim-incomplete</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A record passing every rule is accepted as <tt>sweep-recorded</tt>. An honest <tt>partial</tt> or <tt>issued_after_only</tt> sweep is well formed. Whether a relying party admits a system restored under it is that party's policy.</t>
      </section>
      <section anchor="r3">
        <name>R3: Re-enable decision</name>
        <t>An R3 records one decision about whether a stopped or restricted agent system may run again: the outcome, the scope restored, who approved it and on what independence, and, for every kind of evidence incident guidance asks a restart to show, either the digest of what was shown or an explicit statement that it was not addressed.</t>
        <t>The subject is the configuration restored: one or more members, each the SHA-256 of a baseline (model weights, harness code, container image, tool configuration).</t>
        <t>The predicate carries the common members, <tt>predecessors</tt> (at least one record of this document), and:</t>
        <dl>
          <dt>restoration:</dt>
          <dd>
            <t><tt>decision</tt>, a <tt>restoration_decision</tt> value (<tt>resume_full</tt>, <tt>resume_staged</tt>, <tt>remain_restricted</tt>, <tt>not_established</tt>); and <tt>restoredScope</tt>, present when <tt>decision</tt> is <tt>resume_staged</tt>: <tt>{agents, tools, routes, credentials}</tt>, each a sorted list of identifiers, at least one non-empty.</t>
          </dd>
          <dt>approvers:</dt>
          <dd>
            <t>A list of <tt>{id, roles, independenceBasis}</tt>, with <tt>roles</tt> as in R1 and <tt>independenceBasis</tt> an <tt>independence_basis</tt> value (<tt>independent_sources</tt>, <tt>subject_supplied</tt>, <tt>undeclared</tt>).</t>
          </dd>
          <dt>setSufficiency:</dt>
          <dd>
            <t>The producer's own <tt>set_sufficiency</tt> judgment of the evidence below: <tt>sufficient</tt>, <tt>insufficient</tt> or <tt>not_assessed</tt>.</t>
          </dd>
          <dt>evidence:</dt>
          <dd>
            <t>An object with exactly the sixteen slots of the table below. Each slot is either a resource descriptor, <tt>{"digest": {"sha256": ...}}</tt> with optional <tt>uri</tt> and <tt>mediaType</tt> as in the in-toto ResourceDescriptor, or <tt>{"notAddressed": "&lt;reason&gt;"}</tt> with a non-empty reason. A slot <bcp14>MAY</bcp14> point at an attestation the producer already emits, including an agent audit record <xref target="AUDIT-RECORD"/>.</t>
          </dd>
        </dl>
        <table>
          <name>Evidence slots of a re-enable decision</name>
          <thead>
            <tr>
              <th align="left">Slot</th>
              <th align="left">What it holds</th>
              <th align="left">Where guidance asks for it</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">actorObjective</td>
              <td align="left">the adversary's objective, or confirmation it is not apparent</td>
              <td align="left">SP 800-184 Sec. 2.3.4</td>
            </tr>
            <tr>
              <td align="left">persistence</td>
              <td align="left">persistence mechanisms understood, or non-persistence confirmed</td>
              <td align="left">SP 800-184 Sec. 2.3.4</td>
            </tr>
            <tr>
              <td align="left">rootCause</td>
              <td align="left">root cause remediated before production use</td>
              <td align="left">SP 800-61r3 RC.RP-05</td>
            </tr>
            <tr>
              <td align="left">affectedScope</td>
              <td align="left">affected hosts, services and similar agents identified</td>
              <td align="left">SP 800-61r3 RS.MI-02; Key Practices 6.3</td>
            </tr>
            <tr>
              <td align="left">assetIntegrity</td>
              <td align="left">restoration assets checked before use</td>
              <td align="left">SP 800-61r3 RC.RP-03; SP 800-53 CP-10(4)</td>
            </tr>
            <tr>
              <td align="left">restoredAssetsClean</td>
              <td align="left">restored assets free of indicators and of the original weakness</td>
              <td align="left">SP 800-61r3 RC.RP-05; SP 800-184 Sec. 6.2.2</td>
            </tr>
            <tr>
              <td align="left">containmentReproof</td>
              <td align="left">monitors, logging, egress, shutdown and permissions shown working</td>
              <td align="left">Key Practices 7.3</td>
            </tr>
            <tr>
              <td align="left">incidentReplay</td>
              <td align="left">new controls shown to catch a replay of the incident</td>
              <td align="left">Key Practices 7.4</td>
            </tr>
            <tr>
              <td align="left">restoreOrder</td>
              <td align="left">dependency order of the restoration</td>
              <td align="left">SP 800-61r3 RC.RP-04</td>
            </tr>
            <tr>
              <td align="left">postRestartMonitoring</td>
              <td align="left">monitoring that detects recurrence</td>
              <td align="left">SP 800-61r3 RC.RP-04; SP 800-184 Sec. 6.2.3</td>
            </tr>
            <tr>
              <td align="left">exclusiveControl</td>
              <td align="left">exclusive control of the environment re-established</td>
              <td align="left">SP 800-184 Sec. 6.2.3</td>
            </tr>
            <tr>
              <td align="left">controlsNotDegraded</td>
              <td align="left">controls not degraded by the restoration</td>
              <td align="left">SP 800-53 CP-2</td>
            </tr>
            <tr>
              <td align="left">residualRisk</td>
              <td align="left">the remaining risk, stated and accepted</td>
              <td align="left">Key Practices 7.5; SP 800-61r3 RC.RP-06</td>
            </tr>
            <tr>
              <td align="left">seniorApproval</td>
              <td align="left">senior approval, informed by outside assessment where used</td>
              <td align="left">Key Practices 2.6</td>
            </tr>
            <tr>
              <td align="left">multiPartyAuthorization</td>
              <td align="left">more than one person authorized the restart</td>
              <td align="left">AWS Agentic AI Lens BP04</td>
            </tr>
            <tr>
              <td align="left">ownerConfirmation</td>
              <td align="left">the system or asset owner confirmed the restoration</td>
              <td align="left">SP 800-61r3 RC.RP-04</td>
            </tr>
          </tbody>
        </table>
        <t>The guidance is cited from <xref target="NIST-SP-800-61R3"/>, <xref target="NIST-SP-800-184"/>, <xref target="NIST-SP-800-53R5"/>, <xref target="KEY-PRACTICES"/> and <xref target="AWS-AGENTIC-LENS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">#</th>
              <th align="left">Rule</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">4</td>
              <td align="left">
                <tt>evidence</tt> carries every slot, and no other</td>
              <td align="left">
                <tt>evidence-slot-missing</tt></td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">Every <tt>notAddressed</tt> reason is non-empty</td>
              <td align="left">
                <tt>evidence-slot-unexplained</tt></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">
                <tt>approvers</tt> is non-empty and at least one approver holds <tt>authorized</tt></td>
              <td align="left">
                <tt>no-approver</tt></td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">
                <tt>resume_staged</tt> carries <tt>restoredScope</tt> with at least one identifier</td>
              <td align="left">
                <tt>partial-without-scope</tt></td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">
                <tt>resume_full</tt> carries no <tt>restoredScope</tt></td>
              <td align="left">
                <tt>full-with-scope</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A record passing every rule is accepted as <tt>decision-recorded</tt>. The slots record what a decision cites. Which slots a relying party requires to carry a digest, and what it does with a <tt>notAddressed</tt> slot, is its own admission policy. A record that omits a slot is malformed; a record that declares a slot not addressed says so in a form the relying party can refuse.</t>
      </section>
      <section anchor="r4">
        <name>R4: Joint authority</name>
        <t>An R4 records, for an incident that crosses organizations, which party may act on which asset, under what kind of grant, and which indicators the parties share. Restart conditions in incident guidance assume one owner of the restored asset; when an agent operated by one organization affects infrastructure run by another, an R4 names the owners and the assignment, so each party's R1 and R3 records can be read against it.</t>
        <t>The subject is the shared indicator set: one member, the SHA-256 of the canonical list of shared indicators.</t>
        <t>The predicate carries the common members and:</t>
        <dl>
          <dt>sharedIndicators:</dt>
          <dd>
            <t>A non-empty sorted list of <tt>{sha256}</tt> digests of indicators both parties hold.</t>
          </dd>
          <dt>parties:</dt>
          <dd>
            <t>At least two entries <tt>{id, organization, correlationId, authorityBasis, assets}</tt>, <tt>authorityBasis</tt> as in R1 and <tt>assets</tt> a sorted list of asset identifiers the party may act on.</t>
          </dd>
          <dt>actions:</dt>
          <dd>
            <t>Optional. A list of <tt>{party, asset, record}</tt> naming actions already taken, where <tt>record</tt> is <tt>{sha256}</tt> of the R1 statement that authorized the action.</t>
          </dd>
        </dl>
        <table>
          <thead>
            <tr>
              <th align="left">#</th>
              <th align="left">Rule</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">4</td>
              <td align="left">Every party carries <tt>authorityBasis</tt></td>
              <td align="left">
                <tt>authority-basis-missing</tt></td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">The parties belong to at least two organizations</td>
              <td align="left">
                <tt>single-organization</tt></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">Every action names a party in <tt>parties</tt> and an asset in that party's <tt>assets</tt></td>
              <td align="left">
                <tt>party-acts-outside-assignment</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A record passing every rule is accepted as <tt>assignment-recorded</tt>. A record co-signed by every party (several DSSE signatures over one payload) is stronger than one signed by one party, and the envelope shows which it is.</t>
      </section>
      <section anchor="rb">
        <name>RB: Revocation boundary</name>
        <t>Revoking a credential stops new work from starting under it. It does not by itself stop work already in flight from committing its effect afterwards. An RB reports, for one declared sink and one test window, whether any effect from an in-flight task committed at that sink's declared commit boundary after the revocation took effect. It states an outcome and requires no mechanism.</t>
        <t>The subject is the test plan: one member, the SHA-256 of the declared sink and window.</t>
        <t>The predicate carries the common members, optional <tt>predecessors</tt>, and:</t>
        <dl>
          <dt>sink:</dt>
          <dd>
            <t><tt>{id, kind, commitBoundary}</tt>. <tt>kind</tt> is one of <tt>database</tt>, <tt>filesystem</tt>, <tt>http_endpoint</tt>, <tt>subprocess</tt>, <tt>queue</tt> and <tt>other</tt>. <tt>commitBoundary</tt> is a non-empty string saying at which point an effect counts as committed.</t>
          </dd>
          <dt>observer:</dt>
          <dd>
            <t><tt>{id, vantage}</tt>, <tt>vantage</tt> one of <tt>sink_side</tt> and <tt>agent_side</tt>.</t>
          </dd>
          <dt>revocation:</dt>
          <dd>
            <t><tt>credential</tt>, an opaque identifier; <tt>effectiveAt</tt>, when the revocation took effect at its authority; and <tt>timeSource</tt>, a non-empty string naming the clock.</t>
          </dd>
          <dt>window:</dt>
          <dd>
            <t><tt>{start, end}</tt>.</t>
          </dd>
          <dt>counts:</dt>
          <dd>
            <t>Non-negative integers <tt>attempts</tt>, <tt>inFlightAtRevocation</tt>, <tt>postRevocationCommits</tt>, <tt>replaysAttempted</tt> and <tt>replaysCommitted</tt>.</t>
          </dd>
          <dt>exclusions:</dt>
          <dd>
            <t>A list of <tt>{count, reason}</tt>, each reason non-empty, for attempts left out of the counts.</t>
          </dd>
          <dt>result:</dt>
          <dd>
            <t>One of <tt>no_post_revocation_commit_observed</tt>, <tt>post_revocation_commit_observed</tt> and <tt>not_established</tt>.</t>
          </dd>
        </dl>
        <table>
          <thead>
            <tr>
              <th align="left">#</th>
              <th align="left">Rule</th>
              <th align="left">Code</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">4</td>
              <td align="left">
                <tt>window.start</tt> is not after <tt>effectiveAt</tt>, and <tt>effectiveAt</tt> is not after <tt>window.end</tt></td>
              <td align="left">
                <tt>revocation-outside-window</tt></td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">
                <tt>inFlightAtRevocation</tt> does not exceed <tt>attempts</tt>, <tt>postRevocationCommits</tt> does not exceed <tt>inFlightAtRevocation</tt>, and <tt>replaysCommitted</tt> does not exceed <tt>replaysAttempted</tt></td>
              <td align="left">
                <tt>counts-inconsistent</tt></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">
                <tt>result</tt> is <tt>post_revocation_commit_observed</tt> exactly when <tt>postRevocationCommits</tt> or <tt>replaysCommitted</tt> is positive, unless <tt>result</tt> is <tt>not_established</tt></td>
              <td align="left">
                <tt>result-contradicts-counts</tt></td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">
                <tt>no_post_revocation_commit_observed</tt> requires a <tt>sink_side</tt> observer</td>
              <td align="left">
                <tt>observer-not-at-sink</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A record passing every rule is accepted as <tt>boundary-recorded</tt>. One record covers one sink; a claim about several sinks is several records.</t>
      </section>
    </section>
    <section anchor="bundles">
      <name>Bundles</name>
      <t>A re-enable decision is rarely checkable alone: it rests on the authorizations and revocations before it. A restoration evidence bundle is one R3 together with every record its <tt>predecessors</tt> name, recursively, and any R4 or RB the producer adds. A reader checks a bundle in this order and reports the first failure:</t>
      <table>
        <thead>
          <tr>
            <th align="left">#</th>
            <th align="left">Rule</th>
            <th align="left">Code</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">B1</td>
            <td align="left">Every record in the bundle conforms to its own type</td>
            <td align="left">the record's own code</td>
          </tr>
          <tr>
            <td align="left">B2</td>
            <td align="left">Every predecessor digest resolves to exactly one record carried in the bundle</td>
            <td align="left">
              <tt>predecessor-not-carried</tt></td>
          </tr>
          <tr>
            <td align="left">B3</td>
            <td align="left">The record a digest resolves to has the <tt>predicateType</tt> the reference names</td>
            <td align="left">
              <tt>predecessor-type-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">B4</td>
            <td align="left">No record names itself, directly or through other records, as its predecessor</td>
            <td align="left">
              <tt>predecessor-cycle</tt></td>
          </tr>
          <tr>
            <td align="left">B5</td>
            <td align="left">Every record names the same incident, by <tt>incident</tt> or by one of its <tt>related</tt> pairs</td>
            <td align="left">
              <tt>incident-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">B6</td>
            <td align="left">No record's <tt>issuedAt</tt> is earlier than that of a record it names as a predecessor</td>
            <td align="left">
              <tt>predecessor-issued-later</tt></td>
          </tr>
          <tr>
            <td align="left">B7</td>
            <td align="left">Every credential an R3 restores in <tt>restoredScope.credentials</tt> appears in some R2 in the bundle</td>
            <td align="left">
              <tt>restored-credential-unswept</tt></td>
          </tr>
        </tbody>
      </table>
      <t>A bundle passing every rule is reported as <tt>bundle-consistent</tt>. That verdict says the records agree with each other. It does not say whether the relying party should admit the decision.</t>
      <t>A relying party's admission policy is written against a consistent bundle. For example, a policy can require that every restored credential lie in the <tt>revoked</tt> part of an R2 whose <tt>coverage.claim</tt> is <tt>complete_verified</tt>, that <tt>containmentReproof</tt> and <tt>incidentReplay</tt> carry digests, and that at least one approver with <tt>independent_sources</tt> hold <tt>authorized</tt>. Such a policy is outside this document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="a-signature-authenticates-an-assertion-not-its-truth">
        <name>A signature authenticates an assertion, not its truth</name>
        <t>Every record here is a statement by its producer. A conforming record is complete and internally consistent; it is not evidence that the authority named was held, that the action ran as described, that the cited evidence shows what its slot names, or that resuming was safe. The value of the format is that a false statement is attributable to a named signer and that an omission is visible, not that falsehood is prevented.</t>
      </section>
      <section anchor="absence-is-not-read-as-a-value">
        <name>Absence is not read as a value</name>
        <t>An absent <tt>authorityBasis</tt> is not <tt>role_grant</tt>, an omitted evidence slot is malformed rather than satisfied, and a claim of no induced effects requires the observation that looked. Each of these closes a way for a record to look complete because it says less. A reader that supplies a default for an absent member defeats the format.</t>
      </section>
      <section anchor="revocation-reach">
        <name>Revocation reach</name>
        <t>A revocation sweep that claims more than its partition shows is refused (R2 rule 6). A sweep that honestly reports <tt>issued_after_only</tt> or <tt>partial</tt> is well formed, and a relying party that admits a restart under it accepts that credentials issued earlier, or outside the revoked part, may still be live. The <tt>relyingParties</tt> states distinguish a revocation that was issued from one a relying party was observed to enforce; <tt>use_after_revocation</tt> exists so that a use after revocation can be recorded rather than omitted.</t>
      </section>
      <section anchor="work-in-flight">
        <name>Work in flight</name>
        <t>Revocation does not stop work that is already in flight from committing. An RB with a <tt>sink_side</tt> observer reports whether that happened at one sink in one window. A zero count bounds a rate for that sink and window; it is not a guarantee for other sinks or windows. An agent-side observer cannot support <tt>no_post_revocation_commit_observed</tt> (RB rule 7), because the agent process cannot see the sink's committed state.</t>
      </section>
      <section anchor="authority-that-outlives-a-pause">
        <name>Authority that outlives a pause</name>
        <t>An R1 authorization carries <tt>notAfter</tt>. A relying party that admits actions under an R1 after a pause and restart <bcp14>SHOULD</bcp14> check <tt>notAfter</tt> against the restart, and <bcp14>SHOULD</bcp14> require a fresh R1 for any action after an R3, so that a permit issued before the pause is not reused after it.</t>
      </section>
      <section anchor="approver-independence">
        <name>Approver independence</name>
        <t><tt>independenceBasis</tt> is the producer's statement. A relying party that requires independence <bcp14>SHOULD</bcp14> require <tt>independent_sources</tt> and <bcp14>SHOULD</bcp14> resolve the named approver itself. An approver who also stopped the system and approves its restart is recordable; whether that is acceptable is admission policy.</t>
      </section>
      <section anchor="predecessor-digests">
        <name>Predecessor digests</name>
        <t>Predecessors are named by the SHA-256 of the statement bytes as carried in the DSSE payload. A reader <bcp14>MUST</bcp14> hash those bytes, not a re-serialization, since a re-serialization that differs in member order or number form changes the digest.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Records name parties by identifier and may name natural persons as authorizers, approvers or accountable parties. Producers <bcp14>SHOULD</bcp14> use role or account identifiers where a person's name is not needed by the relying party, and <bcp14>SHOULD</bcp14> state in <tt>doesNotAssert</tt> what a distributed record deliberately omits.</t>
      <t>Credential identifiers in an R2 or RB are opaque names. They <bcp14>MUST NOT</bcp14> carry secrets, hashes of secrets or key fingerprints, because a record may travel to parties not entitled to the credential.</t>
      <t>Evidence slots and indicator sets are bound by digest and not carried. A record can therefore travel to a party entitled to check the decision without carrying the forensic material the decision rests on; that party resolves a digest only if it needs the content. Shared indicators in an R4 are digests for the same reason: the record shows the parties hold the same indicators without disclosing them to a reader that does not.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. Each predicate type is a URI under a namespace the author controls and requires no registration to be used, consistent with the in-toto Attestation Framework's treatment of predicate type identifiers <xref target="IN-TOTO"/>.</t>
      <t>A record carries its predicate type inside the bytes its producer signed. A later revision of this document <bcp14>MUST NOT</bcp14> move a URI once records carrying it exist, since moving it invalidates every signature over them. A change to what a record of a type must carry, including a member or a closed value added, is published under a new URI with <tt>v1</tt> read as <tt>v2</tt>, and a record valid under a v1 URI stays valid under every later revision that keeps that URI.</t>
    </section>
    <section anchor="conformance">
      <name>Conformance</name>
      <t>A conforming producer emits records that meet every <bcp14>MUST</bcp14> of <xref target="common"/> and of the section of each type it emits. A conforming reader applies the rule order of <xref target="rule-order"/> to each record and the order of <xref target="bundles"/> to each bundle, and reports the first failing reason code.</t>
      <t>A reader is not described as conforming to this revision unless it reaches the verdict and the reason its manifest declares on every member of the <tt>vectors-restart-records</tt> family of release 0.31.2 of <xref target="VECTORS"/>. That family carries 57 members, 15 to accept and 42 to reject, with corpus digest <tt>5b7f58c91b517bd7c96dcccdef0d827a4f730fd4a650b4992b362bb9925cae29</tt>. Each reject member changes exactly one value of an accepting control, and the rule it names is the first that fails. Three rules have no member, and the manifest lists each with its reason: rule 3 of R4 and of RB, which carry no registry-defined value, and bundle rule B4, which would need a SHA-256 fixed point to force. Passing the corpus is necessary and not sufficient; those three rules are checked by reading them.</t>
      <t>A document that references this one normatively <bcp14>SHOULD</bcp14> name the revision it relies on and <bcp14>MAY</bcp14> name a release of <xref target="VECTORS"/> as its conformance test. The five predicate type URIs, the reason codes, and the section anchors <tt>common</tt>, <tt>rule-order</tt>, <tt>r1</tt>, <tt>r2</tt>, <tt>r3</tt>, <tt>r4</tt>, <tt>rb</tt> and <tt>bundles</tt> are stable across revisions and may be referenced by name.</t>
    </section>
    <section anchor="impl">
      <name>Implementation Status</name>
      <t>Note to the RFC Editor: please remove this section before publication.</t>
      <t>This section records the status of known implementations at the time of writing, following <xref target="RFC7942"/>. Listing an implementation here does not imply endorsement by the IETF.</t>
      <t><xref target="VECTORS"/> is an open conformance corpus licensed under Apache-2.0. Its <tt>vectors-restart-records</tt> family publishes the members of <xref target="conformance"/> with a checker that uses only the Python standard library, and JSON Schemas for the five types that check shape and closed values. From the source of release 0.31.2:</t>
      <artwork><![CDATA[
git clone --branch v0.31.2 \
    https://github.com/probityai/agent-evidence-vectors
cd agent-evidence-vectors
python3 vectors-restart-records/check_vectors.py
]]></artwork>
      <t>On release 0.31.2 the run reports that all 57 members agree with the manifest. The checker also takes one record (<tt>--record</tt>) or one bundle directory (<tt>--bundle</tt>) and prints the verdict and the first failing reason. The repository's Go reader, built from the same release (<tt>go build ./cmd/aee-verify</tt>, then <tt>aee-verify vectors-restart-records</tt>), reports the same: 57 members, 15 accepted and 42 rejected, each as the manifest declares.</t>
    </section>
    <section anchor="audit-map">
      <name>Mapping to the AUDIT Problem Statement</name>
      <t>The AUDIT BoF request <xref target="AUDIT-BOFREQ"/> and the proposed charter <xref target="AUDIT-CHARTER"/> name problems a data model should address. This document addresses three of them for the period from containment to restoration:</t>
      <ul spacing="normal">
        <li>
          <t>Authorization state over time: R1 records each authorization with its window, R2 the revocation of credentials and its reach, R3 the decision that ends a containment, and the bundle rules bind them in order by digest and time.</t>
        </li>
        <li>
          <t>References to the identities of participating entities: R1 and R3 name each party with its role and its authority basis, and R4 names the organizations and the assets each may act on.</t>
        </li>
        <li>
          <t>Verification by a party that trusts neither the agent nor its operator: every record is signed, every closed value is fail-closed, and every rule has a reason code a second reader reproduces.</t>
        </li>
      </ul>
      <t>Action provenance for each enforced request is the subject of <xref target="AUDIT-RECORD"/>; an R3 cites such records by digest. Policy models, admission policy and retention periods are left to other work.</t>
    </section>
  </middle>
  <back>
<references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="AUDIT-RECORD">
          <front>
            <title>An Audit Record Format for AI Agent Authorization Decisions</title>
            <author fullname="Sankalp Gilda" initials="S." surname="Gilda">
         </author>
            <date day="29" month="October" year="2026"/>
            <abstract>
              <t>   This document defines a record format for AI agent authorization
   decisions and the effects that followed them.  The format is one in-
   toto predicate type, signed inside a DSSE envelope.  A record carries
   the decision and the observed effect with a derived agreement between
   them, whether the decision point could evaluate the request and how
   fresh each input it relied on was, and a canonicalization contract
   under which a party that trusts neither the agent nor its operator
   recomputes the record's consistency from its bytes.  The document
   also defines what a party that retains a record keeps beside it, so
   that the record can later be dated from anchors that party does not
   control.  The format carries the seven minimum audit fields of the
   WIMSE AI Identity Management System framework, and it is offered as a
   data model for the audit records the proposed AUDIT working group
   would specify.  It defines no policy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-gilda-audit-agent-audit-record-03"/>
        </reference>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="IN-TOTO" target="https://github.com/in-toto/attestation/blob/main/spec/README.md">
          <front>
            <title>in-toto Attestation Framework Specification</title>
            <author>
              <organization>in-toto</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DSSE" target="https://github.com/secure-systems-lab/dsse">
          <front>
            <title>Dead Simple Signing Envelope</title>
            <author>
              <organization>Secure Systems Lab</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="VOCABULARY" target="https://w3id.org/agent-evidence/vocab/v1/">
          <front>
            <title>agent-evidence-vocabulary: a closed term registry</title>
            <author>
              <organization>agent-evidence-vocabulary contributors</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="VECTORS" target="https://github.com/probityai/agent-evidence-vectors/tree/v0.31.2/vectors-restart-records">
          <front>
            <title>agent-evidence-vectors: conformance vectors for agent evidence records, release 0.31.2</title>
            <author>
              <organization>agent-evidence-vectors contributors</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AIMS">
          <front>
            <title>AI Identity Management System</title>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Jeff Lombardo" initials="J." surname="Lombardo">
              <organization>AWS</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Nick Steele" initials="N." surname="Steele">
              <organization>OpenAI</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="15" month="September" year="2026"/>
            <abstract>
              <t>   This document proposes best practices for authentication and
   authorization of AI agent interactions.  It leverages existing
   standards such as the Workload Identity in Multi-System Environments
   (WIMSE) architecture and OAuth 2.0 family of specifications.  Rather
   than defining new protocols, this document describes how existing and
   widely deployed standards can be applied or extended to establish
   agent authentication and authorization.  By doing so, it aims to
   provide a framework within which to use existing standards, identify
   gaps and guide future standardization efforts for agent
   authentication and authorization.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-aims-00"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="AUDIT-BOFREQ" target="https://datatracker.ietf.org/doc/bofreq-kuhlewind-audit-agent-use-of-delegation-and-interaction-traceability/">
          <front>
            <title>AUDIT - Agent Use of Delegation and Interaction Traceability</title>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
            </author>
            <date year="2026" month="October" day="08"/>
          </front>
        </reference>
        <reference anchor="AUDIT-CHARTER" target="https://github.com/mirjak/audit-bof-preparation/blob/main/audit-charter.md">
          <front>
            <title>Agent Use of Delegation and Interaction Traceability (AUDIT) Working Group Charter (proposed)</title>
            <author>
              <organization>AUDIT BoF proponents</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="NIST-SP-800-61R3" target="https://doi.org/10.6028/NIST.SP.800-61r3">
          <front>
            <title>Incident Response Recommendations and Considerations for Cybersecurity Risk Management: A CSF 2.0 Community Profile</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2025" month="April"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-61 Rev. 3"/>
        </reference>
        <reference anchor="NIST-SP-800-184" target="https://doi.org/10.6028/NIST.SP.800-184">
          <front>
            <title>Guide for Cybersecurity Event Recovery</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2016" month="December"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-184"/>
        </reference>
        <reference anchor="NIST-SP-800-53R5" target="https://doi.org/10.6028/NIST.SP.800-53r5">
          <front>
            <title>Security and Privacy Controls for Information Systems and Organizations</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2020" month="September"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-53 Rev. 5"/>
        </reference>
        <reference anchor="KEY-PRACTICES">
          <front>
            <title>Key Practices for Incident Readiness and Response in Super Intelligence Training and Evaluation</title>
            <author>
              <organization>NIST Center for AI Standards and Innovation, NSA, and CISA</organization>
            </author>
            <date year="2026" month="October" day="16"/>
          </front>
        </reference>
        <reference anchor="AWS-AGENTIC-LENS" target="https://docs.aws.amazon.com/wellarchitected/latest/agentic-ai-lens/agentsec07-bp04.html">
          <front>
            <title>AGENTSEC07-BP04, Agentic AI Lens, AWS Well-Architected Framework</title>
            <author>
              <organization>Amazon Web Services</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>

<section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>-00: Initial version. Defines five record types and the bundle rules; the predicate type URIs are those published with release 0.31.2 of the conformance corpus.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The evidence slots of the re-enable decision follow the restart conditions of NIST SP 800-61 Rev. 3, NIST SP 800-184, NIST SP 800-53 Rev. 5, the NIST, NSA and CISA Key Practices of October 2026, and the AWS Agentic AI Lens.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7V96XLcyLHu/34KXOrHSI5Gc9dC+dinRVE27dFikuMJx7kn
2OhGNQkLDfSg0OTQlPws51nuk938MrMWoJtaHD6OsKaJpZasrMwvszITaZoO
2qItzVGydWZsWzdZW9RVcnJT5KaameTMzOomt8m8bpLxaTK+MlWbnFYz3G7p
rl3WlTVbg2w6bczNV1rZGsyy1lzVzd1RYtt8MMjrWZUtqPO8yeZtelWUeZZm
q7xo0ya0kxptJ93ZGdjVdFFYS5fbuyW9eXpy8WZQrRZT0xwNcmr+aDDDkCq7
skdJ26zMgIa1P8gak9Hwzs1s1RTt3dbgo7m7pUEdDZI04S75B+aHH4WbYqNT
xEWaYT3jIclffoSDG1OtqOckuWrq1ZL6Gf/0+vRiiy7IKLdeFaBiPU+y5I3J
2mvT4OYiK0q6yd3/Z2Ha+ahurnAja2bXdOO6bZf2aHsbz+FScWNG7rFtXNie
NvWtNdvcwvbWYJCt2uu6waSolSSZr8pSKLx1nlUfs3KZ/AFE3uK7Rvu3cmvE
9P/PK1wdzeoFNVfVzYJmeMNz4zmlZyfH789eE+HT16N4wZh0fvGw3vTK2Zvj
/f39F0fy89nBi339+fzZ80P8PH2XXry/eH/E43GcWFRpW7d1Mm5borHw0puG
pkEL9jE5X5pZMS9kIWQibdZcmfYocfS6Ktrr1RRz2Na2trPQ1va0rKegabVt
qa3ts5Px67cno0XObXkK8v/ShEgdhiTdMZslezt7T+nP1+fnJ93hvzZZnpwX
i2Vp6D9XVVFdJSfVjSnrpfnqeC0Y1KT2zrZmYdMym27nFuz34NCYpakneSP5
MZtuGOVf3x+PX/304/jsb92xyqr5DQb+nq6I12iHZsmsrK3Jk9Y0C+L2q8K2
zd3mCdzuF7kwZae9bW5v+2Z3+wvjf3AICW3ktimmK9pmdtOcTo4v3p+df3lC
Zoa3j9DWHMwMcaQXWajx84l7PhHOtUP6UZrMmmRntL872vvqsi2bekpiJSu2
Nw9gu20MkUNa29aLLOSyxu0X+x1E0hl8kUKDQqbs9+/p23PZt5Ah6W2xsCbN
6F/dnS8O9sI2f/X+zdnJX7q05Ts0JNECPxF1SKC9JkJdyR7Nqpx0A7FLNuO/
L+iHyaZFyQJ3EwVptFlLT300TRBspBW2p/W8Mb+kH1fXpbktqrwjZFY07nqe
5r7nlHpOi9Bz2kY9b+Y9lYpvi+bvWfLnldF++kRMd3fSneeeKsd/HJ9dnJz1
yPIvkCN5zA0+SX4mkQYB8QcojuT4mtjBNMlj4qclNt+Tr3LeAjP4KBogJbKl
y8Yss6Yv6eT+TNr/sqyTZX5Vv0l4FBXNbtP2e3d6fpGef0if7+ykT3fP9rtE
WcMIDAIWC1PlPDTL5DmmH/RYo5ewIY/vSJVbVdPJWWE/Jm+zihaeXiUKjJPj
8zfJ3miH3l0sVhUe+tDU86J8QLbmdcFctbszerqz93wbwx6dfxjJsJt9fsma
pjAW+8URYwvPia7JyuTDalo6jUOTk3dpRjejZH/rC6R8x69QA6eVJcqsWuaR
85bmngEQgAYXZnZd1WV9ddcj8mG6c9Cj8+7zgy6Z/7Ai8m2g28mN0H5W35iH
hPaXKEMd/auEoVf/t0iyS/txr0eSw/2zwy5NHMbjpj40xU02uwOntU1dCo+d
OsFIu9LpTTz8vrnKquIfwo3fT7TD/ebwX6Xa4b6w0+H/GjuRIHtBV/588rf0
w9n4+OL0+KSnO/9ssJcgrWbGEcrv4iwvKmOlD7+nC6LfamkalnNlWVyxEiVB
VzDqwbMnN1m5irDaAzMDeY4NpKWzNbrTOq2q+oabGSbvzsdDER+n5+NNEnsX
8mn883k6/sPJO5po+uPJu95c+c75yfHOs/TVh52DoSi1YoaefyTrYYj3k59p
UukYyLsljUtYyMPQh7hjZkfZLf1/kf2jrlhA31IbWWhiu8yARAUnFDNSwGlJ
/cnftH9pQNPlzsHoul2UXxLS3AENcJqcm+YGK7YOANKUTJqphTZsB4Ofrw2U
EmYoqEdAZlJYssbq5dLkQzZqmoKnSqtwndmkaAlmNAZcQKxr2Qj6SLdz2mO8
xN5WGia2XhjSFwmm2CS5wXWb3F4bGDzUEhk8d0mzolFcEYeMAns5Kyu5InnG
GC2zH4UF2+us5aZg8yVkFUxNQmReQR3QMG5JE9IzhNygKfjhBnYNVpBwUVLV
iez1xGZ3GAv94scZciWLlW0ZRdEbggcTUp4kO+pVC83Ez+ZmWdZ3mG0dCQiM
ZXZtZh9pYqPk4prI6MZFb8yxW5I5QS/XFSzBaErLVQMNfxRTMFGkIEuu/RCr
R5ZnYm+NWcq11FTZtDSeOrj697pAO9IAZCDZylcVDwpdu56sDMIuqfd4UlY2
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
AAA=

-->

</rfc>
