<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-rfc6712bis-08" category="std" consensus="true" submissionType="IETF" xml:lang="en" obsoletes="6712 9480" tocDepth="4" tocInclude="true" sortRefs="false" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="HTTP Transfer for CMP">Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Certificate Management Protocol (CMP)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc6712bis-08"/>
    <author initials="H." surname="Brockhaus" fullname="Hendrik Brockhaus">
      <organization abbrev="Siemens">Siemens</organization>
      <address>
        <postal>
          <street>Werner-von-Siemens-Strasse 1</street>
          <city>Munich</city>
          <code>80333</code>
          <country>Germany</country>
        </postal>
        <email>hendrik.brockhaus@siemens.com</email>
        <uri>https://www.siemens.com</uri>
      </address>
    </author>
    <author initials="D." surname="von Oheimb" fullname="David von Oheimb">
      <organization abbrev="Siemens">Siemens</organization>
      <address>
        <postal>
          <street>Werner-von-Siemens-Strasse 1</street>
          <city>Munich</city>
          <code>80333</code>
          <country>Germany</country>
        </postal>
        <email>david.von.oheimb@siemens.com</email>
        <uri>https://www.siemens.com</uri>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust</organization>
      <address>
        <postal>
          <street>1187 Park Place</street>
          <city>Minneapolis</city>
          <region>MN</region>
          <code>55379</code>
          <country>United States of America</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
        <uri>https://www.entrust.com</uri>
      </address>
    </author>
    <author initials="J." surname="Gray" fullname="John Gray">
      <organization abbrev="Entrust">Entrust</organization>
      <address>
        <postal>
          <street>1187 Park Place</street>
          <city>Minneapolis</city>
          <region>MN</region>
          <code>55379</code>
          <country>United States of America</country>
        </postal>
        <email>john.gray@entrust.com</email>
        <uri>https://www.entrust.com</uri>
      </address>
    </author>
    <date year="2024"/>
    <area>sec</area>
    <workgroup>LAMPS Working Group</workgroup>
    <keyword>CMP</keyword>
    <keyword>HTTP</keyword>
    <keyword>Certificate management</keyword>
    <keyword>PKI</keyword>
    <abstract>
      <?line 88?>

<t>This document describes how to layer the Certificate Management Protocol
(CMP) over HTTP.</t>
      <t>It includes the updates to RFC 6712 specified in RFC 9480 Section 3. These
updates introduce CMP URIs using a Well-known prefix. It obsoletes
RFC 6712 and together with I-D.ietf-lamps-rfc4210bis and it also obsoletes
RFC 9480.</t>
    </abstract>
  </front>
  <middle>
    <?line 99?>

<section anchor="sect-1">
      <name>Introduction</name>
      <t>[RFC Editor: please delete:</t>
      <t>During IESG telechat the CMP Updates document was approved on condition that
LAMPS provides a RFC6712bis document.  Version -00 of this document shall
be identical to RFC 6712 and version -01 incorporates the changes specified
in CMP Updates Section 3.</t>
      <t>A history of changes is available in Appendix A of this document.</t>
      <t>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.</t>
      <t>]</t>
      <t>The Certificate Management Protocol (CMP) <xref target="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.</t>
      <t>The first version of the CMP specification <xref target="RFC2510"/> included a brief
description of a simple transfer protocol layer on top of TCP.  Its
features were simple transfer-level error handling and a mechanism to
poll for outstanding PKI messages.  Additionally, it was mentioned
that PKI messages could also be conveyed using file-, E-mail-, and
HTTP-based transfer, but those were not specified in detail.</t>
      <t>Since the second version of the CMP specification <xref target="RFC4210"/> incorporated
its own polling mechanism and thus the need for a transfer protocol
providing this functionality vanished.  The remaining features CMP
requires from its transfer protocols are connection and error
handling.</t>
      <t>CMP can benefit from utilizing a reliable transport as CMP requires connection and error handling
from the transfer protocol. All theses features are covered by HTTP.  Additionally,
delayed delivery of CMP response messages may be handled at transfer level,
regardless of the message contents.  Since <xref target="RFC9480"/> extends the polling
mechanism specified in the second version of <xref target="RFC4210">CMP</xref> to cover
all types of PKI management transactions, delays detected at application
level may also be handled within CMP, using pollReq and pollRep messages.</t>
      <t>The usage of HTTP (e.g., HTTP/1.1 as specified in <xref target="RFC9110"/> and <xref target="RFC9112"/>) for transferring CMP messages exclusively uses the POST
method for requests, effectively tunneling CMP over HTTP. While this is
generally considered bad practice (see <xref target="RFC9205">BCP 56</xref> for best current
practice on building protocols with HTTP) and should not be 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 traverse
network borders utilizing ubiquitous proxies.  Most importantly, HTTP
is already commonly used in existing CMP implementations.  Other HTTP
request methods, such as GET, are not used because PKI management
operations can only be triggered using CMP's PKI messages, which need
to be transferred using a POST request.</t>
      <t>With its status codes, HTTP provides needed error reporting
capabilities.  General problems on the server side, as well as those
directly caused by the respective request, can be reported to the
client.</t>
      <t>As CMP implements a transaction identification (transactionID), identifying transactions spanning
over more than just a single request/response pair, the statelessness
of HTTP is not blocking its usage as the transfer protocol for CMP
messages.</t>
      <section anchor="sect-1.1">
        <name>Changes Made by RFC 9480</name>
        <t><xref target="RFC9480">CMP Updates</xref> updated <xref section="3.6" sectionFormat="of" target="RFC6712"/>, supporting the PKI
management operations specified in the <xref target="RFC9483">Lightweight CMP Profile</xref>, in the following areas:</t>
        <ul spacing="normal">
          <li>
            <t>Introduce the HTTP URI path prefix '/.well-known/cmp'.</t>
          </li>
          <li>
            <t>Add options for extending the URI structure with further segments and
define a new protocol registry group to that aim.</t>
          </li>
        </ul>
      </section>
      <section anchor="sect-1.2">
        <name>Changes Made by This Document</name>
        <t>This document obsoletes <xref target="RFC6712"/>.
It includes the changes specified in <xref section="3" sectionFormat="of" target="RFC9480"/> as
described in <xref target="sect-1.1"/> of this document. Additionally it adds the following changes:</t>
        <ul spacing="normal">
          <li>
            <t>Removed the requirement to support HTTP/1.0 <xref target="RFC1945"/> in accordance with <xref section="4.1" sectionFormat="of" target="RFC9205"/>.</t>
          </li>
          <li>
            <t>Implementations <bcp14>MUST</bcp14> forward CMP messages when an HTTP error status code occurs, see  <xref target="sect-3.3"/>.</t>
          </li>
          <li>
            <t>Removed <xref section="3.8" sectionFormat="of" target="RFC6712"/> as it contains information redundant with current HTTP specification.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sect-2">
      <name>Conventions Used in This Document</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="sect-3">
      <name>HTTP-Based Protocol</name>
      <t>For direct interaction between two entities, where a reliable
transport protocol like <xref target="RFC9293">TCP</xref> is available, HTTP <bcp14>SHOULD</bcp14> be utilized for
conveying CMP messages.</t>
      <section anchor="sect-3.1">
        <name>HTTP Versions</name>
        <t>This draft requires uses of the POST method (<xref target="sect-3.3"/>) and the "Content-Type" header field (<xref target="sect-3.4"/>) which are available since HTTP/1.0 <xref target="RFC1945"/>. This specification also specifies use of persistent connections (<xref target="sect-3.2"/>). This document refers to HTTP/1.1 as specified in <xref target="RFC9110"/> and <xref target="RFC9112"/> for further details.</t>
        <!-- Implementations MUST support at least HTTP/1.0 {{RFC1945}}. This is because
the POST method and the "Content-Type" and "Connection: keep-alive" header fields are available since
version 1.0.

Implementations SHOULD support HTTP/1.1 as specified in {{RFC9110}} and {{RFC9112}}. This is because the
persistent connection was improved with HTTP/1.1 which helps
transferring messages in transactions with more than one request/response
pair more efficiently, see {{Section 9.3 of RFC9112}} for persistent connections and {{Appendix C.2.2 of RFC9112}} for interoperability with the Keep-Alive feature in HTTP/1.0. -->

</section>
      <section anchor="sect-3.2">
        <name>Persistent Connections</name>
        <t>HTTP persistent connections (<xref section="9.3" sectionFormat="of" target="RFC9112"/>) allow multiple interactions to
take place on the same HTTP connection.  However, neither HTTP nor
the protocol specified in this document are designed to correlate
messages on the same connection in any meaningful way; persistent
connections are only a performance optimization.  In particular,
intermediaries can do things like mix connections from different
clients into one upstream connection, terminate persistent
connections, and forward requests as non-persistent requests, etc.
As such, implementations <bcp14>MUST NOT</bcp14> infer that requests on the same
connection come from the same client (e.g., for correlating PKI
messages with ongoing transactions); every message is to be evaluated
in isolation.</t>
      </section>
      <section anchor="sect-3.3">
        <name>General Form</name>
        <t>A DER-encoded <xref target="ITU.X690.1994"/> PKIMessage (<xref section="5.1" sectionFormat="of" target="I-D.ietf-lamps-rfc4210bis"/>) <bcp14>MUST</bcp14> be sent as the
content of an HTTP POST request.  If this HTTP request is
successful, the server returns the CMP response in the content of the
HTTP response.  The HTTP response status code in this case <bcp14>MUST</bcp14> be
200 (OK) status code; other Successful 2xx status codes <bcp14>MUST NOT</bcp14> be used for this purpose.
HTTP responses to pushed CMP announcement messages described in <xref target="sect-3.7"/>
utilize the status codes 201 and 202 to identify whether the received
information was processed.</t>
        <t>While Redirection 3xx status codes <bcp14>MAY</bcp14> be supported by
implementations, clients should only be enabled to automatically
follow them after careful consideration of possible security
implications.  As described in <xref target="sect-5"/>, 301 (Moved Permanently) status code
could be misused for permanent denial of service.</t>
        <t>All applicable Client Error 4xx or Server Error 5xx status codes
<bcp14>MAY</bcp14> 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 ranges, it <bcp14>MUST</bcp14> support handling response message
content containing a CMP response PKIMessage.</t>
      </section>
      <section anchor="sect-3.4">
        <name>Header Fields</name>
        <t>The Internet Media Type "application/pkixcmp" <bcp14>MUST</bcp14> be set in the HTTP
"Content-Type" header field when conveying a PKIMessage.</t>
        <!-- Note that the PKIMessage type is used also when sending an announcement
message.

In line with {{Section 8.6 of RFC9110}}, the "Content-Length" header
field should be provided whenever a PKIMessage is sent, giving the
length of the ASN.1 DER-encoded PKIMessage. -->

</section>
      <section anchor="sect-3.5">
        <name>Communication Workflow</name>
        <t>In CMP, most communication is initiated by the EEs where every CMP
request triggers a CMP response message from the CA or RA.</t>
        <t>The CMP announcement messages described in <xref target="sect-3.7"/> are an
exception.  Their creation may be triggered by certain events or done
on a regular basis by a CA.  The recipient of the announcement only
replies with an HTTP status code acknowledging the receipt or
indicating an error, but not with a CMP response.</t>
        <t>If the receipt of an HTTP request is not confirmed by receiving an
HTTP response, it <bcp14>MUST</bcp14> be assumed that the transferred CMP message
was not successfully delivered to its destination.</t>
      </section>
      <section anchor="sect-3.6">
        <name>HTTP Request-URI</name>
        <t>Each CMP server on a PKI management entity supporting HTTP or HTTPS transfer
<bcp14>MUST</bcp14> support the use of the path prefix '/.well-known/' as defined in
<xref target="RFC8615"/> and the registered name 'cmp' to ease interworking
in a multi-vendor environment.</t>
        <t>CMP clients have 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.example.com:80', or the full operation path segment of the PKI management
entity. Additionally, path segments <bcp14>MAY</bcp14> be added after the registered
application name as part of the full operation path to provide further distinction.
The path segment 'p' followed by an arbitraryLabel &lt;name&gt; could, for example,
support the differentiation of specific CAs or certificate profiles. Further
path segments, e.g., as specified in the Lightweight CMP Profile <xref target="RFC9483"/>,
could indicate PKI management operations using an operationLabel &lt;operation&gt;.
The following list examples of valid full CMP URIs:</t>
        <ul empty="true">
          <li>
            <t>http://www.example.com/.well-known/cmp</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>http://www.example.com/.well-known/cmp/&lt;operation&gt;</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>http://www.example.com/.well-known/cmp/p/&lt;name&gt;</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>http://www.example.com/.well-known/cmp/p/&lt;name&gt;/&lt;operation&gt;</t>
          </li>
        </ul>
        <t>Note that https can also be used instead of http, see <xref target="sect-5">item 5 in the Security Considerations</xref>.</t>
      </section>
      <section anchor="sect-3.7">
        <name>Pushing of Announcements</name>
        <t>A CMP server may create event-triggered announcements or generate
them on a regular basis.  It <bcp14>MAY</bcp14> utilize HTTP transfer to convey them
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
no request messages are specified for those announcements, they can
only be pushed to the recipient.</t>
        <t>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
described in <xref section="D.5" sectionFormat="of" target="I-D.ietf-lamps-rfc4210bis"/> can be used.</t>
        <t>When pushing announcement messages, PKIMessage structures <bcp14>MUST</bcp14> be sent as
the content of an HTTP POST request.</t>
        <t>Suitable recipients for CMP announcements might, for example, be
repositories storing the announced information, such as directory
services.  Those services listen for incoming messages, utilizing the
same HTTP Request-URI scheme as defined in <xref target="sect-3.6"/>.</t>
        <t>The following types of PKIMessage are announcements that may be pushed by a
CA.  The prefixed numbers reflect ASN.1 tags of the PKIBody structure (<xref section="5.1.2" sectionFormat="of" target="I-D.ietf-lamps-rfc4210bis"/>).</t>
        <artwork><![CDATA[
   [15] CA Key Update Announcement
   [16] Certificate Announcement
   [17] Revocation Announcement
   [18] CRL Announcement
]]></artwork>
        <t>CMP announcement messages do not require any CMP response.  However,
the recipient <bcp14>MUST</bcp14> acknowledge receipt with an HTTP response having
an appropriate status code and an empty content.  When not receiving
such a response, it <bcp14>MUST</bcp14> be assumed that the delivery was not
successful.  If applicable, the sending side <bcp14>MAY</bcp14> try sending the
announcement again after waiting for an appropriate time span.</t>
        <t>If the announced issue was successfully stored in a database or was
already present, the answer <bcp14>MUST</bcp14> be an HTTP response with a 201 (Created)
status code and an empty content.</t>
        <t>In case the announced information was only accepted for further
processing, the status code of the returned HTTP response <bcp14>MAY</bcp14> also be
202 (Accepted).  After an appropriate delay, the sender may then try
to send the announcement again and may repeat this until it receives
a confirmation that it has been successfully processed.  The
appropriate duration of the delay and the option to increase it
between consecutive attempts should be carefully considered.</t>
        <t>A receiver <bcp14>MUST</bcp14> answer with a suitable 4xx or 5xx error code
when a problem occurs.</t>
        <!-- ## HTTP Considerations
{: id="sect-3.8"}

While all defined features of the HTTP are available to
implementations, they should keep the protocol utilization as simple
as possible.  For example, there is no benefit in using chunked
Transfer-Encoding, as the length of an ASN.1 sequence is known when
starting to send it.

There is no need for the clients to send an "Expect" request header
field with the "100-continue" expectation and wait for a 100 (Continue) status code
as described in {{Section 10.1.1 of RFC9112}}.  The CMP
content sent by a client is relatively small, so having extra
messages exchanged is inefficient, as the server will only seldom
reject a message without evaluating the content. -->

</section>
    </section>
    <section anchor="sect-4">
      <name>Implementation Considerations</name>
      <t>Implementers should be aware that other implementations might exist that
