<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-skokan-oauth-additional-hashes-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Additional Hashes for OAuth PoP and PKCE">Additional Hash Algorithms for OAuth 2.0 PKCE and Proof-of-Possession</title>
    <seriesInfo name="Internet-Draft" value="draft-skokan-oauth-additional-hashes-03"/>
    <author fullname="Filip Skokan">
      <organization>Okta</organization>
      <address>
        <email>panva.ip@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="27"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>pkce</keyword>
    <keyword>dpop</keyword>
    <keyword>mtls</keyword>
    <abstract>
      <?line 57?>

<t>This document defines SHA-512 as an additional hash algorithm for
OAuth 2.0 Proof Key for Code Exchange (PKCE), mutual-TLS
certificate-bound access tokens, and Demonstrating Proof of
Possession (DPoP), for use in deployments operating under security
policies that prohibit the use of SHA-256, which is otherwise
mandated or the only option in these mechanisms.</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-skokan-oauth-additional-hashes/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/panva/draft-oauth-additional-hashes"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Several OAuth 2.0 mechanisms exclusively mandate the use of SHA-256:
Proof Key for Code Exchange (PKCE) <xref target="RFC7636"/>, mutual-TLS
certificate-bound access tokens <xref target="RFC8705"/>, and Demonstrating Proof
of Possession (DPoP) <xref target="RFC9449"/>.</t>
      <t>Security policies, such as the US Commercial National Security
Algorithm (CNSA 2.0) Suite <xref target="cnsafaq"/>, prohibit the use of SHA-256 and
require SHA-384 or SHA-512. This prevents the deployment of these
OAuth 2.0 mechanisms in such environments.</t>
      <t>This document addresses this gap by defining SHA-512 alternatives
for each of these mechanisms, for use in deployments operating
under such constrained policies. For PKCE, a new <tt>S512</tt> code challenge
method is defined. For mutual-TLS certificate-bound access tokens,
a new <tt>x5t#S512</tt> confirmation method is defined. For DPoP, this
document defines SHA-512 alternatives for the JWK Thumbprint
confirmation method (<tt>jkt#S512</tt>) and the access token hash claim
(<tt>ath#S512</tt>), as well as an extensible framework for
authorization code binding and access token hash algorithm
negotiation.</t>
      <t>[[TODO: The hash algorithm chosen by this document is
currently SHA-512. The working group should determine whether to
define SHA-384 or SHA-512.]]</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>All references to "CNSA 2.0" in this document refer to CNSA 2.0
<xref target="cnsafaq"/>, unless stated otherwise.</t>
    </section>
    <section anchor="purpose-and-scope">
      <name>Purpose and Scope</name>
      <t>The sole purpose of this document is to enable deployments operating
under security policies that prohibit SHA-256 to use PKCE,
mutual-TLS certificate-bound access tokens, and DPoP. In such
constrained
deployments, the SHA-512 alternatives defined herein are used in
place of their SHA-256 counterparts, since those deployments cannot
use SHA-256 at all.</t>
      <t>This document does not deprecate the SHA-256 based methods defined
in existing specifications. The SHA-256 based methods remain the
widely deployed, interoperable and recommended defaults for all
mechanisms addressed by this document. Deployments that are not
subject to such security policies <bcp14>SHOULD NOT</bcp14> offer or use the
SHA-512 based methods defined herein.</t>
      <t>The negotiation mechanisms defined herein may however facilitate a
broader transition away from SHA-256 in the future, should that
become necessary.</t>
    </section>
    <section anchor="pkce">
      <name>PKCE</name>
      <t>Proof Key for Code Exchange (PKCE) <xref target="RFC7636"/> defines <tt>plain</tt> and
<tt>S256</tt> as code challenge methods, with <tt>S256</tt> being the only method
that applies a
cryptographic hash to the code verifier. The specification
establishes the "PKCE Code Challenge Methods" registry, which this
document uses to register the <tt>S512</tt> code challenge method.</t>
      <section anchor="S512">
        <name><tt>S512</tt> Code Challenge Method</name>
        <t>This document defines a new code challenge method for use with
PKCE <xref target="RFC7636"/>. The client creates a code challenge derived from
the code verifier by using the following transformation on the code
verifier:</t>
        <dl>
          <dt>S512:</dt>
          <dd>
            <t>code_challenge = BASE64URL(SHA-512(ASCII(code_verifier)))</t>
          </dd>
        </dl>
        <t>The server-side verification of the code verifier follows
<xref section="4.6" sectionFormat="of" target="RFC7636"/>, using SHA-512 as the hash algorithm.</t>
      </section>
      <section anchor="as-metadata">
        <name>Authorization Server Metadata</name>
        <t>An Authorization Server that supports the <tt>S512</tt> code challenge
method <bcp14>MUST</bcp14> advertise its support in its Authorization Server
metadata (e.g., <xref target="RFC8414"/> or <xref target="OpenID.Discovery"/>) by including
<tt>S512</tt> in the <tt>code_challenge_methods_supported</tt> metadata parameter
value as defined in <xref target="RFC8414"/>.</t>
      </section>
    </section>
    <section anchor="mtls">
      <name>Mutual-TLS</name>
      <t>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound
Access Tokens <xref target="RFC8705"/> exclusively uses SHA-256 for
certificate-bound access tokens via the <tt>x5t#S256</tt> confirmation
method. No alternative hash algorithms or extension points for hash
algorithm negotiation are defined. This document defines the
<tt>x5t#S512</tt> confirmation method and a Resource Server metadata
parameter for negotiating the confirmation method.</t>
      <section anchor="x5t-S512">
        <name><tt>x5t#S512</tt> Confirmation Method</name>
        <t>RFC 8705 <xref target="RFC8705"/> defines the <tt>x5t#S256</tt> confirmation method
member for binding access tokens to a client certificate using a
SHA-256 hash of the DER-encoded X.509 certificate.</t>
        <t>This document defines an analogous confirmation method member
<tt>x5t#S512</tt> that uses SHA-512 as the hash algorithm:</t>
        <dl>
          <dt>x5t#S512:</dt>
          <dd>
            <t>The value is a base64url-encoded SHA-512 hash of the
DER encoding of the X.509 certificate.</t>
          </dd>
        </dl>
        <t>When using <tt>x5t#S512</tt>, the Authorization Server computes the
SHA-512 hash of the client certificate presented during mutual-TLS
and includes the result as the <tt>x5t#S512</tt> member of the <tt>cnf</tt>
claim in the access token (for JWT access tokens) or associates
it with the token for later retrieval via token introspection
<xref target="RFC7662"/>.</t>
        <t>The Resource Server <bcp14>MUST</bcp14> compute the SHA-512 hash of the client
certificate presented during mutual-TLS and compare it with the
<tt>x5t#S512</tt> value in the <tt>cnf</tt> claim. If the values do not match,
the Resource Server <bcp14>MUST</bcp14> reject the request.</t>
        <t>The choice of <tt>x5t#S512</tt> over <tt>x5t#S256</tt> is a deployment decision.
It can be configured out of band or by the Authorization Server
using the Resource Server's metadata (<xref target="mtls-rs-metadata"/>).</t>
        <t>[[TODO: <xref section="3.1" sectionFormat="of" target="RFC7800"/> does not preclude
the presence of both <tt>x5t#S256</tt> and <tt>x5t#S512</tt> in the same <tt>cnf</tt>
claim. Including both would not represent confirmations for two
different keys but rather two different hash confirmations of the
same certificate. This may actually be useful during a transition
period in possible future non-constrained deployment scenarios.
The working group should determine whether to prohibit or allow
this.]]</t>
      </section>
      <section anchor="mtls-rs-metadata">
        <name>Resource Server Metadata</name>
        <t>This document defines the <tt>mtls_confirmation_methods_supported</tt>
Resource Server metadata parameter <xref target="RFC9728"/>. Its value is a JSON
array containing the mutual-TLS confirmation method names that the
Resource Server supports. Defined values are <tt>x5t#S256</tt> and
<tt>x5t#S512</tt>. If omitted, the default is <tt>["x5t#S256"]</tt>.</t>
      </section>
    </section>
    <section anchor="dpop">
      <name>DPoP</name>
      <t>OAuth 2.0 Demonstrating Proof of Possession (DPoP) <xref target="RFC9449"/>
exclusively uses SHA-256 for all of its hash
operations: the <tt>jkt</tt> confirmation method, the <tt>ath</tt> access token
hash claim, and the <tt>dpop_jkt</tt> authorization code binding parameter.
No alternative hash algorithms or extension points for hash
algorithm negotiation are defined.</t>
      <t><xref section="11.10" sectionFormat="of" target="RFC9449"/> anticipated the need for hash algorithm
agility and foresaw that a future specification would define a new
confirmation method, JWT claim, and authorization request parameter
for use as alternatives to their SHA-256 counterparts. This document
defines those DPoP mechanisms: the <tt>dpop_jkt_method</tt> authorization
request parameter, the <tt>jkt#S512</tt> confirmation method, and the
<tt>ath#S512</tt> JWT claim. In constrained deployments where SHA-256 is
prohibited, these are used in place of their SHA-256 counterparts
rather than alongside them.</t>
      <section anchor="authorization-code-binding-methods">
        <name>Authorization Code Binding Methods</name>
        <section anchor="dpop-jkt-method">
          <name><tt>dpop_jkt_method</tt> Authorization Request Parameter</name>
          <t>RFC 9449 <xref target="RFC9449"/> defines the <tt>dpop_jkt</tt> authorization request
parameter as the JWK Thumbprint <xref target="RFC7638"/> of the DPoP public key
using SHA-256. This document changes the definition of <tt>dpop_jkt</tt>
to allow alternative hash algorithms indicated by the
<tt>dpop_jkt_method</tt> parameter.</t>
          <t>This document defines the <tt>dpop_jkt_method</tt> authorization request
parameter, sent alongside <tt>dpop_jkt</tt>, to indicate the hash algorithm
used to compute the JWK Thumbprint. The following method values are
defined:</t>
          <dl>
            <dt>S256:</dt>
            <dd>
              <t>JWK Thumbprint <xref target="RFC7638"/> using SHA-256, as originally
defined in <xref section="10" sectionFormat="of" target="RFC9449"/>.</t>
            </dd>
            <dt>S512:</dt>
            <dd>
              <t>JWK Thumbprint <xref target="RFC7638"/> using SHA-512.</t>
            </dd>
          </dl>
          <t>For backwards compatibility, when <tt>dpop_jkt_method</tt> is absent from
the authorization request, the Authorization Server <bcp14>MUST</bcp14> assume the
value <tt>S256</tt>.</t>
          <t>The value of <tt>dpop_jkt</tt> <bcp14>MUST</bcp14> be computed using the hash algorithm
indicated by <tt>dpop_jkt_method</tt>.</t>
        </section>
        <section anchor="dpop-as-metadata">
          <name>Authorization Server Metadata</name>
          <t>This document defines the <tt>dpop_jkt_methods_supported</tt> Authorization
Server metadata parameter. Its value is a JSON array containing the
<tt>dpop_jkt_method</tt> values that the Authorization Server supports.</t>
          <t>An Authorization Server that supports <tt>dpop_jkt_method</tt> values
beyond <tt>S256</tt> <bcp14>MUST</bcp14> advertise its support by including the supported
values in the <tt>dpop_jkt_methods_supported</tt> metadata parameter.</t>
        </section>
      </section>
      <section anchor="sha-512-hash-algorithms">
        <name>SHA-512 Hash Algorithms</name>
        <section anchor="jkt-S512">
          <name><tt>jkt#S512</tt> Confirmation Method</name>
          <t>RFC 9449 <xref target="RFC9449"/> defines the <tt>jkt</tt> confirmation method member
for binding access tokens to a DPoP public key using a SHA-256
JWK Thumbprint <xref target="RFC7638"/>.</t>
          <t>This document defines an analogous confirmation method member
<tt>jkt#S512</tt> that uses SHA-512 as the hash algorithm:</t>
          <dl>
            <dt>jkt#S512:</dt>
            <dd>
              <t>The value is the base64url encoding of the JWK
Thumbprint <xref target="RFC7638"/> computed using SHA-512 of the DPoP
public key (in JWK format) to which the access token is bound.</t>
            </dd>
          </dl>
          <t>When using <tt>jkt#S512</tt>, the Authorization Server computes the
SHA-512 JWK Thumbprint of the DPoP public key and includes the
result as the <tt>jkt#S512</tt> member of the <tt>cnf</tt> claim in the access
token (for JWT access tokens) or associates it with the token
for later retrieval via token introspection <xref target="RFC7662"/>.</t>
          <t>The Resource Server <bcp14>MUST</bcp14> compute the SHA-512 JWK Thumbprint of
the DPoP public key and compare it with the <tt>jkt#S512</tt> value in
the <tt>cnf</tt> claim. If the values do not match, the Resource Server
<bcp14>MUST</bcp14> reject the request.</t>
          <t>The choice of <tt>jkt#S512</tt> over <tt>jkt</tt> is a deployment decision. It
can be configured out of band or by the Authorization Server using
the Resource Server's metadata (<xref target="dpop-rs-metadata"/>).</t>
          <t>[[TODO: <xref section="3.1" sectionFormat="of" target="RFC7800"/> does not preclude
the presence of both <tt>jkt</tt> and <tt>jkt#S512</tt> in the same <tt>cnf</tt> claim.
Including both would not represent confirmations for two different
keys but rather two different hash confirmations of the same key.
This may actually be useful during a transition period in possible
future non-constrained deployment scenarios. The working group
should determine whether to prohibit or allow this.]]</t>
        </section>
        <section anchor="dpop-ath">
          <name><tt>ath#S512</tt> Access Token Hash</name>
          <t>RFC 9449 <xref target="RFC9449"/> defines the <tt>ath</tt> claim in the DPoP proof JWT
as the base64url-encoded SHA-256 hash of the ASCII encoding of the
access token value.</t>
          <t>This document defines an analogous claim <tt>ath#S512</tt> that uses
SHA-512 as the hash algorithm:</t>
          <dl>
            <dt>ath#S512:</dt>
            <dd>
              <t>The value is the base64url encoding of the SHA-512 hash of
the ASCII encoding of the associated access token's value.</t>
            </dd>
          </dl>
          <t>[[TODO: Including both <tt>ath</tt> and <tt>ath#S512</tt> in the same DPoP proof
JWT would not represent hashes of two different access tokens but
rather two different hash confirmations of the same access token.
This may actually be useful during a transition period in possible
future non-constrained deployment scenarios. The working group
should determine whether to prohibit or allow this.]]</t>
          <t>The Resource Server <bcp14>MUST</bcp14> compute the SHA-512 hash of the ASCII
encoding of the access token value and compare it with the
<tt>ath#S512</tt> value in the DPoP proof JWT. If the values do not
match, the Resource Server <bcp14>MUST</bcp14> reject the request.</t>
          <t>A Resource Server <bcp14>MAY</bcp14> signal the acceptable access token hash
methods by including the <tt>ath_methods</tt> parameter in the
<tt>WWW-Authenticate: DPoP</tt> challenge. The value of <tt>ath_methods</tt> is a
space-delimited list of access token hash claim names that the
Resource Server supports, analogous to the <tt>algs</tt> parameter defined
in <xref section="7.1" sectionFormat="of" target="RFC9449"/>. When <tt>ath_methods</tt> is absent, the
Client <bcp14>MUST</bcp14> use <tt>ath</tt>. When <tt>ath_methods</tt> is present, the Client
<bcp14>MUST</bcp14> use one of the listed methods. Additionally, Resource Server
metadata for the supported access token hash methods is defined in
<xref target="dpop-rs-metadata"/>.</t>
          <t>The following is a non-normative example of an HTTP response
signalling the client to use <tt>ath#S512</tt>:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 401 Unauthorized
WWW-Authenticate: DPoP algs="Ed25519", ath_methods="ath#S512"
]]></sourcecode>
        </section>
        <section anchor="dpop-rs-metadata">
          <name>Resource Server Metadata</name>
          <t>This document defines the following Resource Server metadata
