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/ |