use a different approach for transferring CMP over HTTP.
Further, implementations based on earlier I-Ds that led to
<xref target="RFC6712"/> might use an unregistered "application/pkixcmp-poll" Media Type.
Conforming implementations <bcp14>MAY</bcp14> handle this type like "application/pkixcmp".</t>
    </section>
    <section anchor="sect-5">
      <name>Security Considerations</name>
      <t>The following aspects need to be considered by implementers and
users:</t>
      <ol spacing="normal" type="1"><li>
          <t>There is the risk for denial-of-service attacks through resource
  consumption by opening many connections to an HTTP server.
  Therefore, idle connections should be terminated after an
  appropriate timeout; this may also depend on the available free
  resources.  After sending a CMP error message with PKIStatus other than "waiting", the server should
  close the connection, even if the CMP transaction is not yet
  fully completed.</t>
        </li>
        <li>
          <t>Without being encapsulated in effective security protocols, such
  as Transport Layer Security (TLS) <xref target="RFC5246"/> or <xref target="RFC8446"/>, or
  without using HTTP digest <xref target="RFC9530"/> there is no
  integrity protection at the HTTP level.  Therefore,
  information from the HTTP should not be used to change
  state of the transaction, regardless of whether any mechanism was
  used to ensure the authenticity or integrity of HTTP messages
  (e.g., TLS or HTTP digests).</t>
        </li>
        <li>
          <t>Client users should be aware that storing the target location of
  an HTTP response with the 301 (Moved Permanently) status code
  could be exploited by a meddler-in-the-middle attacker trying to
  block them permanently from contacting the correct server.</t>
        </li>
        <li>
          <t>If no measures to authenticate and protect the HTTP responses to
  pushed announcement messages are in place, their information
  regarding the announcement's processing state may not be trusted.
  In that case, the overall design of the PKI system must not
  depend on the announcements being reliably received and processed
  by their destination.</t>
        </li>
        <li>
          <t>CMP provides inbuilt integrity protection and authentication.
  The information communicated unencrypted in CMP messages does not
  contain sensitive information endangering the security of the PKI
  when intercepted.  However, it might be possible for an
  eavesdropper to utilize the available information to gather
  confidential personal, technical, or business critical information.
  The protection of the confidentiality of CMP messages together with
  an initial authentication of the RA/CA before the first CMP message
  is transmitted ensures the privacy of the EE requesting
  certificates. Therefore, users of the HTTP transfer for CMP messages
  should consider using HTTP over TLS according to <xref target="RFC9110"/> or using virtual
  private networks created, for example, by utilizing Internet
  Protocol Security according to <xref target="RFC7296"/>.</t>
        </li>
      </ol>
    </section>
    <section anchor="sect-6">
      <name>IANA Considerations</name>
      <t>The reference to <xref target="RFC2510"/> at https://www.iana.org/assignments/media-types/media-types.xhtml should be replaced with a reference to this document.</t>
      <t>The reference to <xref target="RFC4210"/> at https://www.iana.org/assignments/core-parameters/core-parameters.xhtml should be replaced with a reference to this document.</t>
      <t>The reference to <xref target="RFC9480"/> at https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml and https://www.iana.org/assignments/cmp/cmp.xhtmlshould should be replaced with a reference to this document.</t>
      <t>No further action by the IANA is necessary for this document or any anticipated
updates.</t>
    </section>
    <section anchor="sect-7">
      <name>Acknowledgments</name>
      <t>The authors wish to thank Tomi Kause and Martin Peylo, the
