<?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 4.0.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-williams-oauth-poi-core-00" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Proof-of-Intent (PoI) Core">Cryptographic Proof-of-Intent (PoI) Core Protocol for Human-in-the-Loop (HITL) Step-Up Authorization</title>
    <seriesInfo name="Internet-Draft" value="draft-williams-oauth-poi-core-00"/>
    <author initials="P. C." surname="Williams" fullname="Paul Charles Williams">
      <organization abbrev="Barefoot Coders">Barefoot Coders, LLC</organization>
      <address>
        <email>paul@barefootcoders.com</email>
        <uri>https://mandrelproject.ai</uri>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol (oauth)</workgroup>
    <keyword>OAuth</keyword>
    <keyword>Proof-of-Intent</keyword>
    <keyword>Human-in-the-Loop</keyword>
    <keyword>AI Agents</keyword>
    <keyword>Step-Up Authentication</keyword>
    <keyword>Mandrel</keyword>
    <abstract>
      <?line 70?>

<t>Autonomous software agents and orchestrated workflows increasingly invoke high-consequence operations on Resource Servers (such as financial originations or clinical prescriptions) on behalf of human users. Existing bearer tokens and transport-level Proof-of-Possession mechanisms cannot cryptographically distinguish between parameters autonomously synthesized by an intermediary agent and parameters explicitly reviewed, approved, or modified by an authorized human. Furthermore, redirect-based authorization flows impose prohibitive user experience friction for high-frequency Human-in-the-Loop (HITL) interactions.</t>
      <t>This document specifies the Proof-of-Intent (PoI) Core Protocol, a stateless, single-hop cryptographic framework building on JSON Web Signature (JWS, RFC 7515), Proof-of-Possession Key Semantics for JWTs (RFC 7800), JSON Web Token Best Current Practices (RFC 8725), JSON Canonicalization Scheme (JCS, RFC 8785), OAuth 2.0 Rich Authorization Requests (RAR, RFC 9396), OAuth 2.0 Step-Up Authentication Challenge Protocol (RFC 9470), and W3C WebAuthn. PoI Core defines: (1) short-lived, client-generated Ephemeral Intent Keys certified at login and rotated via Proof-of-Possession key chaining; (2) Resource Server-signed Intent Challenge Objects binding canonical action parameters to human-readable display facts; (3) multi-tier assurance attestations spanning zero-friction session keys to hardware security tokens; and (4) stateless verification and countersigned audit receipts for single-hop APPROVE, REJECT, and within-authority SUPERCEDE decisions.</t>
      <t>Multi-hop chained escalations, asynchronous intent escrowing, and concurrent multi-approver conflict resolution are specified in the companion extension document, draft-williams-oauth-poi-chained-state-00.</t>
    </abstract>
  </front>
  <middle>
    <?line 78?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>In architectures employing autonomous AI agents or automated workflow orchestrators, an intermediary software agent acts on behalf of an authenticated human user to invoke tools and APIs hosted by downstream Resource Servers (RS). While OAuth 2.0 (<xref target="RFC6749"/>) and Demonstrating Proof-of-Possession (DPoP, <xref target="RFC9449"/>) authenticate the client or session, they do not provide cryptographic proof of <strong>human intent</strong> over the specific application-layer parameters of an individual transaction.</t>
        <t>This creates three immediate vulnerabilities for synchronous Human-in-the-Loop (HITL) interactions:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>The Confused Deputy Problem:</strong> A prompt-injected or malfunctioning agent possessing a valid session token can invoke a privileged Resource Server endpoint with unauthorized parameters.</t>
          </li>
          <li>
            <t><strong>Semantic UI Misrepresentation (MITM / Spoofing):</strong> If an agent constructs the HITL approval prompt while transmitting raw database identifiers (e.g., UUIDs or drug codes) to the Resource Server, the human may be tricked into signing parameters that do not match the human-readable description displayed on screen.</t>
          </li>
          <li>
            <t><strong>The OAuth Redirect Tax:</strong> Existing transaction authorization specifications such as Rich Authorization Requests (RAR, <xref target="RFC9396"/>) paired with Step-Up Authentication (<xref target="RFC9470"/>) require an Authorization Server round-trip or out-of-band push notification per transaction, causing severe cognitive and UX friction during high-frequency HITL operations.</t>
          </li>
        </ol>
      </section>
      <section anchor="design-goals-and-scope-of-poi-core">
        <name>Design Goals and Scope of PoI Core</name>
        <t>This document specifies <strong>PoI Core</strong>, the stateless foundation of the Proof-of-Intent protocol family. PoI Core is designed for Resource Servers that want to verify human intent over a proposed transaction (<tt>[R0, R1]</tt>) without maintaining multi-step workflow state tables:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Zero Additional Cognitive Overhead at Baseline:</strong> During session login, the client generates a non-extractable asymmetric keypair certified by the Authorization Server with <tt>nbf</tt> and <tt>exp</tt> bounds via <xref target="RFC7800"/>. Baseline (Tier 1) HITL approvals require only a single user interaction in the client interface with zero Authorization Server round-trips.</t>
          </li>
          <li>
            <t><strong>Extensible Multi-Tier Assurance:</strong> Resource Servers dynamically specify the required assurance tier based on action consequence -- stepping up from Tier 1 (Session PoP Key) to Tier 2 (Platform Biometric via <xref target="WebAuthn"/>) or Tier 3 (Cross-Platform Hardware Token via <xref target="WebAuthn"/>).</t>
          </li>
          <li>
            <t><strong>Single-Hop Authoritative Edits (<tt>SUPERCEDE</tt>):</strong> If a human operator adjusts parameters proposed by an agent within their own scope of authority, the client submits a two-node envelope (<tt>R0 -&gt; R1</tt>) that immediately supercedes <tt>R0</tt> and asserts the new parameters in <tt>R1</tt>.</t>
          </li>
          <li>
            <t><strong>Companion Chained State Specification:</strong> Multi-party organizational escalations (<tt>R0 -&gt; R1 -&gt; R2</tt>), asynchronous intent escrowing, and concurrent multi-approver race resolution are defined in <xref target="POI-CHAINED"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <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>
        <ul spacing="normal">
          <li>
            <t><strong>Ephemeral Intent Key (EIK):</strong> A short-lived asymmetric keypair generated inside the client's Signing Vault with non-extractable private key material, used exclusively to sign Tier 1 HITL assertions.</t>
          </li>
          <li>
            <t><strong>Key Certification Token (KCT):</strong> A JSON Web Token (<xref target="RFC7519"/>) signed by the Authorization Server containing an <xref target="RFC7800"/> <tt>cnf</tt> claim that binds the user's identity (<tt>sub</tt>), authentication timestamp (<tt>auth_time</tt>), and validity window (<tt>nbf</tt>, <tt>exp</tt>) to the public portion of an EIK.</t>
          </li>
          <li>
            <t><strong>Signing Vault:</strong> A logically isolated client execution context (e.g., a cross-origin isolated iframe or native secure enclave) responsible for holding the EIK private handle, verifying Resource Server challenge signatures, rendering ground-truth display facts, and producing signed assertions.</t>
          </li>
          <li>
            <t><strong>Intent Challenge Object (ICO):</strong> A signed JWS (<xref target="RFC7515"/>) issued by a Resource Server when an action requires HITL authorization. The ICO binds the canonical hash of the proposed parameters, the resolved human-readable <tt>display_facts</tt>, and the required assurance tier.</t>
          </li>
          <li>
            <t><strong>Proof-of-Intent Envelope (PoIE):</strong> A JSON structure carrying an ordered, hash-linked array of nodes. In PoI Core, the envelope contains two nodes: the Resource Server's proposal (<tt>R0</tt>) and the human's terminal decision (<tt>R1</tt>: <tt>APPROVE</tt>, <tt>REJECT</tt>, or within-authority <tt>SUPERCEDE</tt>).</t>
          </li>
          <li>
            <t><strong>Countersigned Intent Receipt (CIR):</strong> A signed timestamped receipt produced by the Resource Server (or transparency service) upon verifying a PoIE within its active key window, enabling offline audit verification after the EIK has expired.</t>
          </li>
        </ul>
      </section>
      <section anchor="parameterized-media-type-conventions-applicationpoijwtkind">
        <name>Parameterized Media Type Conventions (<tt>application/poi+jwt;kind=...</tt>)</name>
        <t>To enforce explicit JWT typing per <xref target="RFC8725"/> Section 3.11 without proliferating separate media type registrations, this specification defines a single parameterized JWT media type, <tt>application/poi+jwt</tt> (per <xref target="RFC6838"/> Section 4.3), with a required parameter <tt>kind</tt>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">kind Parameter</th>
              <th align="left">HTTP Content-Type Header</th>
              <th align="left">JWS typ Header Parameter</th>
              <th align="left">Artifact Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>kct</tt></td>
              <td align="left">
                <tt>application/poi+jwt;kind=kct</tt></td>
              <td align="left">
                <tt>"poi+jwt;kind=kct"</tt></td>
              <td align="left">Key Certification Token (Section 4.2)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>roll</tt></td>
              <td align="left">
                <tt>application/poi+jwt;kind=roll</tt></td>
              <td align="left">
                <tt>"poi+jwt;kind=roll"</tt></td>
              <td align="left">PoP Key Rollover Request (Section 4.3)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>chal</tt></td>
              <td align="left">
                <tt>application/poi+jwt;kind=chal</tt></td>
              <td align="left">
                <tt>"poi+jwt;kind=chal"</tt></td>
              <td align="left">Intent Challenge Object (Section 5.2)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>assert</tt></td>
              <td align="left">
                <tt>application/poi+jwt;kind=assert</tt></td>
              <td align="left">
                <tt>"poi+jwt;kind=assert"</tt></td>
              <td align="left">Tier 1 Human Assertion JWS (Section 6.3.1)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>rcpt</tt></td>
              <td align="left">
                <tt>application/poi+jwt;kind=rcpt</tt></td>
              <td align="left">
                <tt>"poi+jwt;kind=rcpt"</tt></td>
              <td align="left">Countersigned Intent Receipt (Section 7.2)</td>
            </tr>
          </tbody>
        </table>
        <t>In accordance with <xref target="RFC7515"/> Section 4.1.9, senders SHOULD omit the <tt>"application/"</tt> prefix in the JWS <tt>typ</tt> header parameter (e.g., <tt>"typ": "poi+jwt;kind=chal"</tt>), and verifiers MUST treat <tt>"poi+jwt;kind=&lt;val&gt;"</tt> and <tt>"application/poi+jwt;kind=&lt;val&gt;"</tt> (case-insensitively with optional whitespace after <tt>;</tt>) as equivalent. Verifiers MUST reject any token whose <tt>kind</tt> parameter does not match the expected artifact type for that protocol step.</t>
      </section>
    </section>
    <section anchor="protocol-architecture-and-overview">
      <name>Protocol Architecture and Overview</name>
      <section anchor="architectural-topology">
        <name>Architectural Topology</name>
        <sourcecode type="text"><![CDATA[
+-----------------+      (1) Auth + Pub(EIK)     +-----------------+
|                 | ---------------------------> |                 |
| Client Signing  | <--------------------------- |  Authorization  |
| Vault(Frontend) |      (2) Signed KCT          |   Server(IdP)   |
|                 |   [nbf, exp, cnf: Pub(EIK)]  |                 |
+-----------------+                              +-----------------+
   ^           |
   | (5)Verify | (6) Signed PoIE
   |    ICO &  |     ([R0, R1])
   |    Render v
+-----------------+      (3) Propose Action      +-----------------+
|                 | ---------------------------> |                 |
| AI Orchestrator/| <--------------------------- | Resource Server |
| Intermediary    |      (4) HTTP 403 + ICO (R0) | (Loan / Rx Svc) |
|                 | ---------------------------> |                 |
+-----------------+      (7) Submit PoIE [R0, R1]+-----------------+
                         (or direct Vault->RS)            |
                                                          v
                                                 +-----------------+
                                                 |Orthogonal Policy|
                                                 |Engine/Audit Log |
                                                 +-----------------+
]]></sourcecode>
      </section>
      <section anchor="orthogonality-to-policy-enforcement">
        <name>Orthogonality to Policy Enforcement</name>
        <t>The PoI protocol intentionally separates <strong>cryptographic proof of human intent</strong> from <strong>organizational policy enforcement</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>PoI Verification Layer:</strong> Determines exclusively whether the assertion <tt>R1</tt> over proposal <tt>R0</tt> was produced by the claimed subject, within a valid key window (<tt>[nbf, exp]</tt>), for the target audience (<tt>aud</tt>), at the required assurance tier, over the exact canonical parameter hash.</t>
          </li>
          <li>
            <t><strong>Orthogonal Policy Layer:</strong> Consumes the verified PoIE output to evaluate organization-specific authorization rules (e.g., dollar thresholds, clinical prescribing authority, role permissions).</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="ephemeral-intent-key-eik-lifecycle">
      <name>Ephemeral Intent Key (EIK) Lifecycle</name>
      <section anchor="client-side-non-extractable-key-generation-and-separation-from-transport-dpop">
        <name>Client-Side Non-Extractable Key Generation and Separation from Transport DPoP</name>
        <t>The Signing Vault MUST generate the EIK asymmetric keypair locally. To guarantee baseline interoperability across implementations:
