idnits 2.17.1 draft-ietf-smime-pss-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 4) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Unrecognized Status in 'Category: Standards', assuming Proposed Standard (Expected one of 'Standards Track', 'Full Standard', 'Draft Standard', 'Proposed Standard', 'Best Current Practice', 'Informational', 'Experimental', 'Informational', 'Historic'.) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (November 2003) is 7468 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? '1' on line 13 looks like a reference -- Missing reference section? 'STDWORDS' on line 44 looks like a reference -- Missing reference section? 'CMS' on line 51 looks like a reference -- Missing reference section? 'RSA-ALGS' on line 111 looks like a reference -- Missing reference section? 'RANDOM' on line 169 looks like a reference Summary: 4 errors (**), 0 flaws (~~), 3 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 S/MIME Working Group J Schaad 3 Internet Draft Soaring Hawk Consulting 4 Document: draft-ietf-smime-pss-02.txt November 2003 5 Category: Standards 7 Use of the RSA PSS Signature Algorithm in CMS 9 Status of this Memo 11 This document is an Internet-Draft and is in full conformance with 12 all provisions of Section 10 of RFC2026 [1]. 14 Internet-Drafts are working documents of the Internet Engineering 15 Task Force (IETF), its areas, and its working groups. Note that 16 other groups may also distribute working documents as Internet- 17 Drafts. Internet-Drafts are draft documents valid for a maximum of 18 six months and may be updated, replaced, or obsoleted by other 19 documents at any time. It is inappropriate to use Internet- Drafts 20 as reference material or to cite them other than as "work in 21 progress." 23 The list of current Internet-Drafts can be accessed at 24 http://www.ietf.org/ietf/1id-abstracts.txt 26 The list of Internet-Draft Shadow Directories can be accessed at 27 http://www.ietf.org/shadow.html. 29 Comments or suggestions for improvement may be made on the "ietf- 30 smime" mailing list, or directly to the author. 32 Abstract 34 This document specifies the conventions for using the RSA 35 Probabilistic Signature Scheme (RSASSA-PSS) digital signature 36 algorithm with the Cryptographic Message Syntax (CMS). 38 Conventions used in this document 40 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 41 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in 42 this document are to be interpreted as described in RFC 2119 43 [STDWORDS]. 45 1. Overview 47 This document specifies the conventions for using the RSASSA-PSS (RSA 49 Signature Scheme with Appendix - Probabilistic Signature Scheme) 50 [P1v2.1] digital signature algorithm with the Cryptographic Message 51 Syntax [CMS] signed-data content type. 53 CMS and PSS Signature February 2003 55 CMS values are generated using ASN.1 [X.208-88], using the Basic 56 Encoding Rules (BER) [X.209-88] and the Distinguished Encoding Rules 57 (DER) [X.509-88]. 59 1.1 PSS Algorithm 61 Although there are no known defects with the PKCS #1 v1.5 [P1v1.5] 62 signature algorithm, RSASSA-PSS [P1v2.1] was developed in an effort 63 to have more mathematically provable security. PKCS #1 v1.5 64 signatures were developed in an ad hoc manner, RSASSA-PSS was 65 developed based on mathematical foundations. 67 2. Algorithm Identifiers and Parameters 69 2.1 Certificate Identifiers 71 The RSASSA-PSS signature algorithm is defined in RFC 3447 [P1v2.1]. 72 Conventions for encoding the public key are defined in RFC XXX [RSA- 73 ALGS]. 75 Two algorithm identifiers for RSA subject public keys in 76 certificates are used. These are: 78 rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 } 80 and 82 id-RSASSA-PSS OBJECT IDENTIFIER ::= { pkcs-1 10 } 84 When the rsaEncryption algorithm identifier is used for a public 85 key, the AlgorithmIdentifier parameters field MUST contain NULL. 86 Complete details can be found in [RSA-ALGS]. 88 When the id-RSASSA-PSS algorithm identifier is used for a public 89 key, the AlgorithmIdentifier parameters field MUST either be absent 90 or contain RSASSA-PSS-params. Again, complete details can be found 91 in [RSA-ALGS]. 93 In both cases, the RSA public key, which is composed of a modulus 94 and a public exponent, MUST be encoded using the RSAPublicKey type. 95 The output of this encoding is carried in the certificate subject 96 public key. 98 RSAPublicKey ::= SEQUENCE { 99 modulus INTEGER, -- n 100 publicExponent INTEGER } -- e 102 2.2 Signature Identifiers 104 The algorithm identifier for RSASAA-PSS signatures is: 106 id-RSASSA-PSS OBJECT IDENTIFER ::= {pkcs-1 10 } 107 CMS and PSS Signature February 2003 109 When the id-RSASSA-PSS algorithm identifier is used for a signature, 110 the AlgorithmIdentifier parameters field MUST contain RSASSA-PSS- 111 params. Information about RSASSA-PSS-params can be found in [RSA- 112 ALGS]. 114 When signing, the RSA algorithm generates a single value, and that 115 value is used directly as the signature value. 117 3. Signed-data Conventions 119 digestAlgorithms SHOULD contain the one-way hash function used to 120 compute the message digest on the eContent value. 122 The same one-way hash function SHOULD be used for computing the 123 message digest on both the eContent and the signedAttributes value 124 if signedAttributes exist. 126 The same one-way hash function SHOULD be used for computing the 127 message digest on the signedAttributes and as the hashAlgorithm in 128 the RSA-PSS-params structure. 130 signatureAlgorithm MUST contain id-RSASSA-PSS. The algorithm 131 parameters field MUST contain RSASSA-PSS-params. 133 signature contains the single value resulting from the signing 134 operation. 136 If the subjectPublicKeyInfo algorithm identifier for the public key 137 in the certificate is id-RSASSA-PSS and the parameters field is 138 present, the following additional steps MUST be done as part of 139 signature validation: 141 1. The hashAlgorithm field in the certificate 142 subjectPublicKey.algorithm parameters and the signatureAlgorithm 143 parameters MUST be the same. 144 2. The maskGenAlgorithm field in the certificate 145 subjectPublicKey.algorithm parameters and the signatureAlgorithm 146 parameters MUST be the same. 147 3. The saltLength in the signatureAlgorithm parameters MUST be 148 greater or equal to the saltLength in the certificate 149 subjectPublicKey.algorithm parameters. 150 4. The trailerField in the certificate subjectPublicKey.algorithm 151 parameters and signatureAlgorithm parameters MUST be the same. 153 In doing the above comparisons, default values are considered to be 154 the same as extant values. If any of the above four steps is not 155 true, the signature checking algorithm MUST fail validation. 157 4. Security Considerations 158 CMS and PSS Signature February 2003 160 Implementations must protect the RSA private key. Compromise of the 161 RSA private key may result in the ability to forge signatures. 163 The generation of RSA private key relies on random numbers. The use 164 of inadequate pseudo-random number generators (PRNGs) to generate 165 these values can result in little or no security. An attacker may 166 find it much easier to reproduce the PRNG environment that produced 167 the keys, searching the resulting small set of possibilities, rather 168 than brute force searching the whole key space. The generation of 169 quality random numbers is difficult. RFC 1750 [RANDOM] offers 170 important guidance in this area. 172 Using the same private key for different algorithms has the potential 174 of allowing an attacker to get extra information about the key. It 175 is strongly suggested that the same key not be used for both the PKCS 177 #1 v1.5 and RSASSA-PSS signature algorithms. 179 When computing signatures, the same hash function should be used for 180 all operations. This reduces the number of failure points in the 181 signature process. 183 5. Normative References 185 CMS Housley, R, "Cryptographic Message Syntax", 186 RFC 3369, August 2002. 188 P1v2.1 Jonsson, J., and B. Kaliski, "PKCS #1: RSA 189 Cryptography Specification Version 2.1", 190 RFC 3447, February 2003. 192 RSA-ALGS Schaad, J., B. Kaliski and R Housley, "Additional 193 Algorithms and Identifiers for RSA Cryptography 194 for use in the Internet X.509 Public Key 195 Infrastructure Certificate and Certificate 196 Revocation List (CRL) Profile", 197 draft-ietf-pkix-rsa-pkalgs-01.txt, 198 November 2003. 200 STDWORDS S. Bradner, "Key Words for Use in RFCs to 201 Indicate Requirement Levels", RFC 2119, March 202 1997. 204 X.208-88 CCITT Recommendation X.208: Specification of 205 Abstract Syntax Notation One (ASN.1), 1998. 207 X.209-88 CCITT Recommendation X.209: Specification of 208 Basic Encoding Rules for Abstract Syntax 209 Notation One (ASN.1), 1988. 211 X.509-88 CCITT Recommendation X.509: The Directory 212 Authentication Framework, 1988. 214 6. Informational References 215 CMS and PSS Signature February 2003 217 P1v1.5 Kaliski, B. and J. Staddon, "PKCS #1: RSA Encryption, 218 Version 2.0, RFC 2437, October 1998. 220 PKALGS Polk, W, R Housley, L. Bassham, "Algorithms and Identifiers 221 for the Internet X.509 Public Key Infrastructure 222 Certificate and Certificate Revocation List (CRL) Profile", 223 RFC 3279, April 2002. 225 RANDOM Eastlake, D., S. Crocker and J. Schiller 226 "Randomness Recommendations for Security", 227 RFC 1750, December 1994. 229 7. Author's Address 231 Jim Schaad 232 Soaring Hawk Consulting 233 PO Box 675 234 Gold Bar, WA 98251 236 Email: jimsch@exmsft.com 238 Full Copyright Statement 240 "Copyright (C) The Internet Society (2003). All Rights Reserved. 242 This document and translations of it may be copied and furnished to 243 others, and derivative works that comment on or otherwise explain it 244 or assist in its implementation may be prepared, copied, published 245 and distributed, in whole or in part, without restriction of any 246 kind, provided that the above copyright notice and this paragraph 247 are included on all such copies and derivative works. However, this 248 document itself may not be modified in any way, such as by removing 249 the copyright notice or references to the Internet Society or other 250 Internet organizations, except as needed for the purpose of 251 developing Internet standards in which case the procedures for 252 copyrights defined in the Internet Standards process must be 253 followed, or as required to translate it into languages other than 254 English. 256 The limited permissions granted above are perpetual and will not be 257 revoked by the Internet Society or its successors or assigns.