LAMPS WG T. Reddy Internet-Draft J. Ekman Intended status: Standards Track Nokia Expires: 14 March 2024 D. Migault Ericsson 11 September 2023 X.509 Certificate Extended Key Usage (EKU) for 5G Network Functions draft-ietf-lamps-nf-eku-03 Abstract RFC 5280 specifies several extended key purpose identifiers (KeyPurposeIds) for X.509 certificates. This document defines encrypting JSON objects in HTTP messages, JSON Web Token (JWT) 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. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 14 March 2024. Copyright Notice Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved. Reddy, et al. Expires 14 March 2024 [Page 1] Internet-Draft EKUs for NFs September 2023 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Extended Key Purpose for Network Functions . . . . . . . . . 4 4. Including the Extended Key Purpose in Certificates . . . . . 5 5. Implications for a Certification Authority . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 6 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 7 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 11.1. Normative References . . . . . . . . . . . . . . . . . . 7 11.2. Informative References . . . . . . . . . . . . . . . . . 8 Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 1. Introduction The Operators of 5G systems make use of an internal PKI to generate X.509 PKI certificates for the Network Functions (NFs) (Section 6 of [TS23.501]) in a 5G system. The certificates are used for the following purposes: * Client and Server certificates for NFs in 5GC Service Based Architecture (see Section 6.1.3c of [TS33.310]) * Client Credentials Assertion (CCA) uses JSON Web Tokens (JWT) [RFC7519] and is secured with digital signatures based on JSON Web Signature (JWS) [RFC7515] (see Section 13.3.8.2 of [TS33.501]). * Certificates for encrypting JSON objects in HTTP messages between Security Edge Protection Proxies (SEPPs) using JSON Web Encryption (JWE) [RFC7516] (Section 13.2.4.4 of [TS33.501]) and Section 6.3.2 of [TS33.210]). Reddy, et al. Expires 14 March 2024 [Page 2] Internet-Draft EKUs for NFs September 2023 * 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 [TS33.501]). [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 repository "SMI Security for PKIX Extended Key Purpose" [RFC7299] contains additional KeyPurposeIds. It's important to note that using the anyExtendedKeyUsage KeyPurposeId, as defined in Section 4.2.1.12 of [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 5G Core Service Based Architecture. 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, violating the CA policies, and increasing the risk of cross-protocol attacks. Failure to ensure proper segregation of duties means that a NF which generates the public/private keys and applies for a certificate to the operator CA, could obtain a certificate which can be misused for tasks that this NF is not entitled to perform. For example, a NF service consumer could impersonate NF service producers using its certificate. Another example, if the purpose of the certificate is for the NF service consumer is to use it as a client certificate, the NF with this client certificate and corresponding private key must not be allowed to sign the CCA. When a NF service producer receives the signed CCA from the NF service consumer, the NF would accept the token even if CCA is signed with a certificate not issued for this purpose. The KeyPurposeId id-kp-serverAuth (Section 4.2.1.12 of [RFC5280]) can be used to identify that the certificate is for a server (e.g., NF service producer), and the KeyPurposeId id-kp-clientAuth (Section 4.2.1.12 of [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 5G System. This document defines the Extended Key Usage (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. Reddy, et al. Expires 14 March 2024 [Page 3] Internet-Draft EKUs for NFs September 2023 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. 2. Terminology 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 [RFC2119][RFC8174] when, and only when, they appear in all capitals, as shown here. 3. Extended Key Purpose for Network Functions This specification defines the KeyPurposeIds id-kp-jwt, id-kp- httpContentEncrypt, id-kp-oauthAccessTokenSigning for respectively 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 [RFC5280], "[i]f the [Extended Key Usage] extension is present, then the certificate MUST only be used for one of the purposes indicated." [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." Applications verifying the signature of a Client Credentials Assertion (CCA) represented as JWT, decrypting JSON objects in HTTP messages between Security Edge Protection Proxies (SEPPs) using JWE or verifying the signature of an OAuth 2.0 access tokens for service authorization to grant temporary access to resources provided by NF producers using JWS MAY require corresponding KeyPurposeIds be specified by the EKU extension. In addition, such application MUST require the KeyUsage extension be set to digitalSignature or nonRepudiation (also designated as contentCommitment) for the signature calculation and/or to keyEncipherment for encryption of the secret key. Reddy, et al. Expires 14 March 2024 [Page 4] Internet-Draft EKUs for NFs September 2023 4. Including the Extended Key Purpose in Certificates [RFC5280] specifies the Extended Key Usage (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: ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId KeyPurposeId ::= OBJECT IDENTIFIER As described in [RFC5280], the EKU extension may, at the option of the certificate issuer, be either critical or non-critical. The inclusion of KeyPurposeId 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: 1. Validating the JWS Signature in JWT. The distinction between JWS and JWE is determined by the KU that is set to digitalSignature or nonRepudiation for JWS and keyEncipherment for JWE. 2. Encrypting JSON objects in HTTP messages (for example, encrypting the CEK with the recipient's public key using the RSAES-OAEP algorithm to produce the JWE Encrypted Key). KU is set to keyEncipherment. 3. Signing OAuth 2.0 access tokens. In this case, Ku is set to digitalSignature or nonRepudiation. 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 TBD1 } id-kp-httpContentEncrypt OBJECT IDENTIFIER ::= { id-kp TBD2 } id-kp-oauthAccessTokenSigning OBJECT IDENTIFIER ::= { id-kp TBD3 } Reddy, et al. Expires 14 March 2024 [Page 5] Internet-Draft EKUs for NFs September 2023 5. Implications for a Certification Authority The procedures and practices employed by a certification authority MUST 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. 6. Security Considerations The Security Considerations of [RFC5280] are applicable to this document. This extended key purpose does not introduce new security risks but instead reduces existing security risks by providing means to identify if the certificate is generated to sign the JWT Claims Set, signing the OAuth 2.0 access tokens using JWS or to encrypt the CEK in JWE for encrypting JSON objects in HTTP messages. 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 of using Excluded KeyPurposeId and Permitted KeyPurposeId by an relying party to permit or prohibit combinations of KeyPurposeIds is defined in Section 4 of [RFC9336]. Examples of Excluded KeyPurposeId include the presence of the anyExtendedKeyUsage KeyPurposeId or the complete absence of the EKU extension in a certificate. Examples of Permitted KeyPurposeId include the presence of id-kp-jwt, id-kp- httpContentEncrypt or id-kp-oauthAccessTokenSigning KeyPurposeId. 7. Privacy Considerations In some security protocols, such as TLS 1.2 [RFC5246], certificates are exchanged in the clear. In other security protocols, such as TLS 1.3 [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 EKU extension can help an attacker to monitor the Certificate Transparency logs [RFC9162] to identify the purpose of the certificate. 8. IANA Considerations IANA is requested to register 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 Section 4. Reddy, et al. Expires 14 March 2024 [Page 6] Internet-Draft EKUs for NFs September 2023 +=========+===============================+============+ | Decimal | Description | References | +=========+===============================+============+ | TBD1 | id-kp-jwt | This-RFC | +---------+-------------------------------+------------+ | TBD2 | id-kp-httpContentEncrypt | This-RFC | +---------+-------------------------------+------------+ | TBD3 | id-kp-oauthAccessTokenSigning | This-RFC | +---------+-------------------------------+------------+ Figure 1: Table 1 IANA is also requested to register the following ASN.1[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 Appendix A. +=========+==========================+============+ | Decimal | Description | References | +=========+==========================+============+ | TBD4 | id-mod-nf-eku | This-RFC | +---------+--------------------------+------------+ Figure 2: Table 2 9. Contributors The following individuals have contributed to this document: German Peinado Nokia Email: german.peinado@nokia.com 10. Acknowledgments We would like to thank Corey Bonnell, Ilari Liusvaara, Carl Wallace and Russ Housley for their useful feedback. Thanks to Yoav Nir for the secdir review, Elwyn Davies for the genart review and Benson Muite for the intdir review. 11. References 11.1. Normative References Reddy, et al. Expires 14 March 2024 [Page 7] Internet-Draft EKUs for NFs September 2023 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, . [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May 2015, . [RFC7516] Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", RFC 7516, DOI 10.17487/RFC7516, May 2015, . [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [X.680] "ITU-T, "Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation", ITU-T Recommendation X.680, February 2021.", . [X.690] "ITU-T, "Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)", ITU-T Recommendation X.690, February 2021,", . 11.2. Informative References [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, August 2008, . [RFC7299] Housley, R., "Object Identifier Registry for the PKIX Working Group", RFC 7299, DOI 10.17487/RFC7299, July 2014, . Reddy, et al. Expires 14 March 2024 [Page 8] Internet-Draft EKUs for NFs September 2023 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . [RFC9162] Laurie, B., Messeri, E., and R. Stradling, "Certificate Transparency Version 2.0", RFC 9162, DOI 10.17487/RFC9162, December 2021, . [RFC9336] Ito, T., Okubo, T., and S. Turner, "X.509 Certificate General-Purpose Extended Key Usage (EKU) for Document Signing", RFC 9336, DOI 10.17487/RFC9336, December 2022, . [TS23.501] "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; System architecture for the 5G System (5GS); Stage 2 (Release 18), 3GPP TS 23.501 V18.0.0 Dec 2022,", . [TS33.210] "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects;Network Domain Security (NDS); IP network layer security (Release 17), 3GPP TS 33.210 V17.1.0 Sept 2022,", . [TS33.310] "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Network Domain Security (NDS); Authentication Framework (AF) (Release 17), 3GPP 33.310 V17.4.0, Sept 2022,", . [TS33.501] "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Security architecture and procedures for 5G system (Release 17), , 3GPP TS:33.501 V17.7.0, Sept 2022,", . Appendix A. ASN.1 Module The following module adheres to ASN.1 specifications [X.680] and [X.690]. Reddy, et al. Expires 14 March 2024 [Page 9] Internet-Draft EKUs for NFs September 2023 NF-EKU { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-nf-eku (TBD4) } 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 TBD1 } id-kp-httpContentEncrypt OBJECT IDENTIFIER ::= { id-kp TBD2 } id-kp-oauthAccessTokenSigning OBJECT IDENTIFIER ::= { id-kp TBD3 } END Authors' Addresses Tirumaleswar Reddy Nokia India Email: kondtir@gmail.com Jani Ekman Nokia Finland Email: jani.ekman@nokia.com Daniel Migault Ericsson Canada Email: daniel.migault@ericsson.com Reddy, et al. Expires 14 March 2024 [Page 10]