| rfc3850.txt | draft-ietf-smime-3850bis-08.txt | |||
|---|---|---|---|---|
| S/MIME WG Blake Ramsdell, Brute Squad Labs | ||||
| Internet Draft Sean Turner, IECA | ||||
| Intended Status: Standard Track October 2, 2008 | ||||
| Obsoletes: 3850 (once approved) | ||||
| Expires: April 2, 2009 | ||||
| Network Working Group B. Ramsdell, Editor | Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 | |||
| Request for Comments: 3850 Sendmail, Inc. | ||||
| Category: Standards Track | ||||
| Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 | ||||
| Certificate Handling | Certificate Handling | |||
| draft-ietf-smime-3850bis-08.txt | ||||
| Status of this Memo | Status of this Memo | |||
| This document specifies an Internet standards track protocol for the | By submitting this Internet-Draft, each author represents that any | |||
| Internet community, and requests discussion and suggestions for | applicable patent or other IPR claims of which he or she is aware | |||
| improvements. Please refer to the current edition of the "Internet | have been or will be disclosed, and any of which he or she becomes | |||
| Official Protocol Standards" (STD 1) for the standardization state | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| and status of this protocol. Distribution of this memo is unlimited. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF), its areas, and its working groups. Note that | ||||
| other groups may also distribute working documents as Internet- | ||||
| Drafts. | ||||
| 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." | ||||
| The list of current Internet-Drafts can be accessed at | ||||
| http://www.ietf.org/ietf/1id-abstracts.txt | ||||
| The list of Internet-Draft Shadow Directories can be accessed at | ||||
| http://www.ietf.org/shadow.html | ||||
| This Internet-Draft will expire on April 2, 2008. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2004). | Copyright (C) The IETF Trust (2008). | |||
| Abstract | Abstract | |||
| This document specifies conventions for X.509 certificate usage by | This document specifies conventions for X.509 certificate usage by | |||
| Secure/Multipurpose Internet Mail Extensions (S/MIME) agents. S/MIME | Secure/Multipurpose Internet Mail Extensions (S/MIME) agents. S/MIME | |||
| provides a method to send and receive secure MIME messages, and | provides a method to send and receive secure MIME messages, and | |||
| certificates are an integral part of S/MIME agent processing. S/MIME | certificates are an integral part of S/MIME agent processing. S/MIME | |||
| agents validate certificates as described in RFC 3280, the Internet | agents validate certificates as described in RFC 5280, the Internet | |||
| X.509 Public Key Infrastructure Certificate and CRL Profile. S/MIME | X.509 Public Key Infrastructure Certificate and CRL Profile. S/MIME | |||
| agents must meet the certificate processing requirements in this | agents must meet the certificate processing requirements in this | |||
| document as well as those in RFC 3280. | document as well as those in RFC 5280. This document obsoletes RFC | |||
| 3850. | ||||
| Discussion | ||||
| This draft is being discussed on the 'ietf-smime' mailing list. To | ||||
| subscribe, send a message to ietf-smime-request@imc.org with the | ||||
| single word subscribe in the body of the message. There is a Web site | ||||
| for the mailing list at <http://www.imc.org/ietf-smime/>. | ||||
| Table of Contents | Table of Contents | |||
| 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction...................................................2 | |||
| 1.1. Definitions. . . . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Definitions...............................................3 | |||
| 1.2. Compatibility with Prior Practice of S/MIME. . . . . . . 3 | 1.2. Conventions used in this document.........................4 | |||
| 1.3. Terminology. . . . . . . . . . . . . . . . . . . . . . . 3 | 1.3. Compatibility with Prior Practice S/MIME..................4 | |||
| 1.4. Changes Since S/MIME v3 (RFC 2632) . . . . . . . . . . . 3 | 1.4. Changes From S/MIME v3 to S/MIME v3.1.....................4 | |||
| 2. CMS Options. . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.5. Changes Since S/MIME v3.1.................................5 | |||
| 2.1 . CertificateRevocationLists . . . . . . . . . . . . . . . 4 | 2. CMS Options....................................................6 | |||
| 2.2. CertificateChoices . . . . . . . . . . . . . . . . . . . 4 | 2.1. Certificate Revocation Lists..............................6 | |||
| 2.3. CertificateSet . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Certificate Choices.......................................6 | |||
| 3. Using Distinguished Names for Internet Mail . . . . . . . . . . 6 | 2.2.1. Historical Note About CMS Certificates...............6 | |||
| 4. Certificate Processing . . . . . . . . . . . . . . . . . . . . 7 | 2.3. CertificateSet............................................7 | |||
| 4.1. Certificate Revocation Lists . . . . . . . . . . . . . . 8 | 3. Using Distinguished Names For Internet Mail....................8 | |||
| 4.2. Certification Path Validation. . . . . . . . . . . . . . 8 | 4. Certificate Processing.........................................9 | |||
| 4.3. Certificate and CRL Signing Algorithms . . . . . . . . . 9 | 4.1. Certificate Revocation Lists.............................10 | |||
| 4.4. PKIX Certificate Extensions. . . . . . . . . . . . . . . 9 | 4.2. Certificate Path Validation..............................10 | |||
| 5. Security Considerations. . . . . . . . . . . . . . . . . . . . 11 | 4.3. Certificate and CRL Signing Algorithms and Key Sizes.....11 | |||
| A. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 4.4. PKIX Certificate Extensions..............................12 | |||
| A.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 5. IANA Considerations...........................................14 | |||
| A.2. Informative References . . . . . . . . . . . . . . . . . 14 | 6. Security Considerations.......................................14 | |||
| B. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15 | 7. References....................................................16 | |||
| C. Editor's Address . . . . . . . . . . . . . . . . . . . . . . . 15 | 7.1. Normative References.....................................16 | |||
| Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 16 | 7.2. Informative References...................................18 | |||
| Appendix A. Moving S/MIME v2 Certificate Handling to Historic | ||||
| Status...............................................20 | ||||
| Appendix B. Acknowledgements.....................................20 | ||||
| 1. Overview | 1. Introduction | |||
| S/MIME (Secure/Multipurpose Internet Mail Extensions), described in | S/MIME (Secure/Multipurpose Internet Mail Extensions), described in | |||
| [SMIME-MSG], provides a method to send and receive secure MIME | [SMIME-MSG], provides a method to send and receive secure MIME | |||
| messages. Before using a public key to provide security services, | messages. Before using a public key to provide security services, | |||
| the S/MIME agent MUST verify that the public key is valid. S/MIME | the S/MIME agent MUST verify that the public key is valid. S/MIME | |||
| agents MUST use PKIX certificates to validate public keys as | agents MUST use PKIX certificates to validate public keys as | |||
| described in the Internet X.509 Public Key Infrastructure (PKIX) | described in the Internet X.509 Public Key Infrastructure (PKIX) | |||
| Certificate and CRL Profile [KEYM]. S/MIME agents MUST meet the | Certificate and CRL Profile [KEYM]. S/MIME agents MUST meet the | |||
| certificate processing requirements documented in this document in | certificate processing requirements documented in this document in | |||
| addition to those stated in [KEYM]. | addition to those stated in [KEYM]. | |||
| This specification is compatible with the Cryptographic Message | This specification is compatible with the Cryptographic Message | |||
| Syntax [CMS] in that it uses the data types defined by CMS. It also | Syntax (CMS) RFC 3852 and RFC 4853 [CMS] in that it uses the data | |||
| inherits all the varieties of architectures for certificate-based key | types defined by CMS. It also inherits all the varieties of | |||
| management supported by CMS. | architectures for certificate-based key management supported by CMS. | |||
| 1.1. Definitions | 1.1. Definitions | |||
| For the purposes of this document, the following definitions apply. | For the purposes of this document, the following definitions apply. | |||
| ASN.1: Abstract Syntax Notation One, as defined in ITU-T X.208 | ASN.1: Abstract Syntax Notation One, as defined in ITU-T X.680 | |||
| [X.208-88]. | [X.680]. | |||
| Attribute Certificate (AC): An X.509 AC is a separate structure from | Attribute Certificate (AC): An X.509 AC is a separate structure from | |||
| a subject's public key X.509 Certificate. A subject may have | a subject's public key X.509 Certificate. A subject may have | |||
| multiple X.509 ACs associated with each of its public key X.509 | multiple X.509 ACs associated with each of its public key X.509 | |||
| Certificates. Each X.509 AC binds one or more Attributes with one of | Certificates. Each X.509 AC binds one or more Attributes with one of | |||
| the subject's public key X.509 Certificates. The X.509 AC syntax is | the subject's public key X.509 Certificates. The X.509 AC syntax is | |||
| defined in [ACAUTH]. | defined in [ACAUTH]. | |||
| Certificate: A type that binds an entity's name to a public key with | Certificate: A type that binds an entity's name to a public key with | |||
| a digital signature. This type is defined in the Internet X.509 | a digital signature. This type is defined in the Internet X.509 | |||
| skipping to change at page 3, line 13 | skipping to change at page 3, line 45 | |||
| also defined in that document. | also defined in that document. | |||
| Certificate Revocation List (CRL): A type that contains information | Certificate Revocation List (CRL): A type that contains information | |||
| about certificates whose validity an issuer has prematurely revoked. | about certificates whose validity an issuer has prematurely revoked. | |||
| The information consists of an issuer name, the time of issue, the | The information consists of an issuer name, the time of issue, the | |||
| next scheduled time of issue, a list of certificate serial numbers | next scheduled time of issue, a list of certificate serial numbers | |||
| and their associated revocation times, and extensions as defined in | and their associated revocation times, and extensions as defined in | |||
| [KEYM]. The CRL is signed by the issuer. The type intended by this | [KEYM]. The CRL is signed by the issuer. The type intended by this | |||
| specification is the one defined in [KEYM]. | specification is the one defined in [KEYM]. | |||
| Receiving agent: software that interprets and processes S/MIME CMS | Receiving agent: Software that interprets and processes S/MIME CMS | |||
| objects, MIME body parts that contain CMS objects, or both. | objects, MIME body parts that contain CMS objects, or both. | |||
| Sending agent: software that creates S/MIME CMS objects, MIME body | Sending agent: Software that creates S/MIME CMS objects, MIME body | |||
| parts that contain CMS objects, or both. | parts that contain CMS objects, or both. | |||
| S/MIME agent: user software that is a receiving agent, a sending | S/MIME agent: User software that is a receiving agent, a sending | |||
| agent, or both. | agent, or both. | |||
| 1.2. Compatibility with Prior Practice of S/MIME | 1.2. Conventions used in this document | |||
| S/MIME version 3.1 agents should attempt to have the greatest | ||||
| interoperability possible with agents for prior versions of S/MIME. | ||||
| S/MIME version 2 is described in RFC 2311 through RFC 2315, inclusive | ||||
| and S/MIME version 3 is described in RFC 2630 through RFC 2634 | ||||
| inclusive. RFC 2311 also has historical information about the | ||||
| development of S/MIME. | ||||
| 1.3. Terminology | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [MUSTSHOULD]. | document are to be interpreted as described in [MUSTSHOULD]. | |||
| 1.4. Changes Since S/MIME v3 (RFC 2632) | We define some additional terms here: | |||
| SHOULD+ This term means the same as SHOULD. However, the authors | ||||
| expect that a requirement marked as SHOULD+ will be promoted at | ||||
| some future time to be a MUST. | ||||
| SHOULD- This term means the same as SHOULD. However, the authors | ||||
| expect that a requirement marked as SHOULD- will be demoted to a | ||||
| MAY in a future version of this document. | ||||
| MUST- This term means the same as MUST. However, the authors | ||||
| expect that this requirement will no longer be a MUST in a future | ||||
| document. Although its status will be determined at a later | ||||
| time, it is reasonable to expect that if a future revision of a | ||||
| document alters the status of a MUST- requirement, it will remain | ||||
| at least a SHOULD or a SHOULD-. | ||||
| 1.3. Compatibility with Prior Practice S/MIME | ||||
| S/MIME version 3.2 agents should attempt to have the greatest | ||||
| interoperability possible with agents for prior versions of S/MIME. | ||||
| S/MIME version 2 is described in RFC 2311 through RFC 2315 inclusive | ||||
| [SMIMEv2], S/MIME version 3 is described in RFC 2630 through RFC 2634 | ||||
| inclusive and RFC 5035 [SMIMEv3], and S/MIME version 3.1 is described | ||||
| in RFC 3850, RFC 3851, RFC 3852, RFC 2634, RFC4853, and RFC 5035 | ||||
| [SMIMEv3.1]. RFC 2311 also has historical information about the | ||||
| development of S/MIME. | ||||
| 1.4. Changes From S/MIME v3 To S/MIME v3.1 | ||||
| Version 1 and Version 2 CRLs MUST be supported. | Version 1 and Version 2 CRLs MUST be supported. | |||
| Multiple CA certificates with the same subject and public key, but | Multiple CA certificates with the same subject and public key, but | |||
| with overlapping validity periods, MUST be supported. | with overlapping validity periods, MUST be supported. | |||
| Version 2 attribute certificates SHOULD be supported, and version 1 | Version 2 attribute certificates SHOULD be supported, and version 1 | |||
| attributes certificates MUST NOT be used. | attributes certificates MUST NOT be used. | |||
| The use of the MD2 digest algorithm for certificate signatures is | The use of the MD2 digest algorithm for certificate signatures is | |||
| skipping to change at page 4, line 14 | skipping to change at page 5, line 21 | |||
| Receiving agents SHOULD display certificate information when | Receiving agents SHOULD display certificate information when | |||
| displaying the results of signature verification. | displaying the results of signature verification. | |||
| Receiving agents MUST NOT accept a signature made with a certificate | Receiving agents MUST NOT accept a signature made with a certificate | |||
| that does not have the digitalSignature or nonRepudiation bit set. | that does not have the digitalSignature or nonRepudiation bit set. | |||
| Clarifications for the interpretation of the key usage and extended | Clarifications for the interpretation of the key usage and extended | |||
| key usage extensions. | key usage extensions. | |||
| 1.5. Changes Since S/MIME v3.1 | ||||
| Conventions Used in This Document: Moved to section 1.2. Added | ||||
| definitions for SHOULD+, SHOULD-, and MUST-. | ||||
| Sec 1.1: Updated ASN.1 definition and reference. | ||||
| Sec 1.3: Added text about v3.1 RFCs. | ||||
| Sec 3: Updated note to indicate emailAddress IA5String upper bound is | ||||
| 255 characters. | ||||
| Sec 4.2: Added text to indicate how S/MIME agents locate the correct | ||||
| user certificate. | ||||
| Sec 4.3: RSA with SHA-256 (PKCS #1 v1.5) added as MUST, DSA with SHA- | ||||
| 256 added as SHOULD+, RSA with SHA-1, DSA with SHA-1, and RSA with | ||||
| MD5 changed to SHOULD-, and RSA-PSS with SHA-256 added as SHOULD+. | ||||
| Updated key sizes and changed pointer to PKIX RFCs. | ||||
| Sec 4.4.1: Aligned with PKIX on use of basic constraints extension in | ||||
| CA certificates. Clarified which extension is used to constrain EEs | ||||
| from using their keys to perform issuing authority operations. | ||||
| Sec 6: Updated security considerations. | ||||
| Sec 7: Moved references from Appendix B to section 7. Updated the | ||||
| references. | ||||
| Appendix A: Moved Appendix A to Appendix B. Added Appendix A to move | ||||
| S/MIME v2 Certificate Handling to Historic Status. | ||||
| 2. CMS Options | 2. CMS Options | |||
| The CMS message format allows for a wide variety of options in | The CMS message format allows for a wide variety of options in | |||
| content and algorithm support. This section puts forth a number of | content and algorithm support. This section puts forth a number of | |||
| support requirements and recommendations in order to achieve a base | support requirements and recommendations in order to achieve a base | |||
| level of interoperability among all S/MIME implementations. Most of | level of interoperability among all S/MIME implementations. Most of | |||
| the CMS format for S/MIME messages is defined in [SMIME-MSG]. | the CMS format for S/MIME messages is defined in [SMIME-MSG]. | |||
| 2.1. CertificateRevocationLists | 2.1. CertificateRevocationLists | |||
| skipping to change at page 4, line 39 | skipping to change at page 6, line 30 | |||
| All agents MUST be capable of performing revocation checks using CRLs | All agents MUST be capable of performing revocation checks using CRLs | |||
| as specified in [KEYM]. All agents MUST perform revocation status | as specified in [KEYM]. All agents MUST perform revocation status | |||
| checking in accordance with [KEYM]. Receiving agents MUST recognize | checking in accordance with [KEYM]. Receiving agents MUST recognize | |||
| CRLs in received S/MIME messages. | CRLs in received S/MIME messages. | |||
| Agents SHOULD store CRLs received in messages for use in processing | Agents SHOULD store CRLs received in messages for use in processing | |||
| later messages. | later messages. | |||
| 2.2. CertificateChoices | 2.2. CertificateChoices | |||
| Receiving agents MUST support v1 X.509 and v3 X.509 identity | Receiving agents MUST support v1 X.509 and v3 X.509 certificates as | |||
| certificates as profiled in [KEYM]. End entity certificates MAY | profiled in [KEYM]. End entity certificates MAY include an Internet | |||
| include an Internet mail address, as described in section 3. | mail address, as described in section 3. | |||
| Receiving agents SHOULD support X.509 version 2 attribute | Receiving agents SHOULD support X.509 version 2 attribute | |||
| certificates. See [ACAUTH] for details about the profile for | certificates. See [ACAUTH] for details about the profile for | |||
| attribute certificates. | attribute certificates. | |||
| 2.2.1. Historical Note About CMS Certificates | 2.2.1. Historical Note About CMS Certificates | |||
| The CMS message format supports a choice of certificate formats for | The CMS message format supports a choice of certificate formats for | |||
| public key content types: PKIX, PKCS #6 Extended Certificates [PKCS6] | public key content types: PKIX, PKCS #6 Extended Certificates [PKCS6] | |||
| and PKIX Attribute Certificates. | and PKIX Attribute Certificates. | |||
| skipping to change at page 5, line 45 | skipping to change at page 7, line 37 | |||
| certificate distribution. Receiving S/MIME agents SHOULD be able to | certificate distribution. Receiving S/MIME agents SHOULD be able to | |||
| handle messages without certificates using a database or directory | handle messages without certificates using a database or directory | |||
| lookup scheme. | lookup scheme. | |||
| A sending agent SHOULD include at least one chain of certificates up | A sending agent SHOULD include at least one chain of certificates up | |||
| to, but not including, a Certificate Authority (CA) that it believes | to, but not including, a Certificate Authority (CA) that it believes | |||
| that the recipient may trust as authoritative. A receiving agent | that the recipient may trust as authoritative. A receiving agent | |||
| MUST be able to handle an arbitrarily large number of certificates | MUST be able to handle an arbitrarily large number of certificates | |||
| and chains. | and chains. | |||
| Agents MAY send CA certificates, that is, certificates which can be | Agents MAY send CA certificates, that is, cross-certificates, self- | |||
| considered the "root" of other chains, and which MAY be self-signed. | issued certificates, and self-signed certificates. Note that | |||
| Note that receiving agents SHOULD NOT simply trust any self-signed | receiving agents SHOULD NOT simply trust any self-signed certificates | |||
| certificates as valid CAs, but SHOULD use some other mechanism to | as valid CAs, but SHOULD use some other mechanism to determine if | |||
| determine if this is a CA that should be trusted. Also note that | this is a CA that should be trusted. Also note that when | |||
| when certificates contain DSA public keys the parameters may be | certificates contain DSA public keys the parameters may be located in | |||
| located in the root certificate. This would require that the | the root certificate. This would require that the recipient possess | |||
| recipient possess both the end-entity certificate as well as the root | both the end-entity certificate as well as the root certificate to | |||
| certificate to perform a signature verification, and is a valid | perform a signature verification, and is a valid example of a case | |||
| example of a case where transmitting the root certificate may be | where transmitting the root certificate may be required. | |||
| required. | ||||
| Receiving agents MUST support chaining based on the distinguished | Receiving agents MUST support chaining based on the distinguished | |||
| name fields. Other methods of building certificate chains MAY be | name fields. Other methods of building certificate chains MAY be | |||
| supported. | supported. | |||
| Receiving agents SHOULD support the decoding of X.509 attribute | Receiving agents SHOULD support the decoding of X.509 attribute | |||
| certificates included in CMS objects. All other issues regarding the | certificates included in CMS objects. All other issues regarding the | |||
| generation and use of X.509 attribute certificates are outside of the | generation and use of X.509 attribute certificates are outside of the | |||
| scope of this specification. One specification that addresses | scope of this specification. One specification that addresses | |||
| attribute certificate use is defined in [SECLABEL]. | attribute certificate use is defined in [SECLABEL]. | |||
| 3. Using Distinguished Names for Internet Mail | 3. Using Distinguished Names For Internet Mail | |||
| End-entity certificates MAY contain an Internet mail address as | End-entity certificates MAY contain an Internet mail address as | |||
| described in [RFC-2822]. The address must be an "addr-spec" as | described in [IMF]. The address must be an "addr-spec" as defined in | |||
| defined in Section 3.4.1 of that specification. The email address | Section 3.4.1 of that specification. The email address SHOULD be in | |||
| SHOULD be in the subjectAltName extension, and SHOULD NOT be in the | the subjectAltName extension, and SHOULD NOT be in the subject | |||
| subject distinguished name. | distinguished name. | |||
| Receiving agents MUST recognize and accept certificates that contain | Receiving agents MUST recognize and accept certificates that contain | |||
| no email address. Agents are allowed to provide an alternative | no email address. Agents are allowed to provide an alternative | |||
| mechanism for associating an email address with a certificate that | mechanism for associating an email address with a certificate that | |||
| does not contain an email address, such as through the use of the | does not contain an email address, such as through the use of the | |||
| agent's address book, if available. Receiving agents MUST recognize | agent's address book, if available. Receiving agents MUST recognize | |||
| email addresses in the subjectAltName field. Receiving agents MUST | email addresses in the subjectAltName field. Receiving agents MUST | |||
| recognize email addresses in the Distinguished Name field in the PKCS | recognize email addresses in the Distinguished Name field in the PKCS | |||
| #9 [PKCS9] emailAddress attribute: | #9 [PKCS9] emailAddress attribute: | |||
| pkcs-9-at-emailAddress OBJECT IDENTIFIER ::= | pkcs-9-at-emailAddress OBJECT IDENTIFIER ::= | |||
| {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) 1 } | {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) 1 } | |||
| Note that this attribute MUST be encoded as IA5String. | Note that this attribute MUST be encoded as IA5String and has an | |||
| upper bound of 255 characters. | ||||
| Sending agents SHOULD make the address in the From or Sender header | Sending agents SHOULD make the address in the From or Sender header | |||
| in a mail message match an Internet mail address in the signer's | in a mail message match an Internet mail address in the signer's | |||
| certificate. Receiving agents MUST check that the address in the | certificate. Receiving agents MUST check that the address in the | |||
| From or Sender header of a mail message matches an Internet mail | From or Sender header of a mail message matches an Internet mail | |||
| address, if present, in the signer's certificate, if mail addresses | address, if present, in the signer's certificate, if mail addresses | |||
| are present in the certificate. A receiving agent SHOULD provide | are present in the certificate. A receiving agent SHOULD provide | |||
| some explicit alternate processing of the message if this comparison | some explicit alternate processing of the message if this comparison | |||
| fails, which may be to display a message that shows the recipient the | fails, which may be to display a message that shows the recipient the | |||
| addresses in the certificate or other certificate details. | addresses in the certificate or other certificate details. | |||
| A receiving agent SHOULD display a subject name or other certificate | A receiving agent SHOULD display a subject name or other certificate | |||
| details when displaying an indication of successful or unsuccessful | details when displaying an indication of successful or unsuccessful | |||
| signature verification. | signature verification. | |||
| All subject and issuer names MUST be populated (i.e., not an empty | All subject and issuer names MUST be populated (i.e., not an empty | |||
| SEQUENCE) in S/MIME-compliant X.509 identity certificates, except | SEQUENCE) in S/MIME-compliant X.509 certificates, except that the | |||
| that the subject DN in a user's (i.e., end-entity) certificate MAY be | subject DN in a user's (i.e., end-entity) certificate MAY be an empty | |||
| an empty SEQUENCE in which case the subjectAltName extension will | SEQUENCE in which case the subjectAltName extension will include the | |||
| include the subject's identifier and MUST be marked as critical. | subject's identifier and MUST be marked as critical. | |||
| 4. Certificate Processing | 4. Certificate Processing | |||
| A receiving agent needs to provide some certificate retrieval | S/MIME agents need to provide some certificate retrieval mechanism in | |||
| mechanism in order to gain access to certificates for recipients of | order to gain access to certificates for recipients of digital | |||
| digital envelopes. There are many ways to implement certificate | envelopes. There are many ways to implement certificate retrieval | |||
| retrieval mechanisms. X.500 directory service is an excellent | mechanisms. [X.500] directory service is an excellent example of a | |||
| example of a certificate retrieval-only mechanism that is compatible | certificate retrieval-only mechanism that is compatible with classic | |||
| with classic X.500 Distinguished Names. Another method under | X.500 Distinguished Names. Another method under consideration by the | |||
| consideration by the IETF is to provide certificate retrieval | IETF is to provide certificate retrieval services as part of the | |||
| services as part of the existing Domain Name System (DNS). Until | existing Domain Name System (DNS). Until such mechanisms are widely | |||
| such mechanisms are widely used, their utility may be limited by the | used, their utility may be limited by the small number of the | |||
| small number of correspondent's certificates that can be retrieved. | correspondent's certificates that can be retrieved. At a minimum, for | |||
| At a minimum, for initial S/MIME deployment, a user agent could | initial S/MIME deployment, a user agent could automatically generate | |||
| automatically generate a message to an intended recipient requesting | a message to an intended recipient requesting the recipient's | |||
| that recipient's certificate in a signed return message. | certificate in a signed return message. | |||
| Receiving and sending agents SHOULD also provide a mechanism to allow | Receiving and sending agents SHOULD also provide a mechanism to allow | |||
| a user to "store and protect" certificates for correspondents in such | a user to "store and protect" certificates for correspondents in such | |||
| a way so as to guarantee their later retrieval. In many | a way so as to guarantee their later retrieval. In many | |||
| environments, it may be desirable to link the certificate | environments, it may be desirable to link the certificate | |||
| retrieval/storage mechanisms together in some sort of certificate | retrieval/storage mechanisms together in some sort of certificate | |||
| database. In its simplest form, a certificate database would be | database. In its simplest form, a certificate database would be | |||
| local to a particular user and would function in a similar way as an | local to a particular user and would function in a similar way as an | |||
| "address book" that stores a user's frequent correspondents. In this | "address book" that stores a user's frequent correspondents. In this | |||
| way, the certificate retrieval mechanism would be limited to the | way, the certificate retrieval mechanism would be limited to the | |||
| skipping to change at page 8, line 36 | skipping to change at page 10, line 32 | |||
| dictated by the value of the information that is protected. The | dictated by the value of the information that is protected. The | |||
| value of the CRL information in a particular context is beyond the | value of the CRL information in a particular context is beyond the | |||
| scope of this specification but may be governed by the policies | scope of this specification but may be governed by the policies | |||
| associated with particular certification paths. | associated with particular certification paths. | |||
| All agents MUST be capable of performing revocation checks using CRLs | All agents MUST be capable of performing revocation checks using CRLs | |||
| as specified in [KEYM]. All agents MUST perform revocation status | as specified in [KEYM]. All agents MUST perform revocation status | |||
| checking in accordance with [KEYM]. Receiving agents MUST recognize | checking in accordance with [KEYM]. Receiving agents MUST recognize | |||
| CRLs in received S/MIME messages. | CRLs in received S/MIME messages. | |||
| 4.2. Certification Path Validation | 4.2. Certificate Path Validation | |||
| In creating a user agent for secure messaging, certificate, CRL, and | In creating a user agent for secure messaging, certificate, CRL, and | |||
| certification path validation SHOULD be highly automated while still | certification path validation SHOULD be highly automated while still | |||
| acting in the best interests of the user. Certificate, CRL, and path | acting in the best interests of the user. Certificate, CRL, and path | |||
| validation MUST be performed as per [KEYM] when validating a | validation MUST be performed as per [KEYM] when validating a | |||
| correspondent's public key. This is necessary before using a public | correspondent's public key. This is necessary before using a public | |||
| key to provide security services such as: verifying a signature; | key to provide security services such as: verifying a signature; | |||
| encrypting a content-encryption key (ex: RSA); or forming a pairwise | encrypting a content-encryption key (ex: RSA); or forming a pairwise | |||
| symmetric key (ex: Diffie-Hellman) to be used to encrypt or decrypt a | symmetric key (ex: Diffie-Hellman) to be used to encrypt or decrypt a | |||
| content-encryption key. | content-encryption key. | |||
| Certificates and CRLs are made available to the path validation | Certificates and CRLs are made available to the path validation | |||
| procedure in two ways: a) incoming messages, and b) certificate and | procedure in two ways: a) incoming messages, and b) certificate and | |||
| CRL retrieval mechanisms. Certificates and CRLs in incoming messages | CRL retrieval mechanisms. Certificates and CRLs in incoming messages | |||
| are not required to be in any particular order nor are they required | are not required to be in any particular order nor are they required | |||
| to be in any way related to the sender or recipient of the message | to be in any way related to the sender or recipient of the message | |||
| (although in most cases they will be related to the sender). | (although in most cases they will be related to the sender). Incoming | |||
| Incoming certificates and CRLs SHOULD be cached for use in path | certificates and CRLs SHOULD be cached for use in path validation and | |||
| validation and optionally stored for later use. This temporary | optionally stored for later use. This temporary certificate and CRL | |||
| certificate and CRL cache SHOULD be used to augment any other | cache SHOULD be used to augment any other certificate and CRL | |||
| certificate and CRL retrieval mechanisms for path validation on | retrieval mechanisms for path validation on incoming signed messages. | |||
| incoming signed messages. | ||||
| 4.3. Certificate and CRL Signing Algorithms | When verifying a signature and the certificates are included in the | |||
| message, if a signingCertificate attribute from RFC 2634 [ESS] or a | ||||
| signingCertificateV2 attribute from RFC 5035 [ESS] is found in an | ||||
| S/MIME message, it SHALL be used to identify the signer's | ||||
| certificate. Otherwise, the certificate is identified in an S/MIME | ||||
| message, either using the issuerAndSerialNumber which identifies the | ||||
| signer's certificate by the issuer's distinguished name and the | ||||
| certificate serial number, or the subjectKeyIdentifier which | ||||
| identifies the signer's certificate by a key identifier. | ||||
| When decrypting an encrypted message, if a | ||||
| SMIMEEncryptionKeyPreference attribute is found in an encapsulating | ||||
| SignedData, it SHALL be used to identify the originator's certificate | ||||
| found in OriginatorInfo. See [CMS] for the CMS fields that reference | ||||
| the originator's and recipient's certificates. | ||||
| 4.3. Certificate and CRL Signing Algorithms and Key Sizes | ||||
| Certificates and Certificate Revocation Lists (CRLs) are signed by | Certificates and Certificate Revocation Lists (CRLs) are signed by | |||
| the certificate issuer. A receiving agent MUST be capable of | the certificate issuer. Receiving agents: | |||
| verifying the signatures on certificates and CRLs made with | ||||
| id-dsa-with-sha1 [CMSALG]. | ||||
| A receiving agent MUST be capable of verifying the signatures on | - MUST support RSA with SHA-256 | |||
| certificates and CRLs made with md5WithRSAEncryption and | ||||
| sha1WithRSAEncryption signature algorithms with key sizes from 512 | ||||
| bits to 2048 bits described in [CMSALG]. | ||||
| Because of the security issues surrounding MD2 [RC95], and in light | - SHOULD+ support DSA with SHA-256 | |||
| of current use, md2WithRSAEncryption MAY be supported. | ||||
| - SHOULD+ support RSA-PSS with SHA-256 | ||||
| - SHOULD- support RSA with SHA-1 | ||||
| - SHOULD- support DSA with SHA-1 | ||||
| - SHOULD- support RSA with MD5 | ||||
| The following are the RSA key size requirements for S/MIME receiving | ||||
| agents during certificate and CRL signature verification: | ||||
| 0 < key size < 512 : MAY (see Section 6) | ||||
| 512 <= key size <= 4096 : MUST (see Section 6) | ||||
| 4096 < key size : MAY (see Section 6) | ||||
| The following are the DSA key size requirements for S/MIME receiving | ||||
| agents during certificate and CRL signature verification: | ||||
| 512 <= key size <= 1023 : MAY (see Section 6) | ||||
| 1024 = key size : SHOULD- (see Section 6) | ||||
| For 512-bit RSA with SHA-1 see [KEYMALG] and [FIPS186-2] without | ||||
| Change Notice 1, for 512-bit RSA with SHA-256 see [RSAOAEP] and | ||||
| [FIPS186-2] without Change Notice 1, for 1024-bit through 3072-bit | ||||
| RSA with SHA-256 see [RSAOAEP] and [FIPS186-2] with Change Notice 1, | ||||
| and for 4096-bit RSA with SHA-256 see [RSAOAEP] and [PKCS1]. The | ||||
| first reference provides the signature algorithm's object identifier | ||||
| and the second provides the signature algorithm's definition. | ||||
| For 512-bit DSA with SHA-1 see [KEYMALG] and [FIPS186-2] without | ||||
| Change Notice 1, for 512-bit DSA with SHA-256 see [KEYMALG2] and | ||||
| [FIPS186-2] without Change Notice 1, for 1024-bit DSA with SHA-1 see | ||||
| [KEYMALG] and [FIPS186-2] with Change Notice 1, for 1024-bit DSA with | ||||
| SHA-256 see [KEYMALG2] and [FIPS186-3]. The first reference provides | ||||
| the signature algorithm's object identifier and the second provides | ||||
| the signature algorithm's definition. | ||||
| For 512-4096-bit RSA-PSS with SHA-256 see [RSAPSS]. | ||||
| 4.4. PKIX Certificate Extensions | 4.4. PKIX Certificate Extensions | |||
| PKIX describes an extensible framework in which the basic certificate | PKIX describes an extensible framework in which the basic certificate | |||
| information can be extended and how such extensions can be used to | information can be extended and describes how such extensions can be | |||
| control the process of issuing and validating certificates. The PKIX | used to control the process of issuing and validating certificates. | |||
| Working Group has ongoing efforts to identify and create extensions | The PKIX Working Group has ongoing efforts to identify and create | |||
| which have value in particular certification environments. Further, | extensions which have value in particular certification environments. | |||
| there are active efforts underway to issue PKIX certificates for | Further, there are active efforts underway to issue PKIX certificates | |||
| business purposes. This document identifies the minimum required set | for business purposes. This document identifies the minimum required | |||
| of certificate extensions which have the greatest value in the S/MIME | set of certificate extensions which have the greatest value in the | |||
| environment. The syntax and semantics of all the identified | S/MIME environment. The syntax and semantics of all the identified | |||
| extensions are defined in [KEYM]. | extensions are defined in [KEYM]. | |||
| Sending and receiving agents MUST correctly handle the basic | Sending and receiving agents MUST correctly handle the basic | |||
| constraints, key usage, authority key identifier, subject key | constraints, key usage, authority key identifier, subject key | |||
| identifier, and subject alternative names certificate extensions when | identifier, and subject alternative names certificate extensions when | |||
| they appear in end-entity and CA certificates. Some mechanism SHOULD | they appear in end-entity and CA certificates. Some mechanism SHOULD | |||
| exist to gracefully handle other certificate extensions when they | exist to gracefully handle other certificate extensions when they | |||
| appear in end-entity or CA certificates. | appear in end-entity or CA certificates. | |||
| Certificates issued for the S/MIME environment SHOULD NOT contain any | Certificates issued for the S/MIME environment SHOULD NOT contain any | |||
| critical extensions (extensions that have the critical field set to | critical extensions (extensions that have the critical field set to | |||
| TRUE) other than those listed here. These extensions SHOULD be | TRUE) other than those listed here. These extensions SHOULD be | |||
| marked as non-critical unless the proper handling of the extension is | marked as non-critical unless the proper handling of the extension is | |||
| deemed critical to the correct interpretation of the associated | deemed critical to the correct interpretation of the associated | |||
| certificate. Other extensions may be included, but those extensions | certificate. Other extensions may be included, but those extensions | |||
| SHOULD NOT be marked as critical. | SHOULD NOT be marked as critical. | |||
| Interpretation and syntax for all extensions MUST follow [KEYM], | Interpretation and syntax for all extensions MUST follow [KEYM], | |||
| unless otherwise specified here. | unless otherwise specified here. | |||
| 4.4.1. Basic Constraints Certificate Extension | 4.4.1. Basic Constraints | |||
| The basic constraints extension serves to delimit the role and | The basic constraints extension serves to delimit the role and | |||
| position that an issuing authority or end-entity certificate plays in | position that an issuing authority or end-entity certificate plays in | |||
| a certification path. | a certification path. | |||
| For example, certificates issued to CAs and subordinate CAs contain a | For example, certificates issued to CAs and subordinate CAs contain a | |||
| basic constraint extension that identifies them as issuing authority | basic constraint extension that identifies them as issuing authority | |||
| certificates. End-entity certificates contain an extension that | certificates. End-entity certificates contain the key usage | |||
| constrains the certificate from being an issuing authority | extension which restrains EEs from using the key to performing | |||
| certificate. | issuing authority operations (see Section 4.4.2). | |||
| Certificates SHOULD contain a basicConstraints extension in CA | As per [KEYM], Certificates MUST contain a basicConstraints extension | |||
| certificates, and SHOULD NOT contain that extension in end entity | in CA certificates, and SHOULD NOT contain that extension in end | |||
| certificates. | entity certificates. | |||
| 4.4.2. Key Usage Certificate Extension | 4.4.2. Key Usage Certificate Extension | |||
| The key usage extension serves to limit the technical purposes for | The key usage extension serves to limit the technical purposes for | |||
| which a public key listed in a valid certificate may be used. | which a public key listed in a valid certificate may be used. Issuing | |||
| Issuing authority certificates may contain a key usage extension that | authority certificates may contain a key usage extension that | |||
| restricts the key to signing certificates, certificate revocation | restricts the key to signing certificates, certificate revocation | |||
| lists and other data. | lists and other data. | |||
| For example, a certification authority may create subordinate issuer | For example, a certification authority may create subordinate issuer | |||
| certificates which contain a key usage extension which specifies that | certificates which contain a key usage extension which specifies that | |||
| the corresponding public key can be used to sign end user | the corresponding public key can be used to sign end user | |||
| certificates and sign CRLs. | certificates and sign CRLs. | |||
| If a key usage extension is included in a PKIX certificate, then it | If a key usage extension is included in a PKIX certificate, then it | |||
| MUST be marked as critical. | MUST be marked as critical. | |||
| skipping to change at page 11, line 8 | skipping to change at page 14, line 10 | |||
| extension without either the digitalSignature or nonRepudiation bit | extension without either the digitalSignature or nonRepudiation bit | |||
| set. Sometimes S/MIME is used as a secure message transport for | set. Sometimes S/MIME is used as a secure message transport for | |||
| applications beyond interpersonal messaging. In such cases, the | applications beyond interpersonal messaging. In such cases, the | |||
| S/MIME-enabled application can specify additional requirements | S/MIME-enabled application can specify additional requirements | |||
| concerning the digitalSignature or nonRepudiation bits within this | concerning the digitalSignature or nonRepudiation bits within this | |||
| extension. | extension. | |||
| If the key usage extension is not specified, receiving clients MUST | If the key usage extension is not specified, receiving clients MUST | |||
| presume that the digitalSignature and nonRepudiation bits are set. | presume that the digitalSignature and nonRepudiation bits are set. | |||
| 4.4.3. Subject Alternative Name Extension | 4.4.3. Subject Alternative Name | |||
| The subject alternative name extension is used in S/MIME as the | The subject alternative name extension is used in S/MIME as the | |||
| preferred means to convey the RFC-2822 email address(es) that | preferred means to convey the RFC-2822 email address(es) that | |||
| correspond(s) to the entity for this certificate. Any RFC-2822 email | correspond(s) to the entity for this certificate. Any RFC-2822 email | |||
| addresses present MUST be encoded using the rfc822Name CHOICE of the | addresses present MUST be encoded using the rfc822Name CHOICE of the | |||
| GeneralName type. Since the SubjectAltName type is a SEQUENCE OF | GeneralName type. Since the SubjectAltName type is a SEQUENCE OF | |||
| GeneralName, multiple RFC-2822 email addresses MAY be present. | GeneralName, multiple RFC-2822 email addresses MAY be present. | |||
| 4.4.4. Extended Key Usage Extension | 4.4.4. Extended Key Usage Extension | |||
| skipping to change at page 11, line 40 | skipping to change at page 14, line 42 | |||
| signature, but no extended key usage extension then the certificate | signature, but no extended key usage extension then the certificate | |||
| may also be used to sign but not encrypt S/MIME messages. | may also be used to sign but not encrypt S/MIME messages. | |||
| If the extended key usage extension is present in the certificate | If the extended key usage extension is present in the certificate | |||
| then interpersonal message S/MIME receiving agents MUST check that it | then interpersonal message S/MIME receiving agents MUST check that it | |||
| contains either the emailProtection or the anyExtendedKeyUsage OID as | contains either the emailProtection or the anyExtendedKeyUsage OID as | |||
| defined in [KEYM]. S/MIME uses other than interpersonal messaging | defined in [KEYM]. S/MIME uses other than interpersonal messaging | |||
| MAY require the explicit presence of the extended key usage extension | MAY require the explicit presence of the extended key usage extension | |||
| or other OIDs to be present in the extension or both. | or other OIDs to be present in the extension or both. | |||
| 5. Security Considerations | 5. IANA Considerations | |||
| None: All identifiers are already registered. Please remove this | ||||
| section prior to publication as an RFC. | ||||
| 6. Security Considerations | ||||
| All of the security issues faced by any cryptographic application | All of the security issues faced by any cryptographic application | |||
| must be faced by a S/MIME agent. Among these issues are protecting | must be faced by a S/MIME agent. Among these issues are protecting | |||
| the user's private key, preventing various attacks, and helping the | the user's private key, preventing various attacks, and helping the | |||
| user avoid mistakes such as inadvertently encrypting a message for | user avoid mistakes such as inadvertently encrypting a message for | |||
| the wrong recipient. The entire list of security considerations is | the wrong recipient. The entire list of security considerations is | |||
| beyond the scope of this document, but some significant concerns are | beyond the scope of this document, but some significant concerns are | |||
| listed here. | listed here. | |||
| When processing certificates, there are many situations where the | When processing certificates, there are many situations where the | |||
| skipping to change at page 12, line 16 | skipping to change at page 15, line 25 | |||
| that they are not important. The opposite is true: if a certificate | that they are not important. The opposite is true: if a certificate | |||
| is not provably valid and associated with the message, the processing | is not provably valid and associated with the message, the processing | |||
| software should take immediate and noticeable steps to inform the end | software should take immediate and noticeable steps to inform the end | |||
| user about it. | user about it. | |||
| Some of the many places where signature and certificate checking | Some of the many places where signature and certificate checking | |||
| might fail include: | might fail include: | |||
| - no Internet mail addresses in a certificate matches the sender of | - no Internet mail addresses in a certificate matches the sender of | |||
| a message, if the certificate contains at least one mail address | a message, if the certificate contains at least one mail address | |||
| - no certificate chain leads to a trusted CA | - no certificate chain leads to a trusted CA | |||
| - no ability to check the CRL for a certificate | - no ability to check the CRL for a certificate | |||
| - an invalid CRL was received | - an invalid CRL was received | |||
| - the CRL being checked is expired | - the CRL being checked is expired | |||
| - the certificate is expired | - the certificate is expired | |||
| - the certificate has been revoked | - the certificate has been revoked | |||
| There are certainly other instances where a certificate may be | There are certainly other instances where a certificate may be | |||
| invalid, and it is the responsibility of the processing software to | invalid, and it is the responsibility of the processing software to | |||
| check them all thoroughly, and to decide what to do if the check | check them all thoroughly, and to decide what to do if the check | |||
| fails. | fails. | |||
| At the Selected Areas in Cryptography '95 conference in May 1995, | ||||
| Rogier and Chauvaud presented an attack on MD2 that can nearly find | ||||
| collisions [RC95]. Collisions occur when one can find two different | ||||
| messages that generate the same message digest. A checksum operation | ||||
| in MD2 is the only remaining obstacle to the success of the attack. | ||||
| For this reason, the use of MD2 for new applications is discouraged. | ||||
| It is still reasonable to use MD2 to verify existing signatures, as | ||||
| the ability to find collisions in MD2 does not enable an attacker to | ||||
| find new messages having a previously computed hash value. | ||||
| It is possible for there to be multiple unexpired CRLs for a CA. If | It is possible for there to be multiple unexpired CRLs for a CA. If | |||
| an agent is consulting CRLs for certificate validation, it SHOULD | an agent is consulting CRLs for certificate validation, it SHOULD | |||
| make sure that the most recently issued CRL for that CA is consulted, | make sure that the most recently issued CRL for that CA is consulted, | |||
| since an S/MIME message sender could deliberately include an older | since an S/MIME message sender could deliberately include an older | |||
| unexpired CRL in an S/MIME message. This older CRL might not include | unexpired CRL in an S/MIME message. This older CRL might not include | |||
| recent revoked certificates, which might lead an agent to accept a | recently revoked certificates, which might lead an agent to accept a | |||
| certificate that has been revoked in a subsequent CRL. | certificate that has been revoked in a subsequent CRL. | |||
| When determining the time for a certificate validity check, agents | When determining the time for a certificate validity check, agents | |||
| have to be careful to use a reliable time. Unless it is from a | have to be careful to use a reliable time. Unless it is from a | |||
| trusted agent, this time MUST NOT be the SigningTime attribute found | trusted agent, this time MUST NOT be the SigningTime attribute found | |||
| in an S/MIME message. For most sending agents, the SigningTime | in an S/MIME message. For most sending agents, the SigningTime | |||
| attribute could be deliberately set to direct the receiving agent to | attribute could be deliberately set to direct the receiving agent to | |||
| check a CRL that could have out-of-date revocation status for a | check a CRL that could have out-of-date revocation status for a | |||
| certificate, or cause an improper result when checking the Validity | certificate, or cause an improper result when checking the Validity | |||
| field of a certificate. | field of a certificate. | |||
| A. References | In addition to the Security Considerations identified in [KEYM], | |||
| caution should be taken when processing certificates which have not | ||||
| first been validated to a trust anchor. Certificates could be | ||||
| manufactured by untrusted sources for the purpose of mounting denial | ||||
| of service or other attacks. For example, keys selected to require | ||||
| excessive cryptographic processing, or extensive lists of CDP and/or | ||||
| AIA addresses in the certificate, could be used to mount denial of | ||||
| service attacks. Similarly, attacker-specified CRL Distribution | ||||
| Point (CRLDP) and/or Authority Information Access (AIA) addresses | ||||
| could be included in fake certificates to allow the originator to | ||||
| detect receipt of the message even if signature verification fails. | ||||
| A.1. Normative References | The 4096-bit RSA key size requirement for certificate and CRL | |||
| verification is larger than the 2048-bit RSA key sizes for message | ||||
| signature generation/verification or message encryption/decryption in | ||||
| [SMIME-MSG] because many Root CAs included in certificate stores have | ||||
| already issued Root certificates with 4096-bit key. The standard | ||||
| that defines comparable key sizes for DSA is not yet available. In | ||||
| particular, [FIPS186-2] without Change Notice 1 allowed DSA key sizes | ||||
| between 512 and 1024 bits and [FIPS186-2] with Change Notice 1 only | ||||
| allowed DSA key sizes of 1024 bits. A revision to support larger key | ||||
| sizes is being developed, and once it is available, implementors | ||||
| ought to support DSA key sizes comparable to the RSA key sizes | ||||
| recommended in this specification. | ||||
| Today, 512-bit RSA and DSA keys are considered by many experts to be | ||||
| cryptographically insecure. | ||||
| If an implementation is concerned about compliance with NIST key size | ||||
| recommendations, then see [SP800-57]. | ||||
| 7. References | ||||
| 7.1. Normative References | ||||
| [ACAUTH] Farrell, S. and R. Housley, "An Internet Attribute | [ACAUTH] Farrell, S. and R. Housley, "An Internet Attribute | |||
| Certificate Profile for Authorization", RFC 3281, April | Certificate Profile for Authorization", RFC 3281, April | |||
| 2002. | 2002. | |||
| [CMS] Housely, R., "Cryptographic Message Syntax (CMS)", RFC | [CMS] Housley, R., "Cryptographic Message Syntax (CMS)", RFC | |||
| 3852, July 2004. | 3852, July 2004. | |||
| [CMSALG] Housley, R., "Cryptographic Message Syntax (CMS) | Housley, R., "Cryptographic Message Syntax (CMS) | |||
| Algorithms", RFC 3370, August 2002. | Multiple Signer Clarification", RFC 4853, April 2007. | |||
| [KEYM] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet | [ESS] Hoffman, P., "Enhanced Security Services for S/MIME", | |||
| X.509 Public Key Infrastructure Certificate and | RFC 2634, June 1999. | |||
| Certificate Revocation List (CRL) Profile", RFC 3280, | ||||
| April 2002. | Schaad, J., "ESS Update: Adding CertID Algorithm | |||
| Agility", RFC 5035, August 2007. | ||||
| [FIPS186-2] National Institute of Standards and Technology (NIST), | ||||
| "Digital Signature Standard (DSS)", FIPS Publication | ||||
| 186-3, January 2000. [With Change Notice 1] | ||||
| [FIPS186-3] National Institute of Standards and Technology (NIST), | ||||
| FIPS Publication 186-3: Digital Signature Standard, | ||||
| (draft) March 2006. | ||||
| [KEYM] 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. | ||||
| [KEYMALG] Bassham, L., Polk, W., and R. Housley, "Algorithms and | [KEYMALG] Bassham, L., Polk, W., and R. Housley, "Algorithms and | |||
| Identifiers for the Internet X.509 Public Key | Identifiers for the Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation | Infrastructure Certificate and Certificate Revocation | |||
| List (CRL) Profile", RFC 3279, April 2002. | List (CRL) Profile", RFC 3279, April 2002. | |||
| [KEYMALG2] Dang, Q., Santesson, S., Moriarty, K., Brown, D., and | ||||
| T. Polk, "Internet X.509 Public Key Infrastructure: | ||||
| Additional Algorithms and Identifiers for DSA and | ||||
| ECDSA", draft-ietf-pkix-sha2-dsa-ecdsa, work-in- | ||||
| progress. | ||||
| [MUSTSHOULD] Bradner, S., "Key words for use in RFCs to Indicate | [MUSTSHOULD] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [PKCS1] Jonsson, J. and B. Kaliki, "Public-Key Cryptography | ||||
| Standards (PKCS) #1: RSA Cryptography Specifications | ||||
| Version 2.1", RFC 3447, February 2003. | ||||
| [PKCS9] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object | [PKCS9] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object | |||
| Classes and Attribute Types Version 2.0", RFC 2985, | Classes and Attribute Types Version 2.0", RFC 2985, | |||
| November 2000. | November 2000. | |||
| [RFC-2822], Resnick, P., "Internet Message Format", RFC 2822, April | [IMF] Resnick, P., "Internet Message Format", RFC 5322, | |||
| 2001. | October 2008. | |||
| [SMIME-MSG] Ramsdell, B., Ed., "S/MIME Version 3.1 Message | [RSAPSS] Schaad, J., "Use of RSASA-PSS Signature Algorithm in | |||
| Specification", RFC 3851, July 2004. | Cryptographic Message Syntax (CMS)", RFC 4056, June | |||
| 2005. | ||||
| [x.208-88] ITU-T. Recommendation X.208: Specification of Abstract | [RSAOAEP] Schaad, J., Kaliski, B., and R. Housley, "Additional | |||
| Syntax Notation One (ASN.1). 1988. | 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. | ||||
| A.2. Informative References | [SMIME-MSG] Ramsdell, B., and S. Turner, "S/MIME Version 3.2 | |||
| Message Specification", draft-ietf-smime-3851bis- | ||||
| 07.txt, work-in-progress. | ||||
| [CERTV2] Dusse, S., Hoffman, P., Ramsdell, B., and J. Weinstein, | [X.680] ITU-T Recommendation X.680 (2002) | ISO/IEC 8824- | |||
| "S/MIME Version 2 Certificate Handling", RFC 2312, March | 1:2002. Information Technology - Abstract Syntax | |||
| 1998. | Notation One (ASN.1): Specification of basic notation. | |||
| 7.2. Informative References | ||||
| [PKCS6] RSA Laboratories, "PKCS #6: Extended-Certificate Syntax | [PKCS6] RSA Laboratories, "PKCS #6: Extended-Certificate Syntax | |||
| Standard", November 1993. | Standard", November 1993. | |||
| [RC95] Rogier, N. and Chauvaud, P., "The compression function | [SECLABEL] Nicolls, W., "Implementing Company Classification | |||
| of MD2 is not collision free," Presented at Selected | Policy with the S/MIME Security Label", RFC 3114, May | |||
| Areas in Cryptography '95, May 1995. | 2002. | |||
| [SECLABEL] Nicolls, W., "Implementing Company Classification Policy | [SMIMEv2] Dusse, S., Hoffman, P., Ramsdell, B., Lundblade, L. and | |||
| with the S/MIME Security Label", RFC 3114, May 2002. | L. Repka, "S/MIME Version 2 Message Specification", RFC | |||
| 2311, March 1998. | ||||
| [X.500] ITU-T Recommendation X.500 (1997) | ISO/IEC 9594-1:1997, | Dusse, S., Hoffman, P., Ramsdell, B., and J. Weinstein, | |||
| Information technology - Open Systems Interconnection - | "S/MIME Version 2 Certificate Handling", RFC 2312, | |||
| The Directory: Overview of concepts, models and | March 1998. | |||
| services. | ||||
| [X.501] ITU-T Recommendation X.501 (1997) | ISO/IEC 9594-2:1997, | Kaliski, B., "PKCS #1: RSA Encryption Version 1.5", RFC | |||
| Information technology - Open Systems Interconnection - | 2313, March 1998. | |||
| The Directory: Models. | ||||
| [X.509] ITU-T Recommendation X.509 (1997) | ISO/IEC 9594-8:1997, | Kaliski, B., "PKCS #10: Certificate Request Syntax | |||
| Information technology - Open Systems Interconnection - | Version 1.5", RFC 2314, March 1998. | |||
| The Directory: Authentication framework. | ||||
| [X.520] ITU-T Recommendation X.520 (1997) | ISO/IEC 9594-6:1997, | Kaliski, B., "PKCS #7: Certificate Message Syntax | |||
| Information technology - Open Systems Interconnection - | Version 1.5", RFC 2315, March 1998. | |||
| The Directory: Selected attribute types. | ||||
| B. Acknowledgements | [SMIMEv3] Housley, R., "Cryptographic Message Syntax", RFC 2630, | |||
| June 1999. | ||||
| Rescorla, E., "Diffie-Hellman Key Agreement Method", | ||||
| RFC 2631, June 1999. | ||||
| Ramsdell, B., "S/MIME Version 3 Certificate Handling", | ||||
| RFC 2632, June 1999. | ||||
| Ramsdell, B., "S/MIME Version 3 Message Specification", | ||||
| RFC 2633, June 1999. | ||||
| Hoffman, P., "Enhanced Security Services for S/MIME", | ||||
| RFC 2634, June 1999. | ||||
| Schaad, J., "ESS Update: Adding CertID Algorithm | ||||
| Agility", RFC 5035, August 2007. | ||||
| [SMIMEv3.1] Housley, R., "Cryptographic Message Syntax", RFC 3852, | ||||
| July 2004. | ||||
| Housley, R., "Cryptographic Message Syntax (CMS) | ||||
| Multiple Signer Clarification", RFC 4853, April 2007. | ||||
| Ramsdell, B., "S/MIME Version 3.1 Certificate | ||||
| Handling", RFC 3850, July 2004. | ||||
| Ramsdell, B., "S/MIME Version 3.1 Message | ||||
| Specification", RFC 3851, July 2004. | ||||
| Hoffman, P., "Enhanced Security Services for S/MIME", | ||||
| RFC 2634, June 1999. | ||||
| Schaad, J., "ESS Update: Adding CertID Algorithm | ||||
| Agility", RFC 5035, August 2007. | ||||
| [SP800-57] National Institute of Standards and Technology (NIST), | ||||
| Special Publication 800-57: Recommendation for Key | ||||
| Management, August 2005. | ||||
| [X.500] ITU-T Recommendation X.500 (1997) | ISO/IEC 9594- | ||||
| 1:1997, Information technology - Open Systems | ||||
| Interconnection - The Directory: Overview of concepts, | ||||
| models and services. | ||||
| Appendix A. Moving S/MIME v2 Certificate Handling to Historic Status | ||||
| The S/MIME v3 [SMIMEv3], v3.1 [SMIMEv3.1], and v3.2 (this document) | ||||
| are backwards compatible with the S/MIME v2 Certificate Handling | ||||
| Specification [SMIMEv2], with the exception of the algorithms | ||||
| (dropped RC2/40 requirement and added DSA and RSA-PSS requirements). | ||||
| Therefore, it is recommended that RFC 2312 [SMIMEv2] be moved to | ||||
| Historic status. | ||||
| Appendix B. Acknowledgements | ||||
| Many thanks go out to the other authors of the S/MIME v2 RFC: Steve | Many thanks go out to the other authors of the S/MIME v2 RFC: Steve | |||
| Dusse, Paul Hoffman and Jeff Weinstein. Without v2, there wouldn't | Dusse, Paul Hoffman and Jeff Weinstein. Without v2, there wouldn't | |||
| be a v3. | be a v3, v3.1 or v3.2. | |||
| A number of the members of the S/MIME Working Group have also worked | A number of the members of the S/MIME Working Group have also worked | |||
| very hard and contributed to this document. Any list of people is | very hard and contributed to this document. Any list of people is | |||
| doomed to omission and for that I apologize. In alphabetical order, | doomed to omission and for that I apologize. In alphabetical order, | |||
| the following people stand out in my mind due to the fact that they | the following people stand out in my mind due to the fact that they | |||
| made direct contributions to this document. | made direct contributions to this document. | |||
| Bill Flanigan | Bill Flanigan, Trevor Freeman, Elliott Ginsburg, Alfred Hoenes, Paul | |||
| Trevor Freeman | Hoffman, Russ Housley, David P. Kemp, Michael Myers, John Pawling, | |||
| Elliott Ginsburg | Denis Pinkas, and Jim Schaad. | |||
| Paul Hoffman | ||||
| Russ Housley | ||||
| David P. Kemp | ||||
| Michael Myers | ||||
| John Pawling | ||||
| Denis Pinkas | ||||
| Jim Schaad | ||||
| C. Editor's Address | Author's Addresses | |||
| Blake Ramsdell | Blake Ramsdell | |||
| Sendmail, Inc. | Brute Squad Labs, Inc. | |||
| 704 228th Ave NE #775 | ||||
| Sammamish, WA 98074 | ||||
| EMail: blake@sendmail.com | Email: blaker@gmail.com | |||
| Sean Turner | ||||
| IECA, Inc. | ||||
| 3057 Nutley Street, Suite 106 | ||||
| Fairfax, VA 22031 | ||||
| USA | ||||
| Email: turners@ieca.com | ||||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The Internet Society (2004). This document is subject | Copyright (C) The IETF Trust (2008). | |||
| to the rights, licenses and restrictions contained in BCP 78, and | ||||
| except as set forth therein, the authors retain all their rights. | This document is subject to the rights, licenses and restrictions | |||
| contained in BCP 78, and except as set forth therein, the authors | ||||
| retain all their rights. | ||||
| This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | |||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | |||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | |||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
| Intellectual Property | Intellectual Property | |||
| The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
| Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
| this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
| might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
| made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
| skipping to change at page 16, line 40 | skipping to change at page 21, line 42 | |||
| Copies of IPR disclosures made to the IETF Secretariat and any | Copies of IPR disclosures made to the IETF Secretariat and any | |||
| assurances of licenses to be made available, or the result of an | assurances of licenses to be made available, or the result of an | |||
| attempt made to obtain a general license or permission for the use of | attempt made to obtain a general license or permission for the use of | |||
| such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
| specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
| http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
| The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
| copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
| rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
| this standard. Please address the information to the IETF at ietf- | this standard. Please address the information to the IETF at | |||
| ipr@ietf.org. | ietf-ipr@ietf.org. | |||
| Acknowledgement | Acknowledgment | |||
| Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is provided by the IETF | |||
| Internet Society. | Administrative Support Activity (IASA). | |||
| End of changes. 74 change blocks. | ||||
| 204 lines changed or deleted | 448 lines changed or added | |||
This html diff was produced by rfcdiff 1.32. The latest version is available from http://www.levkowetz.com/ietf/tools/rfcdiff/ | ||||