RFC 9152: Secure Object Delivery Protocol (SODP) Server Interfaces: NSA's Profile for Delivery of Certificates, Certificate Revocation Lists (CRLs), and Symmetric Keys to Clients
- M. Jenkins,
- S. Turner
Abstract
This document specifies protocol interfaces profiled by the United States National Security Agency (NSA) for National Security System (NSS) servers that provide public key certificates, Certificate Revocation Lists (CRLs), and symmetric keys to NSS clients. Servers that support these interfaces are referred to as Secure Object Delivery Protocol (SODP) servers. The intended audience for this profile comprises developers of client devices that will obtain key management services from NSA-operated SODP servers. Interfaces supported by SODP servers include Enrollment over Secure Transport (EST) and its extensions as well as Certificate Management over CMS (CMC).¶
This profile applies to the capabilities, configuration, and operation of all components of US National Security Systems (SP 800-59). It is also appropriate for other US Government systems that process high-value information. It is made publicly available for use by developers and operators of these and any other system deployments.¶
Status of This Memo
This document is not an Internet Standards Track specification; it is published for informational purposes.¶
This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not candidates for any level of Internet Standard; see Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
This document specifies protocol interfaces profiled by the United States National Security Agency (NSA) for National Security
System (NSS) servers that provide public key certificates, Certificate Revocation Lists (CRLs), and symmetric keys to NSS clients.
Servers that support these interfaces are referred to as Secure
Object Delivery Protocol (SODP) servers. The purpose of this document is
to indicate options from, and requirements in addition to, the base
specifications listed in Section 1.1 that are necessary for client
interoperabilit
This profile applies to the capabilities, configuration, and operation of all components of US National Security Systems [SP-800-59]. It is also appropriate for other US Government systems that process high-value information. It is made publicly available for use by developers and operators of these and any other system deployments.¶
This profile conforms to the existing requirements of the NSA's Commercial National Security Algorithms (CNSAs). As operational needs evolve over time, this profile will be updated to incorporate new commercial algorithms and protocols as they are developed and approved for use.¶
1.1. Documents to be Familiar With
Familiarity with the follow specifications is assumed:¶
The requirements from RFCs apply throughout this profile and are generally not repeated here. This document is purposely written without using the requirements language described in [RFC2119] and [RFC8174].¶
1.2. Document Organization
The document is organized as follows:¶
1.3. Environment
Clients obtain
secure "objects" or "packages" from the client
In the example depicted in Figure 1, there are two SOAs:
one for symmetric keys, as depicted by the Key Trust Anchor (KTA),
and one for public key certificates, as depicted by the PKI Trust
Anchor (TA). The KTA is responsible for the creation and distribution of
symmetric keys. The KTA delegates the creation and distribution
responsibilitie
For clients that support the CMC interface and not the EST interface, the environment includes only the PKI TAs.¶
2. Abstract Syntax Notation One
Implementations of this specification use the 2002/2008 ASN.1 version; 2002/2008 ASN.1 modules can be found in [RFC5911], [RFC5912], and [RFC6268] (use [RFC6268] for the CMS syntax), while other specifications already include the 2002/2008 ASN.1 along with the 1988 ASN.1. See Section 1.1 of [RFC6268] for a discussion about the differences between the 2002 and 2008 ASN.1 versions.¶
3. EST Interface
Client options for EST [RFC7030] and EST extensions [RFC8295] are specified in this section.¶
3.1. Hypertext Transfer Protocol Layer
Clients that receive redirection responses (3xx status codes) will terminate the connection ([RFC7030], Section 3.2.1).¶
Per Section 2.2 of [RFC8295], clients indicate the format
3.2. Transport Layer Security
TLS implementations are configured as specified in [RFC9151]; the notable exception is that only EC-based algorithms are used.¶
3.3. Eligibility
At the EST interface, servers only enroll clients that they have
established a prior relationship with independently of
the EST service. To accomplish this, client owners
3.4. Authentication
Mutual authentication occurs via "Certificate TLS Authentication" ([RFC7030], Section 2.2.1). Clients provide their certificate to servers in the TLS Certificate message, which is sent in response to the server's TLS Certificate Request message. Both servers and clients reject all attempts to authenticate based on certificates that cannot be validated back to an installed TA.¶
3.5. Authorization
Clients always use an explicit TA database ([RFC7030], Section 3.6.1). At a minimum, clients support two TAs: one for the PKI and one for symmetric keys.¶
Clients check that the server's certificate includes the id-kp-cmcRA Extended Key Usage (EKU) value ([RFC6402], Section 2.10).¶
Clients that support processing of the CMS Content Constraints extension [RFC6010] ensure returned CMS content is from an SOA or an entity authorized by an SOA for that CMS content; see Section 7.1 for SOA certificates.¶
3.6. EST and EST Extensions
This section profiles SODP's interfaces for EST [RFC7030] and EST extensions [RFC8295].¶
3.6.1. /pal
The Package Availability List (PAL) is limited to 32 entries, where the 32nd PAL entry links to an additional PAL (i.e., PAL Package Type 0001).¶
3.6.2. /cacerts
The CA certificates located in the explicit TA database are distributed to the client when it is registered. This TA distribution mechanism is out of scope.¶
CA certificates provided through this service are as specified in Sections 5 and 6 of this document.¶
3.6.3. /simpleenroll
CSRs follow the specifications in Section 4.2 of [RFC8756],
except that the CMC-specific Change
Client certificates provided through this service are as specified in Section 7 of this document.¶
The HTTP content type of "text/plain" ([RFC2046], Section 4.1) is used to return human-readable errors.¶
3.6.4. /simplereenroll
There are no additional requirements for requests beyond those specified in Sections 3.4 and 3.6.3 of this document.¶
The HTTP content type of "text/plain" ([RFC2046], Section 4.1) is used to return human-readable errors.¶
3.6.5. /fullcmc
Requests are as specified in [RFC8756] with the notable exception that only EC-based algorithms are used.¶
Additional attributes for returned CMS packages can be found in [RFC7906].¶
Certificates provided through this service are as specified in Section 7 of this document.¶
3.6.6. /serverkeygen
PKCS#12 [RFC7292] -- sometimes referred to as "PFX" (Personal
Information Exchange) or "P12" -- is used to
provide server
PFXs [RFC7292] are exchanged using both password privacy mode and integrity password mode. The PRF algorithm for PBKDF2 (the KDF for PBES2 and PBMAC1) is HMAC-SHA-384, and the PBES2 encryption scheme is AES-256.¶
The HTTP content type of "text/plain" ([RFC2046], Section 4.1) is used to return human-readable errors.¶
3.6.7. /csrattrs
Clients use this service to retrieve partially filled PKIRequests
with no public key or proof
3.6.9. /symmetrickeys
Clients that claim to support SODP interoperation will be able to process the following messages from an SODP server:¶
Client
3.6.10. /eecerts, /firmware, /tamp
/eecerts, /firmware, and /tamp are not used at this time.¶
4. CMC Interface
Client options for CMC [RFC5274] [RFC6402] are specified in this section.¶
4.1. RFC 5273 Transport Protocols
Clients only use the HTTPS-based transport. The TLS implementation and configuration are as specified in [RFC9151], with the notable exception that only EC-based algorithms are used.¶
Clients that receive HTTP redirection responses (3xx status codes) will terminate the connection ([RFC7030], Section 3.2.1).¶
4.2. Eligibility
At the CMC interface, servers only enroll clients that they have
established a prior relationship with independently of
the EST service. To accomplish this, client owners
4.3. Authentication
Mutual authentication occurs via client and server signing of CMC protocol elements, as required by [RFC8756]. All such signatures are validated against an installed TA; any that fail validation are rejected.¶
4.4. Authorization
Clients support the simultaneous presence of as many TAs as are required for all of the functions of the client, and only these TAs.¶
Clients check that the server's certificate includes the id-kp-cmcRA Extended Key Usage (EKU) value ([RFC6402], Section 2.10).¶
Clients that support processing of the CMS Content Constraints extension [RFC6010] ensure returned CMS content is from an SOA or an entity authorized by an SOA for that CMS content; see Section 7.1 for SOA certificates.¶
4.5. Full PKI Requests/Responses
Requests are as specified in [RFC8756] with the notable exception that only EC-based algorithms are used.¶
Additional attributes for returned CMS packages can be found in [RFC7906].¶
Certificates provided through this service are as specified in Section 7 of this document.¶
5. Trust Anchor Profile
Clients are free to store the TA in the format of their choosing; however, servers provide TA information in the form of self-signed CA certificates. This section documents requirements for self-signed certificates in addition to those specified in [RFC8603], which in turn specifies requirements in addition to those in [RFC5280].¶
Only EC-based algorithms are used.¶
Issuer and subject names are composed of only the following naming attributes: country name, domain component, organization name, organizational unit name, common name, state or province name, distinguished name qualifier, and serial number.¶
In the Subject Key Identifier extension, the keyIdentifier is the 64
low-order bits of the subject's subject
In the Key Usage extension, the nonRepudiation bit is never set.¶
6. Non-Self-Signed Certification Authority Certificate Profile
This section documents requirements for non-self-signed CA certificates in addition to those specified in [RFC8603], which in turn specifies requirements in addition to those in [RFC5280].¶
Only EC-based algorithms are used.¶
Subject names are composed of only the following naming attributes: country name, domain component, organization name, organizational unit name, common name, state or province name, distinguished name qualifier, and serial number.¶
In the Authority Key Identifier extension, the keyIdentifier choice
is always used. The keyIdentifier is the 64 low-order bits of the
issuer's subject
In the Subject Key Identifier extension, the keyIdentifier is the 64
low-order bits of the subject's subject
In the Key Usage extension, the nonRepudiation bit is never set.¶
The Certificate Policies extension is always included, and
policy
Non-self-signed CA certificates can also include the following:¶
- Name Constraints:
- permitted
Subtrees constraints are included, and excluded Substree constraints are not. Of the GeneralName choices, issuers support the following: rfc822Name, dNSName, uniform Resource Identifier, and iPAddress (both IPv4 and IPv6) as well as hardware Module Name, which is defined in [RFC4108]. Note that rfc822Name, dNSName, and uniform Resource Identifier are defined as IA5 strings, and the character sets allowed are not uniform amongst these three name forms.¶ - CRL Distribution Points:
- A distribution
Point is always the fullName choice. The uniform Resource Identifier GeneralName choice is always included, but others can also be used as long as the first element in the sequence of CRLDistribution Points is the uniform Resource Identifier choice. The reasons and cRLIssuer fields are never populated. This extension is never marked as critical.¶ - Authority Information Access:
- Only one instance of
Access
Description is included. accessMethod is id-caIssuers, and access Location's GeneralName is always the uniform Resource Identifier choice.¶ - Extended Key Usage:
- EST servers and RAs include the id-kp-cmcRA EKU, and the CAs include the id-kp-cmcCA, which are both specified in [RFC6402].¶
Issuers include the Authority Clearance Constraints extension [RFC5913] in
non-self-signed CA certificates that are issued to non-SOAs; values for the
Certificate Policy (CP) Object Identifier (OID) and the supported classList
values are found in the issuer's CP. Criticality is determined by the
issuer, and a security
Issuers include a critical CMS Content Constraints extension [RFC6010] in CA certificates used to issue SOA certificates; this is necessary to enable enforcement of scope of the SOA authority. The content types included depend on the packages the SOA sources but include key packages (i.e., Encrypted Key Packages, Symmetric Key Packages, and Asymmetric Key Packages).¶
7. End-Entity Certificate Profile
This section documents requirements for EE signature and key establishment certificates in addition to those listed in [RFC8603], which in turn specifies requirements in addition to those in [RFC5280].¶
Only EC-based algorithms are used.¶
Subject names are composed of the following naming attributes: country name, domain component, organization name, organizational unit name, common name, state or province name, distinguished name qualifier, and serial number.¶
In the Authority Key Identifier extension, the keyIdentifier choice
is always used. The keyIdentifier is the 64 low-order bits of the
issuer's subject
In the Subject Key Identifier extension, the keyIdentifier is the 64
low-order bits of the subject's subject
In the Key Usage extension, signature certificates only assert
digital
The Certificate Policies extension is always included, and
policy
When included, the non-critical CRL Distribution Point extension's
distribution
The following subsections provide additional requirements for the different types of EE certificates.¶
7.1. Source of Authority Certificate Profile
This section specifies the format for SOA certificates, i.e., certificates issued to those entities that are authorized to create, digitally sign, encrypt, and distribute packages; these certificates are issued by non-PKI TAs.¶
The Subject Alternative Name extension is always included. The
following choices are supported: rfc822Name, dNSName, ediPartyName,
uniform
A critical CMS Content Constraints extension [RFC6010] is included in SOA signature certificates. The content types included depend on the packages the SOA sources (e.g., Encrypted Key Packages, Symmetric Key Packages, and Asymmetric Key Packages).¶
7.2. Client Certificate Profile
This section specifies the format for certificates issued to clients.¶
A non-critical Subject Directory Attributes extension is always included with the following attributes:¶
The following extensions are also included at the discretion of the CA:¶
8. Relying Party Applications
This section documents requirements for Relying Parties (RPs) in addition to those listed in [RFC8603], which in turn specifies requirements in addition to those in [RFC5280].¶
Only EC-based algorithms are used.¶
RPs support the Authority Key Identifier and the Subject Key Identifier extensions.¶
RPs should support the following extensions: CRL Distribution Points, Authority Information Access, Subject Directory Attribute, Authority Clearance Constraints, and CMS Content Constraints.¶
Within the Subject Directory Attribute extension, RPs should support the Clearance Sponsor, Clearance, and Device Owner attributes.¶
RPs support the id-kp-cmcRA and id-kp-cmcCA EKUs.¶
Failure to support extensions in this section might limit the suitability of a device for certain applications.¶
9. CRL Profile
This section documents requirements for CRLs in addition to those listed in [RFC8603], which in turn specifies requirements in addition to those in [RFC5280].¶
Only EC-based algorithms are used.¶
Two types of CRLs are produced: complete base CRLs and partitioned base CRLs.¶
crl
All CRLs include the following CRL extensions:¶
The only other extension included in partitioned base CRLs is the
Issuing Distribution Point extension. The distribution
10. IANA Considerations
This document has no IANA actions.¶
11. Security Considerations
This entire document is about security. This document profiles the use of many protocols and services: EST, CMC, and PKCS#10/#7/#12 as well as certificates, CRLs, and their extensions [RFC5280]. These have been cited throughout this document, and the specifications identified by those citations should be consulted for security considerations related to implemented protocols and services.¶
12. References
12.1. Normative References
- [RFC2046]
-
Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, DOI 10
.17487 , , <https:///RFC2046 www >..rfc -editor .org /info /rfc2046 - [RFC2985]
-
Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object Classes and Attribute Types Version 2.0", RFC 2985, DOI 10
.17487 , , <https:///RFC2985 www >..rfc -editor .org /info /rfc2985 - [RFC2986]
-
Nystrom, M. and B. Kaliski, "PKCS #10: Certification Request Syntax Specification Version 1.7", RFC 2986, DOI 10
.17487 , , <https:///RFC2986 www >..rfc -editor .org /info /rfc2986 - [RFC3739]
-
Santesson, S., Nystrom, M., and T. Polk, "Internet X.509 Public Key Infrastructure: Qualified Certificates Profile", RFC 3739, DOI 10
.17487 , , <https:///RFC3739 www >..rfc -editor .org /info /rfc3739 - [RFC4108]
-
Housley, R., "Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages", RFC 4108, DOI 10
.17487 , , <https:///RFC4108 www >..rfc -editor .org /info /rfc4108 - [RFC5274]
-
Schaad, J. and M. Myers, "Certificate Management Messages over CMS (CMC): Compliance Requirements", RFC 5274, DOI 10
.17487 , , <https:///RFC5274 www >..rfc -editor .org /info /rfc5274 - [RFC5280]
-
Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10
.17487 , , <https:///RFC5280 www >..rfc -editor .org /info /rfc5280 - [RFC5652]
-
Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, RFC 5652, DOI 10
.17487 , , <https:///RFC5652 www >..rfc -editor .org /info /rfc5652 - [RFC5911]
-
Hoffman, P. and J. Schaad, "New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME", RFC 5911, DOI 10
.17487 , , <https:///RFC5911 www >..rfc -editor .org /info /rfc5911 - [RFC5912]
-
Hoffman, P. and J. Schaad, "New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, DOI 10
.17487 , , <https:///RFC5912 www >..rfc -editor .org /info /rfc5912 - [RFC5913]
-
Turner, S. and S. Chokhani, "Clearance Attribute and Authority Clearance Constraints Certificate Extension", RFC 5913, DOI 10
.17487 , , <https:///RFC5913 www >..rfc -editor .org /info /rfc5913 - [RFC5915]
-
Turner, S. and D. Brown, "Elliptic Curve Private Key Structure", RFC 5915, DOI 10
.17487 , , <https:///RFC5915 www >..rfc -editor .org /info /rfc5915 - [RFC5916]
-
Turner, S., "Device Owner Attribute", RFC 5916, DOI 10
.17487 , , <https:///RFC5916 www >..rfc -editor .org /info /rfc5916 - [RFC5917]
-
Turner, S., "Clearance Sponsor Attribute", RFC 5917, DOI 10
.17487 , , <https:///RFC5917 www >..rfc -editor .org /info /rfc5917 - [RFC5958]
-
Turner, S., "Asymmetric Key Packages", RFC 5958, DOI 10
.17487 , , <https:///RFC5958 www >..rfc -editor .org /info /rfc5958 - [RFC5959]
-
Turner, S., "Algorithms for Asymmetric Key Package Content Type", RFC 5959, DOI 10
.17487 , , <https:///RFC5959 www >..rfc -editor .org /info /rfc5959 - [RFC6010]
-
Housley, R., Ashmore, S., and C. Wallace, "Cryptographic Message Syntax (CMS) Content Constraints Extension", RFC 6010, DOI 10
.17487 , , <https:///RFC6010 www >..rfc -editor .org /info /rfc6010 - [RFC6031]
-
Turner, S. and R. Housley, "Cryptographic Message Syntax (CMS) Symmetric Key Package Content Type", RFC 6031, DOI 10
.17487 , , <https:///RFC6031 www >..rfc -editor .org /info /rfc6031 - [RFC6032]
-
Turner, S. and R. Housley, "Cryptographic Message Syntax (CMS) Encrypted Key Package Content Type", RFC 6032, DOI 10
.17487 , , <https:///RFC6032 www >..rfc -editor .org /info /rfc6032 - [RFC6033]
-
Turner, S., "Algorithms for Cryptographic Message Syntax (CMS) Encrypted Key Package Content Type", RFC 6033, DOI 10
.17487 , , <https:///RFC6033 www >..rfc -editor .org /info /rfc6033 - [RFC6160]
-
Turner, S., "Algorithms for Cryptographic Message Syntax (CMS) Protection of Symmetric Key Package Content Types", RFC 6160, DOI 10
.17487 , , <https:///RFC6160 www >..rfc -editor .org /info /rfc6160 - [RFC6161]
-
Turner, S., "Elliptic Curve Algorithms for Cryptographic Message Syntax (CMS) Encrypted Key Package Content Type", RFC 6161, DOI 10
.17487 , , <https:///RFC6161 www >..rfc -editor .org /info /rfc6161 - [RFC6162]
-
Turner, S., "Elliptic Curve Algorithms for Cryptographic Message Syntax (CMS) Asymmetric Key Package Content Type", RFC 6162, DOI 10
.17487 , , <https:///RFC6162 www >..rfc -editor .org /info /rfc6162 - [RFC6268]
-
Schaad, J. and S. Turner, "Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)", RFC 6268, DOI 10
.17487 , , <https:///RFC6268 www >..rfc -editor .org /info /rfc6268 - [RFC6402]
-
Schaad, J., "Certificate Management over CMS (CMC) Updates", RFC 6402, DOI 10
.17487 , , <https:///RFC6402 www >..rfc -editor .org /info /rfc6402 - [RFC7030]
-
Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed., "Enrollment over Secure Transport", RFC 7030, DOI 10
.17487 , , <https:///RFC7030 www >..rfc -editor .org /info /rfc7030 - [RFC7191]
-
Housley, R., "Cryptographic Message Syntax (CMS) Key Package Receipt and Error Content Types", RFC 7191, DOI 10
.17487 , , <https:///RFC7191 www >..rfc -editor .org /info /rfc7191 - [RFC7192]
-
Turner, S., "Algorithms for Cryptographic Message Syntax (CMS) Key Package Receipt and Error Content Types", RFC 7192, DOI 10
.17487 , , <https:///RFC7192 www >..rfc -editor .org /info /rfc7192 - [RFC7292]
-
Moriarty, K., Ed., Nystrom, M., Parkinson, S., Rusch, A., and M. Scott, "PKCS #12: Personal Information Exchange Syntax v1.1", RFC 7292, DOI 10
.17487 , , <https:///RFC7292 www >..rfc -editor .org /info /rfc7292 - [RFC7906]
-
Timmel, P., Housley, R., and S. Turner, "NSA's Cryptographic Message Syntax (CMS) Key Management Attributes", RFC 7906, DOI 10
.17487 , , <https:///RFC7906 www >..rfc -editor .org /info /rfc7906 - [RFC8295]
-
Turner, S., "EST (Enrollment over Secure Transport) Extensions", RFC 8295, DOI 10
.17487 , , <https:///RFC8295 www >..rfc -editor .org /info /rfc8295 - [RFC8603]
-
Jenkins, M. and L. Zieglar, "Commercial National Security Algorithm (CNSA) Suite Certificate and Certificate Revocation List (CRL) Profile", RFC 8603, DOI 10
.17487 , , <https:///RFC8603 www >..rfc -editor .org /info /rfc8603 - [RFC8755]
-
Jenkins, M., "Using Commercial National Security Algorithm Suite Algorithms in Secure
/Multipurpose Internet Mail Extensions" , RFC 8755, DOI 10.17487 , , <https:///RFC8755 www >..rfc -editor .org /info /rfc8755 - [RFC8756]
-
Jenkins, M. and L. Zieglar, "Commercial National Security Algorithm (CNSA) Suite Profile of Certificate Management over CMS", RFC 8756, DOI 10
.17487 , , <https:///RFC8756 www >..rfc -editor .org /info /rfc8756 - [RFC9151]
-
Cooley, D., "Commercial National Security Algorithm (CNSA) Suite Profile for TLS and DTLS 1.2 and 1.3", RFC 9151, DOI 10
.17487 , , <https:///RFC9151 www >..rfc -editor .org /info /rfc9151 - [SP-800-59]
-
National Institute of Standards and Technology, "Guideline for Identifying an Information System as a National Security System", DOI 10
.6028 , NIST Special Publication 800-59, , <https:///NIST .SP .800 -59 csrc >..nist .gov /publications /detail /sp /800 -59 /final - [XML]
-
Bray, T., Paoli, J., Sperberg
-Mc , Maler, E., and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth Edition)", World Wide Web Consortium Recommendation RECQueen, C.M. -xml , , <https://-20081126 www >..w3 .org /TR /2008 /REC -xml -20081126 /
12.2. Informative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174