<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-giron-acme-pqcnegotiation-03" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.2 -->
  <front>
    <title abbrev="acme-algoneg">ACME PQC Algorithm Negotiation</title>
    <seriesInfo name="Internet-Draft" value="draft-giron-acme-pqcnegotiation-03"/>
    <author fullname="Alexandre Augusto Giron">
      <organization>UTFPR, Brazil</organization>
      <address>
        <email>alexandregiron@utfpr.edu.br</email>
      </address>
    </author>
    <date year="2024" month="February" day="16"/>
    <area>None</area>
    <workgroup>None</workgroup>
    <keyword>Automated Certificate Management Environment</keyword>
    <keyword>X.509 Certificates</keyword>
    <keyword>Post-Quantum Cryptography</keyword>
    <abstract>
      <?line 40?>

<t>ACME is a critical protocol for accelerating HTTPS adoption on the Internet, automating digital certificate issuing for web servers. Because RFC 8555 assumes that both sides (client and server) support the primary cryptographic algorithms necessary for the certificate, ACME does not include algorithm negotiation procedures. However, in light of Post-Quantum Cryptography (PQC), many signature algorithm alternatives can be used, allowing for different trade-offs (e.g., signature vs. public key size). In addition, alternative PQC migration strategies exist, such as KEMTLS, which employs KEM public keys for authentication. This document describes an algorithm negotiation mechanism for ACME. The negotiation allows different strategies and provides KEMTLS certificate issuing capabilities.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="TBD"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-giron-acme-pqcnegotiation/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/TBD"/>.</t>
    </note>
  </front>
  <middle>
    <?line 45?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Automated Certificate Management Environment (ACME) is defined in RFC 8555 <xref target="RFC8555"/>. ACME automates X.509 certificate issuance for Web Servers, thus easing the configuration process in providing encrypted channels over the Internet, often by using HTTPS/TLS protocols. Backed by the Let's Encrypt project, ACME has contributed to a secure Internet by giving the opportunity for system administrators and developers to secure their websites easily and free. ACME specifies how an ACME client can request a certificate to an ACME server with automation capabilities. The server requires a "proof" that the client holds control of the web server's identifier (often a domain name). After this validation process, the server can issue one or more "Domain Validated" (DV) certificate(s) so the client can configure an HTTPS server for the particular domain name(s).</t>
      <t>Basically, ACME requires three steps for the clients when issuing a certificate. First, a client creates an anonymous account to the desired ACME server. Note, however, that it is assumed that the client already trust in the ACME server's certificate, otherwise the client can not connect to the server securely. A secure channel between ACME peers is a requirement fulfilled often by a TLS connection, thus the client must trust in the certificate chain provided by the ACME server. Secondly, after creating an account, the ACME server must prove the ownership of an identifier (i.e., domain name) by means of an ACME challenge. Currently, HTTP-01, DNS-01 and TLS-ALPN-01 are standardized by IETF (others are being proposed, e.g., <xref target="I-D.ietf-acme-authority-token"/>. Lastly, after proving the control of the identifier, the client request a certificate by sending a Certificate-Signing Request (CSR) to the ACME server. The server validates the request and the CSR. If everything went ok, the client can download the requested certificate(s). Note the sequential process: account creation, challenge validation, and then requesting/issuing the certificate.</t>
      <t>In order to request and issue a certificate, ACME specification obligates implementations to support elliptical curve algorithm "ES256" <xref target="RFC7518"/> and state that they should support  the "Ed25519" algorithm <xref target="RFC8037"/>. Since the messages in ACME follows the JSON Web Signature standard <xref target="RFC7515"/>, the algorithm support details are specified outside ACME. Therefore, if an ACME server does not support the algorithm or a particular parameter that the client has requested, the server throws "badPublicKey", "badCSR" or "badSignatureAlgorithm" (RFC 8555, Section 6.7).</t>
      <t>The main problem caused by the absence of an algorithm negotiation procedure in ACME is that clients does not know in advance if the server has support to a particular algorithm for the certificate. Therefore, the client must create an account, perform the validation, send a CSR and then receive an error ("badPublicKey"). This "trial-and-error" process  spends client and server resources inefficiently. Having an algorithm negotiation process, the client could check several ACME servers until the client finds the support it needs, without wasting time creating an account and validating the domain for each one of the servers.</t>
      <t>Currently, NIST is selecting Post-Quantum Cryptography (PQC) algorithms for standardization. Dilithium (primary), Falcon, and Sphincs+ have been selected, but other signature algorithms may appear. Similarly, Kyber was selected for standardization as a Key Encapsulation Mechanism (KEM), but others are still candidates (BIKE, HQC, Classic McEliece). Some of these algorithms are probably going to replace the classical alternatives, such as "RS256" and "ES256", since the latter are known to be vulnerable to a Cryptographically Relevant Quantum Computer <xref target="PQC"/>. The PQC algorithms have several parameters, not to mention the "hybrid mode", combining them to the classical alternatives. One can expect that, in the near future, ACME clients will chose the best PQC algorithm (and the mode) that better suit its needs.  Consequently, the HTTPS/TLS servers will be able to secure their connections against the quantum threat.</t>
      <t>In the PQC migration context, TLS has a promising alternative called KEMTLS <xref target="KEMTLS"/>. KEMTLS replaces digital signatures in TLS handshakes by using a KEM algorithm. Therefore, a KEMTLS server must have a KEM certificate: a digital certificate containing the web server's KEM public key and a signature provided by the CA. As of now, ACME does not support KEM algorithms for certificates.</t>
      <t>On the other hand, Güneysu et al. showed how to build a CSR-like process to issue a KEM certificate <xref target="VerifiableGeneration"/>. In theory, ACME could use such a method to issue a KEM certificate without significant changes at the protocol level. However, PoP using verifiable generation for KEMs has some drawbacks, e.g.:</t>
      <ul spacing="normal">
        <li>
          <t>So far, the method is proposed for Kyber and FrodoKEM only. Although the method can also be applied to other algorithms, the security proofs are on a "per-algorithm" basis.</t>
        </li>
        <li>
          <t>The method increase sizes, consequently increasing the communication cost for the ACME's protocol.</t>
        </li>
      </ul>
      <t>The emphasis of this document is on the KEMTLS certificate use case. KEMTLS aims to reduce the size of cryptographic objects for the PQC migration context. KEMTLS can reduce byte costs for a post-quantum TLS but at the cost of increasing sizes in ACME by using verifiable generation processes.</t>
      <t>This document describes an algorithm negotiation procedure for ACME. The process gives flexibility for ACME clients to select the certificate algorithm that better fits its needs, with the PQC landscape options in mind. The document also specifies options for  ACME peers when negotiate a KEM certificate issuance, with or without a CSR-like process, thus contributing to the KEMTLS adoption.</t>
    </section>
    <section anchor="certificate-algorithm-negotiation">
      <name>Certificate Algorithm Negotiation</name>
      <t>With flexibility in mind, by using the process described in this document, ACME servers allow the following options for their clients:</t>
      <ul spacing="normal">
        <li>
          <t>Select a signature algorithm for the ACME's account key. They are specified in the "signature_algorithms_account" list (see section "Algorithm List Definition").</t>
        </li>
        <li>
          <t>Select a signature algorithm for the signature in the certificate to be issued. They are specified in the "signature_algorithms_cert" list. The naming is inspired in RFC 8446.</t>
        </li>
        <li>
          <t>Select a KEM or a signature algorithm for the Subject's public key in the certificate to be issued. They are specified in the "certificate_pubkey" list.</t>
        </li>
      </ul>
      <t>Given that a KEMTLS certificate handles two algorithms (a KEM and a signature), and the possible trade-offs in different use cases (such as IoT <xref target="KEMTLS-BENCH-IOT"/>, this document specifies clients to negotiate not only what is the desired KEM scheme, but also what is the signature that the Issuer CA is willing to use. Such a detailed negotiation for the certificate better address the application's needs.</t>
      <section anchor="cert-algorithms-endpoint">
        <name>Cert-algorithms endpoint</name>
        <t>In order to allow ACME client implementations to select their preferred certificate algorithms, this document specifies servers to implement a new endpoint named /cert-algorithms. The new endpoint can be reached after a GET /dir (see Figure 1 below). The client does not need to create an account with the server, thus saving resources. As PQC standardization evolves, this document does not specify one default configuration or algorithm. ACME implementations can select their preferred (or default) configurations, but they should also allow users to choose at least in the first certificate issuance (renewals can be automated with the same configuration).</t>
        <artwork><![CDATA[
 +------+                       +------+
 | ACME |                       | ACME |
 |Client|                       |Server|
 +--+---+                       +--+---+
    |    GET /dir                  |
    |----------------------------->|
    |<-----------------------------|
    |                   HTTP 200   |
    |                              |
    |    GET /new-nonce            |
    |----------------------------->|
    |<-----------------------------|
    |                   HTTP 200   |
    |                              |
    |    GET /cert-algorithms      |
    |----------------------------->|
    |<-----------------------------|
    |                   HTTP 200   |
]]></artwork>
        <t>Figure 1: Obtaining algorithm support information</t>
        <t>Depending on the server's support, the server might implement one or several classical, PQC, and hybrid PQC algorithms for certificates. In this context, hybrid algorithms are often called "composite" <xref target="I-D.ounsworth-pq-composite-sigs"/>, in which cryptographic objects are concatenated in a single structure. If the algorithm supported by the server is a signature algorithm, the server replies with the corresponding OID; this is the same as if hybrids are allowed (assuming the composite model and corresponding OIDs <xref target="I-D.ounsworth-pq-composite-keys"/><xref target="I-D.ounsworth-pq-composite-sigs"/>. Nevertheless, by means of this new algorithm negotiation endpoint, clients can verify in advance if the server supports the desired algorithms.</t>
      </section>
      <section anchor="algorithm-list-definition">
        <name>Algorithm List Definition</name>
        <t>Upon HTTP GET requests to the /cert-algorithms endpoint, ACME servers reply with a JSON-formatted list of supported algorithms, as follows:</t>
        <artwork><![CDATA[
{
     "signature_algorithms_account": {
       "default"                                 : "OID_TBD",
       "ML-DSA-44-RSA2048-PSS-SHA256"            : "060B6086480186FA6B50080101",
       "ML-DSA-44-RSA2048-PKCS15-SHA256"         : "060B6086480186FA6B50080102",
       "ML-DSA-44-Ed25519-SHA512"                : "060B6086480186FA6B50080103",
       "ML-DSA-44-ECDSA-P256-SHA256"             : "060B6086480186FA6B50080104",
       "ML-DSA-44-ECDSA-brainpoolP256r1-SHA256"  : "060B6086480186FA6B50080105",
       "ML-DSA-65-RSA3072-PSS-SHA512"            : "060B6086480186FA6B50080106",
       "ML-DSA-65-RSA3072-PKCS15-SHA512"         : "060B6086480186FA6B50080107",
       "ML-DSA-65-ECDSA-P256-SHA512"             : "060B6086480186FA6B50080108",
       "ML-DSA-65-ECDSA-brainpoolP256r1-SHA512"  : "060B6086480186FA6B50080109",
       "ML-DSA-65-Ed25519-SHA512"                : "060B6086480186FA6B5008010A",
       "ML-DSA-87-ECDSA-P384-SHA512"             : "060B6086480186FA6B5008010B",
       "ML-DSA-87-ECDSA-brainpoolP384r1-SHA512"  : "060B6086480186FA6B5008010C",
       "ML-DSA-87-Ed448-SHA512"                  : "060B6086480186FA6B5008010D",
       "Falcon-512-ECDSA-P256-SHA256"            : "060B6086480186FA6B5008010E",
       "Falcon-512-ECDSA-brainpoolP256r1-SHA256" : "060B6086480186FA6B5008010F",
       "Falcon-512-Ed25519-SHA512"               : "060B6086480186FA6B50080110",
       "ML-DSA-44-ipd"          : "1.3.6.1.4.1.2.267.12.4.4",
       "ML-DSA-65-ipd"          : "1.3.6.1.4.1.2.267.12.6.5",
       "ML-DSA-87-ipd"          : "1.3.6.1.4.1.2.267.12.8.7",
       "SLH-DSA-SHA2-128s-ipd"  : "1.3.9999.6.4.16",
       "SLH-DSA-SHAKE-128s-ipd" : "1.3.9999.6.7.16",
       "SLH-DSA-SHA2-128f-ipd"  : "1.3.9999.6.4.13",
       "SLH-DSA-SHAKE-128f-ipd" : "1.3.9999.6.7.13",
       "SLH-DSA-SHA2-192s-ipd"  : "1.3.9999.6.5.12",
       "SLH-DSA-SHAKE-192s-ipd" : "1.3.9999.6.8.12",
       "SLH-DSA-SHA2-192f-ipd"  : "1.3.9999.6.5.10",
       "SLH-DSA-SHAKE-192f-ipd" : "1.3.9999.6.8.10",
       "SLH-DSA-SHA2-256s-ipd"  : "1.3.9999.6.6.12",
       "SLH-DSA-SHAKE-256s-ipd" : "1.3.9999.6.9.12",
       "SLH-DSA-SHA2-256f-ipd"  : "1.3.9999.6.6.10",
       "SLH-DSA-SHAKE-256f-ipd" : "1.3.9999.6.9.10",
       "Falcon-512"             : "1.3.9999.3.6*",
       "Falcon-1024"            : "1.3.9999.3.9*",
       "OthersTBD"              : "OID_TBD"
     },
     "signature_algorithms_cert": {
       "default"                : "OID_TBD",
       "ML-DSA-44-ipd"          : "1.3.6.1.4.1.2.267.12.4.4",
       "ML-DSA-65-ipd"          : "1.3.6.1.4.1.2.267.12.6.5",
       "ML-DSA-87-ipd"          : "1.3.6.1.4.1.2.267.12.8.7",
       "SLH-DSA-SHA2-128s-ipd"  : "1.3.9999.6.4.16",
       "SLH-DSA-SHAKE-128s-ipd" : "1.3.9999.6.7.16",
       "SLH-DSA-SHA2-128f-ipd"  : "1.3.9999.6.4.13",
       "SLH-DSA-SHAKE-128f-ipd" : "1.3.9999.6.7.13",
       "SLH-DSA-SHA2-192s-ipd"  : "1.3.9999.6.5.12",
       "SLH-DSA-SHAKE-192s-ipd" : "1.3.9999.6.8.12",
       "SLH-DSA-SHA2-192f-ipd"  : "1.3.9999.6.5.10",
       "SLH-DSA-SHAKE-192f-ipd" : "1.3.9999.6.8.10",
       "SLH-DSA-SHA2-256s-ipd"  : "1.3.9999.6.6.12",
       "SLH-DSA-SHAKE-256s-ipd" : "1.3.9999.6.9.12",
       "SLH-DSA-SHA2-256f-ipd"  : "1.3.9999.6.6.10",
       "SLH-DSA-SHAKE-256f-ipd" : "1.3.9999.6.9.10",
       "Falcon-512"             : "1.3.9999.3.6*",
       "Falcon-1024"            : "1.3.9999.3.9*",
       "OthersTBD"              : "OID_TBD"
     },
     "certificate_pubkey": {
       "default"                : "OID_TBD",
       "ML-DSA-44-ipd"          : "1.3.6.1.4.1.2.267.12.4.4",
       "ML-DSA-65-ipd"          : "1.3.6.1.4.1.2.267.12.6.5",
       "ML-DSA-87-ipd"          : "1.3.6.1.4.1.2.267.12.8.7",
       "SLH-DSA-SHA2-128s-ipd"  : "1.3.9999.6.4.16",
       "SLH-DSA-SHAKE-128s-ipd" : "1.3.9999.6.7.16",
       "SLH-DSA-SHA2-128f-ipd"  : "1.3.9999.6.4.13",
       "SLH-DSA-SHAKE-128f-ipd" : "1.3.9999.6.7.13",
       "SLH-DSA-SHA2-192s-ipd"  : "1.3.9999.6.5.12",
       "SLH-DSA-SHAKE-192s-ipd" : "1.3.9999.6.8.12",
       "SLH-DSA-SHA2-192f-ipd"  : "1.3.9999.6.5.10",
       "SLH-DSA-SHAKE-192f-ipd" : "1.3.9999.6.8.10",
       "SLH-DSA-SHA2-256s-ipd"  : "1.3.9999.6.6.12",
       "SLH-DSA-SHAKE-256s-ipd" : "1.3.9999.6.9.12",
       "SLH-DSA-SHA2-256f-ipd"  : "1.3.9999.6.6.10",
       "SLH-DSA-SHAKE-256f-ipd" : "1.3.9999.6.9.10",
       "Falcon-512"             : "1.3.9999.3.6*",
       "Falcon-1024"            : "1.3.9999.3.9*",
       "ML-KEM-512-ECDH-P256-KMAC128"             : "DER_OID_TBD",
       "ML-KEM-512-ECDH-brainpoolP256r1-KMAC128"  : "DER_OID_TBD",
       "ML-KEM-512-X25519-KMAC128"                : "DER_OID_TBD",
       "ML-KEM-512-RSA2048-KMAC128"               : "DER_OID_TBD",
       "ML-KEM-512-RSA3072-KMAC128"               : "DER_OID_TBD",
       "ML-KEM-768-ECDH-P256-KMAC256"             : "DER_OID_TBD",
       "ML-KEM-768-ECDH-brainpoolP256r1-KMAC256"  : "DER_OID_TBD",
       "ML-KEM-768-X25519-KMAC256"                : "DER_OID_TBD",
       "ML-KEM-1024-ECDH-P384-KMAC256"            : "DER_OID_TBD",
       "ML-KEM-1024-ECDH-brainpoolP384r1-KMAC256" : "DER_OID_TBD",
       "ML-KEM-1024-X448-KMAC256"                 : "DER_OID_TBD",
       "ML-KEM-512-ipd"         : "1.3.6.1.4.1.22554.5.6.1",
       "ML-KEM-768-ipd"         : "1.3.6.1.4.1.22554.5.6.2",
       "ML-KEM-1024-ipd"        : "1.3.6.1.4.1.22554.5.6.3",
       "OthersTBD"              : "OID_TBD"
     }
}
]]></artwork>
        <t>Servers <bcp14>MUST</bcp14> provide such a list with at least one algorithm (default). The structure of the list allows the client to choose different algorithms for composing the certificate. Moreover, the OIDs presented on this list are subject to change until the final version of this document is released. Other algorithms can be added (replacing "OthersTDB" in the list), for example including non-PQC algorithms such as "RS256" (RFC 7518). Lastly, hybrid modes are specified here based on the IETF I-Ds (such as <xref target="I-D.ounsworth-pq-composite-sigs"/>). Their OID is represented by a DER-encoded OID concatenation (following <xref target="I-D.ounsworth-pq-composite-sigs"/>, Table 1). Hybrids are <bcp14>RECOMMENDED</bcp14> to be in the default choice for algorithm selection.</t>
        <t>Note that this list allows a client to ask for a KEMTLS certificate by selecting "ML-KEM-*" using the "certificate_pubkey" sublist.</t>
      </section>
    </section>
    <section anchor="kem-certificate-issuance-modes">
      <name>KEM Certificate Issuance Modes</name>
      <t>ACME Certificate issuance process does not require modifications when issuing PQC signature certificates. However, this document proposes the following changes to the ACME protocol for KEM certificates. Assuming that the ACME client has already performed account registration and challenge, Figures 2 and 3 show two ways to issue a KEM certificate. Figure 2 requires 3 RTTs, while Figure 3 optimizes performance to 1 RTT. The main difference is that the optimized mode does not guarantee key confirmation. The 1-RTT mode is similar to the "Indirect Method" of PoP defined in RFC 4210 <xref target="RFC4210"/>. ACME servers <bcp14>SHOULD</bcp14> enforce the 3-RTT mode if they require a confirmation that the client actually possesses the certificate's private key. If performance is desired, the 1-RTT mode is suitable since it reduces the number of signed requests and polling time.</t>
      <artwork><![CDATA[
     +------+                       +------+
     | ACME |                       | ACME |
     |Client|                       |Server|
     +--+---+                       +--+---+
        |                              |
        |pk,sk <- KEM.Keygen()         |
        |                              |
        | POST /finalize [pk,mode]     |
        |----------------------------->|
        |                              |
        |        Z,ct <- KEM.Encaps(pk)|
        |  ct                          |
        |<-----------------------------|
        |                              |
        |Z <- KEM.Decaps(ct,sk)        |
        |                              |
        | POST /key-confirm [Z]        |
        |----------------------------->|
        |<-----------------------------|
        |                   HTTP 200   |
        |                     or 401   |
        | POST /certZ                  |
        |----------------------------->|
        |<-----------------------------|
        |           application-pem    |

       [ ] Message signed by the client's
           account key
]]></artwork>
      <t>Figure 2: 3-RTT KEMTLS Certificate Issuance Process</t>
      <artwork><![CDATA[
     +------+                       +------+
     | ACME |                       | ACME |
     |Client|                       |Server|
     +--+---+                       +--+---+
        |                              |
        |pk,sk <- KEM.Keygen()         |
        |                              |
        | POST /finalize [pk,mode]     |
        |----------------------------->|
        |                              |
        |        Z,ct <- KEM.Encaps(pk)|
        |        enc_cert <-enc(Z,cert)|
        | ct,enc_cert                  |
        |<-----------------------------|
        |                              |
        |Z <- KEM.Decaps(ct,sk)        |
        |cert <- dec(Z,enc_cert)       |
        |                              |

       [ ] Message signed by the client's
           account key
]]></artwork>
      <t>Figure 3: 1-RTT KEMTLS Certificate Issuance Process</t>
      <t>Figure 2 shows the 3-RTT mode. The client can not use a CSR for a KEMTLS certificate, so it generates a key pair and send a "modified CSR", where the public key is a KEM public key, and the signature is random (dummy) data. The server then identifies and extracts the mode and the KEM public key from the modified CSR. Having implemented the KEM algorithm, the server encapsulates under the client's public key sending back the ciphertext to the client. The client performs a decapsulation and confirms the shared secret using the /key-confirm endpoint. ACME servers willing to issue KEMTLS certificates <bcp14>MUST</bcp14> implement this endpoint.</t>
      <t>Figure 3 shortens the KEMTLS process because it replies a ciphertext and the encrypted certificate before key confirmation. Since it is encrypted, clients without the private key cannot use the certificate. Having the private key, the client decapsulates the shared secret Z and derives a symmetric key from it (see Section 3.2). The symmetric key is used to decrypt the certificate. In this way, issuing a KEMTLS certificate does not impose additional RTTs compared to the 1-RTT CSR standard process, i.e., POSTing a CSR to /finalize. The 3-RTT mode, on the other hand, imposes the RTT related to the key-confirmation endpoint.</t>
      <t>Note, however, that key confirmation can be addressed differently in the 1-RTT mode. First, ACME servers could limit the use of this mode or ask for a delayed key confirmation, depending on CA policies (see Section 5 for a discussion). Secondly, if required, ACME servers could establish a TLS handshake with the client's domain at a later (perhaps more convenient) moment. A valid TLS handshake would tell that the client could use the encrypted certificate, thus proving possession of the private key. Lastly, for the applications where it is enough to prove possession of the account's private key (and not the certificate), the 1-RTT mode could be used.</t>
      <section anchor="post-examples">
        <name>POST Examples</name>
        <t>Considering the first POST to /finalize (Figure 2), which would be similar to a standard POST <xref target="RFC8555"/>, an example of a reply would be as follows. This example considers a CSR built with a KEM public key (Kyber-512) and dummy data in the CSR's signature.</t>
        <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Replay-Nonce: CGf81JWBsq8QyIgPCi9Q9X
Link: <https://example.com/acme/directory>;rel="index"
{
  "key-confirm-data": {
    "ct": "9HwLdArXTDC/otcTWNWYcOgRxWOeUahZj3Ri7...Cl79urEXkhoUhWcqWzb2",
    "ct-alg": "Kyber-512"
  },
  "key-confirm-url": "https://example.com/key-confirm/Rg5dV14Gh1Q"
}
]]></artwork>
        <t>Note that this reply contains the 'key-confirm-data' and 'key-confirm-url' so ACME clients can proceed accordingly. After decapsulating the shared secret from "ct", the client can POST to the key confirm URL.</t>
        <artwork><![CDATA[
POST /key-confirm/Rg5dV14Gh1Q HTTP/1.1
Host: example.com
Content-Type: application/jose+json

{
     "protected": base64url({
       "alg": "Dilithium2",
       "kid": "https://example.com/acme/acct/evOfKhNU60wg",
       "nonce": "Q_s3MWoqT05TrdkM2MTDcw",
       "url": "https://example.com/key-confirm/Rg5dV14Gh1Q"
     }),
     "payload": base64url({
       "Z": "r0Sk+fqvfceIetPIdszNs7PMylb3G/B536mZDj0B8Rs="
     }),
     "signature": "9cbg5JO1Gf5YLjjz...SpkUfcdPai9uVYYQ"
}
]]></artwork>
        <t>The POST is signed with Dilithium2 in this example. Note that the client is sending "Z" back in a secure channel (i.e., an underlying TLS connection between the ACME peers), so Z is not being disclosed to a passive attacker. The shared secret Z is used to prove the private key's possession. The ACME server compares the received Z with the order's information and starts issuing the certificate. If Z mismatches the server's storage, an HTTP error 401 is sent. If Z matches, there are no further modifications in the protocol, so the client and server proceed as RFC 8555 <xref target="RFC8555"/> dictates, i.e., clients start polling until their certificates are ready to be downloaded.</t>
      </section>
      <section anchor="deriving-keys-for-encrypting-a-kem-certificate">
        <name>Deriving keys for encrypting a KEM Certificate</name>
        <t>When using the 1-RTT mode for KEM certificate issuance, ACME peers <bcp14>MUST</bcp14> implement a Key-Derivation Function (KDF) and a Symmetric encryption algorithm. Since ACME can be considered as a "TLS-enabler" protocol, and for simplicity of implementations, ACME peers <bcp14>SHOULD</bcp14> provide HKDF <xref target="RFC5869"/> (as in TLS <xref target="RFC8446"/>) to derive the keys for encrypting the certificate. The hash function for  HKDF is obtained from the ciphersuite (see Section 3.3 below).</t>
        <t>Following the notation provided in RFC 5869, for the 1-RTT mode, ACME peers <bcp14>SHOULD</bcp14> implement the following "two-step" Key-Derivation Method:</t>
        <artwork><![CDATA[
   PRK <- HKDF-Extract(salt, Z)
   OKM <- HKDF-Expand(PRK, info, L)
]]></artwork>
        <t>where Z is the KEM output (shared secret), salt is an optional and non-secret random value, PRK is the intermediary pseudorandom key, info is optional context information, L is the length of OKM, and OKM is the output keying material. The length of OKM (in octets) depends on the ciphersuite. This document recommends filling the 'salt' octets with the Key Authorization String (KAS)  and the 'info' field as the hash of the POST /finalize message. Note that the OKM can comprise the key (using OKM's left-most bytes) and Initialization Vectors (IVs), if required, in the OKM's right-most bytes.</t>
      </section>
      <section anchor="encrypting-a-kem-certificate-in-a-jwe-message">
        <name>Encrypting a KEM Certificate in a JWE message</name>
        <t>Section 5.1 in RFC 7518 <xref target="RFC7518"/> defines a set of symmetric algorithms for encryting JSON-formatted messages. The encrypted certificate <bcp14>SHOULD</bcp14> be sent in a JWE Ciphertext format specified in RFC 7516 <xref target="RFC7516"/>. Following Section 5.1 of RFC 7516, ACME servers encrypts M as the base64-encoded certificate using OKM. No Key agreement is performed at the JWE domain, thus ACME peers <bcp14>MUST</bcp14> perform JWE Direct Encryption, i.e., selecting "dir" as the "alg" field  (Section 4.1 of RFC 7518 <xref target="RFC7518"/>) and one encryption algorithm defined in Section 5.1 of RFC 7518 <xref target="RFC7518"/> for the "enc" field in the JOSE header. As a result, the JWE message contains only the ciphertext field and the header; the remaining JWE fields are absent (note that it could mean empty or zero-ed octets). ACME clients decrypt the JWE Ciphertext following Section 5.2 of RFC 7516.</t>
        <t>When receiving an encrypting certificate, it concludes the 1-RTT mode. Therefore, there is no need for the ACME peers to exchange further JWS messages. On the other hand, depending on CA policies, ACME servers could allow a POST in /key-confirm endpoint in a later moment, if a delayed key confirmation is desired. Such a policy could be use to limit the usage of the 1-RTT mode, if desired, for example enforcing 3-RTT mode if a previous 1-RTT was not later "key confirmed" or checked by a TLS handshake (between the ACME server and the ACME client's domain that was  certified).</t>
      </section>
    </section>
    <section anchor="kem-certificate-revocation-procedure">
      <name>KEM-Certificate Revocation Procedure</name>
      <t>Figure 4 illustrates the revocation procedure for a KEM certificate. The endpoint ("/revokeCert") is the same to revoke all types of certificates. Therefore, old clients remain compatible to this proposal.</t>
      <t>Servers process revocation requests similarly. If the certificate inside of the revocation request is a KEM, then the server sends a challenge ciphertext to the client. The client then proves ownership of the private key by decapsulating and POSTing to the /kem-confirm endpoint, allowing revocation.</t>
      <artwork><![CDATA[
+------+                       +------+
| ACME |                       | ACME |
|Client|                       |Server|
+--+---+                       +--+---+
   | [Revocation Request]         |
   | Signature                    |
   |----------------------------->|
   |                              |
   |        Z,ct <- KEM.Encaps(pk)|
   | ct                           |
   |<-----------------------------|
   |                              |
   |Z <- KEM.Decaps(ct,sk)        |
   |                              |
   |         POST /key-confirm [Z]|
   |----------------------------->|
   |<-----------------------------|
   |                   Result     |

    Figure 4: KEM-Revoke Procedure
]]></artwork>
      <t>This revocation procedure still uses signatures from the account keys (for the requests), but modifies ACME to support revoking KEM certificates. Servers COULD support the following optimization to this procedure:</t>
      <ol spacing="normal" type="1"><li>
          <t>Clients and Servers store Z from the Issuance Process (Section 3).</t>
        </li>
        <li>
          <t>A client could reuse Z from the Issuance process to revoke the certificate (appending Z as an optional JSON field in the Revocation Request). This way the revocation is done in 1-RTT, saves computational time (one encapsulation and one decapsulation) but requires state: clients and servers need to store key confirmations (Z).</t>
        </li>
        <li>
          <t>Servers match the stored Z with the one appended in the revocation request. If it matches, servers reply the result.</t>
        </li>
      </ol>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

<t>KEM Certificate: a X.509 certificate where the subject's public key is from a Key-Encapsulation Mechanism (KEM) but the signature comes from the Issuer Certificate Authority (CA) digital signature scheme.</t>
      <t>3-RTT Mode: a modification in ACME to allow issuance of KEM certificates with explicit key confirmation.</t>
      <t>1-RTT Mode: a modification in ACME to allow issuance of KEM certificates without key confirmation, delayed or implicit key confirmation.</t>
    </section>
    <section anchor="additions-to-the-acme-directory">
      <name>Additions to the ACME directory</name>
      <t>As in RFC 8555, Section 7.1.1, the directory object contains the required URLs to configure ACME clients. This document adds the following fields to the directory:</t>
      <ul spacing="normal">
        <li>
          <t>Field: "key-confirm"; URL in Value: Key confirmation.</t>
        </li>
        <li>
          <t>Field: "cert-algorithms"; URL in Value: Certificate Algorithms List.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>RFC 8555 <xref target="RFC8555"/> states that ACME relies on a secure channel, often provided by TLS. In this regard, this document does not impose any changes. The first modification is the /cert-algorithms endpoint, accessible from the server's directory, allowing clients to query algorithm support in advance. ACME servers could control the number of queries to this endpoint by controlling the nonces to avoid Denial-of-Service (DoS). The second modification is a feature; ACME servers can now support KEM certificates in an automated way. In both modifications, one question is about the security of the supported algorithms (i.e., select which algorithms to support). The recommendations in this document are built upon the announced standards by NIST. Given the ongoing PQC standardization, new algorithms and attacks on established schemes can appear, meaning that the recommendation for algorithm support can change in the future.</t>
      <t>RFC 8555 states that ACME clients prove the possession of the private keys for their certificate requests <xref target="RFC8555"/>. This document follows this guideline explicitly in the 3-RTT mode for KEM certificates. On the other hand, in the 1-RTT mode, key confirmation is implicit. It is assumed that an encrypted KEM certificate is not useful to anyone but the owner of the KEM private key. Therefore, if the certificate is being used, the client holds the private key as expected. Moreover, this document provides a guideline on performing a "delayed" key confirmation, i.e., by separately POSTing to the /key-confirm endpoint. An alternate solution would be for the ACME server to monitor TLS usage by the client's domain, also as an implicit way to confirm proof of possession.</t>
      <section anchor="integration-with-other-ecosystems">
        <name>Integration with other ecosystems</name>
        <t>The 3-RTT mode provides explicit key confirmation, which complies with RFC 8555, and it is also easier to integrate with other ecosystems, such as Certificate Transparency <xref target="RFC9162"/>. However, the 1-RTT mode imposes challenges, such as publishing the certificate without (prior) key confirmation. One solution would be a delayed log, in which the CA awaits key confirmation or perform a TLS handshake with the client's domain. If full integration is required, it would be easier to manage if the 3-RTT mode is enforced by default.</t>
      </section>
      <section anchor="revocation-considerations">
        <name>Revocation Considerations</name>
        <t>Section 7.6 (RFC 8555 <xref target="RFC8555"/>) allows clients to sign a revocation request using the certificate's private key under revocation or by using account keys. The revocation procedure described in this document REQUIRES account keys to sign requests and Proof-of-Possession for the KEM certificate.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8555">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="I-D.ounsworth-pq-composite-sigs">
          <front>
            <title>Composite Signatures For Use In Internet PKI</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>CableLabs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>D-Trust GmbH</organization>
            </author>
            <date day="11" month="February" year="2024"/>
            <abstract>
              <t>   The migration to post-quantum cryptography is unique in the history
   of modern digital cryptography in that neither the old outgoing nor
   the new incoming algorithms are fully trusted to protect data for the
   required data lifetimes.  The outgoing algorithms, such as RSA and
   elliptic curve, may fall to quantum cryptanalysis, while the incoming
   post-quantum algorithms face uncertainty about both the underlying
   mathematics as well as hardware and software implementations that
   have not had sufficient maturing time to rule out classical
   cryptanalytic attacks and implementation bugs.

   Cautious implementers may wish to layer cryptographic algorithms such
   that an attacker would need to break all of them in order to
   compromise the data being protected using either a Post-Quantum /
   Traditional Hybrid, Post-Quantum / Post-Quantum Hybrid, or
   combinations thereof.  This document, and its companions, defines a
   specific instantiation of hybrid paradigm called "composite" where
   multiple cryptographic algorithms are combined to form a single key
   or signature such that they can be treated as a single atomic object
   at the protocol level.

   This document defines the structures CompositeSignaturePublicKey,
   CompositeSignaturePrivateKey and CompositeSignatureValue, which are
   sequences of the respective structure for each component algorithm.
   Composite signature algorithm identifiers are specified in this
   document which represent the explicit combinations of the underlying
   component algorithms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-sigs-12"/>
        </reference>
        <reference anchor="I-D.ounsworth-pq-composite-keys">
          <front>
            <title>Composite Public and Private Keys For Use In Internet PKI</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>CableLabs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>D-Trust GmbH</organization>
            </author>
            <date day="29" month="May" year="2023"/>
            <abstract>
              <t>   The migration to post-quantum cryptography is unique in the history
   of modern digital cryptography in that neither the old outgoing nor
   the new incoming algorithms are fully trusted to protect data for the
   required data lifetimes.  The outgoing algorithms, such as RSA and
   elliptic curve, may fall to quantum cryptalanysis, while the incoming
   post-quantum algorithms face uncertainty about both the underlying
   mathematics as well as hardware and software implementations that
   have not had sufficient maturing time to rule out classical
   cryptanalytic attacks and implementation bugs.

   Cautious implementers may wish to layer cryptographic algorithms such
   that an attacker would need to break all of them in order to
   compromise the data being protected using either a Post-Quantum /
   Traditional Hybrid, Post-Quantum / Post-Quantum Hybrid, or
   combinations thereof.  This document, and its companions, defines a
   specific instantiation of hybrid paradigm called "composite" where
   multiple cryptographic algorithms are combined to form a single key,
   signature, or key encapsulation mechanism (KEM) such that they can be
   treated as a single atomic object at the protocol level.

   This document defines the structures CompositePublicKey and
   CompositePrivateKey, which are sequences of the respective structure
   for each component algorithm.  Explicit pairings of algorithms are
   defined which should meet most Internet needs.

   This document is intended to be coupled with corresponding documents
   that define the structure and semantics of composite signatures and
   encryption, such as [I-D.ounsworth-pq-composite-sigs] and
   [I-D.ounsworth-pq-composite-kem].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-keys-05"/>
        </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="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </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="RFC7516">
          <front>
            <title>JSON Web Encryption (JWE)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7516"/>
          <seriesInfo name="DOI" value="10.17487/RFC7516"/>
        </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>
        <reference anchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="KEMTLS">
          <front>
            <title>Post-Quantum TLS Without Handshake Signatures</title>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>Max Planck Institute for Security and Privacy &amp;amp; Radboud University, Bochum, Germany</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo, Waterloo, ON, Canada</organization>
            </author>
            <author fullname="Thom Wiggers" initials="T." surname="Wiggers">
              <organization>Radboud University, Nijmegen, Netherlands</organization>
            </author>
            <date month="October" year="2020"/>
          </front>
          <seriesInfo name="Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications" value="Security"/>
          <seriesInfo name="DOI" value="10.1145/3372297.3423350"/>
          <refcontent>ACM</refcontent>
        </reference>
        <reference anchor="KEMTLS-BENCH-IOT">
          <front>
            <title>KEMTLS vs. Post-quantum TLS: Performance on Embedded Systems</title>
            <author fullname="Ruben Gonzalez" initials="R." surname="Gonzalez">
              <organization/>
            </author>
            <author fullname="Thom Wiggers" initials="T." surname="Wiggers">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="Security, Privacy, and Applied Cryptography Engineering" value="pp. 99-117"/>
          <seriesInfo name="DOI" value="10.1007/978-3-031-22829-2_6"/>
          <seriesInfo name="ISBN" value="[&quot;9783031228285&quot;, &quot;9783031228292&quot;]"/>
          <refcontent>Springer Nature Switzerland</refcontent>
        </reference>
        <reference anchor="VerifiableGeneration">
          <front>
            <title>Proof-of-Possession for KEM Certificates using Verifiable Generation</title>
            <author fullname="Tim Güneysu" initials="T." surname="Güneysu">
              <organization>Ruhr University Bochum, Horst Görtz Institute for IT-Security &amp;amp; DFKI GmbH, Cyber-Physical Systems, Bochum, Germany</organization>
            </author>
            <author fullname="Philip Hodges" initials="P." surname="Hodges">
              <organization>University of Waterloo, Waterloo, ON, Canada</organization>
            </author>
            <author fullname="Georg Land" initials="G." surname="Land">
              <organization>Ruhr University Bochum, Horst Görtz Institute for IT-Security &amp;amp; DFKI GmbH, Cyber-Physical Systems, Bochum, Germany</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust, Ottawa, ON, Canada</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo, Waterloo, ON, Canada</organization>
            </author>
            <author fullname="Greg Zaverucha" initials="G." surname="Zaverucha">
              <organization>Microsoft Research, Redmond, WA, USA</organization>
            </author>
            <date month="November" year="2022"/>
          </front>
          <seriesInfo name="Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications" value="Security"/>
          <seriesInfo name="DOI" value="10.1145/3548606.3560560"/>
          <refcontent>ACM</refcontent>
        </reference>
        <reference anchor="PQC">
          <front>
            <title>Post-quantum cryptography</title>
            <author fullname="Daniel J. Bernstein" initials="D." surname="Bernstein">
              <organization/>
            </author>
            <author fullname="Tanja Lange" initials="T." surname="Lange">
              <organization/>
            </author>
            <date month="September" year="2017"/>
          </front>
          <seriesInfo name="Nature" value="vol. 549, no. 7671, pp. 188-194"/>
          <seriesInfo name="DOI" value="10.1038/nature23461"/>
          <refcontent>Springer Science and Business Media LLC</refcontent>
        </reference>
        <reference anchor="I-D.ietf-acme-authority-token">
          <front>
            <title>Automated Certificate Management Environment (ACME) Challenges Using an Authority Token</title>
            <author fullname="Jon Peterson" initials="J." surname="Peterson">
              <organization>Neustar, Inc.</organization>
            </author>
            <author fullname="Mary Barnes" initials="M." surname="Barnes">
              <organization>Neustar, Inc.</organization>
            </author>
            <author fullname="David Hancock" initials="D." surname="Hancock">
              <organization>Comcast</organization>
            </author>
            <author fullname="Chris Wendt" initials="C." surname="Wendt">
              <organization>Somos</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>Some proposed extensions to the Automated Certificate Management Environment (ACME) rely on proving eligibility for certificates through consulting an external authority that issues a token according to a particular policy.  This document specifies a generic Authority Token Challenge for ACME that supports subtype claims for different identifiers or namespaces that can be defined separately for specific applications.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-acme-authority-token-09"/>
        </reference>
      </references>
    </references>
    <?line 447?>

<section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <t>Lucas Pandolfo Perin</t>
      <t>Technology Innovation Institute, United Arab Emirates</t>
      <t>Victor do Valle Cunha</t>
      <t>Federal University of Santa Catarina, Brazil</t>
      <t>Ricardo Custódio</t>
      <t>Federal University of Santa Catarina, Brazil</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
I9zIFjSdzCSw+1g92sVRUDgQWyN/8SbH6DyoU7EpetwwgqOyUrw8vxNbASyT
5MILTnf04UnYZpvB6H1a2xRxhmtaCpyUeoVXrqV3xsEKG8wgsxc1T9X1VQ9J
RJ6kj5DSKCbMLCheEKixLKK8kiNMUtf051hT5XgQDyvOp4V5aYbb9gFnTL9u
nJJomakBSJNPCdw49OOAkiMwK2xSYYyJm/ocaAv4Uz0CLHM+0uZlS2TKWSUX
irL5Gaemvn4m0xyrYb5uiC+79POlqP8xXzfEH4yaP1Y8aL6GB0/p7Fc+yKnb
P2jqL9dP/SVPTeDhx9LdMlB+qLvu52v90LO1T/1RTlf5QadY7Gxvl9OtWLi/
JrtwOLNunOAB/idbeEVO/Act/NmWIdpnW5qMGw0je47F9dD42MuBeFvEhMbc
GVWLkakVO3LniQ0Te/HxGRW3lJJU54hNaMiGdToonFi76nBQJaK05IWzExxm
ZfxDD6zE1Tg1qWMfTfDGQHOHuaLkCObTQIhmgJZ82p3/2rVfd0FLZqiYQZxw
xUq9z4QzwAJwSTFJEAykY+BtEmF8MC1GqGkpo1Wb5ChDExphlGStMZ48rGKc
BpWVFVejBIRpNk/4YK4vzr5i3BiVj9IMDJBwrJHECydJijKYUtCOw8o4oNhX
RGeyBD/7BPqwmOfjx01Q3ANfAfYEM0fkfLi5VtoDatR6r87o2Y41k1Cgk/u4
WJ3R0Jj3rSZHjZNhstJGbzTeAhqYtZC7dVooMy7SEreXi/R8FzzChS77oExZ
l3kMKYJ8Bth+SSOu5SIzk2U7rtNIv5M4+IRbciz0Y/Cg1r7N9UINfo5FE07+
57vnZ82OHX112T0bnHT39rq3g5Od7b2j7s1g0B28OqFwtD96+2D7+cH20cHe
0Xb/6ODFycHz/e1t+H27vx7g69NBf38J5jqAO7UAdWITIe33d5Y2vA7gbj3A
U/zlBpZVt+O1APfWABymIIrnSRIh5LRfwl4HcH8Z4ME+4nB3+3DHHEp12+sA
HqwHaA/Fg7kO4GEtQB+HS+eyDuDRGoA1OGTY6wA+rQf458nmZBng0aHZ8u7R
3mdv+fkagOWWAfKmWz6tBxjsAeOt2PB6gK5w4OxeF4B8glXWATxfB3AVq6wD
+GIFwLXHvAZgf7uWl8N50PTG93u7vYNev7cH/+70dg4Oe/0d+KNGEgDRbTb6
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
wY365TLYa1I9hNgFn8Fgr1X0RXgHTWe1+A4ALGzEZrimfs6P9LWWvBxtaRsi
dqisDDESneK0hjZUgFaSLjjrurL8Vj0kuhHfjekIZ1MMewIUZMGvATGOjH3c
byBXU17FIlqfYau5hWPvFU7ebHttGKgjH36H9CDwHUzU6sAvH3NoN8EGwpqx
mHHZ28pD3UqUPFGuXJPYQ9AUtJrkiLMLWyKUmRa5tjOFZ/qT9W3IY3m8Tbd1
OF3mZK4yMjWk00V9o3wUgSHHM/N781dzK0A1fvQHScPkCUwLhns1W+Ir51U4
5YZqYz6bVhlsWmCwaW3BZ5QV/CF+dEhZd9//qQTJz5Rt1+umpWc2yPpvkiPf
JNf/x9qiJA1ng8T9RuvZIF3/WfuqL0LaHId/cl+3pPf1eijOZWTVMcm2WxYk
pSyrdZu4XWatMOMO1gVmyZxWv9YfdaoJMqxmTrVAYCmiG2LrXLe2z5wXFJCY
Q4ZbLo81MuqUrFe3Pb/fyXFmLHxHzvHSwfPs98SpFozUPlzDxKgQeol2F9V6
htLe20VFsYOJJy+hlCpUmHUQnLa9WohXZWcLu5CzSfCegheOA0ovRPBMvWUu
Nq3rH+WiKn3Jr4vJIyFdi14uvfCLWnJLPQk1hW9pO7WS2ecmbs6nbTpBWxFM
r4c4tuqmjHVltgEdY7dqhABO3yMud8ujpZgbqwYc4kcDY0qt4VsHLSqW1Qzp
JjBYbPTO753Dg5BBKDuGbbgfuK04r7zs2ZNxUBcXje8rzEQT/Qd8TQP5EW+u
6ffb82/fXtyen+Hvg1cnl5f2l4Z+gp2t8rdypC3Qxz/hU+F91GhenfzQZN+/
eX1zd3H95uSyudTdlExwU+AP1hNYVtT7J2t4HVGfn9783//V39PuxE6/j2Er
HavqH+7BH1gG39EHTl0iFblQatHgFvlkY1Ln+jk22+aeQljaE9PVCUDn335E
zPx0LJ4NR/P+3tf6A9yw96HBmfch4Wz5k6XBjMSaj2qmsdj0Pq9g2l/vyQ/e
3wbvzofP/hGBzya6/aN/oJiseP7Yjnz5TWpl+VFW28VUS0+OjK59nYDpbuhe
Ukhmrvg1bTndDrvmnT+idXrSXu7Trlt/IiuSOY43K3Ajbozbdly2rTXtPQuw
uKrCmrlWfeAA63KVDMjh/58zJcXyHB3r/IAGMqHeupWAFDjRVSf+bQ2bn200
TjL3RXrlu1cOe/1en11s+7Ru8+ZnNU1oCZOG3IHSvrLM9YKrkTgZBNV7Jdrz
Nq8NM7NSp+IX+N2xl7xtfoVTCn6rWgHIfr2MgXJgpQ/Z0uDavs0ZtTtjTA5M
i3RTZiC1LK1PdpDu0NdA9LvXqBArWc54mZcDut35wRMsi41SNZFpsLInqSkw
ihfmag47E1z/4BMg43xNVzZ8Yalu5WsZz2aY7Jk47oPTkhfUFBBJXcNE03uu
VxcIMO/iovC9vcaBwEJzy8gpgkPs6BFRGfSPR/yofEhC1HUxvugmGXdR/eJl
sNZZMjBFX1Tgs4QXKcaKZMZXlTVSCeej9zoEj01xd7HbNFUu6OjovateMq1D
mp5fmKUnHZqKOduB37yFpqbZnUmN6t6xXLvifF0am3qrNtztJvOqKpZLUIq5
jp5jtV4B6Axs/Qu92gJfgNMTpn002iz8YpaaJrodv0chmx+cbyX6t3VTOAfJ
Z8Yya+MOxda8u2L+NqoX+/S5UOic41Wm522hi2Ishy4xpSFeJ8m7riLK66Pu
CAwbSPDfQ+pLvPJdYPDppABOJ3VrVElZJLe7NhNZH3lbqq/r1EbGjLYAAl1+
2WIZWdR9s/38pylkHhcRv7FzgdRstDaFKQzKqJDJLSRzAjhhTYAl07l6fkmv
k17md3dWox4y0y+4wRife/23cnmR31grHWSjt8dhcs5uNLUmbdYoWeY1uueJ
r+zJFZzQcmiltuo3ti+aAUZOooLQb4vDvGirqbNO4NTAPIevMAjIAclKYbsN
/3PfZ3KmrPonBymxFTz0Hg88DqdMgZI7+HZY8y4LfvkBURFwGL8QVjsHDg1a
RK40ekwZHXpeZSPW0qagd/0xveHK8XUXvOVQL0bVL6V8n5Orne9SGWdYXhGP
FprhnvYPdpDhnHus/u1BXfpqw3AOaLJWs2lNxtoaYPiCriRt15RE4/uWlg+4
jE5HycTpmYvwT0+EfJT4Iowl/oSzNzmcTQtKySfEV7lbVGpGdxJ+ebmwEvMz
esuyYcZd76Klvg0acHSR7lQz7TjuedUIKs3Gg/JNfp44bJsr1u4bRMBOp3zO
Uki1qLvrXyke5ZsAzmBAYPkSJidWY5RhTcRn9cs1hHbmBn7Yx6zau156g9yG
5sZNqT0Ml1dD42RMXpy8OVnCoa8uppQ54Cclvw3LvFQbS6e0i8/vJEnSrPH7
MdtOKvh7cwx8ppofG43LYgRgbjBdH40TcYPFsTAReF5xArS5AHEQJ7qE4SIG
syQvMJH0FiQRvrE3lUNxPgspBdBofBei7QcrRJsZ7MPTIp7KRuOFCqh5NQyi
1glswwwk+AjiVOYSppQd8TyVv4UR6GLAQgogToss/+f/DsLkcwH8PxweJH9X
ggAA

-->

</rfc>
