<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcgraw-httpapi-agent-budget-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Budget Required">The Budget HTTP Authentication Scheme and 427 Budget Required Status Code</title>
    <seriesInfo name="Internet-Draft" value="draft-mcgraw-httpapi-agent-budget-01"/>
    <author initials="J." surname="McGraw" fullname="John Paul McGraw, Jr.">
      <organization abbrev="TaskHawk">TaskHawk Systems LLC</organization>
      <address>
        <postal>
          <city>Charlottesville</city>
          <region>VA</region>
          <country>United States of America</country>
        </postal>
        <email>j.mcgraw@taskhawktech.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="10"/>
    <area>Web and Internet Transport</area>
    <workgroup>HTTPAPI</workgroup>
    <keyword>HTTP</keyword>
    <keyword>authentication</keyword>
    <keyword>status code</keyword>
    <keyword>budget</keyword>
    <keyword>delegated authority</keyword>
    <keyword>RateLimit</keyword>
    <keyword>COSE</keyword>
    <keyword>JOSE</keyword>
    <keyword>ML-DSA</keyword>
    <keyword>SLH-DSA</keyword>
    <keyword>CBOR</keyword>
    <abstract>

<t>Delegated software requesters are increasingly authorized to consume paid or
metered services, allocate account credits, or commit bounded resources on
behalf of human or organizational principals.  Existing HTTP authentication
mechanisms indicate whether a requester holds a credential, while RateLimit
fields communicate server-advertised quota and current service-limit
information.  Neither mechanism directly conveys that the requester has been
authorized by its principal to consume or commit resources within a bounded
limit before a request is processed.</t>
      <t>This document defines the 427 (Budget Required) HTTP status code, the
