idnits 2.17.1 draft-jenkins-cnsa-cmc-profile-05.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 (May 29, 2019) is 1794 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 ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 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: November 30, 2019 May 29, 2019 7 Commercial National Security Algorithm (CNSA) Suite Profile of 8 Certificate Management over CMS 9 draft-jenkins-cnsa-cmc-profile-05 11 Abstract 13 This document specifies a profile of the Certificate Management over 14 CMS (CMC) protocol for managing X.509 public key certificates in 15 applications that use the Commercial National Security Algorithm 16 (CNSA) Suite published by the United States Government. 18 The profile applies to the capabilities, configuration, and operation 19 of all components of US National Security Systems that manage X.509 20 public key certificates over CMS. It is also appropriate for all 21 other US Government systems that process high-value information. 23 The profile is made publicly available here for use by developers and 24 operators of these and any other system deployments. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on November 30, 2019. 43 Copyright Notice 45 Copyright (c) 2019 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. The Commercial National Security Algorithm Suite . . . . . . 3 62 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 63 4. Requirements and Assumptions . . . . . . . . . . . . . . . . 4 64 5. Client Requirements: Generating PKI Requests . . . . . . . . 5 65 5.1. Tagged Certification Request . . . . . . . . . . . . . . 7 66 5.2. Certificate Request Message . . . . . . . . . . . . . . . 8 67 6. RA Requirements . . . . . . . . . . . . . . . . . . . . . . . 9 68 6.1. RA Processing of Requests . . . . . . . . . . . . . . . . 9 69 6.2. RA-Generated PKI Requests . . . . . . . . . . . . . . . . 9 70 6.3. RA-Generated PKI Responses . . . . . . . . . . . . . . . 10 71 7. CA Requirements . . . . . . . . . . . . . . . . . . . . . . . 11 72 7.1. CA Processing of PKI Requests . . . . . . . . . . . . . . 11 73 7.2. CA-Generated PKI Responses . . . . . . . . . . . . . . . 11 74 8. Client Requirements: Processing PKI Responses . . . . . . . . 13 75 9. Shared-Secrets . . . . . . . . . . . . . . . . . . . . . . . 14 76 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 77 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 78 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 79 12.1. Normative References . . . . . . . . . . . . . . . . . . 15 80 12.2. Informative References . . . . . . . . . . . . . . . . . 17 81 Appendix A. Scenarios . . . . . . . . . . . . . . . . . . . . . 17 82 A.1. Initial Enrollment . . . . . . . . . . . . . . . . . . . 17 83 A.2. Rekey . . . . . . . . . . . . . . . . . . . . . . . . . . 18 84 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 86 1. Introduction 88 This document specifies a profile of the Certificate Management over 89 CMS (CMC) protocol to comply with the United States National Security 90 Agency's Commercial National Security Algorithm (CNSA) Suite [CNSA]. 91 The profile applies to the capabilities, configuration, and operation 92 of all components of US National Security Systems [SP80059]. It is 93 also appropriate for all other US Government systems that process 94 high-value information. It is made publicly available for use by 95 developers and operators of these and any other system deployments. 97 This document does not define any new cryptographic algorithm suite; 98 instead, it defines a CNSA compliant profile of CMC. CMC is defined 99 in [RFC5272], [RFC5273], and [RFC5274], and is updated by [RFC6402]. 100 This document profiles CMC to manage X.509 public key certificates in 101 compliance with the CNSA Suite Certificate and Certificate Revocation 102 List (CRL) Profile [ID.cnsa-cert-profile]. This document 103 specifically focuses on defining CMC interactions for both initial 104 enrollment and rekey of CNSA Suite public key certificates between a 105 client and a Certification Authority (CA). One or more Registration 106 Authorities (RAs) may act as intermediaries between the client and 107 the CA. This profile may be further tailored by specific communities 108 to meet their needs. Specific communities will also define 109 Certificate Policies that implementations need to comply with. 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 within the scope of US Government 120 National Security Systems. 122 Recently, cryptographic transition plans have become overshadowed by 123 the prospect of the development of a cryptographically-relevant 124 quantum computer. NSA has established the Commercial National 125 Security Algorithm (CNSA) Suite to provide vendors and IT users near- 126 term flexibility in meeting their cybersecurity interoperability 127 requirements. The purpose behind this flexibility is to avoid 128 vendors and customers making two major transitions in a relatively 129 short timeframe, as we anticipate a need to shift to quantum- 130 resistant cryptography in the near future. 132 NSA is authoring a set of RFCs, including this one, to provide 133 updated guidance concerning the use of certain commonly available 134 commercial algorithms 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 for US Government National Security Systems. 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 The terminology in [RFC5272] Section 2.1 applies to this profile. 149 The term "Certificate Request" is used to refer to a single PKCS #10 150 or CRMF structure. All PKI Requests are Full PKI Requests, and all 151 PKI Responses are Full PKI Responses; the respective set of terms 152 should be interpreted synonymously in this document. 154 4. Requirements and Assumptions 156 Elliptic Curve Digital Signature Algorithm (ECDSA) and Elliptic Curve 157 Diffie-Hellman (ECDH) key pairs are on the curve P-384. FIPS 186-4 158 [FIPS186], Appendix B.4, provides useful guidance for elliptic curve 159 key pair generation that SHOULD be followed by systems that conform 160 to this document. 162 RSA key pairs (public, private) are identified by the modulus size 163 expressed in bits; RSA-3072 and RSA-4096 are computed using moduli of 164 3072 bits and 4096 bits, respectively. 166 RSA signature key pairs used in CNSA Suite compliant implementations 167 are either RSA-3072 or RSA-4096. The RSA exponent e MUST satisfy 168 2^16. 675 [FIPS186] National Institute of Standards and Technology, "Digital 676 Signature Standard (DSS)", Federal Information Processing 677 Standard 186-4, July 2013, 678 . 681 [ID.cnsa-cert-profile] 682 Jenkins, M. and L. Zieglar, "Commercial National Security 683 Algorithm (CNSA) Suite Certificate and Certificate 684 Revocation List (CRL) Profile", January 2018, 685 . 688 Work in progress. 690 [ID.cnsa-smime-profile] 691 Jenkins, M., "Using CNSA Suite Algorithms in Secure/ 692 Multipurpose Internet Mail Extensions(S/MIME)", February 693 2018, . 696 Work in progress. 698 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 699 Requirement Levels", BCP 14, RFC 2119, 700 DOI 10.17487/RFC2119, March 1997, 701 . 703 [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification 704 Request Syntax Specification Version 1.7", RFC 2986, 705 DOI 10.17487/RFC2986, November 2000, 706 . 708 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 709 Algorithms and Identifiers for RSA Cryptography for use in 710 the Internet X.509 Public Key Infrastructure Certificate 711 and Certificate Revocation List (CRL) Profile", RFC 4055, 712 DOI 10.17487/RFC4055, June 2005, 713 . 715 [RFC4056] Schaad, J., "Use of the RSASSA-PSS Signature Algorithm in 716 Cryptographic Message Syntax (CMS)", RFC 4056, 717 DOI 10.17487/RFC4056, June 2005, 718 . 720 [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, 721 "Randomness Requirements for Security", BCP 106, RFC 4086, 722 DOI 10.17487/RFC4086, June 2005, 723 . 725 [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure 726 Certificate Request Message Format (CRMF)", RFC 4211, 727 DOI 10.17487/RFC4211, September 2005, 728 . 730 [RFC4231] Nystrom, M., "Identifiers and Test Vectors for HMAC-SHA- 731 224, HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512", 732 RFC 4231, DOI 10.17487/RFC4231, December 2005, 733 . 735 [RFC5272] Schaad, J. and M. Myers, "Certificate Management over CMS 736 (CMC)", RFC 5272, DOI 10.17487/RFC5272, June 2008, 737 . 739 [RFC5273] Schaad, J. and M. Myers, "Certificate Management over CMS 740 (CMC): Transport Protocols", RFC 5273, 741 DOI 10.17487/RFC5273, June 2008, 742 . 744 [RFC5274] Schaad, J. and M. Myers, "Certificate Management Messages 745 over CMS (CMC): Compliance Requirements", RFC 5274, 746 DOI 10.17487/RFC5274, June 2008, 747 . 749 [RFC5754] Turner, S., "Using SHA2 Algorithms with Cryptographic 750 Message Syntax", RFC 5754, DOI 10.17487/RFC5754, January 751 2010, . 753 [RFC6010] Housley, R., Ashmore, S., and C. Wallace, "Cryptographic 754 Message Syntax (CMS) Content Constraints Extension", 755 RFC 6010, DOI 10.17487/RFC6010, September 2010, 756 . 758 [RFC6402] Schaad, J., "Certificate Management over CMS (CMC) 759 Updates", RFC 6402, DOI 10.17487/RFC6402, November 2011, 760 . 762 [RFC8017] Moriarty, K., Ed., Kaliski, B., Jonsson, J., and A. Rusch, 763 "PKCS #1: RSA Cryptography Specifications Version 2.2", 764 RFC 8017, DOI 10.17487/RFC8017, November 2016, 765 . 767 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 768 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 769 May 2017, . 771 12.2. Informative References 773 [SP80057] National Institute of Standards and Technology, 774 "Recommendation for Key Management, Part 1: General", 775 Special Publication 800-57 , January 2016, 776 . 778 [SP80059] National Institute of Standards and Technology, "Guideline 779 for Identifying an Information System as a National 780 Security System", Special Publication 800 59, August 2003, 781 . 784 [SP80090A] 785 National Institute of Standards and Technology, 786 "Recommendation for Random Number Generation Using 787 Deterministic Random Bit Generators", Special Publication 788 800-90A Revision 1, June 2015, 789 . 791 Appendix A. Scenarios 793 This section illustrates several potential certificate enrollment and 794 rekey scenarios supported by this profile. This section does not 795 intend to place any limits or restrictions on the use of CMC. 797 A.1. Initial Enrollment 799 This section describes three scenarios for authenticating initial 800 enrollment requests: 802 1. Previously certified signature key-pair (e.g., Manufacturer 803 Installed Certificate); 805 2. Shared-secret distributed securely out-of-band; 807 3. RA authentication. 809 A.1.1. Previously Certified Signature Key-pair 811 In this scenario, the end-entity has a private signing key, and a 812 corresponding public key certificate obtained from a cryptographic 813 module manufacturer recognized by the CA. The end-entity signs a 814 Full PKI Request with the private key that corresponds to the subject 815 public key of the previously installed signature certificate. The CA 816 will verify the authorization of the previously installed certificate 817 and issue an appropriate new certificate to the end-entity. 819 A.1.2. Shared-Secret Distributed Securely Out-of-Band 821 In this scenario, the CA distributes a shared-secret out-of-band to 822 the end-entity that the end-entity uses to authenticate its 823 certification request. The end-entity signs the Full PKI Request 824 with the private key for which the certification is being requested. 825 The end-entity includes the Identity Proof Version 2 control to 826 authenticate the request using the shared-secret. The CA uses either 827 the Identification control or the Subject in the end-entity's 828 enclosed PKCS #10 [RFC2986] or CRMF [RFC4211] certification request 829 message to identify the request. The end-entity performs either the 830 POP Link Witness Version 2 mechanism as described in [RFC5272], 831 Section 6.3.1.1, or the Shared-Subject/Subject Distinguished Name 832 (DN) linking mechanism as described in [RFC5272], Section 6.3.2. The 833 Subject in the enclosed PKCS #10 [RFC2986] or CRMF [RFC4211] 834 certification request does not necessarily match the issued 835 certificate, as it may be used just to help identify the request (and 836 corresponding shared-secret) to the CA. 838 A.1.3. RA Authentication 840 In this scenario, the end-entity does not automatically authenticate 841 its enrollment request to the CA, either because the end-entity has 842 nothing to authenticate the request with or because organizational 843 policy requires an RA's involvement. The end-entity creates a Full 844 PKI Request and sends it to an RA. The RA verifies the authenticity 845 of the request, then, if approved, encapsulates and signs the request 846 as described in Section 5.2, forwarding the new request on to the CA. 847 The Subject in the PKCS #10 [RFC2986] or CRMF [RFC4211] certification 848 request is not required to match the issued certificate, it may be 849 used just to help identify the request to the RA and/or CA. 851 A.2. Rekey 853 There are two scenarios to support the rekey of certificates that are 854 already enrolled. One addresses the rekey of signature certificates 855 and the other addresses the rekey of key establishment certificates. 856 Typically, organizational policy will require certificates to be 857 currently valid to be rekeyed, and it may require initial enrollment 858 to be repeated when rekey is not possible. However, some 859 organizational policies might allow a grace period during which an 860 expired certificate could be used to rekey. 862 A.2.1. Rekey of Signature Certificates 864 When a signature certificate is rekeyed, the PKCS #10 [RFC2986] or 865 CRMF [RFC4211] certification request message enclosed in the Full PKI 866 Request will include the same Subject as the current signature 867 certificate. The Full PKI Request will be signed by the current 868 private key corresponding to the current signature certificate. 870 A.2.2. Rekey of Key Establishment Certificates 872 When a key establishment certificate is rekeyed, the Full PKI Request 873 will generally be signed by the current private key corresponding to 874 the current signature certificate. If there is no current signature 875 certificate, one of the initial enrollment options in Appendix A.1 876 may be used. 878 Authors' Addresses 880 Michael Jenkins 881 National Security Agency 883 Email: mjjenki@nsa.gov 885 Lydia Zieglar 886 National Security Agency 888 Email: llziegl@tycho.ncsc.mil