idnits 2.17.1 draft-jenkins-cnsa-cmc-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 (February 7, 2019) is 1903 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 ---------------------------------------------------------------------------- == Outdated reference: A later version (-06) exists of draft-jenkins-cnsa-cert-crl-profile-01 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Jenkins 3 Internet-Draft L. Zieglar 4 Intended status: Informational NSA 5 Expires: August 11, 2019 February 7, 2019 7 Commercial National Security Algorithm (CNSA) Suite Profile of 8 Certificate Management over CMS 9 draft-jenkins-cnsa-cmc-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 a profile of the Certificate Management over CMS (CMC) 17 protocol for managing X.509 public key certificates in applications 18 using the CNSA Suite. It is a refinement of RFCs 5272, 5273, and 19 5274. The profile applies to the capabilities, configuration, and 20 operation of all components of US National Security Systems that 21 manage X.509 public key certificates over CMS. US National Security 22 Systems are described in NIST Special Publication SP-800-59. It is 23 also appropriate for all other US Government systems that process 24 high-value information. It is made publicly available for use by 25 developers and operators of these and 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 August 11, 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 64 4. Requirements and Assumptions . . . . . . . . . . . . . . . . 4 65 5. Client Requirements: Generating PKI Requests . . . . . . . . 5 66 5.1. Tagged Certification Request . . . . . . . . . . . . . . 7 67 5.2. Certificate Request Message . . . . . . . . . . . . . . . 8 68 6. RA Requirements . . . . . . . . . . . . . . . . . . . . . . . 9 69 6.1. RA Processing of Requests . . . . . . . . . . . . . . . . 9 70 6.2. RA-Generated PKI Requests . . . . . . . . . . . . . . . . 9 71 6.3. RA-Generated Errors . . . . . . . . . . . . . . . . . . . 10 72 7. CA Requirements . . . . . . . . . . . . . . . . . . . . . . . 11 73 7.1. CA Processing of PKI Requests . . . . . . . . . . . . . . 11 74 7.2. CA-Generated PKI Responses . . . . . . . . . . . . . . . 11 75 8. Client Requirements: Processing PKI Responses . . . . . . . . 13 76 9. Shared-Secrets . . . . . . . . . . . . . . . . . . . . . . . 14 77 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 78 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 79 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 80 12.1. Normative References . . . . . . . . . . . . . . . . . . 15 81 12.2. Informative References . . . . . . . . . . . . . . . . . 17 82 Appendix A. Scenarios . . . . . . . . . . . . . . . . . . . . . 17 83 A.1. Initial Enrollment . . . . . . . . . . . . . . . . . . . 17 84 A.2. Rekey . . . . . . . . . . . . . . . . . . . . . . . . . . 18 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 87 1. Introduction 89 This document specifies a profile of the Certificate Management over 90 CMS (CMC) protocol to comply with the United States National Security 91 Agency's Commercial National Security Algorithm (CNSA) Suite 92 [CNSSP15]. The profile applies to the capabilities, configuration, 93 and operation of all components of US National Security Systems 94 [SP-800-59]. It is also appropriate for all other US Government 95 systems that process high-value information. It is made publicly 96 available for use by developers and operators of these and any other 97 system deployments. 99 This document does not define any new cryptographic algorithm suite; 100 instead, it defines a CNSA compliant profile of CMC. CMC is defined 101 in [RFC5272], [RFC5273], and [RFC5274], and is updated by [RFC6402]. 102 This document profiles CMC to manage X.509 public key certificates in 103 compliance with the CNSA Suite Certificate and Certificate Revocation 104 List (CRL) Profile [ID.cnsa-cert-profile]. This document 105 specifically focuses on defining CMC interactions for both initial 106 enrollment and rekey of CNSA Suite public key certificates between a 107 client and a Certification Authority (CA). One or more Registration 108 Authorities (RAs) may act as intermediaries between the client and 109 the CA. This profile may be further tailored by specific communities 110 to meet their needs. Specific communities will also define 111 Certificate Policies that implementations need to comply with. 113 2. The Commercial National Security Algorithm Suite 115 The National Security Agency (NSA) profiles commercial cryptographic 116 algorithms and protocols as part of its mission to support secure, 117 interoperable communications for US Government National Security 118 Systems. To this end, it publishes guidance both to assist with the 119 USG transition to new algorithms, and to provide vendors - and the 120 Internet community in general - with information concerning their 121 proper use and configuration. 123 Recently, cryptographic transition plans have become overshadowed by 124 the prospect of the development of a cryptographically-relevant 125 quantum computer. NSA has established the Commercial National 126 Security Algorithm (CNSA) Suite to provide vendors and IT users near- 127 term flexibility in meeting their IA interoperability requirements. 128 The purpose behind this flexibility is to avoid vendors and customers 129 making two major transitions in a relatively short timeframe, as we 130 anticipate a need to shift to quantum-resistant cryptography in the 131 near future. 133 NSA is publishing a set of RFCs, including this one, to provide 134 updated guidance concerning the use of certain commonly available 135 commercial algorithms in IETF protocols. These RFCs can be used in 136 conjunction with other RFCs and cryptographic guidance (e.g., NIST 137 Special Publications) to properly protect Internet traffic and data- 138 at-rest for US Government National Security Systems. 140 3. Terminology 142 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 143 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 144 "OPTIONAL" in this document are to be interpreted as described in BCP 145 14 [RFC2119] [RFC8174] when, and only when, they appear in all 146 capitals, as shown here. 148 The terminology in [RFC5272] Section 2.1 applies to this profile. 150 The term "Certificate Request" is used to refer to a single PKCS #10 151 or CRMF structure. All PKI Requests are Full PKI Requests, and all 152 PKI Responses are Full PKI Responses; the respective set of terms 153 should be interpreted synonymously in this document. 155 4. Requirements and Assumptions 157 Elliptic Curve Digital Signature Algorithm (ECDSA) and Elliptic Curve 158 Diffie-Hellman (ECDH) key pairs are on the curve P-384. FIPS 186-4 159 [DSS], Appendix B.4, provides useful guidance for elliptic curve key 160 pair generation that SHOULD be followed by systems that conform to 161 this document. 163 RSA key pairs (public, private) are identified by the modulus size 164 expressed in bits; RSA-3072 and RSA-4096 are computed using moduli of 165 3072 bits and 4096 bits, respectively. 167 RSA signature key pairs used in CNSA Suite compliant implementations 168 are either RSA-3072 or RSA-4096. The RSA exponent e MUST satisfy 169 2^16. 670 [DSS] National Institute of Standards and Technology, "Digital 671 Signature Standard (DSS)", July 2013, 672 . 675 [ID.cnsa-cert-profile] 676 Jenkins, M. and L. Zieglar, "Commercial National Security 677 Algorithm (CNSA) Suite Certificate and Certificate 678 Revocation List (CRL) Profile", January 2018, 679 . 682 Work in progress. 684 [ID.cnsa-smime-profile] 685 Jenkins, M., "Using CNSA Suite Algorithms in Secure/ 686 Multipurpose Internet Mail Extensions(S/MIME)", February 687 2018. 689 Work in progress. 691 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 692 Requirement Levels", BCP 14, RFC 2119, 693 DOI 10.17487/RFC2119, March 1997, 694 . 696 [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification 697 Request Syntax Specification Version 1.7", RFC 2986, 698 DOI 10.17487/RFC2986, November 2000, 699 . 701 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 702 Algorithms and Identifiers for RSA Cryptography for use in 703 the Internet X.509 Public Key Infrastructure Certificate 704 and Certificate Revocation List (CRL) Profile", RFC 4055, 705 DOI 10.17487/RFC4055, June 2005, 706 . 708 [RFC4056] Schaad, J., "Use of the RSASSA-PSS Signature Algorithm in 709 Cryptographic Message Syntax (CMS)", RFC 4056, 710 DOI 10.17487/RFC4056, June 2005, 711 . 713 [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, 714 "Randomness Requirements for Security", BCP 106, RFC 4086, 715 DOI 10.17487/RFC4086, June 2005, 716 . 718 [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure 719 Certificate Request Message Format (CRMF)", RFC 4211, 720 DOI 10.17487/RFC4211, September 2005, 721 . 723 [RFC4231] Nystrom, M., "Identifiers and Test Vectors for HMAC-SHA- 724 224, HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512", 725 RFC 4231, DOI 10.17487/RFC4231, December 2005, 726 . 728 [RFC5272] Schaad, J. and M. Myers, "Certificate Management over CMS 729 (CMC)", RFC 5272, DOI 10.17487/RFC5272, June 2008, 730 . 732 [RFC5273] Schaad, J. and M. Myers, "Certificate Management over CMS 733 (CMC): Transport Protocols", RFC 5273, 734 DOI 10.17487/RFC5273, June 2008, 735 . 737 [RFC5274] Schaad, J. and M. Myers, "Certificate Management Messages 738 over CMS (CMC): Compliance Requirements", RFC 5274, 739 DOI 10.17487/RFC5274, June 2008, 740 . 742 [RFC5754] Turner, S., "Using SHA2 Algorithms with Cryptographic 743 Message Syntax", RFC 5754, DOI 10.17487/RFC5754, January 744 2010, . 746 [RFC6010] Housley, R., Ashmore, S., and C. Wallace, "Cryptographic 747 Message Syntax (CMS) Content Constraints Extension", 748 RFC 6010, DOI 10.17487/RFC6010, September 2010, 749 . 751 [RFC6402] Schaad, J., "Certificate Management over CMS (CMC) 752 Updates", RFC 6402, DOI 10.17487/RFC6402, November 2011, 753 . 755 [RFC8017] Moriarty, K., Ed., Kaliski, B., Jonsson, J., and A. Rusch, 756 "PKCS #1: RSA Cryptography Specifications Version 2.2", 757 RFC 8017, DOI 10.17487/RFC8017, November 2016, 758 . 760 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 761 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 762 May 2017, . 764 12.2. Informative References 766 [SP-800-59] 767 National Institute of Standards and Technology, "Guideline 768 for Identifying an Information System as a National 769 Security System", Special Publication 800 59, August 2003, 770 771 final>. 773 [SP80057] National Institute of Standards and Technology, 774 "Recommendation for Key Management, Part 1: General", 775 January 2016, 776 . 778 [SP80090] National Institute of Standards and Technology, 779 "Recommendation for Random Number Generation Using 780 Deterministic Random Bit Generators", June 2015, 781 . 783 Appendix A. Scenarios 785 This section illustrates several potential certificate enrollment and 786 rekey scenarios supported by this profile. This section does not 787 intend to place any limits or restrictions on the use of CMC. 789 A.1. Initial Enrollment 791 This section describes three scenarios for authenticating initial 792 enrollment requests: 794 1. Previously installed signature certificate (e.g., Manufacturer 795 Installed Certificate); 797 2. Shared-secret distributed securely out-of-band; 799 3. RA authentication. 801 A.1.1. Previously Installed Signature Certificate 803 In this scenario, the end-entity has had a signature certificate 804 installed by the cryptographic module manufacturer. As the end- 805 entity already has a signature certificate, it can be used to 806 authenticate a request for a new certificate. The end-entity signs 807 the Full PKI Request with the private key that corresponds to the 808 subject public key of a previously installed signature certificate. 809 The CA will recognize the authorization of the previously installed 810 certificate and issue an appropriate certificate to the end-entity. 812 A.1.2. Shared-Secret Distributed Securely Out-of-Band 814 In this scenario, the CA distributes a shared-secret out-of-band to 815 the end-entity that the end-entity uses to authenticate its 816 certification request. The end-entity signs the Full PKI Request 817 with the private key for which the certification is being requested. 818 The end-entity includes the Identity Proof Version 2 control to 819 authenticate the request using the shared-secret. The CA uses either 820 the Identification control or the Subject in the end-entity's 821 enclosed PKCS #10 [RFC2986] or CRMF [RFC4211] certification request 822 message to identify the request. The end-entity performs either the 823 POP Link Witness Version 2 mechanism as described in [RFC5272], 824 Section 6.3.1.1, or the Shared-Subject/Subject Distinguished Name 825 (DN) linking mechanism as described in [RFC5272], Section 6.3.2. The 826 Subject in the enclosed PKCS #10 [RFC2986] or CRMF [RFC4211] 827 certification request does not necessarily match the issued 828 certificate, as it may be used just to help identify the request (and 829 corresponding shared-secret) to the CA. 831 A.1.3. RA Authentication 833 In this scenario, the end-entity does not automatically authenticate 834 its enrollment request to the CA, either because the end-entity has 835 nothing to authenticate the request with or because organizational 836 policy requires an RA's involvement. The end-entity creates a Full 837 PKI Request and sends it to an RA. The RA verifies the authenticity 838 of the request, then, if approved, encapsulates and signs the request 839 as described in Section 5.2, forwarding the new request on to the CA. 840 The Subject in the PKCS #10 [RFC2986] or CRMF [RFC4211] certification 841 request is not required to match the issued certificate, it may be 842 used just to help identify the request to the RA and/or CA. 844 A.2. Rekey 846 There are two scenarios to support the rekey of certificates that are 847 already enrolled. One addresses the rekey of signature certificates 848 and the other addresses the rekey of key establishment certificates. 850 Typically, organizational policy will require certificates to be 851 currently valid to be rekeyed, and it may require initial enrollment 852 to be repeated when rekey is not possible. However, some 853 organizational policies might allow a grace period during which an 854 expired certificate could be used to rekey. 856 A.2.1. Rekey of Signature Certificates 858 When a signature certificate is rekeyed, the PKCS #10 [RFC2986] or 859 CRMF [RFC4211] certification request message enclosed in the Full PKI 860 Request will include the same Subject as the current signature 861 certificate. The Full PKI Request will be signed by the current 862 private key corresponding to the current signature certificate. 864 A.2.2. Rekey of Key Establishment Certificates 866 When a key establishment certificate is rekeyed, the Full PKI Request 867 will generally be signed by the current private key corresponding to 868 the current signature certificate. If there is no current signature 869 certificate, one of the initial enrollment options in Appendix A.1 870 may be used. 872 Authors' Addresses 874 Michael Jenkins 875 National Security Agency 877 Email: mjjenki@nsa.gov 879 Lydia Zieglar 880 National Security Agency 882 Email: llziegl@ntycho.ncsc.mil