"Budget" HTTP authentication scheme, the <tt>Budget-Attestation</tt> HTTP field, and
a CBOR/COSE Budget-Attestation envelope.  The mechanism is algorithm-agile;
the initial <tt>cose-ml-dsa</tt> profile uses existing JOSE and COSE serializations
for ML-DSA, with ML-DSA-65 as the baseline algorithm and ML-DSA-87 available
as a high-assurance deployment policy option.  An optional rail-keyed SLH-DSA
signature can be used by deployments that bind a budget attestation to a
settlement rail.  This document does not define payment semantics and does not
depend on the HTTP 402 (Payment Required) status code.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mcgraw-httpapi-agent-budget/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        HTTPAPI Working Group mailing list (<eref target="mailto:httpapi@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/httpapi/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/httpapi/"/>.
      </t>
    </note>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Delegated software requesters acting on behalf of human or organizational
principals increasingly make HTTP requests that may incur cost, consume
metered service units, or trigger settlement through an out-of-band rail.  HTTP
authentication <xref target="RFC9110"/> addresses whether a requester holds a usable
credential.  RateLimit fields <xref target="I-D.ietf-httpapi-ratelimit-headers"/>
communicate server-defined quota policies and current service-limit
information.  Budget authorization addresses a distinct requirement:
proving that the requester has been granted bounded authority by its
principal to spend or consume a specified amount for a class of requests.</t>
      <t>This document defines:</t>
      <ul spacing="normal">
        <li>
          <t>The 427 (Budget Required) HTTP status code
(<xref target="status-code"/>), used by an origin server or gateway to
indicate that the request will not be processed until the requester
presents a valid Budget-Attestation.</t>
        </li>
        <li>
          <t>The "Budget" HTTP authentication scheme (<xref target="auth-scheme"/>),
used in the <tt>WWW-Authenticate</tt> response field of a 427 response and in
the <tt>Authorization</tt> request field of a subsequent request.</t>
        </li>
        <li>
          <t>The <tt>Budget-Attestation</tt> HTTP field (<xref target="budget-attestation-field"/>), used
when Budget authority is additive to another origin-server authentication
mechanism already carried in <tt>Authorization</tt>.</t>
        </li>
        <li>
          <t>The Budget-Attestation envelope (<xref target="budget-envelope"/>), a
CBOR-encoded <xref target="RFC8949"/>, COSE-signed <xref target="RFC9052"/> structure that
carries semantic claims about issuer, requester, expiry, request
binding, permitted rails, and amount.</t>
        </li>
      </ul>
      <t>The Budget status code and authentication scheme are algorithm-agile.  The
initial <tt>cose-ml-dsa</tt> profile uses ML-DSA algorithm identifiers serialized for
JOSE and COSE by <xref target="RFC9964"/>, using the ML-DSA algorithm specified in
<xref target="FIPS204"/>.  Implementations of this profile <bcp14>MUST</bcp14> support ML-DSA-65 and <bcp14>MAY</bcp14>
support ML-DSA-87.  A deployment <bcp14>MAY</bcp14> require ML-DSA-87 or another registered
algorithm by local policy.  A deployment <bcp14>MAY</bcp14> add an optional rail-keyed
signature using SLH-DSA, aligned with the JOSE and COSE SLH-DSA work in
<xref target="I-D.ietf-cose-sphincs-plus"/> and the SLH-DSA algorithm specified in
<xref target="FIPS205"/>.  That optional signature is not a replacement for the primary
signature.</t>
      <t>This document does not define a payment protocol.  Settlement rails such
as L402 <xref target="L402"/>, x402 <xref target="X402"/>, card payments, or other systems can use
Budget-Attestation as input to their own policy and settlement flows; however,
their settlement semantics are outside the scope of this document.  In
particular, this document does not depend on, redefine, or reserve any
semantics for HTTP 402 (Payment Required).</t>
      <t>Scope and modularization: Sections 3 and 4 define the HTTP status code,
authentication challenge, credential syntax, and HTTP field semantics.  Section
5 defines an initial COSE/CBOR Budget-Attestation profile to demonstrate an
interoperable cryptographic binding for that HTTP mechanism.  During standards
progression, the Working Group can move the COSE/CBOR profile into a companion
document for review by the COSE or OAuth communities without changing the core
HTTP semantics defined by the status code, authentication scheme, and field
carriage.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<dl>
          <dt>Operator:</dt>
          <dd>
            <t>An entity that issues Budget-Attestations on behalf of a principal.</t>
          </dd>
          <dt>Delegated Requester:</dt>
          <dd>
            <t>A client, workload, device, job, agent, or other software component that
presents a Budget-Attestation issued by an Operator in order to make HTTP
requests within delegated bounds.</t>
          </dd>
          <dt>Agent:</dt>
          <dd>
            <t>A delegated requester.  The term "agent" remains the motivating deployment
case and appears in existing claim names for wire compatibility; it is not
a protocol requirement for any specific architecture.</t>
          </dd>
          <dt>Verifier:</dt>
          <dd>
            <t>An origin server, gateway, or intermediary that receives a
Budget-Attestation, validates its signatures and claims, and decides
whether to process the bearing request.</t>
          </dd>
          <dt>Budget-Attestation:</dt>
          <dd>
            <t>The CBOR-encoded, COSE-signed envelope defined in <xref target="budget-envelope"/>.</t>
          </dd>
          <dt>Settlement Rail:</dt>
          <dd>
            <t>An out-of-band protocol or payment system used to transfer value or
record resource consumption.  Rail names can appear as claims in a
Budget-Attestation.  This document does not define how any settlement
rail operates.</t>
          </dd>
          <dt>Rail-Keyed Signature:</dt>
          <dd>
            <t>An optional additional signature over the Budget-Attestation envelope,
intended to bind a deployment's rail-specific policy to the same claims
that the primary Operator signature covers.</t>
          </dd>
        </dl>
      </section>
      <section anchor="applicability">
        <name>Applicability</name>
        <t>Budget is a general HTTP mechanism for delegated, bounded spend or resource
authority.  Autonomous software agents are the motivating deployment case;
however, the mechanism also applies to service workloads, CI/CD jobs, IoT or
fleet devices, batch systems, scheduled data processors, and other delegated
requesters that need to prove bounded authority before a protected request is
processed.</t>
        <t>The <tt>agent</tt> claim carries the delegated requester identifier.  Deployments <bcp14>MAY</bcp14>
populate it with an agent identifier, service-account identifier, workload
identity, device identifier, job identifier, or privacy-preserving alias.  The
claim name is retained for compatibility with existing <tt>agent_id</tt> deployments
and does not require the requester to be an AI system.  A future revision <bcp14>MAY</bcp14>
define a neutral alias for this claim; doing so needs a wire-compatibility plan
so existing deterministic encodings and signed bytes are not broken
unnecessarily.</t>
      </section>
      <section anchor="ratelimit-fields">
        <name>Relationship to RateLimit Fields</name>
        <t>RateLimit fields describe service limits from the server to the client.
They tell the client what quota policy applies and what capacity is
currently available under that server-defined policy.  They are useful
for throttling, backoff, and avoiding 429 responses.</t>
        <t>Budget-Attestation travels in the opposite direction.  It is a
client-presented credential showing that an Operator authorized an Agent
to spend or consume up to stated bounds.  It is evaluated before the
Verifier processes the protected request.</t>
        <t>This document defines a separate mechanism rather than extending
RateLimit because a signed, bearer-presented authority object has
different issuer, freshness, replay, and verification semantics from
server-advertised quota metadata.
Extending <tt>RateLimit-Policy</tt> would change the issuer and trust model of
RateLimit from server-authored quota advertisement into principal-authored
spending authorization, which is a different protocol semantic rather than
a new quota parameter.</t>
        <t>The mechanisms are complementary:</t>
        <ul spacing="normal">
          <li>
            <t>A server <bcp14>MAY</bcp14> return RateLimit fields on 200, 427, 429, or other
responses when it wants to communicate server-side quota state.</t>
          </li>
          <li>
            <t>A server <bcp14>MUST NOT</bcp14> treat RateLimit fields as a substitute for
Budget-Attestation, because RateLimit fields are not signed authority
from the Agent's principal.</t>
          </li>
          <li>
            <t>A Budget-Attestation <bcp14>MUST NOT</bcp14> be interpreted as a server quota promise.
It only states the Agent's delegated budget or resource authority.</t>
          </li>
        </ul>
        <table>
          <thead>
            <tr>
              <th align="left">Property</th>
              <th align="left">RateLimit fields</th>
              <th align="left">Budget-Attestation</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Direction</td>
              <td align="left">Server to client</td>
              <td align="left">Client to verifier</td>
            </tr>
            <tr>
              <td align="left">Issuer</td>
              <td align="left">Resource server or gateway</td>
              <td align="left">Operator acting for the principal</td>
            </tr>
            <tr>
              <td align="left">Integrity</td>
              <td align="left">HTTP field semantics</td>
              <td align="left">COSE/JOSE signature</td>
            </tr>
            <tr>
              <td align="left">Purpose</td>
              <td align="left">Advertise quota and current service limits</td>
              <td align="left">Prove delegated spending or resource authority</td>
            </tr>
            <tr>
              <td align="left">Failure mode</td>
              <td align="left">Client might be throttled</td>
              <td align="left">Request fails before protected processing</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="relationship-to-http-message-signatures">
        <name>Relationship to HTTP Message Signatures</name>
        <t><xref target="RFC9421"/> defines signatures over components of individual HTTP
messages.  Budget-Attestation signs a portable authority object whose
claims can be evaluated independently of a single HTTP message.  The two
mechanisms can be composed: an Agent can send an HTTP-message signature
that covers the request as transmitted and a Budget-Attestation that
covers delegated budget authority.</t>
      </section>
      <section anchor="relationship-to-http-402">
        <name>Relationship to HTTP 402</name>
        <t>HTTP 402 (Payment Required) is reserved by HTTP Semantics <xref target="RFC9110"/>.
Some deployed payment systems use 402 responses as part of their own
settlement flows.  This document neither depends on those deployments nor
defines their semantics.</t>
        <t>An implementation <bcp14>MAY</bcp14> use Budget-Attestation before invoking a settlement
rail.  Whether that later settlement interaction uses HTTP 402, a 401
challenge, a signed request body, or another transport is out of scope for
this document.</t>
      </section>
    </section>
    <section anchor="overview-operation">
      <name>Overview of Operation</name>
      <t>A protected origin determines that a request requires budget authority and
that no acceptable Budget credential is present:</t>
      <sourcecode type="http-message"><![CDATA[
GET /research/papers/12345 HTTP/1.1
Host: api.example
]]></sourcecode>
      <t>It returns:</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 427 Budget Required
Date: Tue, 02 Jun 2026 18:00:00 GMT
Cache-Control: no-store
Content-Type: application/problem+json
Protocol-427-Version: 1
WWW-Authenticate: Budget realm="api.example",
                  alg="ML-DSA-65",
                  rails="x402 l402 mpp",
                  nonce="QMjVqg5Xb6yV0bO_t9X8gQ",
                  max-age=300

{
  "type": "https://example.com/problems/budget-required",
  "title": "Budget attestation required",
  "status": 427,
  "detail": "A valid Budget-Attestation is required.",
  "budget_requirements": {
    "min_amount": "2.50",
    "currency": "USD",
    "accepted_rails": ["x402", "l402", "mpp"],
    "attestation_required": true,
    "verifier_required": true,
    "discovery_uri": "/.well-known/agent-budget",
    "nonce": "QMjVqg5Xb6yV0bO_t9X8gQ",
    "protocol_version": "1",
    "implementation_version": "0.2.2",
    "max_age": 300
  }
}
]]></sourcecode>
      <t>The Agent obtains a Budget-Attestation from its Operator by means outside
