idnits 2.17.1 draft-jenkins-cnsa-smime-profile-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 6, 2019) is 1876 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: 'CNSSP15' is mentioned on line 134, but not defined -- Looks like a reference, but probably isn't: '0' on line 518 -- Looks like a reference, but probably isn't: '1' on line 520 -- Looks like a reference, but probably isn't: '2' on line 522 -- Looks like a reference, but probably isn't: '3' on line 290 == Outdated reference: A later version (-06) exists of draft-jenkins-cnsa-cert-crl-profile-01 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force M. Jenkins 3 Internet-Draft NSA 4 Intended status: Informational March 6, 2019 5 Expires: September 7, 2019 7 Using Commercial National Security Algorithm Suite Algorithms in Secure/ 8 Multipurpose Internet Mail Extensions 9 draft-jenkins-cnsa-smime-profile-00 11 Abstract 13 The United States government has published the NSA Commercial 14 National Security Algorithm (CNSA) Suite, which defines cryptographic 15 algorithm policy for national security applications. This document 16 specifies the conventions for using the United States National 17 Security Agency's CNSA Suite algorithms in Secure/Multipurpose 18 Internet Mail Extensions (S/MIME) as specified in RFC 8551. It 19 applies to the capabilities, configuration, and operation of all 20 components of US National Security Systems that employ S/MIME 21 messaging. US National Security Systems are described in NIST 22 Special Publication 800-59. It is also appropriate for all other US 23 Government systems that process high-value information. It is made 24 publicly available for use by developers and operators of these and 25 any other system deployments. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on September 7, 2019. 44 Copyright Notice 46 Copyright (c) 2019 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 2. The Commercial National Security Algorithm Suite . . . . . . 3 63 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 64 4. Requirements and Assumptions . . . . . . . . . . . . . . . . 4 65 5. SHA-384 Message Digest Algorithm . . . . . . . . . . . . . . 5 66 6. Digital Signature . . . . . . . . . . . . . . . . . . . . . . 5 67 6.1. ECDSA Signature . . . . . . . . . . . . . . . . . . . . . 5 68 6.2. RSA Signature . . . . . . . . . . . . . . . . . . . . . . 6 69 7. Key Agreement . . . . . . . . . . . . . . . . . . . . . . . . 7 70 7.1. Elliptic Curve Key Exchange . . . . . . . . . . . . . . . 7 71 7.2. RSA Key Transport . . . . . . . . . . . . . . . . . . . . 11 72 8. Content Encryption . . . . . . . . . . . . . . . . . . . . . 13 73 8.1. AES-CBC Content Encryption . . . . . . . . . . . . . . . 13 74 8.2. AES-GCM Content Encryption . . . . . . . . . . . . . . . 13 75 9. Security Considerations . . . . . . . . . . . . . . . . . . . 14 76 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 77 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 78 11.1. Normative References . . . . . . . . . . . . . . . . . . 15 79 11.2. Informative References . . . . . . . . . . . . . . . . . 18 80 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18 82 1. Introduction 84 This document specifies the conventions for using the United States 85 National Security Agency's CNSA Suite algorithms [CNSA] in Secure/ 86 Multipurpose Internet Mail Extensions (S/MIME) [ID.rfc5751-bis]. It 87 applies to the capabilities, configuration, and operation of all 88 components of US National Security Systems that employ S/MIME 89 messaging. US National Security Systems are described in NIST 90 Special Publication 800-59 [SP-800-59]. It is also appropriate for 91 all other US Government systems that process high-value information. 92 It is made publicly available for use by developers and operators of 93 these and any other system deployments. 95 S/MIME makes use of the Cryptographic Message Syntax (CMS) [RFC5652] 96 [RFC5083]. In particular, the signed-data, enveloped-data, and 97 authenticated-enveloped-data content types are used. This document 98 only addresses CNSA Suite compliance for S/MIME. Other applications 99 of CMS are outside the scope of this document. 101 This document does not define any new cryptographic algorithm suite; 102 instead, it defines a CNSA compliant profile of S/MIME. Since many 103 of the CNSA Suite algorithms enjoy uses in other environments as 104 well, the majority of the conventions needed for these algorithms are 105 already specified in other documents. This document references the 106 source of these conventions, with some relevant details repeated to 107 aid developers that choose to support the CNSA Suite. Where details 108 have been repeated, the cited documents are authoritative. 110 2. The Commercial National Security Algorithm Suite 112 The National Security Agency (NSA) profiles commercial cryptographic 113 algorithms and protocols as part of its mission to support secure, 114 interoperable communications for US Government National Security 115 Systems. To this end, it publishes guidance both to assist with the 116 USG transition to new algorithms, and to provide vendors - and the 117 Internet community in general - with information concerning their 118 proper use and configuration. 120 Recently, cryptographic transition plans have become overshadowed by 121 the prospect of the development of a cryptographically-relevant 122 quantum computer. NSA has established the Commercial National 123 Security Algorithm (CNSA) Suite to provide vendors and IT users near- 124 term flexibility in meeting their IA interoperability requirements. 125 The purpose behind this flexibility is to avoid vendors and customers 126 making two major transitions in a relatively short timeframe, as we 127 anticipate a need to shift to quantum-resistant cryptography in the 128 near future. 130 Transition to post-quantum algorithms will occur after NIST has 131 completed their evaluation and standardization. In the meantime, NSA 132 is publishing a set of RFCs, including this one, to provide updated 133 guidance concerning the use of certain commonly available commercial 134 algorithms [CNSSP15] in IETF protocols. These RFCs can be used in 135 conjunction with other RFCs and cryptographic guidance (e.g., NIST 136 Special Publications) to properly protect Internet traffic and data- 137 at-rest. 139 3. Terminology 141 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 142 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 143 "OPTIONAL" in this document are to be interpreted as described in BCP 144 14 [RFC2119] [RFC8174] when, and only when, they appear in all 145 capitals, as shown here. 147 4. Requirements and Assumptions 149 CMS values are generated using ASN.1 [X.208-88], the Basic Encoding 150 Rules (BER) [X.209-88], and the Distinguished Encoding Rules (DER) 151 [X.509-88]. 153 The elliptic curve used in the CNSA Suite is specified in [FIPS186], 154 and appears in the literature under two different names. For the 155 sake of clarity, we list both names below: 157 Curve NIST Name SECG Name OID [FIPS186] 158 --------------------------------------------------------- 159 nistp384 P-384 secp384r1 1.3.132.0.34 161 For CNSA Suite applications, public key certificates used to verify 162 S/MIME signatures MUST be compliant with the CNSA Suite Certificate 163 and CRL Profile specified in [ID.cnsa-cert-profile]. 165 Within the CMS signed-data content type, signature algorithm 166 identifiers are located in the SignerInfo signatureAlgorithm field of 167 SignedData. In addition, signature algorithm identifiers are located 168 in the SignerInfo signatureAlgorithm field of countersignature 169 attributes. 171 ECC based implementations also require specification of schemes for 172 key derivation and key wrap. Requirements for these schemes are in 173 sections Section 7.1.2 and Section 7.1.1 repectively. 175 RSA key pairs (public, private) are identified by the modulus size 176 expressed in bits; RSA-3072 and RSA-4096 are computed using moduli of 177 3072 bits and 4096 bits, respectively. 179 RSA signature key pairs used in CNSA Suite compliant implementations 180 are either RSA-3072 or RSA-4096. The RSA exponent e MUST satisfy 181 2^16. 652 [FIPS186] National Institute of Standards and Technology, "Digital 653 Signature Standard", FIPS 186-4, July 2013, 654 . 657 [FIPS197] National Institute of Standards and Technology, "Advanced 658 Encryption Standard (AES)", FIPS 197, November 2001, 659 . 662 [ID.cnsa-cert-profile] 663 Jenkins, M. and L. Zieglar, "Commercial National Security 664 Algorithms (CNSA) Suite Certificate and Certificate 665 Revocation List (CRL) Profile", January 2018, 666 . 669 Work in progress. 671 [ID.rfc5751-bis] 672 Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 673 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 674 Message Specification", September 2018, 675 . 678 Work in progress. 680 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 681 Requirement Levels", BCP 14, RFC 2119, 682 DOI 10.17487/RFC2119, March 1997, 683 . 685 [RFC2631] Rescorla, E., "Diffie-Hellman Key Agreement Method", 686 RFC 2631, DOI 10.17487/RFC2631, June 1999, 687 . 689 [RFC3370] Housley, R., "Cryptographic Message Syntax (CMS) 690 Algorithms", RFC 3370, DOI 10.17487/RFC3370, August 2002, 691 . 693 [RFC3560] Housley, R., "Use of the RSAES-OAEP Key Transport 694 Algorithm in Cryptographic Message Syntax (CMS)", 695 RFC 3560, DOI 10.17487/RFC3560, July 2003, 696 . 698 [RFC3565] Schaad, J., "Use of the Advanced Encryption Standard (AES) 699 Encryption Algorithm in Cryptographic Message Syntax 700 (CMS)", RFC 3565, DOI 10.17487/RFC3565, July 2003, 701 . 703 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 704 Algorithms and Identifiers for RSA Cryptography for use in 705 the Internet X.509 Public Key Infrastructure Certificate 706 and Certificate Revocation List (CRL) Profile", RFC 4055, 707 DOI 10.17487/RFC4055, June 2005, 708 . 710 [RFC4056] Schaad, J., "Use of the RSASSA-PSS Signature Algorithm in 711 Cryptographic Message Syntax (CMS)", RFC 4056, 712 DOI 10.17487/RFC4056, June 2005, 713 . 715 [RFC5083] Housley, R., "Cryptographic Message Syntax (CMS) 716 Authenticated-Enveloped-Data Content Type", RFC 5083, 717 DOI 10.17487/RFC5083, November 2007, 718 . 720 [RFC5084] Housley, R., "Using AES-CCM and AES-GCM Authenticated 721 Encryption in the Cryptographic Message Syntax (CMS)", 722 RFC 5084, DOI 10.17487/RFC5084, November 2007, 723 . 725 [RFC5480] Turner, S., Brown, D., Yiu, K., Housley, R., and T. Polk, 726 "Elliptic Curve Cryptography Subject Public Key 727 Information", RFC 5480, DOI 10.17487/RFC5480, March 2009, 728 . 730 [RFC5649] Housley, R. and M. Dworkin, "Advanced Encryption Standard 731 (AES) Key Wrap with Padding Algorithm", RFC 5649, 732 DOI 10.17487/RFC5649, September 2009, 733 . 735 [RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, 736 RFC 5652, DOI 10.17487/RFC5652, September 2009, 737 . 739 [RFC5753] Turner, S. and D. Brown, "Use of Elliptic Curve 740 Cryptography (ECC) Algorithms in Cryptographic Message 741 Syntax (CMS)", RFC 5753, DOI 10.17487/RFC5753, January 742 2010, . 744 [RFC5754] Turner, S., "Using SHA2 Algorithms with Cryptographic 745 Message Syntax", RFC 5754, DOI 10.17487/RFC5754, January 746 2010, . 748 [RFC8017] Moriarty, K., Ed., Kaliski, B., Jonsson, J., and A. Rusch, 749 "PKCS #1: RSA Cryptography Specifications Version 2.2", 750 RFC 8017, DOI 10.17487/RFC8017, November 2016, 751 . 753 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 754 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 755 May 2017, . 757 [SEC1] Standards for Efficient Cryptography Group, "SEC1: 758 Elliptic Curve Cryptography", September 2000, 759 . 761 [SP80038A] 762 National Institute of Standards and Technology, 763 "Recommendation for Block Cipher Modes of Operation: 764 Methods and Techniques", SP 800-38A, December 2001, 765 . 768 [SP80038D] 769 National Institute of Standards and Technology, 770 "Recommendation for Block Cipher Modes of Operation: 771 Galois/Counter Mode (GCM) and GMAC", SP 800-38D, November 772 2007, . 775 [SP80038F] 776 National Institute of Standards and Technology, 777 "Recommendation for Block Cipher Modes of Operation: 778 Methods for Key Wrapping", SP 800-38F, December 2012, 779 . 782 [X.208-88] 783 CCITT, "Recommendation X.208: Specification of Abstract 784 Syntax Notation One (ASN.1)", 1988, 785 . 787 [X.209-88] 788 CCITT, "Recommendation X.209: Specification of Basic 789 Encoding Rules for Abstract Syntax Notation One (ASN.1)", 790 1988, . 792 [X.509-88] 793 CCITT, "Recommendation X.509: The Directory - 794 Authentication Framework", 1988, 795 . 797 11.2. Informative References 799 [CNSA] Committee for National Security Systems, "Commercial 800 National Security Algorithm (CNSA) Suite Fact Sheet", 801 December 2015, . 806 [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, 807 "Randomness Requirements for Security", BCP 106, RFC 4086, 808 DOI 10.17487/RFC4086, June 2005, 809 . 811 [SP-800-59] 812 National Institute of Standards and Technology, "Guideline 813 for Identifying an Information System as a National 814 Security System", Special Publication 800 59, August 2003, 815 816 final>. 818 Author's Address 819 Michael Jenkins 820 National Security Agency 822 Email: mjjenki@nsa.gov