original authors of <xref target="RFC6712"/>, for their work.</t>
      <t>We also thank all reviewers for their valuable feedback.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1945">
          <front>
            <title>Hypertext Transfer Protocol -- HTTP/1.0</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="H. Frystyk" initials="H." surname="Frystyk"/>
            <date month="May" year="1996"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is an application-level protocol with the lightness and speed necessary for distributed, collaborative, hypermedia information systems. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1945"/>
          <seriesInfo name="DOI" value="10.17487/RFC1945"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9112">
          <front>
            <title>HTTP/1.1</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document specifies the HTTP/1.1 message syntax, message parsing, connection management, and related security concerns.</t>
              <t>This document obsoletes portions of RFC 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="99"/>
          <seriesInfo name="RFC" value="9112"/>
          <seriesInfo name="DOI" value="10.17487/RFC9112"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-rfc4210bis">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Certificate Management Protocol (CMP)</title>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
              <organization>Siemens</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <date day="9" month="October" year="2024"/>
            <abstract>
              <t>   This document describes the Internet X.509 Public Key Infrastructure
   (PKI) Certificate Management Protocol (CMP).  Protocol messages are
   defined for X.509v3 certificate creation and management.  CMP
   provides interactions between client systems and PKI components such
   as a Registration Authority (RA) and a Certification Authority (CA).

   This document obsoletes RFC 4210 by including the updates specified
   by CMP Updates RFC 9480 Section 2 and Appendix A.2 maintaining
   backward compatibility with CMP version 2 wherever possible and
   obsoletes both documents.  Updates to CMP version 2 are: improving
   crypto agility, extending the polling mechanism, adding new general
   message types, and adding extended key usages to identify special CMP
   server authorizations.  Introducing CMP version 3 to be used only for
   changes to the ASN.1 syntax, which are: support of EnvelopedData
   instead of EncryptedValue, hashAlg for indicating a hash
   AlgorithmIdentifier in certConf messages, and RootCaKeyUpdateContent
   in ckuann messages.

   In addition to the changes specified in CMP Updates RFC 9480 this
   document adds support for management of KEM certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc4210bis-14"/>
        </reference>
        <reference anchor="ITU.X690.1994">
          <front>
            <title>Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>International Telecommunications Union</organization>
            </author>
            <date year="1994"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.690"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9480">
          <front>
            <title>Certificate Management Protocol (CMP) Updates</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="J. Gray" initials="J." surname="Gray"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>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.</t>
              <t>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.</t>
              <t>CMP version 3 is introduced to enable signaling support of EnvelopedData instead of EncryptedValue and signal the use of an explicit hash AlgorithmIdentifier in certConf messages, as far as needed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9480"/>
          <seriesInfo name="DOI" value="10.17487/RFC9480"/>
        </reference>
        <reference anchor="RFC9483">
          <front>
            <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="S. Fries" initials="S." surname="Fries"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document aims at simple, interoperable, and automated PKI management operations covering typical use cases of industrial and Internet of Things (IoT) scenarios. This is achieved by profiling the Certificate Management Protocol (CMP), the related Certificate Request Message Format (CRMF), and transfer based on HTTP or Constrained Application Protocol (CoAP) in a succinct but sufficiently detailed and self-contained way. To make secure certificate management for simple scenarios and constrained devices as lightweight as possible, only the most crucial types of operations and options are specified as mandatory. More specialized or complex use cases are supported with optional features.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9483"/>
          <seriesInfo name="DOI" value="10.17487/RFC9483"/>
        </reference>
        <reference anchor="RFC2510">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Management Protocols</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <date month="March" year="1999"/>
            <abstract>
              <t>This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2510"/>
          <seriesInfo name="DOI" value="10.17487/RFC2510"/>
        </reference>
        <reference anchor="RFC4210">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="T. Kause" initials="T." surname="Kause"/>
            <author fullname="T. Mononen" initials="T." surname="Mononen"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocol (CMP). Protocol messages are defined for X.509v3 certificate creation and management. CMP provides on-line interactions between PKI components, including an exchange between a Certification Authority (CA) and a client system. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4210"/>
          <seriesInfo name="DOI" value="10.17487/RFC4210"/>
        </reference>
        <reference anchor="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
        <reference anchor="RFC6712">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Certificate Management Protocol (CMP)</title>
            <author fullname="T. Kause" initials="T." surname="Kause"/>
            <author fullname="M. Peylo" initials="M." surname="Peylo"/>
            <date month="September" year="2012"/>
            <abstract>
              <t>This document describes how to layer the Certificate Management Protocol (CMP) over HTTP. It is the "CMPtrans" document referenced in RFC 4210; therefore, this document updates the reference given therein. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6712"/>
          <seriesInfo name="DOI" value="10.17487/RFC6712"/>
        </reference>
        <reference anchor="RFC7296">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9530">
          <front>
            <title>Digest Fields</title>
            <author fullname="R. Polli" initials="R." surname="Polli"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document defines HTTP fields that support integrity digests. The Content-Digest field can be used for the integrity of HTTP message content. The Repr-Digest field can be used for the integrity of HTTP representations. Want-Content-Digest and Want-Repr-Digest can be used to indicate a sender's interest and preferences for receiving the respective Integrity fields.</t>
              <t>This document obsoletes RFC 3230 and the Digest and Want-Digest HTTP fields.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9530"/>
          <seriesInfo name="DOI" value="10.17487/RFC9530"/>
        </reference>
        <reference anchor="RFC9205">
          <front>
            <title>Building Protocols with HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>Applications often use HTTP as a substrate to create HTTP-based APIs. This document specifies best practices for writing specifications that use HTTP to define new application protocols. It is written primarily to guide IETF efforts to define application protocols using HTTP for deployment on the Internet but might be applicable in other situations.</t>
              <t>This document obsoletes RFC 3205.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="56"/>
          <seriesInfo name="RFC" value="9205"/>
          <seriesInfo name="DOI" value="10.17487/RFC9205"/>
        </reference>
        <reference anchor="RFC9293">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
      </references>
    </references>
    <?line 495?>

<section anchor="History">
      <name>History of Changes</name>
      <t>Note: This appendix will be deleted in the final version of the document.</t>
      <t>From version 07 -&gt; 08:</t>
      <ul spacing="normal">
        <li>
          <t>Addressed HTTPDIR, SECDIR, OPSDIR and ARTART review comments</t>
        </li>
        <li>
          <t>Aligned the terminology with https://httpwg.org/admin/editors/style-guide</t>
        </li>
        <li>
          <t>Implemented editorial changes proposed by OPSDIR reviewer</t>
        </li>
        <li>
          <t>Removed requirement to support HTTP/1.0</t>
        </li>
        <li>
          <t>Added normative language in Sections 3.3 and 3.7 for clarity</t>
        </li>
        <li>
          <t>Added the requirement to provide any HTTP response message content to the application</t>
        </li>
        <li>
          <t>Removed the paragraph on the "Content-Length" header field and Section 3.8 to reduce redundancy with current versions HTTP/1.1</t>
        </li>
      </ul>
      <t>From version 06 -&gt; 07:</t>
      <ul spacing="normal">
        <li>
          <t>Updated the the page header to 'HTTP Transfer for CMP'</t>
        </li>
        <li>
          <t>Removed one instruction to RFC Editors</t>
        </li>
        <li>
          <t>Deprecated PKIMessages as plural of PKIMessage to prevent confusion with ASN.1 type PKIMessages</t>
        </li>
        <li>
          <t>Fixed some nits in Section 1</t>
        </li>
        <li>
          <t>Aligned Section 3.6 and Section 5 with RFC 9483 and draft-ietf-anima-brski-ae</t>
        </li>
      </ul>
      <t>From version 05 -&gt; 06:</t>
      <ul spacing="normal">
        <li>
          <t>Updates IANA considerations addressing IANA early review (see thread "[IANA #1368693] Early review: draft-ietf-lamps-rfc4210bis-12 (IETF 120)").</t>
        </li>
      </ul>
      <t>From version 04 -&gt; 05:</t>
      <ul spacing="normal">
        <li>
          <t>Added IANA considerations addressing IANA early review.</t>
        </li>
      </ul>
      <t>From version 03 -&gt; 04:</t>
      <ul spacing="normal">
        <li>
          <t>Aligned with released RFC 9480 - RFC 9483.</t>
        </li>
      </ul>
      <t>From version 02 -&gt; 03:</t>
      <ul spacing="normal">
        <li>
          <t>Fixing one formatting nit.</t>
        </li>
      </ul>
      <t>From version 01 -&gt; 02:</t>
      <ul spacing="normal">
        <li>
          <t>Updated Section 3.4 including the requirement to add the content-length filed
