<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-wendt-acme-authority-token-jwtclaimcon-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ACME JWTClaimConstraints Auth Token">JWTClaimConstraints profile of ACME Authority Token</title>

    <author initials="C." surname="Wendt" fullname="Chris Wendt">
      <organization>Somos Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>chris@appliedbits.com</email>
      </address>
    </author>
    <author initials="D." surname="Hancock" fullname="David Hancock">
      <organization>Somos Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>davidhancock.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2025" month="June" day="13"/>

    <area>sec</area>
    
    <keyword>acme, STIR</keyword>

    <abstract>


<?line 46?>

<t>This document defines an authority token profile for handling the validation of JWTClaimConstraints and EnhancedJWTClaimConstraints. This profile follows the model established in Authority Token for the validation of TNAuthList but is specifically tailored for the JWTClaimConstraints certificate extensions. The profile enables validation and challenge processes necessary to support certificates containing both TNAuthList and JWTClaimConstraints, particularly in the context of Secure Telephone Identity (STI).</t>



    </abstract>



  </front>

  <middle>


<?line 50?>

<section anchor="introduction"><name>Introduction</name>

<t>The validation of JWTClaimConstraints as part of an STI certificate defined in <xref target="RFC8226"/> is critical for ensuring the integrity and scope of claims used in PASSporTs. This document specifies an authority token profile for validating JWTClaimConstraints, modeled after the authority token framework established in <xref target="RFC9447"/> and the TNAuthList validation defined in <xref target="RFC9448"/>. This profile facilitates proper delegation and authorization for entities requesting certificates under ACME <xref target="RFC8555"/> and similar frameworks.</t>

<t>This Authority Token profile specifically addresses the inclusions of the STI certificate extensions JWTClaimConstraints, as defined in <xref target="RFC8226"/>, and EnhancedJWTClaimConstraints, as defined in <xref target="RFC9118"/>. The STI certificate credentials are used to sign PASSporTs <xref target="RFC8225"/>, which can be carried in using protocols such as SIP <xref target="RFC8224"/>. This document defines the use of the JWTClaimConstraints Authority Token in the ACME challenge to prove an authoritative or trusted use of the contents of the JWTClaimsConstraints based on the issuer of the token. The Certification Authority (CA) issuing the STI Certificate can be informed of the proper use and contents of the JWTClaimConstraints extension based on the STI eco-system policies, best practices, or authoritative information which is out of scope of this document and will be defined by the STI eco-system.</t>

<t>This document also discusses the ability for a telephone authority to authorize the creation of CA types of certificates for delegation as defined in <xref target="RFC9060"/>.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

</section>
<section anchor="acme-new-order-identifiers-for-jwtclaimconstraints"><name>ACME new-order Identifiers for JWTClaimConstraints</name>

<t>In <xref target="RFC8555"/>, Section 7 defines the procedure that an ACME client uses to order a new certificate from a Certification Authority (CA). The new-order request contains an identifier field that specifies the identifier objects the order corresponds to.  This draft defines a new type of identifier object called JWTClaimConstraints. A JWTClaimConstraints identifier contains the Token Claim Constraints information to be populated in the JWTClaimConstraints or EnhancedJWTClaimConstraints of the new certificate. For the JWTClaimConstraints identifier, the new-order request includes a type set to the string "JWTClaimConstraints". The value of the JWTClaimConstraints identifier MUST be set to the details of the JWTClaimConstraints requested.</t>

<t>The format of the string that represents the JWTClaimConstraints MUST be constructed using base64url encoding, as per <xref target="RFC8555"/> base64url encoding described in Section 5 of <xref target="RFC4648"/> according to the profile specified in JSON Web Signature in Section 2 of <xref target="RFC7515"/>. The base64url encoding MUST NOT include any padding characters and the JWTClaimConstraints ASN.1 object MUST be encoded using DER encoding rules.</t>

<t>An example of an ACME order object "identifiers" field containing a JWTClaimConstraints certificate would look as follows,</t>

<figure><artwork><![CDATA[
 "identifiers": [{"type":"JWTClaimConstraints",
   "value":"F83n2a...avn27DN3"}]
]]></artwork></figure>

<t>where the "value" object string represents the arbitrary length base64url encoded string.</t>

<t>A full new-order request would look as follows,</t>

<figure><artwork><![CDATA[
POST /acme/new-order HTTP/1.1
Host: example.com
Content-Type: application/jose+json

{
  "protected": base64url({
    "alg": "ES256",
    "kid": "https://example.com/acme/acct/evOfKhNU60wg",
    "nonce": "5XJ1L3lEkMG7tR6pA00clA",
    "url": "https://example.com/acme/new-order"
  }),
  "payload": base64url({
    "identifiers": [{"type":"JWTClaimConstraints",
      "value":"F83n...n27DN3"}],
    "notBefore": "2025-01-01T00:00:00Z",
    "notAfter": "2025-01-08T00:00:00Z"
  }),
  "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g"
}
]]></artwork></figure>

<t>On receiving a valid new-order request, the ACME server creates an authorization object, <xref target="RFC8555"/> Section 7.1.4, containing the challenge that the ACME client must satisfy to demonstrate authority for the identifiers specified by the new order (in this case, the JWTClaimConstraints identifier). The CA adds the authorization object URL to the "authorizations" field of the order object, and returns the order object to the ACME client in the body of a 201 (Created) response.</t>

<figure><artwork><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json
Replay-Nonce: MYAuvOpaoIiywTezizk5vw
Location: https://example.com/acme/order/1234

{
  "status": "pending",
  "expires": "2025-01-08T00:00:00Z",

  "notBefore": "2025-01-01T00:00:00Z",
  "notAfter": "2025-01-08T00:00:00Z",
  "identifiers":[{"type":"JWTClaimConstraints",
                 "value":"F83n2a...avn27DN3"}],

  "authorizations": [
   "https://example.com/acme/authz/1234"
  ],
  "finalize": "https://example.com/acme/order/1234/finalize"
}
]]></artwork></figure>

</section>
<section anchor="jwtclaimconstraints-authorization"><name>JWTClaimConstraints Authorization</name>

<t>On receiving the new-order response, the ACME client queries the referenced authorization object to obtain the challenges for the identifier contained in the new-order request as shown in the following example request and response.</t>

<figure><artwork><![CDATA[
POST /acme/authz/1234 HTTP/1.1
    Host: example.com
    Content-Type: application/jose+json

    {
      "protected": base64url({
        "alg": "ES256",
        "kid": " https://example.com/acme/acct/evOfKhNU60wg",
        "nonce": "uQpSjlRb4vQVCjVYAyyUWg",
        "url": "https://example.com/acme/authz/1234"
      }),
      "payload": "",
      "signature": "nuSDISbWG8mMgE7H...QyVUL68yzf3Zawps"
    }
]]></artwork></figure>

<figure><artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Link: <https://example.com/acme/some-directory>;rel="index"

{
  "status": "pending",
  "expires": "2025-01-08T00:00:00Z",

  "identifier": {
    "type:"JWTClaimConstraints",
    "value":"F83n2a...avn27DN3"
  },

  "challenges": [
    {
      "type": "tkauth-01",
      "tkauth-type": "atc",
      "token-authority": "https://authority.example.org",
      "url": "https://example.com/acme/chall/prV_B7yEyA4",
      "token": "IlirfxKKXAsHtmzK29Pj8A"
    }
  ]
}
]]></artwork></figure>

<t>When processing a certificate order containing an identifier of type "JWTClaimConstraints", a CA uses the Authority Token challenge type of "tkauth-01" with a "tkauth-type" of "atc" in <xref target="RFC9447"/> to verify that the requesting ACME client has authenticated and authorized control over the requested resources represented by the "JWTClaimConstraints" value.</t>

