RFC 5758
Internet X.509 Public Key Infrastructure: Additional Algorithms and Identifiers for DSA and ECDSA
Internet X.509 Public Key Infrastructure: Additional Algorithms and Identifiers for DSA and ECDSA (part 1 of 2 π)
Okay bestie, this is RFC 5758 π¦, a Standards Track doc from January 2010 (ISSN 2070-1721). It was written by Q. Dang (NIST), S. Santesson (3xA Security), K. Moriarty (EMC), D. Brown (Certicom Corp.), and T. Polk (NIST). It updates RFC 3279 β¨, and it's all about how DSA and ECDSA signatures get written into X.509 certificates and CRLs when they're hashed with SHA2. Main character energy, fr π
Abstract πΈ
Okay so this doc updates RFC 3279 to spell out the algorithm identifiers and ASN.1 encoding rules for DSA (Digital Signature Algorithm) and ECDSA (Elliptic Curve Digital Signature Algorithm) signatures when the hash is SHA-224, SHA-256, SHA-384, or SHA-512. It applies to the Internet X.509 Public Key Infrastructure (PKI) whenever digital signatures are used to sign certificates and certificate revocation lists (CRLs). It also names all four SHA2 hash algorithms as ones you can use in the Internet X.509 PKI π«Ά
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 5741 π
For the current status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc5758 π
Copyright Notice π
Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they were in effect on the date this document was published. Please read these carefully, because they spell out your rights and restrictions for this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they're provided without warranty as described in the Simplified BSD License π
Table of Contents π
1. Introduction ....................................................2
2. Hash Functions ..................................................3
3. Signature Algorithms ............................................3
3.1. DSA Signature Algorithm ....................................4
3.2. ECDSA Signature Algorithm ..................................4
4. ASN.1 Module ....................................................5
5. Security Considerations .........................................6
6. References ......................................................6
6.1. Normative References .......................................6
6.2. Informative References .....................................7
7. Acknowledgements ................................................7
1. Introduction β¨
Okay so this spec defines what goes into the signatureAlgorithm, signatureValue, and signature fields inside Internet X.509 certificates and CRLs when they're signed with DSA or ECDSA using a SHA2 hash. Those fields get a fuller explanation in RFC 5280 [RFC5280]. This doc also names all four SHA2 hash algorithms for the Internet X.509 PKI π
It profiles material from the "Secure Hash Standard" [FIPS180-3], "Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Standard (ECDSA)" [X9.62], and the "Digital Signature Standard" [FIPS186-3] π₯
This document updates RFC 3279 [RFC3279] Sections 2.1, 2.2.2, and 2.2.3. Also, RFC 5480 [RFC5480] updates Sections 2.3.5, 3 (ASN.1 Module), and 5 (Security Considerations) of RFC 3279 π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] π«Ά
2. Hash Functions πΈ
This section adds four more hash algorithms for use with DSA and ECDSA in the Internet X.509 certificate and CRL profile [RFC5280]. SHA-224, SHA-256, SHA-384, and SHA-512 produce a 224-bit, 256-bit, 384-bit, and 512-bit "hash" of the input, respectively, and they're fully described in the "Secure Hash Standard" [FIPS180-3] β
These one-way hash functions are identified by the following object identifiers (OIDs) π¦
id-sha224 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
country(16) us(840) organization(1) gov(101) csor(3)
nistalgorithm(4) hashalgs(2) 4 }
id-sha256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
country(16) us(840) organization(1) gov(101) csor(3)
nistalgorithm(4) hashalgs(2) 1 }
id-sha384 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
country(16) us(840) organization(1) gov(101) csor(3)
nistalgorithm(4) hashalgs(2) 2 }
id-sha512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
country(16) us(840) organization(1) gov(101) csor(3)
nistalgorithm(4) hashalgs(2) 3 }
When one of these OIDs shows up in an AlgorithmIdentifier, all implementations MUST accept both NULL and absent parameters as legal and equivalent encodings. Yes, both work, no drama π
Conforming certification authority (CA) implementations SHOULD use SHA-224, SHA-256, SHA-384, or SHA-512 when they generate certificates or CRLs. They MAY use SHA-1, but only if they have a stated policy that requires the use of this weaker algorithm π
3. Signature Algorithms π
This section gives OIDs for DSA with SHA-224 and SHA-256, plus ECDSA with SHA-224, SHA-256, SHA-384, and SHA-512. The parameters component is different for each signature algorithm, so each one gets its own details π
3.1. DSA Signature Algorithm π
DSA is defined in the Digital Signature Standard (DSS) [FIPS186-3]. The U.S. Government developed it, and it can be used with a SHA2 hash function like SHA-224 or SHA-256. DSA is fully described in [FIPS186-3] β¨
When SHA-224 is used, the OID is:
id-dsa-with-sha224 OBJECT IDENTIFIER ::= { joint-iso-ccitt(2)
country(16) us(840) organization(1) gov(101) csor(3)
algorithms(4) id-dsa-with-sha2(3) 1 }.
When SHA-256 is used, the OID is:
id-dsa-with-sha256 OBJECT IDENTIFIER ::= { joint-iso-ccitt(2)
country(16) us(840) organization(1) gov(101) csor(3)
algorithms(4) id-dsa-with-sha2(3) 2 }.
When id-dsa-with-sha224 or id-dsa-with-sha256 shows up in the algorithm field as an AlgorithmIdentifier, the encoding SHALL omit the parameters field. In other words, the AlgorithmIdentifier SHALL be a SEQUENCE of one component: the OID id-dsa-with-sha224 or id-dsa-with-sha256 π§
Encoding rules for DSA signature values are specified in [RFC3279] π
Conforming CA implementations that generate DSA signatures for certificates or CRLs MUST generate those signatures in accordance with all the requirements in Sections 4.1, 4.5, and 4.6 of [FIPS186-3] π₯
Conforming CA implementations that generate DSA signatures for certificates or CRLs MAY generate those signatures in accordance with all the requirements and recommendations in [FIPS186-3], but only if they have a stated policy that requires conformance to [FIPS186-3] π
3.2. ECDSA Signature Algorithm π¦
The Elliptic Curve Digital Signature Algorithm (ECDSA) is defined in "Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Standard (ECDSA)" [X9.62]. The ASN.1 OIDs that say an ECDSA signature was generated using SHA-224, SHA-256, SHA-384, or SHA-512 are, in that order: πΈ
ecdsa-with-SHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 1 }
ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2 }
ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 3 }
ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4 }
When ecdsa-with-SHA224, ecdsa-with-SHA256, ecdsa-with-SHA384, or ecdsa-with-SHA512 shows up in the algorithm field as an AlgorithmIdentifier, the encoding MUST omit the parameters field. That means the AlgorithmIdentifier SHALL be a SEQUENCE of one component, the OID ecdsa-with-SHA224, ecdsa-with-SHA256, ecdsa-with-SHA384, or ecdsa-with-SHA512 β
Conforming CA implementations MUST specify the hash algorithm explicitly, using the OIDs above, when they encode ECDSA/SHA2 signatures in certificates and CRLs π
Conforming client implementations that process ECDSA signatures with any of the SHA2 hash algorithms when processing certificates and CRLs MUST recognize the corresponding OIDs specified above π«Ά
Encoding rules for ECDSA signature values are specified in RFC 3279 [RFC3279], Section 2.2.3, and RFC 5480 [RFC5480] π
Conforming CA implementations that generate ECDSA signatures in certificates or CRLs MUST generate those signatures in accordance with all the requirements specified in Sections 7.2 and 7.3 of [X9.62], or with all the requirements specified in Section 4.1.3 of [SEC1] π₯
Conforming CA implementations that ECDSA signatures in certificates or CRLs MAY generate those signatures in accordance with all the requirements and recommendations in [X9.62] or [SEC1], but only if they have a stated policy that requires conformance to [X9.62] or [SEC1] π
6.1. Normative References πβ¨
These are the must-read sources that the whole spec leans on, bestie π€
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279, April 2002.
- [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional Algorithms and Identifiers for RSA Cryptography for use in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 4055, June 2005.
- [RFC5480] Turner, S., Brown, D., Yiu, K., Housley, R., and T. Polk, "Elliptic Curve Cryptography Subject Public Key Information", RFC 5480, March 2009.
- [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, May 2008.
- [FIPS180-3] Federal Information Processing Standards Publication (FIPS PUB) 180-3, Secure Hash Standard (SHS), October 2008.
- [FIPS186-3] Federal Information Processing Standards Publication (FIPS PUB) 186-3, Digital Signature Standard (DSS), June 2009.
- [SEC1] Standards for Efficient Cryptography Group (SECG), SEC 1: Elliptic Curve Cryptography, Version 2.0, 2009.
- [X9.62] X9.62-2005, "Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Standard (ECDSA)", November, 2005.
6.2. Informative References πΈ
These ones are extra reading that gives you more context, but the spec doesn't need them to work π
- [SP800-107] Quynh Dang, NIST, "Recommendation for Applications Using Approved Hash Algorithms", February 2009.
- [SP800-78-1] W. Timothy Polk, Donna, F. Dodson, William E. Burr, NIST, "Cryptographic Standards and Key Sizes for Personal Identity Verification", August 2007.
- [SP800-57] Elaine Barker, William Barker, William E. Burr, NIST, "Recommendation for Key Management", August 2005.
7. Acknowledgements π«Ά
The authors gave a huge shoutout to Alfred Hoenes, Sean Turner, Katrin Hoeper, and so many other people from the IETF community for their amazing inputs π They also thanked Russ Housley and Paul Hoffman for a bunch of great revision suggestions. Iconic team behavior π
Authors' Addresses π
Here's how to reach the authors, if you ever want to slide into their inbox about this spec π¬
Quynh Dang
NIST
100 Bureau Drive, Stop 8930
Gaithersburg, MD 20899-8930
USA
EMail: quynh.dang@nist.gov
Stefan Santesson
3xA Security (AAA-sec.com)
Bjornstorp 744
247 98 Genarp
Sweden
EMail: sts@aaa-sec.com
Kathleen M. Moriarty
RSA, The Security Division of EMC
174 Middlesex Turnpike
Bedford, MA 01730
USA
EMail: Moriarty_Kathleen@emc.com
Daniel R. L. Brown
Certicom Corp.
5520 Explorer Drive
Mississaug, ON L4W 5L1
USA
EMail: dbrown@certicom.com
Tim Polk
NIST
100 Bureau Drive, Stop 8930
Gaithersburg, MD 20899-8930
USA
EMail: tim.polk@nist.gov
That's the whole RFC, bestie! ππ¦ Slay β¨
π¦ where this page comes from
- ietf: rfc5758 2010-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms