LAMPS Working Group H. Brockhaus Internet-Draft Siemens Intended status: Standards Track D. D. Goltzsche Expires: 14 April 2025 Siemens Mobility GmbH 11 October 2024 X.509 Certificate Extended Key Usage (EKU) for ERJU System Pillar draft-brockhaus-lamps-eu-rail-keyusages-00 Abstract RFC 5280 specifies several extended key purpose identifiers (KeyPurposeIds) for X.509 certificates. This document defines KeyPurposeIds for general-purpose and trust anchor configuration files, for software and firmware update packages, and for safety- critical communication to be included in the Extended Key Usage (EKU) extension of X.509 v3 public key certificates used by the ERJU System Pillar. 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 April 2025. Copyright Notice Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. Brockhaus & Goltzsche Expires 14 April 2025 [Page 1] Internet-Draft EKU for ERJU System Pillar October 2024 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. Conventions and Definitions . . . . . . . . . . . . . . . . . 4 3. Extended Key Purpose for ERJU System Pillar . . . . . . . . . 4 4. Including the Extended Key Purpose in Certificates . . . . . 5 5. Implications for a Certification Authority . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 7 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 10.1. Normative References . . . . . . . . . . . . . . . . . . 8 10.2. Informative References . . . . . . . . . . . . . . . . . 8 Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 9 Appendix B. History of Changes . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 1. Introduction The Europe's Rail Joint Undertaking System Pillar [ERJU] will deliver a unified operational concept and a functional, safe and secure system architecture alongside with system requirements. The deliverables include due consideration of cyber-security aspects, focused on the European railway network to which Directive 2016/797 - Interoperability of the rail system within the EU [Directive-2016_797] applies. The ERJU System Pillar Cyber Security Working Group makes use of an internal PKI to generate X.509 PKI certificates. The certificates are used for the following purposes, among others: * Validating signatures of general-purpose software configuration files. * Validating signatures of trust anchor configuration files. * Validating signatures of software and firmware update packages. Brockhaus & Goltzsche Expires 14 April 2025 [Page 2] Internet-Draft EKU for ERJU System Pillar October 2024 * Authenticating communication endpoints authorized for safety- critical communication. [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" [RFC7299] contains additional KeyPurposeIds. The use of the anyExtendedKeyUsage KeyPurposeId, as defined in Section 4.2.1.12 of [RFC5280], is generally considered a poor practice. This is especially true for certificates, whether they are multi-purpose or single-purpose, within the context of EURJU System Pillar. 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 an application or system 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 application or system is not entitled to perform. For example, management of trust anchor is a particularly critical task. A device could potentially accept a trust anchor configuration file signed by a service that uses a certificate with no EKU or with the is KeyPurposeId id-kp-codeSigning (Section 4.2.1.12 of [RFC5280]) or id-kp-documentSigning [RFC9336]. A device should only accept trust anchor configuration files if the file is signed with a certificate that has been explicitly 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 TLS server, and the KeyPurposeId id-kp-clientAuth (Section 4.2.1.12 of [RFC5280]) can be used to identify that the certificate is for a TLS client. However, there are currently no KeyPurposeIds for usage with X.509 certificates in EURJU documents for safety-critical communication. This document addresses the above problems by defining the EKU extension of X.509 public key certificates. Certificates are either used for signing files (general-purpose configuration and trust anchor configuration files, software and firmware update packages) or are used for safety-critical communication. 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 Brockhaus & Goltzsche Expires 14 April 2025 [Page 3] Internet-Draft EKU for ERJU System Pillar October 2024 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. Although the specification focuses on the the use within ERJU documents, the standard KeyPurposeIds defined in this document can be used in other deployments. 2. Conventions and Definitions 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 ERJU System Pillar This specification defines the KeyPurposeIds id-kp-configSigning, id- kp-trustanchorSigning, id-kp-updateSigning, and id-kp- safetyCommunication and uses these, respectively, for: signing general-purpose or trust anchor configuration files, or signing software or firmware update packages, or authenticating communication peers for safety-critical communication. As described in Section 4.2.1.12 of [RFC5280], "[i]f the [extended key usage] extension is present, then the certificate MUST only be used for one of the purposes indicated" and "[i]f multiple [key] purposes are indicated the application need not recognize all purposes indicated, as long as the intended purpose is present". Systems or applications that verify the signature of a general- purpose or trust anchor configuration file, the signature of a software or firmware update package, or the authentication of a communication peer for safety-critical communication SHOULD 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 MUST enforce their inclusion. Additionally, such a certificate requester MUST ensure that the KeyUsage extension be set to digitalSignature or nonRepudiation (also designated as contentCommitment) for signature verification and/or to keyEncipherment for secret key encryption. Brockhaus & Goltzsche Expires 14 April 2025 [Page 4] Internet-Draft EKU for ERJU System Pillar October 2024 4. Including the Extended Key Purpose in Certificates [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 (KU) 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 KeyPurposeIds id-kp-configSigning, id-kp- trustanchorSigning, id-kp-updateSigning, and id-kp- safetyCommunication in a certificate indicates that the public key encoded in the certificate has been certified for the following usages: * id-kp-configSigning A public key contained in a certificate containing the KeyPurposeId id-kp-configSigning may be used for verifying signatures of general-purpose configuration files (typically, but not restricted to XML or JSON files). Configuration files are used to configure software. The KU extension is set to digitalSignature or nonRepudiation. * id-kp-trustanchorSigning A public key contained in a certificate containing the KeyPurposeId id-kp-trustanchorSigning may be used for verifying signatures of trust anchor configuration files. Trust anchor configuration files are used to add or remove trust anchor to the trust store of a device. The KU extension is set to digitalSignature or nonRepudiation. * id-kp-updateSigning A public key contained in a certificate containing the KeyPurposeId id-kp-updateSigning may be used for verifying signatures of software or firmware update packages. Update packages are used to install new software or firmware updates on potentially safety-critical systems. The KU extension is set to digitalSignature or nonRepudiation. Brockhaus & Goltzsche Expires 14 April 2025 [Page 5] Internet-Draft EKU for ERJU System Pillar October 2024 * id-kp-safetyCommunication A public key contained in a certificate containing the KeyPurposeId id-kp-safetyCommunication may be used to authenticate a communication peer for safety-critical communication based on TLS. Depending on the key type used, the KU is set to digitalSignature or keyEncipherment. id-kp OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) 3 } id-kp-configSigning OBJECT IDENTIFIER ::= { id-kp TBD2 } id-kp-trustanchorSigning OBJECT IDENTIFIER ::= { id-kp TBD3 } id-kp-updateSigning OBJECT IDENTIFIER ::= { id-kp TBD4 } id-kp-safetyCommunication OBJECT IDENTIFIER ::= { id-kp TBD5 } 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-configSigning, id-kp-trustanchorSigning, id-kp-updateSigning, and id-kp-safetyCommunication 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 the means to identify if the certificate is generated to verify the signature of a general-purpose or trust anchor configuration file, the signature of a software or firmware update package, or the authentication of a communication peer for safety-critical communication. 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 Section 4 of [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-configSigning, id-kp-trustanchorSigning, id-kp- updateSigning, and id-kp-safetyCommunication KeyPurposeIds. Brockhaus & Goltzsche Expires 14 April 2025 [Page 6] Internet-Draft EKU for ERJU System Pillar October 2024 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 an 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 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 | +=========+===================+============+ | TBD1 | id-kp-eu-rail-eku | This-RFC | +---------+-------------------+------------+ Table 1 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. +=========+===========================+============+ | Decimal | Description | References | +=========+===========================+============+ | TBD2 | id-kp-configSigning | This-RFC | +---------+---------------------------+------------+ | TBD3 | id-kp-trustanchorSigning | This-RFC | +---------+---------------------------+------------+ | TBD4 | id-kp-updateSigning | This-RFC | +---------+---------------------------+------------+ | TBD5 | id-kp-safetyCommunication | This-RFC | +---------+---------------------------+------------+ Table 2 9. Acknowledgments We would like to thank the authors of [RFC9336] and [RFC9509] for their excellent template. Brockhaus & Goltzsche Expires 14 April 2025 [Page 7] Internet-Draft EKU for ERJU System Pillar October 2024 We also thank all reviewers of this document for their valuable feedback. 10. References 10.1. Normative References [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, . [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, . 10.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, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . Brockhaus & Goltzsche Expires 14 April 2025 [Page 8] Internet-Draft EKU for ERJU System Pillar October 2024 [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, . [RFC9509] Reddy.K, T., Ekman, J., and D. Migault, "X.509 Certificate Extended Key Usage (EKU) for 5G Network Functions", RFC 9509, DOI 10.17487/RFC9509, March 2024, . [Directive-2016_797] European Parliament, Council of the European Union, "Directive 2016/797 - Interoperability of the rail system within the EU", May 2020, . [ERJU] Europe's Rail Joint Undertaking, "SP-Cybersecurity- SharedCybersecurityServices - Review 3 Final Draft Specs (V0.90)", September 2024, . Appendix A. ASN.1 Module The following module adheres to ASN.1 specifications [X.680] and [X.690]. Brockhaus & Goltzsche Expires 14 April 2025 [Page 9] Internet-Draft EKU for ERJU System Pillar October 2024 EU-Rail-EKU { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-eu-rail-eku (TBD1) } 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-configSigning OBJECT IDENTIFIER ::= { id-kp TBD2 } id-kp-trustanchorSigning OBJECT IDENTIFIER ::= { id-kp TBD3 } id-kp-updateSigning OBJECT IDENTIFIER ::= { id-kp TBD4 } id-kp-safetyCommunication OBJECT IDENTIFIER ::= { id-kp TBD5 } END Appendix B. History of Changes [RFC Editor: Please remove this appendix in the release version of the document.] Version 00: Initial version of the document following best practices from RFC 9336 and RFC 9509 Authors' Addresses Hendrik Brockhaus Siemens Werner-von-Siemens-Strasse 1 80333 Munich Germany Email: hendrik.brockhaus@siemens.com URI: https://www.siemens.com Brockhaus & Goltzsche Expires 14 April 2025 [Page 10] Internet-Draft EKU for ERJU System Pillar October 2024 Dr. David Goltzsche Siemens Mobility GmbH Ackerstraße 22 38126 Braunschweig Germany Email: david.goltzsche@siemens.com URI: https://www.siemens.com Brockhaus & Goltzsche Expires 14 April 2025 [Page 11]