RFC 9809
X.509 Certificate Extended Key Usage (EKU) for Configuration, Updates, and Safety-Critical Communication
Internet Engineering Task Force (IETF) π
Okay bestie, this one is the RFC 9809 glow-up! β¨ It's an IETF Standards Track document, published July 2025, and it's giving "new EKU KeyPurposeIds for configs, updates, and safety-critical comms" π.
Authors: H. Brockhaus (Siemens) and D. Goltzsche (Siemens Mobility). ISSN 2070-1721. π¦
It doesn't obsolete or update any earlier RFCs. It just adds new stuff on top of RFC 5280 πΈ.
X.509 Certificate Extended Key Usage (EKU) for Configuration, Updates, and Safety-Critical Communication π§
Abstract
Okay so RFC 5280 already defines the Extended Key Usage (EKU) extension and a bunch of extended key purpose identifiers (KeyPurposeIds) you can put in X.509 certs π . This doc adds new KeyPurposeIds for general-purpose and trust anchor configuration files, for software and firmware update packages, and for safety-critical communication. They all go in the EKU extension of X.509 v3 public key certificates. Iconic, honestly π.
Status of This Memo
This is an Internet Standards Track document. π«Ά
It's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 7841 π.
For the current status, errata, and where to send feedback, go to https://www.rfc-editor.org/info/rfc9809 β¨.
Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. π
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date. Please actually read these, bestie, because they spell out your rights and restrictions π. Code Components pulled out of this document must include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Revised BSD License π.
Table of Contents
1. Introduction
2. Conventions and Definitions
3. Extended Key Purpose for Configuration Files, Update Packages,
and Safety-Critical Communication
4. Including the Extended Key Purpose in Certificates
5. Implications for a Certification Authority
6. Security Considerations
7. Privacy Considerations
8. IANA Considerations
9. References
9.1. Normative References
9.2. Informative References
Appendix A. ASN.1 Module
Appendix B. Use Cases
Acknowledgments
Contributors
Authors' Addresses
1. Introduction π·
Okay so KeyPurposeIds added to the certificate's EKU extension [RFC5280] are supposed to show what the usage is for, both for humans and for libraries that follow the rules π§ . The full list lives in the IANA registry "SMI Security for PKIX Extended Key Purpose" [SMI-PKIX-PURPOSE]. Using the anyExtendedKeyUsage KeyPurposeId (Section 4.2.1.12 of [RFC5280]) is generally considered a poor practice π.
This doc defines KeyPurposeIds for certs used for stuff like:
- Checking signatures on general-purpose software configuration files.
- Checking signatures on trust anchor configuration files.
- Checking signatures on software and firmware update packages.
- Authenticating communication endpoints that are allowed to do safety-critical communication.
If a cert's purpose isn't restricted (so the public key can be used in ways nobody intended), the risk of cross-application attacks goes up π. If there's no proper segregation of duties, an application or system that makes its own keys and applies for a cert from the operator Certification Authority (CA) could end up with a cert it's not allowed to use for the tasks it's not entitled to do. Trust anchor management is a super critical task, so that's a big deal π¨. A device could accept a trust anchor configuration file signed by a service whose cert has no EKU, or one with the KeyPurposeIds id-kp-codeSigning (Section 4.2.1.12 of [RFC5280]) or id-kp-documentSigning [RFC9336]. Not me accepting that π ββοΈ. A device SHOULD only accept trust anchor configuration files when the file is verified with a cert that was explicitly issued for this purpose.
Hmm, wait, I need to fix that last bit. Here is the exact wording: a device should only accept trust anchor configuration files if the file is verified with a certificate that has been explicitly issued for this purpose.
The KeyPurposeId id-kp-serverAuth (Section 4.2.1.12 of [RFC5280]) can show that a cert is for a TLS WWW server, and id-kp-clientAuth (Section 4.2.1.12 of [RFC5280]) can show that it's for a TLS WWW client π. The catch is that there are currently no KeyPurposeIds for X.509 certs used in safety-critical communication π±.
This doc fixes all of that by defining KeyPurposeIds for the EKU extension of X.509 public key certs π . These certs either sign files (general-purpose config files, trust anchor config files, and software and firmware update packages) or handle safety-critical communication π¦.
Vendor-defined KeyPurposeIds inside a vendor-run PKI usually aren't an interoperability problem, because non-critical extensions can be safely ignored if they're not recognized β¨. But using KeyPurposeIds outside their vendor-controlled environment, or in ExtendedKeyUsage extensions marked critical, can cause interoperability issues π. So it's advisable not to rely on vendor-defined KeyPurposeIds. Instead, this spec defines standard KeyPurposeIds so vendors and industries can all interoperate π€.
The definitions here are intentionally broad so they can work in different deployments, even though they were first motivated by industrial automation and rail automation (see Appendix B) π. Each deployment needs to describe its details in the relevant technical standards and certificate policies π.
2. Conventions and Definitions π
Here's the rule about the key words, bestie. 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 π.
This doc uses terms defined in [RFC5280]. X.509 certificate extensions are defined using ASN.1 [X.680] [X.690] π§©.
The term "safety-critical communication" means communication that could, under certain conditions, lead to a state where human life, health, property, or the environment is endangered π¨. For the definition of "safety", see [NIST.SP.800-160] and [ISO.IEC.IEEE_12207] π.
3. Extended Key Purpose for Configuration Files, Update Packages, and Safety-Critical Communication π
This spec defines the following KeyPurposeIds π:
- id-kp-configSigning: used for signing general-purpose configuration files.
- id-kp-trustAnchorConfigSigning: used for signing trust anchor configuration files.
- id-kp-updatePackageSigning: used for signing software or firmware update packages.
- id-kp-safetyCommunication: used for authenticating communication peers for safety-critical communication.
As RFC 5280 Section 4.2.1.12 says, "[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" π.
None of the KeyPurposeIds in this spec are inherently mutually exclusive π¦. Instead, which combos are okay (with each other, with others in this spec, and with KeyPurposeIds from elsewhere) is left to the technical standards of each application and the certificate policy of each PKI π. For example, a technical standard could say: "Different keys and certificates must be used for safety-critical communication and for trust anchor updates, and a relying party must ignore the KeyPurposeId id-kp-trustAnchorConfigSigning if id-kp-safetyCommunication is one of the specified key purposes in a certificate." π And a certificate policy could say: "The id-kp-safetyCommunication KeyPuposeId should not be included in an issued certificate together with the KeyPurposeId id-kp-trustAnchorConfigSigning." Technical standards and certificate policies of different applications can set other rules too π. More on prohibiting combos is in Section 6 π.
Systems or apps that verify the signature of a general-purpose config file or trust anchor config file, the signature of a software or firmware update package, or the authentication of a communication peer for safety-critical communication SHOULD require that the corresponding KeyPurposeIds are set in the EKU extension π«Ά. If the certificate requester knows that certificate users are mandated to use these KeyPurposeIds, the requester MUST enforce their inclusion β . On top of that, such a requester MUST make sure the Key Usage extension is set to digitalSignature for signature verification, to keyEncipherment for public key encryption, and to keyAgreement for key agreement π .
Part 1 of 3 done, bestie! β¨ Tell me "next" and I'll keep going with Section 4 and onward π.
4. Including the Extended Key Purpose in Certificates π
okay so [RFC5280] is where the EKU X.509 certificate extension lives, and it's meant for end-entity certificates π The extension says which purpose or purposes the certified public key is valid for. It can also team up with the Key Usage (KU) extension, which lists the basic cryptographic operations the certified key can be used for π Here's the EKU syntax again for convenience β¨
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
KeyPurposeId ::= OBJECT IDENTIFIER
As [RFC5280] explains, the EKU extension can be critical or non-critical, and that's up to the certificate issuer π«Ά Putting id-kp-configSigning, id-kp-trustAnchorConfigSigning, id-kp-updatePackageSigning, and id-kp-safetyCommunication in a certificate means the public key inside has been certified for these usages:
id-kp-configSigningA public key in a certificate with the KeyPurposeIdid-kp-configSigningcan be used to verify signatures on general-purpose configuration files of various formats (e.g., XML, YAML, or JSON). Configuration files are how you set up hardware or software π§id-kp-trustAnchorConfigSigningA public key in a certificate with the KeyPurposeIdid-kp-trustAnchorConfigSigningcan be used to verify signatures on trust anchor configuration files of various formats (e.g., XML, YAML, or JSON). These files are used to add or remove trust anchors from a device's trust store π‘οΈid-kp-updatePackageSigningA public key in a certificate with the KeyPurposeIdid-kp-updatePackageSigningcan be used to verify signatures on software or firmware update packages. Update packages install software (including bootloader, firmware, safety-related applications, and others) on systems π¦id-kp-safetyCommunicationA public key in a certificate with the KeyPurposeIdid-kp-safetyCommunicationcan be used to authenticate a communication peer for safety-critical communication based on TLS or other protocols π¨
The arcs for all of these live under id-kp, so here's how they're numbered π
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 41 }
id-kp-trustAnchorConfigSigning OBJECT IDENTIFIER ::= { id-kp 42 }
id-kp-updatePackageSigning OBJECT IDENTIFIER ::= { id-kp 43 }
id-kp-safetyCommunication OBJECT IDENTIFIER ::= { id-kp 44 }
5. Implications for a Certification Authority ποΈ
A certification authority's procedures and practices have to make sure the right EKU and KU values get put into every certificate it issues π Including id-kp-configSigning, id-kp-trustAnchorConfigSigning, id-kp-updatePackageSigning, and id-kp-safetyCommunication does not rule out including other KeyPurposeIds too β¨
6. Security Considerations π
Read this one carefully, bestie. This section is serious business π
The security considerations of [RFC5280] apply to this document. These EKU key purposes don't add new security risks. Instead, they reduce existing ones, because they give you a way to tell whether a certificate was 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 cut down the risk of specific cross-protocol attacks, the relying party can also prohibit 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]. The technical standards and certificate policies of the application are supposed to explicitly spell out the requirements for excluded or permitted KeyPurposeIds or their combinations. Listing those is out of scope for this document, but an example of an excluded KeyPurposeId is the presence of the anyExtendedKeyUsage KeyPurposeId. Examples of allowed KeyPurposeIds combinations are the presence of id-kp-safetyCommunication together with id-kp-clientAuth or id-kp-serverAuth π
7. Privacy Considerations π¦
In some protocols (e.g., TLS 1.2 [RFC5246]), certificates are exchanged in the clear. In other protocols (e.g., TLS 1.3 [RFC8446]), certificates are encrypted. Including the EKU extension can help an observer figure out what the certificate is for. And if the certificate is issued by a public certification authority, including an EKU extension can help an attacker monitor the Certificate Transparency logs [RFC9162] to identify the purpose of the certificate, which may reveal private information about the certificate subject π
8. IANA Considerations π
IANA has registered the following ASN.1 [X.680] module OID in the "SMI Security for PKIX Module Identifier" registry [SMI-PKIX-MOD]. This OID is defined in Appendix A πΈ
+=========+=============================+===========+
| Decimal | Description | Reference |
+=========+=============================+===========+
| 117 | id-mod-config-update-sc-eku | RFC 9809 |
+---------+-----------------------------+-----------+
Table 1
IANA has also registered the following OIDs in the "SMI Security for PKIX Extended Key Purpose" registry [SMI-PKIX-PURPOSE]. These OIDs are defined in Section 4 π
+=========+================================+===========+
| Decimal | Description | Reference |
+=========+================================+===========+
| 41 | id-kp-configSigning | RFC 9809 |
+---------+--------------------------------+-----------+
| 42 | id-kp-trustAnchorConfigSigning | RFC 9809 |
+---------+--------------------------------+-----------+
| 43 | id-kp-updatePackageSigning | RFC 9809 |
+---------+--------------------------------+-----------+
| 44 | id-kp-safetyCommunication | RFC 9809 |
+---------+--------------------------------+-----------+
Table 2
9. References π
9.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, <https://www.rfc-editor.org/info/rfc2119>.
- [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, <https://www.rfc-editor.org/info/rfc5280>.
- [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.
- [X.680] ITU-T, "Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation", ITU-T Recommendation X.680, February 2021, <https://www.itu.int/rec/T-REC-X.680-202102-I/en>.
- [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, <https://www.itu.int/rec/T-REC-X.690-202102-I/en>.
9.2. Informative References πβ¨
These are the extra reads that give the whole spec its backstory π
[RFC5246]Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, August 2008,<https://www.rfc-editor.org/info/rfc5246>.[RFC8446]Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,<https://www.rfc-editor.org/info/rfc8446>.[RFC9162]Laurie, B., Messeri, E., and R. Stradling, "Certificate Transparency Version 2.0", RFC 9162, DOI 10.17487/RFC9162, December 2021,<https://www.rfc-editor.org/info/rfc9162>.[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,<https://www.rfc-editor.org/info/rfc9336>.[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,<https://www.rfc-editor.org/info/rfc9509>.[Directive-2016_797]European Parliament, Council of the European Union, "Directive (EU) 2016/797 of the European Parliament and of the Council of 11 May 2016 on the interoperability of the rail system within the European Union", May 2020,<https://eur-lex.europa.eu/eli/dir/2016/797/2020-05-28>.[ERJU]Europe's Rail Joint Undertaking, "Shared Cybersecurity Services Specification - SP-SEC-ServSpec - V1.0", February 2025,<https://rail-research.europa.eu/wp-content/uploads/2025/03/ERJU-SP-Cybersecurity-Specifications-V1.0.zip>.[ERJU-web]Europe's Rail Joint Undertaking, "Europe's Rail Joint Undertaking - System Pillar",<https://rail-research.europa.eu/system_pillar/>.[EU-CRA]European Commission, "Regulation (EU) 2024/2847 of the European Parliament and of the Council of 23 October 2024 on horizontal cybersecurity requirements for products with digital elements and amending Regulations (EU) No 168/2013 and (EU) 2019/1020 and Directive (EU) 2020/1828 (Cyber Resilience Act)", November 2024,<https://eur-lex.europa.eu/eli/reg/2024/2847/oj>.[EU-STRATEGY]European Commission, "The EU's Cybersecurity Strategy for the Digital Decade", December 2020,https://digital-strategy.ec.europa.eu/en/library/eus-cybersecurity-strategy-digital-decade-0.[NIST.SP.800-160]Ross, R., Winstead, M., and M. McEvilley, "Engineering Trustworthy Secure Systems", NIST SP 800-160v1r1, DOI 10.6028/NIST.SP.800-160v1r1, November 2022,<https://doi.org/10.6028/NIST.SP.800-160v1r1>.[ISO.IEC.IEEE_12207]ISO/IEC/IEEE, "Systems and software engineering - Software life cycle processes", ISO/IEC/IEEE 12207:2017, November 2017,<https://www.iso.org/standard/63712.html>.[NIS2]European Commission, "Directive (EU) 2022/2555 of the European Parliament and of the Council", December 2024,https://digital-strategy.ec.europa.eu/en/policies/nis2-directive.[IEC.62443-4-2]IEC, "Security for industrial automation and control systems - Part 4-2: Technical security requirements for IACS components", IEC 62443-4-2:2019, February 2019,<https://webstore.iec.ch/publication/34421>.[IEC.62443-3-3]IEC, "Industrial communication networks - Network and system security - Part 3-3: System security requirements and security levels", IEC 62443-3-3:2013, August 2013,<https://webstore.iec.ch/publication/7033>.[CE-marking]European Commission, "CE marking",https://single-market-economy.ec.europa.eu/single-market/ce-marking_en.[SMI-PKIX-PURPOSE]IANA, "SMI Security for PKIX Extended Key Purpose",<https://www.iana.org/assignments/smi-numbers>.[SMI-PKIX-MOD]IANA, "SMI Security for PKIX Module Identifier",<https://www.iana.org/assignments/smi-numbers>.
Appendix A. ASN.1 Module π§©
Here's the ASN.1 module, which follows the ASN.1 specifications [X.680] and [X.690]. Bestie, copy it exactly, the module is very particular π«Ά
<CODE BEGINS>
Automation-EKU
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-config-update-sc-eku (117) }
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 41 }
id-kp-trustAnchorConfigSigning OBJECT IDENTIFIER ::= { id-kp 42 }
id-kp-updatePackageSigning OBJECT IDENTIFIER ::= { id-kp 43 }
id-kp-safetyCommunication OBJECT IDENTIFIER ::= { id-kp 44 }
END
<CODE ENDS>
Appendix B. Use Cases π
Quick vibe check: these use cases are only for informational purposes π
Automation hardware and software products are working really hard to become more safe and secure by fulfilling mandatory, generic system requirements related to cybersecurity. Driven by federal offices like the European Union Cyber Resilience Act [EU-CRA], which is governed by the European Commission and the High Representative of the Union for Foreign Affairs and Security Policy, they're basically getting a glow-up whether they like it or not π Automation products connected to the Internet and sold in the EU after 2027 must bear the so-called "CE marking" [CE-marking] to indicate that they comply with the EU-CRA. This regulation was announced in the 2020 EU Cybersecurity Strategy [EU-STRATEGY] and complements other legislation in this area, like the directive on measures for a high common level of cybersecurity for network and information systems (NIS) across the European Union [NIS2].
The 2020 EU Cybersecurity Strategy [EU-STRATEGY] suggests implementing and extending international standards such as [IEC.62443-4-2] and [IEC.62443-3-3]. Automation hardware and software products from diverse vendors that are connected on automation networks and the Internet can be used to build common automation solutions π€ Standardized attributes would allow transparency of security properties and interoperability for vendors in the context of software and firmware updates, general-purpose configuration, trust anchor configuration, and safety-critical communication. Iconic teamwork π
A concrete example for automation is a rail automation system π The Europe's Rail web page [ERJU-web] states:
| The System Pillar brings rail sector representatives under a
| single coordination body. To achieve this, the System Pillar will
| deliver a unified operational concept and a functional, safe and
| secure system architecture, with due consideration of cyber-
| security aspects, focused on the European railway network to which
| Directive 2016/797 applies (i.e. the heavy rail network) as well
| as associated specifications and/or standards.
See [Directive-2016_797]. For details about the System Pillar, see [ERJU] π
Acknowledgments π«Ά
We would like to thank the authors of [RFC9336] and [RFC9509] for their excellent template. Honestly, they absolutely set the bar π
We also thank all reviewers of this document for their valuable feedback. Thank you to everyone who helped polish this π
Contributors πΈ
Meet the contributors! Here are their details, kept exactly as written:
Szofia Fazekas-Zisch
Szofia Fazekas-Zisch
Siemens AG
Breslauer Str. 5
90766 Fuerth
Germany
Email: szofia.fazekas-zisch@siemens.com
URI: https://www.siemens.com
Baptiste Fouques
Baptiste Fouques
Alstom
Email: baptiste.fouques@alstomgroup.com
Daniel Gutierrez Orta
Daniel Gutierrez Orta
CAF Signalling
Email: daniel.gutierrez@cafsignalling.com
Martin Weller
Martin Weller
Hitachi Rail
Email: martin.weller@urbanandmainlines.com
Nicolas Poyet
Nicolas Poyet
SNCF
Email: nicolas.poyet@sncf.fr
Authors' Addresses π¦
And finally, the authors. Slay, every single one of them β¨
Hendrik Brockhaus
Hendrik Brockhaus
Siemens
Werner-von-Siemens-Strasse 1
80333 Munich
Germany
Email: hendrik.brockhaus@siemens.com
URI: https://www.siemens.com
David Goltzsche
David Goltzsche
Siemens Mobility
Ackerstrasse 22
38126 Braunschweig
Germany
Email: david.goltzsche@siemens.com
URI: https://www.mobility.siemens.com
π¦ where this page comes from
- ietf: rfc9809 2025-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms