<?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.21 (Ruby 3.3.6) -->
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<?rfc inline="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc strict="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc tocindent="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sheffer-oauth-rfc8725bis-00" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="JWT BCP">JSON Web Token Best Current Practices</title>
    <seriesInfo name="Internet-Draft" value="draft-sheffer-oauth-rfc8725bis-00"/>
    <author initials="Y." surname="Sheffer" fullname="Yaron Sheffer">
      <organization>Intuit</organization>
      <address>
        <email>yaronf.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="D." surname="Hardt" fullname="Dick Hardt">
      <organization/>
      <address>
        <email>dick.hardt@gmail.com</email>
      </address>
    </author>
    <author initials="M." surname="Jones" fullname="Michael B. Jones">
      <organization>Self-Issued Consulting</organization>
      <address>
        <email>michael_b_jones@hotmail.com</email>
        <uri>https://self-issued.info/</uri>
      </address>
    </author>
    <date year="2025" month="January" day="15"/>
    <area>Security</area>
    <workgroup>OAuth Working Group</workgroup>
    <keyword>JSON Web Token</keyword>
    <keyword>JWT</keyword>
    <keyword>JSON Object Signing and Encryption</keyword>
    <keyword>JOSE</keyword>
    <keyword>JSON Web Signature</keyword>
    <keyword>JWS</keyword>
    <keyword>JSON Web Encryption</keyword>
    <keyword>JWE</keyword>
    <keyword>attacks</keyword>
    <keyword>Claims</keyword>
    <keyword>Security</keyword>
    <keyword>Cryptography</keyword>
    <abstract>
      <?line 136?>

<t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security
 tokens that contain a set of claims that can be signed and/or encrypted.
 JWTs are being widely used and deployed as a simple security token
 format in numerous protocols and applications, both in the area of
 digital identity and in other application areas.  This Best Current
 Practices document updates RFC 7519 to provide actionable guidance
 leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <middle>
    <?line 150?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>JSON Web Tokens, also known as JWTs  <xref target="RFC7519"/>, are URL-safe JSON-based security tokens
that contain a set of claims that can be signed and/or encrypted.
The JWT specification has seen rapid adoption because it encapsulates
security-relevant information in one easy-to-protect location, and because
it is easy to implement using widely available tools.
One application area in which JWTs are commonly used is representing digital identity information,
such as OpenID Connect ID Tokens  <xref target="OpenID.Core"/>
and OAuth 2.0  <xref target="RFC6749"/> access tokens and
 refresh tokens, the details of which are deployment-specific.</t>
      <t>Since the JWT specification was published, there have been several widely published
attacks on implementations and deployments.
Such attacks are the result of under-specified security mechanisms, as well as incomplete
implementations and incorrect usage by applications.</t>
      <t>The goal of this document is to facilitate secure implementation and deployment of JWTs.
Many of the recommendations in this document are about
implementation and use of the cryptographic mechanisms underlying JWTs that are defined by
JSON Web Signature (JWS)  <xref target="RFC7515"/>,
JSON Web Encryption (JWE)  <xref target="RFC7516"/>, and
JSON Web Algorithms (JWA)  <xref target="RFC7518"/>.
Others are about use of the JWT claims themselves.</t>
      <t>These are intended to be minimum recommendations for the use of JWTs
in the vast majority of implementation
and deployment scenarios. Other specifications that reference this document can have
stricter requirements related to one or more aspects of the format, based on their
particular circumstances; when that is the case, implementers are advised to adhere
to those stricter requirements. Furthermore, this document provides a floor, not a ceiling,
so stronger options are always allowed (e.g., depending on differing evaluations of the
importance of cryptographic strength vs. computational load).</t>
      <t>Community knowledge about the strength of various algorithms and feasible attacks can
change quickly, and experience shows that a Best Current Practice (BCP) document about
security is a point-in-time statement. Readers are advised to seek out any errata or
updates that apply to this document.</t>
      <section anchor="target-audience">
        <name>Target Audience</name>
        <t>The intended audiences of this document are:</t>
        <ul spacing="normal">
          <li>
            <t>Implementers of JWT libraries (and the JWS and JWE libraries
 used by those libraries),</t>
          </li>
          <li>
            <t>Implementers of code that uses such libraries (to the extent that some mechanisms may
not be provided by libraries, or until they are), and</t>
          </li>
          <li>
            <t>Developers of specifications that rely on JWTs, both inside and
 outside the IETF.</t>
          </li>
        </ul>
      </section>
      <section anchor="conventions-used-in-this-document">
        <name>Conventions Used in this Document</name>
        <t>The key words "MUST", "MUST NOT",
 "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
 "RECOMMENDED", "NOT RECOMMENDED",
 "MAY", and "OPTIONAL" in this document are
 to be interpreted as
 described in BCP 14  <xref target="RFC2119"/>  <xref target="RFC8174"/>
 when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="threats-and-vulnerabilities">
      <name>Threats and Vulnerabilities</name>
      <t>This section lists some known and possible problems with JWT
 implementations and deployments.
Each problem description is followed by references to one or more mitigations to those problems.</t>
      <section anchor="weak-signatures-and-insufficient-signature-validation">
        <name>Weak Signatures and Insufficient Signature Validation</name>
        <t>Signed JSON Web Tokens carry an explicit indication of the signing algorithm,
in the form of the "alg" Header Parameter, to facilitate cryptographic agility.
This, in conjunction with design flaws in some libraries and applications,
 has led to several attacks:</t>
        <ul spacing="normal">
          <li>
            <t>The algorithm can be changed to "none" by an attacker, and some libraries would trust
this value and "validate" the JWT without checking any signature.</t>
          </li>
          <li>
            <t>An "RS256" (RSA, 2048 bit) parameter value can be changed into
"HS256" (HMAC, SHA-256), and some libraries
would try to validate the signature using HMAC-SHA256 and using the RSA public key as the
HMAC shared secret (see  <xref target="McLean"/> and
  <xref target="CVE-2015-9235"/>).</t>
          </li>
        </ul>
        <t>For mitigations, see Sections  <xref format="counter" target="algorithm-verification"/> and  <xref format="counter" target="appropriate-algorithms"/>.</t>
      </section>
      <section anchor="weak-symmetric-keys">
        <name>Weak Symmetric Keys</name>
        <t>In addition, some applications use a keyed Message Authentication
 Code (MAC) algorithm, such as
"HS256", to sign tokens but supply a weak symmetric key with
insufficient entropy (such as a human-memorable password). Such keys
are vulnerable to offline brute-force or dictionary attacks once an
attacker gets hold of such a token  <xref target="Langkemper"/>.</t>
        <t>For mitigations, see  <xref target="key-entropy"/>.</t>
      </section>
      <section anchor="incorrect-composition-of-encryption-and-signature">
        <name>Incorrect Composition of Encryption and Signature</name>
        <t>Some libraries that decrypt a JWE-encrypted JWT to obtain a JWS-signed object
do not always validate the internal signature.</t>
        <t>For mitigations, see  <xref target="validate-crypto"/>.</t>
      </section>
      <section anchor="plaintext-leakage-through-analysis-of-ciphertext-length">
        <name>Plaintext Leakage through Analysis of Ciphertext Length</name>
        <t>Many encryption algorithms leak information about the length of the
 plaintext, with a varying amount of
leakage depending on the algorithm and mode of operation. This problem is exacerbated
when the plaintext is initially compressed, because the length of the
compressed plaintext and, thus,
the ciphertext
depends not only on the length of the original plaintext but also
on its content.
Compression attacks are particularly
powerful when there is attacker-controlled data in the same compression
space as secret data, which is the case for some attacks on HTTPS.</t>
        <t>See  <xref target="Kelsey"/> for general background
on compression and encryption and  <xref target="Alawatugoda"/> for a specific example of attacks on HTTP cookies.</t>
        <t>For mitigations, see  <xref target="no-compression"/>.</t>
      </section>
      <section anchor="insecure-use-of-elliptic-curve-encryption">
        <name>Insecure Use of Elliptic Curve Encryption</name>
        <t>Per  <xref target="Sanso"/>, several Javascript
 Object Signing and Encryption (JOSE) libraries
 fail to validate their inputs correctly