this document and retries using body carriage:</t>
      <sourcecode type="http-message"><![CDATA[
POST /research/papers/12345 HTTP/1.1
Host: api.example
Content-Type: application/budget-attestation+cose
Content-Length: 4217

[COSE_Sign1 Budget-Attestation bytes]
]]></sourcecode>
      <t>If the attestation is valid for the request and local policy, the Verifier
processes the request normally.  If validation fails, the Verifier returns
427 again and <bcp14>SHOULD</bcp14> include a <tt>reason</tt> extension member in the Problem
Details body.</t>
    </section>
    <section anchor="status-code">
      <name>The 427 (Budget Required) Status Code</name>
      <t>The 427 (Budget Required) status code indicates that the requester must
present a valid Budget-Attestation before the request can be processed.
It differs from 401 (Unauthorized) because a requester can be
authenticated and still lack budget authority.  It differs from 429 (Too
Many Requests) because 427 is not a statement about server-side quota
exhaustion.  It differs from 402 (Payment Required) because 427 asks for
evidence of delegated spending or resource authority, not for immediate
payment.</t>
      <t>A 427 response <bcp14>MUST</bcp14> include a <tt>WWW-Authenticate</tt> response field containing
at least one <tt>Budget</tt> challenge.  A 427 response <bcp14>SHOULD</bcp14> include
<tt>Cache-Control: no-store</tt> as defined by HTTP caching <xref target="RFC9111"/>.  A 427
response that contains a nonce, requester-specific policy, or other
policy-sensitive material <bcp14>MUST</bcp14> include <tt>Cache-Control: no-store</tt>.</t>
      <t>A 427 response <bcp14>SHOULD</bcp14> include an <tt>application/problem+json</tt> or
<tt>application/problem+cbor</tt> body using <xref target="RFC9457"/>.</t>
      <t>The 427 status code is distinct from existing alternatives.  A 403 response is
a general authorization refusal and does not define a machine-actionable
challenge for acquiring a principal-signed delegation credential.  A 402
response is payment-specific and would conflate Budget-Attestation with
immediate settlement behavior that this document explicitly leaves out of
scope.  The 427 response defines a separate automated state transition: a
delegated requester receives a Budget challenge, obtains a bounded authority
object from its Operator, and retries without converting the exchange into a
hard authorization denial or an in-band payment flow.</t>
      <t>Some deployment paths might contain intermediaries that do not pass an
unrecognized 427 status code reliably.  A deployment profile <bcp14>MAY</bcp14> use a 403
(Forbidden) response as a compatibility fallback only when the response carries
the same Budget challenge information that a 427 response would have carried,
including a <tt>WWW-Authenticate</tt> field with a <tt>Budget</tt> challenge and an
<tt>application/problem+json</tt> or <tt>application/problem+cbor</tt> body containing a
<tt>budget_requirements</tt> object.  A client that implements this fallback <bcp14>MUST NOT</bcp14>
treat arbitrary 403 responses as Budget challenges; it <bcp14>MAY</bcp14> treat a 403 response
as equivalent to 427 only when the Budget challenge and Problem Details budget
requirements are both present.</t>
      <section anchor="budget-error-tokens">
        <name>Budget Error Tokens</name>
        <t>When a Verifier returns a 427 response because a presented Budget credential
failed validation, the Problem Details object <bcp14>SHOULD</bcp14> contain a <tt>reason</tt>
extension member.  The value of this member is a token identifying the
validation failure.  This document defines the following initial tokens:</t>
        <ul spacing="normal">
          <li>
            <t><tt>token_expired</tt>: The presented Budget-Attestation <tt>exp</tt> timestamp is in the
past relative to the Verifier's clock.</t>
          </li>
          <li>
            <t><tt>nonce_stale</tt>: The nonce in the attestation does not match a valid,
unexpired challenge window.</t>
          </li>
          <li>
            <t><tt>nonce_replay</tt>: The nonce has already been accepted by the Verifier within
its replay-tracking window.</t>
          </li>
          <li>
            <t><tt>bad_signature</tt>: Cryptographic validation of the primary signature or a
required rail-keyed signature failed.</t>
          </li>
          <li>
            <t><tt>untrusted_issuer</tt>: The <tt>iss</tt> claim identifies an issuer for which the
Verifier has no explicit trust relationship.</t>
          </li>
          <li>
            <t><tt>budget_insufficient</tt>: The authorized <tt>amt</tt> claim does not satisfy the
budget requirement advertised by the resource server.</t>
          </li>
          <li>
            <t><tt>version_unsupported</tt>: The <tt>version</tt> claim or <tt>Protocol-427-Version</tt> field
is not supported by the Verifier.</t>
          </li>
          <li>
            <t><tt>binding_mismatch</tt>: The request target URI, method, origin, or body digest
does not match the signed <tt>rb</tt> object.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="auth-scheme">
      <name>The "Budget" Authentication Scheme</name>
      <t>The <tt>Budget</tt> authentication scheme is used in <tt>WWW-Authenticate</tt> and
<tt>Authorization</tt> fields.</t>
      <section anchor="challenge-syntax">
        <name>Challenge Syntax</name>
        <t>The Budget authentication scheme challenge uses the <tt>auth-param</tt> syntax
defined by <xref target="RFC9110"/>, Section 11.2:</t>
        <sourcecode type="abnf"><![CDATA[
budget-challenge = "Budget" 1*SP 1#auth-param
]]></sourcecode>
        <t>The <tt>realm</tt> and <tt>nonce</tt> parameters are <bcp14>REQUIRED</bcp14>.  The <tt>alg</tt> parameter
identifies acceptable primary signature algorithms.  The <tt>rails</tt>
parameter identifies settlement rail names acceptable to the Verifier;
rail semantics remain out of scope for this document.</t>
        <t>The <tt>nonce</tt> parameter <bcp14>MUST</bcp14> contain at least 128 bits of unpredictable
entropy and <bcp14>MUST</bcp14> be generated by the Verifier for the protection space
identified by <tt>realm</tt>.  A Verifier <bcp14>MUST</bcp14> accept a nonce at most once.
Replay of a nonce, absence of nonce state, or loss of the replay cache
<bcp14>MUST</bcp14> cause the Verifier to reject the request.</t>
        <t>To reduce outstanding-challenge state, Verifiers <bcp14>SHOULD</bcp14> support
self-authenticating nonce constructions.  A self-authenticating nonce contains
unpredictable bytes and integrity-protected metadata such as protection space,
issuance time, key identifier, and policy binding.  The nonce is authenticated
with a server-held secret, for example using an HMAC or AEAD construction, and
<bcp14>MUST NOT</bcp14> reveal that secret to clients.  This construction allows a Verifier to
validate the origin and age of a returned nonce without storing every issued
challenge.  It does not remove the requirement to enforce at-most-once
acceptance; Verifiers still need accepted-nonce replay tracking or an
equivalent replay-detection mechanism until the challenge can no longer be
accepted.</t>
        <t>The <tt>max-age</tt> parameter, when present, is the validity window in seconds
for the challenge parameters and nonce.  It does not extend the
Budget-Attestation lifetime.  A Verifier <bcp14>MUST</bcp14> reject a Budget-Attestation
whose nonce is older than <tt>max-age</tt> for the corresponding challenge.  If
<tt>max-age</tt> is omitted, Verifiers <bcp14>SHOULD</bcp14> apply a local default and that
default <bcp14>SHOULD NOT</bcp14> exceed 900 seconds.</t>
      </section>
      <section anchor="credentials-syntax">
        <name>Credentials Syntax</name>
        <sourcecode type="abnf"><![CDATA[
budget-credentials = "Budget" 1*SP budget-token
budget-token       = token68
]]></sourcecode>
        <t>The credential token carries base64url-encoded COSE/CBOR.  If the encoded
envelope would exceed practical HTTP field size limits, the Agent <bcp14>MUST</bcp14> send
the envelope in a request body with media type
<tt>application/budget-attestation+cose</tt>.  Implementations of the <tt>cose-ml-dsa</tt>
profile <bcp14>MUST</bcp14> support request-body carriage.  Requesters using that profile
<bcp14>SHOULD</bcp14> use body carriage by default because ML-DSA-backed COSE envelopes are
large before base64url expansion and can exceed field-size limits enforced by
intermediaries.  A deployment profile <bcp14>MAY</bcp14> permit field carriage with
<tt>Authorization: Budget</tt> only when it defines accepted field-size limits and
failure behavior.  A Verifier <bcp14>MAY</bcp14> reject oversized field-carried credentials
before CBOR or COSE decoding.  A deployment <bcp14>MAY</bcp14> bind the body-carried envelope
to the request using a digest claim in the envelope's request-binding
structure.</t>
      </section>
      <section anchor="budget-attestation-field">
        <name>Multi-Scheme Composition and the Budget-Attestation Field</name>
        <t>The <tt>Budget-Attestation</tt> field carries a Budget-Attestation when the request
already uses <tt>Authorization</tt> for another origin-server credential or when a
deployment wants Budget authority to be visibly additive to another
authentication scheme.</t>
        <t>The field value is a Structured Field Item <xref target="RFC9651"/> whose bare item is a
Byte Sequence containing the COSE/CBOR Budget-Attestation envelope.</t>
        <sourcecode type="http-message"><![CDATA[
Budget-Attestation: :2BhA...base64-cose...kQ:
]]></sourcecode>
        <t>If both <tt>Authorization: Budget</tt> and <tt>Budget-Attestation</tt> are present, the
Verifier <bcp14>MUST</bcp14> reject the request unless a deployment profile explicitly
defines how the two credentials compose.  This avoids ambiguity about which
signed authority object is authoritative.</t>
        <t>The <tt>Authorization</tt> field <bcp14>MUST NOT</bcp14> be used to concatenate a non-Budget
credential and a Budget credential into a single field value unless a future
HTTP authentication scheme explicitly defines such composition.  When identity
authentication uses <tt>Authorization</tt>, Budget authority <bcp14>SHOULD</bcp14> be carried in the
request body for the <tt>cose-ml-dsa</tt> profile or, for bounded low-footprint
deployments, in the <tt>Budget-Attestation</tt> field.</t>
        <t>When a request carries both an identity credential and a Budget-Attestation,
the Verifier <bcp14>MUST</bcp14> evaluate the identity authentication layer and the budget
delegation layer independently.  Failure of the identity authentication layer
is handled according to that authentication scheme, typically with 401 or 403.
Failure of the budget delegation layer is handled with 427, or with the 403
compatibility fallback defined in <xref target="status-code"/>.</t>
        <t>The <tt>Budget-Attestation</tt> field is not the general-purpose carriage path for
multi-kilobyte post-quantum attestations.  Implementations of the
<tt>cose-ml-dsa</tt> profile <bcp14>MUST</bcp14> support body carriage with media type
<tt>application/budget-attestation+cose</tt>.  A deployment profile <bcp14>MAY</bcp14> permit
<tt>Budget-Attestation</tt> field carriage only when it defines accepted field-size
limits and failure behavior.  If the target request also needs an unrelated
representation body, that packaging profile <bcp14>MUST</bcp14> define how the
Budget-Attestation and application representation are bound to each other.</t>
      </section>
    </section>
    <section anchor="budget-envelope">
      <name>The Budget-Attestation Envelope</name>
      <t>The Budget-Attestation envelope is a COSE object <xref target="RFC9052"/> carrying a
CBOR claims set.  The claims set is encoded using deterministic CBOR
<xref target="RFC8949"/>.  Encoders <bcp14>MUST</bcp14> follow the core deterministic encoding
requirements of <xref target="RFC8949"/>, Section 4.2.1.  Verifiers <bcp14>MUST</bcp14> reject
non-deterministic encodings and <bcp14>MUST</bcp14> verify signatures over the exact
received deterministic encoding, not over a locally reserialized variant.
This document defines the logical claims below using CDDL <xref target="RFC8610"/>; exact
COSE encoding details can be profiled further during Working Group review.</t>
      <sourcecode type="cddl"><![CDATA[
Budget-Claims = {
  "version" => uint,
  "iss"     => tstr,
  "agent"   => tstr,
  "iat"     => uint,
  "exp"     => uint,
  "nonce"   => bstr .size (16..64),
  "kid"     => tstr,
  "rb"      => Request-Binding,
  "rails"   => [+ tstr],
  ? "cb"    => Channel-Binding,
  ? "amt"   => { + tstr => uint }
}

Request-Binding = {
  "method"  => tstr,
  "uri-h"   => bstr .size 32,
  "origin"  => tstr,
  ? "body-h" => bstr .size 32
}

Channel-Binding = {
  "type"  => tstr,
  "value" => bstr
}
]]></sourcecode>
      <t>The <tt>amt</tt> claim carries the delegated amount bound inside the signed
attestation.  A 427 response can separately advertise <tt>min-budget</tt> in its
Problem Details body; that response member is an input to client policy and
does not become authoritative unless it is reflected in a signed <tt>amt</tt>
claim.</t>
      <t>The CDDL above uses text claim names for readability in this early
revision.  A future revision can assign integer claim labels to reduce
wire size without changing the semantics of the claims.</t>
      <t>The optional <tt>cb</tt> claim is reserved for binding an attestation to an
external channel-binding value such as a TLS exporter.  This document
defines the claim container but does not define mandatory channel-binding
types.  A Verifier <bcp14>MUST</bcp14> reject a <tt>cb</tt> claim whose <tt>type</tt> it does not
understand or whose <tt>value</tt> does not match the locally computed
channel-binding value for that type.</t>
      <section anchor="primary-signature">
        <name>Primary Signature</name>
        <t>Every Budget-Attestation <bcp14>MUST</bcp14> contain exactly one primary Operator
signature.  The primary signature <bcp14>MUST</bcp14> use an ML-DSA algorithm identifier
registered for JOSE or COSE by <xref target="RFC9964"/>.</t>
        <t>The Budget status code and authentication scheme are algorithm-agile.  The
<tt>cose-ml-dsa</tt> profile defined by this document has the following
interoperability requirements:</t>
        <ul spacing="normal">
          <li>
            <t>Implementations of this profile <bcp14>MUST</bcp14> support ML-DSA-65.</t>
          </li>
          <li>
            <t>Implementations <bcp14>MAY</bcp14> support ML-DSA-87.</t>
          </li>
          <li>
            <t>Deployments <bcp14>MAY</bcp14> require ML-DSA-87 or another registered algorithm by local
policy.</t>
          </li>
          <li>
            <t>Verifiers <bcp14>MUST</bcp14> validate that the signed protected-header algorithm matches
local policy and <bcp14>MUST</bcp14> reject algorithm downgrades.</t>
          </li>
        </ul>
        <t>Future documents can define additional Budget-Attestation profiles using
other COSE or JOSE algorithm identifiers without changing the semantics of the
427 status code or the Budget authentication scheme.</t>
      </section>
      <section anchor="operator-key-discovery-and-trust">
        <name>Operator Key Discovery and Trust</name>
        <t>A Verifier <bcp14>MUST</bcp14> establish trust in an Operator public key before accepting
a Budget-Attestation signed by that key.  Trust can be established through
local configuration, an authenticated out-of-band agreement, or an
issuer-controlled HTTPS key-set endpoint.  A Verifier <bcp14>MUST NOT</bcp14> treat an
untrusted <tt>iss</tt> value or arbitrary key URL in an attestation as sufficient
authority to trust a key.</t>
        <t>One interoperable deployment profile is an issuer-controlled HTTPS key-set
URI, for example
<tt>https://example.com/.well-known/budget-issuer-keys</tt>, returning a
COSE_KeySet with media type <tt>application/cose-key-set</tt>.  A Verifier using
this profile <bcp14>MUST</bcp14> authenticate the HTTPS origin, <bcp14>MUST</bcp14> require each accepted
key to carry a key identifier usable as <tt>kid</tt>, <bcp14>MUST</bcp14> bind each key to the
expected issuer and algorithm policy, and <bcp14>MUST</bcp14> reject the request if the key
set is unavailable or omits the referenced key.  Cached key material <bcp14>MUST NOT</bcp14>
be used beyond its authenticated freshness lifetime.  Key rotation <bcp14>SHOULD</bcp14>
provide overlap between old and new keys for already-issued attestations.</t>
      </section>
      <section anchor="rail-keyed">
        <name>Optional Rail-Keyed Signature</name>
        <t>A Budget-Attestation <bcp14>MAY</bcp14> contain an additional rail-keyed signature.  A
rail-keyed signature <bcp14>MUST NOT</bcp14> replace the primary Operator signature and
<bcp14>MUST NOT</bcp14> be accepted when the primary signature fails.</t>
        <t>When a deployment uses SLH-DSA for rail-keyed signatures, it <bcp14>SHOULD</bcp14> use
the JOSE or COSE serializations defined by
<xref target="I-D.ietf-cose-sphincs-plus"/> once those registrations are available.
Until then, private-use algorithm identifiers <bcp14>MUST</bcp14> be treated as
deployment-specific and <bcp14>MUST NOT</bcp14> be advertised as interoperable.</t>
        <t>Because SLH-DSA signatures can be tens of kilobytes, an attestation that
