<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" submissionType="IETF" category="std" consensus="true" docName="draft-ietf-lamps-nf-eku-05" number="9509" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" prepTime="2024-03-20T18:02:33" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lamps-nf-eku-05" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9509" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="EKUs for 5G Network Functions">X.509 Certificate Extended Key Usage (EKU) for 5G Network Functions</title>
    <seriesInfo name="RFC" value="9509" stream="IETF"/>
    <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
      <organization showOnFrontPage="true">Nokia</organization>
      <address>
        <postal>
          <street/>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Jani Ekman" initials="J." surname="Ekman">
      <organization showOnFrontPage="true">Nokia</organization>
      <address>
        <postal>
          <street/>
          <country>Finland</country>
        </postal>
        <email>jani.ekman@nokia.com</email>
      </address>
    </author>
    <author fullname="Daniel Migault" initials="D." surname="Migault">
      <organization showOnFrontPage="true">Ericsson</organization>
      <address>
        <postal>
          <street/>
          <country>Canada</country>
        </postal>
        <email>daniel.migault@ericsson.com</email>
      </address>
    </author>
    <date month="03" year="2024"/>
    <area>sec</area>
    <workgroup>lamps</workgroup>
    <keyword>3GPP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">RFC 5280 specifies several extended key purpose identifiers
      (KeyPurposeIds) for X.509 certificates. This document defines encrypting
      JSON objects in HTTP messages, using JSON Web Tokens (JWTs), and signing
      the OAuth 2.0 access tokens KeyPurposeIds for inclusion in the Extended
      Key Usage (EKU) extension of X.509 v3 public key certificates used by
      Network Functions (NFs) for the 5G System.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9509" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2024 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extended-key-purpose-for-ne">Extended Key Purpose for Network Functions</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-including-the-extended-key-">Including the Extended Key Purpose in Certificates</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-implications-for-a-certific">Implications for a Certification Authority</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-privacy-considerations">Privacy Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-asn1-module">ASN.1 Module</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributor">Contributor</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The operators of 5G ("fifth generation") systems as defined by 3GPP
      make use of an internal PKI to generate X.509 PKI certificates for the
      Network Functions (NFs) (Section 6 of <xref target="TS23.501" format="default" sectionFormat="of" derivedContent="TS23.501"/>) in a 5G System. The certificates are used for the
      following purposes:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-2">
        <li pn="section-1-2.1">Client and Server certificates for NFs in 5G Core (5GC) Service Based
        Architecture (SBA) (see Section 6.1.3c of <xref target="TS33.310" format="default" sectionFormat="of" derivedContent="TS33.310"/> and Section 6.7.2 of <xref target="TS29.500" format="default" sectionFormat="of" derivedContent="TS29.500"/>)</li>
        <li pn="section-1-2.2">Client Credentials Assertion (CCA) uses JSON Web Tokens (JWTs)
        <xref target="RFC7519" format="default" sectionFormat="of" derivedContent="RFC7519"/> and is secured with digital
        signatures based on the JSON Web Signature (JWS) <xref target="RFC7515" format="default" sectionFormat="of" derivedContent="RFC7515"/> (see Section 13.3.8.2 of <xref target="TS33.501" format="default" sectionFormat="of" derivedContent="TS33.501"/>, and Section 6.7.5 of <xref target="TS29.500" format="default" sectionFormat="of" derivedContent="TS29.500"/>).</li>
        <li pn="section-1-2.3">Certificates for encrypting JSON objects in HTTP messages between
        Security Edge Protection Proxies (SEPPs) using JSON Web Encryption
        (JWE) <xref target="RFC7516" format="default" sectionFormat="of" derivedContent="RFC7516"/> (see Section 13.2.4.4
        of <xref target="TS33.501" format="default" sectionFormat="of" derivedContent="TS33.501"/>, Section 6.3.2 of <xref target="TS33.210" format="default" sectionFormat="of" derivedContent="TS33.210"/>, Section 6.7.4 of <xref target="TS29.500" format="default" sectionFormat="of" derivedContent="TS29.500"/>, and Section 5.3.2.1 of <xref target="TS29.573" format="default" sectionFormat="of" derivedContent="TS29.573"/>).</li>
        <li pn="section-1-2.4">Certificates for signing the OAuth 2.0 access tokens for service
        authorization to grant temporary access to resources provided by NF
        producers using JWS (see Section 13.4.1 of <xref target="TS33.501" format="default" sectionFormat="of" derivedContent="TS33.501"/> and Section 6.7.3 of <xref target="TS29.500" format="default" sectionFormat="of" derivedContent="TS29.500"/>).</li>
      </ul>
      <t indent="0" pn="section-1-3"><xref target="RFC5280" format="default" sectionFormat="of" derivedContent="RFC5280"/> specifies several key usage
      extensions, defined via KeyPurposeIds, for X.509 certificates. Key usage
      extensions added to a certificate are meant to express intent as to the
      purpose of the named usage, for humans and for complying libraries. In
      addition, the IANA registry "SMI Security for PKIX Extended Key Purpose"
      <xref target="RFC7299" format="default" sectionFormat="of" derivedContent="RFC7299"/> contains additional
      KeyPurposeIds. The use of the anyExtendedKeyUsage KeyPurposeId, as
      defined in <xref target="RFC5280" sectionFormat="of" section="4.2.1.12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5280#section-4.2.1.12" derivedContent="RFC5280"/>, is generally considered a poor practice. This is
      especially true for publicly trusted certificates, whether they are
      multi-purpose or single-purpose, within the context of 5G Systems and
      the 5GC Service Based Architecture.</t>
      <t indent="0" pn="section-1-4">If the purpose of the issued certificates is not restricted, i.e.,
      the type of operations for which a public key contained in the
      certificate can be used are not specified, those certificates could be
      used for another purpose than intended, increasing the risk of
      cross-protocol attacks. Failure to ensure proper segregation of duties
      means that a NF that generates the public/private keys and applies for a
      certificate to the operator certification authority could obtain a
      certificate that can be misused for tasks that this NF is not entitled
      to perform. For example, a NF service consumer could potentially
      impersonate NF service producers using its certificate. Additionally, in
      cases where the certificate's purpose is intended for use by the NF
      service consumer as a client certificate, it's essential to ensure that
      the NF with this client certificate and the corresponding private key
      are not allowed to sign the Client Credentials Assertion (CCA). When a
      NF service producer receives the signed CCA from the NF service
      consumer, the NF should only accept the token if the CCA is signed with
      a certificate that has been explicitly issued for this purpose.</t>
      <t indent="0" pn="section-1-5">The KeyPurposeId id-kp-serverAuth (<xref target="RFC5280" sectionFormat="of" section="4.2.1.12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5280#section-4.2.1.12" derivedContent="RFC5280"/>) can be used to identify that
      the certificate is for a server (e.g., NF service producer), and the
      KeyPurposeId id-kp-clientAuth (<xref target="RFC5280" sectionFormat="of" section="4.2.1.12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5280#section-4.2.1.12" derivedContent="RFC5280"/>) can be used to identify that
      the certificate is for a client (e.g., NF service consumer). However,
      there are currently no KeyPurposeIds for the other usages of
      certificates in a 5G System. This document addresses the above problem by
      defining the EKU extension of X.509 public key certificates for signing
      the JWT Claims Set using JWS, encrypting JSON objects in HTTP messages
      using JWE, and signing the OAuth 2.0 access tokens using JWS.</t>
      <t indent="0" pn="section-1-6">Vendor-defined KeyPurposeIds used within a PKI governed by the vendor
      or a group of vendors typically do not pose interoperability concerns,
      as non-critical extensions can be safely ignored if unrecognized.
      However, using or misusing KeyPurposeIds outside of their intended
      vendor-controlled environment can lead to interoperability issues.
      Therefore, it is advisable not to rely on vendor-defined KeyPurposeIds.
      Instead, the specification defines standard KeyPurposeIds to ensure
      interoperability across various implementations.</t>
      <t indent="0" pn="section-1-7">Although the specification focuses on a 5G use case, the standard
      KeyPurposeIds defined in this document can be used in other
      deployments.</t>
    </section>
    <section anchor="notation" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1"> 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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they
        appear in all capitals, as shown here.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-extended-key-purpose-for-ne">Extended Key Purpose for Network Functions</name>
      <t indent="0" pn="section-3-1">This specification defines the KeyPurposeIds id-kp-jwt,
      id-kp-httpContentEncrypt, and id-kp-oauthAccessTokenSigning
      and uses these, respectively, for: signing the JWT Claims Set
      of CCA using JWS, encrypting JSON objects in HTTP messages between
      Security Edge Protection Proxies (SEPPs) using JWE, and signing the
      OAuth 2.0 access tokens for service authorization to grant temporary
      access to resources provided by NF producers using JWS. As described in
      <xref target="RFC5280" format="default" sectionFormat="of" derivedContent="RFC5280"/>, "[i]f the [Extended Key
      Usage] extension is present, then the certificate <bcp14>MUST</bcp14>
      only be used for one of the purposes indicated." <xref target="RFC5280" format="default" sectionFormat="of" derivedContent="RFC5280"/> also notes that "[i]f multiple [key] purposes are
      indicated the application need not recognize all purposes indicated, as
      long as the intended purpose is present."</t>
      <t indent="0" pn="section-3-2">Network Functions that verify the signature of a CCA represented as a
      JWT, decrypt JSON objects in HTTP messages between Security Edge
      Protection Proxies (SEPPs) using JWE, or verify the signature of an
      OAuth 2.0 access tokens for service authorization to grant temporary
      access to resources provided by NF producers using JWS
      <bcp14>SHOULD</bcp14> require that corresponding
      KeyPurposeIds be specified by the EKU extension. If the certificate requester knows
      the certificate users are mandated to use these KeyPurposeIds, it
      <bcp14>MUST</bcp14> enforce their inclusion. Additionally, such
      a certificate requester <bcp14>MUST</bcp14> ensure that the KeyUsage
      extension be set to digitalSignature or nonRepudiation (also designated
      as contentCommitment) for signature calculation and/or to
      keyEncipherment for secret key encryption.</t>
    </section>
    <section numbered="true" toc="include" anchor="purpose-in-certificates" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-including-the-extended-key-">Including the Extended Key Purpose in Certificates</name>
      <t indent="0" pn="section-4-1"><xref target="RFC5280" format="default" sectionFormat="of" derivedContent="RFC5280"/> specifies the EKU X.509
      certificate extension for use on end entity certificates. The extension
      indicates one or more purposes for which the certified public key is
      valid. The EKU extension can be used in conjunction with the key usage
      extension, which indicates the set of basic cryptographic operations for
      which the certified key may be used. The EKU extension syntax is
      repeated here for convenience:</t>
      <sourcecode type="asn.1" markers="false" pn="section-4-2">
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId

KeyPurposeId ::= OBJECT IDENTIFIER
</sourcecode>
      <t indent="0" pn="section-4-3">As described in <xref target="RFC5280" format="default" sectionFormat="of" derivedContent="RFC5280"/>, the EKU
      extension may, at the option of the certificate issuer, be either
      critical or non-critical. The inclusion of KeyPurposeIds id-kp-jwt,
      id-kp-httpContentEncrypt, and id-kp-oauthAccessTokenSigning in a
      certificate indicates that the public key encoded in the certificate has
      been certified for use in the following: </t>
      <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4-4">
	<li pn="section-4-4.1" derivedCounter="1.">Validating the JWS Signature in JWT. The distinction between JWS
	and JWE is determined by the Key Usage (KU) that is set to
	digitalSignature or nonRepudiation for JWS and keyEncipherment for
	JWE.</li>
        <li pn="section-4-4.2" derivedCounter="2.">Encrypting JSON objects in HTTP messages (for example, encrypting
        the content-encryption key (CEK) with the recipient's public key using
        the RSAES-OAEP algorithm to produce the JWE Encrypted Key). KU is set
        to keyEncipherment.</li>
        <li pn="section-4-4.3" derivedCounter="3.">Signing OAuth 2.0 access tokens. In this case, KU is set to
        digitalSignature or nonRepudiation.</li>
      </ol>
      <sourcecode type="asn.1" markers="false" pn="section-4-5">
     id-kp  OBJECT IDENTIFIER  ::= {
       iso(1) identified-organization(3) dod(6) internet(1)
       security(5) mechanisms(5) pkix(7) kp(3) }

id-kp-jwt OBJECT IDENTIFIER ::= { id-kp 37 }
id-kp-httpContentEncrypt OBJECT IDENTIFIER ::= { id-kp 38 }
id-kp-oauthAccessTokenSigning OBJECT IDENTIFIER ::= { id-kp 39 }
</sourcecode>
    </section>
    <section anchor="solution" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-implications-for-a-certific">Implications for a Certification Authority</name>
      <t indent="0" pn="section-5-1">The procedures and practices employed by a certification authority
      <bcp14>MUST</bcp14> ensure that the correct values for the EKU extension as well as the
      KU extension are inserted in each certificate that is issued. The
      inclusion of the id-kp-jwt, id-kp-httpContentEncrypt, and
      id-kp-oauthAccessTokenSigning KeyPurposeIds does not preclude the
      inclusion of other KeyPurposeIds.</t>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-6-1">The Security Considerations of <xref target="RFC5280" format="default" sectionFormat="of" derivedContent="RFC5280"/> are applicable to this document. This extended key
      purpose does not introduce new security risks but instead reduces
      existing security risks by providing the means to identify if the
      certificate is generated to sign the JWT Claims Set, signing the OAuth
      2.0 access tokens using JWS, or encrypting the CEK in JWE for encrypting
      JSON objects in HTTP messages.</t>
      <t indent="0" pn="section-6-2">To reduce the risk of specific cross-protocol attacks, the relying
      party or the relying party software may additionally prohibit use of
      specific combinations of KeyPurposeIds. The procedure for allowing or
      disallowing combinations of KeyPurposeIds using Excluded KeyPurposeId
      and Permitted KeyPurposeId, as carried out by a relying party, is
      defined in <xref target="RFC9336" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9336#section-4" derivedContent="RFC9336"/>. Examples of Excluded KeyPurposeIds include the presence of
      the anyExtendedKeyUsage KeyPurposeId or the complete absence of the EKU
      extension in a certificate. Examples of Permitted KeyPurposeIds include
      the presence of id-kp-jwt, id-kp-httpContentEncrypt, or
      id-kp-oauthAccessTokenSigning KeyPurposeIds.</t>
    </section>
    <section anchor="Privacy" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-privacy-considerations">Privacy Considerations</name>
      <t indent="0" pn="section-7-1">In some security protocols, such as TLS 1.2 <xref target="RFC5246" format="default" sectionFormat="of" derivedContent="RFC5246"/>, certificates are exchanged in the clear. In other
      security protocols, such as TLS 1.3 <xref target="RFC8446" format="default" sectionFormat="of" derivedContent="RFC8446"/>, the certificates are encrypted. The inclusion of the
      EKU extension can help an observer determine the purpose of the
      certificate. In addition, if the certificate is issued by a public
      certification authority, the inclusion of an EKU extension can help an
      attacker to monitor the Certificate Transparency logs <xref target="RFC9162" format="default" sectionFormat="of" derivedContent="RFC9162"/> to identify the purpose of the
      certificate.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-8-1">IANA has registered the following OIDs in the "SMI Security
      for PKIX Extended Key Purpose" registry (1.3.6.1.5.5.7.3). These OIDs
      are defined in <xref target="purpose-in-certificates" format="default" sectionFormat="of" derivedContent="Section 4"/>.</t>
      <table anchor="iana-table-1" align="left" pn="table-1">
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Decimal</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">References</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">37</td>
            <td align="left" colspan="1" rowspan="1">id-kp-jwt</td>
            <td align="left" colspan="1" rowspan="1">RFC 9509</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">38</td>
            <td align="left" colspan="1" rowspan="1">id-kp-httpContentEncrypt</td>
            <td align="left" colspan="1" rowspan="1">RFC 9509</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">39</td>
            <td align="left" colspan="1" rowspan="1">id-kp-oauthAccessTokenSigning</td>
            <td align="left" colspan="1" rowspan="1">RFC 9509</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-8-3">IANA has registered the following ASN.1<xref target="X.680" format="default" sectionFormat="of" derivedContent="X.680"/> module OID in the "SMI Security for PKIX Module Identifier" registry (1.3.6.1.5.5.7.0). This OID is defined
      in <xref target="Appendix" format="default" sectionFormat="of" derivedContent="Appendix A"/>.</t>
      <table anchor="iana-table-2" align="left" pn="table-2">
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Decimal</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">References</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">108</td>
            <td align="left" colspan="1" rowspan="1">id-mod-nf-eku</td>
            <td align="left" colspan="1" rowspan="1">RFC 9509</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC5280" target="https://www.rfc-editor.org/info/rfc5280" quoteTitle="true" derivedAnchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t indent="0">This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC7515" target="https://www.rfc-editor.org/info/rfc7515" quoteTitle="true" derivedAnchor="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 indent="0">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" target="https://www.rfc-editor.org/info/rfc7516" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC7519" target="https://www.rfc-editor.org/info/rfc7519" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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="X.680" target="https://www.itu.int/rec/T-REC-X.680" quoteTitle="true" derivedAnchor="X.680">
          <front>
            <title>Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date month="February" year="2021"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
        </reference>
        <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.690" quoteTitle="true" derivedAnchor="X.690">
          <front>
            <title>Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date month="February" year="2021"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
        </reference>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC5246" target="https://www.rfc-editor.org/info/rfc5246" quoteTitle="true" derivedAnchor="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t indent="0">This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
        <reference anchor="RFC7299" target="https://www.rfc-editor.org/info/rfc7299" quoteTitle="true" derivedAnchor="RFC7299">
          <front>
            <title>Object Identifier Registry for the PKIX Working Group</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="July" year="2014"/>
            <abstract>
              <t indent="0">When the Public-Key Infrastructure using X.509 (PKIX) Working Group was chartered, an object identifier arc was allocated by IANA for use by that working group. This document describes the object identifiers that were assigned in that arc, returns control of that arc to IANA, and establishes IANA allocation policies for any future assignments within that arc.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7299"/>
          <seriesInfo name="DOI" value="10.17487/RFC7299"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" quoteTitle="true" derivedAnchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t indent="0">This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t indent="0">This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9162" target="https://www.rfc-editor.org/info/rfc9162" quoteTitle="true" derivedAnchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t indent="0">This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t indent="0">This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t indent="0">Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="RFC9336" target="https://www.rfc-editor.org/info/rfc9336" quoteTitle="true" derivedAnchor="RFC9336">
          <front>
            <title>X.509 Certificate General-Purpose Extended Key Usage (EKU) for Document Signing</title>
            <author fullname="T. Ito" initials="T." surname="Ito"/>
            <author fullname="T. Okubo" initials="T." surname="Okubo"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="December" year="2022"/>
            <abstract>
              <t indent="0">RFC 5280 specifies several extended key purpose identifiers (KeyPurposeIds) for X.509 certificates. This document defines a general-purpose Document-Signing KeyPurposeId for inclusion in the Extended Key Usage (EKU) extension of X.509 public key certificates. Document-Signing applications may require that the EKU extension be present and that a Document-Signing KeyPurposeId be indicated in order for the certificate to be acceptable to that Document-Signing application.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9336"/>
          <seriesInfo name="DOI" value="10.17487/RFC9336"/>
        </reference>
        <reference anchor="TS23.501" target="https://www.3gpp.org/ftp/Specs/archive/23_series/23.501/23501-i40.zip" quoteTitle="true" derivedAnchor="TS23.501">
          <front>
            <title>System architecture for the 5G System (5GS)</title>
            <author>
              <organization showOnFrontPage="true">3GPP</organization>
            </author>
            <date month="December" year="2023"/>
          </front>
          <seriesInfo name="Release" value="18.4.0"/>
          <seriesInfo name="3GPP TS" value="23.501"/>
        </reference>
        <reference anchor="TS29.500" target="https://www.3gpp.org/ftp/Specs/archive/29_series/29.500/29500-i40.zip" quoteTitle="true" derivedAnchor="TS29.500">
          <front>
            <title>5G System; Technical Realization of Service Based Architecture; Stage 3</title>
            <author>
              <organization showOnFrontPage="true">3GPP</organization>
            </author>
            <date month="December" year="2023"/>
          </front>
          <seriesInfo name="Release" value="18.4.0"/>
          <seriesInfo name="3GPP TS" value="29.500"/>
        </reference>
        <reference anchor="TS29.573" target="https://www.3gpp.org/ftp/Specs/archive/29_series/29.573/29573-i50.zip" quoteTitle="true" derivedAnchor="TS29.573">
          <front>
            <title>5G System; Public Land Mobile Network (PLMN) Interconnection; Stage 3</title>
            <author>
              <organization showOnFrontPage="true">3GPP</organization>
            </author>
            <date month="December" year="2023"/>
          </front>
          <seriesInfo name="Release" value="18.5.0"/>
          <seriesInfo name="3GPP TS" value="29.573"/>
        </reference>
        <reference anchor="TS33.210" target="https://www.3gpp.org/ftp/Specs/archive/33_series/33.210/33210-h10.zip" quoteTitle="true" derivedAnchor="TS33.210">
          <front>
            <title>Network Domain Security (NDS); IP network layer security</title>
            <author>
              <organization showOnFrontPage="true">3GPP</organization>
            </author>
            <date month="September" year="2022"/>
          </front>
          <seriesInfo name="Release" value="17.1.0"/>
          <seriesInfo name="3GPP TS" value="33.210"/>
        </reference>
        <reference anchor="TS33.310" target="https://www.3gpp.org/ftp/Specs/archive/33_series/33.310/33310-i20.zip" quoteTitle="true" derivedAnchor="TS33.310">
          <front>
            <title>Network Domain Security (NDS); Authentication Framework (AF)</title>
            <author>
              <organization showOnFrontPage="true">3GPP</organization>
            </author>
            <date month="December" year="2023"/>
          </front>
          <seriesInfo name="Release" value="18.2.0"/>
          <seriesInfo name="3GPP TS" value="33.310"/>
        </reference>
        <reference anchor="TS33.501" target="https://www.3gpp.org/ftp/Specs/archive/33_series/33.501/33501-i40.zip" quoteTitle="true" derivedAnchor="TS33.501">
          <front>
            <title>Security architecture and procedures for 5G system</title>
            <author>
              <organization showOnFrontPage="true">3GPP</organization>
            </author>
            <date month="December" year="2023"/>
          </front>
          <seriesInfo name="Release" value="18.4.0"/>
          <seriesInfo name="3GPP TS" value="33.501"/>
        </reference>
      </references>
    </references>
    <section anchor="Appendix" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-asn1-module">ASN.1 Module</name>
      <t indent="0" pn="section-appendix.a-1">The following module adheres to ASN.1 specifications <xref target="X.680" format="default" sectionFormat="of" derivedContent="X.680"/> and <xref target="X.690" format="default" sectionFormat="of" derivedContent="X.690"/>.</t>
      <sourcecode name="" type="asn.1" markers="true" pn="section-appendix.a-2">