when performing elliptic curve key agreement (the "ECDH-ES" algorithm).
An attacker that is able to send JWEs of its choosing that use invalid curve points and
observe the cleartext outputs resulting from decryption with the invalid curve points
can use this vulnerability to recover the recipient's private key.</t>
        <t>For mitigations, see  <xref target="validate-inputs"/>.</t>
      </section>
      <section anchor="multiplicity-of-json-encodings">
        <name>Multiplicity of JSON Encodings</name>
        <t>Previous versions of the JSON format, such as the obsoleted  <xref target="RFC7159"/>,
allowed several different character
encodings: UTF-8, UTF-16, and UTF-32. This is not the case anymore, with the latest
standard  <xref target="RFC8259"/> only allowing UTF-8 except
for internal use within a "closed ecosystem".
This ambiguity, where older implementations and those used within closed environments may generate
non-standard encodings, may result in the JWT being
misinterpreted by its recipient. This, in turn, could be used by a malicious sender to bypass
the recipient's validation checks.</t>
        <t>For mitigations, see  <xref target="use-utf8"/>.</t>
      </section>
      <section anchor="substitution">
        <name>Substitution Attacks</name>
        <t>There are attacks in which one recipient will be given a JWT that was intended for it
and will attempt to use it at a different recipient for which that JWT was not intended.
For instance, if an OAuth 2.0  <xref target="RFC6749"/> access
token is legitimately presented to an
OAuth 2.0 protected resource for which it is intended, that protected resource might then present
that same access token to a different protected resource for which the access token is not intended,
in an attempt to gain access. If such situations are not caught, this can result in
the attacker gaining access to resources that it is not entitled to access.</t>
        <t>For mitigations, see Sections  <xref format="counter" target="validate-iss-sub"/> and  <xref format="counter" target="use-aud"/>.</t>
      </section>
      <section anchor="cross-jwt-confusion">
        <name>Cross-JWT Confusion</name>
        <t>As JWTs are being used by more different protocols in diverse
 application areas, it becomes increasingly
important to prevent cases of JWT tokens that have been issued for one purpose
being subverted and used for another.
Note that this is a specific type of substitution attack.
If the JWT could be used in an application context in which it could be
confused with other kinds of JWTs,
then mitigations  MUST be employed to prevent these substitution attacks.</t>
        <t>For mitigations, see Sections  <xref format="counter" target="validate-iss-sub"/>,  <xref format="counter" target="use-aud"/>,  <xref format="counter" target="use-typ"/>, and  <xref format="counter" target="preventing-confusion"/>.</t>
      </section>
      <section anchor="indirect-attacks-on-the-server">
        <name>Indirect Attacks on the Server</name>
        <t>Various JWT claims are used by the recipient to perform lookup operations,
such as database and Lightweight Directory Access Protocol (LDAP) searches.
Others include URLs that are similarly looked up by the server. Any of these claims can be used by
an attacker as vectors for injection attacks or server-side request forgery (SSRF) attacks.</t>
        <t>For mitigations, see  <xref target="do-not-trust-claims"/>.</t>
      </section>
    </section>
    <section anchor="BP">
      <name>Best Practices</name>
      <t>The best practices listed below should be applied by practitioners
to mitigate the threats listed in the preceding section.</t>
      <section anchor="algorithm-verification">
        <name>Perform Algorithm Verification</name>
        <t>Libraries  MUST enable the caller to specify a
 supported set of algorithms and  MUST NOT use any other algorithms when performing cryptographic operations.
The library  MUST ensure that the "alg" or "enc" header specifies the same algorithm
that is used for the cryptographic operation.
Moreover, each key  MUST be used with exactly one algorithm,
and this  MUST be checked when the cryptographic operation is performed.</t>
      </section>
      <section anchor="appropriate-algorithms">
        <name>Use Appropriate Algorithms</name>
        <t>As  Section 5.2 of <xref target="RFC7515"/> says,
"it is an application decision which algorithms may
be used in a given context. Even if a JWS can be successfully
validated, unless the algorithm(s) used in the JWS are acceptable to
the application, it  SHOULD consider the JWS to be invalid."</t>
        <t>Therefore, applications  MUST only allow the use of
 cryptographically current algorithms
that meet the security requirements of the application.
This set will vary over time as new algorithms are introduced
and existing algorithms are deprecated due to discovered cryptographic weaknesses.
Applications  MUST therefore be designed to enable cryptographic agility.</t>
        <t>That said, if a JWT is cryptographically protected end-to-end by a
 transport layer, such as TLS
using cryptographically current algorithms, there may be no need to apply another layer of
cryptographic protections to the JWT.
In such cases, the use of the "none" algorithm can be perfectly acceptable.
The "none" algorithm should only be used when the JWT is cryptographically protected by other means.
JWTs using "none" are often used in application contexts in which the content is optionally signed;
then, the URL-safe claims representation and processing can be the same in both
the signed and unsigned cases.
JWT libraries  SHOULD NOT generate JWTs using "none" unless
explicitly requested to do so by the caller.
Similarly, JWT libraries  SHOULD NOT consume JWTs using "none"
 unless explicitly requested by the caller.</t>
        <t>Applications  SHOULD follow these algorithm-specific recommendations:</t>
        <ul spacing="normal">
          <li>
            <t>Avoid all RSA-PKCS1 v1.5 encryption algorithms (<xref target="RFC8017"/>, Section 7.2), preferring
 RSAES-OAEP
 (<xref target="RFC8017"/>, Section 7.1).</t>
          </li>
          <li>
            <t>Elliptic Curve Digital Signature Algorithm (ECDSA) signatures  <xref target="ANSI-X962-2005"/> require a unique random value for
every message
 that is signed.
If even just a few bits of the random value are predictable across multiple messages, then
the security of the signature scheme may be compromised. In the worst case,
the private key may be recoverable by an attacker. To counter these attacks,
JWT libraries  SHOULD implement ECDSA using the deterministic
approach defined in  <xref target="RFC6979"/>.
This approach is completely compatible with existing ECDSA verifiers and so can be implemented
without new algorithm identifiers being required.</t>
          </li>
        </ul>
      </section>
      <section anchor="validate-crypto">
        <name>Validate All Cryptographic Operations</name>
        <t>All cryptographic operations used in the JWT  MUST be
 validated and the entire JWT  MUST be rejected
if any of them fail to validate.
This is true not only of JWTs with a single set of Header Parameters
but also for Nested JWTs in which both outer and inner operations  MUST be validated
using the keys and algorithms supplied by the application.</t>
      </section>
      <section anchor="validate-inputs">
        <name>Validate Cryptographic Inputs</name>
        <t>Some cryptographic operations, such as Elliptic Curve Diffie-Hellman key agreement
("ECDH-ES"), take inputs that may contain invalid values. This includes points not on
the specified elliptic curve
or other invalid points (e.g.,  <xref target="Valenta"/>, Section 7.1).
The JWS/JWE library itself must validate these inputs before using them,
or it must use underlying cryptographic libraries that do so (or both!).</t>
        <t>Elliptic Curve Diffie-Hellman Ephemeral Static (ECDH-ES) ephemeral
 public key (epk) inputs should be validated
 according to the recipient's
chosen elliptic curve. For the NIST prime-order curves P-256, P-384, and P-521,
validation  MUST
be performed according to Section 5.6.2.3.4 (ECC Partial Public-Key Validation
Routine) of "Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography"
<xref target="nist-sp-800-56a-r3"/>.
If the "X25519" or "X448"  <xref target="RFC8037"/> algorithms are used,
then the security considerations in  <xref target="RFC8037"/> apply.</t>
      </section>
      <section anchor="key-entropy">
        <name>Ensure Cryptographic Keys Have Sufficient Entropy</name>
        <t>The Key Entropy and Random Values advice in  Section 10.1 of <xref target="RFC7515"/> and the
 Password Considerations in  Section 8.8 of <xref target="RFC7518"/>
  MUST be followed.
In particular, human-memorizable passwords  MUST NOT be directly used
as the key to a keyed-MAC algorithm such as "HS256".
Moreover, passwords should only be used to perform key encryption, rather
than content encryption,
as described in  Section 4.8 of <xref target="RFC7518"/>.
Note that even when used for key encryption, password-based encryption is
 still subject to brute-force attacks.</t>
      </section>
      <section anchor="no-compression">
        <name>Avoid Compression of Encryption Inputs</name>
        <t>Compression of data  SHOULD NOT be done before encryption, because