contains a rail-keyed SLH-DSA signature <bcp14>MUST</bcp14> be carried in a request body
using <tt>application/budget-attestation+cose</tt> rather than in an HTTP field.</t>
      </section>
      <section anchor="verification">
        <name>Verification</name>
        <t>A Verifier processing a Budget-Attestation <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Decode the CBOR envelope and reject non-deterministic or malformed
encodings.</t>
          </li>
          <li>
            <t>Verify that the version is supported.</t>
          </li>
          <li>
            <t>Verify the primary signature against an Operator key authorized for the
issuer and <tt>kid</tt>.</t>
          </li>
          <li>
            <t>Verify <tt>iat</tt>, <tt>exp</tt>, clock skew, and maximum lifetime.  Verifiers
<bcp14>MUST</bcp14> reject attestations where <tt>exp - iat</tt> exceeds 900 seconds and
<bcp14>SHOULD</bcp14> apply no more than 60 seconds of clock-skew tolerance unless local
policy is stricter.  Operators and Verifiers <bcp14>SHOULD</bcp14> synchronize clocks
using an authenticated time source suitable for the deployment.</t>
          </li>
          <li>
            <t>Verify that <tt>nonce</tt> matches a live challenge and has not been used
before.</t>
          </li>
          <li>
            <t>Verify request binding against the bearing request, including method,
origin, target URI hash, and body hash when present.</t>
          </li>
          <li>
            <t>Verify rail policy if a <tt>rails</tt> claim is present.</t>
          </li>
          <li>
            <t>Verify any rail-keyed signature required by local policy.</t>
          </li>
        </ol>
        <t>Failure at any step <bcp14>MUST</bcp14> cause the Verifier to reject the request.</t>
      </section>
    </section>
    <section anchor="versioning">
      <name>Versioning</name>
      <t>This document defines version 1 of the Budget authentication scheme and
Budget-Attestation envelope.  A 427 response <bcp14>MUST</bcp14> include a
<tt>Protocol-427-Version</tt> response field containing a Structured Field
Integer <xref target="RFC9651"/>.</t>
      <t>A client that receives an unknown <tt>Protocol-427-Version</tt> value <bcp14>MUST NOT</bcp14>
guess at wire compatibility.  It <bcp14>MAY</bcp14> retry using a version it supports only
when the server advertises that version through local policy or a future
version-negotiation mechanism.  A server that receives a Budget credential
or <tt>Protocol-427-Version</tt> request value for an unsupported version <bcp14>MUST</bcp14>
reject the request with 427 and a <tt>version_unsupported</tt> reason code, unless
a future revision defines a different upgrade response.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This section follows the guidance in <xref target="RFC8126"/> and <xref target="RFC9205"/>.  The requested
registrations use the existing HTTP and media-type registries.</t>
      <section anchor="http-status-code">
        <name>HTTP Status Code</name>
        <t>IANA is asked to register the following entry in the "Hypertext Transfer
Protocol (HTTP) Status Code Registry" defined by <xref target="RFC9110"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Status Code</th>
              <th align="left">Short Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">427</td>
              <td align="left">Budget Required</td>
              <td align="left">This document, <xref target="status-code"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="http-authentication-scheme">
        <name>HTTP Authentication Scheme</name>
        <t>IANA is asked to register the following entry in the "Hypertext Transfer
Protocol (HTTP) Authentication Scheme Registry" defined by <xref target="RFC9110"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Authentication Scheme Name</th>
              <th align="left">Reference</th>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Budget</td>
              <td align="left">This document, <xref target="auth-scheme"/></td>
              <td align="left">Origin-server authentication using <tt>WWW-Authenticate</tt> and <tt>Authorization</tt>; not defined for proxy authentication</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="http-field-name">
        <name>HTTP Field Name</name>
        <t>IANA is asked to register the following entry in the "Hypertext Transfer
Protocol (HTTP) Field Name Registry":</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field Name</th>
              <th align="left">Status</th>
              <th align="left">Structured Type</th>
              <th align="left">Reference</th>
              <th align="left">Comments</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Protocol-427-Version</td>
              <td align="left">permanent</td>
              <td align="left">Integer</td>
              <td align="left">This document, <xref target="versioning"/></td>
              <td align="left">Version of the Budget authentication scheme and Budget-Attestation envelope</td>
            </tr>
            <tr>
              <td align="left">Budget-Attestation</td>
              <td align="left">permanent</td>
              <td align="left">Byte Sequence</td>
              <td align="left">This document, <xref target="budget-attestation-field"/></td>
              <td align="left">Additive carriage of a Budget-Attestation when <tt>Authorization</tt> is used by another origin-server scheme</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="budget-error-token-registry">
        <name>Budget Error Token Registry</name>
        <t>IANA is asked to create a "Budget Error Tokens" registry for tokens used in
the Problem Details <tt>reason</tt> extension member defined by
<xref target="budget-error-tokens"/>.  The registration policy is Specification Required
<xref target="RFC8126"/>.</t>
        <t>Initial registrations are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Token</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">token_expired</td>
              <td align="left">The attestation expired.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
            <tr>
              <td align="left">nonce_stale</td>
              <td align="left">The nonce is outside the accepted challenge window.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
            <tr>
              <td align="left">nonce_replay</td>
              <td align="left">The nonce was already accepted in the replay-tracking window.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
            <tr>
              <td align="left">bad_signature</td>
              <td align="left">A required signature failed validation.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
            <tr>
              <td align="left">untrusted_issuer</td>
              <td align="left">The issuer is not trusted by the Verifier.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
            <tr>
              <td align="left">budget_insufficient</td>
              <td align="left">The signed budget bounds do not satisfy the resource requirement.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
            <tr>
              <td align="left">version_unsupported</td>
              <td align="left">The protocol or attestation version is unsupported.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
            <tr>
              <td align="left">binding_mismatch</td>
              <td align="left">The signed request binding does not match the bearing request.</td>
              <td align="left">
                <xref target="budget-error-tokens"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is asked to register the following media type in the "Media Types"
