<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="pre5378Trust200902" docName="draft-ietf-lamps-rfc5273bis-11" number="10003" category="std" consensus="true" submissionType="IETF" obsoletes="5273, 6402" updates="" tocInclude="true" sortRefs="true" symRefs="true" xml:lang="en" prepTime="2026-07-17T22:12:51" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lamps-rfc5273bis-11" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc10003" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="CMC: Transport Protocols">Certificate Management over CMS (CMC): Transport Protocols</title>
    <seriesInfo name="RFC" value="10003" stream="IETF"/>
    <author initials="J." surname="Mandel" fullname="Joseph Mandel" role="editor">
      <organization showOnFrontPage="true">AKAYLA, Inc.</organization>
      <address>
        <email>joe@akayla.com</email>
      </address>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner" role="editor">
      <organization showOnFrontPage="true">sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <date month="07" year="2026"/>
    <area>SEC</area>
    <workgroup>lamps</workgroup>
    <keyword>Public Key Infrastructure</keyword>
    <keyword>Cryptographic Message Syntax</keyword>
    <keyword>Certificate Management</keyword>
    <keyword>Transport Protocols</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines a number of transport mechanisms that are used
to move Certificate Management over CMS (CMC) messages.  The transport mechanisms described in this
document are HTTP, file, mail, and TCP.</t>
      <t indent="0" pn="section-abstract-2">This document obsoletes RFCs 5273 and 6402.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc10003" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2026 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
        <t indent="0" pn="section-boilerplate.2-3">
            This document may contain material from IETF Documents or IETF
            Contributions published or made publicly available before November
            10, 2008. The person(s) controlling the copyright in some of this
            material may not have granted the IETF Trust the right to allow
            modifications of such material outside the IETF Standards Process.
            Without obtaining an adequate license from the person(s)
            controlling the copyright in such materials, this document may not
            be modified outside the IETF Standards Process, and derivative
            works of it may not be created outside the IETF Standards Process,
            except to format it for publication as an RFC or to translate it
            into languages other than English.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-terminology">Requirements Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-changes-since-rfcs-5273-and">Changes Since RFCs 5273 and 6402</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-file-based-protocol">File-Based Protocol</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mail-based-protocol">Mail-Based Protocol</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-http-based-protocol">HTTP-Based Protocol</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pki-request">PKI Request</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pki-response">PKI Response</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tcp-based-protocol">TCP-Based Protocol</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">This document defines a number of transport methods that are used to
move CMC messages (defined in <xref target="RFC10002" format="default" sectionFormat="of" derivedContent="CMC-STRUCT"/>).  The transport
mechanisms described in this document are HTTP, file, mail, and TCP.</t>
      <t indent="0" pn="section-1-2">This document obsoletes RFCs 5273 <xref target="RFC5273" format="default" sectionFormat="of" derivedContent="CMC-TRANSv1"/> and 6402 <xref target="RFC6402" format="default" sectionFormat="of" derivedContent="CMC-Updates"/>. This
document also incorporates <xref target="Err3593" format="default" sectionFormat="of" derivedContent="Err3593"/>.</t>
    </section>
    <section anchor="requirements-terminology" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-requirements-terminology">Requirements Terminology</name>
      <t indent="0" pn="section-2-1">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
      </t>
    </section>
    <section anchor="changes-since-5273-and-6402" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-changes-since-rfcs-5273-and">Changes Since RFCs 5273 and 6402</name>
      <t indent="0" pn="section-3-1">Merged <xref target="RFC6402" format="default" sectionFormat="of" derivedContent="CMC-Updates"/> text.</t>
      <t indent="0" pn="section-3-2">IANA assigned TCP port 5318 for the use of CMC.</t>
      <t indent="0" pn="section-3-3">Clarified the file extensions for Full Public Key Infrastructure (PKI) Requests and Responses.</t>
      <t indent="0" pn="section-3-4">Added examples of encoding types for mail-based Requests and Responses.</t>
      <t indent="0" pn="section-3-5">Replaced TLS 1.0 with TLS 1.2 or later and added that implementations are
required to follow the recommendations in <xref target="BCP195" format="default" sectionFormat="of" derivedContent="BCP195"/>.</t>
      <t indent="0" pn="section-3-6">Addressed <xref target="Err3593" format="default" sectionFormat="of" derivedContent="Err3593"/>.</t>
      <t indent="0" pn="section-3-7">Added a reference to <xref target="RFC9205" format="default" sectionFormat="of" derivedContent="HTTP-IMP"/> for HTTP guidance.</t>
      <t indent="0" pn="section-3-8">Restricted early data (0-RTT) if using TLS 1.3 or QUIC.</t>
      <t indent="0" pn="section-3-9">Restricted the use of TCP-Pipelining.</t>
      <t indent="0" pn="section-3-10">Clarified the limitations of SMTP-over-TLS and the use of authenticated TLS for message delivery.</t>
    </section>
    <section anchor="file-based-protocol" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-file-based-protocol">File-Based Protocol</name>
      <t indent="0" pn="section-4-1">Enrollment messages and responses may be transferred between clients
and servers using file-system-based mechanisms, such as when
enrollment is performed for an offline client.  When files are used
to transport Full PKI Request or Full PKI Response messages,
there <bcp14>MUST</bcp14> be only one instance of a request or response message in a
single file, and the file <bcp14>MUST</bcp14> be binary encoded. The abbreviations crq
and crp stand for Full PKI Request/Response,
respectively; for clarity, we define file extensions for them. The
following file type extensions <bcp14>SHOULD</bcp14> be used:</t>
      <table anchor="file-id" align="center" pn="table-1">
        <name slugifiedName="name-file-pki-request-response-i">File PKI Request/Response Identification</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Message Type</th>
            <th align="left" colspan="1" rowspan="1">File Extension</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">Simple PKI Request</td>
            <td align="left" colspan="1" rowspan="1">.p10</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Full PKI Request</td>
            <td align="left" colspan="1" rowspan="1">.crq</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Simple PKI Response</td>
            <td align="left" colspan="1" rowspan="1">.p7c</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Full PKI Response</td>
            <td align="left" colspan="1" rowspan="1">.crp</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="mail-based-protocol" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-mail-based-protocol">Mail-Based Protocol</name>
      <t indent="0" pn="section-5-1">MIME wrapping is defined for those environments that support MIME.
The basic mime wrapping in this section is taken from <xref target="RFC8551" format="default" sectionFormat="of" derivedContent="SMIMEV4"/>.
When using a mail-based protocol, MIME wrapping between the layers of
Cryptographic Message Syntax (CMS) wrapping is optional.  Note that this is different from the
standard S/MIME (Secure MIME) message.</t>
      <t indent="0" pn="section-5-2">What follows is a set of Simple PKI Request and Response messages and a
set of Full PKI Request and Response messages. The headers discussed
below appear in the top-level content of the messages, and the messages'
contents are the entire messages' bodies.</t>
      <aside pn="section-5-3">
        <t indent="0" pn="section-5-3.1">WARNING: The examples that follow are purposely truncated for brevity.</t>
      </aside>
      <t indent="0" pn="section-5-4">Simple enrollment requests are encoded using the "application/pkcs10"
content type <xref target="RFC5967" format="default" sectionFormat="of" derivedContent="RFC5967"/>.  A file name <bcp14>MUST</bcp14> be included either in a
Content-Type or a Content-Disposition header in the name or filename
parameter, respectively. The extension for the file <bcp14>MUST</bcp14> be ".p10".  An
      example similar to that from <xref target="RFC5967" format="default" sectionFormat="of" derivedContent="RFC5967"/> follows:</t>
      <figure align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-simple-pki-request-message-">Simple PKI Request Message Example</name>
        <artwork align="left" pn="section-5-5.1">
  From: cmc-client@example.com
  Message-Id: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7A@example.com&gt;
  To: cmc-server@example.com
  Subject: Simple Enrollment Request
  Date: Tue, 3 Feb 2026 16:08:28 -0500
  MIME-Version: 1.0
  Content-Type: application/pkcs10; name=smime.p10
  Content-Transfer-Encoding: base64
  Content-Disposition: inline; filename=smime.p10

  &lt; message contents &gt;
</artwork>
      </figure>
      <t indent="0" pn="section-5-6">Simple PKI Response messages <bcp14>MUST</bcp14> be encoded as content type
"application/pkcs7-mime".  A smime-type parameter <bcp14>MUST</bcp14> be on the
Content-Type header with a value of "certs-only".  A file name with
the ".p7c" extension <bcp14>MUST</bcp14> be specified as part of the Content-Type or
Content-Disposition header in the name or filename parameter,
      respectively. An example similar to that from <xref target="RFC8551" format="default" sectionFormat="of" derivedContent="SMIMEV4"/> follows:</t>
      <figure align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-simple-pki-response-message">Simple PKI Response Message Example</name>
        <artwork align="left" pn="section-5-7.1">
  From: cmc-server@example.com
  Message-Id: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7B@example.com&gt;
  To: cmc-client@example.com
  Subject: Re: Simple Enrollment Request
  Date: Tue, 3 Feb 2026 16:09:28 -0500
  MIME-Version: 1.0
  References: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7A@example.com&gt;
  In-Reply-To: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7A@example.com&gt;
  Content-Type: application/pkcs7-mime; smime-type=certs-only;
    name=smime.p7c
  Content-Transfer-Encoding: base64
  Content-Disposition: inline; filename=smime.p7c

  &lt; message contents &gt;
</artwork>
      </figure>
      <t indent="0" pn="section-5-8">Full PKI Request messages <bcp14>MUST</bcp14> be encoded as content type