such compressed data often reveals information about the plaintext.</t>
      </section>
      <section anchor="use-utf8">
        <name>Use UTF-8</name>
        <t><xref target="RFC7515"/>,  <xref target="RFC7516"/>, and  <xref target="RFC7519"/> all
 specify that UTF-8 be used for encoding and decoding JSON
used in Header Parameters and JWT Claims Sets. This is also in line with the
latest JSON specification  <xref target="RFC8259"/>.
Implementations and applications  MUST do this and not use or admit the use of
other Unicode encodings for these purposes.</t>
      </section>
      <section anchor="validate-iss-sub">
        <name>Validate Issuer and Subject</name>
        <t>When a JWT contains an "iss" (issuer) claim, the application
  MUST validate that the cryptographic keys
used for the cryptographic operations in the JWT belong to the issuer.
If they do not, the application  MUST reject the JWT.</t>
        <t>The means of determining the keys owned by an issuer is application-specific.
As one example, OpenID Connect  <xref target="OpenID.Core"/>
issuer values are "https" URLs
that reference a JSON metadata document that contains a "jwks_uri" value that is
an "https" URL from which the issuer's keys are retrieved as a JWK Set  <xref target="RFC7517"/>.
This same mechanism is used by  <xref target="RFC8414"/>.
Other applications may use different means of binding keys to issuers.</t>
        <t>Similarly, when the JWT contains a "sub" (subject) claim, the
 application  MUST validate that
the subject value corresponds to a valid subject and/or issuer-subject pair at the application.
This may include confirming that the issuer is trusted by the application.
If the issuer, subject, or the pair are invalid, the application
  MUST reject the JWT.</t>
      </section>
      <section anchor="use-aud">
        <name>Use and Validate Audience</name>
        <t>If the same issuer can issue JWTs that are intended for use by more
 than one relying party or application,
the JWT  MUST contain an "aud" (audience) claim that can be used
to determine whether the JWT
is being used by an intended party or was substituted by an attacker at an unintended party.</t>
        <t>In such cases, the relying party or application  MUST
 validate the audience value,
and if the audience value is not present or not associated with the recipient,
it  MUST reject the JWT.</t>
      </section>
      <section anchor="do-not-trust-claims">
        <name>Do Not Trust Received Claims</name>
        <t>The "kid" (key ID) header is used by the relying application to
 perform key lookup. Applications
should ensure that this does not create SQL or LDAP injection vulnerabilities by validating
and/or sanitizing the received value.</t>
        <t>Similarly, blindly following a "jku" (JWK set URL) or "x5u" (X.509 URL) header,
which may contain an arbitrary URL,
could result in server-side request forgery (SSRF) attacks. Applications SHOULD protect against such
attacks, e.g., by matching the URL to a whitelist of allowed locations
and ensuring no cookies are sent in the GET request.</t>
      </section>
      <section anchor="use-typ">
        <name>Use Explicit Typing</name>
        <t>Sometimes, one kind of JWT can be confused for another. If a particular
kind of JWT is subject to such confusion, that JWT can include an explicit
JWT type value, and the validation rules can specify checking the type.
This mechanism can prevent such confusion.
Explicit JWT typing is accomplished by using the "typ" Header Parameter.
For instance, the  <xref target="RFC8417"/> specification uses
the "application/secevent+jwt" media type
to perform explicit typing of Security Event Tokens (SETs).</t>
        <t>Per the definition of "typ" in  Section 4.1.9 of <xref target="RFC7515"/>,
it is  RECOMMENDED that the "application/" prefix be omitted from the "typ" value.
Therefore, for example, the "typ" value used to explicitly include a type for a SET SHOULD be "secevent+jwt".
When explicit typing is employed for a JWT, it is  RECOMMENDED
that a media type name of the format
"application/example+jwt" be used, where "example" is replaced by the
 identifier for the specific kind of JWT.</t>
        <t>When applying explicit typing to a Nested JWT, the "typ" Header
 Parameter containing the explicit type value  MUST be present in the inner JWT of the Nested JWT (the JWT
whose payload is the JWT Claims Set).
In some cases, the same "typ" Header Parameter value will be present in the outer JWT as well,
to explicitly type the entire Nested JWT.</t>
        <t>Note that the use of explicit typing may not achieve disambiguation
 from existing kinds of JWTs,
as the validation rules for existing kinds of JWTs often do not use the "typ" Header Parameter value.
Explicit typing is  RECOMMENDED for new uses of JWTs.</t>
      </section>
      <section anchor="preventing-confusion">
        <name>Use Mutually Exclusive Validation Rules for Different Kinds of JWTs</name>
        <t>Each application of JWTs defines a profile specifying the required
 and optional JWT claims
and the validation rules associated with them.
If more than one kind of JWT can be issued by the same issuer,
the validation rules for those JWTs  MUST be written such that
they are mutually exclusive,
rejecting JWTs of the wrong kind.
To prevent substitution of JWTs from one context into another,
application developers may employ a number of strategies:</t>
        <ul spacing="normal">
          <li>
            <t>Use explicit typing for different kinds of JWTs.
Then the distinct "typ" values can be used to differentiate between the
 different kinds of JWTs.</t>
          </li>
          <li>
            <t>Use different sets of required claims or different required claim values.
Then the validation rules for one kind of JWT will reject those with different
 claims or values.</t>
          </li>
          <li>
            <t>Use different sets of required Header Parameters or different
 required Header Parameter values.
Then the validation rules for one kind of JWT will reject those with different
 Header Parameters or values.</t>
          </li>
          <li>
            <t>Use different keys for different kinds of JWTs.
Then the keys used to validate one kind of JWT will fail to validate other kinds of JWTs.</t>
          </li>
          <li>
            <t>Use different "aud" values for different uses of JWTs from the same issuer.
Then audience validation will reject JWTs substituted into inappropriate contexts.</t>
          </li>
          <li>
            <t>Use different issuers for different kinds of JWTs.
Then the distinct "iss" values can be used to segregate the different kinds of JWTs.</t>
          </li>
        </ul>
        <t>Given the broad diversity of JWT usage and applications,
the best combination of types, required claims, values, Header Parameters, key usages, and issuers
to differentiate among different kinds of JWTs
will, in general, be application-specific.
As discussed in  <xref target="use-typ"/>, for new JWT
 applications, the use of explicit typing is
  RECOMMENDED.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This entire document is about security considerations when
 implementing and deploying JSON Web Tokens.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to  Antonio Sanso for bringing the
 "ECDH-ES" invalid point attack to the attention
of JWE and JWT implementers.  Tim McLean published the
RSA/HMAC confusion attack  <xref target="McLean"/>.
Thanks to  Nat Sakimura for advocating the use of
explicit typing. Thanks to  Neil Madden for his
numerous comments, and to Carsten Bormann, Brian Campbell, Brian Carpenter, Alissa Cooper, Roman Danyliw, Ben Kaduk,
Mirja Kühlewind, Barry Leiba, Eric Rescorla, Adam Roach, Martin Vigoureux,
and  Éric Vyncke
for their reviews.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC6979">
          <front>
            <title>Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)</title>
            <author fullname="T. Pornin" initials="T." surname="Pornin"/>
            <date month="August" year="2013"/>
            <abstract>
              <t>This document defines a deterministic digital signature generation procedure. Such signatures are compatible with standard Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) digital signatures and can be processed with unmodified verifiers, which need not be aware of the procedure described therein. Deterministic signatures retain the cryptographic security features associated with digital signatures but can be more easily implemented in various environments, since they do not need access to a source of high-quality randomness.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6979"/>
          <seriesInfo name="DOI" value="10.17487/RFC6979"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7516">
          <front>
            <title>JSON Web Encryption (JWE)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7516"/>
          <seriesInfo name="DOI" value="10.17487/RFC7516"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC7519">
          <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="RFC8017">
          <front>
            <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
              <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 3447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8017"/>
          <seriesInfo name="DOI" value="10.17487/RFC8017"/>
        </reference>
        <reference anchor="RFC8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </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="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="nist-sp-800-56a-r3">
          <front>
            <title>Recommendation for pair-wise key-establishment schemes using discrete logarithm cryptography</title>
            <author fullname="Elaine Barker" initials="E." surname="Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Allen Roginsky" initials="A." surname="Roginsky">
              <organization/>
            </author>
            <author fullname="Apostol Vassilev" initials="A." surname="Vassilev">
              <organization/>
            </author>
            <author fullname="Richard Davis" initials="R." surname="Davis">
              <organization/>
            </author>
            <date month="April" year="2018"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-56ar3"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ANSI-X962-2005">
          <front>
            <title>Public Key Cryptography for the Financial Services Industry: the Elliptic Curve Digital Signature Algorithm (ECDSA)</title>
            <author>
              <organization>American National Standards Institute</organization>
            </author>
            <date year="2005" month="November"/>
          </front>
        </reference>
        <reference anchor="Alawatugoda">
          <front>
            <title>Protecting Encrypted Cookies from Compression Side-Channel Attacks</title>
            <author fullname="Janaka Alawatugoda" initials="J." surname="Alawatugoda">
              <organization/>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization/>
            </author>
            <author fullname="Colin Boyd" initials="C." surname="Boyd">
              <organization/>
            </author>
            <date year="2015"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 86-106"/>
          <seriesInfo name="DOI" value="10.1007/978-3-662-47854-7_6"/>
          <seriesInfo name="ISBN" value="[&quot;9783662478530&quot;, &quot;9783662478547&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="CVE-2015-9235" target="https://nvd.nist.gov/vuln/detail/CVE-2015-9235">
          <front>
            <title>CVE-2015-9235 Detail</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2018" month="May"/>
          </front>
          <refcontent>National Vulnerability Database</refcontent>
        </reference>
        <reference anchor="Kelsey">
          <front>
            <title>Compression and Information Leakage of Plaintext</title>
            <author fullname="John Kelsey" initials="J." surname="Kelsey">
              <organization/>
            </author>
            <date year="2002"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 263-276"/>
          <seriesInfo name="DOI" value="10.1007/3-540-45661-9_21"/>
          <seriesInfo name="ISBN" value="[&quot;9783540440093&quot;, &quot;9783540456612&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="Langkemper" target="https://www.sjoerdlangkemper.nl/2016/09/28/attacking-jwt-authentication/">
          <front>
            <title>Attacking JWT authentication</title>
            <author initials="S." surname="Langkemper" fullname="Sjoerd Langkemper">
              <organization/>
            </author>
            <date year="2016" month="September"/>
          </front>
        </reference>
        <reference anchor="McLean" target="https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/">
          <front>
            <title>Critical vulnerabilities in JSON Web Token libraries</title>
            <author initials="T." surname="McLean" fullname="Tim McLean">
              <organization/>
            </author>
            <date year="2015" month="March"/>
          </front>
        </reference>
        <reference anchor="OpenID.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0 incorporating errata set 1</title>
            <author initials="N." surname="Sakimura" fullname="Nat Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones" fullname="Michael B. Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros" fullname="Breno de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore" fullname="Chuck Mortimore">
              <organization/>
            </author>
            <date year="2014" month="November"/>
          </front>
        </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="RFC7159">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7159"/>
          <seriesInfo name="DOI" value="10.17487/RFC7159"/>
        </reference>
        <reference anchor="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="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="RFC8417">
          <front>
            <title>Security Event Token (SET)</title>
            <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="M. Ansari" initials="M." surname="Ansari"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>This specification defines the Security Event Token (SET) data structure. A SET describes statements of fact from the perspective of an issuer about a subject. These statements of fact represent an event that occurred directly to or about a security subject, for example, a statement about the issuance or revocation of a token on behalf of a subject. This specification is intended to enable representing security- and identity-related events. A SET is a JSON Web Token (JWT), which can be optionally signed and/or encrypted. SETs can be distributed via protocols such as HTTP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8417"/>
          <seriesInfo name="DOI" value="10.17487/RFC8417"/>
        </reference>
        <reference anchor="Sanso" target="https://blogs.adobe.com/security/2017/03/critical-vulnerability-uncovered-in-json-encryption.html">
          <front>
            <title>Critical Vulnerability Uncovered in JSON Encryption</title>
            <author initials="A." surname="Sanso" fullname="Antonio Sanso">
              <organization/>
            </author>
            <date year="2017" month="March"/>
          </front>
        </reference>
        <reference anchor="Valenta" target="https://ia.cr/2018/298">
          <front>
            <title>In search of CurveSwap: Measuring elliptic curve implementations in the wild</title>
            <author initials="L." surname="Valenta" fullname="Luke Valenta">
              <organization/>
            </author>
            <author initials="N." surname="Sullivan" fullname="Nick Sullivan">
              <organization/>
            </author>
            <author initials="A." surname="Sanso" fullname="Antonio Sanso">
              <organization/>
            </author>
            <author initials="N." surname="Heninger" fullname="Nadia Heninger">
              <organization/>
            </author>
            <date year="2018" month="March"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 723?>