parameters <xref target="RFC9728"/>:</t>
          <dl>
            <dt>dpop_confirmation_methods_supported:</dt>
            <dd>
              <t>JSON array containing the DPoP confirmation method names
that the Resource Server supports. Defined values are <tt>jkt</tt>
and <tt>jkt#S512</tt>. If omitted, the default is <tt>["jkt"]</tt>.</t>
            </dd>
            <dt>dpop_access_token_hash_methods_supported:</dt>
            <dd>
              <t>JSON array containing the access token hash claim names
that the Resource Server supports. Defined values are <tt>ath</tt>
and <tt>ath#S512</tt>. If omitted, the default is <tt>["ath"]</tt>.</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The <tt>S512</tt> code challenge method provides the same structural
security properties as <tt>S256</tt>. It is a one-way transformation of
the code verifier that prevents an attacker who intercepts the
authorization code from computing the code verifier needed to exchange
it for tokens.</t>
      <t>The <tt>x5t#S512</tt> confirmation method provides the same structural
security properties as <tt>x5t#S256</tt> defined in <xref target="RFC8705"/>.</t>
      <t>The <tt>jkt#S512</tt> confirmation method, <tt>dpop_jkt</tt> combined with
<tt>dpop_jkt_method</tt> parameter, and <tt>ath#S512</tt> claim provide the same
structural security properties as their SHA-256 counterparts
defined in DPoP <xref target="RFC9449"/>.</t>
      <t>SHA-512 provides a 256-bit collision resistance and 512-bit preimage
resistance, exceeding the 128-bit and 256-bit levels provided by
SHA-256. The use of SHA-512 is suitable for deployments with elevated
security requirements.</t>
      <t>Deployments that do not have restrictions on use of SHA-256
do not need to migrate away from the established SHA-256 based
mechanisms.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="pkce-code-challenge-method-registration">
        <name>PKCE Code Challenge Method Registration</name>
        <t>This document requests registration of the following value in the
"PKCE Code Challenge Methods" registry established by <xref section="6.2" sectionFormat="of" target="RFC7636"/>:</t>
        <dl>
          <dt>Code Challenge Method Parameter Name:</dt>
          <dd>
            <t><tt>S512</tt></t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="S512"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="dpop-binding-registry">
        <name>DPoP Authorization Code Binding Methods Registry</name>
        <t>This document establishes the "DPoP Authorization Code Binding
Methods" registry for <tt>dpop_jkt_method</tt> values.</t>
        <t>New entries are registered using the Specification Required policy
<xref target="RFC5226"/>.</t>
        <t>The initial contents of the registry are:</t>
        <dl>
          <dt>Method Name:</dt>
          <dd>
            <t><tt>S256</tt></t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref section="10" sectionFormat="of" target="RFC9449"/></t>
          </dd>
          <dt>Method Name:</dt>
          <dd>
            <t><tt>S512</tt></t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-jkt-method"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-parameters-registrations">
        <name>OAuth Parameters Registrations</name>
        <t>This document requests registration of the following value in the
"OAuth Parameters" registry established by <xref target="RFC6749"/>:</t>
        <dl>
          <dt>Parameter Name:</dt>
          <dd>
            <t><tt>dpop_jkt_method</tt></t>
          </dd>
          <dt>Parameter Usage Location:</dt>
          <dd>
            <t>authorization request</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-jkt-method"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-authorization-server-metadata-registration">
        <name>OAuth Authorization Server Metadata Registration</name>
        <t>This document requests registration of the following value in the
"OAuth Authorization Server Metadata" registry established by
<xref target="RFC8414"/>:</t>
        <dl>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>dpop_jkt_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the <tt>dpop_jkt_method</tt>
values supported by the Authorization Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-as-metadata"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="jwt-claims-registration">
        <name>JWT Claims Registration</name>
        <t>This document requests registration of the following value in the
"JSON Web Token Claims" registry established by <xref target="RFC7519"/>:</t>
        <dl>
          <dt>Claim Name:</dt>
          <dd>
            <t><tt>ath#S512</tt></t>
          </dd>
          <dt>Claim Description:</dt>
          <dd>
            <t>The base64url-encoded SHA-512 hash of the ASCII encoding
of the associated access token's value</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-ath"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-protected-resource-metadata-registrations">
        <name>OAuth Protected Resource Metadata Registrations</name>
        <t>This document requests registration of the following values in the
"OAuth Protected Resource Metadata" registry established by
<xref target="RFC9728"/>:</t>
        <dl>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>dpop_confirmation_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the DPoP confirmation
method names supported by the Resource Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-rs-metadata"/> of this document</t>
          </dd>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>dpop_access_token_hash_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the access token hash
claim names supported by the Resource Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-rs-metadata"/> of this document</t>
          </dd>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>mtls_confirmation_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the mutual-TLS
confirmation method names supported by the Resource Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="mtls-rs-metadata"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="jwt-confirmation-methods-registrations">
        <name>JWT Confirmation Methods Registrations</name>
        <t>This document requests registration of the following values in the
