draft-ietf-smime-3850bis-05.txt   draft-ietf-smime-3850bis-06.txt 
S/MIME WG Blake Ramsdell, SendMail S/MIME WG Blake Ramsdell, Brute Squad Labs
Internet Draft Sean Turner, IECA Internet Draft Sean Turner, IECA
Intended Status: Standard Track August 20, 2008 Intended Status: Standard Track September 18, 2008
Obsoletes: 3850 (once approved) Obsoletes: 3850 (once approved)
Expires: February 20, 2009 Expires: March 18, 2009
Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2
Certificate Handling Certificate Handling
draft-ietf-smime-3850bis-05.txt draft-ietf-smime-3850bis-06.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on February 20, 2008. This Internet-Draft will expire on March 18, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2008). 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
skipping to change at page 2, line 25 skipping to change at page 2, line 25
for the mailing list at <http://www.imc.org/ietf-smime/>. for the mailing list at <http://www.imc.org/ietf-smime/>.
Table of Contents Table of Contents
1. Introduction...................................................2 1. Introduction...................................................2
1.1. Definitions...............................................3 1.1. Definitions...............................................3
1.2. Conventions used in this document.........................4 1.2. Conventions used in this document.........................4
1.3. Compatibility with Prior Practice S/MIME..................4 1.3. Compatibility with Prior Practice S/MIME..................4
1.4. Changes From S/MIME v3 to S/MIME v3.1.....................4 1.4. Changes From S/MIME v3 to S/MIME v3.1.....................4
1.5. Changes Since S/MIME v3.1.................................5 1.5. Changes Since S/MIME v3.1.................................5
2. CMS Options....................................................5 2. CMS Options....................................................6
2.1. Certificate Revocation Lists..............................6 2.1. Certificate Revocation Lists..............................6
2.2. Certificate Choices.......................................6 2.2. Certificate Choices.......................................6
2.2.1. Historical Note About CMS Certificates...............6 2.2.1. Historical Note About CMS Certificates...............6
2.3. CertificateSet............................................7 2.3. CertificateSet............................................7
3. Using Distinguished Names For Internet Mail....................8 3. Using Distinguished Names For Internet Mail....................8
4. Certificate Processing.........................................9 4. Certificate Processing.........................................9
4.1. Certificate Revocation Lists.............................10 4.1. Certificate Revocation Lists.............................10
4.2. Certificate Path Validation..............................10 4.2. Certificate Path Validation..............................10
4.3. Certificate and CRL Signing Algorithms and Key Sizes.....11 4.3. Certificate and CRL Signing Algorithms and Key Sizes.....11
4.4. PKIX Certificate Extensions..............................11 4.4. PKIX Certificate Extensions..............................12
5. IANA Considerations...........................................14 5. IANA Considerations...........................................14
6. Security Considerations.......................................14 6. Security Considerations.......................................14
7. References....................................................16 7. References....................................................16
7.1. Normative References.....................................16 7.1. Normative References.....................................16
7.2. Informative References...................................17 7.2. Informative References...................................17
Appendix A. Moving S/MIME v2 Certificate Handling to Historic Appendix A. Moving S/MIME v2 Certificate Handling to Historic
Status...............................................19 Status...............................................20
Appendix B. Acknowledgements.....................................19 Appendix B. Acknowledgements.....................................20
1. Introduction 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
skipping to change at page 4, line 37 skipping to change at page 4, line 37
time, it is reasonable to expect that if a future revision of a time, it is reasonable to expect that if a future revision of a
document alters the status of a MUST- requirement, it will remain document alters the status of a MUST- requirement, it will remain
at least a SHOULD or a SHOULD-. at least a SHOULD or a SHOULD-.
1.3. Compatibility with Prior Practice S/MIME 1.3. Compatibility with Prior Practice S/MIME
S/MIME version 3.2 agents should attempt to have the greatest S/MIME version 3.2 agents should attempt to have the greatest
interoperability possible with agents for prior versions of S/MIME. interoperability possible with agents for prior versions of S/MIME.
S/MIME version 2 is described in RFC 2311 through RFC 2315 inclusive 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 [SMIMEv2], S/MIME version 3 is described in RFC 2630 through RFC 2634
inclusive [SMIMEv3], and S/MIME version 3.1 is described in RFC 3850 inclusive and RFC 5035 [SMIMEv3], and S/MIME version 3.1 is described
through RFC 3852 and RFC 2634 [SMIMEv3.1]. RFC 2311 also has in RFC 3850, RFC 3851, RFC 3852, RFC 2634, RFC4853, and RFC 5035
historical information about the development of S/MIME. [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 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.
skipping to change at page 5, line 33 skipping to change at page 5, line 33
Conventions Used in This Document: Moved to section 1.2. Added Conventions Used in This Document: Moved to section 1.2. Added
definitions for SHOULD+, SHOULD-, and MUST-. definitions for SHOULD+, SHOULD-, and MUST-.
Sec 1.2: Updated ASN.1 definition and reference. Sec 1.2: Updated ASN.1 definition and reference.
Sec 1.3: Added text about v3.1 RFCs. Sec 1.3: Added text about v3.1 RFCs.
Sec 3: Updated note to indicate emailAddress IA5String upper bound is Sec 3: Updated note to indicate emailAddress IA5String upper bound is
255 characters. 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- 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 changed to SHOULD-, DSA with SHA- 256 added as SHOULD+, RSA with SHA-1 changed to SHOULD-, DSA with
1, and RSA with MD5 changed to SHOULD-, and RSA-PSS with SHA-256. SHA-1, and RSA with MD5 changed to SHOULD-, and RSA-PSS with SHA-256
Updated key sizes and changed pointer from [KEYM] to [KEYMALG]. added as SHOULD+. Updated key sizes and changed pointer from [KEYM]
to [KEYMALG].
Sec 4.4.1: Clarified which extension is used to constrain EEs from Sec 4.4.1: Aligned with PKIX on use of basic constraints extension in
using their keys to perform issuing authority operations. 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 Sec 7: Moved references from Appendix B to section 7. Updated the
references. references.
Appendix A: Moved Appendix A to Appendix B. Added Appendix A to move Appendix A: Moved Appendix A to Appendix B. Added Appendix A to move
S/MIME v2 Certificate Handling to Historic Status. 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
skipping to change at page 6, line 24 skipping to change at page 6, line 33
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. Certificate Choices 2.2. Certificate Choices
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 7, line 35 skipping to change at page 7, line 40
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].
skipping to change at page 8, line 49 skipping to change at page 9, line 6
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 the correspondent's certificates that can be correspondent's certificates that can be retrieved. At a minimum, for
retrieved. At a minimum, for initial S/MIME deployment, a user agent initial S/MIME deployment, a user agent could automatically generate
could automatically generate a message to an intended recipient a message to an intended recipient requesting the recipient's
requesting the 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 11, line 7 skipping to change at page 11, line 11
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). Incoming (although in most cases they will be related to the sender). Incoming
certificates and CRLs SHOULD be cached for use in path validation and certificates and CRLs SHOULD be cached for use in path validation and
optionally stored for later use. This temporary certificate and CRL optionally stored for later use. This temporary certificate and CRL
cache SHOULD be used to augment any other certificate and CRL cache SHOULD be used to augment any other certificate and CRL
retrieval mechanisms for path validation on incoming signed messages. retrieval mechanisms for path validation on incoming signed messages.
When verifying a signature and the certificates are included in the
message, if a signingCertificate or a signingCertificateV2 attribute
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. Otherwise, a) for DH encrypted messages the
certificate is identified by the KeyAgreeRecipientInfo originator
field using either the issuer and serial number or subject public key
identifier choice or the certificate is omitted and the originator's
public key is included in originatorKey b) for RSA encrypted messages
the originator's certificate is not required for decryption.
4.3. Certificate and CRL Signing Algorithms and Key Sizes 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. Receiving agents: the certificate issuer. Receiving agents:
- MUST support RSA with SHA-256, as specified in [CMS-SHA2] - MUST support RSA with SHA-256, as specified in [CMS-SHA2]
- SHOULD+ support DSA with SHA-256, as specified in [CMS-SHA2] - SHOULD+ support DSA with SHA-256, as specified in [CMS-SHA2]
- SHOULD+ support RSA-PSS with SHA-256, as specified in [RSAPSS] - SHOULD+ support RSA-PSS with SHA-256, as specified in [RSAPSS]
skipping to change at page 11, line 23 skipping to change at page 12, line 4
- SHOULD+ support DSA with SHA-256, as specified in [CMS-SHA2] - SHOULD+ support DSA with SHA-256, as specified in [CMS-SHA2]
- SHOULD+ support RSA-PSS with SHA-256, as specified in [RSAPSS] - SHOULD+ support RSA-PSS with SHA-256, as specified in [RSAPSS]
- SHOULD- support RSA with SHA-1, as specified in [CMSALG] - SHOULD- support RSA with SHA-1, as specified in [CMSALG]
- SHOULD- support DSA with SHA-1, as specified in [CMSALG] - SHOULD- support DSA with SHA-1, as specified in [CMSALG]
- SHOULD- support RSA with MD5, as specified in [CMSALG] - SHOULD- support RSA with MD5, as specified in [CMSALG]
The following are the RSA key size requirements for S/MIME receiving The following are the RSA key size requirements for S/MIME receiving
agents during certificate and CRL signature verification: agents during certificate and CRL signature verification:
0 < key size < 512 : MAY (see Section 6 [SMIME-MSG]) 0 < key size < 512 : MAY (see Section 6)
512 <= key size <= 4096 : MUST (see Section 6 [SMIME-MSG]) 512 <= key size <= 4096 : MUST (see Section 6)
4096 < key size : MAY (see Section 6 [SMIME-MSG]) 4096 < key size : MAY (see Section 6)
The following are the RSA key size requirements for S/MIME receiving The following are the DSA key size requirements for S/MIME receiving
agents during certificate and CRL signature verification: agents during certificate and CRL signature verification:
512 <= key size <= 1024 : MAY (see Section 6 [SMIME-MSG]) 512 <= key size <= 1024 : MAY (see Section 6)
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 describes how such extensions can be information can be extended and describes how such extensions can be
used to control the process of issuing and validating certificates. used to control the process of issuing and validating certificates.
The PKIX Working Group has ongoing efforts to identify and create The PKIX Working Group has ongoing efforts to identify and create
extensions which have value in particular certification environments. extensions which have value in particular certification environments.
Further, there are active efforts underway to issue PKIX certificates Further, there are active efforts underway to issue PKIX certificates
for business purposes. This document identifies the minimum required for business purposes. This document identifies the minimum required
skipping to change at page 12, line 32 skipping to change at page 13, line 17
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 the key usage certificates. End-entity certificates contain the key usage
extension which restrains EEs from using the key to performing extension which restrains EEs from using the key to performing
issuing authority operations (see Section 4.4.2). 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. Issuing which a public key listed in a valid certificate may be used. 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
skipping to change at page 15, line 29 skipping to change at page 16, line 14
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.
In addition to the Security Considerations identified in [KEYM], In addition to the Security Considerations identified in [KEYM],
caution should be taken when processing certificates which have not caution should be taken when processing certificates which have not
first been validated to a trust anchor. Certificates could be first been validated to a trust anchor. Certificates could be
manufactured by untrusted sources for the purpose of mounting denial manufactured by untrusted sources for the purpose of mounting denial
of service or other attacks. For example, keys selected to require of service or other attacks. For example, keys selected to require
excessive cryptographic processing, or extensive lists of CDP and/or excessive cryptographic processing, or extensive lists of CDP and/or
AIA addresses in the certificate, could be used to mount denial of AIA addresses in the certificate, could be used to mount denial of
service attacks. Similarly, originator-specified CDP and/or AIA service attacks. Similarly, attacker-specified CRL Distribution
addresses could be inserted into bogus certificates to allow the Point (CRLDP) and/or Authority Information Access (AIA) addresses
originator to detect receipt of the message even if signature could be included in fake certificates to allow the originator to
verification fails. detect receipt of the message even if signature verification fails.
In addition to the Security Considerations identified in [KEYM], The 4096-bit RSA key size requirement for certificate and CRL
caution should be taken when processing certificates which have not verification is larger than the 2048-bit RSA key sizes for message
first been validated to a trust anchor. Certificates could be signature generation/verification or message encryption/decryption in
manufactured by untrusted sources for the purpose of mounting denial [SMIME-MSG] because many Root CAs included in certificate stores have
of service or other attacks. For example, keys selected to require already issued Root certificates with 4096-bit key. The standard
excessive cryptographic processing, or extensive lists of CDP and/or that defines comparable key sizes for DSA is not yet available. In
AIA addresses in the certificate, could be used to mount denial of particular, [FIPS186-3] only defines DSA key sizes up to 1024 bits.
service attacks. Similarly, attacker-specified CRL distribution A revision to support larger key sizes is being developed, and once
point and/or authority information access addresses could be included it is available, implementors ought to support DSA key sizes
into fake certificates to allow the originator to detect receipt of comparable to the RSA key sizes recommended in this specification.
the message even if signature verification fails.
Today, 512-bit RSA and DSA keys are considered by many experts to be
cryptographically insecure.
7. References 7. References
7.1. Normative 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] Housley, R., "Cryptographic Message Syntax (CMS)", RFC [CMS] Housley, R., "Cryptographic Message Syntax (CMS)", RFC
3852, July 2004. 3852, July 2004.
Housley, R., "Cryptographic Message Syntax (CMS) Housley, R., "Cryptographic Message Syntax (CMS)
Multiple Signer Clarification", RFC 4852, April 2007. Multiple Signer Clarification", RFC 4852, April 2007.
[CMSALG] Housley, R., "Cryptographic Message Syntax (CMS) [CMSALG] Housley, R., "Cryptographic Message Syntax (CMS)
Algorithms", RFC 3370, August 2002. Algorithms", RFC 3370, August 2002.
[CMS-SHA2] Turner. S., "Using SHA2 Algorithms with Cryptographic [CMS-SHA2] Turner. S., "Using SHA2 Algorithms with Cryptographic
Message Syntax", work in progress. Message Syntax", draft-ietf-smime-sha2, work-in-
progress.
[FIPS186-3] National Institute of Standards and Technology (NIST),
"Digital Signature Standard (DSS)", FIPS Publication
186-3, March 2006.
[KEYM] Cooper, D., Santesson, S., Farrell, S., Boeyen, S. [KEYM] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation Infrastructure Certificate and Certificate Revocation
List (CRL) Profile", RFC 5280, May 2008. 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.
skipping to change at page 16, line 50 skipping to change at page 17, line 38
November 2000. November 2000.
[IMF] Resnick, P., "Internet Message Format", work-in- [IMF] Resnick, P., "Internet Message Format", work-in-
progress. progress.
[RSAPSS] Schaad, J., "Use of RSASA-PSS Signature Algorithm in [RSAPSS] Schaad, J., "Use of RSASA-PSS Signature Algorithm in
Cryptographic Message Syntax (CMS)", RFC 4056, June Cryptographic Message Syntax (CMS)", RFC 4056, June
2005. 2005.
[SMIME-MSG] Ramsdell, B., and S. Turner, "S/MIME Version 3.2 [SMIME-MSG] Ramsdell, B., and S. Turner, "S/MIME Version 3.2
Message Specification", work in progress. Message Specification", draft-ietf-smime-3851bis, work-
in-progress.
[X.680] ITU-T Recommendation X.680 (2002) | ISO/IEC 8824- [X.680] ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-
1:2002. Information Technology - Abstract Syntax 1:2002. Information Technology - Abstract Syntax
Notation One (ASN.1): Specification of basic notation. Notation One (ASN.1): Specification of basic notation.
7.2. Informative References 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.
skipping to change at page 17, line 33 skipping to change at page 18, line 24
"S/MIME Version 2 Certificate Handling", RFC 2312, "S/MIME Version 2 Certificate Handling", RFC 2312,
March 1998. March 1998.
Kaliski, B., "PKCS #1: RSA Encryption Version 1.5", RFC Kaliski, B., "PKCS #1: RSA Encryption Version 1.5", RFC
2313, March 1998. 2313, March 1998.
Kaliski, B., "PKCS #10: Certificate Request Syntax Kaliski, B., "PKCS #10: Certificate Request Syntax
Version 1.5", RFC 2314, March 1998. Version 1.5", RFC 2314, March 1998.
Kaliski, B., "PKCS #7: Certificate Message Syntax Kaliski, B., "PKCS #7: Certificate Message Syntax
Version 1.5", RFC 2314, March 1998. Version 1.5", RFC 2315, March 1998.
[SMIMEv3] Housley, R., "Cryptographic Message Syntax", RFC 2630, [SMIMEv3] Housley, R., "Cryptographic Message Syntax", RFC 2630,
June 1999. June 1999.
Rescorla, E., "Diffie-Hellman Key Agreement Method", Rescorla, E., "Diffie-Hellman Key Agreement Method",
RFC 2631, June 1999. RFC 2631, June 1999.
Ramsdell, B., "S/MIME Version 3 Certificate Handling", Ramsdell, B., "S/MIME Version 3 Certificate Handling",
RFC 2632, June 1999. RFC 2632, June 1999.
Ramsdell, B., "S/MIME Version 3 Message Specification", Ramsdell, B., "S/MIME Version 3 Message Specification",
RFC 2633, June 1999. RFC 2633, June 1999.
Hoffman, P., "Enhanced Security Services for S/MIME", Hoffman, P., "Enhanced Security Services for S/MIME",
RFC 2634, June 1999. 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, [SMIMEv3.1] Housley, R., "Cryptographic Message Syntax", RFC 3852,
July 2004. July 2004.
Housley, R., "Cryptographic Message Syntax (CMS)
Multiple Signer Clarification", RFC 4853, April 2007.
Ramsdell, B., "S/MIME Version 3.1 Certificate Ramsdell, B., "S/MIME Version 3.1 Certificate
Handling", RFC 3850, July 2004. Handling", RFC 3850, July 2004.
Ramsdell, B., "S/MIME Version 3.1 Message Ramsdell, B., "S/MIME Version 3.1 Message
Specification", RFC 3851, July 2004. Specification", RFC 3851, July 2004.
Hoffman, P., "Enhanced Security Services for S/MIME", Hoffman, P., "Enhanced Security Services for S/MIME",
RFC 2634, June 1999. RFC 2634, June 1999.
Schaad, J., "ESS Update: Adding CertID Algorithm
Agility", RFC 5035, August 2007.
[X.500] ITU-T Recommendation X.500 (1997) | ISO/IEC 9594- [X.500] ITU-T Recommendation X.500 (1997) | ISO/IEC 9594-
1:1997, Information technology - Open Systems 1:1997, Information technology - Open Systems
Interconnection - The Directory: Overview of concepts, Interconnection - The Directory: Overview of concepts,
models and services. models and services.
[X.501] ITU-T Recommendation X.501 (1997) | ISO/IEC 9594-
2:1997, Information technology - Open Systems
Interconnection - The Directory: Models.
[X.509] ITU-T Recommendation X.509 (1997) | ISO/IEC 9594-
8:1997, Information technology - Open Systems
Interconnection - The Directory: Authentication
Framework.
[X.520] ITU-T Recommendation X.520 (1997) | ISO/IEC 9594-
6:1997, Information technology - Open Systems
Interconnection - The Directory: Selected Attribute
Types.
Appendix A. Moving S/MIME v2 Certificate Handling to Historic Status 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) The S/MIME v3 [SMIMEv3], v3.1 [SMIMEv3.1], and v3.2 (this document)
Certificate Handling documents are backwards S/MIME v2 Message are backwards compatible with the S/MIME v2 Certificate Handling
Specification RFC 2312 [SMIMEv2], with the exception of the Specification [SMIMEv2], with the exception of the algorithms
algorithms (dropped RC2/40 requirement and added DSA and RSA-PSS (dropped RC2/40 requirement and added DSA and RSA-PSS requirements).
requirements). Therefore, it is recommended that RFC 2312 [SMIMEv2] Therefore, it is recommended that RFC 2312 [SMIMEv2] be moved to
be moved to Historic status. Historic status.
Appendix B. Acknowledgements 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, v3.1 or v3.2. 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, Trevor Freeman, Elliott Ginsburg, Alfred Hoenes, Paul Bill Flanigan, Trevor Freeman, Elliott Ginsburg, Alfred Hoenes, Paul
Hoffman, Russ Housley, David P. Kemp, Michael Myers, John Pawling, Hoffman, Russ Housley, David P. Kemp, Michael Myers, John Pawling,
Denis Pinkas, and Jim Schaad. Denis Pinkas, and Jim Schaad.
Author's Addresses Author's Addresses
Blake Ramsdell Blake Ramsdell
SendMail Brute Squad Labs, Inc.
Email: blake@sendmail.com Email: blaker@gmail.com
Sean Turner Sean Turner
IECA, Inc. IECA, Inc.
3057 Nutley Street, Suite 106 3057 Nutley Street, Suite 106
Fairfax, VA 22031 Fairfax, VA 22031
USA USA
Email: turners@ieca.com Email: turners@ieca.com
 End of changes. 34 change blocks. 
96 lines changed or deleted 124 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/