into the HTTP header.</t>
        </li>
        <li>
          <t>Added a reference to TLS 1.3.</t>
        </li>
        <li>
          <t>Addressed idnits feedback, specifically changing the following RFC references:
RFC2616 -&gt; RFC9112; RFC2818 -&gt; RFC9110, and RFC5246 -&gt; RFC8446</t>
        </li>
      </ul>
      <t>From version 00 -&gt; 01:</t>
      <ul spacing="normal">
        <li>
          <t>Performed all updates specified in CMP Updates Section 3.</t>
        </li>
      </ul>
      <t>Version 00:</t>
      <t>This version consists of the text of RFC6712 with the following changes:</t>
      <ul spacing="normal">
        <li>
          <t>Introduced the authors of this document and thanked the authors of RFC6712
for their work.</t>
        </li>
        <li>
          <t>Added a paragraph to the introduction explaining the background of this document.</t>
        </li>
        <li>
          <t>Added the change history to this appendix.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
97NRkmH+pXwULeK/6D+RUurD6PjjL2i8PHLysdfnu/nAi4/ExcfSNdVu3D/9
iL3Sv8EURL8Qc5QMaG01itO2PeTdJZKjvsVhxe5QfgfNeyGBj4oI3wESwjmg
Y31RIc7qRwxok6VoYL5oVm6L0PS89YREi+UjUdbfCOV9N6PF7kFeT5J/XWbE
5fkkVoYfYiuPBoq668qIeozUU0RYgtqWOmNMzqauv9Ammxvu1OlCmWAnEs2G
6evFFdi2sjW0IpXR6NSFf6IHI9cNRgotIbSMWC+JDM+KJ3ItSMc9u2RnmO5F
vyoCDpo5Ifmk/WDaJYWfIEK1nsS1vtsUHrGmazjyzQ0urkNWld7rUwz2WzAR
IXv47MKOvwePxkxfYzR3b3aCtK6/gRKRHOGMcXkzqrVypFt4nsynYf2BdyZ/
lUPFXBILaS0JMrU/bIH7M41qG7ItoRS7/CWboKhHbNslDq2uoq/U0id9QZJw
A3ZBeNVErvDNZ0GTlpvQdNNAZnWQerEJyl4zJh+xsKuwamJVxmXhnNuxWUFk
3aQfhVOP0qfiWuhsXwqQGeekXJjbh3BryOwUyEzSuGiGcObf9ylbRvBA/cJp
U27mcRmV2DWjAKt6pS3xRLaOXdtefTR0uhwtSeR16De5X1TyCL51m5RCAEYy
a4tPFIu5k6jxFTJSrNO2Ia5LXZFOikOp4fRQzKJB5TwSeIg9ZxvVrDpm9uyK
n963undJ1to/TcPvXH1GB+KOB3S9DJwvbO6M9vdjbOSsaM0OrRQvad9UDoNl
gdkIRYZL+2Q/46w3MlPODY72h6Ou9ckWnpVNcvnsK0MfzjDZbHAGv5tr211c
z0kTBujHFR+BHrhKR2HjMvdvpZKh8yVjz3cLlpcZgmAYoZp4UM4JA/0E1659
Rg5s4Ty1lK8cJPK+RvKJOLvVU7Q1jXbNKUdfgso9sES3+fRSVzYokjLNepWP
UZt07vJjEZ9C6gJnMWlICG1t6g5O1tmQebOQKOc6iHqjK2J7BahiEZLUOKKg
Z88SJGehyOIFSZ5tee0YiH4nyH4PI+IR3AF3iq6XNMmIS4+8GFTOUXOJdmvO
HK00TwWEjvfHX9YBouaOXOkG7vJIvgt91VHFKdsiBcsrDs1HfLJQth77oqz+
xHyXWkpcTmKLfWFoCfLgsapspzM4qrKt+CArZmvnYrJpOoqRud6AI8a9MjTC
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
nYisxX8dy8Eq5/Xp6f8FNhIhtnxUAAA=

-->

</rfc>
