draft-ietf-smime-aes-alg-05.txt   draft-ietf-smime-aes-alg-06.txt 
S/MIME Working Group J. Schaad S/MIME Working Group J. Schaad
Internet Draft Soaring Hawk Consulting Internet Draft Soaring Hawk Consulting
Document: draft-ietf-smime-aes-alg-05.txt Document: draft-ietf-smime-aes-alg-06.txt
Expires: May 2003 November 2002 Expires: July 2003 January 2003
Use of the AES Encryption Algorithm in CMS Use of the AES Encryption Algorithm in CMS
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. all provisions of Section 10 of RFC 2026.
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 line 122 skipping to change at line 122
1) Key Transport: The AES CEK is uniquely wrapped for each recipient 1) Key Transport: The AES CEK is uniquely wrapped for each recipient
using the recipient's public RSA key and other values. Section 2.2 using the recipient's public RSA key and other values. Section 2.2
provides additional details. provides additional details.
Schaad 2 Schaad 2
Use of the AES Algorithm in CMS July 2002 Use of the AES Algorithm in CMS July 2002
2) Key Agreement: The AES CEK is uniquely wrapped for each recipient 2) Key Agreement: The AES CEK is uniquely wrapped for each recipient
using a pairwise symmetric key-encryption key (KEK) generated using using a pairwise symmetric key-encryption key (KEK) generated using
DH-ES [DH] using the originator's randomly generated private key, the an originator's randomly generated private key (ES-DH [DH]) or
previously generated private key (SS-DH [DH]), the recipient's public
recipient's public DH key, and other values. Section 2.3 provides DH key, and other values. Section 2.3 provides additional details.
additional details.
3) Previously Distributed Symmetric KEK: The AES CEK is wrapped 3) Previously Distributed Symmetric KEK: The AES CEK is wrapped
using a previously distributed symmetric KEK (such as a Mail List using a previously distributed symmetric KEK (such as a Mail List
Key). The methods by which the symmetric KEK is generated and Key). The methods by which the symmetric KEK is generated and
distributed are beyond the scope of this document. Section 2.4 distributed are beyond the scope of this document. Section 2.4
provides additional details. provides additional details.
4) Password Encryption: The AES CEK is wrapped using a KEK derived 4) Password Encryption: The AES CEK is wrapped using a KEK derived
from a password or other shared secret. Section 2.5 provides from a password or other shared secret. Section 2.5 provides
additional details. additional details.
skipping to change at line 199 skipping to change at line 199
The KeyTransRecipientInfo keyEncryptionAlgorithm field specifies the The KeyTransRecipientInfo keyEncryptionAlgorithm field specifies the
key transport algorithm (i.e. RSAES-OAEP [RSA-OAEP]), and the key transport algorithm (i.e. RSAES-OAEP [RSA-OAEP]), and the
associated parameters used to encrypt the CEK for the recipient. associated parameters used to encrypt the CEK for the recipient.
The KeyTransRecipientInfo encryptedKey is the result of encrypting The KeyTransRecipientInfo encryptedKey is the result of encrypting
the CEK with the recipient's RSA public key. the CEK with the recipient's RSA public key.
2.3 KeyAgreeRecipientInfo Fields 2.3 KeyAgreeRecipientInfo Fields
This section describes the conventions for using ES-DH and AES with This section describes the conventions for using ES-DH or SS-DH and
the CMS enveloped-data content type to support key agreement. When AES with the CMS enveloped-data content type to support key
key agreement is used, then the RecipientInfo keyAgreeRecipientInfo agreement. When key agreement is used, then the RecipientInfo
CHOICE MUST be used. keyAgreeRecipientInfo CHOICE MUST be used.
The KeyAgreeRecipient version MUST be 3. The KeyAgreeRecipient version MUST be 3.
The EnvelopedData originatorInfo field MUST be the originatorKey The EnvelopedData originatorInfo field MUST be the originatorKey
alternative. The originatorKey algorithm fields MUST contain the dh- alternative. The originatorKey algorithm fields MUST contain the dh-
public-number object identifier with absent parameters. The public-number object identifier with absent parameters. The
originatorKey publicKey MUST contain the originator's ephemeral originatorKey publicKey MUST contain the originator's ephemeral
public key. public key.
The EnvelopedData ukm MAY be present. The EnvelopedData ukm MAY be present.
skipping to change at line 499 skipping to change at line 499
process involves information obtained from the capabilities lists process involves information obtained from the capabilities lists
included in messages received from the recipient, as well as other included in messages received from the recipient, as well as other
information such as private agreements, user preferences, legal information such as private agreements, user preferences, legal
restrictions, and so on. If users require AES for symmetric restrictions, and so on. If users require AES for symmetric
encryption, the S/MIME clients on both the sending and receiving side encryption, the S/MIME clients on both the sending and receiving side
MUST support it, and it MUST be set in the user preferences. MUST support it, and it MUST be set in the user preferences.
6 Security Considerations 6 Security Considerations
If RSA-OAEP [PKCS#1v2.0] and RSA #1 v1.5 [RSA#1v1.5] are both used to If RSA-OAEP [PKCS#1v2.0] and RSA PKCS #1 v1.5 [PKCS#1v1.5] are both
used to transport the same CEK, then an attacker can still use the
transport the same CEK, then an attacker can still use the Bleichenbacher attack against the RSA PKCS #1 v1.5 encrypted key.
Bleichenbacher attack against the RSA #1 v1.5 encrypted key. It is It is generally unadvisable to mix both RSA-OAEP and RSA PKCS#1 v1.5
generally unadvisable to mix both RSA-OAEP and RSA #1 v1.5 in the in the same set of recipients.
same set of recipients.
Implementations must protect the RSA private key and the CEK. Implementations must protect the RSA private key and the CEK.
Compromise of the RSA private key may result in the disclosure of all Compromise of the RSA private key may result in the disclosure of all
messages protected with that key. Compromise of the CEK may result messages protected with that key. Compromise of the CEK may result
in disclosure of the associated encrypted content. in disclosure of the associated encrypted content.
The generation of AES CEKs relies on random numbers. The use of The generation of AES CEKs relies on random numbers. The use of
inadequate pseudo-random number generators (PRNGs) to generate these inadequate pseudo-random number generators (PRNGs) to generate these
values can result in little or no security. An attacker may find it values can result in little or no security. An attacker may find it
skipping to change at line 528 skipping to change at line 527
force searching the whole key space. The generation of quality force searching the whole key space. The generation of quality
random numbers is difficult. RFC 1750 [RANDOM] offers important random numbers is difficult. RFC 1750 [RANDOM] offers important
guidance in this area. guidance in this area.
When wrapping a CEK with a KEK, the KEK MUST always be at least the When wrapping a CEK with a KEK, the KEK MUST always be at least the
same length as the CEK. An attacker will generally work at the same length as the CEK. An attacker will generally work at the
weakest point in an encryption system. This would be the smaller of weakest point in an encryption system. This would be the smaller of
the two key sizes for a brute force attack. the two key sizes for a brute force attack.
References Normative References
AES National Institute of Standards. AES National Institute of Standards.
FIPS Pub 197: Advanced Encryption Standard (AES). FIPS Pub 197: Advanced Encryption Standard (AES).
26 November 2001. 26 November 2001.
AES-WRAP Schaad, J., R. Housley, "Advanced Encryption Standard (AES) CMS Housley, R., "Cryptographic Message Syntax (CMS)", RFC
Schaad 9 Schaad 9
Use of the AES Algorithm in CMS July 2002 Use of the AES Algorithm in CMS July 2002
Key Wrap Algorithm", RFC 3394, September 2002
CMS Housley, R., "Cryptographic Message Syntax (CMS)", RFC
3369, August 2002. 3369, August 2002.
AES-WRAP Schaad, J., R. Housley, "Advanced Encryption Standard (AES)
Key Wrap Algorithm", RFC 3394, September 2002
CMSALG Housley, R., "Cryptographic Message Syntax (CMS) CMSALG Housley, R., "Cryptographic Message Syntax (CMS)
Algorithms, RFC 3370, August 2002. Algorithms, RFC 3370, August 2002.
DES National Institute of Standards and Technology. DES National Institute of Standards and Technology.
FIPS Pub 46: Data Encryption Standard. 15 January 1977. FIPS Pub 46: Data Encryption Standard. 15 January 1977.
DH Rescorla, E., Diffie-Hellman Key Agreement Method, RFC DH Rescorla, E., Diffie-Hellman Key Agreement Method, RFC
2631, June 1999. 2631, June 1999.
RSA-OAEP Housley, R. "Use of the RSAES-OAEP Key Transport Algorithm
in CMS", draft-ietf-smime-cms-rsaes-oaep-03.txt, June 2002.
X.208-88 CCITT. Recommendation X.208: Specification of Abstract
Syntax Notation One (ASN.1). 1988.
X.209-88 CCITT. Recommendation X.209: Specification of Basic
Encoding Rules for Abstract Syntax Notation One (ASN.1).
1988.
X.509-88 CCITT. Recommendation X.509: The Directory -
Authentication Framework. 1988.
Informational References
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.
MSG Ramsdell, B., Editor. S/MIME Version 3 Message MSG Ramsdell, B., Editor. S/MIME Version 3 Message
Specification. RFC 2633. June 1999. Specification. RFC 2633. June 1999.
PKCS#1v1.5 Kaliski, B. PKCS #1: RSA Encryption, Version 1.5. PKCS#1v1.5 Kaliski, B. PKCS #1: RSA Encryption, Version 1.5.
RFC 2313. March 1998. RFC 2313. March 1998.
PKCS#1v2.0 Kaliski, B. PKCS #1: RSA Encryption, Version 2.0. PKCS#1v2.0 Kaliski, B. PKCS #1: RSA Encryption, Version 2.0.
RFC 2437. October 1998. RFC 2437. October 1998.
RANDOM Eastlake, D., S. Crocker, and J. Schiller. Randomness RANDOM Eastlake, D., S. Crocker, and J. Schiller. Randomness
Recommendations for Security. RFC 1750. December 1994. Recommendations for Security. RFC 1750. December 1994.
RSA-OAEP Housley, R. "Use of the RSAES-OAEP Key Transport Algorithm
in CMS", draft-ietf-smime-cms-rsaes-oaep-03.txt, June 2002.
SYMKEYDIST Turner, S. CMS Symmetric Key Management and Distribution. SYMKEYDIST Turner, S. CMS Symmetric Key Management and Distribution.
RFC TDB. Date TBD. RFC TDB. Date TBD.
<draft-ietf-smime-symkeydist-06.txt> <draft-ietf-smime-symkeydist-06.txt>
X.208-88 CCITT. Recommendation X.208: Specification of Abstract
Syntax Notation One (ASN.1). 1988.
X.209-88 CCITT. Recommendation X.209: Specification of Basic
Encoding Rules for Abstract Syntax Notation One (ASN.1).
1988.
X.509-88 CCITT. Recommendation X.509: The Directory -
Authentication Framework. 1988.
Acknowledgements Acknowledgements
Schaad 10
Use of the AES Algorithm in CMS July 2002
This document is the result of contributions from many This document is the result of contributions from many
professionals. We appreciate the hard work of all members of the professionals. We appreciate the hard work of all members of the
IETF S/MIME Working Group. IETF S/MIME Working Group.
Author's Addresses Author's Addresses
Schaad 10
Use of the AES Algorithm in CMS July 2002
Jim Schaad Jim Schaad
Soaring Hawk Consulting Soaring Hawk Consulting
Email: jimsch@exmsft.com Email: jimsch@exmsft.com
Appendix A ASN.1 Module Appendix A ASN.1 Module
CMSAesRsaesOaep {iso(1) member-body(2) us(840) rsadsi(113549) CMSAesRsaesOaep {iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-aes(19) } pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-aes(19) }
skipping to change at line 634 skipping to change at line 636
id-aes256-CBC OBJECT IDENTIFIER ::= { aes 42 } id-aes256-CBC OBJECT IDENTIFIER ::= { aes 42 }
-- AES-IV is a the parameter for all the above object identifiers. -- AES-IV is a the parameter for all the above object identifiers.
AES-IV ::= OCTET STRING (SIZE(16)) AES-IV ::= OCTET STRING (SIZE(16))
-- AES S/MIME Capabilty parameter for all the above object identifiers -- AES S/MIME Capabilty parameter for all the above object identifiers
AESSMimeCapability ::= NULL AESSMimeCapability ::= NULL
END -- AES Key Wrap Algorithm Identifiers - Parameter is absent
id-aes128-wrap OBJECT IDENTIFIER ::= { aes 5 }
id-aes192-wrap OBJECT IDENTIFIER ::= { aes 25 }
id-aes256-wrap OBJECT IDENTIFIER ::= { aes 45 }
Schaad 11 Schaad 11
Use of the AES Algorithm in CMS July 2002
END
Schaad 12
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/