registry using the template from <xref target="RFC6838"/>:</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>budget-attestation+cose</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t><tt>cose-type</tt>, with the same semantics as the <tt>cose-type</tt> parameter for
<tt>application/cose</tt> in <xref target="RFC9052"/>.</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/>.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>Implementations need to support COSE processing, deterministic CBOR, and
the algorithm identifiers profiled by this document.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>HTTP clients, gateways, and origin servers that exchange
Budget-Attestation envelopes.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>This media type does not support fragment identifiers.</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Deprecated alias names for this type: N/A; Magic number(s): N/A; File
extension(s): N/A; Macintosh file type code(s): N/A.</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>John McGraw, j.mcgraw@taskhawktech.com</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>John McGraw</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IESG</t>
          </dd>
          <dt>Provisional registration?</dt>
          <dd>
            <t>No</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Budget-Attestation is a bearer credential until verified.  HTTP exchanges
carrying it <bcp14>MUST</bcp14> use TLS.  Servers <bcp14>SHOULD</bcp14> scrub <tt>Authorization</tt> field
values, <tt>Budget-Attestation</tt> field values, and body-carried Budget credential
values from logs.</t>
      <t>Verifiers <bcp14>MUST</bcp14> validate every check in <xref target="budget-envelope"/> before
processing the protected request.  Missing keys, unavailable verification
dependencies, malformed CBOR, non-deterministic CBOR, expired
attestations, signature failures, nonce replay, unsupported versions, and
loss of nonce state all require request rejection.</t>
      <t>The COSE or JOSE algorithm identifier is part of the signed protected
metadata.  Verifiers <bcp14>MUST</bcp14> compare it against configured policy and <bcp14>MUST
NOT</bcp14> let a challenge parameter or client preference downgrade the
algorithm.</t>
      <t>Rail-keyed signatures are additive.  They do not create authority without
a valid primary Operator signature.</t>
      <t>Key lifecycle is security-critical.  Operators <bcp14>SHOULD</bcp14> rotate signing keys
on a predictable schedule, publish revocation information through the same
trust channel used for key distribution, and avoid issuing attestations
whose lifetime extends beyond the authenticated lifetime of the signing
key.  Verifiers <bcp14>MUST</bcp14> reject attestations signed by revoked, expired, or
unexpected keys.</t>
      <t>Large post-quantum signatures can create denial-of-service pressure on
HTTP parsers, HTTP field-section processing, and COSE libraries.  ML-DSA-backed
COSE envelopes are commonly too large to assume safe carriage through
general-purpose HTTP fields after base64url expansion.  Implementations <bcp14>MUST</bcp14>
apply size limits before decoding, <bcp14>MUST</bcp14> bound CBOR nesting depth and map
sizes, and <bcp14>SHOULD</bcp14> reject duplicate or unknown critical protected parameters
before expensive signature verification.</t>
      <t>Verifier nonce state can itself become a resource-exhaustion target.
Verifiers <bcp14>MUST</bcp14> bound the number of outstanding nonces per issuer,
protection space, and client identity signal available to the deployment,
and <bcp14>MUST</bcp14> expire unused nonces no later than their challenge <tt>max-age</tt>.
When nonce state reaches a configured limit, the Verifier <bcp14>MUST</bcp14> reject requests
that depend on an untracked nonce or shed unauthenticated challenge issuance
rather than accept a request with an untracked nonce.
At high scale, deployments <bcp14>SHOULD</bcp14> use self-authenticating nonces as described
in <xref target="auth-scheme"/> so challenge issuance does not require allocating
distributed state for every unauthenticated request.  Such constructions reduce
outstanding-challenge state but do not remove the need for bounded
accepted-nonce replay tracking when at-most-once acceptance is required.</t>
      <t>This version defines an optional <tt>cb</tt> claim container for deployments that
need binding to a particular TLS session or exporter value.  Specific
channel-binding types are not mandatory-to-implement in this revision and
need profiling before they can be assumed interoperable.  In the absence
of channel binding, short lifetimes, single-use nonces, request binding,
and replay-cache enforcement are mandatory replay controls.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>These considerations are informed by the privacy guidance in <xref target="RFC6973"/>.</t>
      <t>Budget-Attestations can reveal delegated requester identifiers, issuer identifiers,
rail preferences, and amount limits.  Implementations <bcp14>SHOULD</bcp14> use short
lifetimes, random nonces, data minimization in requester identifiers, and
body carriage when field logging by intermediaries would create avoidable
privacy risk.</t>
    </section>
    <section anchor="references">
      <name>References</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC6838">
          <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="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9110">
          <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="RFC9111">
          <front>
            <title>HTTP Caching</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 defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="RFC9205">
          <front>
            <title>Building Protocols with HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>Applications often use HTTP as a substrate to create HTTP-based APIs. This document specifies best practices for writing specifications that use HTTP to define new application protocols. It is written primarily to guide IETF efforts to define application protocols using HTTP for deployment on the Internet but might be applicable in other situations.</t>
              <t>This document obsoletes RFC 3205.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="56"/>
          <seriesInfo name="RFC" value="9205"/>
          <seriesInfo name="DOI" value="10.17487/RFC9205"/>
        </reference>
        <reference anchor="RFC9457">
          <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="RFC9651">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
              <t>This document obsoletes RFC 8941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9651"/>
          <seriesInfo name="DOI" value="10.17487/RFC9651"/>
        </reference>
        <reference anchor="RFC9964">
          <front>
            <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M. Prorock" initials="M." surname="Prorock"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9964"/>
          <seriesInfo name="DOI" value="10.17487/RFC9964"/>
        </reference>
        <reference anchor="FIPS204" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="204"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.204"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="I-D.ietf-httpapi-ratelimit-headers">
          <front>
            <title>RateLimit header fields for HTTP</title>
            <author fullname="Roberto Polli" initials="R." surname="Polli">
              <organization>Team Digitale, Italian Government</organization>
            </author>
            <author fullname="Alex Martínez Ruiz" initials="A. M." surname="Ruiz">
              <organization>Red Hat</organization>
            </author>
            <author fullname="Darrel Miller" initials="D." surname="Miller">
              <organization>Microsoft</organization>
            </author>
            <date day="23" month="May" year="2026"/>
            <abstract>
              <t>   This document defines the RateLimit-Policy and RateLimit HTTP header
   fields for servers to advertise their quota policies and the current
   service limits, thereby allowing clients to avoid being throttled.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-ratelimit-headers-11"/>
        </reference>
        <reference anchor="I-D.ietf-cose-sphincs-plus">
          <front>
            <title>SLH-DSA for JOSE and COSE</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>mesur.io</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="15" month="May" year="2026"/>
            <abstract>
              <t>   This document specifies JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for
   Stateless Hash-Based Digital Signature Standard (SLH-DSA), a Post-
   Quantum Cryptography (PQC) digital signature scheme defined in US
   NIST FIPS 205.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-sphincs-plus-08"/>
        </reference>
        <reference anchor="FIPS205" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.205.pdf">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="205"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.205"/>
        </reference>
        <reference anchor="X402" target="https://www.x402.org/x402-whitepaper.pdf">
          <front>
            <title>x402: An Open Standard for Internet-Native Payments</title>
            <author>
              <organization>Coinbase, Inc.</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="L402" target="https://github.com/lightninglabs/L402">
          <front>
            <title>L402 Protocol Specification</title>
            <author>
              <organization>Lightning Labs</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>