<t>The challenge "token-authority" parameter is optional and is only used in cases where the VoIP telephone network requires the CA to identify the Token Authority. If a "token-authority" parameter is present, then the ACME client MAY use the "token-authority" value to identify the URL representing the Token Authority that will provide the JWTClaimConstraints Authority Token response to the challenge. If the "token-authority" parameter is not present, then the ACME client MUST identify the Token Authority based on locally configured information or local policies.</t>

<t>The ACME client responds to the challenge by posting the JWTClaimConstraints Authority Token to the challenge URL identified in the returned ACME authorization object, an example of which follows.</t>

<figure><artwork><![CDATA[
POST /acme/chall/prV_B7yEyA4 HTTP/1.1
Host: boulder.example.com
Content-Type: application/jose+json

{
  "protected": base64url({
  "alg": "ES256",
  "kid": "https://example.com/acme/acct/evOfKhNU60wg",
  "nonce": "Q_s3MWoqT05TrdkM2MTDcw",
  "url": "https://boulder.example.com/acme/authz/asdf/0"
  }),
  "payload": base64url({
  "tkauth": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"
  }),
  "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ"
}
]]></artwork></figure>

<t>The "tkauth" field in the challenge object is defined in <xref target="RFC9448"></xref>. It is specific to the tkauth-01 challenge type, and when responding to a challenge for a JWTClaimConstraints identifier, that should contain the JWTClaimConstraints Authority Token defined in the next section.</t>

</section>
<section anchor="jwtclaimconstraints-authority-token"><name>JWTClaimConstraints Authority Token</name>

<t>The JWTClaimConstraints Authority Token is a profile instance of the ACME Authority Token defined in <xref target="RFC9447"/>.</t>

<t>The JWTClaimConstraints Authority Token Protected header MUST comply with the Authority Token Protected header as defined in <xref target="RFC9447"/>.</t>

<t>The JWTClaimConstraints Authority Token Payload MUST include the mandatory claims "exp", "jti", and "atc", and MAY include the optional claims defined for the Authority Token detailed in the next subsections.</t>

<section anchor="iss-claim"><name>"iss" claim</name>

<t>The "iss" claim is an optional claim defined in <xref target="RFC7519"/> Section 4.1.1.  It can be used as a URL identifying the Token Authority that issued the JWTClaimConstraints Authority Token beyond the "x5u" or other Header claims that identify the location of the certificate or certificate chain of the Token Authority used to validate the JWTClaimConstraints Authority Token.</t>

</section>
<section anchor="exp-claim"><name>"exp" claim</name>

<t>The "exp" claim, defined in <xref target="RFC7519"/> Section 4.1.4, MUST be included and contains the DateTime value of the ending date and time that the JWTClaimConstraints Authority Token expires.</t>

</section>
<section anchor="jti-claim"><name>"jti" claim</name>

<t>The "jti" claim, defined in <xref target="RFC7519"/> Section 4.1.7, MUST be included and contains a unique identifier for this JWTClaimConstraints Authority Token transaction.</t>

</section>
<section anchor="atc-claim"><name>"atc" claim</name>

<t>The "atc" claim MUST be included and is defined in <xref target="RFC9447"/>.  It contains a JSON object with the following elements:</t>

<t><list style="symbols">
  <t>a "tktype" key with a string value equal to "JWTClaimConstraints" to represent a JWTClaimConstraints profile of the authority token <xref target="RFC9447"/> defined by this document. "tktype" is a required key and MUST be included.</t>
  <t>a "tkvalue" key with a string value equal to the base64url encoding of the JWTClaimConstraints or EnhancedJWTClaimConstaints certificate extension ASN.1 object using DER encoding rules. "tkvalue" is a required key and MUST be included.</t>
  <t>a "ca" key with a boolean value set to false (since per <xref target="RFC8226"/> the JWTClaimConstraints extension is applicable only to end-entity certificates). "ca" is an optional key, if not included the "ca" value is considered false by default.</t>
  <t>a "fingerprint" key is constructed as defined in <xref target="RFC8555"/> Section 8.1 corresponding to the computation of the "Thumbprint" step using the ACME account key credentials. "fingerprint" is a required key and MUST be included.</t>
</list></t>

<t>An example of the JWTClaimConstraints Authority Token is as follows:</t>

<figure><artwork><![CDATA[
{
  "protected": base64url({
    "typ":"JWT",
    "alg":"ES256",
    "x5u":"https://authority.example.org/cert"
  }),
  "payload": base64url({
    "iss":"https://authority.example.org",
    "exp":1640995200,
    "jti":"id6098364921",
    "atc":{"tktype":"JWTClaimConstraints",
      "tkvalue":"F83n2a...avn27DN3",
      "ca":false,
      "fingerprint":"SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71:
       D3:BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3"}
  }),
  "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ"
}
]]></artwork></figure>

</section>
<section anchor="acquiring-the-token-from-the-token-authority"><name>Acquiring the token from the Token Authority</name>

<t>Following <xref target="RFC9447"/> Section 5, the authority token should be acquired using a RESTful HTTP POST transaction as follows:</t>

<figure><artwork><![CDATA[
  POST /at/account/:id/token HTTP/1.1
  Host: authority.example.org
  Content-Type: application/json
]]></artwork></figure>

<t>The request will pass the account id as a string in the request parameter "id".  This string will be managed as an identifier specific to the Token Authority's relationship with the entity that is creating and signing a PASSporT <xref target="RFC8225"/> and making the Certificate Signing Request via ACME. There is assumed to also be a corresponding authentication procedure that can be verified for the success of this transaction. For example, an HTTP authorization header containing valid authorization credentials as defined in <xref target="RFC7231"/> Section 14.8.</t>

<t>The body of the POST request MUST contain a JSON object with key value pairs corresponding to values that are requested as the content of the claims in the issued token. As an example, the body SHOULD contain a JSON object as follows:</t>

<figure><artwork><![CDATA[
 {
   "atc": {
     "tktype":"JWTClaimConstraints",
     "tkvalue":"F83n2a...avn27DN3",
     "ca":false,
     "fingerprint":"SHA256 56:3E:CF:AE:83:CA:4D:15:B0:29:FF:1B:71:D3
       :BA:B9:19:81:F8:50:9B:DF:4A:D4:39:72:E2:B1:F0:B9:38:E3"
   }
 }
]]></artwork></figure>

<t>The response to the POST request if successful returns a 200 OK with a JSON body that contains, at a minimum, the JWTClaimConstraints Authority Token as a JSON object with a key of "token" and the base64url encoded string representing the atc token. JSON is easily extensible, so users of this specification may want to pass other pieces of information relevant to a specific application.</t>

<t>An example successful response would be as follows:</t>

<figure><artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{"token": "DGyRejmCefe7v4N...vb29HhjjLPSggwiE"}
]]></artwork></figure>

<t>If the request is not successful, the response should indicate the error condition.  Specifically, for the case that the authorization credentials are invalid or if the Account ID provided does not exist, the response code MUST be 403 - Forbidden. Other 4xx and 5xx responses MUST follow standard <xref target="RFC7231"/> HTTP error condition conventions.</t>

</section>
<section anchor="token-authority-responsibilities"><name>Token Authority Responsibilities</name>

<t>When creating the JWTClaimConstraints Authority Token, the Token Authority MUST validate that the information contained in the ASN.1 JWTClaimConstraints accurately represents the corresponding JWTClaimConstraint resources the requesting party is authorized to represent based on their pre-established and verified secure relationship between the Token Authority and the requesting party. Note that the fingerprint in the token request is not meant to be verified by the Token Authority, but rather is meant to be signed as part of the token so that the party that requests the token can, as part of the challenge response, allow the ACME server to validate the token requested and used came from the same party that controls the ACME client.</t>

</section>
<section anchor="scope-of-the-jwtclaimconstraints"><name>Scope of the JWTClaimConstraints</name>

<t>Because this specification specifically involves the JWTClaimConstraints and EnhancedJWTClaimConstraints defined in <xref target="RFC8226"/> and <xref target="RFC9118"/> which involves the required or disallowed different claim types or claim values, the client may also request an Authority Token with some subset of its own authority as the JWTClaimConstraints provided in the "tkvalue" element in the "atc" JSON object. JWTClaimConstraints can be constructed to define a limited scope of claims and claim values the client has authority over.</t>

<t>As recommended in <xref target="RFC9447"/> security considerations, an Authority Token can either have a scope that attests all of the resources which a client is eligible to receive certificates for, or potentially a more limited scope that is intended to capture only those resources for which a client will receive a certificate from a particular certification authority.  Any certification authority that sees an Authority Token can learn information about the resources a client can claim.  In cases where this incurs a privacy risk, Authority Token scopes should be limited to only the resources that will be attested by the requested ACME certificate.</t>

</section>
</section>
<section anchor="validating-the-jwtclaimconstraints-authority-token"><name>Validating the JWTClaimConstraints Authority Token</name>

<t>Upon receiving a response to the challenge, the ACME server MUST perform the following steps to determine the validity of the response.</t>

<t><list style="symbols">
  <t>Verify that the value of the "atc" claim is a well-formed JSON object containing the mandatory key values.</t>
  <t>If there is an "x5u" parameter verify the "x5u" parameter is a HTTPS URL with a reference to a certificate representing the trusted issuer of authority tokens for the eco-system.</t>
  <t>If there is an "x5c" parameter verify the certificate array contains a certificate representing the trusted issuer of authority tokens for the eco-system.</t>
  <t>Verify the JWTClaimConstraints Authority Token signature using the public key of the certificate referenced by the token's "x5u" or "x5c" parameter.</t>
  <t>Verify that "atc" claim contains a "tktype" identifier with the value "JWTClaimConstraints".</t>
  <t>Verify that the "atc" claim "tkvalue" identifier contains the equivalent base64url encoded JWTClaimConstraints or EnhancedJWTClaimConstraints certificate extension string value as the Identifier specified in the original challenge.</t>
  <t>Verify that the remaining claims are valid (e.g., verify that token has not expired)</t>
  <t>Verify that the "atc" claim "fingerprint" is valid and matches the account key of the client making the request</t>
  <t>Verify that the "atc" claim "ca" identifier boolean corresponds to the CA boolean in the Basic Constraints extension in the CSR for either CA certificate or end-entity certificate</t>
</list></t>

<t>If all steps in the token validation process pass, then the ACME server MUST set the challenge object "status" to "valid". If any step of the validation process fails, the "status" in the challenge object MUST be set to "invalid".</t>

</section>
<section anchor="using-acme-issued-certificates-with-json-web-signature"><name>Using ACME-issued Certificates with JSON Web Signature</name>

<t>JSON Web Signature (JWS, <xref target="RFC7515"/>) objects can include an "x5u" header parameter to refer to a certificate that is used to validate the JWS signature.  For example, the STIR PASSporT framework <xref target="RFC8225"/> uses "x5u" to indicate the STIR certificate used to validate the PASSporT JWS object.  The URLs used in "x5u" are expected to provide the required certificate in response to a GET request, not a POST-as-GET as required for the "certificate" URL in the ACME order object. Thus the current mechanism generally requires the ACME client to download the certificate and host it on a public URL to make it accessible to relying parties.  This section defines an optional mechanism for the Certificate Authority (CA) to host the certificate directly and provide a URL that the ACME client owner can directly reference in the "x5u" of their signed PASSporTs.</t>

<t>As described in Section 7.4 of <xref target="RFC8555"/> when the certificate is ready for making a finalize request, the server will return a 200 (OK) with the updated order object.  In this response, an ACME Server can add a newly defined field called "x5u" that can pass this URL to the ACME client for usage in generated PASSporTs as a publicly available URL for PASSporT validation.</t>

<dl>
  <dt>x5u (optional, string):</dt>
  <dd>
    <t>A URL that can be used to reference the certificate in the "x5u" parameter of a JWS object <xref target="RFC7515"/></t>
  </dd>
</dl>

<t>The publishing of the certificates at the new "x5u" URL should follow the GET request requirement as mentioned above and should be consistent with the timely publication according to the durations of the certificate lifecycle.</t>

<t>The following is an example of the use of "x5u" in the response when the certificate status is "valid".</t>

<figure><artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Replay-Nonce: CGf81JWBsq8QyIgPCi9Q9X
Link: <https://example.com/acme/directory>;rel="index"
Location: https://example.com/acme/order/TOlocE8rfgo

{
  "status": "valid",
  "expires": "2016-01-20T14:09:07.99Z",

  "notBefore": "2016-01-01T00:00:00Z",
  "notAfter": "2016-01-08T00:00:00Z",

  "identifiers": [
    "type":"JWTClaimConstraints",
    "value":"F83n2a...avn27DN3"
  ],

  "authorizations": ["https://sti-ca.com/acme/authz/1234"],

  "finalize": "https://example.com/acme/order/TOlocE8rfgo/finalize",

  "certificate": "https://example.com/acme/cert/mAt3xBGaobw",

  "x5u": "https://example.com/cert-repo/giJI53km23.pem"
}
]]></artwork></figure>

</section>
<section anchor="security_considerations"><name>Security Considerations</name>

<t>The token represented by this document has the credentials to represent PASSporT claims and claim values. The creation, transport, and any storage of this token MUST follow the strictest of security best practices beyond the recommendations of the use of encrypted transport protocols in this document to protect it from getting in the hands of bad actors with illegitimate intent to impersonate telephone numbers.</t>

<t>This document inherits the security properties of <xref target="RFC9447"/>. Implementations should follow the best practices identified in <xref target="RFC8725"/>.</t>

<t>This document only specifies SHA256 for the fingerprint hash. However, the syntax of the fingerprint object would permit other algorithms if, due to concerns about algorithmic agility, a more robust algorithm were required at a future time.  Future specifications can define new algorithms for the fingerprint object as needed.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests the addition of a new identifier object type to the "ACME Identifier Types" registry defined in Section 9.7.7 of <xref target="RFC8555"/>.</t>

<figure><artwork><![CDATA[
+---------------------+-----------+
|        Label        | Reference |
+---------------------+-----------+
| JWTClaimConstraints |  RFCThis  |
+---------------------+-----------+
]]></artwork></figure>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>We would like to thank ACME and STIR working groups for valuable contributions to the authority token framework used in this document.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</reference>
<reference anchor="RFC7231">
  <front>
    <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7231"/>
  <seriesInfo name="DOI" value="10.17487/RFC7231"/>
</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="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="RFC8226">
  <front>
    <title>Secure Telephone Identity Credentials: Certificates</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>In order to prevent the impersonation of telephone numbers on the Internet, some kind of credential system needs to exist that cryptographically asserts authority over telephone numbers. This document describes the use of certificates in establishing authority over telephone numbers, as a component of a broader architecture for managing telephone numbers as identities in protocols like SIP.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8226"/>
  <seriesInfo name="DOI" value="10.17487/RFC8226"/>
</reference>
<reference anchor="RFC8555">
  <front>
    <title>Automatic Certificate Management Environment (ACME)</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
    <author fullname="D. McCarney" initials="D." surname="McCarney"/>
    <author fullname="J. Kasten" initials="J." surname="Kasten"/>
    <date month="March" year="2019"/>
    <abstract>
      <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8555"/>
  <seriesInfo name="DOI" value="10.17487/RFC8555"/>
</reference>
<reference anchor="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</reference>
<reference anchor="RFC9060">
  <front>
    <title>Secure Telephone Identity Revisited (STIR) Certificate Delegation</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="September" year="2021"/>
    <abstract>
      <t>The Secure Telephone Identity Revisited (STIR) certificate profile provides a way to attest authority over telephone numbers and related identifiers for the purpose of preventing telephone number spoofing. This specification details how that authority can be delegated from a parent certificate to a subordinate certificate. This supports a number of use cases, including those where service providers grant credentials to enterprises or other customers capable of signing calls with STIR.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9060"/>
  <seriesInfo name="DOI" value="10.17487/RFC9060"/>
</reference>
<reference anchor="RFC9118">
  <front>
    <title>Enhanced JSON Web Token (JWT) Claim Constraints for Secure Telephone Identity Revisited (STIR) Certificates</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="August" year="2021"/>
    <abstract>
      <t>RFC 8226 specifies the use of certificates for Secure Telephone Identity Credentials; these certificates are often called "Secure Telephone Identity Revisited (STIR) Certificates". RFC 8226 provides a certificate extension to constrain the JSON Web Token (JWT) claims that can be included in the Personal Assertion Token (PASSporT), as defined in RFC 8225. If the PASSporT signer includes a JWT claim outside the constraint boundaries, then the PASSporT recipient will reject the entire PASSporT. This document updates RFC 8226; it provides all of the capabilities available in the original certificate extension as well as an additional way to constrain the allowable JWT claims. The enhanced extension can also provide a list of claims that are not allowed to be included in the PASSporT.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9118"/>
  <seriesInfo name="DOI" value="10.17487/RFC9118"/>
</reference>
<reference anchor="RFC9447">
  <front>
    <title>Automated Certificate Management Environment (ACME) Challenges Using an Authority Token</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="M. Barnes" initials="M." surname="Barnes"/>
    <author fullname="D. Hancock" initials="D." surname="Hancock"/>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>Some proposed extensions to the Automated Certificate Management Environment (ACME) rely on proving eligibility for certificates through consulting an external authority that issues a token according to a particular policy. This document specifies a generic Authority Token Challenge for ACME that supports subtype claims for different identifiers or namespaces that can be defined separately for specific applications.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9447"/>
  <seriesInfo name="DOI" value="10.17487/RFC9447"/>
</reference>
<reference anchor="RFC9448">
  <front>
    <title>TNAuthList Profile of Automated Certificate Management Environment (ACME) Authority Token</title>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <author fullname="D. Hancock" initials="D." surname="Hancock"/>
    <author fullname="M. Barnes" initials="M." surname="Barnes"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>This document defines a profile of the Automated Certificate Management Environment (ACME) Authority Token for the automated and authorized creation of certificates for Voice over IP (VoIP) telephone providers to support Secure Telephone Identity (STI) using the TNAuthList defined by STI certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9448"/>
  <seriesInfo name="DOI" value="10.17487/RFC9448"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC8224">
  <front>
    <title>Authenticated Identity Management in the Session Initiation Protocol (SIP)</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="C. Jennings" initials="C." surname="Jennings"/>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>The baseline security mechanisms in the Session Initiation Protocol (SIP) are inadequate for cryptographically assuring the identity of the end users that originate SIP requests, especially in an interdomain context. This document defines a mechanism for securely identifying originators of SIP requests. It does so by defining a SIP header field for conveying a signature used for validating the identity and for conveying a reference to the credentials of the signer.</t>
      <t>This document obsoletes RFC 4474.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8224"/>
  <seriesInfo name="DOI" value="10.17487/RFC8224"/>
</reference>
<reference anchor="RFC8225">
  <front>
    <title>PASSporT: Personal Assertion Token</title>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>This document defines a method for creating and validating a token that cryptographically verifies an originating identity or, more generally, a URI or telephone number representing the originator of personal communications. The Personal Assertion Token, PASSporT, is cryptographically signed to protect the integrity of the identity of the originator and to verify the assertion of the identity information at the destination. The cryptographic signature is defined with the intention that it can confidently verify the originating persona even when the signature is sent to the destination party over an insecure channel. PASSporT is particularly useful for many personal-communications applications over IP networks and other multi-hop interconnection scenarios where the originating and destination parties may not have a direct trusted relationship.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8225"/>
  <seriesInfo name="DOI" value="10.17487/RFC8225"/>
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
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
csz9h8b/Aq/0v/1KVwAA

-->

</rfc>

