<?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.39 (Ruby 4.0.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-thallapelly-oasnt-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="OASNT">OASNT: Attested Action Authorization Tokens</title>
    <seriesInfo name="Internet-Draft" value="draft-thallapelly-oasnt-01"/>
    <author initials="A." surname="Thallapelly" fullname="Arun Thallapelly">
      <organization>OmniArx</organization>
      <address>
        <email>arun@advitlabs.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="24"/>
    <area>Security</area>
    <keyword>attestation</keyword>
    <keyword>authorization</keyword>
    <keyword>WYSIWYS</keyword>
    <keyword>mobile</keyword>
    <keyword>agent</keyword>
    <abstract>

<t>This document defines the OASNT token, a compact JWS-based credential in
which a hardware-bound device key attests that a specific human, on a
device whose runtime integrity was assessed, authorized one specific
action whose human-readable disclosure is cryptographically bound to the
token (What You See Is What You Sign). Tokens are single-use, short-lived,
and may additionally be bound to one concrete HTTP request.</t>
    </abstract>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Systems increasingly execute consequential actions on a person's behalf without
that person present at the moment of execution. Autonomous agents move funds,
change access, and modify records, carrying credentials that prove only who
issued them and to whom. Such a credential does not record that any human saw
the operation it is now being used to perform.</t>
      <t>Where a human approval step does exist, it is usually a server-side artifact: a
flag on a session, a row in a table, a callback that fired. The approval and the
executed operation are connected by application logic rather than by
cryptography, so an incident review cannot establish what the approving person
actually read. Nor can it establish anything about the device they read it on.</t>
      <t>This document defines the OASNT token, which addresses both gaps in a single
signed object. A key held in device-resident secure hardware signs a digest of
the action to be performed, a digest of the disclosure text as it was rendered
to the user, and optionally a fingerprint of the one concrete request the
approval authorizes. The signed object also carries the device's own assessment
of its runtime integrity at the moment of signing.</t>
      <t>Binding the rendered disclosure, rather than only the operation, is the property
this document treats as essential and is commonly called What You See Is What You
Sign. Its absence is exploitable: a system that binds only the operation will
accept a token whose operation digest was recomputed after the human approved
something else. <xref target="verify"/> therefore requires the disclosure binding and forbids
falling back to operation binding alone.</t>
      <t>OASNT is deliberately narrow. It expresses a single human authorization event as
verifiable evidence. It does not describe delegation between components, policy
evaluation, or how authority is attenuated as it passes through a system.
Frameworks that address those concerns, including remote attestation procedures
<xref target="RFC9334"/>, can consume an OASNT token as the human-authorization evidence at
the root of a chain they otherwise manage.</t>
    </section>
    <section anchor="related">
      <name>Relationship to Other Work</name>
      <t>Several active efforts address adjacent parts of this problem. This section states what
they cover and what this document adds, so that the delta is explicit rather than implied.
Descriptions reflect the versions available at the time of writing.</t>
      <section anchor="human-authorization-receipts">
        <name>Human authorization receipts</name>
        <t><xref target="I-D.schrock-ep-authorization-receipts"/> defines a signed receipt asserting that a named
human, or an M-of-N quorum, authorized a specific operation before execution, together
with transparency-log inclusion proofs and key directory material that this document does
not attempt to duplicate. <xref target="I-D.schrock-ep-action-evidence-graph"/> composes such receipts
into a portable evidence graph with a replayable admissibility verdict, and
<xref target="I-D.rampalli-cross-org-delegation-mapping"/> treats human authorization as a distinct
capability satisfied by artifacts of that kind. This document is written to interoperate
with that work rather than to restate any part of it.</t>
        <t>Those receipts bind an action digest and a context digest, and require that the approver
be shown a faithful human-readable rendering of the action. The signature covers the
context digest rather than the rendered text. That is a deliberate scoping decision, and a
defensible one: the receipt is designed to establish evidentiary exactness, and honouring
the rendering requirement is left to the approving client, which in the general case is
the only party positioned to do so.</t>
        <t>This document specifies the complementary piece for the case where that client is a mobile
device. <xref target="canon-display"/> defines a digest over the rendered octets and <xref target="verify"/> requires
it to match, which lets a relying party confirm the rendering requirement was honoured
rather than rely on it having been. The binding is meaningful here because such a device
renders the disclosure and holds the signing key within a single trust boundary, which is
not true of authenticators generally; see <xref target="txconf"/>.</t>
        <t>An OASNT token can therefore serve as the human-authorization artifact that a receipt of
this kind carries or references, adding the display binding without altering the
surrounding evidence model, its transparency machinery, or its quorum semantics.</t>
      </section>
      <section anchor="executor-models">
        <name>Executor-side processing models</name>
        <t><xref target="I-D.schrock-action-evidence-boundary"/> defines an executor-side processing model for
consequential agent actions: native verification of each artifact, matching against a
Canonical Action Identifier, satisfaction of an authorization evidence chain, atomic
consumption of one-time authority, and closed effect outcomes. It deliberately defines no
token format, and the artifacts it consumes retain their own semantics and verifiers.</t>
        <t>An OASNT token is designed to be consumed by such a model as a natively verified,
attested per-action artifact, and the boundary between the two layers is clean. The token
is independently verifiable: the verifier recomputes <tt>adg</tt> from its own representation of
the action (<xref target="verify"/>), so the token means the same thing wherever it is evaluated, and a
canonical action identifier can be derived from that same recomputation rather than from
any value the token carries. Where a concrete request is authorized, <tt>rqf</tt> supplies the
admissibility condition, and its absence is a refusal rather than a downgrade. Single use
of <tt>jti</tt> is token-local (<xref target="reserve-commit"/>); coordinating consumption of authority across
executors or trust domains is an executor-side concern, and a processing model of this
kind is the natural place for it.</t>
        <t>A profile of this document is planned to fix the derivation of a canonical action
identifier from <tt>adg</tt>, together with the semantics of the named-human binding, so that
every executor checks one derivation rather than each integration defining its own.</t>
      </section>
      <section anchor="txconf">
        <name>Transaction confirmation in WebAuthn</name>
        <t>The <tt>txAuthSimple</tt> and <tt>txAuthGeneric</tt> extensions to <xref target="WEBAUTHN"/> were defined to carry a
prompt for display on the authenticator, which is the same property <xref target="canon-display"/>
provides. They were not implemented by browsers and have been proposed for removal as
untestable.</t>
        <t>The obstacle is architectural rather than a lack of interest: a general-purpose
authenticator has no display, so it cannot attest to what a user was shown. This document
targets a class of device where the constraint does not hold. A modern mobile device
renders the disclosure and holds the signing key inside the same trust boundary, which is
what makes a binding over the rendered octets meaningful. <xref target="display-trust"/> states the
limits of that assumption.</t>
      </section>
      <section anchor="agent-identity-delegation-and-policy">
        <name>Agent identity, delegation and policy</name>
        <t><xref target="I-D.ietf-wimse-arch"/> and <xref target="I-D.ni-wimse-ai-agent-identity"/> establish workload identity
for non-human callers. <xref target="I-D.mishra-oauth-agent-grants"/> and <xref target="RFC8693"/> address delegated
authorization and token exchange. <xref target="I-D.mcguinness-oauth-actor-proofs"/> adds per-hop
actor-signed evidence. <xref target="I-D.nivalto-agentroa-route-authorization"/> defines policy
envelopes, per-hop attestations and enforcement receipts, and admits device-bound approval
strengths.</t>
        <t>These operate at a different layer, and deliberately so. Each constrains what an agent is
permitted to do and records how authority moved between components. None sets out to
establish what a human was shown before agreeing, which is the question this document
takes up. The relationship is complementary: OASNT produces evidence for the root of a
delegation chain that those mechanisms then carry and attenuate.</t>
      </section>
      <section anchor="regulatory-requirements">
        <name>Regulatory requirements</name>
        <t>Strong customer authentication under <xref target="PSD2-RTS"/> requires that authentication codes be
dynamically linked to a specific amount and payee, and that the payer be made aware of
both. Electronic signature practice describes the same property as What You See Is What
You Sign.</t>
        <t>These establish the requirement without defining an interoperable format for the
resulting evidence. Deployed implementations are largely proprietary, frequently using
dedicated hardware with a trusted display. This document specifies a claim format for the
same property on general-purpose mobile hardware.</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>

<t>The term "disclosure" refers to the human-readable text presented to a user
on a display, in the form in which the user read it, immediately before that
user authorized an action.</t>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>Three roles participate.</t>
      <t>The <strong>minter</strong> runs on the user's device. It holds the signing key in secure
hardware, renders the disclosure, obtains the user's approval, and produces the
token. It is the only role that observes the human.</t>
      <t>The <strong>enrollment service</strong> establishes, once per key, that the key is
hardware-bound and belongs to the device it claims to. It records the key's
thumbprint. <xref target="enrollment"/> specifies this.</t>
      <t>The <strong>verifier</strong> is the party about to execute the action. It holds the set of
enrolled thumbprints, recomputes every binding from its own representation of
what it is about to do, and accepts or refuses. <xref target="verify"/> specifies this.</t>
      <t>A typical exchange:</t>
      <artwork><![CDATA[
   verifier                 minter (device)          enrollment service
      |                           |                          |
      |                           |---- attested key ------->|
      |                           |<--- enrolled ------------|
      |                           |                          |
      | -- action + disclosure -->|                          |
      |                           | renders disclosure       |
      |                           | user approves            |
      |                           | hardware key signs       |
      |<------- token ------------|                          |
      | recompute adg, dsp, rqf   |                          |
      | accept or refuse          |                          |
]]></artwork>
      <t>How the action reaches the device, and how the token returns, are out of scope.
The token is self-contained and its verification does not depend on the channel
that carried it.</t>
      <t>Two properties follow from this arrangement and are relied on throughout.</t>
      <t>First, the verifier never trusts the token for anything it can compute itself.
Every digest is recomputed from the verifier's own view of the action and
request. The token supplies only digests to compare against and a key identifier
to look up.</t>
      <t>Second, the party that observes the human is the party that holds the key. The
disclosure binding is meaningful only because rendering and signing happen inside
the same trust boundary. <xref target="display-trust"/> states the limits of that assumption.</t>
    </section>
    <section anchor="token-format">
      <name>Token Format</name>
      <t>An OASNT token is a JWS <xref target="RFC7515"/> in compact serialization.</t>
      <section anchor="jose-header">
        <name>JOSE Header</name>
        <t>The protected header <bcp14>MUST</bcp14> consist of exactly the members <tt>alg</tt> and <tt>typ</tt>,
with the values shown:</t>
        <sourcecode type="json"><![CDATA[
{"alg":"ES256","typ":"oasnt+jwt"}
]]></sourcecode>
        <t>A verifier <bcp14>MUST</bcp14> reject a token whose <tt>alg</tt> is not <tt>ES256</tt> or whose <tt>typ</tt> is
not <tt>oasnt+jwt</tt>. Algorithm agility is deliberately not offered; see
<xref target="alg-rationale"/>.</t>
      </section>
      <section anchor="signature">
        <name>Signature</name>
        <t>The signature is ECDSA using P-256 and SHA-256, encoded as the concatenation
<tt>R || S</tt> of two 32-octet big-endian integers (64 octets total), base64url
encoded without padding per <xref target="RFC7515"/>. A verifier <bcp14>MUST</bcp14> reject a signature
whose decoded length is not exactly 64 octets.</t>
      </section>
      <section anchor="claims">
        <name>Claims</name>
        <t>The JWS payload is a JSON object <xref target="RFC8259"/> containing the following members.
All digest-valued claims are base64url <xref target="RFC4648"/> encoded without padding,
over a SHA-256 <xref target="RFC6234"/> digest.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claim</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Binds</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>sub</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">the subject the token was issued for</td>
            </tr>
            <tr>
              <td align="left">
                <tt>adg</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">the action to be executed (<xref target="canon-action"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>dsp</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">the disclosure the human read (<xref target="canon-display"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>rqf</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">one concrete request (<xref target="canon-rqf"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>int</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">result of a device runtime integrity assessment at signing time</td>
            </tr>
            <tr>
              <td align="left">
                <tt>jti</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">single-use nonce</td>
            </tr>
            <tr>
              <td align="left">
                <tt>iat</tt></td>
              <td align="left">number</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">issuance time, seconds since the epoch</td>
            </tr>
            <tr>
              <td align="left">
                <tt>exp</tt></td>
              <td align="left">number</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">expiry, seconds since the epoch</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cnf</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">key confirmation; contains <tt>jkt</tt></td>
            </tr>
          </tbody>
        </table>
        <t><tt>cnf.jkt</tt> is the JWK thumbprint <xref target="RFC7638"/> of the public key corresponding
to the signing key.</t>
        <t><tt>int</tt> takes exactly one of the values <tt>clean</tt>, <tt>compromised</tt>, or <tt>unknown</tt>.
It is asserted by the device, not proven by the token; see <xref target="int-trust"/>.</t>
        <t>The payload is signed as serialized. Member order is at the minter's
discretion and carries no meaning, because verification recomputes the
signature over the octets as received and never re-serializes the payload.
An implementation <bcp14>MUST NOT</bcp14> depend on member order.</t>
        <t>An <bcp14>OPTIONAL</bcp14> claim that is absent <bcp14>MUST</bcp14> be omitted entirely rather than
included with an empty or null value. This distinction is load-bearing:
<xref target="verify"/> requires a verifier to distinguish "not bound to a request" from
"bound to a request that does not match".</t>
      </section>
    </section>
    <section anchor="canon">
      <name>Canonicalization</name>
      <t>Three canonical encodings are defined. Each is hashed with SHA-256 and
base64url encoded to produce a claim value. None of them is ever parsed;
they exist only to be produced deterministically and hashed.</t>
      <section anchor="key-order">
        <name>Key ordering</name>
        <t>Wherever this document specifies that parameters are sorted, they <bcp14>MUST</bcp14> be
sorted in ascending lexicographic order of the UTF-8 octet sequence of the
parameter name.</t>
        <t>Implementations <bcp14>MUST NOT</bcp14> sort by UTF-16 code unit, which is the default
string ordering in some languages and which differs from UTF-8 octet order
for names containing characters outside the Basic Multilingual Plane. Two
implementations disagreeing here will produce different digests for the same
action and fail to interoperate.</t>
        <t>Parameter names <bcp14>MUST</bcp14> be unique within an action. A duplicate name <bcp14>MUST</bcp14> cause
the minter to fail rather than resolve the duplicate.</t>
      </section>
      <section anchor="canon-action">
        <name>Canonical action</name>
        <t>The canonical action is:</t>
        <artwork><![CDATA[
escape(type) "|"
  escape(k1) "=" escape(v1) "&"
  escape(k2) "=" escape(v2) ...
]]></artwork>
        <t>(shown wrapped for width; the canonical string contains no line breaks)</t>
        <t>where parameters are ordered per <xref target="key-order"/>, and <tt>escape()</tt> prefixes each
occurrence of the four octets <tt>\</tt>, <tt>|</tt>, <tt>=</tt>, and <tt>&amp;</tt> with a single <tt>\</tt>. Each
input octet is classified exactly once; the escape prefix introduced for one
octet is never itself re-escaped.</t>
        <t>The <tt>|</tt> separator is emitted even when there are no parameters.</t>
        <t><tt>adg</tt> is the base64url encoding of the SHA-256 digest of this string.</t>
        <t>Escaping is what prevents a parameter value from impersonating a separator.
Without it, the parameter pair (<tt>a</tt>, <tt>b&amp;c=d</tt>) and the pair set
{(<tt>a</tt>,<tt>b</tt>), (<tt>c</tt>,<tt>d</tt>)} would produce identical canonical strings and thus
identical digests.</t>
      </section>
      <section anchor="canon-display">
        <name>Canonical display</name>
        <t>The canonical display is the disclosure text, constructed as the <tt>type</tt>
followed, for each parameter in the order of <xref target="key-order"/>, by a line feed
(0x0A), the parameter name, a colon, a space, and the parameter value:</t>
        <artwork><![CDATA[
escape(type)
  LF escape(k1) ": " escape(v1)
  LF escape(k2) ": " escape(v2) ...
]]></artwork>
        <t>(shown wrapped for width; LF marks the only line breaks the string contains)</t>
        <t>Here <tt>escape()</tt> replaces each <tt>\</tt> with <tt>\\</tt> and each line feed with the two
characters <tt>\n</tt>, in that order, and performs no other transformation.</t>
        <t><tt>dsp</tt> is the base64url encoding of the SHA-256 digest of this string.</t>
        <t>This string is what the human reads. A verifier that recomputes <tt>dsp</tt> is
asserting that the octets displayed to the user are the octets the user's
key signed. See <xref target="display-trust"/> for the boundary of that assertion.</t>
      </section>
      <section anchor="canon-rqf">
        <name>Request fingerprint</name>
        <t>The request fingerprint binds a token to one concrete request. It is the
base64url encoding of the SHA-256 digest of:</t>
        <artwork><![CDATA[
method 0x00 path 0x00 org-id 0x00 scope 0x00 body-digest
]]></artwork>
        <t>where <tt>body-digest</tt> is the raw 32-octet SHA-256 digest of the request body,
and the digest of the empty string is used when there is no body. The four
text fields are UTF-8 encoded and <bcp14>MUST NOT</bcp14> contain a NUL octet; a minter or
verifier encountering one <bcp14>MUST</bcp14> treat the input as invalid rather than
attempt to encode it.</t>
        <t>The NUL separators make the encoding unambiguous for fields that may
themselves contain any non-NUL octet. <tt>body-digest</tt> is appended raw rather
than hex- or base64-encoded, and is fixed-length, so no separator follows it.</t>
      </section>
    </section>
    <section anchor="verify">
      <name>Verification Procedure</name>
      <t>A verifier <bcp14>MUST</bcp14> perform the following checks. Every failure is terminal: a
token that fails any check <bcp14>MUST</bcp14> be refused, and <bcp14>MUST NOT</bcp14> be accepted on
weaker terms.</t>
      <t>The order below is normative only where a later step depends on an earlier
one having established its precondition. Implementations are <bcp14>RECOMMENDED</bcp14> to
evaluate all applicable checks and report the complete set of failures, as
this materially assists integration; see <xref target="reason-reporting"/>.</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Structure.</strong> The token <bcp14>MUST</bcp14> consist of exactly three base64url segments
separated by two <tt>.</tt> characters, and the first two <bcp14>MUST</bcp14> decode to
well-formed JSON objects.</t>
        </li>
        <li>
          <t><strong>Header.</strong> <tt>alg</tt> <bcp14>MUST</bcp14> equal <tt>ES256</tt> and <tt>typ</tt> <bcp14>MUST</bcp14> equal <tt>oasnt+jwt</tt>.</t>
        </li>
        <li>
          <t><strong>Key lookup.</strong> The verifier <bcp14>MUST</bcp14> look up <tt>cnf.jkt</tt> among keys that have
completed enrollment (<xref target="enrollment"/>). A thumbprint that is absent,
malformed, or not enrolled <bcp14>MUST</bcp14> be refused. The verifier <bcp14>MUST NOT</bcp14> accept
a key supplied by the token itself.</t>
        </li>
        <li>
          <t><strong>Signature.</strong> The signature <bcp14>MUST</bcp14> verify under the enrolled public key
over the octets <tt>BASE64URL(header) "." BASE64URL(payload)</tt> exactly as
received.</t>
        </li>
        <li>
          <t><strong>Thumbprint confirmation.</strong> The verifier <bcp14>MUST</bcp14> recompute the JWK
thumbprint of the enrolled key and confirm it equals <tt>cnf.jkt</tt>.</t>
        </li>
        <li>
          <t><strong>Expiry.</strong> <tt>exp</tt> <bcp14>MUST</bcp14> be a number and <bcp14>MUST</bcp14> be greater than or equal to
the current time.</t>
        </li>
        <li>
          <t><strong>Issuance.</strong> <tt>iat</tt> <bcp14>MUST</bcp14> be a number and <bcp14>MUST NOT</bcp14> be more than a small
tolerance in the future. Implementations <bcp14>SHOULD</bcp14> use 5 seconds.</t>
        </li>
        <li>
          <t><strong>Replay.</strong> <tt>jti</tt> <bcp14>MUST</bcp14> be present and <bcp14>MUST NOT</bcp14> have been seen before.
See step 12 for when it is recorded.</t>
        </li>
        <li>
          <t><strong>Action binding.</strong> <tt>adg</tt> <bcp14>MUST</bcp14> equal the digest recomputed per
<xref target="canon-action"/> over the action the verifier is about to execute. The
verifier <bcp14>MUST</bcp14> recompute this from its own representation of that action
and <bcp14>MUST NOT</bcp14> use any value carried in the token.</t>
        </li>
        <li>
          <t><strong>Intent binding.</strong> <tt>dsp</tt> <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> equal the digest
recomputed per <xref target="canon-display"/> over that same action. A token lacking
<tt>dsp</tt> <bcp14>MUST</bcp14> be refused rather than accepted as action-bound only.</t>
        </li>
        <li>
          <t><strong>Request binding.</strong> If the verifier is authorizing a concrete request,
then <tt>rqf</tt> <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> equal the fingerprint recomputed per
<xref target="canon-rqf"/> over that request. A token lacking <tt>rqf</tt> <bcp14>MUST</bcp14> be refused
in this case. If the verifier is not authorizing a concrete request,
<tt>rqf</tt> is ignored.</t>
        </li>
        <li>
          <t><strong>Integrity.</strong> <tt>int</tt> <bcp14>MUST</bcp14> equal <tt>clean</tt>.</t>
        </li>
        <li>
          <t><strong>Commit.</strong> Only if every preceding check passed, the verifier <bcp14>MUST</bcp14>
record <tt>jti</tt> as seen.</t>
        </li>
      </ol>
      <section anchor="reserve-commit">
        <name>Reserve and commit</name>
        <t>Step 13 is deliberately last. A verifier that records <tt>jti</tt> when it first
observes the claim can be induced to consume the nonce of a legitimate
token: an attacker who observes a token in flight may alter any octet and
submit the result, which fails signature verification but, under a
record-on-sight implementation, has already burned the nonce. The genuine
token is then refused as a replay when it arrives.</t>
        <t>Recording the nonce only after full validation removes this. A token that
fails any check leaves no trace, so an unforgeable copy cannot deny service
to the token it was copied from.</t>
        <t>The seen-<tt>jti</tt> set is scoped to the verifier deployment that maintains it.
This document does not define coordination of consumption across verifiers
or trust domains; where one authorization must be consumed exactly once
across several systems, that coordination belongs to the executor layer
(<xref target="executor-models"/>).</t>
      </section>
      <section anchor="reason-reporting">
        <name>Reporting refusal reasons</name>
        <t>Refusals are not interchangeable, and an integrator debugging a deployment
needs to distinguish a clock problem from a replay from a downgrade attempt.
Implementations are <bcp14>RECOMMENDED</bcp14> to return a distinguishable reason per
failed check.</t>
        <t>Reasons <bcp14>SHOULD NOT</bcp14> be returned to an untrusted caller where doing so would
reveal whether a given key is enrolled or whether a given nonce has been
seen.</t>
      </section>
    </section>
    <section anchor="enrollment">
      <name>Enrollment and Key Attestation</name>
      <t>A verifier accepts a token only if <tt>cnf.jkt</tt> names a key that completed
enrollment. Enrollment establishes, once, that the key is resident in device
secure hardware and that the party presenting it controls it.</t>
      <section anchor="challenge">
        <name>Challenge</name>
        <t>The enrollment service <bcp14>MUST</bcp14> issue a random challenge of at least 32 octets,
bound to the subject enrolling, with a bounded lifetime. Implementations <bcp14>SHOULD</bcp14>
use 300 seconds.</t>
        <t>A challenge <bcp14>MUST</bcp14> be single-use. It <bcp14>MUST</bcp14> be consumed on first presentation
whether or not enrollment subsequently succeeds, so that a failed attempt cannot
be retried against the same challenge. A challenge that is unknown, already
consumed, or expired <bcp14>MUST</bcp14> cause enrollment to fail.</t>
      </section>
      <section anchor="platform-attestation">
        <name>Platform attestation</name>
        <t>The enrolling party presents a platform attestation over the challenge. The
service <bcp14>MUST</bcp14> verify, at minimum:</t>
        <ol spacing="normal" type="1"><li>
            <t>that the attestation chains to a trusted root for the claimed platform;</t>
          </li>
          <li>
            <t>that the challenge inside the attestation equals the challenge issued;</t>
          </li>
          <li>
            <t>that the attested key is hardware-backed;</t>
          </li>
          <li>
            <t>that the attested public key equals the key being enrolled.</t>
          </li>
        </ol>
        <t>Check 4 is what prevents an attacker from presenting a genuine attestation
obtained elsewhere while enrolling a key they control. The service <bcp14>MUST</bcp14> compare
the thumbprint of the attested key with the thumbprint of the presented key and
<bcp14>MUST</bcp14> refuse on any difference.</t>
        <t>For Android Key Attestation, the security level recorded in the attestation
extension <bcp14>MUST</bcp14> indicate a trusted execution environment or a dedicated secure
element. An attestation reporting a software-only security level <bcp14>MUST</bcp14> be
refused.</t>
        <t>For Apple App Attest, the service <bcp14>MUST</bcp14> verify the attestation object's
certificate chain to the Apple root, that the nonce extension equals
<tt>SHA-256(authenticatorData || SHA-256(challenge))</tt>, and that the relying-party
identifier hash in the authenticator data equals <tt>SHA-256</tt> of the expected
application identifier.</t>
      </section>
      <section anchor="storage">
        <name>Storage</name>
        <t>On success the service records the subject, the public key, and its thumbprint
<xref target="RFC7638"/>. Verifiers look up keys by thumbprint alone.</t>
      </section>
      <section anchor="deployment-without-attestation">
        <name>Deployment without attestation</name>
        <t>A deployment may record a key without verifying a platform attestation, for
example where an enrollment service has not been configured with trusted roots.
Such a deployment does not provide the properties this document describes. Every
guarantee here reduces to the enrollment check, and a key admitted without
attestation is not known to be hardware-bound. Implementations <bcp14>SHOULD</bcp14> make this
mode impossible to enable in a production configuration.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="alg-rationale">
        <name>Signature algorithm</name>
        <t><tt>ES256</tt> is mandated rather than negotiated. The signing key is required to
be hardware-bound (<xref target="enrollment"/>), and P-256 is the curve available across
the mobile secure elements this document targets. In particular, at the time
of writing, the iOS Secure Enclave supports P-256 and does not support
Ed25519, so a specification mandating Ed25519 for this purpose could not be
satisfied by a hardware-bound key on that platform.</t>
        <t>Offering algorithm agility in the header would also reintroduce the
algorithm-substitution attacks that a fixed <tt>alg</tt> forecloses.</t>
      </section>
      <section anchor="display-trust">
        <name>The display trust boundary</name>
        <t>The <tt>dsp</tt> claim binds the octets that were rendered. It does not, and cannot,
prove that a human read them, that the rendering was legible, or that the
operating system's display path was honest. WYSIWYS holds only to the extent
that the platform's rendering and input path is intact, which is precisely
what the runtime integrity assessment behind <tt>int</tt> exists to assess. The two
claims are complementary and each is weaker alone: <tt>dsp</tt> commits to the octets
that were shown, and <tt>int</tt> speaks to the integrity of the surface that showed
them. A relying party evaluating a disclosure binding <bcp14>SHOULD</bcp14> consider both.</t>
        <t>Binding the rendered disclosure is a stronger property than requiring one. A
specification can mandate that an approver be shown a faithful rendering, but
unless a digest of the rendered octets is carried in the signature, a relying
party cannot afterward confirm the requirement was met; it can only assume it.
<tt>dsp</tt> is that digest, which makes the requirement verifiable rather than
assumed. This is the property that separates binding what the human saw from
merely requiring that they be shown it.</t>
        <t>A verifier <bcp14>MUST NOT</bcp14> interpret a valid <tt>dsp</tt> as proof of comprehension or
consent in any legal sense. It proves that the signing key signed a digest
of specific displayed octets.</t>
      </section>
      <section anchor="int-trust">
        <name>Device-asserted integrity</name>
        <t><tt>int</tt> conveys the result of a runtime integrity assessment performed on the
device: a measurement of the execution environment, reduced to one of <tt>clean</tt>,
<tt>compromised</tt>, or <tt>unknown</tt>. It is asserted by software on the device and is
not a proof. A device whose runtime is fully compromised may defeat the
assessment and assert <tt>clean</tt>.</t>
        <t>Within that limit, the weight a relying party can place on <tt>int</tt> depends on the
assessment that produced it, and a relying party is entitled to distinguish the
two. An <tt>int</tt> value backed by a runtime integrity assessment that measures the
execution environment and can be updated as new evasion techniques appear is a
materially different input from a bare self-asserted flag with no measurement
behind it. The former raises the cost and skill required to forge <tt>clean</tt> and
records an auditable verdict; neither makes <tt>int</tt> a guarantee. This distinction
is why <tt>int</tt> carries an assessment result rather than a boolean.</t>
        <t>Relying parties <bcp14>SHOULD</bcp14> treat <tt>int</tt> as one input to a risk decision rather than
as a guarantee, <bcp14>SHOULD</bcp14> prefer platform attestation (<xref target="enrollment"/>) as the
stronger signal for admitting a key, and <bcp14>MAY</bcp14> require, as a matter of local
policy, that <tt>int</tt> be backed by a specified class of runtime assessment. A
relying party that treats <tt>int</tt> as dispositive on its own has misplaced the
trust boundary.</t>
      </section>
      <section anchor="canonicalization-ambiguity">
        <name>Canonicalization ambiguity</name>
        <t>Both hashed encodings are injective over their inputs only because of the
escaping rules in <xref target="canon"/>. An implementation that omits escaping, or that
escapes in a different order, will admit distinct actions with identical
digests, which defeats action binding entirely.</t>
        <t>The ordering requirement in <xref target="key-order"/> is a correctness requirement, not
a style preference. Two implementations that disagree will fail to
interoperate; because verification is fail-closed, they will refuse valid
tokens rather than accept invalid ones, but the deployment will be broken.</t>
      </section>
      <section anchor="verifier-side-recomputation">
        <name>Verifier-side recomputation</name>
        <t>A verifier <bcp14>MUST</bcp14> recompute every digest from its own representation of the
action and request. Using any plaintext carried alongside the token, or
reflecting values from the token into the recomputation, reduces the binding
to a self-consistency check and provides no security.</t>
      </section>
      <section anchor="compromise-of-the-enrollment-path">
        <name>Compromise of the enrollment path</name>
        <t>The security of every token reduces to the enrollment of its key. A verifier
that accepts an unattested key, or that admits a key whose attestation
chains to an untrusted root, gains nothing from the remaining machinery.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="json-web-token-claims">
        <name>JSON Web Token Claims</name>
        <t>IANA is requested to register the following in the "JSON Web Token Claims"
registry established by <xref target="RFC7519"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claim Name</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>adg</tt></td>
              <td align="left">Action digest</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="canon-action"/> of this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>dsp</tt></td>
              <td align="left">Disclosure digest</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="canon-display"/> of this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>rqf</tt></td>
              <td align="left">Request fingerprint</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="canon-rqf"/> of this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>int</tt></td>
              <td align="left">Device runtime integrity</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="claims"/> of this document</td>
            </tr>
          </tbody>
        </table>
        <t>None of these four names appears in the registry at the time of writing.</t>
      </section>
      <section anchor="adg-rationale">
        <name>On the choice of <tt>adg</tt></name>
        <t>The action digest is named <tt>adg</tt>, for action digest, rather than the more
obvious <tt>act</tt>. <tt>act</tt> is unavailable: <xref target="RFC8693"/> Section 4.1 registers it as the
"Actor" claim, a JSON object identifying the acting party in a delegation chain.</t>
        <t>The conflict would have been substantive rather than cosmetic. The registered
claim is an object and this one is a string, so a general-purpose JWT
implementation that understands <xref target="RFC8693"/> could mis-handle a token defined by
this document, and a relying party processing both could not disambiguate them.</t>
        <t>A nested object holding all three digests under one registered name was also
considered. Three top-level claims were chosen instead because <tt>rqf</tt> is
<bcp14>OPTIONAL</bcp14>, and its presence or absence is load-bearing in <xref target="verify"/>: an absent
top-level claim is unambiguous in a way that an absent member of a present
object is not.</t>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>IANA is requested to register the following in the "Media Types" registry.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Type name</td>
              <td align="left">application</td>
            </tr>
            <tr>
              <td align="left">Subtype name</td>
              <td align="left">oasnt+jwt</td>
            </tr>
            <tr>
              <td align="left">Required parameters</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Optional parameters</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Encoding considerations</td>
              <td align="left">binary; a JWS in compact serialization</td>
            </tr>
            <tr>
              <td align="left">Security considerations</td>
              <td align="left">See the Security Considerations of this document</td>
            </tr>
            <tr>
              <td align="left">Interoperability considerations</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Published specification</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">Applications that use this media type</td>
              <td align="left">Applications requiring evidence that a human authorized a specific action</td>
            </tr>
            <tr>
              <td align="left">Change controller</td>
              <td align="left">IETF</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>typ</tt> header parameter value <tt>oasnt+jwt</tt> is the subtype of this media type,
following the convention <xref target="RFC9068"/> establishes with <tt>at+jwt</tt>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </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="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="I-D.schrock-ep-authorization-receipts">
          <front>
            <title>Authorization Receipts for High-Risk Agent Actions</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="21" month="July" year="2026"/>
            <abstract>
              <t>   This document defines the EMILIA Protocol (EP) authorization receipt,
   an evidence artifact binding an enrolled approver key to one
   canonical action before execution.  An approver-held key signs an
   Authorization Context containing the action hash, policy reference,
   nonce, audience, and validity window.  A Trust Receipt carries the
   signed contexts, terminal consumption record, and Merkle inclusion
   material so a relying party can verify the recorded event offline
   under independently selected log, directory, policy, and approver
   trust inputs.

   The receipt establishes only the guarantees of the selected
   verification profile.  The mapping from an enrolled approver
   identifier to a natural person is asserted by the directory
   authority.  Offline verification does not establish current
   revocation status, global non-replay, comprehension, legality,
   safety, or execution.  Replay prevention requires an online atomic
   consumption store at the executor.  The state-machine invariants are
   machine-checked under the assumptions stated in this document.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-ep-authorization-receipts-08"/>
        </reference>
        <reference anchor="I-D.schrock-ep-action-evidence-graph">
          <front>
            <title>Action Evidence Graphs and Evidence Policy Replay for High-Risk Agent Actions (EP-AEG)</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="3" month="July" year="2026"/>
            <abstract>
              <t>   The standards landscape now produces many signed artifacts about an
   AI agent's action: workload identity credentials, delegation and
   grant tokens, call-chain transaction tokens, runtime attestation
   results, pre-execution policy permits, named-human authorization
   receipts, post-execution action records, and transparency-log
   inclusion receipts.  No specification defines how a relying party
   decides whether a collection of such artifacts is SUFFICIENT to rely
   on for a given purpose: releasing a payment, honoring a trade,
   satisfying an auditor, or paying an insurance claim.  This document
   defines three things that together fill that layer: the Action
   Evidence Graph (EP-AEG), a portable, content-addressed graph of
   references to signed artifacts about one action, whose identity is
   independent of how much of it is disclosed; Evidence Policy Replay, a
   deterministic, offline evaluation of a graph against a RELYING-PARTY-
   supplied evidence policy, yielding one of five closed verdicts
   (admissible, missing_evidence, stale, conflicted, unverifiable) with
   a replay digest that lets any third party recompute the decision; and
   the Reliance Result (EP-RELIANCE-RESULT), the verdict as a signed
   artifact, making the reliance decision itself auditable evidence.
   Six policy packs profile the mechanism for concrete irreversible
   action classes.  A verdict is evidence of sufficiency under a stated
   policy; it is not adjudication, and the graph never carries its own
   sufficiency bar.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-ep-action-evidence-graph-00"/>
        </reference>
        <reference anchor="I-D.schrock-action-evidence-boundary">
          <front>
            <title>The Action Evidence Boundary for Consequential Agent Effects</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="21" month="July" year="2026"/>
            <abstract>
              <t>   Consequential agent actions can cross identity, transport,
   authorization, policy, and execution systems.  Each system can
   produce a valid artifact while the executor still lacks a safe rule
   for joining the artifacts to the exact effect, consuming one-time
   authority, and handling an uncertain outcome.  This document defines
   the Action Evidence Boundary (AEB), an executor-side processing model
   for that lifecycle.

   AEB requires native artifact verification, Canonical Action
   Identifier (CAID) matching, Authorization Evidence Chain (AEC)
   satisfaction, a separate local authorization decision, durable atomic
   consumption or reservation, invocation, closed effect outcomes, and
   authenticated reconciliation.  It defines no receipt or token format,
   no policy language, no universal evidence taxonomy, and no new
   registry.  Native workload credentials, message signatures, attested
   per-action tokens, permit records, authorization receipts, and status
   mechanisms retain their own semantics and verifiers.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-action-evidence-boundary-00"/>
        </reference>
        <reference anchor="I-D.rampalli-cross-org-delegation-mapping">
          <front>
            <title>A Layered Requirements Mapping for Cross-Organization Agent Delegation</title>
            <author fullname="KARTHIK RAMPALLI" initials="R." surname="Karthik">
              <organization>Glyphzero, Inc.</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document records a comparative mapping of two evidence layers
   for cross-organization AI agent delegation: a per-hop delegation
   chain (PEDIGREE) and a named-human authorization root (the EMILIA
   Protocol binding and evidence-graph drafts), evaluated against the
   nine requirements of draft-reece-wimse-cross-org-delegation under a
   no-shared-operator assumption.  It also records a verifier-facing
   composition model in which key possession, delegated authority, and
   pre-execution human authorization are diagnostically separate inputs
   with independent failure behavior, joined by action digest.  The
   mapping was developed on the WIMSE mailing list; corrections continue
   there.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rampalli-cross-org-delegation-mapping-05"/>
        </reference>
        <reference anchor="I-D.nivalto-agentroa-route-authorization">
          <front>
            <title>Agent Route Origin Authorization (AgentROA): A Cryptographic Policy Enforcement Framework for AI Agent Actions</title>
            <author fullname="Joseph Michalak" initials="J." surname="Michalak">
              <organization>Nivalto, Inc.</organization>
            </author>
            <date day="15" month="April" year="2026"/>
            <abstract>
              <t>   This document specifies the Agent Route Origin Authorization
   (AgentROA) framework, a cryptographic policy enforcement model for
   governing the actions of autonomous AI agents.  AgentROA introduces
   three core protocol objects: the Agent Route Origin Authorization
   (ROA) envelope, the Agent Route Attestation (ARA) per-hop receipt,
   and the Agent Execution Receipt (AER).  Together these objects
   enable: (1) cryptographic binding of an agent's authorized action
   scope to a signed policy envelope at session initialization,
   (2) per-hop attestation across multi-agent delegation chains with
   monotonic scope-narrowing semantics (no policy envelope may be
   expanded by a downstream delegation), and (3) cryptographic receipts
   produced intrinsically by the enforcement decision at each capability
   invocation boundary.  The framework is modeled on the BGP Route
   Origin Authorization (ROA) concept from RPKI (RFC 6480) applied to
   the AI agent execution domain.

   The Border Gateway enforcement model positions a cryptographic
   enforcement process at a capability invocation boundary — external
   to the agent's execution context — reducing the risk that governance
   decisions are influenced by the governed agent by placing
   enforcement in a separate process boundary.  The Border Gateway
   model is topology-independent: it may be deployed as a protocol-
   specific proxy in front of Model Context Protocol (MCP) servers,
   as a service mesh enforcement component covering all inter-service
   calls, as a network egress gateway covering all outbound capability
   invocations regardless of protocol, or as a domain-specific
   execution boundary.  The protocol objects defined herein function
   identically across all deployment topologies.  This document
   establishes the architectural model, protocol object schemas, and
   enforcement semantics for the AgentROA framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-nivalto-agentroa-route-authorization-01"/>
        </reference>
        <reference anchor="I-D.mcguinness-oauth-actor-proofs">
          <front>
            <title>OAuth Actor-Signed Hop Proofs</title>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <date day="4" month="July" year="2026"/>
            <abstract>
              <t>   This document defines OAuth Actor-Signed Hop Proofs, an optional
   companion profile for delegated OAuth tokens that conform to the
   OAuth Actor Profile for Delegation.  It introduces the actor_proofs
   claim, a signed per-hop proof chain in which the actor added at each
   visible hop signs its own participation and the target binding it
   authorized for that hop.  Proofs are linked into a hash chain, are
   validated against actor verification keys resolved through pre-
   established trust, and optionally cross-reference sibling actor
   receipts.  This document also defines a token request parameter for
   conveying proofs at issuance, and metadata and introspection
   parameters for advertising and consuming actor-proof support.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-actor-proofs-00"/>
        </reference>
        <reference anchor="I-D.mishra-oauth-agent-grants">
          <front>
            <title>Delegated Agent Authorization Protocol (DAAP)</title>
            <author fullname="Sanjeev Kumar" initials="S." surname="Kumar">
              <organization>Grantex</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Artificial intelligence (AI) agents increasingly take autonomous
   actions -- submitting forms, initiating payments, and sending
   communications -- on behalf of human users across third-party
   services.  This document defines the Delegated Agent Authorization
   Protocol (DAAP), an open, model-neutral, framework-agnostic protocol
   that specifies: cryptographic agent identity using Decentralized
   Identifiers (DIDs); a human-consent-based grant authorization flow
   modelled on OAuth 2.0; a signed JSON Web Token (JWT) grant token
   format with agent-specific claims; a revocation model with online
   verification; a hash-chained append-only audit trail; a policy engine
   for automated authorization decisions; a multi-agent delegation model
   with cascade revocation; budget controls for spending limits; real-
   time event streaming; a credential vault for secure secret storage;
   and external policy backend integration with OPA and Cedar.  DAAP
   fills a gap unaddressed by existing OAuth 2.0 extensions: verifying
   that a specific human authorized a specific AI agent to perform a
   specific action, revoking that authorization in real time, and
   producing a tamper-evident record of what the agent did.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mishra-oauth-agent-grants-01"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-arch">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Palo Alto Networks</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as
   software executing for a specific purpose, potentially comprising one
   or more running instances.  This document discusses an architecture
   for designing and standardizing protocols and payloads for conveying
   workload identity and security context information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-08"/>
        </reference>
        <reference anchor="I-D.ni-wimse-ai-agent-identity">
          <front>
            <title>WIMSE Applicability for AI Agents</title>
            <author fullname="Ni Yuan" initials="N." surname="Yuan">
              <organization>Huawei</organization>
            </author>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei</organization>
            </author>
            <date day="28" month="February" year="2026"/>
            <abstract>
              <t>   This document discusses WIMSE applicability to Agentic AI, so as to
   establish independent identities and credential management mechanisms
   for AI agents.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ni-wimse-ai-agent-identity-02"/>
        </reference>
        <reference anchor="WEBAUTHN" target="https://www.w3.org/TR/webauthn-3/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="PSD2-RTS" target="https://eur-lex.europa.eu/eli/reg_del/2018/389/oj">
          <front>
            <title>Commission Delegated Regulation (EU) 2018/389, regulatory technical standards for strong customer authentication and common and secure open standards of communication</title>
            <author>
              <organization>European Commission</organization>
            </author>
            <date year="2018"/>
          </front>
        </reference>
      </references>
    </references>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>The key, clock and nonce used below are fixed (<tt>iat</tt> = 1800000000), so every canonical string, digest and
signing input here is byte-reproducible. An implementation that agrees with this
document computes exactly these values.</t>
      <t>The signatures are not reproducible. ECDSA draws a fresh random value for each
signature, so signing an identical input again yields a different and equally valid
signature. Verify the signatures in these vectors; do not compare them octet-wise
against your own output.</t>
      <t>Backslash and line feed are shown escaped as <tt>\\</tt> and <tt>\n</tt> so the exact octets are
unambiguous on the page.</t>
      <section anchor="key">
        <name>Key</name>
        <sourcecode type="json"><![CDATA[
{
  "kty": "EC",
  "crv": "P-256",
  "x": "P7Vp3OZi4XYii2VHo4T08zkjKrKhCt-gY-oAATkXaao",
  "y": "QNEaWqPG2EI5-2AdT8oX-S4odj8TH9wj_JW2I2ILBoc"
}
]]></sourcecode>
        <t>Thumbprint (RFC 7638), used as <tt>cnf.jkt</tt>:</t>
        <artwork><![CDATA[
xcDbc2-MsRIENQynAYGtJ0Vc0xPTBdfj_1iAeI9MMFo
]]></artwork>
        <t>The private component is <tt>d</tt> = <tt>Y2j9oKoLsw3p24brNicuYCjBxv0LVUWLHSYc9Wzvy5A</tt>. It is published here so that
implementers can reproduce signatures; it <bcp14>MUST NOT</bcp14> be used for anything else.</t>
      </section>
      <section anchor="v1-canonical-action-and-adg">
        <name>V1: canonical action and <tt>adg</tt></name>
        <t>Action type <tt>payment.transfer</tt>, parameters:</t>
        <sourcecode type="json"><![CDATA[
{
  "amount": "100.00",
  "payee": "acct_9"
}
]]></sourcecode>
        <t>Canonical action string:</t>
        <artwork><![CDATA[
payment.transfer|amount=100.00&payee=acct_9
]]></artwork>
        <t><tt>adg</tt> = <tt>YlHp3M4JIWFPPZIVAwAmYOBOMfUyb2bjE6ve3AD2iaQ</tt></t>
      </section>
      <section anchor="v2-canonical-display-and-dsp">
        <name>V2: canonical display and <tt>dsp</tt></name>
        <t>Canonical display string (line feeds shown as <tt>\n</tt>):</t>
        <artwork><![CDATA[
payment.transfer\namount: 100.00\npayee: acct_9
]]></artwork>
        <t>The same string as it appears to the user:</t>
        <artwork><![CDATA[
payment.transfer
amount: 100.00
payee: acct_9
]]></artwork>
        <t><tt>dsp</tt> = <tt>uSEgOG9UC1IWGxzBalJv5cIbfxE8kxmoKF25yrRl1fs</tt></t>
      </section>
      <section anchor="v3-escaping">
        <name>V3: escaping</name>
        <t>A parameter value containing every canonical-action delimiter, demonstrating that
escaping prevents a value from impersonating a separator.</t>
        <sourcecode type="json"><![CDATA[
{
  "note": "a=b&c|d\\e"
}
]]></sourcecode>
        <t>Canonical action string:</t>
        <artwork><![CDATA[
payment.transfer|note=a\\=b\\&c\\|d\\\\e
]]></artwork>
        <t><tt>adg</tt> = <tt>3R0-FrNwSzXzvWmcFyDrQipdaJZmDUULlpX87bXParo</tt></t>
      </section>
      <section anchor="v4-request-fingerprint-and-rqf">
        <name>V4: request fingerprint and <tt>rqf</tt></name>
        <sourcecode type="json"><![CDATA[
{
  "method": "POST",
  "path": "/v1/transfers",
  "orgId": "org_acme",
  "scope": "payments:write",
  "body": "{\"amount\":\"100.00\",\"payee\":\"acct_9\"}"
}
]]></sourcecode>
        <t>SHA-256 of the body, hex:</t>
        <artwork><![CDATA[
05be0ab936cd56cf971cc8b57f7132a690d4ed3bf63b37ac3cb81d6e289f847a
]]></artwork>
        <t>Fingerprint pre-image, with <tt>&lt;NUL&gt;</tt> marking a single 0x00 octet and the trailing
32 octets being the raw body digest above:</t>
        <artwork><![CDATA[
POST<NUL>/v1/transfers<NUL>org_acme<NUL>payments:write<NUL><body-digest>
]]></artwork>
        <t><tt>rqf</tt> = <tt>1GL7CIg1JkKGaGfHgdF5_93rVx4FqfjoY0lYZ6xbjQ0</tt></t>
      </section>
      <section anchor="v5-a-complete-token-that-verifies">
        <name>V5: a complete token that verifies</name>
        <t>Protected header:</t>
        <sourcecode type="json"><![CDATA[
{"alg":"ES256","typ":"oasnt+jwt"}
]]></sourcecode>
        <t>Payload:</t>
        <sourcecode type="json"><![CDATA[
{
  "sub": "agent-1",
  "adg": "YlHp3M4JIWFPPZIVAwAmYOBOMfUyb2bjE6ve3AD2iaQ",
  "dsp": "uSEgOG9UC1IWGxzBalJv5cIbfxE8kxmoKF25yrRl1fs",
  "rqf": "1GL7CIg1JkKGaGfHgdF5_93rVx4FqfjoY0lYZ6xbjQ0",
  "int": "clean",
  "jti": "0123456789abcdef0123456789abcdef",
  "iat": 1800000000,
  "exp": 1800000060,
  "cnf": {
    "jkt": "xcDbc2-MsRIENQynAYGtJ0Vc0xPTBdfj_1iAeI9MMFo"
  }
}
]]></sourcecode>
        <t>Compact serialization:</t>
        <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.1rS6k1Yz9ZsYWpk51vTv0GDJX4VJ9vp3Qb9v
4ZNG1VjQQwvVvUpUjNao7ZA0hxmBqEOHPLv8NY5C_Jqjl-SJzA
]]></artwork>
        <t>Verified at time 1800000000 against the action of V1 and the request of V4, with the