<section anchor="autogen-document-history">
      <name>Document History</name>
      <t>[[Note to RFC Editor: please remove before publication.]]</t>
      <section anchor="autogen-draft-sheffer-oauth-rfc8725bis-00">
        <name>draft-sheffer-oauth-rfc8725bis-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial version, text is identical to RFC 8725.</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7V93XbbuJLuPZ4CR7loe48o/8ROnMy5GMV277g7P57ISfas
WbOyKBGWGVOkhiDlaGflAc5bnAeZq5kXm/qqABCU5N7Zc9bpm8gkCBYK9fPV
D9hJkqh0Oq3N6qX+7fONfnV+rdLapC/1xMzaOm/WKm2bu6p+qRJtFmlevNTr
tK7K21Fumtt/muPSaFYtlNZ5aV/qfxnpyZ25vTU1XSnThaFLGB9drep5WuZ/
TZu8Kl/qq7Jp86abPctn96O7tM6a7ckvRvo17oSpL2iwuxQmWOSzu9QUX6Zf
vlalsf90VzWb87wd6d9wL8zzVp7Rr7obfSonprhNrqxtTabPq9K2RZOXcxpG
PHqp75pmaV8eHFiMynnUKC9vqwM1Sxszr+r1Sz2dLVVWzeR9WZ3eNokVliQV
WJzUt7Oz58en09wmh4cqX9YvdVO3tjk+PHxxeKzuzfqhqjPsw2+T9+/0ZzPV
N9W9KXHh842//H761cwaPcnnJRGo0zLTl+WsXi+xDgx6P7mMp8DAtGlrw9NM
4lv95z7jsbRp0tm9pV/nRZov8CPICV3D8Gpep8u7tbqv00VWPZRfKp7CviRm
0TqrL3n2ZVmb2/zbS/57bspELXPcph1amLKhDfplbewvdIUYtkiXS1pJdy0v
i7w03d/EN5PZZl1E12xVN/SOaCbb1Pmsif5eL/oDGvOtSYrc0rasF9OqoFtJ
9ad/wJ1qFg2rZnmZEZX+km2Ix1/Souposu10QVJAq27WS7p6dXnzq2ryBhT2
906/MrbR521d04z6uk5nTT4j8aOdvp/XVbt8qd+PSTj0Z7qA/fwzLiqlyqpe
kGiuDPj24dfz46OjF+7nsxfP/c/np0en3c9n3c+z7qcfe3Z49Dz8fBp+Hj0/
8T+PT3lsyTxaJmeHh8npszSpn5Ievr8aHR2Onh0enx28u5rcjCbXI7k/rp8q
qEJE7vjd5Cr5y4tnxwmJNtPHksFGBr+TDd0bLwztXVrqd3whLfQEPCett2Q9
LDG2bQw/mZG2vdTvqpVZTE2tMT1fd7z/5bqdFvlM/27WPVnVRJ5u7oz+NS/T
cpbjDaZeYSfoBRnpIBQYAy6LIidxnvGsGhu3MmSE5nmDZ7wq6XFBOp83dwu9
d3l+MRnvQ3LGRfpAt+dVlgaGHR0ePj948fwseZo8I36cPD87PUmef3lGw88/
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
oQ4n0TP5ikThX4/nRuq/ATJHe/zrYQAA

-->

</rfc>