NF-EKU
  { iso(1) identified-organization(3) dod(6) internet(1)
  security(5) mechanisms(5) pkix(7) id-mod(0)
  id-mod-nf-eku (108) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

-- OID Arc

id-kp OBJECT IDENTIFIER ::=
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) kp(3) }

-- Extended Key Usage Values

id-kp-jwt OBJECT IDENTIFIER ::= { id-kp 37 }
id-kp-httpContentEncrypt OBJECT IDENTIFIER ::= { id-kp 38 }
id-kp-oauthAccessTokenSigning OBJECT IDENTIFIER ::= { id-kp 39 }

END
</sourcecode>
    </section>
    <section anchor="acknowledgments" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">We would like to thank <contact fullname="Corey Bonnell"/>, <contact fullname="Ilari Liusvaara"/>, <contact fullname="Carl Wallace"/>, and
      <contact fullname="Russ Housley"/> for their useful feedback. Thanks to
      <contact fullname="Yoav Nir"/> for the secdir review, <contact fullname="Elwyn Davies"/> for the genart review, and <contact fullname="Benson Muite"/> for the intdir review.</t>
      <t indent="0" pn="section-appendix.b-2">Thanks to <contact fullname="Paul Wouters"/>, <contact fullname="Lars       Eggert"/>, and <contact fullname="Éric Vyncke"/> for the IESG
      review.</t>
    </section>
    <section anchor="contrib" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.c">
      <name slugifiedName="name-contributor">Contributor</name>
      <t indent="0" pn="section-appendix.c-1">The following individual has contributed to this document:</t>
      <contact fullname="German Peinado">
        <organization showOnFrontPage="true">Nokia</organization>
        <address>
          <email>german.peinado@nokia.com</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
        <organization showOnFrontPage="true">Nokia</organization>
        <address>
          <postal>
            <street/>
            <country>India</country>
          </postal>
          <email>kondtir@gmail.com</email>
        </address>
      </author>
      <author fullname="Jani Ekman" initials="J." surname="Ekman">
        <organization showOnFrontPage="true">Nokia</organization>
        <address>
          <postal>
            <street/>
            <country>Finland</country>
          </postal>
          <email>jani.ekman@nokia.com</email>
        </address>
      </author>
      <author fullname="Daniel Migault" initials="D." surname="Migault">
        <organization showOnFrontPage="true">Ericsson</organization>
        <address>
          <postal>
            <street/>
            <country>Canada</country>
          </postal>
          <email>daniel.migault@ericsson.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