<section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This appendix follows <xref target="RFC7942"/> and is to be removed before publication
as an RFC.</t>
      <section anchor="kevros">
        <name>Kevros</name>
        <t>TaskHawk Systems operates a Kevros implementation that emits 427
challenges, publishes discovery and health metadata for deployment profiles,
and records reason-coded audit events.  Private no-spend proof workflows exist
for Budget-Attestation verification, but each run is evidence only for the
specific commit and deployment state under test.  Challenge emission,
Budget-Attestation verification, rail observation, settlement, and revenue are
separate evidence lanes and are not equivalent.  This implementation is
provided as implementation experience only; it is not required for
interoperability.</t>
      </section>
    </section>
    <section anchor="changes-since-00">
      <name>Changes Since -00</name>
      <ul spacing="normal">
        <li>
          <t>Removed language implying HTTP 402 semantics are controlled by deployed
payment protocols.</t>
        </li>
        <li>
          <t>Added <xref target="applicability"/> and <xref target="ratelimit-fields"/>.</t>
        </li>
        <li>
          <t>Updated ML-DSA serialization references to <xref target="RFC9964"/> and changed the
initial <tt>cose-ml-dsa</tt> interoperability baseline to ML-DSA-65, with ML-DSA-87
available as a high-assurance deployment policy option.</t>
        </li>
        <li>
          <t>Kept rail-keyed SLH-DSA optional and body-carried.</t>
        </li>
        <li>
          <t>Made body carriage mandatory to implement for the <tt>cose-ml-dsa</tt> profile and
recommended by default for post-quantum Budget-Attestation envelopes.</t>
        </li>
        <li>
          <t>Kept <tt>Authorization: Budget</tt> and <tt>Budget-Attestation</tt> as explicitly bounded
field-carriage options for deployment profiles that define accepted field
sizes and failure behavior.</t>
        </li>
        <li>
          <t>Added nonce replay, key-distribution, IANA, deterministic-CBOR, and
expanded security text based on review feedback.</t>
        </li>
        <li>
          <t>Aligned the attestation lifetime rule with implementation behavior:
<tt>exp - iat</tt> greater than 900 seconds is a verifier rejection condition.</t>
        </li>
        <li>
          <t>Tightened Implementation Status to separate challenge emission,
Budget-Attestation verification, rail observation, settlement, and revenue.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V963bbRpbu/3oKHGWt6aSboCX5Lk+6R5GcRGnf2pKTntWr
lwmSRRIxCDAAKJlju5/lPMt5stnXugCg7O5z5seZ1RNTuBSqdu3atS/f3pWm
qbk+Se6aeTUrs7U9SeZ1tmjT9WxZZzfpqm032SZPs6Ut23S6nS9tmx4emTZv
C3j2jyZJrlY2+Y5uJD9eXb1KTrftCh7OZ1mbV2VyOVvZtU2ycp7cO36oT762
v23z2s6TyzZrt01yVs2tyabT2kJnOs8YaMkuq3p3kjTt3OSb+iRp623THh8e
Pj48Nllts5Pk4Bc7pa9clK2tS3j/qs7KZlPV7YG5qep3y7rabk6oj6evLsw7
u4Or8xMYQUoX6UcWdZ4uNdzDGfYQ/2Yi0M+5LewSOjen96o6b3d0/TVce5av
c37q7OXlU/rxk/54/iw9vzyln5fPfnS/z757+dpc23JrsVed/iZJu9sAyX+B
oeTlMvkBb8PVdZYXJ4nM03/ktl2Mq3ppuEM8urxsTpKfxsnz2Q8wp3ApSXiq
f6pWZfIq2xZya5T8VI/pPjRxklxlzbsfs5t3yeWuae26SZ49O6O7OlH6AF2c
wehPkrNVVhdV29rmOi8KS3dquwRiniQ/n/KD1bZscTbflHkrLGCbpFokp2tb
A+npKcsD+3XMnPgfLXxrBd9q7Ww1nlVrU1b1Gmbpmoj1+vuzR0fHD+Tng0d3
H+nVB0eH+vPxvcfy8/Hh/WP9eeQegJ9H+vP48L7+vHf/of58cN898PjBPfz5
/cWry+ND+gkzlNXAGjwbzcmdO+V1sdlOm3GZN+14WV3fwR945Q6+dufFxeXV
GH+NoYXxZr7gRnhpPa/m28Kmz7IWuNGm32UNkOo8X+ZtViSX+bIErqwtEq+c
Z/Wc58VNOk47zeELYmR45aJsoOVta5HQ+lZDK+YKSFpWRbXcJV9jn76hBuYw
KyfJ8eHxvfTwEV1pYHZsk5eLij+RJAfY++TVm+8OYAHCIA7k+vnLi5Pk6HD8
4PD4UTxMg6/HE/fg8cO78vPh43tuXu4dE60v0vMxcrUTRTX0q8DFla5sNrd1
Ez01qxqbNptVXs6adFNsGz9J9/+vJ+l+d5KIdQvbNMmPWbP6/2OS7n92ku7D
A3+9d3g8TK+bm5vxe7iLYuYO/khvVrCOYW5s3aXPAd4/SU7L5OXGlm5ECbCA
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

-->

</rfc>