* Implementations of this specification MUST support <tt>ES256</tt> (ECDSA using P-256 and SHA-256) and SHOULD support <tt>EdDSA</tt> (Ed25519) (<xref target="RFC7518"/>).</t>
        <t>Normative key isolation rules:
1. The private key MUST NOT be generated by or transmitted to the Authorization Server or any backend service.
2. In browser environments utilizing the Web Cryptography API, the keypair MUST be generated with <tt>extractable: false</tt> and key usages restricted to <tt>["sign"]</tt>.
3. The private key handle SHOULD be retained strictly in volatile memory (RAM) inside a cross-origin isolated Signing Vault context and MUST NOT be serialized to persistent storage.
4. <strong>Separation from Transport DPoP Keys (<xref target="RFC9449"/>):</strong> Clients that use DPoP (<xref target="RFC9449"/>) for transport-level access token binding MUST NOT reuse their transport DPoP keypair as the Ephemeral Intent Key (EIK). Transport DPoP keys sign automated background HTTP requests (such as polling or telemetry) without human presence, whereas the EIK MUST only be invoked inside the Signing Vault upon an explicit human user gesture.</t>
      </section>
      <section anchor="key-certification-token-kct-via-rfc-7800">
        <name>Key Certification Token (KCT) via RFC 7800</name>
        <t>During user authentication, the client submits the EIK public key as a JSON Web Key (JWK, <xref target="RFC7517"/>) to the Authorization Server. Upon successful authentication, the Authorization Server issues a Key Certification Token (KCT).</t>
        <t>A KCT is a signed JWT (<xref target="RFC7519"/>) with the following normative requirements:</t>
        <ul spacing="normal">
          <li>
            <t><strong>JWS Protected Header:</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>alg</tt>: Asymmetric signature algorithm (<tt>ES256</tt> MTI). <tt>none</tt> and symmetric MAC algorithms (<tt>HS256</tt>) MUST NOT be used.</t>
              </li>
              <li>
                <t><tt>typ</tt>: MUST be <tt>"poi+jwt;kind=kct"</tt> (or <tt>"application/poi+jwt;kind=kct"</tt>).</t>
              </li>
              <li>
                <t><tt>kid</tt>: Key identifier of the Authorization Server's signing key.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>JWT Payload Claims:</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>iss</tt> (REQUIRED): Issuer URI of the Authorization Server.</t>
              </li>
              <li>
                <t><tt>sub</tt> (REQUIRED): Subject identifier of the authenticated human user.</t>
              </li>
              <li>
                <t><tt>aud</tt> (OPTIONAL): Audience URI(s) identifying the Resource Server trust domain(s) authorized to rely on this KCT.</t>
              </li>
              <li>
                <t><tt>session_id</tt> (REQUIRED): Unique identifier for the logical authentication session.</t>
              </li>
              <li>
                <t><tt>auth_time</tt> (REQUIRED): NumericDate (as defined in <xref target="RFC7519"/>) when the user last performed interactive primary/multi-factor authentication.</t>
              </li>
              <li>
                <t><tt>iat</tt> (REQUIRED): NumericDate when this KCT was issued.</t>
              </li>
              <li>
                <t><tt>nbf</tt> (REQUIRED): NumericDate before which this EIK MUST NOT be accepted for signing.</t>
              </li>
              <li>
                <t><tt>exp</tt> (REQUIRED): NumericDate after which this EIK MUST NOT be accepted for signing. The lifetime (<tt>exp - nbf</tt>) SHOULD NOT exceed 1800 seconds (30 minutes).</t>
              </li>
              <li>
                <t><tt>cnf</tt> (REQUIRED): Confirmation claim per <xref target="RFC7800"/>, containing a <tt>jwk</tt> member representing the client's EIK public key (which MUST NOT contain private key parameters).</t>
              </li>
              <li>
                <t><tt>prev_jkt</tt> (OPTIONAL): Base64url-encoded JWK Thumbprint (<xref target="RFC7638"/>) of the immediately preceding EIK in the same session, present when the KCT was issued via PoP Key Rotation (Section 4.3).</t>
              </li>
            </ul>
          </li>
        </ul>
        <t><em>Non-normative example of a KCT payload:</em></t>
        <sourcecode type="json"><![CDATA[
{
  "iss": "https://idp.example.org",
  "sub": "user:dr-jane-doe-992",
  "aud": "https://api.example.org",
  "session_id": "sess_88192a",
  "auth_time": 1793388000,
  "iat": 1793389800,
  "nbf": 1793389800,
  "exp": 1793391000,
  "prev_jkt": "NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs",
  "cnf": {
    "jwk": {
      "kty": "EC",
      "crv": "P-256",
      "x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
      "y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="proof-of-possession-pop-key-chaining-rotation-and-rfc-8693-binding">
        <name>Proof-of-Possession (PoP) Key Chaining Rotation and RFC 8693 Binding</name>
        <t>To support sessions longer than a single KCT validity window without relying on smuggle-prone bearer refresh tokens, the Signing Vault rotates keys using <strong>PoP Key Chaining</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Prior to the <tt>exp</tt> time of the active key <tt>K_n</tt>, the Signing Vault generates a fresh non-extractable keypair <tt>K_(n+1)</tt>.</t>
          </li>
          <li>
            <t>The Signing Vault constructs a Key Rollover Request JWS (<tt>typ: "poi+jwt;kind=roll"</tt>) signed using the private key of <tt>K_n</tt>:
            </t>
            <ul spacing="normal">
              <li>
                <t>The JWS Protected Header MUST include <tt>kcert</tt> containing the compact serialization of the currently active KCT for <tt>K_n</tt>.</t>
              </li>
              <li>
                <t>The JWS Payload MUST include <tt>iss</tt> (matching <tt>kcert.sub</tt>), <tt>aud</tt> (matching the Authorization Server's issuer or token endpoint URI), <tt>iat</tt>, a unique <tt>nonce</tt>, and <tt>new_cnf.jwk</tt> containing the public JWK of <tt>K_(n+1)</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>OAuth 2.0 Token Exchange (<xref target="RFC8693"/>) Transport Binding:</strong> The client MAY submit the <tt>poi+jwt;kind=roll</tt> JWS to the Authorization Server's standard Token Endpoint using the <xref target="RFC8693"/> grant type:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>grant_type</tt>: <tt>urn:ietf:params:oauth:grant-type:token-exchange</tt></t>
              </li>
              <li>
                <t><tt>subject_token</tt>: <tt>&lt;Compact-JWS-of-Rollover-Request&gt;</tt></t>
              </li>
              <li>
                <t><tt>subject_token_type</tt>: <tt>urn:ietf:params:oauth:token-type:poi-roll</tt></t>
              </li>
              <li>
                <t><tt>requested_token_type</tt>: <tt>urn:ietf:params:oauth:token-type:poi-kct</tt></t>
              </li>
            </ul>
          </li>
          <li>
            <t>The Authorization Server MUST verify that:
            </t>
            <ul spacing="normal">
              <li>
                <t>The attached <tt>kcert</tt> signature is valid and its <tt>[nbf, exp]</tt> window encompasses the current server time.</t>
              </li>
              <li>
                <t>The <tt>poi+jwt;kind=roll</tt> signature verifies against <tt>kcert.cnf.jwk</tt>, and <tt>aud</tt> matches the Authorization Server.</t>
              </li>
              <li>
                <t>The session identified by <tt>kcert.session_id</tt> has not been revoked and has not exceeded the maximum session lifetime since <tt>kcert.auth_time</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Upon verification, the Authorization Server issues a new KCT for <tt>K_(n+1)</tt> preserving the original <tt>auth_time</tt> and setting <tt>prev_jkt</tt> to the <xref target="RFC7638"/> thumbprint of <tt>K_n</tt>.</t>
          </li>
          <li>
            <t>Upon receiving the new KCT, the Signing Vault MUST immediately destroy the in-memory handle for <tt>K_n</tt>.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="resource-server-intent-challenge">
      <name>Resource Server Intent Challenge</name>
      <section anchor="http-403-step-up-challenge-signaling-poi-challenge">
        <name>HTTP 403 Step-Up Challenge Signaling (<tt>PoI-Challenge</tt>)</name>
        <t>Because HTTP requests to a Resource Server typically already carry an <tt>Authorization: Bearer</tt> or <tt>Authorization: DPoP</tt> header for transport authentication (<xref target="RFC9110"/> Section 11.6.1), PoI avoids overloading the HTTP Authentication Scheme namespace.</t>
        <t>When a client or intermediary agent invokes a Resource Server endpoint that requires HITL Proof-of-Intent, the Resource Server MUST respond with an HTTP <tt>403 Forbidden</tt> status code, a <strong><tt>PoI-Challenge</tt></strong> response header containing challenge metadata parameters, and a response body of media type <tt>application/poi+jwt;kind=chal</tt>:</t>
        <sourcecode type="http"><![CDATA[
HTTP/1.1 403 Forbidden
PoI-Challenge: error="intent_proof_required",
  intent_id="intent_rx_7721",
  required_tier="urn:ietf:params:oauth:poi:tier:session-pop"
Content-Type: application/poi+jwt;kind=chal

<Compact-JWS-of-Intent-Challenge-Object>
]]></sourcecode>
      </section>
      <section anchor="intent-challenge-object-ico-format">
        <name>Intent Challenge Object (ICO) Format</name>
        <t>The response body is an Intent Challenge Object (ICO) -- a JWS (<tt>typ: "poi+jwt;kind=chal"</tt>) signed by the Resource Server:</t>
        <ul spacing="normal">
          <li>
            <t><strong>JWS Protected Header:</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>alg</tt>: Asymmetric signature algorithm of the Resource Server (<tt>ES256</tt> MTI).</t>
              </li>
              <li>
                <t><tt>typ</tt>: MUST be <tt>"poi+jwt;kind=chal"</tt> (or <tt>"application/poi+jwt;kind=chal"</tt>).</t>
              </li>
              <li>
                <t><tt>kid</tt>: Key identifier of the Resource Server.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>ICO Payload Claims:</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>iss</tt> (REQUIRED): Resource Server identifier URI.</t>
              </li>
              <li>
                <t><tt>challenge_id</tt> (REQUIRED): Cryptographically random unique identifier (nonce) for this challenge instance.</t>
              </li>
              <li>
                <t><tt>intent_id</tt> (REQUIRED): Identifier of the logical transaction.</t>
              </li>
              <li>
                <t><tt>iat</tt>, <tt>nbf</tt>, <tt>exp</tt> (REQUIRED): Validity window of the challenge. <tt>exp - nbf</tt> SHOULD NOT exceed 300 seconds (5 minutes).</t>
              </li>
              <li>
                <t><tt>required_tier</tt> (REQUIRED): URN specifying the minimum cryptographic assurance tier required by the Resource Server (Section 6.3).</t>
              </li>
              <li>
                <t><tt>authorization_details</tt> (REQUIRED): An object conforming to <xref target="RFC9396"/> Rich Authorization Requests, extended with the following mandatory PoI members:
                </t>
                <ul spacing="normal">
                  <li>
                    <t><tt>type</tt>: Action type URI or string.</t>
                  </li>
                  <li>
                    <t><tt>actor</tt>: Identifier of the proposing agent or client.</t>
                  </li>
                  <li>
                    <t><tt>raw_params</tt>: JSON object containing the machine-executable parameters proposed for the transaction.</t>
                  </li>
                  <li>
                    <t><tt>raw_params_hash</tt>: SHA-256 digest of the canonicalized <tt>raw_params</tt> (Section 5.3).</t>
                  </li>
                  <li>
                    <t><tt>display_facts</tt>: Ground-truth, human-readable representation resolved by the Resource Server from <tt>raw_params</tt> (e.g., resolving opaque patient/account IDs into human names and descriptions).</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="canonical-parameter-hashing-and-numeric-precision-via-rfc-8785-jcs">
        <name>Canonical Parameter Hashing and Numeric Precision via RFC 8785 (JCS)</name>
        <t>Whenever a parameter object (<tt>raw_params</tt> or <tt>asserted_params</tt>) or assertion payload is hashed in this specification:</t>
        <ol spacing="normal" type="1"><li>
            <t>The JSON object MUST first be serialized into its canonical UTF-8 byte representation using the <strong>JSON Canonicalization Scheme (JCS)</strong> (<xref target="RFC8785"/>).</t>
          </li>
          <li>
            <t>A SHA-256 digest (<xref target="RFC6234"/>) MUST be computed over the canonical UTF-8 bytes.</t>
          </li>
          <li>
            <t>The digest MUST be formatted as <tt>"sha256:"</tt> followed by the lowercase hexadecimal or base64url encoding of the digest bytes.</t>
          </li>
          <li>
            <t><strong>Numeric Precision and Deserialization Interoperability:</strong> To prevent IEEE 754 floating-point serialization discrepancies across polyglot runtimes (e.g., <tt>500</tt> vs. <tt>500.0</tt> or decimal rounding), fixed-precision quantities such as currency amounts, interest rates, and clinical dosages in <tt>raw_params</tt> and <tt>asserted_params</tt> SHOULD be represented as JSON strings (e.g., <tt>"60000.00"</tt>, <tt>"6.25"</tt>). Furthermore, verifiers MUST compute <tt>SHA-256(JCS(...))</tt> over the raw parsed JSON tree inside the JWS payload prior to unmarshaling into language-specific domain structs that might strip unknown or null fields.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="proof-of-intent-envelope-poie-core-profile">
      <name>Proof-of-Intent Envelope (PoIE) Core Profile</name>
      <section anchor="two-node-core-envelope-r0-r1-and-header-size-considerations">
        <name>Two-Node Core Envelope (<tt>[R0, R1]</tt>) and Header Size Considerations</name>
        <t>In PoI Core, a Proof-of-Intent Envelope (<tt>Content-Type: application/poi-envelope+json</tt>) contains a two-element <tt>chain</tt> array (<tt>[R0, R1]</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><strong>Node 0 (<tt>R0</tt>, <tt>PROPOSAL</tt>):</strong> Identifies the Resource Server's challenge. Its <tt>node_hash</tt> (<tt>H0</tt>) is <tt>SHA-256(ASCII(challenge_jws))</tt>.
            </t>
            <ul spacing="normal">
              <li>
                <t><strong>Detached Challenge Optimization (Header Size Control):</strong> Because HTTP reverse proxies commonly enforce a 4 KB to 8 KB per-header limit, when a client submits the PoIE via the <tt>PoI-Envelope</tt> HTTP request header to the same stateful Resource Server that issued <tt>R0</tt>, Node 0 MAY omit the full <tt>challenge_jws</tt> string and include only <tt>challenge_id</tt> and <tt>node_hash: H0</tt> (detached mode). For stateless verification or when the serialized <tt>PoI-Envelope</tt> exceeds 4 KB, the full envelope (including <tt>challenge_jws</tt>) SHOULD be transmitted in the HTTP request body (<tt>Content-Type: application/poi-envelope+json</tt>).</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Node 1 (<tt>R1</tt>):</strong> Represents the human's decision (<tt>APPROVE</tt>, <tt>REJECT</tt>, or <tt>SUPERCEDE</tt>), referencing <tt>H0</tt> via <tt>target_node_hash</tt> (for <tt>APPROVE</tt>/<tt>REJECT</tt>) or <tt>supercedes_node_hash</tt> (for <tt>SUPERCEDE</tt>).</t>
          </li>
        </ul>
        <t><em>Note: Multi-node chains (<tt>seq &gt;= 2</tt>) for organizational escalations are defined in <xref target="POI-CHAINED"/>.</em></t>
      </section>
      <section anchor="decision-semantics-approve-reject-and-supercede">
        <name>Decision Semantics: <tt>APPROVE</tt>, <tt>REJECT</tt>, and <tt>SUPERCEDE</tt></name>
        <ol spacing="normal" type="1"><li>
            <t><strong><tt>APPROVE</tt></strong>: The human signer attests approval of the exact parameter state committed in <tt>H0</tt> without modification.</t>
          </li>
          <li>
            <t><strong><tt>REJECT</tt></strong>: The human signer explicitly denies <tt>H0</tt>, terminating the transaction.</t>
          </li>
          <li>
            <t><strong><tt>SUPERCEDE</tt></strong>: The human signer rejects the parameters in <tt>H0</tt> (<tt>supercedes_node_hash: H0</tt>) and asserts a replacement parameter object (<tt>asserted_params</tt> and <tt>asserted_params_hash</tt>), optionally accompanied by <tt>justification</tt> metadata.
            </t>
            <ul spacing="normal">
              <li>
                <t><strong>Normative Rule:</strong> Implementations MUST NOT mutate <tt>R0</tt> in place when a human edits parameters. Every human modification MUST be recorded as a <tt>SUPERCEDE</tt> node linking to <tt>H0</tt>.</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
      <section anchor="assurance-tiers-and-attestation-bindings">
        <name>Assurance Tiers and Attestation Bindings</name>
        <t>Node <tt>R1</tt> MUST be cryptographically signed according to one of the following Assurance Tiers:</t>
        <section anchor="tier-1-ephemeral-session-pop-urnietfparamsoauthpoitiersession-pop">
          <name>Tier 1: Ephemeral Session PoP (<tt>urn:ietf:params:oauth:poi:tier:session-pop</tt>)</name>
          <ul spacing="normal">
            <li>
              <t>The node contains an <tt>assertion_jws</tt> (<tt>typ: "poi+jwt;kind=assert"</tt>) signed by the client's active EIK.</t>
            </li>
            <li>
              <t>The JWS Protected Header MUST contain <tt>"kcert": "&lt;Compact-KCT-JWS&gt;"</tt>.</t>
            </li>
            <li>
              <t>Per <xref target="RFC8725"/> Section 3.9, the JWS Payload MUST include an <strong><tt>aud</tt></strong> claim set to the target Resource Server's <tt>iss</tt> URI from the <tt>ICO</tt>, alongside <tt>intent_id</tt>, <tt>challenge_id</tt>, <tt>seq: 1</tt>, <tt>decision</tt>, <tt>supercedes_node_hash</tt> (or <tt>target_node_hash</tt>), and <tt>client_iat</tt>.</t>
            </li>
            <li>
              <t>Requires zero out-of-band prompts beyond clicking the action button inside the Signing Vault.</t>
            </li>
          </ul>
        </section>
        <section anchor="tier-2-platform-biometric-user-verification-urnietfparamsoauthpoitierwebauthn-uv">
          <name>Tier 2: Platform Biometric / User Verification (<tt>urn:ietf:params:oauth:poi:tier:webauthn-uv</tt>)</name>
          <ul spacing="normal">
            <li>
              <t>The Signing Vault invokes W3C <xref target="WebAuthn"/> <tt>navigator.credentials.get()</tt> with <tt>userVerification: "required"</tt>.</t>
            </li>
            <li>
              <t>The WebAuthn <tt>challenge</tt> parameter MUST be set to the raw 32-byte <tt>SHA-256(JCS(assertion_payload))</tt> digest (where <tt>assertion_payload</tt> includes <tt>aud</tt> matching <tt>ico.iss</tt>).</t>
            </li>
            <li>
              <t>In the returned <tt>authenticatorData</tt>, both Bit 0 (<tt>UP</tt> - User Present) and Bit 2 (<tt>UV</tt> - User Verified) MUST be set (<tt>1</tt>).</t>
            </li>
            <li>
              <t>Optionally, the Signing Vault MAY also sign the bundle with the Tier 1 EIK to bind the hardware assertion to the active <tt>session_id</tt>.</t>
            </li>
          </ul>
        </section>
        <section anchor="tier-3-cross-platform-hardware-token-urnietfparamsoauthpoitierwebauthn-hw">
          <name>Tier 3: Cross-Platform Hardware Token (<tt>urn:ietf:params:oauth:poi:tier:webauthn-hw</tt>)</name>
          <ul spacing="normal">
            <li>
              <t>Identical to Tier 2, except the WebAuthn ceremony MUST be restricted to <tt>allowCredentials</tt> corresponding to registered cross-platform/roaming hardware authenticators (e.g., FIDO2 hardware security keys) verified via authenticator attestation during registration.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="stateless-verification-and-countersigned-intent-receipts-cir">
      <name>Stateless Verification and Countersigned Intent Receipts (CIR)</name>
      <section anchor="normative-core-verification-algorithm">
        <name>Normative Core Verification Algorithm</name>
        <t>A Resource Server or offline verifier validating a PoI Core envelope (<tt>[R0, R1]</tt>) MUST execute the following steps in order. Verifiers MAY apply a configurable clock skew tolerance when evaluating <tt>nbf</tt> and <tt>exp</tt> claims, which SHOULD NOT exceed 60 seconds. If any step fails, verification MUST fail immediately:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Validate Root Proposal (<tt>R0</tt>):</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t>Parse <tt>chain[0].challenge_jws</tt> (or retrieve the cached ICO via <tt>challenge_id</tt> if detached), verify <tt>typ</tt> is <tt>"poi+jwt;kind=chal"</tt>, and verify its signature using the Resource Server's trusted public key.</t>
              </li>
              <li>
                <t>Confirm <tt>chain[0].node_hash == SHA-256(ASCII(challenge_jws))</tt>.</t>
              </li>
              <li>
                <t>At ingestion time, confirm current server time <tt>t_eval</tt> satisfies <tt>ico.nbf &lt;= t_eval &lt;= ico.exp</tt> and <tt>ico.challenge_id</tt> has not been previously consumed.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Validate Link and Digests (<tt>R1</tt>):</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t>Confirm <tt>chain[1].seq == 1</tt>.</t>
              </li>
              <li>
                <t>Confirm the parent reference (<tt>target_node_hash</tt> for <tt>APPROVE</tt>/<tt>REJECT</tt>, or <tt>supercedes_node_hash</tt> for <tt>SUPERCEDE</tt>) equals <tt>chain[0].node_hash</tt> (<tt>H0</tt>).</t>
              </li>
              <li>
                <t>Confirm <tt>assertion.aud == ico.iss</tt> (and, if <tt>kcert.aud</tt> is present, confirm <tt>ico.iss</tt> is in <tt>kcert.aud</tt>).</t>
              </li>
              <li>
                <t>If <tt>chain[1].node_type == "SUPERCEDE"</tt>, recompute <tt>SHA-256(JCS(asserted_params))</tt> over the raw JSON tree and confirm it matches <tt>asserted_params_hash</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Validate Signer Credentials and Assurance Tier (<tt>R1</tt>):</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t><strong>For Tier 1 (<tt>session-pop</tt>):</strong>
                </t>
                <ol spacing="normal" type="1"><li>
                    <t>Extract <tt>kcert</tt> from the protected header, verify its <tt>typ</tt> is <tt>"poi+jwt;kind=kct"</tt>, and verify its signature against the Authorization Server's trusted public key.</t>
                  </li>
                  <li>
                    <t>Let <tt>t_eval</tt> be the current server time (at ingestion) or <tt>cir.received_at</tt> (during offline audit). Confirm <tt>kcert.nbf &lt;= t_eval &lt;= kcert.exp</tt>.</t>
                  </li>
                  <li>
                    <t>Verify <tt>assertion_jws</tt> has <tt>typ: "poi+jwt;kind=assert"</tt> and verify its signature using the public key in <tt>kcert.cnf.jwk</tt>.</t>
                  </li>
                </ol>
              </li>
              <li>
                <t><strong>For Tier 2 / Tier 3 (<tt>webauthn-uv</tt> / <tt>webauthn-hw</tt>):</strong>
                </t>
                <ol spacing="normal" type="1"><li>
                    <t>Parse <tt>clientDataJSON</tt> and confirm <tt>type == "webauthn.get"</tt>, <tt>challenge == base64url(SHA-256(JCS(assertion_payload)))</tt>, and <tt>origin</tt> matches the configured Signing Vault origin. If <tt>clientDataJSON.crossOrigin == true</tt> (when the Signing Vault is an embedded cross-origin iframe), confirm <tt>clientDataJSON.topOrigin</tt> matches the allowlisted host application origin.</t>
                  </li>
                  <li>
                    <t>Verify the RP ID hash in <tt>authenticatorData</tt> and confirm <tt>UP == 1</tt> and <tt>UV == 1</tt>.</t>
                  </li>
                  <li>
                    <t>Verify the WebAuthn signature against the registered credential public key associated with the signer and confirm the credential class matches the tier (<tt>platform</tt> vs. <tt>cross-platform</tt> hardware).</t>
                  </li>
                </ol>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Determine Effective Parameter State:</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t>If <tt>R1</tt> is <tt>APPROVE</tt>, the effective parameters are <tt>R0.raw_params</tt>.</t>
              </li>
              <li>
                <t>If <tt>R1</tt> is <tt>SUPERCEDE</tt> and satisfies the Resource Server's assurance and authority policy, the effective parameters are <tt>R1.asserted_params</tt>.</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
      <section anchor="countersigned-intent-receipt-cir">
        <name>Countersigned Intent Receipt (CIR)</name>
        <t>Because EIK certificates (<tt>KCT</tt>) are short-lived, an attacker who compromises a client host <em>after</em> a KCT expires (or just before expiry) might attempt to forge a backdated assertion timestamped inside <tt>[nbf, exp]</tt> and inject it into an audit database later.</t>
        <t>To defeat backdated audit forgery:
1. Immediately upon verifying a PoIE while the KCT is within its active <tt>[nbf, exp]</tt> window, the Resource Server (or an append-only transparency service per <xref target="RFC9943"/>) MUST generate a <strong>Countersigned Intent Receipt (CIR)</strong> (<tt>typ: "poi+jwt;kind=rcpt"</tt>).
2. The CIR MUST include <tt>received_at</tt> (server ingestion NumericDate), <tt>intent_id</tt>, <tt>head_node_hash</tt> (<tt>H1</tt>), <tt>committed_params_hash</tt>, and the Resource Server's cryptographic signature.
3. Offline auditors MUST verify that <tt>kcert.nbf &lt;= cir.received_at &lt;= kcert.exp</tt> for all Tier 1 assertions in the receipted chain.</t>
      </section>
    </section>
    <section anchor="error-handling-and-failure-modes">
      <name>Error Handling and Failure Modes</name>
      <t>When an Authorization Server, Resource Server, or Verifier rejects a PoI request, rollover request, or Proof-of-Intent Envelope (PoIE), it MUST return a deterministic error code corresponding to the specific failure mode.</t>
      <section anchor="error-response-signaling-poi-challenge-and-rfc-9457">
        <name>Error Response Signaling (<tt>PoI-Challenge</tt> and RFC 9457)</name>
        <t>Resource Servers and Authorization Servers signal PoI errors using two complementary mechanisms:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong><tt>PoI-Challenge</tt> Response Header:</strong> For HTTP <tt>401 Unauthorized</tt> and <tt>403 Forbidden</tt> responses triggered by a PoI failure, the server MUST include a <tt>PoI-Challenge</tt> header:  </t>
            <sourcecode type="http"><![CDATA[
PoI-Challenge: error="kct_expired",
  error_description="Ephemeral Intent Key expired",
  intent_id="intent_loan_4409"
]]></sourcecode>
          </li>
          <li>
            <t><strong>Problem Details JSON Body (<xref target="RFC9457"/>):</strong> The server SHOULD return an HTTP response body formatted as <tt>application/problem+json</tt> per <xref target="RFC9457"/>, extended with <tt>poi_error</tt>, <tt>intent_id</tt>, <tt>failed_node_seq</tt>, <tt>required_tier</tt>, and an optional <tt>challenge_jws</tt>.</t>
          </li>
        </ol>
        <t><em>Non-normative example of an RFC 9457 Problem Details error response:</em></t>
        <sourcecode type="http"><![CDATA[
HTTP/1.1 401 Unauthorized
PoI-Challenge: error="kct_expired",
  error_description="KCT expired prior to evaluation time",
  intent_id="intent_loan_4409"
Content-Type: application/problem+json

{
  "type": "urn:ietf:params:oauth:poi:error:kct_expired",
  "title": "Ephemeral Intent Key Certificate Expired",
  "status": 401,
  "detail": "KCT exp (1793391000) < eval time (1793391125).",
  "poi_error": "kct_expired",
  "intent_id": "intent_loan_4409",
  "failed_node_seq": 1
}
]]></sourcecode>
      </section>
      <section anchor="cryptographic-signature-audience-and-key-binding-errors">
        <name>Cryptographic Signature, Audience, and Key Binding Errors</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>invalid_kct_signature</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> The Key Certification Token (<tt>kcert</tt>) signature in a Tier 1 assertion or key rollover request fails verification against the Authorization Server's trusted public key, references an unknown/revoked <tt>kid</tt>, has an invalid <tt>typ</tt> (<tt>!= "poi+jwt;kind=kct"</tt>), or specifies a disallowed <tt>alg</tt> (<tt>none</tt> or symmetric MAC).</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>invalid_ico_signature</tt></strong> (HTTP <tt>400 Bad Request</tt> or Client-Side Rejection):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> The root Intent Challenge Object (<tt>chain[0].challenge_jws</tt>) fails signature verification against the Resource Server's public key or has <tt>typ != "poi+jwt;kind=chal"</tt>. If the Signing Vault detects this error upon receiving a challenge from an intermediary agent, the Signing Vault MUST refuse to render the approval prompt and MUST abort signing immediately.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>invalid_assertion_signature</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> For Tier 1, the JWS signature on <tt>assertion_jws</tt> does not verify using <tt>kcert.cnf.jwk</tt>. For Tier 2/3, the WebAuthn <tt>signature</tt> does not verify over <tt>authenticatorData || SHA-256(clientDataJSON)</tt> using the user's registered credential public key.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>audience_mismatch</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> The <tt>aud</tt> claim in <tt>assertion_jws</tt> (or <tt>assertion_payload</tt>) does not match the Resource Server's <tt>iss</tt> URI in the ICO (<tt>assertion.aud != ico.iss</tt>), or <tt>kcert.aud</tt> is present and excludes the Resource Server.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>invalid_webauthn_attestation</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> In a Tier 2 or Tier 3 assertion, one or more WebAuthn verification invariants failed (<tt>clientDataJSON.type != "webauthn.get"</tt>, <tt>origin</tt> or <tt>topOrigin</tt> mismatch, RP ID hash mismatch, <tt>UP</tt> or <tt>UV</tt> bit is <tt>0</tt>, or authenticator class does not match the tier requirement).</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>invalid_rollover_proof</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> During PoP Key Chaining Rotation (Section 4.3), the signature on the <tt>poi+jwt;kind=roll</tt> request fails verification under the active predecessor key <tt>K_n</tt> specified in <tt>kcert.cnf.jwk</tt>.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="temporal-and-validity-window-errors-nbf-exp-authtime-replay">
        <name>Temporal and Validity Window Errors (<tt>nbf</tt>, <tt>exp</tt>, <tt>auth_time</tt>, Replay)</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>kct_not_yet_valid</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> Evaluation timestamp <tt>t_eval &lt; kcert.nbf</tt> (beyond clock skew tolerance, which SHOULD NOT exceed 60 seconds).</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>kct_expired</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> Evaluation timestamp <tt>t_eval &gt; kcert.exp</tt>, or a client attempts to sign a PoP key rollover request using an expired predecessor key <tt>K_n</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>challenge_not_yet_valid</tt></strong> (HTTP <tt>400 Bad Request</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> Evaluation timestamp <tt>t_eval &lt; ico.nbf</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>challenge_expired</tt></strong> (HTTP <tt>401 Unauthorized</tt> or <tt>403 Forbidden</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> Evaluation timestamp <tt>t_eval &gt; ico.exp</tt>. The Resource Server MAY include a newly minted <tt>challenge_jws</tt> in the error response.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>session_max_age_exceeded</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> Although the current KCT is within <tt>[nbf, exp]</tt>, <tt>(t_eval - kcert.auth_time)</tt> exceeds either the Resource Server's required freshness policy (<tt>max_age</tt>) or the Authorization Server's maximum session lifetime.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>session_revoked</tt></strong> (HTTP <tt>401 Unauthorized</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> The logical <tt>session_id</tt> referenced in the KCT has been administratively terminated or logged out prior to <tt>kcert.exp</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>challenge_replayed</tt></strong> (HTTP <tt>409 Conflict</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> The <tt>challenge_id</tt> in the ICO or the <tt>nonce</tt> in a key rollover request has already been consumed.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="envelope-integrity-and-step-up-errors">
        <name>Envelope Integrity and Step-Up Errors</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>malformed_poi_envelope</tt></strong> (HTTP <tt>400 Bad Request</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> The <tt>PoI-Envelope</tt> header or body cannot be parsed as valid JSON/JWS, omits required claims, or has a mismatched <tt>typ</tt> parameter (<tt>kind</tt>).</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>chain_continuity_broken</tt></strong> (HTTP <tt>422 Unprocessable Content</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> <tt>chain[0].node_hash</tt> does not match <tt>SHA-256(ASCII(challenge_jws))</tt>, or <tt>R1</tt>'s parent hash pointer (<tt>target_node_hash</tt> or <tt>supercedes_node_hash</tt>) does not equal <tt>H0</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>params_hash_mismatch</tt></strong> (HTTP <tt>422 Unprocessable Content</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> Recomputed <tt>SHA-256(JCS(params))</tt> does not match the signed <tt>raw_params_hash</tt> or <tt>asserted_params_hash</tt> (or WebAuthn <tt>clientDataJSON.challenge</tt>), indicating parameter tampering.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>intent_rejected</tt></strong> (HTTP <tt>422 Unprocessable Content</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> <tt>R1</tt> is a valid <tt>REJECT</tt> assertion node; the Resource Server records the rejection and aborts execution permanently.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>intent_proof_required</tt></strong> (HTTP <tt>403 Forbidden</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> No <tt>PoI-Envelope</tt> was provided for a protected action; response includes the initial <tt>challenge_jws</tt> (<tt>R0</tt>).</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong><tt>insufficient_assurance_tier</tt></strong> (HTTP <tt>403 Forbidden</tt>):
            </t>
            <ul spacing="normal">
              <li>
                <t><em>Trigger:</em> <tt>R1</tt> is cryptographically valid, but its assurance tier is lower than required by the Resource Server (e.g., when a <tt>SUPERCEDE</tt> parameter edit crosses into a higher assurance requirement).</t>
              </li>
            </ul>
          </li>
        </ul>
        <t><em>(Note: Additional error codes for multi-hop escalations, asynchronous TOCTOU state drift, and concurrent approver Compare-and-Swap conflicts are defined in <xref target="POI-CHAINED"/>.)</em></t>
      </section>
      <section anchor="summary-matrix-of-poi-core-error-codes">
        <name>Summary Matrix of PoI Core Error Codes</name>
        <table>
          <thead>
            <tr>
              <th align="left">poi_error Code</th>
              <th align="left">Category</th>
              <th align="left">HTTP Status</th>
              <th align="left">Retryable with New Signature?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>intent_proof_required</tt></td>
              <td align="left">Step-Up / Challenge</td>
              <td align="left">
                <tt>403</tt></td>
              <td align="left">Yes (Sign returned ICO)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>insufficient_assurance_tier</tt></td>
              <td align="left">Step-Up / Challenge</td>
              <td align="left">
                <tt>403</tt></td>
              <td align="left">Yes (Step up to <tt>required_tier</tt>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>invalid_kct_signature</tt></td>
              <td align="left">Cryptographic</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">No (Re-authenticate to IdP)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>invalid_ico_signature</tt></td>
              <td align="left">Cryptographic</td>
              <td align="left">
                <tt>400</tt></td>
              <td align="left">No (Abort; potential MITM)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>invalid_assertion_signature</tt></td>
              <td align="left">Cryptographic</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">
                <tt>audience_mismatch</tt></td>
              <td align="left">Cryptographic / Binding</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">No (Potential cross-service replay)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>invalid_webauthn_attestation</tt></td>
              <td align="left">Cryptographic</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">Yes (Retry with valid authenticator)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>invalid_rollover_proof</tt></td>
              <td align="left">Cryptographic</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">No (Re-authenticate to IdP)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kct_not_yet_valid</tt></td>
              <td align="left">Temporal (<tt>nbf</tt>)</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">Yes (After <tt>nbf</tt> or clock sync)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kct_expired</tt></td>
              <td align="left">Temporal (<tt>exp</tt>)</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">Yes (Rotate key or re-authenticate)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>challenge_not_yet_valid</tt></td>
              <td align="left">Temporal (<tt>nbf</tt>)</td>
              <td align="left">
                <tt>400</tt></td>
              <td align="left">Yes (After <tt>ico.nbf</tt>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>challenge_expired</tt></td>
              <td align="left">Temporal (<tt>exp</tt>)</td>
              <td align="left">
                <tt>401</tt> / <tt>403</tt></td>
              <td align="left">Yes (Sign fresh <tt>challenge_jws</tt>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>session_max_age_exceeded</tt></td>
              <td align="left">Temporal (<tt>auth_time</tt>)</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">Yes (After interactive re-auth)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>session_revoked</tt></td>
              <td align="left">Temporal / Session</td>
              <td align="left">
                <tt>401</tt></td>
              <td align="left">No (Session terminated)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>challenge_replayed</tt></td>
              <td align="left">Replay</td>
              <td align="left">
                <tt>409</tt></td>
              <td align="left">No (Request new challenge)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>malformed_poi_envelope</tt></td>
              <td align="left">Syntax / Format</td>
              <td align="left">
                <tt>400</tt></td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">
                <tt>chain_continuity_broken</tt></td>
              <td align="left">Chain Integrity</td>
              <td align="left">
                <tt>422</tt></td>
              <td align="left">No (Tampered or broken link)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>params_hash_mismatch</tt></td>
              <td align="left">Payload Integrity</td>
              <td align="left">
                <tt>422</tt></td>
              <td align="left">No (Tampered parameters)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>intent_rejected</tt></td>
              <td align="left">Terminal Decision</td>
              <td align="left">
                <tt>422</tt></td>
              <td align="left">No (Human explicitly rejected)</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="confused-deputy-and-post-approval-agent-bypass">
        <name>Confused Deputy and Post-Approval Agent Bypass</name>
        <t>When a human approves an action or asserts modified parameters via <tt>SUPERCEDE</tt>, the Resource Server MUST execute the verified canonical parameters directly. The Resource Server MUST NOT return modified parameters to an autonomous LLM or AI agent for re-interpretation or re-submission, as doing so re-introduces the agent as a potential confused deputy between human signature and state execution. The intermediary agent SHOULD receive only a read-only execution receipt (<tt>CIR</tt>).</t>
      </section>
      <section anchor="key-smuggling-cross-origin-vault-isolation-and-webauthn-permissions-policy">
        <name>Key Smuggling, Cross-Origin Vault Isolation, and WebAuthn Permissions Policy</name>
        <t>Generating the EIK with <tt>extractable: false</tt> prevents exfiltration of raw private key bytes over the network. However, an attacker achieving Cross-Site Scripting (XSS) within a complex web application could attempt to invoke <tt>crypto.subtle.sign()</tt> in-situ (acting as a signing oracle).</t>
        <t>To mitigate signing oracle abuse for Tier 1 keys, implementations SHOULD isolate key generation, key storage, ICO signature verification, <tt>display_facts</tt> rendering, and the physical approval button inside a dedicated, minimal cross-origin iframe (e.g., <tt>https://vault.example.org</tt>) enforced with a strict Content Security Policy (<tt>script-src 'self'; object-src 'none'</tt>). The host application (<tt>https://app.example.org</tt>) communicates with the Signing Vault exclusively via <tt>window.postMessage</tt> by passing the Resource Server's signed ICO.</t>
        <t><strong>WebAuthn Cross-Origin Iframe Delegation:</strong> When Tier 2 or Tier 3 <xref target="WebAuthn"/> ceremonies are invoked from within a cross-origin Signing Vault iframe (<tt>https://vault.example.org</tt>), the embedding host document (<tt>https://app.example.org</tt>) MUST delegate credential access via the HTTP <tt>Permissions-Policy</tt> header (<tt>Permissions-Policy: publickey-credentials-get=(self "https://vault.example.org")</tt>) and the iframe <tt>allow</tt> attribute (<tt>&lt;iframe src="https://vault.example.org/..." allow="publickey-credentials-get"&gt;</tt>). Verifiers validating the resulting <tt>clientDataJSON</tt> MUST verify both <tt>"origin": "https://vault.example.org"</tt> and, when <tt>"crossOrigin": true</tt>, <tt>"topOrigin": "https://app.example.org"</tt>.</t>
      </section>
      <section anchor="backdated-forgery-after-key-expiry">
        <name>Backdated Forgery After Key Expiry</name>
        <t>Verification of <tt>client_iat</tt> alone is insufficient for offline non-repudiation because client clocks can be falsified. Offline audit verification MUST rely on the Resource Server's Countersigned Intent Receipt (<tt>cir.received_at</tt>) or an external timestamp authority / transparency log (<xref target="RFC9943"/>) to prove the signature existed prior to <tt>kcert.exp</tt>.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <ol spacing="normal" type="1"><li>
          <t><strong>Data Minimization in Audit Logs:</strong> <tt>display_facts</tt> inside an ICO may contain Sensitive Personal Information (SPI) or Protected Health Information (PHI). When storing PoIEs in external transparency logs, implementations MAY place human-readable PII in an encrypted or hash-committed detachment (<tt>display_facts_hash</tt>) so that external verifiers can validate hash continuity without inspecting cleartext PHI.</t>
        </li>
        <li>
          <t><strong>Pseudonymous Subject Identifiers:</strong> The <tt>sub</tt> claim in KCTs and assertions SHOULD use opaque organizational identifiers (e.g., <tt>user:88421</tt>) rather than cleartext email addresses or names.</t>
        </li>
      </ol>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="media-type-registrations-applicationpoijwt-and-applicationpoi-envelopejson">
        <name>Media Type Registrations (<tt>application/poi+jwt</tt> and <tt>application/poi-envelope+json</tt>)</name>
        <t>This document requests registration of two media types in the IANA "Media Types" registry (<xref target="RFC6838"/>):</t>
        <section anchor="applicationpoijwt">
          <name><tt>application/poi+jwt</tt></name>
          <ul spacing="normal">
            <li>
              <t><strong>Type name:</strong> <tt>application</tt></t>
            </li>
            <li>
              <t><strong>Subtype name:</strong> <tt>poi+jwt</tt></t>
            </li>
            <li>
              <t><strong>Required parameters:</strong>
              </t>
              <ul spacing="normal">
                <li>
                  <t><tt>kind</tt>: Identifies the specific PoI JWT artifact class. Permitted values are:
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t><tt>kct</tt> (Key Certification Token, Section 4.2)</t>
                    </li>
                    <li>
                      <t><tt>roll</tt> (PoP Key Rollover Request, Section 4.3)</t>
                    </li>
                    <li>
                      <t><tt>chal</tt> (Intent Challenge Object, Section 5.2)</t>
                    </li>
                    <li>
                      <t><tt>assert</tt> (Proof-of-Intent Assertion JWS, Section 6.3.1)</t>
                    </li>
                    <li>
                      <t><tt>rcpt</tt> (Countersigned Intent Receipt, Section 7.2)</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Optional parameters:</strong> None</t>
            </li>
            <li>
              <t><strong>Encoding considerations:</strong> 7-bit ASCII compact JWS serialization per <xref target="RFC7515"/>.</t>
            </li>
            <li>
              <t><strong>Security considerations:</strong> See Section 9 of this document.</t>
            </li>
          </ul>
        </section>
        <section anchor="applicationpoi-envelopejson">
          <name><tt>application/poi-envelope+json</tt></name>
          <ul spacing="normal">
            <li>
              <t><strong>Type name:</strong> <tt>application</tt></t>
            </li>
            <li>
              <t><strong>Subtype name:</strong> <tt>poi-envelope+json</tt></t>
            </li>
            <li>
              <t><strong>Required parameters:</strong> None</t>
            </li>
            <li>
              <t><strong>Optional parameters:</strong> None</t>
            </li>
            <li>
              <t><strong>Encoding considerations:</strong> UTF-8 JSON per <xref target="RFC8259"/>.</t>
            </li>
            <li>
              <t><strong>Security considerations:</strong> See Section 9 of this document.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="http-header-field-registrations-poi-challenge-and-poi-envelope">
        <name>HTTP Header Field Registrations (<tt>PoI-Challenge</tt> and <tt>PoI-Envelope</tt>)</name>
        <t>This document registers the following HTTP header fields in the "Hypertext Transfer Protocol (HTTP) Field Name Registry" (<xref target="RFC9110"/>):</t>
        <ul spacing="normal">
          <li>
            <t><strong><tt>PoI-Challenge</tt></strong> (Status: permanent): Carries challenge and error parameters from a Resource Server or Authorization Server on HTTP <tt>401</tt>/<tt>403</tt> responses (Sections 5.1 and 8.1).</t>
          </li>
          <li>
            <t><strong><tt>PoI-Envelope</tt></strong> (Status: permanent): Carries a base64url-encoded <tt>application/poi-envelope+json</tt> structure on HTTP requests (Section 6.1).</t>
          </li>
        </ul>
      </section>
      <section anchor="oauth-uri-registrations-token-type-assurance-tiers-error-codes">
        <name>OAuth URI Registrations (Token Type, Assurance Tiers, Error Codes)</name>
        <t>This document registers the following URNs in the "OAuth URI" registry (<xref target="RFC6755"/>):</t>
        <ul spacing="normal">
          <li>
            <t><strong>Token Type URIs (<xref target="RFC8693"/>):</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>urn:ietf:params:oauth:token-type:poi-kct</tt> (Key Certification Token)</t>
              </li>
              <li>
                <t><tt>urn:ietf:params:oauth:token-type:poi-roll</tt> (PoP Key Rollover Request)</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Assurance Tier URIs (<tt>urn:ietf:params:oauth:poi:tier</tt>):</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>urn:ietf:params:oauth:poi:tier:session-pop</tt> (Tier 1: Ephemeral Session Key)</t>
              </li>
              <li>
                <t><tt>urn:ietf:params:oauth:poi:tier:webauthn-uv</tt> (Tier 2: Platform Biometric / User Verification)</t>
              </li>
              <li>
                <t><tt>urn:ietf:params:oauth:poi:tier:webauthn-hw</tt> (Tier 3: Cross-Platform Hardware Authenticator)</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>PoI Error Code Registry (<tt>urn:ietf:params:oauth:poi:error</tt>):</strong>
            </t>
            <ul spacing="normal">
              <li>
                <t>Populated with the 19 core error codes defined in Section 8.5.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="jwt-claim-registrations">
        <name>JWT Claim Registrations</name>
        <t>This document registers the following claims in the IANA "JSON Web Token Claims" registry (<xref target="RFC7519"/>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>prev_jkt</tt>: JWK Thumbprint of the predecessor ephemeral key in a PoP rotation chain.</t>
          </li>
          <li>
            <t><tt>display_facts</tt>: Resource Server-attested human-readable representation of proposed transaction parameters.</t>
          </li>
          <li>
            <t><tt>raw_params_hash</tt>: Canonical SHA-256 digest (via RFC 8785 JCS) of proposed parameters.</t>
          </li>
          <li>
            <t><tt>supercedes_node_hash</tt>: Hash of the prior assertion node superceded by a <tt>SUPERCEDE</tt> transition.</t>
          </li>
          <li>
            <t><tt>asserted_params_hash</tt>: Canonical SHA-256 digest (via RFC 8785 JCS) of human-modified parameters.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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="RFC6234" target="https://www.rfc-editor.org/info/rfc6234" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6234.xml">
          <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="RFC6749" target="https://www.rfc-editor.org/info/rfc6749" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC6838" target="https://www.rfc-editor.org/info/rfc6838" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC7515" target="https://www.rfc-editor.org/info/rfc7515" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
          <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="RFC7517" target="https://www.rfc-editor.org/info/rfc7517" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC7518" target="https://www.rfc-editor.org/info/rfc7518" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7518.xml">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC7519" target="https://www.rfc-editor.org/info/rfc7519" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
          <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="RFC7638" target="https://www.rfc-editor.org/info/rfc7638" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7638.xml">
          <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="RFC7800" target="https://www.rfc-editor.org/info/rfc7800" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7800.xml">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml">
          <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="RFC8693" target="https://www.rfc-editor.org/info/rfc8693" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8693.xml">
          <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="RFC8725" target="https://www.rfc-editor.org/info/rfc8725" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8725.xml">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="RFC8785" target="https://www.rfc-editor.org/info/rfc8785" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
          <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="RFC9110" target="https://www.rfc-editor.org/info/rfc9110" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9396" target="https://www.rfc-editor.org/info/rfc9396" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9396.xml">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9449" target="https://www.rfc-editor.org/info/rfc9449" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9449.xml">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC9457" target="https://www.rfc-editor.org/info/rfc9457" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9457.xml">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="RFC9470" target="https://www.rfc-editor.org/info/rfc9470" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9470.xml">
          <front>
            <title>OAuth 2.0 Step Up Authentication Challenge Protocol</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>It is not uncommon for resource servers to require different authentication strengths or recentness according to the characteristics of a request. This document introduces a mechanism that resource servers can use to signal to a client that the authentication event associated with the access token of the current request does not meet its authentication requirements and, further, how to meet them. This document also codifies a mechanism for a client to request that an authorization server achieve a specific authentication strength or recentness when processing an authorization request.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9470"/>
          <seriesInfo name="DOI" value="10.17487/RFC9470"/>
        </reference>
        <reference anchor="WebAuthn" target="https://www.w3.org/TR/webauthn-3/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials Level 3</title>
            <author initials="J." surname="Hodges">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="R." surname="Lindemann">
              <organization/>
            </author>
            <author initials="E." surname="Lundberg">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="POI-CHAINED">
          <front>
            <title>Proof-of-Intent (PoI) Chained State, Multi-Party Escalation, and Concurrency Extension</title>
            <author initials="P. C." surname="Williams" fullname="Paul Charles Williams">
              <organization>Barefoot Coders, LLC</organization>
            </author>
            <date year="2026" month="October"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-williams-oauth-poi-chained-state-00"/>
        </reference>
        <reference anchor="RFC6755" target="https://www.rfc-editor.org/info/rfc6755" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6755.xml">
          <front>
            <title>An IETF URN Sub-Namespace for OAuth</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This document establishes an IETF URN Sub-namespace for use with OAuth-related specifications. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6755"/>
          <seriesInfo name="DOI" value="10.17487/RFC6755"/>
        </reference>
        <reference anchor="RFC9943" target="https://www.rfc-editor.org/info/rfc9943" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9943.xml">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
bQtDDGpEHwa3w8Qxr1afF+jQD3gL8KG+ae6TTKIJTq+HLllvftuSfKcdCumT
WI/MRF2zC75OFU/YKWhK2k2T1DpiPRv37E/YFFa0YB8upw99xXQOYlO1t69I
/2rp6zYcomkJdC3Ws4HR/oSdWD3sw+W0p/u2xbWVH00LDLOwWKIAuALPBzi0
UrEC1Exlgq1vTq9t/wmxcCOT+jA+ZPLfVQgWc1qiiYE1w3GmITcYG5Crtfq+
WolCxi9B8PQwpBvEucN9AIEfGwxkKdclCAXAQRDOjEAltyjFVrxY71JMHdw3
qslDTI8kL7f3xXyPZgbVawpLmXcRKbPt3ZmYA0LpbinRoyS1Z6tma4AkyUuD
XDKkaVpG5M22lsn99a0No3QH/z5MP+vBJ9iQwRD6zEfswfoQImHjo709CD0q
iJr1DvbYSmZVKbTdfBinDTsI2EuJLAlinRjAdV58Cu4OanFfFv169ykCnWEG
YAcLeLRE7ILfDY7eo2G70Zoma2qLj+DZ3uaFuL359VNZ30iAYHr6pCrSocgA
3Aic9w27XlarWV4AcNMw4acQg+jb7RoCUHIIO6ECAN00LlYN8VuHxTXj8qRb
pyQC6DvXuwV8hi73UaezAyaC5/jinoOqjYFpbC8nFjbZQS/ir1plnd87jHWl
1uDJtSljMslH5l3IG+sO4BldzeAZ2FGTpBj+yjMxTJQYHh/v0wO8SsJGeC5b
GnHsAh6Fv26OjsbH+9w2YbZ9d8LGz44PDo6O9vb28Jbkpbt4fGQuZrP55kVx
n9uLx2P7ul1Z+Oz732Zv9S/Lo+rlaZwMn757f/fLqycfb55l6uMvr/77ZP76
0/1/68u/nx7/oqlbcQaf+R19Ed1f7z65PxjrfirX0ObZKT6Kl+LiFi6heeKv
3sO1+dHB+U8HL/fvX41fLI5uq9lx+VaMF6/f/fbzs6fi6LrSx9XF69vLn88+
+DfxA/c3r85+u6yOVwdPX799f1NW4unh8dv3+S8fn+an66tSfvrHr2+mH6eH
fI8S67504H9fnO+jFTh+oS76pHmYHA9PWyDDMSXm6fEBe0H6K8YPrWFlGtEs
VdkCDXgItdt4HpBbE0VhdUqQJSZJSK+qBSDO8kJlwuaQFWIOFrZJyxi06JGU
tqJJ4yVrELwmF7WxWH/KRSFVYdU3YpnI26xc9fHa6M1NFrV9L4RRUt+ayBqr
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

-->

</rfc>
