idnits 2.17.1 draft-jenkins-cnsa-smime-profile-03.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 (November 26, 2019) is 1612 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 520 -- Looks like a reference, but probably isn't: '1' on line 522 -- Looks like a reference, but probably isn't: '2' on line 524 -- Looks like a reference, but probably isn't: '3' on line 292 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 November 26, 2019 5 Expires: May 29, 2020 7 Using Commercial National Security Algorithm Suite Algorithms in Secure/ 8 Multipurpose Internet Mail Extensions 9 draft-jenkins-cnsa-smime-profile-03 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 May 29, 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-GCM Content Encryption . . . . . . . . . . . . . . . 13 74 8.2. AES-CBC Content Encryption . . . . . . . . . . . . . . . 14 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 . . . . . . . . . . . . . . . . . . . . . . . . 19 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 cybersecurity interoperability 126 requirements. The purpose behind this flexibility is to avoid 127 vendors and customers making two major transitions in a relatively 128 short timeframe, as we anticipate a need to shift to quantum- 129 resistant cryptography in the 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 signatureAlgorithm field of SignerInfo 165 structures contained within the SignedData. In addition, signature 166 algorithm identifiers are located in the SignerInfo 167 signatureAlgorithm field of countersignature attributes. Specific 168 requirements for digital signatures are given in Section 6; compliant 169 implementations MUST consider signatures not meeting these 170 requirements as invalid. 172 Elliptic Curve Cryptography (ECC) based implementations also require 173 specification of schemes for key derivation and key wrap. 174 Requirements for these schemes are in sections Section 7.1.1 and 175 Section 7.1.2 repectively. 177 RSA key pairs (public, private) are identified by the modulus size 178 expressed in bits; RSA-3072 and RSA-4096 are computed using moduli of 179 3072 bits and 4096 bits, respectively. 181 RSA signature key pairs used in CNSA Suite compliant implementations 182 are either RSA-3072 or RSA-4096. The RSA exponent e MUST satisfy 183 2^16. 662 [FIPS180] National Institute of Standards and Technology, "Secure 663 Hash Standard (SHS)", Federal Information Processing 664 Standard 180-4, August 2015, 665 . 668 [FIPS186] National Institute of Standards and Technology, "Digital 669 Signature Standard", Federal Information Processing 670 Standard 186-4, July 2013, 671 . 674 [FIPS197] National Institute of Standards and Technology, "Advanced 675 Encryption Standard (AES)", Federal Information Processing 676 Standard 197, November 2001, 677 . 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 [RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 758 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 759 Message Specification", RFC 8551, DOI 10.17487/RFC8551, 760 April 2019, . 762 [RFC8603] Jenkins, M. and L. Zieglar, "Commercial National Security 763 Algorithm (CNSA) Suite Certificate and Certificate 764 Revocation List (CRL) Profile", RFC 8603, 765 DOI 10.17487/RFC8603, May 2019, 766 . 768 [SEC1] Standards for Efficient Cryptography Group, "SEC1: 769 Elliptic Curve Cryptography", May 2009, 770 . 772 [SP80038A] 773 National Institute of Standards and Technology, 774 "Recommendation for Block Cipher Modes of Operation: 775 Methods and Techniques", Special Publication 800-38A, 776 December 2001, . 779 [SP80038D] 780 National Institute of Standards and Technology, 781 "Recommendation for Block Cipher Modes of Operation: 782 Galois/Counter Mode (GCM) and GMAC", Special 783 Publication 800-38D, November 2007, 784 . 787 [SP80038F] 788 National Institute of Standards and Technology, 789 "Recommendation for Block Cipher Modes of Operation: 790 Methods for Key Wrapping", Special Publication 800-38F, 791 December 2012, . 794 [X208] CCITT, "Recommendation X.208: Specification of Abstract 795 Syntax Notation One (ASN.1)", 1988, 796 . 798 [X209] CCITT, "Recommendation X.209: Specification of Basic 799 Encoding Rules for Abstract Syntax Notation One (ASN.1)", 800 1988, . 802 [X509] CCITT, "Recommendation X.509: The Directory - 803 Authentication Framework", 1988, 804 . 806 11.2. Informative References 808 [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, 809 "Randomness Requirements for Security", BCP 106, RFC 4086, 810 DOI 10.17487/RFC4086, June 2005, 811 . 813 [SP80059] National Institute of Standards and Technology, "Guideline 814 for Identifying an Information System as a National 815 Security System", Special Publication 800-59 , August 816 2003, . 819 Author's Address 821 Michael Jenkins 822 National Security Agency 824 Email: mjjenki@nsa.gov