key above enrolled, this token is accepted.</t>
      </section>
      <section anchor="v6-refusal-vectors">
        <name>V6: refusal vectors</name>
        <t>Each vector below alters exactly one thing relative to V5 and is refused. The
reasons shown are those an implementation of this document produces. The names
are not normative; the fact of refusal is.</t>
        <section anchor="r1-action-mismatch">
          <name>R1: action mismatch</name>
          <t>The token is minted for a different amount than the verifier is about to execute.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiZHNNUHRxVkJHYjg5MHNfWEVNUDZ3XzZ6QVg2a1lEQ0JqYlo5Y3N
HYkVYTSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.jd0B7NW38g3hBK0YceD2eGRqgd0ApCm6eU_8
QlouotpXwLtOx9H9EB3bq8Dd1XJUybHr2Bheqwj_G_Pt2LPBLg
]]></artwork>
          <t>Refused: <tt>action-mismatch</tt></t>
        </section>
        <section anchor="r2-display-mismatch">
          <name>R2: display mismatch</name>
          <t>adg binds the executing action, so action binding alone would accept. dsp carries the digest of a different disclosure, which is what the human read.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6Ilg0OEc4THhNRUZwWlR3NjduWUw5dEh0OW9SSDV5YXI5RVR
3RVNkaWtZT1UiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.ybY-_yQxFfEoqxvXdRkBnhnNxLup39qmHv6T
aznUIoHKt3RTmeuIDc8ebQqMsL4dbIhFGgdI3Og-2GEf0HuVmQ
]]></artwork>
          <t>Refused: <tt>display-mismatch</tt></t>
        </section>
        <section anchor="r3-request-mismatch">
          <name>R3: request mismatch</name>
          <t>Same action, aimed at a different request path.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiJWbDZfTV90RUJ3RXBOcExNbFo4WENDM0M3dHRCYWF
pbElEWjZPWllEZnhJIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.ULJRBLA8zNugzy10VkRcIyh3GrL2naYG9mD4
LMChGuwxg1dYhAHHT1NEHIYvhEASJrX-sFs0hjk-pQVWdMG_Mw
]]></artwork>
          <t>Refused: <tt>rqf-mismatch</tt></t>
        </section>
        <section anchor="r4-request-binding-absent">
          <name>R4: request binding absent</name>
          <t>The rqf claim is omitted entirely while the verifier is pinning a request. The token <bcp14>MUST</bcp14> be refused rather than accepted as action-bound only.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJpbnQiOiJjbGVhbiIsImp0aSI6IjAxMjM0NTY3ODlhYmNkZWY
wMTIzNDU2Nzg5YWJjZGVmIiwiaWF0IjoxODAwMDAwMDAwLCJleHAiOjE4MDAwMDA
wNjAsImNuZiI6eyJqa3QiOiJ4Y0RiYzItTXNSSUVOUXluQVlHdEowVmMweFBUQmR
mal8xaUFlSTlNTUZvIn19.Cf08Diz2lvF-jncola2wVEwf40xC-lxnAMw6SjoewE
ekr-s0q_p1pV98VrNzgZ1Eb7MhzojNGmIRBWT65DOLqw
]]></artwork>
          <t>Refused: <tt>rqf-missing</tt></t>
        </section>
        <section anchor="r5-expired">
          <name>R5: expired</name>
          <t>Verified one second after exp.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.5WJUcmpcgNE3GrVIMFIFxcyla40xvxn6tdUE
prKYJvEGIXy_lCPu6xS0MM7Nz6bJbeZCysc1M3_wPzeZdZ5zTA
]]></artwork>
          <t>Refused: <tt>expired</tt></t>
        </section>
        <section anchor="r6-replay">
          <name>R6: replay</name>
          <t>The jti has already been recorded by this verifier.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.oEHHulmYbnSkZEyh8MYr4N_Qim6bxJL2JtB1
6V1CarsOf12wx77w_krvPz9CWajNoXrqUyTWz8WKplhaHi4xPw
]]></artwork>
          <t>Refused: <tt>replay</tt></t>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The request-fingerprint construction in <xref target="canon-rqf"/> was shaped by published
work on per-request, action-bound authentication for autonomous agents, and by
discussion of human-authorization binding on the WIMSE mailing list.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
YHq82+K/O9Po5uNwChM8nuy2lPxwPYVZ7nojWD6Yw/6ooBXo/U77enQ8e3/Z
fLq8j/cu4r313v3ezdnq2R/Hezd3xwdD9eGqfXR/Mxr3j7vxu5vL+/WLy+Z+
b3a01f+w3MzON+6b109bN/l1d3y/3ny4eGjs7x59XLs62noYr37obT2otZvO
fvPq7sOH6cPVw+X48q7jp29vWo3h4+jdl/bJwen7h83O9frO56Mvd3H9/Oip
xbgl0ZaQfJ/o9yyRu1K4UL4R86ppOamRYXh1rWZzxal/DDFOmwdfY1u47L4s
Ra6imG5s28qpB2PQUs9A/mbM15h0YbdXJqu4/OKhB0ryvFo3zTrcKn9lCrJE
VyM7i4IRCzbqgsPDvDaC3ZXkQVbG9LTNMLgJGL34FaOxspmIc1NeeWfNbQPC
UZRTb0VV7Z1OXVdEdXctTH5nkHUM/7Dy+j+TVdwcdDqXB2ePV/dHB9d3g/Xj
g06/277qXO7erH58utn4cDVY8Ztx+0Pj6Mt1nK5fr3bUwfX91fXFf7OK/2us
4i5svHvb6a5uDlaH7/5oXAd6d0Xvn30ZhI3WeGe0oS8/b6oPcTpJi/HH6fvi
5HHrYKv9brX3ZXM3bH48Ail9kK28G+ovYF7vfz4tVt6fvns/YFZxxvS0TYEI
LEs3mHwrOA7GlLGSSiQHzcBJT5XsGdTQAg6Dohu/GjOnnEmTbEt8YhlfkWAz
Roqh2yjJJRb3bTA2C/SZhlr/qYTyHyNT40HjpB2sXRwMO2eXN9NufLbauQsn
3cvpetgeNk66W+fnu1fr1x8P18+uztTq2VXn3u8WNxfNy/8mlEVCmfWu659n
Hx73+u30y+PDx/Ds/l0yTDqP7yfj1a0vo4OHjQvlPyWXh+nBH8Xq2cVITw53
g03d+/DlOH+/FvYOh3v7g/Bw9WRQX9lv9xsHk6vRh3lCMXnb85SyWtp/JaWc
l70jah4Xv829VtA8g6bf/4M4/B/D7I+6vd2b/sXVVuPs8mj17OO7k6D92Ont
pWvddmf3uHG8Gh6c7Vx399S4147b3bub024ct2+S4dH/Xzh8+f7o7N371uZT
ZzJ4mjUbV/dnweFsuLqfvV9J/Ov9rdHumnp/vDPcn0wfB83wetg6OLhodtoH
h9cPw3br/Cj7WM/38sbw7r4+/nDVDY/3Px9P53EYTK0F/HX8F5Zrc9yP+/l9
6Zdhv4Xe2FyyOK/MjKOE3e9lOk6pH/17+qX8F6OScS/5gEu86+1fDXuEp+OG
fw4D37Uej++OG52L69WT3Xh4Perc33Sv1TzWE9Izpew1BJEtgsMEsT5oRSd3
7TW5pqaduxbM0pkAVWwAkL74q7SCtevGWXT9dFhcfOycn19enVx+jCcfruKD
sJ1Oga6meu/d5YfRmRr58eajf7kXn1/EnYvLm4fDpLm1vNNvbO5GTyvxw179
LgnS2F+ZXrWn/bXG4049fkxax9ON87tUT9tK32f1vPHl87g5vtravMpgJzfN
du/t8fApvevsjw7P3nUvNtZ3T95/eQm90V1ksHt921RZO/YRv1AVK8+lnQfc
8l8Pu/5bj6jy4PXu0WUwGgeDThv47tXh8d7h3mMwi33A0ofHZKMIL9tqnP1x
ffTQ3j/8OPsc75xONh7PG8fHbztPG72jnr7ZmeVB83j18/T0Sd+EN+tPF615
JBV0NAhK5jIqFsxu74qo2tlG66SsnaZK1qjsrPLfSPtfHWnT9sHBJB5d95Lz
+5v2bLh5fJ2tdT5/iEYbvcej9ytHxbum2rhq7vhZftJvrkwf376dfr7PHk6f
tna6/l0n/Zh9uZxddJ82u3+M46F/EK09ni5yVkJRwFl8ZWiAZSyxDqXR5ddt
bsWnw9+X+n6c66VqK+C6GxaxDbUpKTmZyyHkV1hTmBtQ3QZTFb4c3eOWNHXT
D6yqIMy9yJlcL5MiTdIRhr/Jvy39NnszeqPJJM/FQ8RvZa22IbKvmWdPTffw
+LyN7ZGoLwMsqlhW/weHZAfGJJ8AAA==

-->

</rfc>