"application/pkcs7-mime".  The smime-type parameter <bcp14>MUST</bcp14> be included
with a value of "CMC-Request".  A file name with the ".p7m" extension
<bcp14>MUST</bcp14> be specified as part of the Content-Type or Content-Disposition
header in the name or filename parameter, respectively. An example
      similar to that from <xref target="RFC8551" format="default" sectionFormat="of" derivedContent="SMIMEV4"/> follows:</t>
      <figure align="left" suppress-title="false" pn="figure-3">
        <name slugifiedName="name-full-pki-request-message-ex">Full PKI Request Message Example</name>
        <artwork align="left" pn="section-5-9.1">
  From: cmc-client@example.com
  Message-Id: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7C@example.com&gt;
  To: cmc-server@example.com
  Subject: Full Enrollment Request
  Date: Tue, 3 Feb 2026 16:10:28 -0500
  MIME-Version: 1.0
  Content-Type: application/pkcs7-mime; smime-type=CMC-Request;
    name=smime.p7c
  Content-Transfer-Encoding: base64
  Content-Disposition: inline; filename=smime.p7m

  &lt; message contents &gt;
</artwork>
      </figure>
      <t indent="0" pn="section-5-10">Full PKI Response messages <bcp14>MUST</bcp14> be encoded as content type
"application/pkcs7-mime".  The smime-type parameter <bcp14>MUST</bcp14> be included
with a value of "CMC-Response".  A file name with the ".p7m" extension
<bcp14>MUST</bcp14> be specified as part of the Content-Type or Content-Disposition
      statement.  An example similar to that from <xref target="RFC8551" format="default" sectionFormat="of" derivedContent="SMIMEV4"/> follows:</t>
      <figure align="left" suppress-title="false" pn="figure-4">
        <name slugifiedName="name-full-pki-response-message-e">Full PKI Response Message Example</name>
        <artwork align="left" pn="section-5-11.1">
  From: cmc-server@example.com
  Message-Id: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7D@example.com&gt;
  To: cmc-client@example.com
  Subject: Re: Full Enrollment Request
  Date: Tue, 3 Feb 2026 16:11:28 -0500
  MIME-Version: 1.0
  References: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7C@example.com&gt;
  In-Reply-To: &lt;E06C3FA6-FF15-4851-AC7F-DB9F3B1C2C7C@example.com&gt;
  Content-Type: application/pkcs7-mime; smime-type=CMC-Response;
    name=smime.p7m
  Content-Transfer-Encoding: base64
  Content-Disposition: inline; filename=smime.p7m

  &lt; message contents &gt;
</artwork>
      </figure>
      <t indent="0" pn="section-5-12">For file names present in the name or filename parameters, non-ASCII
text is prohibited.</t>
      <table anchor="mime-id" align="center" pn="table-2">
        <name slugifiedName="name-mime-pki-request-response-i">MIME PKI Request/Response Identification</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Item</th>
            <th align="left" colspan="1" rowspan="1">MIME Type</th>
            <th align="left" colspan="1" rowspan="1">File Extension</th>
            <th align="left" colspan="1" rowspan="1">SMIME Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">Simple PKI Request</td>
            <td align="left" colspan="1" rowspan="1">application/pkcs10</td>
            <td align="left" colspan="1" rowspan="1">.p10</td>
            <td align="left" colspan="1" rowspan="1">N/A</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Full PKI Request</td>
            <td align="left" colspan="1" rowspan="1">application/pkcs7-mime</td>
            <td align="left" colspan="1" rowspan="1">.p7m</td>
            <td align="left" colspan="1" rowspan="1">CMC-Request</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Simple PKI Response</td>
            <td align="left" colspan="1" rowspan="1">application/pkcs7-mime</td>
            <td align="left" colspan="1" rowspan="1">.p7c</td>
            <td align="left" colspan="1" rowspan="1">certs-only</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Full PKI Response</td>
            <td align="left" colspan="1" rowspan="1">application/pkcs7-mime</td>
            <td align="left" colspan="1" rowspan="1">.p7m</td>
            <td align="left" colspan="1" rowspan="1">CMC-Response</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="http-based-protocol" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-http-based-protocol">HTTP-Based Protocol</name>
      <t indent="0" pn="section-6-1">This section describes the conventions for use of HTTP <xref target="RFC9110" format="default" sectionFormat="of" derivedContent="HTTP"/> as a
data transfer protocol.  Consult <xref target="RFC9205" format="default" sectionFormat="of" derivedContent="HTTP-IMP"/> for additional information.
The use of HTTPS <xref target="RFC9110" format="default" sectionFormat="of" derivedContent="HTTP"/> provides any necessary
content protection from eavesdroppers.</t>
      <t indent="0" pn="section-6-2">In order for CMC clients and servers using HTTP to interoperate, the
following rules apply:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-3">
        <li pn="section-6-3.1">
          <t indent="0" pn="section-6-3.1.1">Clients are configured with sufficient information to form the server URI <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>.</t>
        </li>
        <li pn="section-6-3.2">
          <t indent="0" pn="section-6-3.2.1">Client requests are submitted by use of the POST method.</t>
        </li>
        <li pn="section-6-3.3">
          <t indent="0" pn="section-6-3.3.1">Servers <bcp14>MUST</bcp14> use the 2XX response codes for successful responses.</t>
        </li>
        <li pn="section-6-3.4">
          <t indent="0" pn="section-6-3.4.1">Clients <bcp14>MAY</bcp14> attempt to send certification requests using HTTPS <xref target="RFC9110" format="default" sectionFormat="of" derivedContent="HTTP"/>.
