idnits 2.17.1 draft-jenkins-cnsa-smime-profile-01.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 (August 6, 2019) is 1722 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 ---------------------------------------------------------------------------- -- Looks like a reference, but probably isn't: '0' on line 516 -- Looks like a reference, but probably isn't: '1' on line 518 -- Looks like a reference, but probably isn't: '2' on line 520 -- Looks like a reference, but probably isn't: '3' on line 288 Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 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 August 6, 2019 5 Expires: February 7, 2020 7 Using Commercial National Security Algorithm Suite Algorithms in Secure/ 8 Multipurpose Internet Mail Extensions 9 draft-jenkins-cnsa-smime-profile-01 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 February 7, 2020. 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 Establishment . . . . . . . . . . . . . . . . . . . . . . 7 70 7.1. Elliptic Curve Key Agreement . . . . . . . . . . . . . . 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 Commercial National Security Algorithm 86 (CNSA) Suite algorithms [CNSA] in Secure/Multipurpose Internet Mail 87 Extensions (S/MIME) [RFC8551]. It applies to the capabilities, 88 configuration, and operation of all components of US National 89 Security Systems that employ S/MIME messaging. US National Security 90 Systems are described in NIST Special Publication 800-59 [SP80059]. 91 It is also appropriate for all other US Government systems that 92 process high-value information. It is made publicly available for 93 use by developers and operators of these and any other system 94 deployments. 96 S/MIME makes use of the Cryptographic Message Syntax (CMS) [RFC5652] 97 [RFC5083]. In particular, the signed-data, enveloped-data, and 98 authenticated-enveloped-data content types are used. This document 99 only addresses CNSA Suite compliance for S/MIME. Other applications 100 of CMS are outside the scope of this document. 102 This document does not define any new cryptographic algorithm suite; 103 instead, it defines a CNSA compliant profile of S/MIME. Since many 104 of the CNSA Suite algorithms enjoy uses in other environments as 105 well, the majority of the conventions needed for these algorithms are 106 already specified in other documents. This document references the 107 source of these conventions, with some relevant details repeated to 108 aid developers that choose to support the CNSA Suite. Where details 109 have been repeated, the cited documents are authoritative. 111 2. The Commercial National Security Algorithm Suite 113 The National Security Agency (NSA) profiles commercial cryptographic 114 algorithms and protocols as part of its mission to support secure, 115 interoperable communications for US Government National Security 116 Systems. To this end, it publishes guidance both to assist with the 117 US Government transition to new algorithms, and to provide vendors - 118 and the Internet community in general - with information concerning 119 their proper use and configuration. 121 Recently, cryptographic transition plans have become overshadowed by 122 the prospect of the development of a cryptographically-relevant 123 quantum computer. NSA has established the Commercial National 124 Security Algorithm (CNSA) Suite to provide vendors and IT users near- 125 term flexibility in meeting their IA interoperability requirements. 126 The purpose behind this flexibility is to avoid vendors and customers 127 making two major transitions in a relatively short timeframe, as we 128 anticipate a need to shift to quantum-resistant cryptography in the 129 near future. 131 NSA is authoring a set of RFCs, including this one, to provide 132 updated guidance concerning the use of certain commonly available 133 commercial algorithms in IETF protocols. These RFCs can be used in 134 conjunction with other RFCs and cryptographic guidance (e.g., NIST 135 Special Publications) to properly protect Internet traffic and data- 136 at-rest for US Government National Security Systems.. 138 3. Terminology 140 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 141 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 142 "OPTIONAL" in this document are to be interpreted as described in BCP 143 14 [RFC2119] [RFC8174] when, and only when, they appear in all 144 capitals, as shown here. 146 4. Requirements and Assumptions 148 CMS values are generated using ASN.1 [X208], the Basic Encoding Rules 149 (BER) [X209], and the Distinguished Encoding Rules (DER) [X509]. 151 The elliptic curve used in the CNSA Suite is specified in [FIPS186], 152 and appears in the literature under two different names. For the 153 sake of clarity, we list both names below: 155 Curve NIST Name SECG Name OID [FIPS186] 156 --------------------------------------------------------- 157 nistp384 P-384 secp384r1 1.3.132.0.34 159 For CNSA Suite applications, public key certificates used to verify 160 S/MIME signatures MUST be compliant with the CNSA Suite Certificate 161 and Certificate Revocation List (CRL) Profile specified in [RFC8603]. 163 Within the CMS signed-data content type, signature algorithm 164 identifiers are located in the SignerInfo signatureAlgorithm field of 165 SignedData. In addition, signature algorithm identifiers are located 166 in the SignerInfo signatureAlgorithm field of countersignature 167 attributes. 169 Elliptic Curve Cryptography (ECC) based implementations also require 170 specification of schemes for key derivation and key wrap. 171 Requirements for these schemes are in sections Section 7.1.1 and 172 Section 7.1.2 repectively. 174 RSA key pairs (public, private) are identified by the modulus size 175 expressed in bits; RSA-3072 and RSA-4096 are computed using moduli of 176 3072 bits and 4096 bits, respectively. 178 RSA signature key pairs used in CNSA Suite compliant implementations 179 are either RSA-3072 or RSA-4096. The RSA exponent e MUST satisfy 180 2^16. 657 [FIPS180] National Institute of Standards and Technology, "Secure 658 Hash Standard (SHS)", Federal Information Processing 659 Standard 180-4, August 2015, 660 . 663 [FIPS186] National Institute of Standards and Technology, "Digital 664 Signature Standard", Federal Information Processing 665 Standard 186-4, July 2013, 666 . 669 [FIPS197] National Institute of Standards and Technology, "Advanced 670 Encryption Standard (AES)", Federal Information Processing 671 Standard 197, November 2001, 672 . 675 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 676 Requirement Levels", BCP 14, RFC 2119, 677 DOI 10.17487/RFC2119, March 1997, 678 . 680 [RFC2631] Rescorla, E., "Diffie-Hellman Key Agreement Method", 681 RFC 2631, DOI 10.17487/RFC2631, June 1999, 682 . 684 [RFC3370] Housley, R., "Cryptographic Message Syntax (CMS) 685 Algorithms", RFC 3370, DOI 10.17487/RFC3370, August 2002, 686 . 688 [RFC3560] Housley, R., "Use of the RSAES-OAEP Key Transport 689 Algorithm in Cryptographic Message Syntax (CMS)", 690 RFC 3560, DOI 10.17487/RFC3560, July 2003, 691 . 693 [RFC3565] Schaad, J., "Use of the Advanced Encryption Standard (AES) 694 Encryption Algorithm in Cryptographic Message Syntax 695 (CMS)", RFC 3565, DOI 10.17487/RFC3565, July 2003, 696 . 698 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 699 Algorithms and Identifiers for RSA Cryptography for use in 700 the Internet X.509 Public Key Infrastructure Certificate 701 and Certificate Revocation List (CRL) Profile", RFC 4055, 702 DOI 10.17487/RFC4055, June 2005, 703 . 705 [RFC4056] Schaad, J., "Use of the RSASSA-PSS Signature Algorithm in 706 Cryptographic Message Syntax (CMS)", RFC 4056, 707 DOI 10.17487/RFC4056, June 2005, 708 . 710 [RFC5083] Housley, R., "Cryptographic Message Syntax (CMS) 711 Authenticated-Enveloped-Data Content Type", RFC 5083, 712 DOI 10.17487/RFC5083, November 2007, 713 . 715 [RFC5084] Housley, R., "Using AES-CCM and AES-GCM Authenticated 716 Encryption in the Cryptographic Message Syntax (CMS)", 717 RFC 5084, DOI 10.17487/RFC5084, November 2007, 718 . 720 [RFC5480] Turner, S., Brown, D., Yiu, K., Housley, R., and T. Polk, 721 "Elliptic Curve Cryptography Subject Public Key 722 Information", RFC 5480, DOI 10.17487/RFC5480, March 2009, 723 . 725 [RFC5649] Housley, R. and M. Dworkin, "Advanced Encryption Standard 726 (AES) Key Wrap with Padding Algorithm", RFC 5649, 727 DOI 10.17487/RFC5649, September 2009, 728 . 730 [RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, 731 RFC 5652, DOI 10.17487/RFC5652, September 2009, 732 . 734 [RFC5753] Turner, S. and D. Brown, "Use of Elliptic Curve 735 Cryptography (ECC) Algorithms in Cryptographic Message 736 Syntax (CMS)", RFC 5753, DOI 10.17487/RFC5753, January 737 2010, . 739 [RFC5754] Turner, S., "Using SHA2 Algorithms with Cryptographic 740 Message Syntax", RFC 5754, DOI 10.17487/RFC5754, January 741 2010, . 743 [RFC8017] Moriarty, K., Ed., Kaliski, B., Jonsson, J., and A. Rusch, 744 "PKCS #1: RSA Cryptography Specifications Version 2.2", 745 RFC 8017, DOI 10.17487/RFC8017, November 2016, 746 . 748 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 749 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 750 May 2017, . 752 [RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 753 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 754 Message Specification", RFC 8551, DOI 10.17487/RFC8551, 755 April 2019, . 757 [RFC8603] Jenkins, M. and L. Zieglar, "Commercial National Security 758 Algorithm (CNSA) Suite Certificate and Certificate 759 Revocation List (CRL) Profile", RFC 8603, 760 DOI 10.17487/RFC8603, May 2019, 761 . 763 [SEC1] Standards for Efficient Cryptography Group, "SEC1: 764 Elliptic Curve Cryptography", May 2009, 765 . 767 [SP80038A] 768 National Institute of Standards and Technology, 769 "Recommendation for Block Cipher Modes of Operation: 770 Methods and Techniques", Special Publication 800-38A, 771 December 2001, . 774 [SP80038D] 775 National Institute of Standards and Technology, 776 "Recommendation for Block Cipher Modes of Operation: 777 Galois/Counter Mode (GCM) and GMAC", Special 778 Publication 800-38D, November 2007, 779 . 782 [SP80038F] 783 National Institute of Standards and Technology, 784 "Recommendation for Block Cipher Modes of Operation: 785 Methods for Key Wrapping", Special Publication 800-38F, 786 December 2012, . 789 [X208] CCITT, "Recommendation X.208: Specification of Abstract 790 Syntax Notation One (ASN.1)", 1988, 791 . 793 [X209] CCITT, "Recommendation X.209: Specification of Basic 794 Encoding Rules for Abstract Syntax Notation One (ASN.1)", 795 1988, . 797 [X509] CCITT, "Recommendation X.509: The Directory - 798 Authentication Framework", 1988, 799 . 801 11.2. Informative References 803 [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, 804 "Randomness Requirements for Security", BCP 106, RFC 4086, 805 DOI 10.17487/RFC4086, June 2005, 806 . 808 [SP80059] National Institute of Standards and Technology, "Guideline 809 for Identifying an Information System as a National 810 Security System", Special Publication 800-59 , August 811 2003, . 814 Author's Address 816 Michael Jenkins 817 National Security Agency 819 Email: mjjenki@nsa.gov