| rfc9802v1.txt | rfc9802.txt | |||
|---|---|---|---|---|
| skipping to change at line 24 ¶ | skipping to change at line 24 ¶ | |||
| Use of the HSS and XMSS Hash-Based Signature Algorithms in Internet | Use of the HSS and XMSS Hash-Based Signature Algorithms in Internet | |||
| X.509 Public Key Infrastructure | X.509 Public Key Infrastructure | |||
| Abstract | Abstract | |||
| This document specifies algorithm identifiers and ASN.1 encoding | This document specifies algorithm identifiers and ASN.1 encoding | |||
| formats for the following stateful Hash-Based Signature (HBS) | formats for the following stateful Hash-Based Signature (HBS) | |||
| schemes: Hierarchical Signature System (HSS), eXtended Merkle | schemes: Hierarchical Signature System (HSS), eXtended Merkle | |||
| Signature Scheme (XMSS), and XMSS^MT (a multi-tree variant of XMSS). | Signature Scheme (XMSS), and XMSS^MT (a multi-tree variant of XMSS). | |||
| This specification applies to the Internet X.509 Public Key | This specification applies to the Internet X.509 Public Key | |||
| infrastructure (PKI) when those digital signatures are used in | Infrastructure (PKI) when digital signatures are used to sign | |||
| Internet X.509 certificates and certificate revocation lists. | certificates and certificate revocation lists (CRLs). | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
| (IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| skipping to change at line 132 ¶ | skipping to change at line 132 ¶ | |||
| 3. Use Cases of Stateful HBS Schemes in X.509 | 3. Use Cases of Stateful HBS Schemes in X.509 | |||
| As described in the Security Considerations in Section 10, it is | As described in the Security Considerations in Section 10, it is | |||
| imperative that stateful HBS implementations do not reuse OTS | imperative that stateful HBS implementations do not reuse OTS | |||
| signatures. This makes stateful HBS algorithms inappropriate for | signatures. This makes stateful HBS algorithms inappropriate for | |||
| general use cases. The exact conditions under which stateful HBS | general use cases. The exact conditions under which stateful HBS | |||
| certificates may be used is left to certificate policies [RFC3647]. | certificates may be used is left to certificate policies [RFC3647]. | |||
| However, the intended use of stateful HBS schemes as described by | However, the intended use of stateful HBS schemes as described by | |||
| [SP800208] can be used as a guideline: | [SP800208] can be used as a guideline: | |||
| | 1) it is necessary to implement a digital signature scheme in the | | stateful HBS schemes are primarily intended for applications with | |||
| | near future; 2) the implementation will have a long lifetime; and | | the following characteristics: 1) it is necessary to implement a | |||
| | 3) it would not be practical to transition to a different digital | | digital signature scheme in the near future; 2) the implementation | |||
| | signature scheme once the implementation has been deployed. | | will have a long lifetime; and 3) it would not be practical to | |||
| | transition to a different digital signature scheme once the | ||||
| | implementation has been deployed. | ||||
| In addition, since a stateful HBS private key can only generate a | In addition, since a stateful HBS private key can only generate a | |||
| finite number of signatures, use cases for stateful HBS public keys | finite number of signatures, use cases for stateful HBS public keys | |||
| in certificates should have a predictable range of the number of | in certificates should have a predictable range of the number of | |||
| signatures that will be generated, falling safely below the maximum | signatures that will be generated, falling safely below the maximum | |||
| number of signatures that a private key can generate. | number of signatures that a private key can generate. | |||
| Use cases where stateful HBS public keys in certificates may be | Use cases where stateful HBS public keys in certificates may be | |||
| appropriate due to the relatively small number of signatures | appropriate due to the relatively small number of signatures | |||
| generated and the signer's ability to enforce security restrictions | generated and the signer's ability to enforce security restrictions | |||
| on the signing environment include: | on the signing environment include: | |||
| * Firmware signing (see Section 1.1 of [SP800208], Table IV of | * Firmware signing (see Section 1.1 of [SP800208], [CNSA2.0], and | |||
| [CNSA2.0], and Section 6.7 of [BSI]) | Section 6.7 of [BSI]) | |||
| * Software signing (see Table IV of [CNSA2.0] and [ANSSI]) | * Software signing ([CNSA2.0] and [ANSSI]) | |||
| * Certification Authority (CA) certificates | * Certification Authority (CA) certificates | |||
| In each of these cases, the operator tightly controls their secured | In each of these cases, the operator tightly controls their secured | |||
| signing environment and can mitigate OTS key reuse by employing state | signing environment and can mitigate OTS key reuse by employing state | |||
| management strategies such as those in Section 10. Also, for secure | management strategies such as those in Section 10. Also, for secure | |||
| private key backup and restoration, adequate mechanisms have to be | private key backup and restoration, adequate mechanisms have to be | |||
| implemented (see Section 11). | implemented (see Section 11). | |||
| Generally speaking, stateful HBS public keys are not appropriate for | Generally speaking, stateful HBS public keys are not appropriate for | |||
| skipping to change at line 201 ¶ | skipping to change at line 203 ¶ | |||
| parameters ALGORITHM-TYPE. | parameters ALGORITHM-TYPE. | |||
| &Params({AlgorithmSet}{@algorithm}) OPTIONAL | &Params({AlgorithmSet}{@algorithm}) OPTIONAL | |||
| } | } | |||
| | NOTE: The above syntax is from [RFC5912] and is compatible with | | NOTE: The above syntax is from [RFC5912] and is compatible with | |||
| | the 2021 ASN.1 syntax [X680]. See [RFC5280] for the 1988 ASN.1 | | the 2021 ASN.1 syntax [X680]. See [RFC5280] for the 1988 ASN.1 | |||
| | syntax. | | syntax. | |||
| The fields in AlgorithmIdentifier have the following meanings: | The fields in AlgorithmIdentifier have the following meanings: | |||
| algorithm: this identifies the cryptographic algorithm with an | algorithm: this identifies the cryptographic algorithm with an OID. | |||
| object identifier. | ||||
| parameters: these are optional and are the associated parameters for | parameters: these are optional and are the associated parameters for | |||
| the algorithm identifier in the algorithm field. | the algorithm identifier in the algorithm field. | |||
| The parameters field of the AlgorithmIdentifier for HSS, XMSS, and | The parameters field of the AlgorithmIdentifier for HSS, XMSS, and | |||
| XMSS^MT public keys MUST be absent. | XMSS^MT public keys MUST be absent. | |||
| 4.1. HSS Algorithm Identifier | 4.1. HSS Algorithm Identifier | |||
| The object identifier and public key algorithm identifier for HSS is | The OID and public key algorithm identifier for HSS is defined in | |||
| defined in [RFC9708]. The definitions are repeated here for | [RFC9708]. The definitions are repeated here for reference. | |||
| reference. | ||||
| The AlgorithmIdentifier for an HSS public key MUST use the id-alg- | The AlgorithmIdentifier for an HSS public key MUST use the id-alg- | |||
| hss-lms-hashsig object identifier. | hss-lms-hashsig OID. | |||
| id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { | id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { | |||
| iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) | iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) | |||
| smime(16) alg(3) 17 } | smime(16) alg(3) 17 } | |||
| Note that the id-alg-hss-lms-hashsig algorithm identifier is also | Note that the id-alg-hss-lms-hashsig algorithm identifier is also | |||
| referred to as id-alg-mts-hashsig. This synonym is based on the | referred to as id-alg-mts-hashsig. This synonym is based on the | |||
| terminology used in an early draft of the document that became | terminology used in an early draft of the document that became | |||
| [RFC8554]. | [RFC8554]. | |||
| The public key and signature values identify the hash function and | The public key and signature values identify the hash function and | |||
| the height used in the HSS tree. [RFC8554] and [SP800208] define | the height used in the HSS tree. [RFC8554] and [SP800208] define | |||
| these values, and additional identifiers can be registered in the | these values, and additional identifiers can be registered in the | |||
| “Leighton-Micali Signatures (LMS)” registry [IANA-LMS]. | “Leighton-Micali Signatures (LMS)” registry [IANA-LMS]. | |||
| 4.2. XMSS Algorithm Identifier | 4.2. XMSS Algorithm Identifier | |||
| The AlgorithmIdentifier for an XMSS public key MUST use the id-alg- | The AlgorithmIdentifier for an XMSS public key MUST use the id-alg- | |||
| xmss-hashsig object identifier. | xmss-hashsig OID. | |||
| id-alg-xmss-hashsig OBJECT IDENTIFIER ::= { | id-alg-xmss-hashsig OBJECT IDENTIFIER ::= { | |||
| iso(1) identified-organization(3) dod(6) internet(1) | iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) algorithms(6) 34 } | security(5) mechanisms(5) pkix(7) algorithms(6) 34 } | |||
| The public key and signature values identify the hash function and | The public key and signature values identify the hash function and | |||
| the height used in the XMSS tree. [RFC8391] and [SP800208] define | the height used in the XMSS tree. [RFC8391] and [SP800208] define | |||
| these values, and additional identifiers can be registered in the | these values, and additional identifiers can be registered in the | |||
| “Leighton-Micali Signatures (LMS)” registry [IANA-XMSS]. | “Leighton-Micali Signatures (LMS)” registry [IANA-XMSS]. | |||
| 4.3. XMSS^MT Algorithm Identifier | 4.3. XMSS^MT Algorithm Identifier | |||
| The AlgorithmIdentifier for an XMSS^MT public key MUST use the id- | The AlgorithmIdentifier for an XMSS^MT public key MUST use the id- | |||
| alg-xmssmt-hashsig object identifier. | alg-xmssmt-hashsig OID. | |||
| id-alg-xmssmt-hashsig OBJECT IDENTIFIER ::= { | id-alg-xmssmt-hashsig OBJECT IDENTIFIER ::= { | |||
| iso(1) identified-organization(3) dod(6) internet(1) | iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) algorithms(6) 35 } | security(5) mechanisms(5) pkix(7) algorithms(6) 35 } | |||
| The public key and signature values identify the hash function and | The public key and signature values identify the hash function and | |||
| the height used in the XMSS^MT tree. [RFC8391] and [SP800208] define | the height used in the XMSS^MT tree. [RFC8391] and [SP800208] define | |||
| these values, and additional identifiers can be registered in the | these values, and additional identifiers can be registered in the | |||
| “Leighton-Micali Signatures (LMS)” registry [IANA-XMSS]. | “Leighton-Micali Signatures (LMS)” registry [IANA-XMSS]. | |||
| skipping to change at line 565 ¶ | skipping to change at line 565 ¶ | |||
| record and be able to unambiguously trace back all generated | record and be able to unambiguously trace back all generated | |||
| signatures. | signatures. | |||
| * Apply the state reservation strategy described in Section 5 of | * Apply the state reservation strategy described in Section 5 of | |||
| [MCGREW], where upcoming states are reserved in advance by the | [MCGREW], where upcoming states are reserved in advance by the | |||
| signer. In this way, the number of state synchronizations between | signer. In this way, the number of state synchronizations between | |||
| nonvolatile and volatile memory is reduced. | nonvolatile and volatile memory is reduced. | |||
| 11. Backup and Restore Management | 11. Backup and Restore Management | |||
| Certificate Authorities have high demands in order to ensure the | Certificate authorities have high demands in order to ensure the | |||
| availability of signature generation throughout the validity period | availability of signature generation throughout the validity period | |||
| of signing key pairs. | of signing key pairs. | |||
| Usual backup and restore strategies when using a stateless signature | Some usual backup and restore strategies when using a stateless | |||
| scheme (e.g., SLH-DSA) are to duplicate private keying material and | signature scheme (e.g., SLH-DSA) are to: | |||
| to operate redundant signing devices or to store and safeguard a copy | ||||
| of the private keying material such that it can be used to set up a | * duplicate private keying material and operate redundant signing | |||
| new signing device in case of technical difficulties. | devices. | |||
| * store and safeguard a copy of the private keying material such | ||||
| that it can be used to set up a new signing device in case of | ||||
| technical difficulties. | ||||
| For stateful HBS schemes, such straightforward backup and restore | For stateful HBS schemes, such straightforward backup and restore | |||
| strategies will lead to OTS reuse with high probability as a correct | strategies will lead to OTS reuse with high probability as a correct | |||
| state management is not guaranteed. Strategies for maintaining | state management is not guaranteed. Strategies for maintaining | |||
| availability and keeping a correct state are described in Section 7 | availability and keeping a correct state are described in Section 7 | |||
| of [SP800208] and [S-HBS]. | of [SP800208] and [S-HBS]. | |||
| 12. IANA Considerations | 12. IANA Considerations | |||
| IANA has registered the following object identifier for the ASN.1 | IANA has registered the following OID for the ASN.1 module (see | |||
| module (see Section 9) in the "SMI Security for PKIX Module | Section 9) in the "SMI Security for PKIX Module Identifier" | |||
| Identifier" (1.3.6.1.5.5.7.0) registry: | (1.3.6.1.5.5.7.0) registry: | |||
| +=========+========================+============+ | +=========+========================+============+ | |||
| | Decimal | Description | References | | | Decimal | Description | References | | |||
| +=========+========================+============+ | +=========+========================+============+ | |||
| | 114 | id-mod-pkix1-shbs-2024 | RFC 9802 | | | 114 | id-mod-pkix1-shbs-2024 | RFC 9802 | | |||
| +---------+------------------------+------------+ | +---------+------------------------+------------+ | |||
| Table 1 | Table 1 | |||
| IANA has registered the following entries in the "SMI Security for | IANA has registered the following entries in the "SMI Security for | |||
| skipping to change at line 682 ¶ | skipping to change at line 686 ¶ | |||
| Security of One-Time Signatures under Two-Message | Security of One-Time Signatures under Two-Message | |||
| Attacks.", Cryptology ePrint Archive, Paper 2016/1042, | Attacks.", Cryptology ePrint Archive, Paper 2016/1042, | |||
| 2016, <https://eprint.iacr.org/2016/1042>. | 2016, <https://eprint.iacr.org/2016/1042>. | |||
| [BSI] Bundesamt für Sicherheit in der Informationstechnik (BSI), | [BSI] Bundesamt für Sicherheit in der Informationstechnik (BSI), | |||
| "Quantum-safe cryptography – fundamentals, current | "Quantum-safe cryptography – fundamentals, current | |||
| developments and recommendations", 18 May 2022, | developments and recommendations", 18 May 2022, | |||
| <https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/ | <https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/ | |||
| Publications/Brochure/quantum-safe-cryptography.pdf>. | Publications/Brochure/quantum-safe-cryptography.pdf>. | |||
| [CNSA2.0] National Security Agency (NSA), "Commercial National | [CNSA2.0] National Security Agency (NSA), "The Commercial National | |||
| Security Algorithm Suite 2.0 (CNSA 2.0) Cybersecurity | Security Algorithm Suite 2.0 and Quantum Computing FAQ", 7 | |||
| Advisory (CSA)", 7 September 2022, | September 2022, <https://media.defense.gov/2022/ | |||
| <https://media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/ | Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF>. | |||
| CSA_CNSA_2.0_ALGORITHMS_.PDF>. | ||||
| [ETSI-TR-103-692] | [ETSI-TR-103-692] | |||
| European Telecommunications Standards Institute (ETSI), | European Telecommunications Standards Institute (ETSI), | |||
| "CYBER; State management for stateful authentication | "CYBER; State management for stateful authentication | |||
| mechanisms", ETSI TR 103 692 v1.1.1, November 2021, | mechanisms", ETSI TR 103 692 v1.1.1, November 2021, | |||
| <https://www.etsi.org/deliver/ | <https://www.etsi.org/deliver/ | |||
| etsi_tr/103600_103699/103692/01.01.01_60/ | etsi_tr/103600_103699/103692/01.01.01_60/ | |||
| tr_103692v010101p.pdf>. | tr_103692v010101p.pdf>. | |||
| [IANA-LMS] IANA, "Leighton-Micali Signatures (LMS)", | [IANA-LMS] IANA, "Leighton-Micali Signatures (LMS)", | |||
| skipping to change at line 1573 ¶ | skipping to change at line 1576 ¶ | |||
| UZJo8OzYX8RVoUzIEukFfgWTX/l2mYUYKSRgFF2zeflLfOQicYrCZkXSQRRdWUwK | UZJo8OzYX8RVoUzIEukFfgWTX/l2mYUYKSRgFF2zeflLfOQicYrCZkXSQRRdWUwK | |||
| tSurvcZQ+Ic3QubUlnLPRfDUvw3FF5/xuRJcqHSJnlYHz4+YmtrX23/H0DoKFM1a | tSurvcZQ+Ic3QubUlnLPRfDUvw3FF5/xuRJcqHSJnlYHz4+YmtrX23/H0DoKFM1a | |||
| ZgzrAnag1Fbm6L6h8Mcjs0+GkBpaFo4HDSTR7gOYnw== | ZgzrAnag1Fbm6L6h8Mcjs0+GkBpaFo4HDSTR7gOYnw== | |||
| -----END CERTIFICATE----- | -----END CERTIFICATE----- | |||
| Acknowledgments | Acknowledgments | |||
| Thanks to Russ Housley, Panos Kampanakis, Michael StJohns, and Corey | Thanks to Russ Housley, Panos Kampanakis, Michael StJohns, and Corey | |||
| Bonnell for their helpful suggestions and reviews. | Bonnell for their helpful suggestions and reviews. | |||
| This document uses a lot of text from similar documents [SP800208], | This document uses a lot of text from similar documents, including: | |||
| ([RFC3279] and [RFC8410]) as well as [RFC9708]. Thanks goes to the | [SP800208], [RFC3279] and [RFC8410], as well as [RFC9708]. Thanks | |||
| authors of those documents. "Copying always makes things easier and | goes to the authors of those documents. "Copying always makes things | |||
| less error prone" [RFC8411]. | easier and less error prone" [RFC8411]. | |||
| Authors' Addresses | Authors' Addresses | |||
| Daniel Van Geest | Daniel Van Geest | |||
| CryptoNext Security | CryptoNext Security | |||
| Email: daniel.vangeest@cryptonext-security.com | Email: daniel.vangeest@cryptonext-security.com | |||
| Kaveh Bashiri | Kaveh Bashiri | |||
| BSI | BSI | |||
| Email: kaveh.bashiri.ietf@gmail.com | Email: kaveh.bashiri.ietf@gmail.com | |||
| End of changes. 14 change blocks. | ||||
| 35 lines changed or deleted | 38 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||