Although servers are not required to support TLS/QUIC, a secure channel
might be available regardless depending on the HTTP version implemented
<xref target="RFC1945" format="default" sectionFormat="of" derivedContent="HTTP_1.0"/>, <xref target="RFC9112" format="default" sectionFormat="of" derivedContent="HTTP_1.1"/>, <xref target="RFC9113" format="default" sectionFormat="of" derivedContent="HTTP_2"/>, <xref target="RFC9114" format="default" sectionFormat="of" derivedContent="HTTP_3"/>, or later. If TLS is used by the HTTP version, then the
implementation <bcp14>MUST</bcp14> follow the recommendations in <xref target="BCP195" format="default" sectionFormat="of" derivedContent="BCP195"/>. CMC implementations
that support TLS 1.3 or QUIC <bcp14>MUST NOT</bcp14> use early data (i.e., 0-RTT) because POST is
not idempotent.</t>
        </li>
        <li pn="section-6-3.5">
          <t indent="0" pn="section-6-3.5.1">Clients are not required to support any type of HTTP
authentication (see <xref section="11" sectionFormat="of" target="RFC9110" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9110#section-11" derivedContent="HTTP"/>) nor Cookies <xref target="RFC6265" format="default" sectionFormat="of" derivedContent="COOKIES"/>. Thus, servers
cannot rely on these features to be available.</t>
        </li>
        <li pn="section-6-3.6">
          <t indent="0" pn="section-6-3.6.1">Clients and servers are expected to follow other rules and
restrictions in <xref target="RFC9110" format="default" sectionFormat="of" derivedContent="HTTP"/>.  Note that some of those rules are for
HTTP methods other than POST; clearly, only the rules that apply
to POST are relevant for this specification.</t>
        </li>
      </ul>
      <section anchor="pki-request" numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-pki-request">PKI Request</name>
        <t indent="0" pn="section-6.1-1">A PKI Request using the POST method is constructed as follows.</t>
        <t indent="0" pn="section-6.1-2">The Content-Type field <bcp14>MUST</bcp14> have the appropriate value from <xref target="mime-id" format="default" sectionFormat="of" derivedContent="Table 2"/>.</t>
        <t indent="0" pn="section-6.1-3">A Content-Type field for a request:</t>
        <t indent="3" pn="section-6.1-4"><tt>Content-Type: application/pkcs7-mime; smime-type=CMC-Request; name=request.p7m</tt></t>
        <t indent="0" pn="section-6.1-5">The content of the message is the binary value of the encoding of the
PKI Request.</t>
      </section>
      <section anchor="pki-response" numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-pki-response">PKI Response</name>
        <t indent="0" pn="section-6.2-1">The content of an HTTP-based PKI Response is
the binary value of the BER (Basic Encoding
Rules) encoding <xref target="X690" format="default" sectionFormat="of" derivedContent="X690"/> of either a Simple or Full PKI Response.</t>
        <t indent="0" pn="section-6.2-2">The Content-Type field <bcp14>MUST</bcp14> have the appropriate value from <xref target="mime-id" format="default" sectionFormat="of" derivedContent="Table 2"/>.</t>
        <t indent="0" pn="section-6.2-3">A Content-Type field for a response:</t>
        <t indent="3" pn="section-6.2-4"><tt>Content-Type: application/pkcs7-mime; smime-type=CMC-Response; name=response.p7m</tt></t>
      </section>
    </section>
    <section anchor="tcp-based-protocol" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-tcp-based-protocol">TCP-Based Protocol</name>
      <t indent="0" pn="section-7-1">When CMC messages are sent over a TCP-based connection, no wrapping
is required of the message.  Messages are sent in their binary
encoded form.</t>
      <t indent="0" pn="section-7-2">The client closes a connection after receiving a response, or it
issues another request to the server using the same connection.
Reusing one connection for multiple successive requests, instead of
opening multiple connections that are only used for a single request,
is <bcp14>RECOMMENDED</bcp14> for performance and resource conservation reasons.
The client <bcp14>MUST</bcp14> wait for the full response before making another request
on the same connection. A
server <bcp14>MAY</bcp14> close a connection after it has been idle for some period
of time; this timeout would typically be several minutes long.</t>
      <t indent="0" pn="section-7-3">CMC requires a registered port number to send and receive CMC
messages over TCP.  The Service Name is "pkix-cmc".
The TCP port number is 5318.</t>
      <t indent="0" pn="section-7-4">Prior to <xref target="RFC6402" format="default" sectionFormat="of" derivedContent="CMC-Updates"/>, CMC did not have a registered port number and
used an externally configured port from the Private Port range.
Client implementations <bcp14>MAY</bcp14> continue to use a port chosen from the
Private Port range.  A TCP Server <bcp14>SHOULD</bcp14> use the port assigned to the CMC service: 5318.
It is expected that HTTP will continue to be the primary transport method used by
CMC installations.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-8-1">IANA has assigned a TCP port number in the "Dynamic and/or Private Ports Range" of the "Service Name and Transport Protocol Port Number Registry" for the use of CMC.</t>
      <dl spacing="normal" newline="false" indent="3" pn="section-8-2">
        <dt pn="section-8-2.1">Service Name:</dt>
        <dd pn="section-8-2.2">pkix-cmc</dd>
        <dt pn="section-8-2.3">Port Number:</dt>
        <dd pn="section-8-2.4">5318</dd>
        <dt pn="section-8-2.5">Transport Protocol:</dt>
        <dd pn="section-8-2.6">tcp</dd>
        <dt pn="section-8-2.7">Description:</dt>
        <dd pn="section-8-2.8">PKIX Certificate Management using CMS (CMC)</dd>
        <dt pn="section-8-2.9">Assignee:</dt>
        <dd pn="section-8-2.10">iesg@ietf.org</dd>
        <dt pn="section-8-2.11">Contact:</dt>
        <dd pn="section-8-2.12">chair@ietf.org</dd>
        <dt pn="section-8-2.13">Reference:</dt>
        <dd pn="section-8-2.14">RFC 10003</dd>
      </dl>
      <t indent="0" pn="section-8-3">IANA has updated the references to <xref target="RFC5273" format="default" sectionFormat="of" derivedContent="CMC-TRANSv1"/> in the
"Parameter Values for the smime-type Parameter" registry in the "Media Type Sub-Parameter Registries" registry group for CMC-Request and CMC-Response to instead point to this document.</t>
    </section>
    <section anchor="security-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-9-1">Mechanisms for thwarting replay attacks may be required in particular
implementations of this protocol depending on the operational
environment.  In cases where the Certification Authority (CA)
maintains significant state information, replay attacks may be
detectable without the inclusion of the (optional) CMC nonce mechanisms.
Implementers and designers of this protocol need to carefully consider
environmental conditions before choosing whether or not to implement or use
the senderNonce and recipientNonce attributes described in
<xref section="6.6" sectionFormat="of" target="RFC10002" format="default" derivedLink="https://rfc-editor.org/rfc/rfc10002#section-6.6" derivedContent="CMC-STRUCT"/>.  Developers of state-constrained PKI clients are
strongly encouraged to incorporate the use of these attributes.</t>
      <t indent="0" pn="section-9-2">Initiation of a secure communications channel between an End-Entity (EE)
and a CA or Registration Authority (RA) -- and, similarly, between an
RA and another RA or CA -- necessarily requires an out-of-band trust
initiation mechanism.  For example, a secure channel may be
constructed between the EE and the CA via IPsec <xref target="RFC4301" format="default" sectionFormat="of" derivedContent="IPsec"/> or
TLS <xref target="RFC9846" format="default" sectionFormat="of" derivedContent="TLS"/>.  Many such schemes exist, and the choice of any particular
scheme for trust initiation is outside the scope of this document.
Implementers of this protocol are strongly encouraged to consider
generally accepted principles of secure key management when
      integrating this capability within an overall security architecture.</t>
      <t indent="0" pn="section-9-3">In some instances, no out-of-band trust will have been
initiated prior to use of this protocol.  This can occur when the
protocol itself is being used to download onto the system the set of
trust anchors to be used for these protocols.  In these instances,
the <tt>EnvelopedData</tt> content type (<xref section="3.2.1.3.3" sectionFormat="of" target="RFC10002" format="default" derivedLink="https://rfc-editor.org/rfc/rfc10002#section-3.2.1.3.3" derivedContent="CMC-STRUCT"/>)
or <tt>AuthEnvelopedData</tt> content type <xref section="3.2.1.3.5" sectionFormat="of" target="RFC10002" format="default" derivedLink="https://rfc-editor.org/rfc/rfc10002#section-3.2.1.3.5" derivedContent="CMC-STRUCT"/>
provides the same shrouding that TLS would have provided.</t>
      <t indent="0" pn="section-9-4">For the mail-based protocol, the <tt>EnvelopedData</tt> or <tt>AuthEnvelopedData</tt> content types can also be used to apply confidentiality
protection (content shrouding) to the conveyed messages.
Note that, even if the application uses SMTP-over-TLS <xref target="RFC3207" format="default" sectionFormat="of" derivedContent="RFC3207"/>
with its preferred Message Submission Agent (MSA)
for initial submission of the message for delivery, SMTP
in subsequent relay hops may not be either authenticated or encrypted.
For some combinations of initial MSA and destination domains, it may be
possible to request use of authenticated TLS at every relay "hop" of
message delivery via the mechanism specified in <xref target="RFC8689" format="default" sectionFormat="of" derivedContent="RFC8689"/>. This <bcp14>MAY</bcp14>
be used, when supported, and expected to work, but risks non-delivery
if some of the SMTP servers along the relay chain do not support the
REQUIRETLS ESMTP extension.</t>
      <t indent="0" pn="section-9-5">For the file-based protocol, an additional method of applying
confidentiality protection (content shrouding) to the conveyed messages
is usually available in the form of filesystem permissions.  The local
system may allow for read access to be limited to just a single user or
group that corresponds to the entity authorized to read the request or
response, respectively, and diligent use of these filesystem permissions
can be a useful mechanism in multi-user environments.</t>
    </section>
  </middle>
  <back>
    <displayreference to="HTTP" target="RFC9110"/>
    <displayreference to="IPsec" target="RFC4301"/>
    <displayreference to="HTTP_1.1" target="RFC9112"/>
    <displayreference to="HTTP-IMP" target="RFC9205"/>
    <displayreference to="HTTP_1.0" target="RFC1945"/>
    <displayreference to="SMIMEV4" target="RFC8551"/>
    <displayreference to="COOKIES" target="RFC6265"/>
    <displayreference to="CMC-STRUCT" target="RFC10002"/>
    <displayreference to="TLS" target="RFC9846"/>
    <displayreference to="CMC-Updates" target="RFC6402"/>
    <displayreference to="CMC-TRANSv1" target="RFC5273"/>
    <displayreference to="HTTP_2" target="RFC9113"/>
    <displayreference to="HTTP_3" target="RFC9114"/>
    <references anchor="sec-combined-references" pn="section-10">
      <name slugifiedName="name-references">References</name>
      <references anchor="sec-normative-references" pn="section-10.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <referencegroup anchor="BCP195" target="https://www.rfc-editor.org/info/bcp195" derivedAnchor="BCP195">
          <reference anchor="RFC8996" target="https://www.rfc-editor.org/info/rfc8996" quoteTitle="true">
            <front>
              <title>Deprecating TLS 1.0 and TLS 1.1</title>
              <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
              <author fullname="S. Farrell" initials="S." surname="Farrell"/>
              <date month="March" year="2021"/>
              <abstract>
                <t indent="0">This document formally deprecates Transport Layer Security (TLS) versions 1.0 (RFC 2246) and 1.1 (RFC 4346). Accordingly, those documents have been moved to Historic status. These versions lack support for current and recommended cryptographic algorithms and mechanisms, and various government and industry profiles of applications using TLS now mandate avoiding these old TLS versions. TLS version 1.2 became the recommended version for IETF protocols in 2008 (subsequently being obsoleted by TLS version 1.3 in 2018), providing sufficient time to transition away from older versions. Removing support for older versions from implementations reduces the attack surface, reduces opportunity for misconfiguration, and streamlines library and product maintenance.</t>
                <t indent="0">This document also deprecates Datagram TLS (DTLS) version 1.0 (RFC 4347) but not DTLS version 1.2, and there is no DTLS version 1.1.</t>
                <t indent="0">This document updates many RFCs that normatively refer to TLS version 1.0 or TLS version 1.1, as described herein. This document also updates the best practices for TLS usage in RFC 7525; hence, it is part of BCP 195.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="195"/>
            <seriesInfo name="RFC" value="8996"/>
            <seriesInfo name="DOI" value="10.17487/RFC8996"/>
          </reference>
          <reference anchor="RFC9325" target="https://www.rfc-editor.org/info/rfc9325" quoteTitle="true">
            <front>
              <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
              <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
              <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
              <author fullname="T. Fossati" initials="T." surname="Fossati"/>
              <date month="November" year="2022"/>
              <abstract>
                <t indent="0">Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are used to protect data exchanged over a wide range of application protocols and can also form the basis for secure transport protocols. Over the years, the industry has witnessed several serious attacks on TLS and DTLS, including attacks on the most commonly used cipher suites and their modes of operation. This document provides the latest recommendations for ensuring the security of deployed services that use TLS and DTLS. These recommendations are applicable to the majority of use cases.</t>
                <t indent="0">RFC 7525, an earlier version of the TLS recommendations, was published when the industry was transitioning to TLS 1.2. Years later, this transition is largely complete, and TLS 1.3 is widely available. This document updates the guidance given the new environment and obsoletes RFC 7525. In addition, this document updates RFCs 5288 and 6066 in view of recent attacks.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="195"/>
            <seriesInfo name="RFC" value="9325"/>
            <seriesInfo name="DOI" value="10.17487/RFC9325"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC10002" target="https://www.rfc-editor.org/info/rfc10002" quoteTitle="true" derivedAnchor="CMC-STRUCT">
          <front>
            <title>Certificate Management over CMS (CMC)</title>
            <author fullname="Joe Mandel" initials="J." surname="Mandel" role="editor">
              <organization showOnFrontPage="true">AKAYLA, Inc.</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner" role="editor">
              <organization showOnFrontPage="true">sn3rd</organization>
            </author>
            <date month="July" year="2026"/>
          </front>
          <seriesInfo name="RFC" value="10002"/>
          <seriesInfo name="DOI" value="10.17487/RFC10002"/>
        </reference>
        <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110" quoteTitle="true" derivedAnchor="HTTP">
          <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 indent="0">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 indent="0">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="RFC9205" target="https://www.rfc-editor.org/info/rfc9205" quoteTitle="true" derivedAnchor="HTTP-IMP">
          <front>
            <title>Building Protocols with HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2022"/>
            <abstract>
              <t indent="0">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 indent="0">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="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" quoteTitle="true" derivedAnchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t indent="0">A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC5967" target="https://www.rfc-editor.org/info/rfc5967" quoteTitle="true" derivedAnchor="RFC5967">
          <front>
            <title>The application/pkcs10 Media Type</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2010"/>
            <abstract>
              <t indent="0">This document specifies a media type used to carry PKCS #10 certification requests as defined in RFC 2986. It carries over the original specification from RFC 2311, which recently has been moved to Historic status, and properly links it to RFC 2986. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5967"/>
          <seriesInfo name="DOI" value="10.17487/RFC5967"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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>
        <reference anchor="RFC8551" target="https://www.rfc-editor.org/info/rfc8551" quoteTitle="true" derivedAnchor="SMIMEV4">
          <front>
            <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="B. Ramsdell" initials="B." surname="Ramsdell"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="April" year="2019"/>
            <abstract>
              <t indent="0">This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0. S/MIME provides a consistent way to send and receive secure MIME data. Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Compression can be used to reduce data size. This document obsoletes RFC 5751.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8551"/>
          <seriesInfo name="DOI" value="10.17487/RFC8551"/>
        </reference>
        <reference anchor="X690" target="https://www.itu.int/rec/T-REC-X.690" quoteTitle="true" derivedAnchor="X690">
          <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 showOnFrontPage="true">ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </reference>
      </references>
      <references anchor="sec-informative-references" pn="section-10.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC5273" target="https://www.rfc-editor.org/info/rfc5273" quoteTitle="true" derivedAnchor="CMC-TRANSv1">
          <front>
            <title>Certificate Management over CMS (CMC): Transport Protocols</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <date month="June" year="2008"/>
            <abstract>
              <t indent="0">This document defines a number of transport mechanisms that are used to move CMC (Certificate Management over CMS (Cryptographic Message Syntax)) messages. The transport mechanisms described in this document are HTTP, file, mail, and TCP. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5273"/>
          <seriesInfo name="DOI" value="10.17487/RFC5273"/>
        </reference>
        <reference anchor="RFC6402" target="https://www.rfc-editor.org/info/rfc6402" quoteTitle="true" derivedAnchor="CMC-Updates">
          <front>
            <title>Certificate Management over CMS (CMC) Updates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="November" year="2011"/>
            <abstract>
              <t indent="0">This document contains a set of updates to the base syntax for CMC, a Certificate Management protocol using the Cryptographic Message Syntax (CMS). This document updates RFC 5272, RFC 5273, and RFC 5274.</t>
              <t indent="0">The new items in this document are: new controls for future work in doing server side key generation, definition of a Subject Information Access value to identify CMC servers, and the registration of a port number for TCP/IP for the CMC service to run on. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6402"/>
          <seriesInfo name="DOI" value="10.17487/RFC6402"/>
        </reference>
        <reference anchor="RFC6265" target="https://www.rfc-editor.org/info/rfc6265" quoteTitle="true" derivedAnchor="COOKIES">
          <front>
            <title>HTTP State Management Mechanism</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="April" year="2011"/>
            <abstract>
              <t indent="0">This document defines the HTTP Cookie and Set-Cookie header fields. These header fields can be used by HTTP servers to store state (called cookies) at HTTP user agents, letting the servers maintain a stateful session over the mostly stateless HTTP protocol. Although cookies have many historical infelicities that degrade their security and privacy, the Cookie and Set-Cookie header fields are widely used on the Internet. This document obsoletes RFC 2965. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6265"/>
          <seriesInfo name="DOI" value="10.17487/RFC6265"/>
        </reference>
        <reference anchor="Err3593" target="https://www.rfc-editor.org/errata/eid3593" quoteTitle="false" derivedAnchor="Err3593">
          <front>
            <title>RFC Errata, Erratum ID 3593, RFC 5273</title>
            <author>
              <organization showOnFrontPage="true"/>
            </author>
          </front>
        </reference>
        <reference anchor="RFC1945" target="https://www.rfc-editor.org/info/rfc1945" quoteTitle="true" derivedAnchor="HTTP_1.0">
          <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 indent="0">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="RFC9112" target="https://www.rfc-editor.org/info/rfc9112" quoteTitle="true" derivedAnchor="HTTP_1.1">
          <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 indent="0">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 indent="0">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="RFC9113" target="https://www.rfc-editor.org/info/rfc9113" quoteTitle="true" derivedAnchor="HTTP_2">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
            <date month="June" year="2022"/>
            <abstract>
              <t indent="0">This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t indent="0">This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <reference anchor="RFC9114" target="https://www.rfc-editor.org/info/rfc9114" quoteTitle="true" derivedAnchor="HTTP_3">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t indent="0">The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="RFC4301" target="https://www.rfc-editor.org/info/rfc4301" quoteTitle="true" derivedAnchor="IPsec">
          <front>
            <title>Security Architecture for the Internet Protocol</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="K. Seo" initials="K." surname="Seo"/>
            <date month="December" year="2005"/>
            <abstract>
              <t indent="0">This document describes an updated version of the "Security Architecture for IP", which is designed to provide security services for traffic at the IP layer. This document obsoletes RFC 2401 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4301"/>
          <seriesInfo name="DOI" value="10.17487/RFC4301"/>
        </reference>
        <reference anchor="RFC3207" target="https://www.rfc-editor.org/info/rfc3207" quoteTitle="true" derivedAnchor="RFC3207">
          <front>
            <title>SMTP Service Extension for Secure SMTP over Transport Layer Security</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="February" year="2002"/>
            <abstract>
              <t indent="0">This document describes an extension to the SMTP (Simple Mail Transfer Protocol) service that allows an SMTP server and client to use TLS (Transport Layer Security) to provide private, authenticated communication over the Internet. This gives SMTP agents the ability to protect some or all of their communications from eavesdroppers and attackers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3207"/>
          <seriesInfo name="DOI" value="10.17487/RFC3207"/>
        </reference>
        <reference anchor="RFC8689" target="https://www.rfc-editor.org/info/rfc8689" quoteTitle="true" derivedAnchor="RFC8689">
          <front>
            <title>SMTP Require TLS Option</title>
            <author fullname="J. Fenton" initials="J." surname="Fenton"/>
            <date month="November" year="2019"/>
            <abstract>
              <t indent="0">The SMTP STARTTLS option, used in negotiating transport-level encryption of SMTP connections, is not as useful from a security standpoint as it might be because of its opportunistic nature; message delivery is, by default, prioritized over security. This document describes an SMTP service extension, REQUIRETLS, and a message header field, TLS-Required. If the REQUIRETLS option or TLS-Required message header field is used when sending a message, it asserts a request on the part of the message sender to override the default negotiation of TLS, either by requiring that TLS be negotiated when the message is relayed or by requesting that recipient-side policy mechanisms such as MTA-STS and DNS-Based Authentication of Named Entities (DANE) be ignored when relaying a message for which security is unimportant.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8689"/>
          <seriesInfo name="DOI" value="10.17487/RFC8689"/>
        </reference>
        <reference anchor="RFC9846" target="https://www.rfc-editor.org/info/rfc9846" quoteTitle="true" derivedAnchor="TLS">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t indent="0">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 indent="0">This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgements" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">Obviously, the authors would like to
thank <contact fullname="Jim Schaad"/> and <contact fullname="Michael Myers"/> for their work on RFC 5273.</t>
      <t indent="0" pn="section-appendix.a-2">Thank you to <contact fullname="Julian Reschke"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="Vidhi Goel"/>, <contact fullname="Thomas Fossati"/>, <contact fullname="Gorry Fairhurst"/>, <contact fullname="Éric Vyncke"/>, <contact fullname="Gunter Van de Velde"/>, <contact fullname="Mahesh Jethanandani"/>, <contact fullname="Mike Bishop"/>, <contact fullname="Mohamed Boucadair"/>, <contact fullname="Viktor Dukhovni"/>, and <contact fullname="Eliot Lear"/> for reviewing the document and providing comments.</t>
      <t indent="0" pn="section-appendix.a-3">The Acknowledgements section from RFC 5273 of this document follows:</t>
      <blockquote pn="section-appendix.a-4">
        <t indent="0" pn="section-appendix.a-4.1">The authors and the PKIX Working Group are grateful for
      the participation of <contact fullname="Xiaoyi Liu"/> and <contact fullname="Jeff Weinstein"/> in helping to author the original versions
      of this document.</t>
        <t indent="0" pn="section-appendix.a-4.2">The authors would like to thank <contact fullname="Brian LaMacchia"/>
      for his work in developing and writing up many of the concepts presented
      in this document.  The authors would also like to thank <contact fullname="Alex Deacon"/> and <contact fullname="Barb Fox"/> for their
      contributions.</t>
      </blockquote>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact initials="J." surname="Schaad" fullname="Jim Schaad">
        <organization showOnFrontPage="true">August Cellars</organization>
        <address>
      </address>
      </contact>
      <contact initials="M." surname="Myers" fullname="Michael Myers">
        <organization showOnFrontPage="true">TraceRoute Security, Inc.</organization>
        <address>
      </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="J." surname="Mandel" fullname="Joseph Mandel" role="editor">
        <organization showOnFrontPage="true">AKAYLA, Inc.</organization>
        <address>
          <email>joe@akayla.com</email>
        </address>
      </author>
      <author initials="S." surname="Turner" fullname="Sean Turner" role="editor">
        <organization showOnFrontPage="true">sn3rd</organization>
        <address>
          <email>sean@sn3rd.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