"JWT Confirmation Methods" registry established by <xref target="RFC7800"/>:</t>
        <dl>
          <dt>Confirmation Method Value:</dt>
          <dd>
            <t><tt>x5t#S512</tt></t>
          </dd>
          <dt>Confirmation Method Description:</dt>
          <dd>
            <t>X.509 Certificate SHA-512 Thumbprint</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="x5t-S512"/> of this document</t>
          </dd>
          <dt>Confirmation Method Value:</dt>
          <dd>
            <t><tt>jkt#S512</tt></t>
          </dd>
          <dt>Confirmation Method Description:</dt>
          <dd>
            <t>JWK SHA-512 Thumbprint</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="jkt-S512"/> of this document</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7636">
          <front>
            <title>Proof Key for Code Exchange by OAuth Public Clients</title>
            <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7636"/>
          <seriesInfo name="DOI" value="10.17487/RFC7636"/>
        </reference>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="RFC8705">
          <front>
            <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8705"/>
          <seriesInfo name="DOI" value="10.17487/RFC8705"/>
        </reference>
        <reference anchor="RFC9449">
          <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="RFC9728">
          <front>
            <title>OAuth 2.0 Protected Resource Metadata</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Parecki" initials="A." surname="Parecki"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9728"/>
          <seriesInfo name="DOI" value="10.17487/RFC9728"/>
        </reference>
        <reference anchor="OpenID.Discovery" target="https://openid.net/specs/openid-connect-discovery-1_0-errata2.html">
          <front>
            <title>OpenID Connect Discovery 1.0 incorporating errata set 2</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="E." surname="Jay">
              <organization/>
            </author>
            <date year="2023" month="December"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5226">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>Many protocols make use of identifiers consisting of constants and other well-known values. Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec). To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority. For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).</t>
              <t>In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made. If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role. This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.</t>
              <t>This document obsoletes RFC 2434. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5226"/>
          <seriesInfo name="DOI" value="10.17487/RFC5226"/>
        </reference>
        <reference anchor="RFC6749">
          <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="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </reference>
        <reference anchor="cnsafaq" target="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF">
          <front>
            <title>The Commercial National Security Algorithm Suite 2.0 and Quantum Computing FAQ</title>
            <author>
              <organization>National Security Agency</organization>
            </author>
            <date year="2024" month="December"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 592?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>draft-skokan-oauth-additional-hashes-03</t>
      <ul spacing="normal">
        <li>
          <t>Added Document History</t>
        </li>
        <li>
          <t>Changed <tt>ath_method</tt> to <tt>ath_methods</tt> (plural, space-delimited list),
analogous to the <tt>algs</tt> parameter in <xref section="7.1" sectionFormat="of" target="RFC9449"/></t>
        </li>
        <li>
          <t>Removed premature "in place of <tt>ath</tt>" language for <tt>ath#S512</tt>,
pending resolution of the dual-hash coexistence TODO</t>
        </li>
      </ul>
      <t>draft-skokan-oauth-additional-hashes-02</t>
      <ul spacing="normal">
        <li>
          <t>Removed client-side <bcp14>MUST NOT</bcp14> requirements for using unadvertised
PKCE and DPoP authorization code binding methods</t>
        </li>
      </ul>
      <t>draft-skokan-oauth-additional-hashes-01</t>
      <ul spacing="normal">
        <li>
          <t>Changed hash algorithm from SHA-384 to SHA-512</t>
        </li>
        <li>
          <t>Added Purpose and Scope section</t>
        </li>
        <li>
          <t>Added Mutual-TLS section with <tt>x5t#S512</tt> confirmation method
and <tt>mtls_confirmation_methods_supported</tt> RS metadata</t>
        </li>
        <li>
          <t>Added <tt>dpop_confirmation_methods_supported</tt> RS metadata for DPoP</t>
        </li>
        <li>
          <t>Added <tt>WWW-Authenticate</tt> challenge parameter for access token
hash method signalling</t>
        </li>
        <li>
          <t>Added TODO notes for dual-hash coexistence questions</t>
        </li>
        <li>
          <t>Expanded Security Considerations</t>
        </li>
      </ul>
      <t>draft-skokan-oauth-additional-hashes-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
