rfc9811.original   rfc9811.txt 
LAMPS Working Group H. Brockhaus Internet Engineering Task Force (IETF) H. Brockhaus
Internet-Draft D. von Oheimb Request for Comments: 9811 D. von Oheimb
Obsoletes: 6712 9480 (if approved) Siemens Obsoletes: 6712, 9480 Siemens
Intended status: Standards Track M. Ounsworth Category: Standards Track M. Ounsworth
Expires: 13 July 2025 J. Gray ISSN: 2070-1721 J. Gray
Entrust Entrust
9 January 2025 July 2025
Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Internet X.509 Public Key Infrastructure -- HTTP Transfer for the
Certificate Management Protocol (CMP) Certificate Management Protocol (CMP)
draft-ietf-lamps-rfc6712bis-10
Abstract Abstract
This document describes how to layer the Certificate Management This document describes how to layer the Certificate Management
Protocol (CMP) over HTTP. Protocol (CMP) over HTTP.
It includes the updates to RFC 6712 specified in RFC 9480 Section 3. It includes the updates to RFC 6712 specified in Section 3 of RFC
These updates introduce CMP URIs using a Well-known prefix. It 9480; these updates introduce CMP URIs using a well-known prefix. It
obsoletes RFC 6712 and together with I-D.ietf-lamps-rfc4210bis and it obsoletes RFC 6712; and, together with RFC 9810, it also obsoletes
also obsoletes RFC 9480. RFC 9480.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 13 July 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9811.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
Please review these documents carefully, as they describe your rights carefully, as they describe your rights and restrictions with respect
and restrictions with respect to this document. Code Components to this document. Code Components extracted from this document must
extracted from this document must include Revised BSD License text as include Revised BSD License text as described in Section 4.e of the
described in Section 4.e of the Trust Legal Provisions and are Trust Legal Provisions and are provided without warranty as described
provided without warranty as described in the Revised BSD License. in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. Changes Made by RFC 9480 . . . . . . . . . . . . . . . . 4 1.1. Changes Made by RFC 9480
1.2. Changes Made by This Document . . . . . . . . . . . . . . 4 1.2. Changes Made by This Document
2. Conventions Used in This Document . . . . . . . . . . . . . . 4 2. Conventions Used in This Document
3. HTTP-Based Protocol . . . . . . . . . . . . . . . . . . . . . 4 3. HTTP-Based Protocol
3.1. General Form . . . . . . . . . . . . . . . . . . . . . . 5 3.1. General Form
3.2. Media Type . . . . . . . . . . . . . . . . . . . . . . . 5 3.2. Media Type
3.3. Communication Workflow . . . . . . . . . . . . . . . . . 5 3.3. Communication Workflow
3.4. HTTP Request-URI . . . . . . . . . . . . . . . . . . . . 6 3.4. HTTP Request-URI
3.5. Pushing of Announcements . . . . . . . . . . . . . . . . 6 3.5. Pushing of Announcements
4. Implementation Considerations . . . . . . . . . . . . . . . . 7 4. Implementation Considerations
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 5. Security Considerations
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 6. IANA Considerations
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 7. References
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.1. Normative References
8.1. Normative References . . . . . . . . . . . . . . . . . . 9 7.2. Informative References
8.2. Informative References . . . . . . . . . . . . . . . . . 10 Acknowledgements
Appendix A. History of Changes . . . . . . . . . . . . . . . . . 11 Authors' Addresses
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
[RFC Editor: please delete: The Certificate Management Protocol (CMP) [RFC9810] requires a well-
defined transfer mechanism to enable End Entities (EEs), Registration
During IESG telechat the CMP Updates document was approved on Authorities (RAs), and Certification Authorities (CAs) to pass
condition that LAMPS provides a RFC6712bis document. Version -00 of PKIMessage structures between them.
this document shall be identical to RFC 6712 and version -01
incorporates the changes specified in CMP Updates Section 3.
A history of changes is available in Appendix A of this document.
The authors of this document wish to thank Tomi Kause and Martin
Peylo, the original authors of RFC 6712, for their work and invite
them, next to further volunteers, to join the -bis activity as co-
authors.
]
The Certificate Management Protocol (CMP) [I-D.ietf-lamps-rfc4210bis]
requires a well-defined transfer mechanism to enable End Entities
(EEs), Registration Authorities (RAs), and Certification Authorities
(CAs) to pass PKIMessage structures between them.
The first version of the CMP specification [RFC2510] included a brief The first version of the CMP specification [RFC2510] included a brief
description of a simple transfer protocol layer on top of TCP. Its description of a simple transfer protocol layer on top of TCP. Its
features were simple transfer-level error handling and a mechanism to features were simple transfer-level error handling and a mechanism to
poll for outstanding PKI messages. Additionally, it was mentioned poll for outstanding PKI messages. Additionally, it was mentioned
that PKI messages could also be conveyed using file-, E-mail-, and that PKI messages could also be conveyed using file-, email-, and
HTTP-based transfer, but those were not specified in detail. HTTP-based transfer, but those were not specified in detail.
Since the second version of the CMP specification [RFC4210] Since the second version of the CMP specification [RFC4210]
incorporated its own polling mechanism and thus the need for a incorporated its own polling mechanism, the need for a transfer
transfer protocol providing this functionality vanished. The protocol providing this functionality vanished. The remaining
remaining features CMP requires from its transfer protocols are features CMP requires from its transfer protocols are connection and
connection and error handling. error handling.
CMP can benefit from utilizing reliable transport as CMP requires CMP can benefit from utilizing reliable transport, as it requires
connection and error handling from the transfer protocol. All these connection and error handling from the transfer protocol. All these
features are covered by HTTP. Additionally, delayed delivery of CMP features are covered by HTTP. Additionally, delayed delivery of CMP
response messages may be handled at transfer level, regardless of the response messages may be handled at transfer level, regardless of the
message contents. Since [RFC9480] extends the polling mechanism message contents. Since [RFC9480] extends the polling mechanism
specified in the second version of CMP [RFC4210] to cover all types specified in the second version of CMP [RFC4210] to cover all types
of PKI management transactions, delays detected at application level of PKI management transactions, delays detected at application level
may also be handled within CMP, using pollReq and pollRep messages. may also be handled within CMP, using pollReq and pollRep messages.
The usage of HTTP (e.g., HTTP/1.1 as specified in [RFC9110] and The usage of HTTP (e.g., HTTP/1.1 as specified in [RFC9110] and
[RFC9112]) for transferring CMP messages exclusively uses the POST [RFC9112]) for transferring CMP messages exclusively uses the POST
method for requests, effectively tunneling CMP over HTTP. While this method for requests, effectively tunneling CMP over HTTP. While this
is generally considered bad practice (see BCP 56 [RFC9205] for best is generally considered bad practice (see RFC 9205 [BCP56] for best
current practice on building protocols with HTTP) and should not be current practice on building protocols with HTTP) and should not be
emulated, there are good reasons to do so for transferring CMP. HTTP emulated, there are good reasons to do so for transferring CMP. HTTP
is used as it is generally easy-to-implement and it is able to is used as it is generally easy to implement and it is able to
traverse network borders utilizing ubiquitous proxies. Most traverse network borders utilizing ubiquitous proxies. Most
importantly, HTTP is already commonly used in existing CMP importantly, HTTP is already commonly used in existing CMP
implementations. Other HTTP request methods, such as GET, are not implementations. Other HTTP request methods, such as GET, are not
used because PKI management operations can only be triggered using used because PKI management operations can only be triggered using
CMP's PKI messages, which need to be transferred using a POST CMP's PKI messages, which need to be transferred using a POST
request. request.
With its status codes, HTTP provides needed error reporting With its status codes, HTTP provides needed error reporting
capabilities. General problems on the server side, as well as those capabilities. General problems on the server side, as well as those
directly caused by the respective request, can be reported to the directly caused by the respective request, can be reported to the
skipping to change at page 4, line 16 skipping to change at line 132
identifying transactions spanning over more than just a single identifying transactions spanning over more than just a single
request/response pair, the statelessness of HTTP is not blocking its request/response pair, the statelessness of HTTP is not blocking its
usage as the transfer protocol for CMP messages. usage as the transfer protocol for CMP messages.
1.1. Changes Made by RFC 9480 1.1. Changes Made by RFC 9480
CMP Updates [RFC9480] updated Section 3.6 of [RFC6712], supporting CMP Updates [RFC9480] updated Section 3.6 of [RFC6712], supporting
the PKI management operations specified in the Lightweight CMP the PKI management operations specified in the Lightweight CMP
Profile [RFC9483], in the following areas: Profile [RFC9483], in the following areas:
* Introduce the HTTP URI path prefix '/.well-known/cmp'. * Introduced the HTTP URI path prefix '/.well-known/cmp'.
* Add options for extending the URI structure with further segments * Added options for extending the URI structure with further
and define a new protocol registry group to that aim. segments and defined a new protocol registry group to that aim.
1.2. Changes Made by This Document 1.2. Changes Made by This Document
This document obsoletes [RFC6712]. It includes the changes specified This document obsoletes [RFC6712]. It includes the changes specified
in Section 3 of [RFC9480] as described in Section 1.1 of this in Section 3 of [RFC9480], as described in Section 1.1 of this
document. Additionally, it adds the following changes: document. Additionally, it adds the following changes:
* Removed the requirement to support HTTP/1.0 [RFC1945] in * Removed the requirement to support HTTP/1.0 [RFC1945] in
accordance with Section 4.1 of [RFC9205]. accordance with Section 4.1 of [RFC9205].
* Implementations MUST forward CMP messages when an HTTP error * Implementations MUST forward CMP messages when an HTTP error
status code occurs, see Section 3.1. status code occurs; see Section 3.1.
* Removed Section 3.8 of [RFC6712] as it contains information * Removed Section 3.8 of [RFC6712] as it contains information
redundant with current HTTP specification. redundant with current HTTP specification.
2. Conventions Used in This Document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in BCP
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. HTTP-Based Protocol 3. HTTP-Based Protocol
For direct interaction between two entities, where a reliable For direct interaction between two entities, where a reliable
transport protocol like TCP [RFC9293] is available, HTTP [RFC9110] transport protocol like TCP [RFC9293] is available, HTTP [RFC9110]
SHOULD be utilized for conveying CMP messages. This specification SHOULD be utilized for conveying CMP messages. This specification
requires using the POST method (Section 3.1) and the "Content-Type" requires using the POST method (Section 3.1) and the "Content-Type"
header field (Section 3.2), which are available since HTTP/1.0 header field (Section 3.2), which are available since HTTP/1.0
[RFC1945]. [RFC1945].
Note: In some situations, CMP requires multiple request/response Note: In some situations, CMP requires multiple request/response
pairs to perform a PKI management operation. Their affiliation with pairs to perform a PKI management operation. Their affiliation with
a PKI management operation is indicated by a transaction identifier a PKI management operation is indicated by a transaction identifier
in the CMP message header (see transactionID described in in the CMP message header (see transactionID described in
Section 5.1.1 of [I-D.ietf-lamps-rfc4210bis]). For details on how to Section 5.1.1 of [RFC9810]). For details on how to transfer multiple
transfer multiple requests see Section 4.11 of [RFC9205]. requests, see Section 4.11 of [RFC9205].
3.1. General Form 3.1. General Form
A DER-encoded [ITU.X690.1994] PKIMessage (Section 5.1 of A DER-encoded [ITU.X690.1994] PKIMessage (Section 5.1 of [RFC9810])
[I-D.ietf-lamps-rfc4210bis]) MUST be sent as the content of an HTTP MUST be sent as the content of an HTTP POST request. If this HTTP
POST request. If this HTTP request is successful, the server returns request is successful, the server returns the CMP response in the
the CMP response in the content of the HTTP response. The HTTP content of the HTTP response. The HTTP response status code in this
response status code in this case MUST be 200 (OK) status code; other case MUST be 200 (OK); other Successful 2xx status codes MUST NOT be
Successful 2xx status codes MUST NOT be used for this purpose. HTTP used for this purpose. HTTP responses to pushed CMP announcement
responses to pushed CMP announcement messages described in messages described in Section 3.5 utilize the status codes 201 and
Section 3.5 utilize the status codes 201 and 202 to identify whether 202 to identify whether the received information was processed.
the received information was processed.
While Redirection 3xx status codes MAY be supported by While Redirection 3xx status codes MAY be supported by
implementations, clients should only be enabled to automatically implementations, clients should only be enabled to automatically
follow them after careful consideration of possible security follow them after careful consideration of possible security
implications. As described in Section 5, 301 (Moved Permanently) implications. As described in Section 5, the 301 (Moved Permanently)
status code could be misused for permanent denial of service. status code could be misused for permanent denial of service.
All applicable Client Error 4xx or Server Error 5xx status codes MAY All applicable Client Error 4xx or Server Error 5xx status codes MAY
be used to inform the client about errors. Whenever a client be used to inform the client about errors. Whenever a client
receives an HTTP response with a status code in the 2xx, 4xx, or 5xx receives an HTTP response with a status code in the 2xx, 4xx, or 5xx
ranges, it MUST support handling response message content containing ranges, it MUST support handling response message content containing
a CMP response PKIMessage. a CMP response PKIMessage.
3.2. Media Type 3.2. Media Type
The Internet Media Type "application/pkixcmp" MUST be set in the HTTP The Internet media type "application/pkixcmp" MUST be set in the HTTP
"Content-Type" header field when conveying a PKIMessage. "Content-Type" header field when conveying a PKIMessage.
3.3. Communication Workflow 3.3. Communication Workflow
In CMP, most communication is initiated by the EEs where every CMP In CMP, most communication is initiated by the EEs where every CMP
request triggers a CMP response message from the CA or RA. request triggers a CMP response message from the CA or RA.
The CMP announcement messages described in Section 3.5 are an The CMP announcement messages described in Section 3.5 are an
exception. Their creation may be triggered by certain events or done exception. Their creation may be triggered by certain events or done
on a regular basis by a CA. The recipient of the announcement only on a regular basis by a CA. The recipient of the announcement only
skipping to change at page 6, line 26 skipping to change at line 236
CMP clients have to be configured with sufficient information to form CMP clients have to be configured with sufficient information to form
the CMP server URI. This is at least the authority portion of the the CMP server URI. This is at least the authority portion of the
URI, e.g., 'www.example.com:80', or the full operation path segment URI, e.g., 'www.example.com:80', or the full operation path segment
of the PKI management entity. Additionally, path segments MAY be of the PKI management entity. Additionally, path segments MAY be
added after the registered application name as part of the full added after the registered application name as part of the full
operation path to provide further distinction. The path segment 'p' operation path to provide further distinction. The path segment 'p'
followed by an arbitraryLabel <name> could, for example, support the followed by an arbitraryLabel <name> could, for example, support the
differentiation of specific CAs or certificate profiles. Further differentiation of specific CAs or certificate profiles. Further
path segments, e.g., as specified in the Lightweight CMP Profile path segments, e.g., as specified in the Lightweight CMP Profile
[RFC9483], could indicate PKI management operations using an [RFC9483], could indicate PKI management operations using an
operationLabel <operation>. The following list examples of valid operationLabel <operation>. The following list shows examples of
full CMP URIs: valid full CMP URIs:
http://www.example.com/.well-known/cmp * http://www.example.com/.well-known/cmp
http://www.example.com/.well-known/cmp/<operation> * http://www.example.com/.well-known/cmp/<operation>
http://www.example.com/.well-known/cmp/p/<name> * http://www.example.com/.well-known/cmp/p/<name>
http://www.example.com/.well-known/cmp/p/<name>/<operation> * http://www.example.com/.well-known/cmp/p/<name>/<operation>
Note that https can also be used instead of http, see item 5 in the Note that https can also be used instead of http; see item 5 in the
Security Considerations (Section 5). Security Considerations (Section 5).
3.5. Pushing of Announcements 3.5. Pushing of Announcements
A CMP server may create event-triggered announcements or generate A CMP server may create event-triggered announcements or generate
them on a regular basis. It MAY utilize HTTP transfer to convey them them on a regular basis. It MAY utilize HTTP transfer to convey them
to a suitable recipient. In this use case, the CMP server acts as an to a suitable recipient. In this use case, the CMP server acts as an
HTTP client, and the recipient needs to utilize an HTTP server. As HTTP client, and the recipient needs to utilize an HTTP server. As
no request messages are specified for those announcements, they can no request messages are specified for those announcements, they can
only be pushed to the recipient. only be pushed to the recipient.
If an EE wants to poll for a potential CA Key Update Announcement or If an EE wants to poll for a potential CA Key Update Announcement or
the current CRL, a PKI Information Request using a General Message as the current Certificate Revocation List (CRL), a PKI Information
described in Appendix D.5 of [I-D.ietf-lamps-rfc4210bis] can be used. Request using a general message as described in Appendix D.5 of
[RFC9810] can be used.
When pushing announcement messages, PKIMessage structures MUST be When pushing announcement messages, PKIMessage structures MUST be
sent as the content of an HTTP POST request. sent as the content of an HTTP POST request.
Suitable recipients for CMP announcements might, for example, be Suitable recipients for CMP announcements might, for example, be
repositories storing the announced information, such as directory repositories storing the announced information, such as directory
services. Those services listen for incoming messages, utilizing the services. Those services listen for incoming messages, utilizing the
same HTTP Request-URI scheme as defined in Section 3.4. same HTTP Request-URI scheme as defined in Section 3.4.
The following types of PKIMessage are announcements that may be The following types of PKIMessage are announcements that may be
pushed by a CA. The prefixed numbers reflect ASN.1 tags of the pushed by a CA. The prefixed numbers reflect ASN.1 tags of the
PKIBody structure (Section 5.1.2 of [I-D.ietf-lamps-rfc4210bis]). PKIBody structure (Section 5.1.2 of [RFC9810]).
[15] CA Key Update Announcement [15] CA Key Update Announcement
[16] Certificate Announcement [16] Certificate Announcement
[17] Revocation Announcement [17] Revocation Announcement
[18] CRL Announcement [18] CRL Announcement
CMP announcement messages do not require any CMP response. However, CMP announcement messages do not require any CMP response. However,
the recipient MUST acknowledge receipt with an HTTP response having the recipient MUST acknowledge receipt with an HTTP response having
an appropriate status code and an empty content. When not receiving an appropriate status code and empty content. When not receiving
such a response, it MUST be assumed that the delivery was not such a response, it MUST be assumed that the delivery was not
successful. If applicable, the sending side MAY try sending the successful. If applicable, the sending side MAY try sending the
announcement again after waiting for an appropriate time span. announcement again after waiting for an appropriate time span.
If the announced issue was successfully stored in a database or was If the announced issue was successfully stored in a database or was
already present, the answer MUST be an HTTP response with a 201 already present, the answer MUST be an HTTP response with a 201
(Created) status code and an empty content. (Created) status code and empty content.
In case the announced information was only accepted for further In case the announced information was only accepted for further
processing, the status code of the returned HTTP response MAY also be processing, the status code of the returned HTTP response MAY also be
202 (Accepted). After an appropriate delay, the sender may then try 202 (Accepted). After an appropriate delay, the sender may then try
to send the announcement again and may repeat this until it receives to send the announcement again and may repeat this until it receives
a confirmation that it has been successfully processed. The a confirmation that it has been successfully processed. The
appropriate duration of the delay and the option to increase it appropriate duration of the delay and the option to increase it
between consecutive attempts should be carefully considered. between consecutive attempts should be carefully considered.
A receiver MUST answer with a suitable 4xx or 5xx error code when a A receiver MUST answer with a suitable 4xx or 5xx error code when a
problem occurs. problem occurs.
4. Implementation Considerations 4. Implementation Considerations
Implementers should be aware that other implementations might exist Implementers should be aware that other implementations might exist
that use a different approach for transferring CMP over HTTP. that use a different approach for transferring CMP over HTTP.
Further, implementations based on earlier I-Ds that led to [RFC6712] Further, implementations based on earlier documents that led to
might use an unregistered "application/pkixcmp-poll" Media Type. [RFC6712] might use an unregistered "application/pkixcmp-poll" media
Conforming implementations MAY handle this type like "application/ type. Conforming implementations MAY handle this type like
pkixcmp". "application/pkixcmp".
5. Security Considerations 5. Security Considerations
All security considerations in HTTP [RFC9110] apply. The following All security considerations in HTTP [RFC9110] apply. The following
items need to be considered by implementers and users: items need to be considered by implementers and users:
1. There is the risk for denial-of-service attacks through resource 1. There is the risk for denial-of-service attacks through resource
consumption by opening many connections to an HTTP server. consumption by opening many connections to an HTTP server.
Therefore, idle connections should be terminated after an Therefore, idle connections should be terminated after an
appropriate timeout; this may also depend on the available free appropriate timeout; this may also depend on the available free
resources. resources.
2. Without being encapsulated in effective security protocols, such 2. Without being encapsulated in effective security protocols, such
as Transport Layer Security (TLS) [RFC5246] or [RFC8446], or as Transport Layer Security (TLS) [RFC5246] [RFC8446], or without
without using HTTP digest [RFC9530] there is no integrity using HTTP digest [RFC9530], there is no integrity protection at
protection at the HTTP level. Therefore, information from the the HTTP level. Therefore, information from the HTTP should not
HTTP should not be used to change state of the transaction, be used to change state of the transaction, regardless of whether
regardless of whether any mechanism was used to ensure the any mechanism was used to ensure the authenticity or integrity of
authenticity or integrity of HTTP messages (e.g., TLS or HTTP HTTP messages (e.g., TLS or HTTP digests).
digests).
3. Client users should be aware that storing the target location of 3. Client users should be aware that storing the target location of
an HTTP response with the 301 (Moved Permanently) status code an HTTP response with the 301 (Moved Permanently) status code
could be exploited by a meddler-in-the-middle attacker trying to could be exploited by a meddler-in-the-middle attacker trying to
block them permanently from contacting the correct server. block them permanently from contacting the correct server.
4. If no measures to authenticate and protect the HTTP responses to 4. If no measures to authenticate and protect the HTTP responses to
pushed announcement messages are in place, their information pushed announcement messages are in place, their information
regarding the announcement's processing state may not be trusted. regarding the announcement's processing state may not be trusted.
In that case, the overall design of the PKI system must not In that case, the overall design of the PKI system must not
depend on the announcements being reliably received and processed depend on the announcements being reliably received and processed
by their destination. by their destination.
5. CMP provides inbuilt integrity protection and authentication. 5. CMP provides inbuilt integrity protection and authentication.
The information communicated unencrypted in CMP messages does not The information communicated unencrypted in CMP messages does not
contain sensitive information endangering the security of the PKI contain sensitive information endangering the security of the PKI
when intercepted. However, it might be possible for an when intercepted. However, it might be possible for an
eavesdropper to utilize the available information to gather eavesdropper to utilize the available information to gather
confidential personal, technical, or business critical confidential personal, technical, or business-critical
information. The protection of the confidentiality of CMP information. The protection of the confidentiality of CMP
messages together with an initial authentication of the RA/CA messages together with an initial authentication of the RA/CA
before the first CMP message is transmitted ensures the privacy before the first CMP message is transmitted ensures the privacy
of the EE requesting certificates. Therefore, users of the HTTP of the EE requesting certificates. Therefore, users of the HTTP
transfer for CMP messages should consider using HTTP over TLS transfer for CMP messages should consider using HTTP over TLS
according to [RFC9110] or using virtual private networks created, according to [RFC9110] or using virtual private networks created,
for example, by utilizing Internet Protocol Security according to for example, by utilizing Internet Protocol Security according to
[RFC7296]. [RFC7296].
6. IANA Considerations 6. IANA Considerations
The reference to [RFC2510] at https://www.iana.org/assignments/media- IANA has made the following updates:
types/media-types.xhtml should be replaced with a reference to this
document.
The reference to [RFC4210] at https://www.iana.org/assignments/core-
parameters/core-parameters.xhtml should be replaced with a reference
to this document.
The reference to [RFC9480] at https://www.iana.org/assignments/well- * the reference for "application/pkixcmp" in the "Media Types"
known-uris/well-known-uris.xhtml and registry <https://www.iana.org/assignments/media-types> refers to
https://www.iana.org/assignments/cmp/cmp.xhtmlshould should be this document, instead of [RFC2510].
replaced with a reference to this document.
No further action by the IANA is necessary for this document or any * the reference for "application/pkixcmp" in the "CoAP Content-
anticipated updates. Formats" registry <https://www.iana.org/assignments/core-
parameters> refers to this document, instead of [RFC4210].
7. Acknowledgments * the reference for "cmp" in the "Well-Known URIs" registry
<https://www.iana.org/assignments/core-parameters> refers to this
document instead of [RFC4210].
The authors wish to thank Tomi Kause and Martin Peylo, the original * the reference for "p" in the "CMP Well-Known URI Path Segments"
authors of [RFC6712], for their work. registry <https://www.iana.org/assignments/cmp> refers to this
document instead of [RFC9480].
We also thank all reviewers for their valuable feedback. No further action by IANA is necessary for this document or any
anticipated updates.
8. References 7. References
8.1. Normative References 7.1. Normative References
[RFC1945] Berners-Lee, T., Fielding, R., and H. Frystyk, "Hypertext [RFC1945] Berners-Lee, T., Fielding, R., and H. Frystyk, "Hypertext
Transfer Protocol -- HTTP/1.0", RFC 1945, Transfer Protocol -- HTTP/1.0", RFC 1945,
DOI 10.17487/RFC1945, May 1996, DOI 10.17487/RFC1945, May 1996,
<https://www.rfc-editor.org/rfc/rfc1945>. <https://www.rfc-editor.org/info/rfc1945>.
[RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers [RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers
(URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019, (URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019,
<https://www.rfc-editor.org/rfc/rfc8615>. <https://www.rfc-editor.org/info/rfc8615>.
[RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, [RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110, Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022, DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/rfc/rfc9110>. <https://www.rfc-editor.org/info/rfc9110>.
[RFC9112] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, [RFC9112] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP/1.1", STD 99, RFC 9112, DOI 10.17487/RFC9112, Ed., "HTTP/1.1", STD 99, RFC 9112, DOI 10.17487/RFC9112,
June 2022, <https://www.rfc-editor.org/rfc/rfc9112>. June 2022, <https://www.rfc-editor.org/info/rfc9112>.
[I-D.ietf-lamps-rfc4210bis] [RFC9810] Brockhaus, H., von Oheimb, D., Ounsworth, M., and J. Gray,
Brockhaus, H., von Oheimb, D., Ounsworth, M., and J. Gray,
"Internet X.509 Public Key Infrastructure -- Certificate "Internet X.509 Public Key Infrastructure -- Certificate
Management Protocol (CMP)", Work in Progress, Internet- Management Protocol (CMP)", RFC 9810,
Draft, draft-ietf-lamps-rfc4210bis-15, 18 November 2024, DOI 10.17487/RFC9810, July 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-lamps- <https://www.rfc-editor.org/info/rfc9810>.
rfc4210bis-15>.
[ITU.X690.1994] [ITU.X690.1994]
International Telecommunications Union, "Information ITU-T, "Information Technology - ASN.1 encoding rules:
Technology - ASN.1 encoding rules: Specification of Basic Specification of Basic Encoding Rules (BER), Canonical
Encoding Rules (BER), Canonical Encoding Rules (CER) and Encoding Rules (CER) and Distinguished Encoding Rules
Distinguished Encoding Rules (DER)", ITU-T Recommendation (DER)", ITU-T Recommendation X.690, 1994,
X.690, 1994. <https://www.itu.int/rec/T-REC-X.690-199407-S/en>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
8.2. Informative References 7.2. Informative References
[RFC9480] Brockhaus, H., von Oheimb, D., and J. Gray, "Certificate [RFC9480] Brockhaus, H., von Oheimb, D., and J. Gray, "Certificate
Management Protocol (CMP) Updates", RFC 9480, Management Protocol (CMP) Updates", RFC 9480,
DOI 10.17487/RFC9480, November 2023, DOI 10.17487/RFC9480, November 2023,
<https://www.rfc-editor.org/rfc/rfc9480>. <https://www.rfc-editor.org/info/rfc9480>.
[RFC9483] Brockhaus, H., von Oheimb, D., and S. Fries, "Lightweight [RFC9483] Brockhaus, H., von Oheimb, D., and S. Fries, "Lightweight
Certificate Management Protocol (CMP) Profile", RFC 9483, Certificate Management Protocol (CMP) Profile", RFC 9483,
DOI 10.17487/RFC9483, November 2023, DOI 10.17487/RFC9483, November 2023,
<https://www.rfc-editor.org/rfc/rfc9483>. <https://www.rfc-editor.org/info/rfc9483>.
[RFC2510] Adams, C. and S. Farrell, "Internet X.509 Public Key [RFC2510] Adams, C. and S. Farrell, "Internet X.509 Public Key
Infrastructure Certificate Management Protocols", Infrastructure Certificate Management Protocols",
RFC 2510, DOI 10.17487/RFC2510, March 1999, RFC 2510, DOI 10.17487/RFC2510, March 1999,
<https://www.rfc-editor.org/rfc/rfc2510>. <https://www.rfc-editor.org/info/rfc2510>.
[RFC4210] Adams, C., Farrell, S., Kause, T., and T. Mononen, [RFC4210] Adams, C., Farrell, S., Kause, T., and T. Mononen,
"Internet X.509 Public Key Infrastructure Certificate "Internet X.509 Public Key Infrastructure Certificate
Management Protocol (CMP)", RFC 4210, Management Protocol (CMP)", RFC 4210,
DOI 10.17487/RFC4210, September 2005, DOI 10.17487/RFC4210, September 2005,
<https://www.rfc-editor.org/rfc/rfc4210>. <https://www.rfc-editor.org/info/rfc4210>.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246,
DOI 10.17487/RFC5246, August 2008, DOI 10.17487/RFC5246, August 2008,
<https://www.rfc-editor.org/rfc/rfc5246>. <https://www.rfc-editor.org/info/rfc5246>.
[RFC6712] Kause, T. and M. Peylo, "Internet X.509 Public Key [RFC6712] Kause, T. and M. Peylo, "Internet X.509 Public Key
Infrastructure -- HTTP Transfer for the Certificate Infrastructure -- HTTP Transfer for the Certificate
Management Protocol (CMP)", RFC 6712, Management Protocol (CMP)", RFC 6712,
DOI 10.17487/RFC6712, September 2012, DOI 10.17487/RFC6712, September 2012,
<https://www.rfc-editor.org/rfc/rfc6712>. <https://www.rfc-editor.org/info/rfc6712>.
[RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
Kivinen, "Internet Key Exchange Protocol Version 2 Kivinen, "Internet Key Exchange Protocol Version 2
(IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October
2014, <https://www.rfc-editor.org/rfc/rfc7296>. 2014, <https://www.rfc-editor.org/info/rfc7296>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/rfc/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
[RFC9530] Polli, R. and L. Pardue, "Digest Fields", RFC 9530, [RFC9530] Polli, R. and L. Pardue, "Digest Fields", RFC 9530,
DOI 10.17487/RFC9530, February 2024, DOI 10.17487/RFC9530, February 2024,
<https://www.rfc-editor.org/rfc/rfc9530>. <https://www.rfc-editor.org/info/rfc9530>.
[RFC9205] Nottingham, M., "Building Protocols with HTTP", BCP 56, [BCP56] Best Current Practice 56,
<https://www.rfc-editor.org/info/bcp56>.
At the time of writing, this BCP comprises the following:
Nottingham, M., "Building Protocols with HTTP", BCP 56,
RFC 9205, DOI 10.17487/RFC9205, June 2022, RFC 9205, DOI 10.17487/RFC9205, June 2022,
<https://www.rfc-editor.org/rfc/rfc9205>. <https://www.rfc-editor.org/info/rfc9205>.
[RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", [RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)",
STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022,
<https://www.rfc-editor.org/rfc/rfc9293>. <https://www.rfc-editor.org/info/rfc9293>.
Appendix A. History of Changes
Note: This appendix will be deleted in the final version of the
document.
From version 09 -> 10:
* Addressed IESG review comments from Mahesh Jethanandani and
responded to comments from Orie Steele and Zaheduzzaman Sarker via
email
From version 08 -> 09:
* Incorporated relevant text from former Sections 3.1 and 3.2 in the
introduction of Section 3 as proposed by HTTPDIR review
* Added reference to HTTP Security Considerations to Section 5 and
updated the first item as proposed by HTTPDIR review
From version 07 -> 08:
* Addressed HTTPDIR, SECDIR, OPSDIR and ARTART review comments
* Aligned the terminology with https://httpwg.org/admin/editors/
style-guide
* Implemented editorial changes proposed by OPSDIR reviewer
* Removed requirement to support HTTP/1.0
* Added normative language in Sections 3.3 and 3.7 for clarity
* Added the requirement to provide any HTTP response message content
to the application
* Removed the paragraph on the "Content-Length" header field and
Section 3.8 to reduce redundancy with current versions HTTP/1.1
From version 06 -> 07:
* Updated the the page header to 'HTTP Transfer for CMP'
* Removed one instruction to RFC Editors
* Deprecated PKIMessages as plural of PKIMessage to prevent
confusion with ASN.1 type PKIMessages
* Fixed some nits in Section 1
* Aligned Section 3.6 and Section 5 with RFC 9483 and draft-ietf-
anima-brski-ae
From version 05 -> 06:
* Updates IANA considerations addressing IANA early review (see
thread "[IANA #1368693] Early review: draft-ietf-lamps-
rfc4210bis-12 (IETF 120)").
From version 04 -> 05:
* Added IANA considerations addressing IANA early review.
From version 03 -> 04:
* Aligned with released RFC 9480 - RFC 9483.
From version 02 -> 03:
* Fixing one formatting nit.
From version 01 -> 02:
* Updated Section 3.4 including the requirement to add the content-
length filed into the HTTP header.
* Added a reference to TLS 1.3.
* Addressed idnits feedback, specifically changing the following RFC
references: RFC2616 -> RFC9112; RFC2818 -> RFC9110, and RFC5246 ->
RFC8446
From version 00 -> 01:
* Performed all updates specified in CMP Updates Section 3.
Version 00:
This version consists of the text of RFC6712 with the following
changes:
* Introduced the authors of this document and thanked the authors of Acknowledgements
RFC6712 for their work.
* Added a paragraph to the introduction explaining the background of The authors wish to thank Tomi Kause and Martin Peylo, the original
this document. authors of [RFC6712], for their work.
* Added the change history to this appendix. We also thank all reviewers for their valuable feedback.
Authors' Addresses Authors' Addresses
Hendrik Brockhaus Hendrik Brockhaus
Siemens Siemens
Werner-von-Siemens-Strasse 1 Werner-von-Siemens-Strasse 1
80333 Munich 80333 Munich
Germany Germany
Email: hendrik.brockhaus@siemens.com Email: hendrik.brockhaus@siemens.com
URI: https://www.siemens.com URI: https://www.siemens.com
 End of changes. 70 change blocks. 
265 lines changed or deleted 153 lines changed or added

This html diff was produced by rfcdiff 1.48.