RFC 9480: Certificate Management Protocol (CMP) Updates
- H. Brockhaus,
- D. von Oheimb,
- J. Gray
This RFC is now obsolete
Abstract
This document contains a set of updates to the syntax of Certificate Management Protocol (CMP) version 2 and its HTTP transfer mechanism. This document updates RFCs 4210, 5912, and 6712.¶
The aspects of CMP updated in this document are using EnvelopedData instead of EncryptedValue, clarifying the handling of p10cr messages, improving the crypto agility, as well as adding new general message types, extended key usages to identify certificates for use with CMP, and well-known URI path segments.¶
CMP version 3 is introduced to enable signaling support of EnvelopedData instead of EncryptedValue and signal the use of an explicit hash Algorithm
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in 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) 2023 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
While using CMP [RFC4210] in industrial and Internet of Things environments and developing the Lightweight CMP Profile [RFC9483], some limitations were identified in the original CMP specification. This document updates [RFC4210] and [RFC6712] to overcome these limitations.¶
Among other updates, this document improves the crypto agility of CMP, which allows more flexibility for future advances in cryptography.¶
This document also introduces new extended key usages to identify CMP endpoints on registration and certification authorities.¶
The main content of [RFC4210] and [RFC6712] remains unchanged. This document lists all sections that are updated, replaced, or added to the current text of the respective RFCs.¶
The authors acknowledge that the style of the document is hard to read because the original RFCs must be read along with this document to get the complete content. The working group decided to use this approach in order to keep the changes to [RFC4210] and [RFC6712] to the required minimum. This was meant to speed up the editorial process and to minimize the effort spent on reviewing the full text of the original documents.¶
However, [PKIX-CMP] and [HTTP-CMP] are intended to obsolete RFCs 4210 and 6712, respectively; these documents also include the changes listed in this document.¶
1.1. Convention and Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
Technical terminology is used in conformance with [RFC4210], [RFC4211], and [RFC5280]. The following key words are used:¶
- CA:
- Certification authority, which issues certificates.¶
- RA:
- Registration authority, an optional system component to which a CA delegates certificate management functions, such as authorization checks.¶
- KGA:
- Key generation authority, which generates key pairs on behalf of an EE. The KGA could be colocated with an RA or a CA.¶
- EE:
- End entity, a user, device, or service that holds a PKI certificate. An identifier for the EE is given as its subject of the certificate.¶
2. Updates to RFC 4210 - Certificate Management Protocol (CMP)
2.1. New Section 1.1 - Changes Since RFC 4210
The following subsection describes feature updates to [RFC4210]. They are always related to the base specification. Hence, references to the original sections in [RFC4210] are used whenever possible.¶
Insert this section after the current Section 1 of [RFC4210]:¶
1.1. Changes Since RFC 4210¶
The following updates are made in this document:¶
2.2. New Section 4.5 - Extended Key Usage
The following subsection introduces a new extended key usage for CMP servers authorized to centrally generate key pairs on behalf of end entities.¶
Insert this section after Section 4.4.3 of [RFC4210]:¶
4.5. Extended Key Usage¶
The extended key usage (EKU) extension indicates the purposes for which the certified key pair may be used. Therefore, it restricts the use of a certificate to specific applications.¶
A CA may want to delegate parts of its duties to other PKI management entities. This section provides a mechanism to both prove this delegation and enable an automated means for checking the authorization of this delegation. Such delegation may also be expressed by other means, e.g., explicit configuration.¶
To offer automatic validation for the delegation of a role by a CA to another entity, the certificates used for CMP message protection or signed data for central key generation MUST be issued by the delegating CA and MUST contain the respective EKUs. This proves the authorization of this entity by delegating CA to act in the given role, as described below.¶
The OIDs to be used for these EKUs are:¶
Note: Section 2.10 of [RFC6402] specifies OIDs for a Certificate Management over CMS (CMC) CA and a CMC RA. As the functionality of a CA and RA is not specific to any certificate management protocol (such as CMC or CMP), these EKUs are reused by CMP.¶
The meaning of the id-kp-cmKGA EKU is as follows:¶
- CMP KGA:
- CMP key generation authorities are CAs or are identified by the id-kp-cmKGA extended key usage. The CMP KGA knows the private key it generated on behalf of the end entity. This is a very sensitive service and needs specific authorization, which by default is with the CA certificate itself. The CA may delegate its authorization by placing the id-kp-cmKGA extended key usage in the certificate used to authenticate the origin of the generated private key. The authorization may also be determined through local configuration of the end entity.¶
2.3. Update Section 5.1.1 - PKI Message Header
Section 5.1.1 of [RFC4210] describes the PKI message header. This document introduces the new version 3, indicating support of EnvelopedData as specified in Section 2.7 and hashAlg as specified in Section 2.10.¶
Replace the ASN.1 syntax of PKIHeader and the subsequent description of pvno with the following text:¶
The usage of the protocol version number (pvno) is described in Section 7.¶
2.4. New Section 5.1.1.3 - CertProfile
Section 5.1.1 of [RFC4210] defines the PKIHeader and id-it OIDs to be used in the generalInfo field. This section introduces id
Insert this section after Section 5.1.1.2 of [RFC4210]:¶
5.1.1.3. CertProfile¶
This is used by the EE to indicate specific certificate profiles, e.g., when requesting a new certificate or a certificate request template; see Section 5.3.19.16.¶
When used in an ir/cr/kur/genm, the value MUST NOT contain more elements than the number of CertReqMsg or Info
When used in a p10cr, the value MUST NOT contain multiple certificate profile names.¶
2.5. Update Section 5.1.3.1 - Shared Secret Information
Section 5.1.3.1 of [RFC4210] describes the protection of a PKIMessage based on message authentication code (MAC) using the algorithm id
Replace the first paragraph with the following text:¶
In this case, the sender and recipient share secret information with sufficient entropy (established via out-of-band means or from a previous PKI management operation). PKIProtection will contain a MAC value and the protectionAlg MAY be one of the options described in CMP Algorithms [RFC9481]. The Password
Replace the last paragraph with the following text (Note: This fixes Errata ID 2616):¶
Note: It is RECOMMENDED that the fields of PBMParameter remain constant throughout the messages of a single transaction (e.g., ir
2.6. Replace Section 5.1.3.4 - Multiple Protection
Section 5.1.3.4 of [RFC4210] describes the nested message. This document also enables using nested messages for batch-delivery transport of PKI messages between PKI management entities and with mixed body types.¶
Replace the text of the section with the following text:¶
5.1.3.4. Multiple Protection¶
When receiving a protected PKI message, a PKI management entity, such as an RA, MAY forward that message along with adding its own protection (which is a MAC or a signature, depending on the information and certificates shared between the RA and the CA). Additionally, multiple PKI messages MAY be aggregated. There are several use cases for such messages.¶
These use cases are accomplished by nesting the messages within a new PKI message. The structure used is as follows:¶
2.7. Replace Section 5.2.2 - Encrypted Values
Section 5.2.2 of [RFC4210] describes the use of EncryptedValue to transport encrypted data. This document extends the encryption of data to preferably use EnvelopedData.¶
Replace the text of the section with the following text:¶
5.2.2. Encrypted Values¶
Where encrypted data (in this specification, private keys, certificates, or revocation passphrase) is sent in PKI messages, the EncryptedKey data structure is used.¶
See Certificate Request Message Format (CRMF) [RFC4211] for EncryptedKey and EncryptedValue syntax and Cryptographic Message Syntax (CMS) [RFC5652] for EnvelopedData syntax. Using the EncryptedKey data structure offers the choice to either use EncryptedValue (for backward compatibility only) or EnvelopedData. The use of the EncryptedValue structure has been deprecated in favor of the EnvelopedData structure. Therefore, it is RECOMMENDED to use EnvelopedData.¶
Note: The EncryptedKey structure defined in CRMF [RFC4211] is reused here, which makes the update backward compatible. Using the new syntax with the untagged default choice EncryptedValue is bits
To indicate support for EnvelopedData, the pvno cmp2021 has been introduced. Details on the usage of the protocol version number (pvno) are described in Section 7.¶
The EncryptedKey data structure is used in CMP to transport a private key, certificate, or revocation passphrase in encrypted form.¶
EnvelopedData is used as follows:¶
The content of the EnvelopedData structure, as specified in Section 6 of CMS [RFC5652], MUST be encrypted using a newly generated symmetric content
The choice of the key management technique to be used by the sender depends on the credential available at the recipient:¶
2.8. New Section 5.2.9 - GeneralizedTime
The following subsection points implementers to [RFC5280] regarding usage of Generalized
Insert this section after Section 5.2.8.4 of [RFC4210]:¶
5.2.9 GeneralizedTime¶
GeneralizedTime is a standard ASN.1 type and SHALL be used as specified in Section 4.1.2.5.2 of [RFC5280].¶
2.9. Update Section 5.3.4 - Certification Response
Section 5.3.4 of [RFC4210] describes the Certification Response. This document updates the syntax by using the parent structure EncryptedKey instead of EncryptedValue, as described in Section 2.7 above. Additionally, it clarifies the certReqId to be used in response to a p10cr message.¶
Replace the ASN.1 syntax with the following text (Note: This also fixes Errata ID 3949 and 4078):¶
Add the following as a new paragraph right after the ASN.1 syntax:¶
A p10cr message contains exactly one Certification
Add the following as new paragraphs to the end of the section:¶
The use of EncryptedKey is described in Section 5.2.2.¶
Note: To indicate support for EnvelopedData, the pvno cmp2021 has been introduced. Details on the usage of different protocol version numbers (pvno) are described in Section 7.¶
2.10. Update Section 5.3.18 - Certificate Confirmation Content
This section introduces an optional hashAlg field to the CertStatus type used in certConf messages to explicitly specify the hash algorithm for those certificates where no hash algorithm is specified in the signature
Replace the ASN.1 Syntax of CertStatus with the following text:¶
The hashAlg field SHOULD be used only in exceptional cases where the signature
2.11. Update Section 5.3.19.2 - Signing Key Pair Types
The following section clarifies the usage of the Signing Key Pair Types on referencing elliptic curves.¶
Insert this note at the end of Section 5.3.19.2 of [RFC4210]:¶
Note: In case several elliptic curves are supported, several id-ecPublicKey elements as defined in [RFC5480] need to be given, one per named curve.¶
2.12. Update Section 5.3.19.3 - Encryption/Key Agreement Key Pair Types
The following section clarifies the use of the Encryption/Key Agreement Key Pair Types on referencing elliptic curves.¶
Insert this note at the end of Section 5.3.19.3 of [RFC4210]:¶
Note: In case several elliptic curves are supported, several id-ecPublicKey elements as defined in [RFC5480] need to be given, one per named curve.¶
2.13. Replace Section 5.3.19.9 - Revocation Passphrase
Section 5.3.19.9 of [RFC4210] describes the provisioning of a revocation passphrase for authenticating a later revocation request. This document updates the handling by using the parent structure EncryptedKey instead of EncryptedValue to transport this information, as described in Section 2.7 above.¶
Replace the text of the section with the following text:¶
5.3.19.9. Revocation Passphrase¶
This MAY be used by the EE to send a passphrase to a CA/RA for the purpose of authenticating a later revocation request (in the case that the appropriate signing private key is no longer available to authenticate the request). See Appendix B for further details on the use of this mechanism.¶
2.14. New Section 5.3.19.14 - CA Certificates
The following subsection describes PKI general messages using id-it-caCerts. The intended use is specified in Section 4.3 of the Lightweight CMP Profile [RFC9483].¶
Insert this section after Section 5.3.19.13 of [RFC4210]:¶
5.3.19.14. CA Certificates¶
This MAY be used by the client to get CA certificates.¶
2.15. New Section 5.3.19.15 - Root CA Certificate Update
The following subsection describes PKI general messages using id
Insert this section after the new Section 5.3.19.14:¶
5.3.19.15. Root CA Certificate Update¶
This MAY be used by the client to get an update of a root CA certificate, which is provided in the body of the request message. In contrast to the ckuann message, this approach follows the request
The EE SHOULD reference its current trust anchor in a TrustAnchor structure in the request body, giving the root CA certificate if available; otherwise, the public key value of the trust anchor is given.¶
Note: In contrast to CAKey
2.16. New Section 5.3.19.16 - Certificate Request Template
The following subsection introduces the PKI general message using id
Insert this section after the new Section 5.3.19.15:¶
5.3.19.16. Certificate Request Template¶
This MAY be used by the client to get a template containing requirements for certificate request attributes and extensions. The controls id
The id
The id
The Cert
Note: The controls ASN.1 type is defined in Section 6 of CRMF [RFC4211].¶
2.17. New Section 5.3.19.17 - CRL Update Retrieval
The following subsection introduces the PKI general message using id
5.3.19.17. CRL Update Retrieval¶
This MAY be used by the client to get new CRLs, specifying the source of the CRLs and the thisUpdate value of the latest CRL it already has, if available. A CRL source is given either by a Distribution
2.18. Update Section 5.3.21 - Error Message Content
Section 5.3.21 of [RFC4210] describes the regular use of error messages. This document adds a use by a PKI management entity to initiate delayed delivery in response to certConf, rr, and genm requests and to error messages.¶
Replace the first sentence of the first paragraph with the following one:¶
This data structure MAY be used by an EE, CA, or RA to convey error information and by a PKI management entity to initiate delayed delivery of responses.¶
Replace the second paragraph with the following text:¶
This message MAY be generated at any time during a PKI transaction. If the client sends this request, the server MUST respond with a PKIConfirm response or another ErrorMsg if any part of the header is not valid. In case a PKI management entity sends an error message to the EE with the pKIStatusInfo field containing the status "waiting", the EE will initiate polling as described in Section 5.3.22. Otherwise, both sides MUST treat this message as the end of the transaction (if a transaction is in progress).¶
2.19. Replace Section 5.3.22 - Polling Request and Response
Section 5.3.22 of [RFC4210] describes when and how polling messages are used for ir, cr, and kur messages. This document extends the polling mechanism for outstanding responses to any kind of request message. This update also fixes the inconsistent use of the terms 'pReq' vs. 'pollReq' and 'pRep' vs. 'pollRep'.¶
Replace Section 5.3.22 of [RFC4210] with following text:¶
This pair of messages is intended to handle scenarios in which the client needs to poll the server to determine the status of an outstanding response (i.e., when the "waiting" PKIStatus has been received).¶
In response to an ir, cr, p10cr, or kur request message, polling is initiated with an ip, cp, or kup response message containing status "waiting". For any type of request message, polling can be initiated with an error response messages with status "waiting". The following clauses describe how polling messages are used. It is assumed that multiple certConf messages can be sent during transactions. There will be one sent in response to each ip, cp, or kup that contains a CertStatus for an issued certificate.¶
- 1
- In response to an ip, cp, or kup message, an EE will send a certConf for all issued certificates and expect a PKIconf for each certConf. An EE will send a pollReq message in response to each CertResponse element of an ip, cp, or kup message with status "waiting" and in response to an error message with status "waiting". Its certReqId MUST be either the index of a CertResponse data structure with status "waiting" or -1, referring to the complete response.¶
- 2
- In response to a pollReq, a CA/RA will return an ip, cp, or kup if one or more of the still pending requested certificates are ready or the final response to some other type of request is available; otherwise, it will return a pollRep.¶
- 3
- If the EE receives a pollRep, it will wait for at least the number of seconds given in the checkAfter field before sending another pollReq.¶
- 4
- If the EE receives an ip, cp, or kup, then it will be treated in the same way as the initial response; if it receives any other response, then this will be treated as the final response to the original request.¶
The following client-side state machine describes polling for individual CertResponse elements.¶
In the following exchange, the end entity is enrolling for two certificates in one request.¶
The following client-side state machine describes polling for a complete response message.¶
In the following exchange, the end entity is sending a general message request, and the response is delayed by the server.¶
2.20. Update Section 7 - Version Negotiation
Section 7 of [RFC4210] describes the use of CMP versions. This document describes the handling of the additional CMP version cmp2021, which is introduced to indicate support of EnvelopedData and hashAlg.¶
Replace the text of the second paragraph with the following text:¶
If a client knows the protocol version(s) supported by the server (e.g., from a previous PKIMessage exchange or via some out-of-band means), then it MUST send a PKIMessage with the highest version supported by both it and the server. If a client does not know what version(s) the server supports, then it MUST send a PKIMessage using the highest version it supports with the following exception. Version cmp2021 SHOULD only be used if cmp2021 syntax is needed for the request being sent or for the expected response.¶
Note: Using cmp2000 as the default pvno is done to avoid extra message exchanges for version negotiation and to foster compatibility with cmp2000 implementations
2.21. Update Section 7.1.1 - Clients Talking to RFC 2510 Servers
Section 7.1.1 of [RFC4210] describes the behavior of a client sending a cmp2000 message talking to a cmp1999 server, as specified in [RFC2510]. This document extends the section to clients with any higher version than cmp1999.¶
Replace the first sentence of Section 7.1.1 of [RFC4210] with the following text:¶
If, after sending a message with a protocol version number higher than cmp1999, a client receives an ErrorMsgContent with a version of cmp1999, then it MUST abort the current transaction.¶
2.22. Add Section 8.4 - Private Keys for Certificate Signing and CMP Message Protection
The following subsection addresses the risk arising from reusing the CA private key for CMP message protection.¶
Insert this section after Section 8.3 of [RFC4210] (Note: This fixes Errata ID 5731):¶
8.4. Private Keys for Certificate Signing and CMP Message Protection¶
A CA should not reuse its certificate signing key for other purposes, such as protecting CMP responses and TLS connections. This way, exposure to other parts of the system and the number of uses of this particularly critical key are reduced to a minimum.¶
2.23. Add Section 8.5 - Entropy of Random Numbers, Key Pairs, and Shared Secret Information
The following subsection addresses the risk arising from low entropy of random numbers, asymmetric keys, and shared secret information.¶
Insert this section after the new Section 8.4:¶
8.5. Entropy of Random Numbers, Key Pairs, and Shared Secret Information¶
Implementations must generate nonces and private keys from random input. The use of inadequate pseudorandom number generators (PRNGs) to generate cryptographic keys can result in little or no security. An attacker may find it much easier to reproduce the PRNG environment that produced the keys and to search the resulting small set of possibilities than brute-force searching the whole key space. As an example of predictable random numbers, see [CVE-2008-0166]; consequences of low-entropy random numbers are discussed in Mining Your Ps and Qs [MiningPsQs]. The generation of quality random numbers is difficult. ISO/IEC 20543:2019 [ISO.20543-2019], NIST SP 800-90A Rev.1 [NIST
If shared secret information is generated by a cryptographical
If the entropy of shared secret information protecting the delivery of a centrally generated key pair is known, it should not be less than the security strength of that key pair; if the shared secret information is reused for different key pairs, the security of the shared secret information should exceed the security strength of each individual key pair.¶
For the case of a PKI management operation that delivers a new trust anchor (e.g., a root CA certificate) using caPubs or genm that is (a) not concluded in a timely manner or (b) where the shared secret information is reused for several key management operations, the entropy of the shared secret information, if known, should not be less than the security strength of the trust anchor being managed by the operation. The shared secret information should have an entropy that at least matches the security strength of the key material being managed by the operation. Certain use cases may require shared secret information that may be of a low security strength, e.g., a human-generated password. It is RECOMMENDED that such secret information be limited to a single PKI management operation.¶
2.24. Add Section 8.6 - Trust Anchor Provisioning Using CMP Messages
The following subsection addresses the risk arising from in-band provisioning of new trust anchors in a PKI management operation.¶
Insert this section after the new Section 8.5:¶
8.6. Trust Anchor Provisioning Using CMP Messages¶
A provider of trust anchors, which may be an RA involved in configuration management of its clients, MUST NOT include to-be-trusted CA certificates in a CMP message unless the specific deployment scenario can ensure that it is adequate that the receiving EE trusts these certificates, e.g., by loading them into its trust store.¶
Whenever an EE receives in a CMP message a CA certificate to be used as a trust anchor (for example in the caPubs field of a certificate response or in a general response), it MUST properly authenticate the message sender with existing trust anchor information without requiring the new trust anchors included in the message.¶
Additionally, the EE MUST verify that the sender is an authorized source of trust anchors. This authorization is governed by local policy and typically indicated using shared secret information or with a signature-based message protection using a certificate issued by a PKI that is explicitly authorized for this purpose.¶
2.25. Add Section 8.7 - Authorizing Requests for Certificates with Specific EKUs
The following subsection addresses the security considerations to follow when authorizing requests for certificates containing specific EKUs.¶
Insert this section after new Section 8.6:¶
8.7. Authorizing Requests for Certificates with Specific EKUs¶
When a CA issues a certificate containing extended key usage extensions as defined in Section 4.5, this expresses delegation of an authorization that originally is only with the CA certificate itself. Such delegation is a very sensitive action in a PKI and therefore special care must be taken when approving such certificate requests to ensure that only legitimate entities receive a certificate containing such an EKU.¶
2.26. Update Appendix B - The Use of Revocation Passphrase
Appendix B of [RFC4210] describes the use of the revocation passphrase. As this document updates [RFC4210] to utilize the parent structure EncryptedKey instead of EncryptedValue as described in Section 2.7 above, the description is updated accordingly.¶
Replace the first bullet point of this section with the following text:¶
Replace the third bullet point of this section with the following text:¶
2.27. Update Appendix C - Request Message Behavioral Clarifications
Appendix C of [RFC4210] provides clarifications to the request message behavior. As this document updates [RFC4210] to utilize the parent structure EncryptedKey instead of EncryptedValue as described in Section 2.7 above, the description is updated accordingly.¶
Replace the comment within the ASN.1 syntax coming after the definition of POPOSigningKey with the following text (Note: This fixes Errata ID 2615):¶
Replace the ASN.1 syntax of POPOPrivKey with the following text:¶
2.28. Update Appendix D.1. - General Rules for Interpretation of These Profiles
Appendix D.1 of [RFC4210] provides general rules for interpretation of the PKI management messages profiles specified in Appendices D and E of [RFC4210]. This document updates a sentence regarding the new protocol version cmp2021.¶
Replace the last sentence of the first paragraph of the section with the following text:¶
Mandatory fields are not mentioned if they have an obvious value (e.g., in this version of these profiles, pvno is always cmp2000).¶
2.29. Update Appendix D.2. - Algorithm Use Profile
Appendix D.2 of [RFC4210] provides a list of algorithms that implementations must support when claiming conformance with PKI management message profiles, as specified in Appendix D.2 of CMP [RFC4210]. This document redirects to the new algorithm profile, as specified in Section 7.1 of CMP Algorithms [RFC9481].¶
Replace the text of the section with the following text:¶
D.2. Algorithm Use Profile¶
For specifications of algorithm identifiers and respective conventions for conforming implementations
2.30. Update Appendix D.4. - Initial Registration/Certification (Basic Authenticated Scheme)
Appendix D.4 of [RFC4210] provides the initial registration
Replace the line specifying protectionAlg of the Initialization Response message with the following text (Note: This fixes Errata ID 5201):¶
Replace the comment after the privateKey field of crc[1]
3. Updates to RFC 6712 - HTTP Transfer for the Certificate Management Protocol (CMP)
3.1. Update Section 1 - Introduction
To indicate and explain why delayed delivery of all kinds of PKIMessages may be handled at transfer level and/or at CMP level, the introduction of [RFC6712] is updated.¶
Replace the third paragraph of this section with the following text:¶
In addition to reliable transport, CMP requires connection and error handling from the transfer protocol, which is all covered by HTTP. Additionally, delayed delivery of CMP response messages may be handled at transfer level, regardless of the message contents. Since this document extends the polling mechanism specified in the second version of CMP [RFC4210] to cover all types of PKI management transactions, delays detected at application level may also be handled within CMP, using pollReq and pollRep messages.¶
3.2. New Section 1.1 - Changes Since RFC 6712
The following subsection describes feature updates to [RFC6712]. They are related to the base specification. Hence, references to the original sections in [RFC6712] are used whenever possible.¶
Insert this section after the current Section 1 of [RFC6712]:¶
1.1 Changes Since RFC 6712¶
The following updates are made in this document:¶
3.3. Replace Section 3.6 - HTTP Request-URI
Section 3.6 of [RFC6712] specifies the used HTTP URIs. This document introduces the HTTP path '
Replace the text of the section with the following text:¶
3.6. HTTP Request-URI¶
Each CMP server on a PKI management entity supporting HTTP or HTTPS transfer MUST support the use of the path prefix '/.well-known/' as defined in [RFC8615] and the registered name 'cmp' to ease interworking in a multi-vendor environment.¶
The CMP client needs to be configured with sufficient information to form the CMP server URI. This is at least the authority portion of the URI, e.g., 'www
4. IANA Considerations
4.1. Updates to the ASN.1 Modules in RFCs 4210 and 5912
This document updates the ASN.1 modules of Appendix F of [RFC4210] and Section 9 of [RFC5912] as shown in Appendixes A.1 and A.2 of this document, respectively. The OIDs 99
4.2. Updates to the IANA Considerations of RFC 4210
This document updates the IANA Consideration sections of [RFC4210] by adding this content.¶
4.2.1. SMI Security for PKIX Extended Key Purpose Registry
IANA has registered the following new entry in the "SMI Security for PKIX Extended Key Purpose" registry (see <https://
4.2.2. SMI Security for PKIX CMP Information Types
IANA has registered the following new entries in the "SMI Security for PKIX CMP Information Types" registry (see <https://
4.2.3. SMI Security for PKIX CRMF Registration Controls
IANA has registered the following new entries in the "SMI Security for PKIX CRMF Registration Controls" registry (see <https://
4.3. Updates to the IANA Considerations of RFC 6712
This document contains an update to the IANA Considerations sections of [RFC6712] by adding this content.¶
4.3.1. Well-Known URIs
IANA has registered the following new entry in the "Well-Known URIs" registry (see <https://
4.3.2. Certificate Management Protocol (CMP) Registry
This document defines a new protocol registry group entitled "Certificate Management Protocol (CMP)" (at <https://
5. Security Considerations
The security considerations of [RFC4210] are extended in Section 2.22 to Section 2.24. No security considerations updates of [RFC6712] were required.¶
6. References
6.1. Normative 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 - [RFC2510]
-
Adams, C. and S. Farrell, "Internet X.509 Public Key Infrastructure Certificate Management Protocols", RFC 2510, DOI 10
.17487 , , <https:///RFC2510 www >..rfc -editor .org /info /rfc2510 - [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 - [RFC3629]
-
Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, DOI 10
.17487 , , <https:///RFC3629 www >..rfc -editor .org /info /rfc3629 - [RFC4210]
-
Adams, C., Farrell, S., Kause, T., and T. Mononen, "Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)", RFC 4210, DOI 10
.17487 , , <https:///RFC4210 www >..rfc -editor .org /info /rfc4210 - [RFC4211]
-
Schaad, J., "Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)", RFC 4211, DOI 10
.17487 , , <https:///RFC4211 www >..rfc -editor .org /info /rfc4211 - [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 - [RFC5480]
-
Turner, S., Brown, D., Yiu, K., Housley, R., and T. Polk, "Elliptic Curve Cryptography Subject Public Key Information", RFC 5480, DOI 10
.17487 , , <https:///RFC5480 www >..rfc -editor .org /info /rfc5480 - [RFC5652]
-
Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, RFC 5652, DOI 10
.17487 , , <https:///RFC5652 www >..rfc -editor .org /info /rfc5652 - [RFC5958]
-
Turner, S., "Asymmetric Key Packages", RFC 5958, DOI 10
.17487 , , <https:///RFC5958 www >..rfc -editor .org /info /rfc5958 - [RFC6402]
-
Schaad, J., "Certificate Management over CMS (CMC) Updates", RFC 6402, DOI 10
.17487 , , <https:///RFC6402 www >..rfc -editor .org /info /rfc6402 - [RFC6712]
-
Kause, T. and M. Peylo, "Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Certificate Management Protocol (CMP)", RFC 6712, DOI 10
.17487 , , <https:///RFC6712 www >..rfc -editor .org /info /rfc6712 - [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 - [RFC8615]
-
Nottingham, M., "Well-Known Uniform Resource Identifiers (URIs)", RFC 8615, DOI 10
.17487 , , <https:///RFC8615 www >..rfc -editor .org /info /rfc8615 - [RFC8933]
-
Housley, R., "Update to the Cryptographic Message Syntax (CMS) for Algorithm Identifier Protection", RFC 8933, DOI 10
.17487 , , <https:///RFC8933 www >..rfc -editor .org /info /rfc8933 - [RFC9045]
-
Housley, R., "Algorithm Requirements Update to the Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)", RFC 9045, DOI 10
.17487 , , <https:///RFC9045 www >..rfc -editor .org /info /rfc9045 - [RFC9481]
-
Brockhaus, H., Aschauer, H., Ounsworth, M., and J. Gray, "Certificate Management Protocol (CMP) Algorithms", RFC 9481, DOI 10
.17487 , , <https:///RFC9481 www >..rfc -editor .org /info /rfc9481 - [RFC9482]
-
Sahni, M., Ed. and S. Tripathi, Ed., "Constrained Application Protocol (CoAP) Transfer for the Certificate Management Protocol", RFC 9482, DOI 10
.17487 , , <https:///RFC9482 www >..rfc -editor .org /info /rfc9482
6.2. Informative References
- [AIS31]
-
Killmann, W. and W. Schindler, "A proposal for: Functionality classes for random number generators - Version 2.0", , <https://
www >..bsi .bund .de /Shared Docs /Downloads /DE /BSI /Zertifizierung /Interpretatione n /AIS _31 _Functionality _classes _for _random _number _generators _e .pdf - [CVE-2008-0166]
-
National Institute of Science and Technology (NIST), "National Vulnerability Database - CVE-2008-0166", , <https://
nvd >..nist .gov /vuln /detail /CVE -2008 -0166 - [HTTP-CMP]
-
Brockhaus, H., von Oheimb, D., Ounsworth, M., and J. Gray, "Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Certificate Management Protocol (CMP)", Work in Progress, Internet-Draft, draft
-ietf , , <https://-lamps -rfc6712bis -03 datatracker >..ietf .org /doc /html /draft -ietf -lamps -rfc6712bis -03 - [ISO.20543-2019]
- International Organization for Standardization (ISO), "Information technology -- Security techniques -- Test and analysis methods for random bit generators within ISO/IEC 19790 and ISO/IEC 15408", ISO/IEC 20543:2019, .
- [MiningPsQs]
-
Heninger, N., Durumeric, Z., Wustrow, E., and J. A. Halderman, "Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices", Security'12: Proceedings of the 21st USENIX conference on Security symposium, , <https://
www >..usenix .org /conference /usenixsecurity1 2 /technical -sessions /presentation /heninger - [NIST
_SP _800 _90Ar1] -
Barker, E. B., Kelsey, J. M., and NIST, "Recommendation for Random Number Generation Using Deterministic Random Bit Generators", NIST Special Publications (General) 800-90Ar1, DOI 10
.6028 , , <https:///NIST .SP .800 -90Ar1 nvlpubs >..nist .gov /nistpubs /Special Publications /NIST .SP .800 -90Ar1 .pdf - [PKIX-CMP]
-
Brockhaus, H., von Oheimb, D., Ounsworth, M., and J. Gray, "Internet X.509 Public Key Infrastructure -- Certificate Management Protocol (CMP)", Work in Progress, Internet-Draft, draft
-ietf , , <https://-lamps -rfc4210bis -07 datatracker >..ietf .org /doc /html /draft -ietf -lamps -rfc4210bis -07 - [RFC2104]
-
Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, DOI 10
.17487 , , <https:///RFC2104 www >..rfc -editor .org /info /rfc2104 - [RFC2202]
-
Cheng, P. and R. Glenn, "Test Cases for HMAC-MD5 and HMAC-SHA-1", RFC 2202, DOI 10
.17487 , , <https:///RFC2202 www >..rfc -editor .org /info /rfc2202 - [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 - [RFC7299]
-
Housley, R., "Object Identifier Registry for the PKIX Working Group", RFC 7299, DOI 10
.17487 , , <https:///RFC7299 www >..rfc -editor .org /info /rfc7299 - [RFC9483]
-
Brockhaus, H., von Oheimb, D., and S. Fries, "Lightweight Certificate Management Protocol (CMP) Profile", RFC 9483, DOI 10
.17487 , , <https:///RFC9483 www >..rfc -editor .org /info /rfc9483
Appendix A. ASN.1 Modules
A.1. Update to RFC 4210 - 1988 ASN.1 Module
This section contains the updated ASN.1 module for [RFC4210]. This module replaces the module in Appendix F of that document. Although a 2002 ASN.1 module is provided, this 1988 ASN.1 module remains the normative module, as per the policy of the PKIX Working Group.¶
A.2. Update to RFC 5912 - 2002 ASN.1 Module
This section contains the updated 2002 ASN.1 module for [RFC5912]. This module replaces the module in Section 9 of [RFC5912]. The module contains those changes to the normative ASN.1 module from Appendix F of [RFC4210] that were to update to the 2002 ASN.1 standard done in [RFC5912], as well as changes made in this document.¶
Acknowledgements
Special thanks goes to Jim Schaad for his guidance and the inspiration to structure and write this document like [RFC6402], which updates CMC. Special thanks also goes to Russ Housley, Lijun Liao, Martin Peylo, and Tomas Gustavsson for reviewing and providing valuable suggestions on improving this document.¶
We also thank all reviewers of this document for their valuable feedback.¶