<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-acme-pop-00" category="std" consensus="true" submissionType="IETF" updates="RFC 8555" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="ACME PoP Challenge">Automated Certificate Management Environment (ACME) Extension for Proof-of-Possession</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-acme-pop-00"/>
    <author initials="F." surname="Geng" fullname="Feng Geng">
      <organization>Yinwang Intelligent Technology</organization>
      <address>
        <email>gengfeng@yinwang.com</email>
        <email>507069@qq.com</email>
      </address>
    </author>
    <author initials="P." surname="Wu" fullname="Panyu Wu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>wupanyu3@huawei.com</email>
      </address>
    </author>
    <author initials="L." surname="Xia" fullname="Liang Xia">
      <organization>Huawei Technologies</organization>
      <address>
        <email>frank.xialiang@huawei.com</email>
      </address>
    </author>
    <author initials="X." surname="Chen" fullname="Xin Chen">
      <organization>TrustAsia</organization>
      <address>
        <email>palos.chen@trustasia.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="01"/>
    <workgroup>Automated Certificate Management Environment Working Group</workgroup>
    <keyword/>
    <keyword/>
    <keyword/>
    <abstract>
      <?line 94?>

<t>The Automated Certificate Management Environment (ACME) protocol <xref target="RFC8555"/> requires a PKCS#10 Certificate Signing Request (CSR) at the finalization stage. This document defines an optional extension that allows a client to prove possession of a private key directly, without constructing a CSR. The extension is motivated by use cases where the CSR-based flow is problematic: KEM-only keys that cannot generate self-signatures, resource-constrained devices that benefit from reduced encoding overhead, and issuance models where the certificate is constructed from order and profile data (e.g., via the ACME Profiles extension <xref target="I-D.ietf-acme-profiles"/>) rather than a client-generated CSR. This is particularly relevant when combined with compact encodings such as C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      <t>In the "newOrder" request, the client declares the public key via a <tt>popKey</tt> field and includes a <tt>pop</tt>-type identifier whose value is the empty string. The server creates a dedicated <tt>pop</tt> authorization containing a single <tt>pop-01</tt> challenge, processed using the same state machine as any other ACME authorization. When all authorizations (including the <tt>pop</tt> authorization) are valid, the ACME server issues a certificate using the validated public key and the authorized identifiers, eliminating the need for a CSR at finalization. The extension is additive and strictly optional: clients that do not use it, and servers that do not support it, continue to use the standard CSR-based flow defined in <xref target="RFC8555"/> without any changes.</t>
    </abstract>
  </front>
  <middle>
    <?line 100?>

<section anchor="intro">
      <name>Introduction</name>
      <section anchor="background-and-motivation">
        <name>Background and Motivation</name>
        <t>In the current ACME flow <xref target="RFC8555"/>, the applicant submits a PKCS#10 <xref target="RFC2986"/> CSR at the finalization stage. The CSR carries both the certificate public key and a self-signature over the CSR contents. For a signature-capable key, verification of that self-signature demonstrates possession of the corresponding private key. A KEM-only key cannot create such a signature.</t>
        <t><strong>The core principle underlying this extension is that the order is the authoritative source of the client-declared certificate parameters.</strong> All information that the client contributes to the certificate, identifiers and public key alike, is declared in the order. The remaining certificate fields (subject, validity period, key usage, etc.) are determined by CA policy and any applicable certificate profile; optional extensions such as <xref target="I-D.ietf-acme-profiles"/> enable the client to select a profile that governs these fields.</t>
        <t>This principle is embodied as an <strong>optional</strong> extension to ACME. The existing CSR-based flow remains fully supported and unchanged; clients and servers that do not need CSR-less issuance simply ignore the extension. The extension is optional on purpose: protocol evolution should be additive, not disruptive.</t>
        <t>The principle addresses several distinct challenges in current ACME deployments:</t>
        <ul spacing="normal">
          <li>
            <t><strong>KEM-only keys.</strong>  Key-encapsulation mechanisms (such as ML-KEM <xref target="FIPS-203"/>) cannot produce digital signatures, making CSR self-signatures impossible. The <tt>pop-01</tt> challenge provides a direct ACME proof for such keys without assuming signature capability.</t>
          </li>
          <li>
            <t><strong>Resource-constrained devices.</strong>  Constructing a valid PKCS#10 CSR requires additional ASN.1 structures and signing logic. Avoiding this work can reduce code complexity for constrained clients, while still carrying the certificate public key as a DER-encoded SubjectPublicKeyInfo.</t>
          </li>
          <li>
            <t><strong>Compact certificate encodings.</strong>  C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/> provide a compact CBOR encoding for constrained environments. The CSR-less flow complements C509 by removing the client-side ASN.1/DER encoding step from the certificate request process. This is particularly relevant for C509 certificates, whose certification requests require a signature that a KEM-only key cannot produce; the <tt>pop</tt> authorization supplies the necessary proof.</t>
          </li>
        </ul>
        <t>This extension is an additive complement to the CSR-based flow, not a replacement; deployments that rely on CSR for integration with HSMs, enterprise CA workflows, or legacy clients continue to operate unchanged. The <tt>pop-01</tt> challenge exists because the order-centric principle offers a cleaner architecture for emerging use cases and because post-quantum cryptography introduces key types incompatible with the CSR self-signature mechanism. This does not imply that CSR or PKCS#10 is flawed; both remain in widespread use.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document defines:</t>
        <ul spacing="normal">
          <li>
            <t>A new field <tt>popKey</tt> in the "newOrder" request, through which the client declares the public key to be certified.</t>
          </li>
          <li>
            <t>A new <strong><tt>pop</tt> identifier type</strong> in the ACME Identifier Types registry, whose value is the empty string, used to request a dedicated proof-of-possession authorization.</t>
          </li>
          <li>
            <t>A new <strong><tt>pop-01</tt> challenge type</strong> that is placed exclusively in the <tt>pop</tt> authorization. The challenge contains either a <tt>popNonce</tt> (for signature keys) or a <tt>challenge_ciphertext</tt> (for KEM keys).</t>
          </li>
          <li>
            <t>Two proof-of-possession modes within the <tt>pop-01</tt> challenge: one for signature keys and the other for KEM keys.</t>
          </li>
          <li>
            <t>A finalization stage that accepts an empty JSON object when <strong>all authorizations</strong> (including the <tt>pop</tt> authorization) are valid.</t>
          </li>
        </ul>
        <t>The <tt>pop</tt> authorization is the sole container for the proof-of-possession challenge. The <tt>pop</tt> identifier is a protocol-level marker, not a certificate identifier; it is not encoded in the issued certificate. Its empty value carries neither the public key nor a hash of that key. Its sole purpose is to trigger the creation of a dedicated <tt>pop</tt> authorization.</t>
        <t>This document does not define proof constructions for DH-based KEMs (DHKEM), including those derived from ECDH; such constructions require a separate extension.</t>
        <t>Identifier-control validation (for DNS names, email addresses, etc.) continues to be performed by existing ACME challenge types (dns-01, http-01, tls-alpn-01, email-reply-00, etc.); the <tt>pop-01</tt> challenge solely proves private key possession. <strong>This extension does not modify, overload, or replace any existing challenge type.</strong></t>
        <t>This document does not define integration details for specific certificate encodings such as C509, nor a complete C509 automation solution; C509 appears here as an illustrative use case of the CSR-less flow. Complementary mechanisms for device identity and authorization, such as <tt>device-attest-01</tt> <xref target="I-D.ietf-acme-device-attest"/> or other identifier validation methods, may be needed depending on the deployment scenario.</t>
        <t>This document defines the <tt>popKey</tt> field as a DER-encoded SubjectPublicKeyInfo <xref target="RFC5280"/>. The mapping of this public key representation to non-DER certificate encodings (such as C509 <xref target="I-D.ietf-cose-cbor-encoded-cert"/>) is defined by the respective certificate encoding specifications, not by this document.</t>
      </section>
      <section anchor="relationship-to-other-acme-extensions">
        <name>Relationship to Other ACME Extensions</name>
        <t>This extension is part of a broader evolution of the ACME protocol toward a model where <strong>the order is the authoritative source of client-declared certificate parameters.</strong> Several ongoing and completed ACME working group efforts share and complement this design principle:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Certificate Profiles (draft-ietf-acme-profiles).</strong> Profiles lets a client specify a certificate profile in <tt>newOrder</tt>, so the server constructs the certificate from a predefined profile rather than from the client CSR. The <tt>pop</tt> authorization composes with Profiles: an order may carry both a <tt>profile</tt> and a <tt>pop</tt> identifier, with the CA using the validated <tt>popKey</tt> as the certificate public key under the requested profile.</t>
          </li>
          <li>
            <t><strong>Device Attestation (draft-ietf-acme-device-attest).</strong> Device attestation establishes a device's identity and trusted state; the <tt>pop</tt> authorization proves possession of the certificate key. When CA policy requires both, they are separate authorizations, and both must be <tt>valid</tt> before the order becomes <tt>ready</tt>.</t>
          </li>
          <li>
            <t><strong>Remote Attestation (draft-ietf-acme-rats).</strong> The RATS work provides precedent for an auxiliary identifier type that does not appear in the issued certificate but requests a dedicated authorization. This document follows that pattern with stricter rules for <tt>pop</tt>: exactly one such identifier, an empty value, and mandatory pairing with <tt>popKey</tt>. Section 3.5 specifies the composition rules for <tt>pop</tt> with RATS identifiers.</t>
          </li>
          <li>
            <t><strong>Short-Term, Automatically Renewed (STAR) Certificates (<xref target="RFC8739"/>).</strong> STAR issues short-lived certificates that the CA renews automatically, reissuing from the bootstrap CSR without new CSRs for subsequent renewals. The <tt>pop</tt> authorization extends this by also removing the bootstrap CSR, enabling a fully CSR-less flow for both initial issuance and STAR renewals.</t>
          </li>
        </ul>
        <t>This extension is designed to be used orthogonally with all of the above. The <tt>pop</tt> authorization provides a unified proof-of-possession mechanism that can be combined with Profiles (for certificate content), Device Attestation or RATS (for device trust), and STAR (for lifecycle management), without requiring changes to any of those extensions.</t>
        <t>When combined with C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, the <tt>pop</tt> authorization and device attestation <xref target="I-D.ietf-acme-device-attest"/> form a complementary IoT certificate automation stack: device attestation establishes identity and trusted state, the <tt>pop</tt> authorization proves possession of the certificate private key, and C509 provides compact CBOR encoding for constrained delivery. This combination is illustrative, not exhaustive; deployments may use other identifier validation mechanisms as appropriate. Section 10.3 provides a complete example of this three-layer stack.</t>
        <t>The normative composition rules for combining the <tt>pop</tt> authorization with these extensions are specified in Section 3.5.</t>
      </section>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>The following diagram provides a high-level overview of the <tt>pop-01</tt> protocol interaction:</t>
        <figure anchor="fig-pk-1">
          <name>High-level overview of the pop-01 protocol interaction</name>
          <artwork><![CDATA[
CLIENT                                      SERVER
   |                                          |
   |--- (0) GET /directory ------------------>|
   |<-- meta.popSupported = true -------------|
   |                                          |
   |--- (1) POST /newOrder ------------------>|
   |    identifiers = [dns, pop] + popKey     |
   |                                          | accept and record popKey
   |                                          | (see Section 3.2 for full
   |                                          |  validation details)
   |                                          | create DNS authorization
   |                                          | create pop authorization
   |                                          |   (with pop-01)
   |<-- (2) order: pending -------------------|
   |    identifiers = [dns, pop]              |
   |    authorizations = [dns, pop]           |
   |                                          |
   |--- POST-as-GET /authz/dns -------------->|
   |<-- dns-01 challenge ---------------------|
   |--- POST-as-GET /authz/pop -------------->|
   |<-- pop-01 challenge ---------------------|
   |                                          |
   |--- (3a) complete dns-01 ---------------->|
   |<-- updated dns-01 challenge -------------|
   |--- (3b) POST pop-01 challenge URL ------>|
   |    decoded payload = {"proof":"..."}     |
   |                                          | transition to processing
   |                                          | perform cryptographic validation
   |<-- (3b) updated pop-01 challenge --------|
   |    (status: processing -> valid/invalid) |
   |                                          |
   |--- (3c) POST-as-GET order URL ---------->|
   |<-- order: ready -------------------------|
   |--- (4) finalize; empty object ---------->|
   |<-- (5) order: processing or valid -------|
   |--- (6) POST-as-GET order URL ----------->|
   |<-- order: valid; certificate URL --------|
   |--- (7) POST-as-GET certificate URL ----->|
   |<-- certificate chain --------------------|
]]></artwork>
        </figure>
        <t>After submitting a challenge response, clients MUST poll the challenge URL until it reaches a terminal state (<tt>valid</tt> or <tt>invalid</tt>), observing <tt>processing</tt> if the server validates asynchronously; the server MAY validate synchronously, in which case <tt>processing</tt> may be transient and not observable by the client. POST-as-GET requests are account-key-authenticated JWS POSTs with an empty payload, as specified in <xref target="RFC8555"/>, Section 6.3.</t>
      </section>
      <section anchor="design-philosophy-the-pop-authorization">
        <name>Design Philosophy: The <tt>pop</tt> Authorization</name>
        <t>As stated in Section 1.1, the core principle is that the order is the authoritative source of client-declared certificate parameters. The <tt>pop</tt> authorization implements this principle by introducing a dedicated authorization for proof-of-possession, independent of identifier validation.</t>
        <t>The design introduces <tt>pop</tt> as a new identifier type that requests a dedicated authorization, rather than attaching a challenge to existing certificate-identifier authorizations. The reasons, and the alternatives considered, are analyzed in Appendix A. The main points:</t>
        <ul spacing="normal">
          <li>
            <t><strong>PoP is an independent verification.</strong> Proving possession of a private key is logically independent of proving control over an identifier. The <tt>pop</tt> authorization treats PoP as a verification object in its own right.</t>
          </li>
          <li>
            <t><strong>Orders combine authorizations with AND-semantics.</strong> An ACME order already requires all listed authorizations to be valid; the <tt>pop</tt> authorization is one more item in that list, with no special-case logic.</t>
          </li>
          <li>
            <t><strong>The <tt>pop</tt> authorization is order-specific.</strong> It is not reused across orders (Section 4.3), maintaining the order-specific binding of the proof.</t>
          </li>
        </ul>
        <t>By completing the PoP proof before the order becomes <tt>ready</tt>, the design removes the CSR as a separate, late-binding parameter channel and makes the order the complete specification of the client-declared certificate parameters at <tt>ready</tt> time; the security analysis is in Section 7.1.</t>
      </section>
      <section anchor="updates-to-rfc8555">
        <name>Updates to <xref target="RFC8555"/></name>
        <t>This document updates <xref target="RFC8555"/> in the following respects:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Finalize Payload (Section 6.1):</strong> <xref target="RFC8555"/>, Section 7.4 requires the finalize request payload to contain a <tt>csr</tt> field. This document allows an empty JSON object (<tt>{}</tt>) as the finalize payload when the order contains an accepted <tt>popKey</tt> and <tt>pop</tt> identifier pair, enabling CSR-less certificate issuance.</t>
          </li>
          <li>
            <t><strong>Authorization Reuse (Section 4.3):</strong> <xref target="RFC8555"/>, Section 7.1.3 describes cases where authorizations may be reused across orders. This document defines a new <tt>pop</tt> authorization type that MUST NOT be reused across orders, maintaining the order-specific binding of the proof-of-possession.</t>
          </li>
          <li>
            <t><strong>Identifier Semantics (Sections 3.1, 4.1):</strong> <xref target="RFC8555"/>, Section 7.1.3 assumes that all identifiers in the order's <tt>identifiers</tt> array are certificate identifiers. This document introduces the <tt>pop</tt> identifier type, which is a protocol-level marker rather than a certificate identifier. It does not represent a resource to be bound to the issued certificate and is not encoded in the certificate.</t>
          </li>
        </ol>
        <t>These updates are designed as optional extensions to ACME. The existing CSR-based flow remains fully supported for clients that do not use this extension; the normative changes only apply to orders that explicitly request the CSR-less flow by including a <tt>popKey</tt> and <tt>pop</tt> identifier pair.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<strong>MUST</strong>", "<strong>MUST NOT</strong>", "<strong>REQUIRED</strong>", "<strong>SHALL</strong>", "<strong>SHALL NOT</strong>", "<strong>SHOULD</strong>", "<strong>SHOULD NOT</strong>", "<strong>RECOMMENDED</strong>", "<strong>NOT RECOMMENDED</strong>", "<strong>MAY</strong>", and "<strong>OPTIONAL</strong>" 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>
      <t>This document uses the following terminology:</t>
      <ul spacing="normal">
        <li>
          <t><strong>ACME Client:</strong> An ACME client as defined in <xref target="RFC8555"/>. In this document, "client" and "applicant" (the entity holding the private key to be certified) refer to the same entity.</t>
        </li>
        <li>
          <t><strong>ACME Server:</strong> An ACME server as defined in <xref target="RFC8555"/>, operated by a Certification Authority (CA) or its delegated service.</t>
        </li>
        <li>
          <t><strong><tt>popKey</tt>:</strong> A field in the "newOrder" request through which the client declares the public key requested for the certificate. Its value is the Base64URL encoding (without padding) of the DER-encoded SubjectPublicKeyInfo (SPKI) defined in <xref target="RFC5280"/>, Section 4.1.2.7. Section 3.2 defines server validation and error handling.</t>
        </li>
        <li>
          <t><strong><tt>popSupported</tt>:</strong> A field in the Directory metadata indicating that the server supports the <tt>pop</tt> identifier type, the <tt>pop-01</tt> challenge, and the <tt>popKey</tt> field.</t>
        </li>
        <li>
          <t><strong><tt>pop</tt> identifier:</strong> A protocol-level marker included in the <tt>identifiers</tt> array to request a dedicated proof-of-possession authorization. It is syntactically represented as an identifier type with an empty value, but it is not a certificate identifier. It does not represent a resource to be bound to the issued certificate and MUST NOT appear in the certificate's <tt>subject</tt> or <tt>subjectAltName</tt> extension. Its sole purpose is to trigger the creation of a dedicated <tt>pop</tt> authorization.</t>
        </li>
        <li>
          <t><strong><tt>pop</tt> authorization:</strong> An ACME Authorization object whose identifier type is <tt>pop</tt> and whose value is the empty string. This authorization corresponds to the <tt>pop</tt> identifier in the order's <tt>identifiers</tt> array, maintaining the one-to-one mapping required by <xref target="RFC8555"/>, Section 7.1.3. Its URL appears in the order's <tt>authorizations</tt> array at the same position as the <tt>pop</tt> identifier.</t>
        </li>
        <li>
          <t><strong><tt>pop-01</tt> challenge:</strong> A challenge type defined in this document. It proves possession of the private key corresponding to the public key declared in the order's <tt>popKey</tt> field. The challenge object contains either a <tt>popNonce</tt> (for signature keys) or a <tt>challenge_ciphertext</tt> (for KEM keys).</t>
        </li>
        <li>
          <t><strong>Certificate Identifier:</strong> An ACME identifier whose defining specification and the applicable certificate profile determine its representation or binding in the issued certificate. The auxiliary <tt>pop</tt> identifier is not a certificate identifier.</t>
        </li>
        <li>
          <t><strong>PoP Key:</strong> The public key whose possession is being proved, encoded in the <tt>key</tt> field of the <tt>pop-01</tt> challenge object. Its value is byte-identical to the <tt>popKey</tt> provided in the "newOrder" request.</t>
        </li>
        <li>
          <t><strong>Signature key:</strong> An asymmetric key capable of digital signature operations (e.g., ECDSA, Ed25519, RSASSA-PSS, ML-DSA, SLH-DSA).</t>
        </li>
        <li>
          <t><strong>KEM key:</strong> An asymmetric key capable of Key Encapsulation Mechanism operations (e.g., ML-KEM). This document defines the construction for the KEM algorithms specified here; a DHKEM or ECDH construction is outside its scope.</t>
        </li>
        <li>
          <t><strong>Proof of Possession (PoP):</strong> A cryptographic mechanism by which the requester proves possession of the private key corresponding to a declared public key. For signature keys, the PoP is a signature over challenge material; for KEM keys, it is a MAC derived from a shared secret obtained through KEM decapsulation.</t>
        </li>
        <li>
          <t><strong>raw_newOrder:</strong> The exact octet sequence obtained by Base64URL-decoding the JWS <tt>payload</tt> member of the "newOrder" request, before JSON parsing.</t>
        </li>
        <li>
          <t><strong>newOrder_hash:</strong> SHA-256(raw_newOrder).</t>
        </li>
        <li>
          <t><strong>Base64URL encoding:</strong> All Base64URL encodings in this document use the unpadded form (base64url-without-padding, per <xref target="RFC7515"/>, Section 2), consistent with ACME <xref target="RFC8555"/> and the JOSE ecosystem. Padding and whitespace are not part of this encoding.</t>
        </li>
      </ul>
    </section>
    <section anchor="declaring-the-public-key-the-popkey-field">
      <name>Declaring the Public Key: the <tt>popKey</tt> Field</name>
      <section anchor="the-popkey-field-in-neworder">
        <name>The <tt>popKey</tt> Field in <tt>newOrder</tt></name>
        <t>The <tt>popKey</tt>/<tt>pop-01</tt> flow enables certificate requests for key types that cannot produce CSR self-signatures, such as KEM keys. Clients using signature-capable keys and able to construct CSRs can instead use the standard flow described in <xref target="RFC8555"/>. Before creating an order, a client can use the <tt>popSupported</tt> field in the Directory metadata (Section 3.4) to discover whether the server supports this flow.</t>
        <t>A client that wishes to use the CSR-less flow declares the public key to be certified by including a <tt>popKey</tt> field and exactly one <tt>pop</tt> identifier in the decoded JWS payload of the "newOrder" request:</t>
        <artwork><![CDATA[
{
  "identifiers": [
    { "type": "dns", "value": "example.com" },
    { "type": "pop", "value": "" }
  ],
  "popKey": "<base64url(DER-encoded SPKI)>"
}
]]></artwork>
        <t>As required by <xref target="RFC8555"/>, the client sends these payload octets in an account-key-authenticated JWS with media type <tt>application/jose+json</tt>.</t>
        <t>Field description:</t>
        <ul spacing="normal">
          <li>
            <t><strong>popKey</strong> (OPTIONAL): The Base64URL encoding (without padding) of the DER-encoded SubjectPublicKeyInfo (SPKI) defined in <xref target="RFC5280"/>, Section 4.1.2.7 for the public key to be certified.</t>
          </li>
        </ul>
        <t>The <tt>popKey</tt> field and the <tt>pop</tt> identifier are paired. A client MUST include exactly one <tt>popKey</tt> member and exactly one <tt>pop</tt> identifier, or omit both. When present, the <tt>pop</tt> identifier's <tt>value</tt> MUST be the empty string, and the <tt>identifiers</tt> array MUST also contain at least one certificate identifier. A client MUST NOT use <tt>pop</tt> in a <tt>newAuthz</tt> request. This document does not define issuance for an order whose only identifier is <tt>pop</tt>.</t>
        <t>The <tt>popKey</tt> field is not itself an identifier; it declares the public key requested for the certificate. The <tt>pop</tt> identifier requests a separate proof-of-possession authorization but carries no public key, SPKI hash, or other lookup value. The public key is conveyed only by <tt>popKey</tt> and echoed by the challenge's <tt>key</tt> field.</t>
      </section>
      <section anchor="server-processing-of-popkey">
        <name>Server Processing of <tt>popKey</tt></name>
        <t>If neither <tt>popKey</tt> nor a <tt>pop</tt> identifier is present, the server processes the request according to <xref target="RFC8555"/> and other applicable extensions. A server implementing this specification MUST reject the request with <tt>urn:ietf:params:acme:error:malformed</tt> if it contains only one member of the pair, more than one <tt>popKey</tt> member, more than one <tt>pop</tt> identifier, a <tt>pop</tt> identifier whose value is not the empty string, or no certificate identifier. It MUST reject <tt>pop</tt> in a <tt>newAuthz</tt> request with the existing <tt>urn:ietf:params:acme:error:unsupportedIdentifier</tt> error, because this identifier type is supported only as part of an order and cannot be pre-authorized.</t>
        <t>Upon receiving a "newOrder" request with a valid <tt>popKey</tt> and a <tt>pop</tt> identifier in the <tt>identifiers</tt> array, a server that accepts the request:</t>
        <ol spacing="normal" type="1"><li>
            <t>MUST validate that the <tt>popKey</tt> value decodes to a well-formed SPKI encoded using the Distinguished Encoding Rules (DER) specified in <xref target="X.690"/>, and that it contains no non-Base64URL characters or whitespace.</t>
          </li>
          <li>
            <t>MUST verify that the AlgorithmIdentifier, algorithm-specific public key encoding and length, and key parameters are supported for proof-of-possession and satisfy CA policy. For an ML-KEM <tt>popKey</tt>, the server MUST apply the encapsulation-key type check and the modulus check specified in <xref target="FIPS-203"/>, Section 7.2 (ML-KEM.Encaps), to the raw <tt>subjectPublicKey</tt> octets. If either ML-KEM check fails, the server MUST NOT invoke ML-KEM.Encaps and MUST reject the "newOrder" request with <tt>urn:ietf:params:acme:error:badPopKey</tt> without committing any order, authorization, or challenge state.</t>
          </li>
          <li>
            <t>MUST verify that the public key in <tt>popKey</tt> differs from the account public key of the ACME account placing the order. If the keys are identical, the server MUST reject the request with <tt>urn:ietf:params:acme:error:badPopKey</tt>. Equality is determined by byte-for-byte comparison of canonical DER-encoded SubjectPublicKeyInfo. The server SHOULD first convert the account public key to its canonical DER SPKI form per <xref target="RFC5280"/> and <xref target="RFC5480"/>, then compare the resulting octets with the decoded <tt>popKey</tt> octets. Canonicalization ensures that different valid encodings of the same cryptographic key are treated as equal. The account key authenticates ACME protocol messages; using it also as the certificate key would conflate two distinct security domains.</t>
          </li>
          <li>
            <t>MUST reject the "newOrder" request with <tt>urn:ietf:params:acme:error:badPopKey</tt> if any syntax, algorithm, parameter, or account-key validation fails. The problem detail SHOULD identify the incompatibility without exposing sensitive server policy.</t>
          </li>
          <li>
            <t>MAY reject an otherwise valid request with <tt>urn:ietf:params:acme:error:popKeyRejectedByPolicy</tt> when the account or request is not authorized for CSR-less issuance.</t>
          </li>
          <li>
            <t>MUST atomically store the accepted <tt>popKey</tt> value and <tt>newOrder_hash</tt> as order data. When the order contains an auto-renewal object, the stored popKey SHALL be retained for the duration of the STAR order's active lifetime and SHALL be used for all automatic renewals under that order.</t>
          </li>
          <li>
            <t>MUST retain the client-supplied <tt>pop</tt> identifier in the order's immutable <tt>identifiers</tt> array.</t>
          </li>
          <li>
            <t>MUST create exactly one <tt>pop</tt> authorization for the <tt>pop</tt> identifier. The server MUST maintain the one-to-one correspondence between the order's <tt>identifiers</tt> array and its <tt>authorizations</tt> array, as defined in <xref target="RFC8555"/>, Section 7.1.3. The <tt>pop</tt> authorization corresponds to the <tt>pop</tt> identifier in the <tt>identifiers</tt> array, and its URL MUST appear in the <tt>authorizations</tt> array at the same position as the <tt>pop</tt> identifier in the <tt>identifiers</tt> array.</t>
          </li>
          <li>
            <t>MUST place that authorization's URL in the initial order object's immutable <tt>authorizations</tt> array.</t>
          </li>
          <li>
            <t>MUST create exactly one <tt>pop-01</tt> challenge in that <tt>pop</tt> authorization.</t>
          </li>
          <li>
            <t>MUST set the challenge's <tt>key</tt> field to exactly equal the accepted <tt>popKey</tt> string.</t>
          </li>
          <li>
            <t>MUST NOT attach a <tt>pop-01</tt> challenge to any identifier authorization (dns, email, etc.).</t>
          </li>
        </ol>
        <t>The server MAY enforce a maximum length for <tt>popKey</tt> values consistent with its supported algorithm set. Requests exceeding this limit MUST be rejected with <tt>badPopKey</tt>.</t>
        <t>The server MUST verify that the JSON-parsed order is semantically consistent with the <tt>raw_newOrder</tt> octets. If the decoded payload contains duplicate JSON keys, or if JSON parsing would produce a result that is not uniquely determined by the raw octets, the server MUST reject the request with <tt>malformed</tt>. The <tt>raw_newOrder</tt> octets are always authoritative for proof binding purposes.</t>
        <t>For an ML-KEM <tt>popKey</tt>, the atomic operation in steps 6-11 is committed only after the Section 5.2 challenge-creation procedure, including ML-KEM.Encaps, completes successfully. A server-side execution error after successful input validation produces <tt>urn:ietf:params:acme:error:serverInternal</tt> and leaves no partially created order, authorization, challenge, or proof state.</t>
      </section>
      <section anchor="order-object-with-popkey">
        <name>Order Object with <tt>popKey</tt></name>
        <t>After atomically accepting the request and creating the <tt>pop</tt> authorization, the server MUST include the accepted <tt>popKey</tt> value and retain the requested <tt>pop</tt> identifier in the initial order object:</t>
        <artwork><![CDATA[
{
  "status": "pending",
  "expires": "2026-09-30T00:00:00Z",
  "identifiers": [
    { "type": "dns", "value": "example.com" },
    { "type": "pop", "value": "" }
  ],
  "authorizations": [
    "https://acme.example.com/acme/authz/dns-abc123",
    "https://acme.example.com/acme/authz/pop-def456"
  ],
  "popKey": "<base64url(DER-encoded SPKI)>",
  "finalize": "https://acme.example.com/acme/order/xyz/finalize"
}
]]></artwork>
        <t>The <tt>authorizations</tt> array maintains the same order as the <tt>identifiers</tt> array. The URL at the position corresponding to the <tt>pop</tt> identifier resolves to the <tt>pop</tt> authorization, which contains the sole <tt>pop-01</tt> challenge. This ordering is consistent with <xref target="RFC8555"/>, Section 7.1.3.</t>
        <t>The echoed <tt>popKey</tt> JSON string MUST be exactly equal to the value in the "newOrder" request. The order's <tt>identifiers</tt> array MUST contain the requested <tt>{ "type": "pop", "value": "" }</tt> object, and the <tt>authorizations</tt> array MUST contain exactly one authorization whose identifier is that object and whose sole challenge is <tt>pop-01</tt>. These conditions confirm that the server accepted the paired request; they do not guarantee that validation or issuance will succeed.</t>
        <t>If a server returns an order that omits or changes <tt>popKey</tt> or <tt>pop</tt>, or that does not provide exactly one corresponding authorization, the client MUST treat the CSR-less request as unaccepted and abandon that order; see Section 9.2.1 for the complete fallback behavior. The client MUST NOT attempt CSR finalization on the inconsistent order.</t>
      </section>
      <section anchor="server-capability-advertisement">
        <name>Server Capability Advertisement</name>
        <t>An ACME server can advertise support for this extension in its Directory metadata:</t>
        <artwork><![CDATA[
{
  "newNonce": "https://acme.example.com/acme/new-nonce",
  "newAccount": "https://acme.example.com/acme/new-acct",
  "newOrder": "https://acme.example.com/acme/new-order",
  "meta": {
    "popSupported": true
  }
}
]]></artwork>
        <t>The <tt>popSupported</tt> field, located inside the "meta" object, is a boolean. A value of true indicates support for the <tt>pop</tt> identifier type, the <tt>pop-01</tt> challenge type, the <tt>popKey</tt> field, and the CSR-less finalization flow. Absence or a false value indicates that the client cannot rely on CSR-less operation at that server. A successful order response confirms acceptance by retaining the requested <tt>pop</tt> identifier, echoing the accepted <tt>popKey</tt>, and including the corresponding authorization.</t>
        <section anchor="discovery-for-star-composition">
          <name>Discovery for STAR Composition</name>
          <t>When a client wishes to request a STAR order <xref target="RFC8739"/> using the CSR-less flow (i.e., including both an <tt>auto-renewal</tt> object and a <tt>popKey</tt>/<tt>pop</tt> identifier pair in the <tt>newOrder</tt> request), the server's support for this specific combination is not advertised as a separate directory field in this specification.</t>
          <t>Clients SHOULD proceed as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>Check that the server advertises <tt>popSupported: true</tt> (this document) and <tt>auto-renewal</tt> support (the <tt>meta.auto-renewal</tt> field defined in <xref target="RFC8739"/>, Section 3.2) in its directory metadata. Both are necessary conditions.</t>
            </li>
            <li>
              <t>If both are advertised, the client MAY attempt to create a STAR order using the CSR-less flow. If the server does not support the combination, it will reject the <tt>newOrder</tt> request with <tt>unsupportedIdentifier</tt> (for the <tt>pop</tt> identifier) or <tt>malformed</tt> (for inconsistent fields). In this context, <tt>unsupportedIdentifier</tt> means that the server does not support the <tt>pop</tt> identifier in combination with the <tt>auto-renewal</tt> object, even though it supports the <tt>pop</tt> identifier type by itself; it does not indicate that the <tt>pop</tt> identifier type is unsupported altogether.</t>
            </li>
            <li>
              <t>Upon rejection, the client SHOULD fall back to the standard CSR-based STAR flow (without the <tt>pop</tt> identifier) or create a non-STAR CSR-less order, as appropriate for the deployment scenario.</t>
            </li>
          </ol>
          <t>Servers that do not support the combination MUST reject STAR orders containing a <tt>popKey</tt> and <tt>pop</tt> identifier with <tt>unsupportedIdentifier</tt> (with the extended meaning above) or <tt>malformed</tt> (for inconsistent fields), and MUST NOT accept such orders as valid. This ensures predictable behavior even without a dedicated discovery mechanism.</t>
        </section>
      </section>
      <section anchor="composition-with-other-acme-extensions">
        <name>Composition with Other ACME Extensions</name>
        <t>The following rules apply when a CSR-less order also carries another ACME extension or certificate encoding. Unless stated otherwise, the <tt>pop</tt> authorization composes with the extension orthogonally.</t>
        <ul spacing="normal">
          <li>
            <t><strong>With Certificate Profiles:</strong> The <tt>popKey</tt> field and the <tt>profile</tt> field MAY be used together in the same <tt>newOrder</tt> request. The CA MUST use the validated <tt>popKey</tt> as the certificate public key and apply the requested profile to construct the remainder of the certificate.</t>
          </li>
          <li>
            <t><strong>With STAR Certificates:</strong> The <tt>popKey</tt> field and the <tt>auto-renewal</tt> object <xref target="RFC8739"/>, Section 3.1.1 MAY be used together in the same <tt>newOrder</tt> request. When present together:
            </t>
            <ul spacing="normal">
              <li>
                <t>Whether a server supports the STAR combination is established via the capability discovery procedure in Section 3.4.1. When combined, the <tt>popKey</tt> recorded in the order at bootstrap time serves as the persistent public key for all automatic renewals within the STAR order's lifetime, in the same way that the CSR serves this role in <xref target="RFC8739"/>, Section 2.2; the retention and renewal-use obligations are specified in Section 3.2, step 6. The client MUST NOT change the <tt>popKey</tt> during the order's auto-renewal lifetime; a change of public key requires a new order with a fresh <tt>pop</tt> authorization. Automatic renewal therefore does not re-run the <tt>pop-01</tt> challenge; the initial PoP validation is reused for the order's lifetime, consistent with <xref target="RFC8739"/>'s reuse of the initial CSR.</t>
              </li>
              <li>
                <t>The <tt>pop</tt> authorization, once <tt>valid</tt>, constitutes the long-term authorization for the auto-renewal sequence. Its validity is bound to the STAR order lifecycle: it remains valid as long as the STAR order is active (status <tt>valid</tt>) and terminates when the order enters <tt>canceled</tt> or <tt>expired</tt>. Cross-order reuse of a <tt>pop</tt> authorization remains prohibited (Section 4.3).</t>
              </li>
              <li>
                <t>The CA MUST NOT require a new <tt>pop-01</tt> challenge or any other proof-of-possession for individual auto-renewals within the same STAR order.</t>
              </li>
              <li>
                <t>The client MAY terminate the auto-renewal sequence at any time via the cancellation interface defined in <xref target="RFC8739"/>, Section 3.1.2. Upon successful cancellation, the server MUST NOT issue any additional certificates for this Order.</t>
              </li>
              <li>
                <t>All other <xref target="RFC8739"/> constraints on STAR orders, including the prohibition on <tt>notBefore</tt> and <tt>notAfter</tt> in the order (<xref target="RFC8739"/>, Section 3.1.1), apply unchanged when combined with <tt>pop</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>With Device Attestation:</strong> The <tt>pop</tt> authorization and the device-attestation authorization are independent and may be completed in any order. Both MUST reach the <tt>valid</tt> state before the order becomes <tt>ready</tt>.</t>
          </li>
          <li>
            <t><strong>With Remote Attestation (RATS):</strong> The <tt>pop</tt> authorization and a <tt>remote-attestation</tt> identifier <xref target="I-D.ietf-acme-rats"/> compose orthogonally: both are auxiliary markers that may appear in the same order, are validated independently, and require no special interaction beyond the general rules in Section 3.3.</t>
          </li>
          <li>
            <t><strong>With C509 Certificates:</strong> The <tt>pop</tt> authorization is compatible with C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The client declares the certificate public key in <tt>popKey</tt> as a DER-encoded SPKI, and the server verifies that the CBOR-encoded public key in the issued C509 certificate is cryptographically equivalent to the validated <tt>popKey</tt>, as specified in Section 6.2. When combined with STAR, the CA computes the C509 certificate validity from the STAR order's <tt>auto-renewal</tt> parameters per <xref target="RFC8739"/>, Section 3.5; this applies to C509's compact time encoding without changing its semantics.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="the-pop-01-challenge">
      <name>The <tt>pop-01</tt> Challenge</name>
      <section anchor="the-pop-authorization">
        <name>The <tt>pop</tt> Authorization</name>
        <t>An ACME server that accepts a paired <tt>popKey</tt> and <tt>pop</tt> request creates exactly one authorization for that <tt>pop</tt> identifier with the following shape:</t>
        <artwork><![CDATA[
{
  "identifier": {
    "type": "pop",
    "value": ""
  },
  "status": "pending",
  "challenges": [
    {
      "type": "pop-01",
      "url": "https://acme.example.com/acme/chall/abc123",
      "status": "pending",
      "key": "<base64url(DER-encoded SPKI)>",
      "popNonce": "<base64url(32 random bytes)>"
    }
  ]
}
]]></artwork>
        <t>The <tt>pop</tt> authorization MUST contain exactly one challenge, and that challenge MUST have type <tt>pop-01</tt>. Certificate-identifier authorizations do not receive a <tt>pop-01</tt> challenge from this specification. The empty <tt>pop</tt> identifier value carries neither the key nor an order digest. The <tt>pop</tt> identifier itself MUST NOT be encoded anywhere in the issued certificate, including its <tt>subject</tt> field or <tt>subjectAltName</tt> extension.</t>
        <t>In <xref target="RFC8555"/>, an authorization ordinarily represents an account's authority over an identifier. This specification deliberately gives the <tt>pop</tt> authorization a narrower, order-level role: its empty identifier has no standalone control semantics, and the authorization records only whether possession of the key declared by that order has been proved.</t>
      </section>
      <section anchor="challenge-object-fields">
        <name>Challenge Object Fields</name>
        <t>The set of fields in the <tt>pop-01</tt> challenge object depends on whether the accepted <tt>popKey</tt> is a signature key or a KEM key, as determined by the server from the <tt>key</tt> field (which mirrors the <tt>popKey</tt>).</t>
        <t>For signature keys:</t>
        <artwork><![CDATA[
{
  "type": "pop-01",
  "url": "https://acme.example.com/acme/chall/abc123",
  "status": "pending",
  "key": "<base64url(DER-encoded SPKI)>",
  "popNonce": "<base64url(32 random bytes)>"
}
]]></artwork>
        <t>Field descriptions:</t>
        <ul spacing="normal">
          <li>
            <t><strong>type</strong>: Fixed value "pop-01".</t>
          </li>
          <li>
            <t><strong>url</strong>, <strong>status</strong>: Standard semantics as defined in <xref target="RFC8555"/>, Section 7.1.5. The <tt>status</tt> field follows the full ACME challenge state machine, including <tt>pending</tt>, <tt>processing</tt>, <tt>valid</tt>, and <tt>invalid</tt>. Clients MUST be prepared to observe the <tt>processing</tt> state after submitting a challenge response and MUST poll the challenge URL until a terminal state (<tt>valid</tt> or <tt>invalid</tt>) is reached.</t>
          </li>
          <li>
            <t><strong>key</strong> (REQUIRED): The Base64URL encoding of the DER-encoded SPKI of the public key to be certified. This MUST be exactly equal to the <tt>popKey</tt> string accepted from the "newOrder" request.</t>
          </li>
          <li>
            <t><strong>popNonce</strong> (REQUIRED for signature keys): A random value generated by the ACME server for this challenge, Base64URL-encoded. The value MUST be exactly 32 bytes (256 bits) of random data <xref target="RFC4086"/> before Base64URL encoding, providing a fixed-length field for unambiguous concatenation.</t>
          </li>
        </ul>
        <t>For KEM keys:</t>
        <artwork><![CDATA[
{
  "type": "pop-01",
  "url": "https://acme.example.com/acme/chall/def456",
  "status": "pending",
  "key": "<base64url(DER-encoded SPKI)>",
  "challenge_ciphertext": "<base64url(ML-KEM ciphertext)>"
}
]]></artwork>
        <t>Field descriptions:</t>
        <ul spacing="normal">
          <li>
            <t><strong>type</strong>, <strong>url</strong>, <strong>status</strong>, <strong>key</strong>: Same as above.</t>
          </li>
          <li>
            <t><strong>challenge_ciphertext</strong> (REQUIRED for KEM keys): The Base64URL encoding of the ciphertext produced by the server's KEM Encapsulate operation using the public key from the <tt>key</tt> field.</t>
          </li>
        </ul>
        <t>The <tt>popNonce</tt> and <tt>challenge_ciphertext</tt> fields are mutually exclusive: each <tt>pop-01</tt> challenge object MUST contain exactly one of them.</t>
      </section>
      <section anchor="authorization-reuse-and-lifecycle">
        <name>Authorization Reuse and Lifecycle</name>
        <t>The authorization-reuse cases described in <xref target="RFC8555"/>, Section 7.1.3 do not apply to the <tt>pop</tt> authorization bound to a specific order and <tt>popKey</tt>. A <tt>pop</tt> authorization:</t>
        <ul spacing="normal">
          <li>
            <t>MUST NOT be reused from another order.</t>
          </li>
          <li>
            <t>MUST NOT be obtained via pre-authorization <xref target="RFC8555"/>, Section 7.4.1.</t>
          </li>
          <li>
            <t>MUST NOT be satisfied by a previously validated authorization.</t>
          </li>
          <li>
            <t>Requires a fresh authorization and a fresh <tt>pop-01</tt> challenge for every order containing an accepted <tt>popKey</tt> and <tt>pop</tt> pair.</t>
          </li>
        </ul>
        <t>This non-reuse rule is a deliberate design choice rather than an implementation limitation. Each order requires fresh proof that the private key is held for that specific certificate request; reusing a <tt>pop</tt> authorization across orders would weaken that order-specific binding.</t>
        <t>A <tt>pop</tt> authorization is bound exclusively to its originating order. The expires value of the pop authorization MUST NOT be later than the <tt>expires</tt> value of the associated order.</t>
        <t>When the associated order enters a terminal state due to failure (invalid or expired), the server MUST transition the <tt>pop</tt> authorization and its <tt>pop-01</tt> challenge to a corresponding terminal state, if they are not already terminal. If the order reaches <tt>valid</tt>, the <tt>pop</tt> authorization is already <tt>valid</tt> and no further transition is required.</t>
        <t>Clients MUST NOT send a deactivation request for a pop authorization. A server receiving such a request MUST reject it with <tt>urn:ietf:params:acme:error:malformed</tt>; deactivation of the parent order implicitly deactivates the <tt>pop</tt> authorization.</t>
        <t>The <tt>pop</tt> authorization follows the standard ACME authorization state machine in <xref target="RFC8555"/>, including the applicable <tt>invalid</tt>, <tt>deactivated</tt>, <tt>expired</tt>, and <tt>revoked</tt> terminal states. It is subject to the same <tt>expires</tt> and <tt>Retry-After</tt> semantics as other ACME authorizations. Section 5.4 defines the additional cleanup required when this order-bound authorization, its challenge, or its associated order terminates.</t>
      </section>
    </section>
    <section anchor="proof-of-possession-execution">
      <name>Proof-of-Possession Execution</name>
      <section anchor="pop-for-signature-keys">
        <name>PoP for Signature Keys</name>
        <t>In signature key mode, the <tt>pop-01</tt> challenge object contains the <tt>popNonce</tt> field. The client constructs the proof as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Let <tt>raw_newOrder</tt> be the exact octets obtained by Base64URL-decoding the JWS <tt>payload</tt> member of the "newOrder" request, before JSON parsing.</t>
          </li>
          <li>
            <t>Compute <tt>newOrder_hash = SHA-256(raw_newOrder)</tt>.</t>
          </li>
          <li>
            <t>Let <tt>popNonce_bytes</tt> be the raw bytes obtained by Base64URL-decoding the <tt>popNonce</tt> field.</t>
          </li>
          <li>
            <t>Construct the message to be signed:  </t>
            <t><tt>text
to_sign = "ACME-pop-01-sig v1:" || popNonce_bytes || newOrder_hash
</tt>  </t>
            <t>
where <tt>||</tt> denotes raw byte concatenation and "ACME-pop-01-sig v1:" is a fixed 19-byte ASCII domain separation prefix. Since <tt>newOrder_hash</tt> occupies the final 32 bytes and has a fixed length, the boundary between <tt>popNonce_bytes</tt> and <tt>newOrder_hash</tt> is always unambiguous.</t>
          </li>
          <li>
            <t>Compute the signature:  </t>
            <t><tt>text
proof = base64url( Sign(privateKey, to_sign) )
</tt>  </t>
            <t><tt>Sign(key, message)</tt> denotes a complete signing operation over <tt>message</tt> (with hashing internal to the algorithm).</t>
          </li>
        </ol>
        <t>Each challenge gets a fresh <tt>popNonce</tt> (Section 4.2), so a captured proof cannot be replayed against another challenge of the same order.</t>
        <t>The signature algorithm is determined by the key type declared in the <tt>key</tt> field's SPKI. The following table defines the normative baseline proof mappings:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Key type</th>
              <th align="left">SPKI algorithm identification</th>
              <th align="left">Signature algorithm</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">EC P-256</td>
              <td align="left">id-ecPublicKey, namedCurve = secp256r1</td>
              <td align="left">ECDSA with SHA-256</td>
            </tr>
            <tr>
              <td align="left">EC P-384</td>
              <td align="left">id-ecPublicKey, namedCurve = secp384r1</td>
              <td align="left">ECDSA with SHA-384</td>
            </tr>
            <tr>
              <td align="left">EC P-521</td>
              <td align="left">id-ecPublicKey, namedCurve = secp521r1</td>
              <td align="left">ECDSA with SHA-512</td>
            </tr>
            <tr>
              <td align="left">Ed25519</td>
              <td align="left">1.3.101.112</td>
              <td align="left">Ed25519 <xref target="RFC8032"/></td>
            </tr>
            <tr>
              <td align="left">RSA</td>
              <td align="left">rsaEncryption (1.2.840.113549.1.1.1)</td>
              <td align="left">RSASSA-PSS with SHA-256</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-44</td>
              <td align="left">2.16.840.1.101.3.4.3.17</td>
              <td align="left">ML-DSA-44 <xref target="FIPS-204"/></td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65</td>
              <td align="left">2.16.840.1.101.3.4.3.18</td>
              <td align="left">ML-DSA-65 <xref target="FIPS-204"/></td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87</td>
              <td align="left">2.16.840.1.101.3.4.3.19</td>
              <td align="left">ML-DSA-87 <xref target="FIPS-204"/></td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-128s</td>
              <td align="left">2.16.840.1.101.3.4.3.20</td>
              <td align="left">SLH-DSA-SHA2-128s <xref target="FIPS-205"/></td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-128f</td>
              <td align="left">2.16.840.1.101.3.4.3.21</td>
              <td align="left">SLH-DSA-SHA2-128f <xref target="FIPS-205"/></td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-192s</td>
              <td align="left">2.16.840.1.101.3.4.3.22</td>
              <td align="left">SLH-DSA-SHA2-192s <xref target="FIPS-205"/></td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-192f</td>
              <td align="left">2.16.840.1.101.3.4.3.23</td>
              <td align="left">SLH-DSA-SHA2-192f <xref target="FIPS-205"/></td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-256s</td>
              <td align="left">2.16.840.1.101.3.4.3.24</td>
              <td align="left">SLH-DSA-SHA2-256s <xref target="FIPS-205"/></td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-256f</td>
              <td align="left">2.16.840.1.101.3.4.3.25</td>
              <td align="left">SLH-DSA-SHA2-256f <xref target="FIPS-205"/></td>
            </tr>
          </tbody>
        </table>
        <t>The Ed25519 SPKI OID and encoding are defined by <xref target="RFC8410"/>, the ML-DSA OIDs are defined by <xref target="RFC9881"/>, and the SLH-DSA OIDs are defined by <xref target="RFC9909"/>. A client using a listed key type MUST use the corresponding mapping, and a server that accepts that key type MUST verify the proof accordingly.</t>
        <t>A server is not required to support every key type in this table. However, if a server supports a public key algorithm not listed in this table, the mapping for that algorithm (including the exact signature algorithm and byte encoding) MUST be defined in a separate extension specification. Otherwise, the server MUST reject such keys with <tt>urn:ietf:params:acme:error:badPopKey</tt>. This ensures interoperability and avoids ambiguity in proof verification.</t>
        <t><strong>RSA SPKI AlgorithmIdentifier.</strong></t>
        <t>This document supports RSA keys identified by the <tt>rsaEncryption</tt> AlgorithmIdentifier (1.2.840.113549.1.1.1) with NULL parameters as specified in <xref target="RFC3279"/>, Section 2.3.1.</t>
        <t>For RSA keys with <tt>rsaEncryption</tt> AlgorithmIdentifier, the proof of possession MUST use RSASSA-PSS with SHA-256 (PS256) as defined in <xref target="RFC7518"/>, Section 3.5, with MGF1 using SHA-256 and a salt length equal to the hash output length (32 bytes).</t>
        <t>The <tt>rsaEncryption</tt> OID is retained in the certificate SPKI for broad ecosystem compatibility; the PSS algorithm for the PoP proof is enforced by this protocol specification, independent of the certificate's AlgorithmIdentifier.</t>
        <t>RSA keys identified by the <tt>rsassaPss</tt> AlgorithmIdentifier (1.2.840.113549.1.1.10) in the SPKI MUST be rejected with <tt>urn:ietf:params:acme:error:badPopKey</tt>. The <tt>rsassaPss</tt> OID carries additional parameters (hashAlgorithm, maskGenAlgorithm, saltLength) that would introduce unnecessary complexity to the PoP verification and are not required for the ACME proof-of-possession context. Clients SHOULD use the <tt>rsaEncryption</tt> AlgorithmIdentifier for RSA keys used in ACME <tt>popKey</tt> fields.</t>
        <t>Byte encoding of signature values:</t>
        <ul spacing="normal">
          <li>
            <t>ECDSA: IEEE P1363 <xref target="P1363"/> compact format (<tt>r || s</tt>).</t>
          </li>
          <li>
            <t>RSASSA-PSS: PS256 algorithm as defined in <xref target="RFC7518"/>, Section 3.5.</t>
          </li>
          <li>
            <t>Ed25519: 64-octet <tt>R || S</tt> encoding <xref target="RFC8032"/>, Section 5.1.6.</t>
          </li>
          <li>
            <t>ML-DSA: byte encoding defined in <xref target="FIPS-204"/>.</t>
          </li>
          <li>
            <t>SLH-DSA: signature data format specified in <xref target="FIPS-205"/> Sections 9.2 and 9.3.</t>
          </li>
        </ul>
      </section>
      <section anchor="pop-for-kem-keys">
        <name>PoP for KEM Keys</name>
        <t>In KEM key mode, the <tt>pop-01</tt> challenge object contains the <tt>challenge_ciphertext</tt> field. The KEM algorithm is uniquely determined by the AlgorithmIdentifier in the <tt>key</tt> field's SPKI. The AlgorithmIdentifier OID includes the parameter set identifier, and its parameters field MUST be absent as specified in <xref target="RFC9935"/>. The <tt>subjectPublicKey</tt> BIT STRING MUST contain exactly the raw ML-KEM encapsulation-key octets, with no additional ASN.1 wrapping, and its length MUST match the selected parameter set in the table below.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Key type</th>
              <th align="right">Public key length (bytes)</th>
              <th align="right">Ciphertext length (bytes)</th>
              <th align="left">SPKI AlgorithmIdentifier OID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ML-KEM-512</td>
              <td align="right">800</td>
              <td align="right">768</td>
              <td align="left">2.16.840.1.101.3.4.4.1</td>
            </tr>
            <tr>
              <td align="left">ML-KEM-768</td>
              <td align="right">1184</td>
              <td align="right">1088</td>
              <td align="left">2.16.840.1.101.3.4.4.2</td>
            </tr>
            <tr>
              <td align="left">ML-KEM-1024</td>
              <td align="right">1568</td>
              <td align="right">1568</td>
              <td align="left">2.16.840.1.101.3.4.4.3</td>
            </tr>
          </tbody>
        </table>
        <t><strong>Composite KEM keys.</strong> The KEM construction in this section is algorithm-agnostic: it requires only that client and server can perform the encapsulation and decapsulation operations and agree on the resulting shared secret. The LAMPS working group is standardizing composite ML-KEM <xref target="I-D.ietf-lamps-pq-composite-kem"/>, which combines ML-KEM with a traditional algorithm (RSA-OAEP, ECDH, X25519, or X448) by running the component encapsulations and combining their shared secrets. Because the proof derivation in this section does not depend on the internal structure of the KEM, composite keys are supported at the AlgorithmIdentifier level alone: a composite <tt>popKey</tt> uses the composite key encoding and composite AlgorithmIdentifier defined in <xref target="I-D.ietf-lamps-pq-composite-kem"/>, and the server-side and client-side flows below apply unchanged, with the length checks in Section 3.2 and step 2 below evaluated against the composite public-key and ciphertext lengths defined by that document.</t>
        <t>Server-side (challenge creation):</t>
        <ol spacing="normal" type="1"><li>
            <t>After the ML-KEM encapsulation-key checks required by Section 3.2 have succeeded, execute ML-KEM.Encaps using the public key from the <tt>key</tt> field, obtaining a shared secret <tt>shared_secret</tt> and a ciphertext <tt>ct</tt>.</t>
          </li>
          <li>
            <t>Verify that the length of <tt>ct</tt> matches the ciphertext length for the declared KEM algorithm.</t>
          </li>
          <li>
            <t>Derive a MAC key using HKDF <xref target="RFC5869"/>:  </t>
            <t><tt>text
prk = HKDF-Extract[SHA-256](salt, IKM = shared_secret)
mac_key = HKDF-Expand[SHA-256](prk,
          info = ASCII("ACME-pop-01-KEM v1"), L = 32)
</tt>  </t>
            <t>
The salt parameter to HKDF-Extract is omitted. Implementations MUST use the default salt defined in <xref target="RFC5869"/>, Section 2.2: a string of HashLen zero octets.</t>
          </li>
          <li>
            <t>Each invocation of ML-KEM.Encaps generates a fresh ephemeral secret and ciphertext, which is encoded in the <tt>challenge_ciphertext</tt> field. Servers MUST NOT reuse a ciphertext across challenges. A fresh encapsulation makes the derived <tt>mac_key</tt> unique to this challenge, limiting the impact of any single <tt>mac_key</tt> compromise; the <tt>newOrder_hash</tt> binding (Section 5.5) independently prevents replay of proofs across orders.</t>
          </li>
          <li>
            <t>Fill the <tt>challenge_ciphertext</tt> field with the Base64URL encoding of <tt>ct</tt>, and stage <tt>mac_key</tt> as challenge-specific state linked to the order.</t>
          </li>
          <li>
            <t>After construction of the challenge object is complete, atomically commit the order, authorization, challenge, and proof state. On success, destroy <tt>shared_secret</tt>, <tt>prk</tt>, and all intermediate secret state other than the retained <tt>mac_key</tt>.</t>
          </li>
        </ol>
        <t>Client-side (proof generation):</t>
        <ol spacing="normal" type="1"><li>
            <t>Let <tt>ct</tt> be the raw bytes obtained by Base64URL-decoding the <tt>challenge_ciphertext</tt> field.</t>
          </li>
          <li>
            <t>Perform KEM Decapsulate(ct) using the private key corresponding to the public key in the <tt>key</tt> field, obtaining <tt>shared_secret</tt>.</t>
          </li>
          <li>
            <t>Derive <tt>mac_key</tt> using the same parameters as the server:  </t>
            <t><tt>text
prk = HKDF-Extract[SHA-256](salt, IKM = shared_secret)
mac_key = HKDF-Expand[SHA-256](prk,
          info = ASCII("ACME-pop-01-KEM v1"), L = 32)
</tt>  </t>
            <t>
The salt parameter to HKDF-Extract is omitted. Implementations MUST use the default salt defined in <xref target="RFC5869"/>, Section 2.2: a string of HashLen zero octets.</t>
          </li>
          <li>
            <t>Compute <tt>newOrder_hash = SHA-256(raw_newOrder)</tt>.</t>
          </li>
          <li>
            <t>Compute the proof:  </t>
            <t><tt>text
proof = base64url( HMAC-SHA-256(mac_key, newOrder_hash) )
</tt></t>
          </li>
        </ol>
        <t>The client SHOULD verify that the length of the decoded <tt>challenge_ciphertext</tt> matches the expected length for the KEM algorithm identified in the <tt>key</tt> field, to reject malformed ciphertexts early and avoid unexpected behavior in decapsulation.</t>
        <t>The client MUST NOT use <tt>shared_secret</tt> directly as the HMAC key; <tt>mac_key</tt> MUST be derived via HKDF. After submitting the proof, the client SHOULD immediately destroy <tt>shared_secret</tt>, <tt>prk</tt>, and <tt>mac_key</tt> from memory.</t>
      </section>
      <section anchor="client-response-submission">
        <name>Client Response Submission</name>
        <t>After constructing the proof, the client submits it to the challenge URL in an account-key-authenticated ACME JWS. The decoded JWS payload is a JSON object containing the <tt>proof</tt> field:</t>
        <artwork><![CDATA[
POST /acme/chall/abc123 HTTP/1.1
Host: acme.example.com
Content-Type: application/jose+json

{
  "protected": "<base64url(protected-header)>",
  "payload": "<base64url({\"proof\":\"...\"})>",
  "signature": "<base64url(account-key-signature)>"
}
]]></artwork>
        <t>The <tt>proof</tt> field carries the signature (signature key mode) or HMAC (KEM key mode). A server MUST reject an invalid JSON object, a missing or non-string <tt>proof</tt>, invalid Base64URL, or a proof with an invalid encoding or length with <tt>urn:ietf:params:acme:error:malformed</tt>.</t>
        <t>The client MUST submit the challenge response using the same account key with which the order was created. The client MUST retain <tt>raw_newOrder</tt> for the duration of the order lifecycle, as it is needed to recompute <tt>newOrder_hash</tt> for proof construction. The client SHOULD destroy all intermediate secret material (<tt>shared_secret</tt>, <tt>prk</tt>, and <tt>mac_key</tt> in KEM mode) immediately after submitting the proof, as specified in Section 5.2.</t>
      </section>
      <section anchor="server-validation">
        <name>Server Validation</name>
        <t>This section describes how the server validates the submitted proof and manages the lifetime of proof material.</t>
        <section anchor="validation-steps">
          <name>Validation Steps</name>
          <t>Upon receiving a syntactically valid response, the server:</t>
          <ol spacing="normal" type="1"><li>
              <t>Follows the authoritative <tt>challenge -&gt; authorization -&gt; order -&gt; account</tt> relationship and retrieves the accepted <tt>popKey</tt>, stored <tt>newOrder_hash</tt>, and challenge-specific material (<tt>popNonce_bytes</tt> for signature mode or <tt>mac_key</tt> for KEM mode).</t>
            </li>
            <li>
              <t>MUST immediately transition the <tt>pop-01</tt> challenge to the <tt>processing</tt> state, indicating that cryptographic validation is in progress.</t>
            </li>
            <li>
              <t>Selects the validation path based on the field present in the challenge object:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Signature key mode: Constructs <tt>to_sign</tt> and verifies the signature.</t>
                </li>
                <li>
                  <t>KEM key mode: Computes HMAC-SHA-256(mac_key, newOrder_hash) and compares it (using constant-time comparison) with the submitted proof.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Upon completion of the cryptographic validation:
              </t>
              <ul spacing="normal">
                <li>
                  <t>If validation succeeds, the server sets the <tt>pop-01</tt> challenge and its containing <tt>pop</tt> authorization to <tt>valid</tt>.</t>
                </li>
                <li>
                  <t>If validation fails, the server sets both to <tt>invalid</tt>, records <tt>urn:ietf:params:acme:error:badPoP</tt> on the challenge, and sets the order to <tt>invalid</tt>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Applies the proof-material lifecycle rule in Section 5.4.2 after updating resource states.</t>
            </li>
          </ol>
          <t>The server MAY complete validation synchronously, in which case the <tt>processing</tt> state MAY be transient and not observable by the client.</t>
        </section>
        <section anchor="proof-material-lifecycle">
          <name>Proof-Material Lifecycle</name>
          <t>The server MUST immediately destroy the locally stored <tt>popNonce_bytes</tt> (signature-key mode) or <tt>mac_key</tt> (KEM-key mode), and mark that proof material as consumed, upon the earliest of:</t>
          <ul spacing="normal">
            <li>
              <t>the <tt>pop-01</tt> challenge entering <tt>valid</tt> or <tt>invalid</tt>;</t>
            </li>
            <li>
              <t>the containing <tt>pop</tt> authorization entering <tt>invalid</tt>, <tt>deactivated</tt>, <tt>expired</tt>, or <tt>revoked</tt>;</t>
            </li>
            <li>
              <t>the associated order entering <tt>invalid</tt>, including because the order expired or another authorization reached a final state other than <tt>valid</tt>; or</t>
            </li>
            <li>
              <t>the ACME account owning the associated order entering <tt>deactivated</tt> or <tt>revoked</tt>;</t>
            </li>
            <li>
              <t>the associated STAR order <xref target="RFC8739"/> entering <tt>canceled</tt>.</t>
            </li>
          </ul>
          <t><strong>Challenge termination.</strong> If the containing <tt>pop</tt> authorization enters <tt>invalid</tt>, <tt>deactivated</tt>, <tt>expired</tt>, or <tt>revoked</tt> while its <tt>pop-01</tt> challenge is <tt>pending</tt> or <tt>processing</tt>, the server MUST set the challenge to <tt>invalid</tt> without replacing the authorization's terminal state.</t>
          <t><strong>Order termination.</strong> If the associated order enters <tt>invalid</tt>, the server MUST set any <tt>pending</tt> or <tt>processing</tt> <tt>pop-01</tt> challenge to <tt>invalid</tt> and MUST set its containing <tt>pop</tt> authorization to <tt>invalid</tt> if that authorization is still <tt>pending</tt>. When a nonterminal <tt>pop-01</tt> challenge is made <tt>invalid</tt> solely because its containing authorization or associated order terminated, the server MUST NOT attach a <tt>badPoP</tt> error, because no cryptographic proof validation failed. If an error is included for an independently applicable reason, the problem document MUST describe that actual reason; otherwise the server SHOULD omit the challenge's <tt>error</tt> field.</t>
          <t><strong>Post-termination handling.</strong> After any lifecycle trigger above, the server MUST NOT process another proof submission or change the challenge state in response to such a submission. Account-authenticated POST-as-GET retrieval of the terminal challenge resource remains governed by <xref target="RFC8555"/>. Destruction triggered by account deactivation or revocation does not by itself define additional order, authorization, or challenge state transitions; account deactivation and resource-state handling follow <xref target="RFC8555"/>, Section 7.3.6 and server policy.</t>
        </section>
      </section>
      <section anchor="order-binding">
        <name>Order Binding</name>
        <t>Both the signature-mode <tt>to_sign</tt> and the KEM-mode HMAC input include SHA-256(raw_newOrder). This binds the proof to the exact decoded JWS payload octets of the "newOrder" request. Any change to those octets causes proof verification to fail.</t>
        <t>Implementations MUST NOT hash a re-serialized JSON object.</t>
        <t>The proof binds only to the JWS payload, not the protected header. The integrity of the protected header (algorithm, account identifier, nonce) is already guaranteed by the outer account-key JWS signature. Binding the certificate-key proof to the payload alone ensures the proof attests to the content of the order itself, independent of the account authentication layer.</t>
        <t><strong>Proof construction versioning.</strong> Both proof constructions carry a version marker in their domain separation prefixes ("v1"): <tt>"ACME-pop-01-sig v1:"</tt> for signature keys and <tt>"ACME-pop-01-KEM v1"</tt> for KEM keys. The trailing colon in the signature-mode prefix is part of the domain separation string; it is absent in KEM mode, where the string serves as the HKDF <tt>info</tt> and needs no delimiter. The marker is a domain separation label, not an in-band negotiation mechanism; any incompatible change to a construction requires a new challenge type in a separate extension specification.</t>
      </section>
    </section>
    <section anchor="finalization">
      <name>Finalization</name>
      <section anchor="finalize-request">
        <name>Finalize Request</name>
        <t>An order for which the server accepted the <tt>popKey</tt> and <tt>pop</tt> pair contains one <tt>pop</tt> authorization. When its sole <tt>pop-01</tt> challenge becomes <tt>valid</tt>, the server sets the <tt>pop</tt> authorization to <tt>valid</tt>. The order becomes <tt>ready</tt> only when that <tt>pop</tt> authorization and every other authorization listed by the order are <tt>valid</tt>; challenges within a certificate-identifier authorization remain alternatives under <xref target="RFC8555"/>. The server does not push the <tt>ready</tt> transition; the client retrieves the order URL using POST-as-GET until the returned order object is <tt>ready</tt>.</t>
        <t>After an order using the CSR-less flow becomes <tt>ready</tt>, the client MUST send an account-key-authenticated finalize JWS. The decoded JWS payload MUST parse as a JSON object with no members:</t>
        <artwork><![CDATA[
POST /acme/order/xyz/finalize HTTP/1.1
Host: acme.example.com
Content-Type: application/jose+json

{
  "protected": "<base64url(protected-header)>",
  "payload": "e30",
  "signature": "<base64url(account-key-signature)>"
}
]]></artwork>
        <t>The value <tt>e30</tt> is the Base64URL encoding of the two UTF-8 octets <tt>{}</tt> and is the recommended deterministic representation.</t>
        <t>Before processing a finalize request, the server MUST verify that all authorizations associated with the order, including the <tt>pop</tt> authorization, are still in the <tt>valid</tt> state and have not expired. If any authorization has entered a terminal state other than <tt>valid</tt>, the server MUST transition the order to <tt>invalid</tt> and return an appropriate error.</t>
        <t>For an order with an accepted <tt>popKey</tt> and <tt>pop</tt> pair, the server MUST reject any finalize payload that is not an empty JSON object with <tt>urn:ietf:params:acme:error:malformed</tt>. This includes, but is not limited to, payloads containing a <tt>csr</tt> field. The empty-payload requirement applies only to the finalize endpoint. Other authenticated POSTs to the order resource (e.g., STAR cancellation per <xref target="RFC8739"/>, Section 3.1.2) are unaffected.</t>
        <t>If the order has not reached the <tt>ready</tt> state (e.g., the <tt>pop</tt> authorization is still <tt>pending</tt>), the server MUST return an <tt>orderNotReady</tt> error, consistent with <xref target="RFC8555"/>, Section 7.4.</t>
        <t>If the order is already in the <tt>valid</tt> state, the server MUST return the current order object without modification, consistent with <xref target="RFC8555"/>, Section 7.4.</t>
      </section>
      <section anchor="certificate-issuance">
        <name>Certificate Issuance</name>
        <t>For a successful finalize request, the server returns HTTP 200 with an updated order object as specified by <xref target="RFC8555"/>. When issuing the certificate, the server uses:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Public key:</strong> The DER SubjectPublicKeyInfo octets to be placed in the certificate. The server MUST confirm that the public key to be placed in the certificate is cryptographically equivalent to the public key declared in the accepted order's <tt>popKey</tt>. For DER-encoded X.509 certificates, this is achieved by byte-for-byte comparison of the DER SubjectPublicKeyInfo octets. For C509 certificates, the server MUST verify that the CBOR-encoded subjectPublicKey represents the same cryptographic key as the DER-encoded popKey. Implementations SHOULD decode the key parameters from both encodings and compare the underlying mathematical values (e.g., RSA modulus and exponent, EC curve and point coordinates, ML-KEM parameter set and public key bytes).</t>
          </li>
          <li>
            <t><strong>Identifiers:</strong> The certificate identifiers authorized for the order. The <tt>pop</tt> identifier MUST NOT be encoded anywhere in the issued certificate, including its <tt>subject</tt> field or <tt>subjectAltName</tt> extension.</t>
          </li>
        </ul>
        <t>All other certificate fields and extensions (subject, validity period, key usage, extended key usage, etc.) are determined by CA policy and any applicable certificate profile selected for the order. This document does not mandate specific values for these fields; they are outside the scope of the proof-of-possession mechanism. When used together with the Certificate Profiles extension, the profile identifier in the order governs the composition of the remainder of the certificate. Clients that previously conveyed certificate extensions via the CSR's extensionRequest can express them through a certificate profile; this document does not define a mechanism for client-supplied arbitrary extensions.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="security-model-and-threat-analysis">
        <name>Security Model and Threat Analysis</name>
        <t>This section states the security guarantees of the <tt>pop</tt> authorization under the threat model below, then examines the deployment-specific combinations referenced in Sections 3.5 and 10.</t>
        <t>The <tt>pop-01</tt> challenge proves that an entity participating in the ACME transaction possessed, at challenge completion, the private key corresponding to the accepted <tt>popKey</tt>. It does not prove control of any certificate identifier. Identifier control and key possession are represented by separate authorizations: certificate-identifier authorizations validate the requested certificate identifiers, while the <tt>pop</tt> authorization validates possession of the certificate key. The order can become <tt>ready</tt> only when both kinds of authorization are valid.</t>
        <t>The following threat model defines the security guarantees provided by this design against attackers with different capabilities:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Attacker capability</th>
              <th align="left">Security guarantee</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Holds identifier control, no certificate private key</td>
              <td align="left">Cannot make the <tt>pop</tt> authorization valid for the declared <tt>popKey</tt>; cannot obtain a certificate bound to that key</td>
            </tr>
            <tr>
              <td align="left">Holds certificate private key, no identifier control</td>
              <td align="left">Cannot satisfy identifier authorization; cannot obtain certificate</td>
            </tr>
            <tr>
              <td align="left">Can tamper with finalization-stage network traffic</td>
              <td align="left">Cannot substitute public key; key is locked at order creation</td>
            </tr>
            <tr>
              <td align="left">Can eavesdrop on all protocol traffic</td>
              <td align="left">Cannot forge PoP proof; cannot obtain KEM shared secret</td>
            </tr>
            <tr>
              <td align="left">Can trick the victim into signing a PoP response for an order</td>
              <td align="left">Challenge responses are authenticated by the account that created the order, so cross-account submission fails outer JWS verification; and the proof binds to that order's <tt>newOrder_hash</tt>, so a proof for the victim's own order cannot satisfy the attacker's order.</td>
            </tr>
          </tbody>
        </table>
        <t><strong>Architectural Benefit: Eliminating Late-Binding and Semantic Inconsistency.</strong> In the traditional CSR-based flow, the public key is declared at finalization time, after all authorizations are complete. This creates a semantic window: the order becomes <tt>ready</tt> based on authorizations that validate identifiers, but the certificate public key is not committed until the finalize request. An attacker who can intercept or influence the finalization step could, in principle, replace the client's CSR with one of their own containing a different public key, because the CSR is not cryptographically bound to the order at creation time.</t>
        <t>The <tt>pop</tt> authorization design closes this window by binding the public key to the order at creation time, before the order becomes <tt>ready</tt>. The key is declared in the <tt>newOrder</tt> request and fixed once the <tt>pop</tt> authorization becomes <tt>valid</tt>; there is no CSR to substitute and no later swap point.</t>
        <t>This architectural improvement does not imply a security vulnerability in <xref target="RFC8555"/>. In the standard ACME threat model, where the account key is assumed uncompromised and the client environment is trusted, CSR substitution is not exploitable as a protocol-level attack. The value of the <tt>pop</tt> design lies in making the order a complete specification of the certificate at the time it becomes <tt>ready</tt>, reducing the potential for semantic confusion.</t>
        <t>In deployments where an untrusted proxy component sits between the ACME client and server, and that proxy has the ability to substitute messages, the <tt>pop</tt> authorization design eliminates the possibility of substituting the public key at finalization. This deployment-specific risk is not part of the standard ACME threat model <xref target="RFC8555"/> but may be relevant to environments where proxies handle certificate requests.</t>
        <t><strong>Instantaneous nature of PoP.</strong> The <tt>pop-01</tt> challenge proves possession of the private key at the time the challenge is completed. It does not guarantee continued possession throughout the certificate's validity period. This is consistent with the security model of CSR-based issuance, where the self-signature also only proves possession at the time of CSR submission. Deployments requiring ongoing assurance of key possession should consider short-lived certificates or other operational controls.</t>
        <t><strong>STAR composition with KEM keys.</strong> For a KEM certificate key combined with automatic renewal (STAR), the <tt>pop-01</tt> proof is validated only at bootstrap; subsequent certificates issued under the same order inherit that initial validation without any fresh proof of possession. This is consistent with <xref target="RFC8739"/>, which reissues certificates from the initial CSR without re-running authorization. However, because a KEM proof is a challenge-response rather than a non-repudiable signature, servers SHOULD, for KEM-key STAR orders, bound the auto-renewal duration (e.g., via a conservative <tt>end-date</tt> and minimum <tt>lifetime</tt>) and SHOULD require a fresh <tt>pop</tt> authorization when a new order is created for the same key, to limit the exposure of an unverifiable issuance chain. This does not impose new requirements on CSR-based STAR orders, where the same property applies, but acknowledges the reduced auditability of KEM proofs during auto-renewal. Section 7.5 discusses the revocation and single-control-point implications of the KEM+STAR combination.</t>
        <t><strong>Deployment-specific value of PoP.</strong> The value of PoP varies by context: in a typical Web PKI flow, an attacker who can satisfy identifier validation can usually generate a fresh key pair, so PoP mainly prevents issuance of a key the requester cannot prove possession of; in device-attestation deployments, the <tt>pop</tt> authorization supplies that proof alongside the attestation authorization; and for KEM-only keys it is the only available proof, since the <xref target="RFC8555"/> finalization self-signature does not exist.</t>
        <t><strong>Declarative-composable trust model.</strong> As described in Section 1.5, the design makes the order the single authoritative source of client-declared certificate parameters and evaluates all verifications (identifier control, key possession, and optional attestation) before the order becomes <tt>ready</tt>. Because no finalization-time request can introduce new claims or alter verified ones, the attack surface associated with late-stage request processing is reduced and the security analysis of the issuance path is simplified.</t>
      </section>
      <section anchor="cryptographic-binding">
        <name>Cryptographic Binding</name>
        <t>The proof input includes SHA-256(raw_newOrder). The proof therefore covers the requested <tt>identifiers</tt>, <tt>popKey</tt>, and every other order field as encoded by the client. The server maintains this binding through the authenticated <tt>challenge -&gt; authorization -&gt; order -&gt; account</tt> relationship.</t>
        <t>The strength of this transcript binding is bounded by the collision resistance of SHA-256, regardless of the security level of the certificate-key algorithm.</t>
      </section>
      <section anchor="nonce-and-kem-key-management">
        <name>Nonce and KEM Key Management</name>
        <t>The <tt>popNonce</tt> field MUST be exactly 32 bytes (256 bits of entropy) and MUST NOT be reused across challenges, providing a fixed-length concatenation boundary (Section 4.2). The server marks signature-mode proof material consumed and handles later proof submissions according to the lifecycle rules in Section 5.4.</t>
        <t>In KEM mode, the client and server MUST use the HKDF-SHA-256 parameters in Section 5.2 and MUST NOT use <tt>shared_secret</tt> directly as the HMAC key. The server MUST compare the submitted proof with the expected HMAC in constant time.</t>
        <section anchor="kem-specific-security-requirements">
          <name>KEM-Specific Security Requirements</name>
          <ul spacing="normal">
            <li>
              <t><strong>Constant-time implementation:</strong> Server-side KEM encapsulation and proof verification MUST be implemented using constant-time cryptographic primitives to avoid timing side channels that could leak information about the shared secret or the private key.</t>
            </li>
            <li>
              <t><strong>Minimal secret retention:</strong> The server MUST NOT persist or log the raw KEM shared secret. Only the derived <tt>mac_key</tt> MAY be retained for the duration of the challenge, and MUST be destroyed immediately upon challenge termination.</t>
            </li>
            <li>
              <t><strong>Freshness and uniqueness:</strong> Each <tt>pop-01</tt> challenge for a KEM key MUST use a fresh invocation of ML-KEM.Encaps, generating a unique ephemeral secret and ciphertext. Ciphertexts MUST NOT be cached, reused across challenges, or shared between orders. This ensures that each derived <tt>mac_key</tt> is unique per challenge, limiting the impact of any single key compromise; the <tt>newOrder_hash</tt> binding (Section 5.5) independently prevents replay attacks across orders, as a proof computed for one order's hash cannot satisfy another order's challenge even if the ciphertext were reused.</t>
            </li>
            <li>
              <t><strong>Server-side <tt>mac_key</tt> compromise:</strong> The server stores only the derived <tt>mac_key</tt> during the challenge lifetime. If this <tt>mac_key</tt> is compromised while the challenge is still <tt>pending</tt> or <tt>processing</tt>, an attacker could generate a valid proof for that specific challenge, potentially leading to unauthorized issuance for that order. However, the per-challenge uniqueness of the <tt>mac_key</tt> ensures that compromise of one challenge does not affect others; immediate destruction upon challenge termination (as specified in Section 5.4) limits the window of exposure. Servers SHOULD protect the in-memory <tt>mac_key</tt> with the same security controls applied to other sensitive authentication material and SHOULD consider hardware-backed security mechanisms for high-value deployments. In STAR orders, this risk is limited to the bootstrap phase only, as no <tt>mac_key</tt> is retained for automatic renewals; a <tt>mac_key</tt> compromise therefore does not affect an already-established STAR renewal chain.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="algorithm-and-key-rejection">
        <name>Algorithm and Key Rejection</name>
        <t>The server MUST reject a <tt>popKey</tt> that it cannot parse or for which it does not implement the mapping required by Section 5. A server MAY also reject a syntactically valid key under CA policy. Both failures use <tt>urn:ietf:params:acme:error:badPopKey</tt>.</t>
        <t>Rejection of an otherwise valid <tt>popKey</tt> for a reason unrelated to the key value itself (e.g., the account or request is not authorized for CSR-less issuance) uses <tt>urn:ietf:params:acme:error:popKeyRejectedByPolicy</tt> as defined in Section 3.2, step 5. The two error types are distinct: <tt>badPopKey</tt> indicates a problem with the key value itself (syntax, algorithm, parameters, or equivalence to the account key), whereas <tt>popKeyRejectedByPolicy</tt> indicates that the key is acceptable but its use is not permitted by CA policy.</t>
        <t><strong>Algorithm identifier stability.</strong> Section 5 defines the algorithm mappings implemented by this document. For an accepted order, the <tt>popKey</tt> and challenge <tt>key</tt> strings are equal, proof processing uses the algorithm identified by the decoded SPKI, and, for DER-encoded X.509 certificates, the issued certificate contains the same DER SPKI octets; for other certificate encodings, cryptographic equivalence is determined as specified in Section 6.2. The mappings are not an ACME-wide whitelist; a future algorithm mapping requires an extension specification.</t>
      </section>
      <section anchor="revocation-of-kem-bound-certificates">
        <name>Revocation of KEM-Bound Certificates</name>
        <t><xref target="RFC8555"/>, Section 7.6 defines two authentication methods for revocation: the ACME account key, and the certificate's private key. For KEM-bound certificates, the certificate-private-key path is not available, as KEM keys cannot produce digital signatures.</t>
        <t>Deployments using KEM keys MUST therefore ensure the availability of the ACME account key for revocation operations. Loss of the account key leaves no in-protocol mechanism for revoking the certificate. Mitigations include:</t>
        <ul spacing="normal">
          <li>
            <t>Account-key recovery mechanisms provided by the ACME service provider.</t>
          </li>
          <li>
            <t>Short-lived certificates to reduce the impact of unrevocable certificates; the interaction of short-lived certificates with KEM keys is discussed below.</t>
          </li>
          <li>
            <t>Separate revocation channels (CRL, OCSP) operated by the CA independently of ACME.</t>
          </li>
        </ul>
        <t>Combining KEM certificate keys with STAR <xref target="RFC8739"/> concentrates the active control path on a single point: the ACME account key. STAR certificates cannot be explicitly revoked (<xref target="RFC8739"/>, Section 6.1); a revocation request is rejected with <tt>autoRenewalRevocationNotSupported</tt> (<xref target="RFC8739"/>, Section 3.1.2), and KEM keys cannot use the certificate-private-key revocation method of <xref target="RFC8555"/>, Section 7.6. Cancellation of the STAR order via the account key is therefore the sole in-protocol mechanism to stop issuance after a key compromise. Deployments combining KEM keys with STAR MUST give the highest priority to securing and backing up the ACME account key, and SHOULD prefer short STAR <tt>lifetime</tt> values to bound the exposure window. Loss of the account key leaves automatic renewal running with a potentially compromised key until the order's <tt>end-date</tt>.</t>
      </section>
      <section anchor="relationship-to-established-pop-security">
        <name>Relationship to Established PoP Security</name>
        <t>The <tt>pop-01</tt> challenge builds on established IETF proof-of-possession work and provides guarantees appropriate for the ACME issuance context. Its security properties depend on the mode of operation. In particular:</t>
        <ul spacing="normal">
          <li>
            <t><strong>JWS payload processing <xref target="RFC7515"/>:</strong> To avoid JSON serialization ambiguities, the proof is bound to the exact octets obtained by Base64URL-decoding the JWS <tt>payload</tt> member of the "newOrder" request, before JSON parsing (see Section 5.5).</t>
          </li>
          <li>
            <t><strong>PoP key semantics <xref target="RFC7800"/> <xref target="RFC8747"/>:</strong> These RFCs formalize a PoP key bound to a security token. Here the public key carried in <tt>popKey</tt> and the <tt>pop-01</tt> challenge is a PoP key, and the ACME order is the binding context.</t>
          </li>
          <li>
            <t><strong>OAuth 2.0 DPoP <xref target="RFC9449"/>:</strong> DPoP is an application-layer PoP mechanism for sender-constraining OAuth tokens. It provides an example of proof binding to a protocol context, although its state and replay models differ from this ACME challenge.</t>
          </li>
          <li>
            <t><strong>CMP <xref target="RFC9810"/>:</strong> The Certificate Management Protocol likewise requires proof of possession of the certified key, illustrating that an ACME-native PoP mechanism serves a need common to PKI management protocols.</t>
          </li>
        </ul>
        <t><strong>Signature key mode.</strong> For signature keys, the proof is a digital signature over the challenge material. This provides security guarantees equivalent to the CSR self-signature mechanism of <xref target="RFC8555"/>: only the private key holder can generate the proof, and the proof serves as evidence of possession that can be independently verified by third parties.</t>
        <t><strong>KEM key mode.</strong> For KEM keys, the proof is a MAC derived from a shared secret obtained through decapsulation. This is a challenge-response proof that demonstrates to the server that the client possesses the private key, because only the client can decapsulate the ciphertext to derive the correct shared secret and MAC key. However, because the server originates the encapsulation and can compute the expected MAC independently, the proof does not provide non-repudiation: the client cannot present the proof to a third party as evidence of possession, as the server could have generated it itself.</t>
        <t>In the ACME issuance context, this distinction does not weaken security: the server is the relying party, and its goal is to verify before issuance that the requester holds the private key corresponding to the declared public key. A client that cannot decapsulate the ciphertext cannot produce the required MAC, and the proof is bound to the order context (<tt>newOrder_hash</tt>) and a fresh server-generated ciphertext, providing protection against replay and substitution. The server can, however, always compute a valid proof itself, so KEM-mode proofs provide no non-repudiation and cannot serve as third-party-verifiable evidence. Deployments that need auditable, externally verifiable proof of possession (e.g., publicly trusted CAs subject to regulatory audit) SHOULD prefer signature-capable certificate keys or a future extension for KEM-based signing proofs; where signature keys are not an option, CAs SHOULD evaluate whether logging the challenge-response exchange (ciphertext, submitted proof, timestamp) suffices for their internal audit trail, recognizing that such logs are not third-party-verifiable.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>The <tt>popKey</tt> field carries a public key intended for a certificate, but sending the same value in multiple orders permits those transactions to be correlated. A fresh key for each order reduces that correlation and can be preferable when the application does not require key continuity.</t>
        <t>Key reuse is nevertheless valid protocol behavior. Renewal, public key pinning, escrow, and pre-provisioned hardware keys can require the same key in multiple certificates or orders. While <tt>popKey</tt> may be reused across orders, each reuse requires a fresh <tt>pop</tt> authorization, challenge material, and proof, ensuring that each certificate issuance is independently verified.</t>
        <t>Servers SHOULD retain <tt>popKey</tt> and proof-related data only as long as needed for order processing, certificate issuance, security investigation, and applicable audit requirements.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="acme-identifier-types-registry">
        <name>ACME Identifier Types Registry</name>
        <t>IANA is requested to add the following entry to the "ACME Identifier Types" registry (established by <xref target="RFC8555"/>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">pop</td>
              <td align="left">Auxiliary identifier type requesting a dedicated proof-of-possession authorization.</td>
              <td align="left">this document</td>
            </tr>
          </tbody>
        </table>
        <t><tt>pop</tt> is an auxiliary identifier type whose value is the empty string. It requests a dedicated proof-of-possession authorization and is not encoded in the issued certificate.</t>
        <t>The entry is registered under the "Specification Required" policy established by <xref target="RFC8555"/> for this registry. The Change Controller is the IETF.</t>
      </section>
      <section anchor="acme-challenge-types-registry">
        <name>ACME Challenge Types Registry</name>
        <t>IANA is requested to add the following entry to the "ACME Challenge Types" registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Challenge Type Name</th>
              <th align="left">Applicable Identifier Types</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">pop-01</td>
              <td align="left">pop</td>
              <td align="left">this document</td>
            </tr>
          </tbody>
        </table>
        <t><tt>pop-01</tt> is used only in <tt>pop</tt> authorizations. It MUST NOT appear in certificate-identifier authorizations.</t>
        <t>The entry is registered under the "Specification Required" policy established by <xref target="RFC8555"/> for this registry. The Change Controller is the IETF.</t>
      </section>
      <section anchor="acme-directory-metadata-fields-registry">
        <name>ACME Directory Metadata Fields Registry</name>
        <t>IANA is requested to add the following entry to the "ACME Directory Metadata Fields" registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field Name</th>
              <th align="left">Field Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">popSupported</td>
              <td align="left">boolean</td>
              <td align="left">this document</td>
            </tr>
          </tbody>
        </table>
        <t><tt>popSupported</tt> indicates support for the <tt>pop</tt> identifier type, the <tt>pop-01</tt> challenge type, and the <tt>popKey</tt> field.</t>
        <t>The entry is registered under the "Specification Required" policy established by <xref target="RFC8555"/> for this registry. The Change Controller is the IETF.</t>
      </section>
      <section anchor="acme-error-types-registry">
        <name>ACME Error Types Registry</name>
        <t>IANA is requested to add the following entries to the "ACME Error Types" registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">badPopKey</td>
              <td align="left">The popKey value is malformed, contains an unsupported algorithm or invalid parameters, matches the account key, or exceeds length limits.</td>
              <td align="left">this document</td>
            </tr>
            <tr>
              <td align="left">popKeyRejectedByPolicy</td>
              <td align="left">The popKey is syntactically and algorithmically valid but rejected by CA policy (e.g., insufficient key strength, account not authorized for CSR-less issuance).</td>
              <td align="left">this document</td>
            </tr>
            <tr>
              <td align="left">badPoP</td>
              <td align="left">The submitted proof-of-possession cryptographic verification failed.</td>
              <td align="left">this document</td>
            </tr>
          </tbody>
        </table>
        <t>The entry is registered under the "Specification Required" policy established by <xref target="RFC8555"/> for this registry. The Change Controller is the IETF.</t>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <section anchor="acme-server-ca">
        <name>ACME Server (CA)</name>
        <section anchor="obtaining-and-storing-neworderhash">
          <name>Obtaining and Storing <tt>newOrder_hash</tt></name>
          <t>As defined in Section 2, the server MUST retain the <tt>raw_newOrder</tt> payload octets, compute <tt>newOrder_hash = SHA-256(raw_newOrder)</tt>, and parse that same sequence as the request object; it MUST NOT hash a re-serialized JSON object (Section 5.1, step 1). The server stores <tt>newOrder_hash</tt> as data of the created order; challenge validation obtains the order through the stored <tt>challenge -&gt; authorization -&gt; order</tt> relationship.</t>
        </section>
        <section anchor="storing-and-validating-popkey">
          <name>Storing and Validating <tt>popKey</tt></name>
          <t>The server-side requirements for receiving, validating, and storing <tt>popKey</tt> are specified in Section 3.2 and are not repeated here. In brief: the server verifies the request shape (Section 3.2, step 1), decodes and validates the DER SPKI against the Section 5 mapping and CA policy (steps 2-4), atomically stores <tt>popKey</tt> and <tt>newOrder_hash</tt> and creates exactly one <tt>pop</tt> authorization with one <tt>pop-01</tt> challenge (steps 6-10), and sets the challenge <tt>key</tt> to the accepted <tt>popKey</tt> string (step 11). For STAR orders, the retention and renewal-use requirements for the stored <tt>popKey</tt> are as specified in Section 3.2, step 6.</t>
          <t>Mode-specific proof material is handled as specified in Section 5: for signature keys, generate a fresh 32-byte <tt>popNonce</tt> and retain the decoded bytes only until the lifecycle rule in Section 5.4 applies; for KEM keys, check the ciphertext length after Encapsulate (Section 5.2), retain only <tt>mac_key</tt>, and compare proofs in constant time.</t>
        </section>
        <section anchor="public-key-comparison-for-account-key-exclusion">
          <name>Public Key Comparison for Account Key Exclusion</name>
          <t>When comparing a <tt>popKey</tt> value against the account public key, servers MUST use the canonical DER SPKI encoding of the account key as the comparison baseline. Implementations should be aware that:</t>
          <ul spacing="normal">
            <li>
              <t>The same RSA modulus and exponent may be represented with different DER encodings (e.g., leading zero bytes in the modulus); canonical DER encoding requires the minimal number of bytes per <xref target="X.690"/>.</t>
            </li>
            <li>
              <t>The same EC point may be represented in compressed or uncompressed form; SPKI uses the uncompressed form (0x04 prefix) as specified in <xref target="RFC5480"/>.</t>
            </li>
            <li>
              <t>The same ML-KEM key has a single canonical encoding as specified in <xref target="RFC9935"/>.</t>
            </li>
          </ul>
          <t>Servers MUST reject any <tt>popKey</tt> that is cryptographically identical to the account key, regardless of encoding differences, by performing the byte-for-byte comparison after canonicalization.</t>
        </section>
        <section anchor="rate-limiting-for-kem-encapsulation">
          <name>Rate Limiting for KEM Encapsulation</name>
          <t>KEM encapsulation (ML-KEM.Encaps) is computationally more expensive than signature verification for classical keys. An attacker could repeatedly create orders containing KEM <tt>popKey</tt> values to consume server resources.</t>
          <t>Servers SHOULD apply rate limiting to <tt>newOrder</tt> requests containing a <tt>popKey</tt>, particularly for KEM key types where encapsulation is computationally expensive. Rate limits SHOULD be applied per account and per IP address to prevent resource exhaustion attacks. Servers MAY also reject <tt>popKey</tt> values for KEM algorithms that exceed the server's configured resource limits, returning <tt>urn:ietf:params:acme:error:badPopKey</tt>.</t>
        </section>
        <section anchor="error-returns">
          <name>Error Returns</name>
          <t>For a well-formed proof that fails cryptographic verification, the server returns HTTP 200 with an updated <tt>invalid</tt> challenge object containing a <tt>badPoP</tt> error. A request-layer syntax failure returns a top-level <tt>malformed</tt> problem response.</t>
        </section>
      </section>
      <section anchor="acme-client">
        <name>ACME Client</name>
        <t>Before requesting CSR-less issuance, a client can check for <tt>popSupported: true</tt>. For a CSR-less request, the client:</t>
        <ol spacing="normal" type="1"><li>
            <t>Serializes the "newOrder" JSON object once, retains the resulting octets as <tt>raw_newOrder</tt>, and uses those same octets as the JWS payload.</t>
          </li>
          <li>
            <t>Includes exactly one <tt>{ "type": "pop", "value": "" }</tt> identifier together with <tt>popKey</tt> and at least one certificate identifier.</t>
          </li>
          <li>
            <t>After receiving the initial order, verifies that the echoed <tt>popKey</tt> string is unchanged, that the order retains exactly one <tt>pop</tt> identifier, and that exactly one authorization URL resolves to an authorization with that identifier.</t>
          </li>
          <li>
            <t>Verifies that this authorization contains exactly one <tt>pop-01</tt> challenge.</t>
          </li>
          <li>
            <t>Constructs the proof and submits it in an account-key-authenticated challenge JWS.</t>
          </li>
          <li>
            <t>Retrieves the order URL using POST-as-GET until the order becomes <tt>ready</tt>, before sending the finalize request.</t>
          </li>
        </ol>
        <section anchor="fallback-behavior">
          <name>Fallback Behavior</name>
          <ul spacing="normal">
            <li>
              <t><strong>Pre-flight check:</strong> Before creating an order, the client SHOULD check for <tt>popSupported: true</tt> in the directory metadata. If absent or false, the client MUST use the standard CSR flow.</t>
            </li>
            <li>
              <t><strong>Hard failure fallback:</strong> If the <tt>newOrder</tt> request is rejected with <tt>unsupportedIdentifier</tt>, the client MUST abandon the CSR-less attempt and create a new order using the CSR flow without the <tt>pop</tt> identifier.</t>
            </li>
            <li>
              <t><strong>Inconsistent response fallback:</strong> If the server returns an order that omits <tt>popKey</tt>, omits the <tt>pop</tt> identifier, or does not include exactly one <tt>pop</tt> authorization, the client MUST treat the CSR-less flow as rejected and fall back to CSR-based issuance.</t>
            </li>
          </ul>
          <t>For example, a client that does not see <tt>popSupported: true</tt> uses the standard CSR-based flow with only certificate identifiers:</t>
          <artwork><![CDATA[
{
  "identifiers": [
    { "type": "dns", "value": "example.com" }
  ]
}
]]></artwork>
          <t>A server that receives an unsupported <tt>pop</tt> identifier rejects it with the existing <tt>unsupportedIdentifier</tt> error, as described in Section 3.2.</t>
        </section>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="signature-key-with-dns-identifier">
        <name>Signature Key with DNS Identifier</name>
        <t>The client controls <tt>example.com</tt> and has a P-256 certificate key. The server advertises <tt>popSupported: true</tt>.</t>
        <t>Step 1: Create the order.</t>
        <artwork><![CDATA[
{
  "identifiers": [
    {"type":"dns","value":"example.com"},
    {"type":"pop","value":""}
  ],
  "popKey":"<base64url(spki_bytes)>"
}
]]></artwork>
        <t>The HTTP entity is an account-key-authenticated JWS.</t>
        <t>Step 2: Retrieve the order and its two authorizations.</t>
        <artwork><![CDATA[
{
  "status": "pending",
  "expires": "2026-09-30T00:00:00Z",
  "identifiers": [
    { "type": "dns", "value": "example.com" },
    { "type": "pop", "value": "" }
  ],
  "authorizations": [
    "https://acme.example.com/acme/authz/dnsAuthz",
    "https://acme.example.com/acme/authz/popAuthz"
  ],
  "popKey": "<base64url(spki_bytes)>",
  "finalize": "https://acme.example.com/acme/order/xyz/finalize"
}
]]></artwork>
        <t>The DNS authorization contains normal challenge alternatives. The <tt>pop</tt> authorization contains only <tt>pop-01</tt>:</t>
        <artwork><![CDATA[
{
  "status": "pending",
  "identifier": { "type": "pop", "value": "" },
  "challenges": [{
    "type": "pop-01",
    "url": "https://acme.example.com/acme/chall/pop789",
    "status": "pending",
    "key": "<base64url(spki_bytes)>",
    "popNonce": "<base64url(32 random bytes)>"
  }]
}
]]></artwork>
        <t>Step 3: Complete each authorization.</t>
        <t>The client completes one offered DNS challenge. For the <tt>pop</tt> authorization, it computes:</t>
        <artwork><![CDATA[
newOrder_hash = SHA-256(raw_newOrder)
popNonce_bytes = base64url-decode(popNonce)
to_sign = "ACME-pop-01-sig v1:" || popNonce_bytes || newOrder_hash
proof = base64url(ECDSA-Sign-P1363(private_key, to_sign))
]]></artwork>
        <t>It submits the proof to <tt>/acme/chall/pop789</tt>.</t>
        <t>Step 4: Finalize without a CSR.</t>
        <artwork><![CDATA[
POST /acme/order/xyz/finalize HTTP/1.1
Host: acme.example.com
Content-Type: application/jose+json

{
  "protected": "<base64url(protected-header)>",
  "payload": "e30",
  "signature": "<base64url(account-key-signature)>"
}
]]></artwork>
        <t>When the order becomes <tt>valid</tt>, the certificate URL is returned.</t>
      </section>
      <section anchor="kem-key-with-device-attestation">
        <name>KEM Key with Device Attestation</name>
        <t>An IoT device has an ML-KEM-768 certificate key and a permanent identifier <tt>ABCDEF123456</tt>, using the <tt>permanent-identifier</tt> identifier type defined in <xref target="I-D.ietf-acme-device-attest"/>. The order request is as follows:</t>
        <artwork><![CDATA[
{
  "identifiers": [{
    "type":"permanent-identifier",
    "value":"ABCDEF123456"
  }, {
    "type":"pop",
    "value":""
  }],
  "popKey":"<base64url(ml-kem-768-spki)>"
}
]]></artwork>
        <t>The order contains separate device-attestation and <tt>pop</tt> authorizations. The <tt>pop</tt> authorization contains:</t>
        <artwork><![CDATA[
{
  "status": "pending",
  "identifier": { "type": "pop", "value": "" },
  "challenges": [{
    "type": "pop-01",
    "url": "https://acme.example.com/acme/chall/pop890",
    "status": "pending",
    "key": "<base64url(ml-kem-768-spki)>",
    "challenge_ciphertext": "<base64url(ml-kem-768-ciphertext)>"
  }]
}
]]></artwork>
        <t>The client computes the KEM proof:</t>
        <artwork><![CDATA[
ct = base64url-decode(challenge_ciphertext)
shared_secret = ML-KEM-768.Decapsulate(private_key, ct)
prk = HKDF-Extract[SHA-256](salt, IKM = shared_secret)
mac_key = HKDF-Expand[SHA-256](prk,
          info = ASCII("ACME-pop-01-KEM v1"), L = 32)
newOrder_hash = SHA-256(raw_newOrder)
proof = base64url(HMAC-SHA-256(mac_key, newOrder_hash))
]]></artwork>
        <t><em>salt uses the default all-zero salt per <xref target="RFC5869"/>, Section 2.2.</em></t>
        <t>Once both the device-attestation and <tt>pop</tt> authorizations are valid, the order becomes <tt>ready</tt>. The client finalizes with an empty object.</t>
      </section>
      <section anchor="complete-iot-certificate-automation-stack-informative">
        <name>Complete IoT Certificate Automation Stack (Informative)</name>
        <t>This example shows how the CSR-less flow combines with device attestation and C509 for constrained IoT devices: <tt>device-attest-01</tt> establishes device identity and trusted state, <tt>pop-01</tt> proves possession of the certificate private key, and C509 delivers the certificate in compact CBOR. Device attestation details are defined in <xref target="I-D.ietf-acme-device-attest"/>; the C509 public key equivalence check is specified in Section 6.2. Client preferences such as <tt>preferredCertificateFormat</tt>, <tt>c509Supported</tt>, and <tt>c509CertificateTypes</tt> are illustrative and not defined as normative fields by this document.</t>
        <t>A constrained IoT device with an ML-KEM-768 key and a hardware trust anchor (e.g., TPM 2.0) requests a certificate for <tt>sensor.example.com</tt>. The flow follows Section 10.2 for the two authorizations, with C509 as the delivery format:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client sends <tt>newOrder</tt> with a <tt>permanent-identifier</tt> and a <tt>pop</tt> identifier plus a <tt>popKey</tt> carrying the ML-KEM-768 SPKI.</t>
          </li>
          <li>
            <t>The server creates a device-attestation authorization and a <tt>pop</tt> authorization.</t>
          </li>
          <li>
            <t>The client completes <tt>device-attest-01</tt> with hardware attestation evidence (the challenge mechanics are defined in <xref target="I-D.ietf-acme-device-attest"/>).</t>
          </li>
          <li>
            <t>The client completes the <tt>pop-01</tt> challenge as in Section 10.2.</t>
          </li>
          <li>
            <t>When both authorizations are <tt>valid</tt>, the order becomes <tt>ready</tt>; the client finalizes with an empty object.</t>
          </li>
          <li>
            <t>The server issues the certificate in C509 format, verifying that the CBOR-encoded subjectPublicKey is cryptographically equivalent to the validated <tt>popKey</tt> (Section 6.2). The certificate is returned with <tt>Content-Type: application/cose-c509</tt>.</t>
          </li>
        </ol>
        <t>The two authorizations are independent and may be completed in any order; the order becomes <tt>ready</tt> only when both are <tt>valid</tt>, forming the trust statement "a trusted device holding this certificate key." If the device has no attestation support, the client omits <tt>permanent-identifier</tt> and uses a DNS identifier instead; if the server does not support C509, the certificate is returned in DER format. The <tt>pop</tt> authorization is the common proof-of-possession mechanism in both cases.</t>
        <t>When combined with STAR, the device requests a STAR order with a <tt>popKey</tt>/<tt>pop</tt> pair at bootstrap, and the CA automatically renews the C509 certificate from the validated <tt>popKey</tt> within the STAR order's lifetime without re-running the <tt>pop-01</tt> challenge (Section 3.5). This provides the CSR-less equivalent of <xref target="RFC8739"/>'s auto-renewal for C509 deployments; the ACME account key is the sole in-protocol mechanism for stopping the renewal sequence (Section 7.5). Section 10.4 provides the complete STAR bootstrap flow for the CSR-less case.</t>
      </section>
      <section anchor="star-bootstrap-with-csr-less-flow-informative">
        <name>STAR Bootstrap with CSR-less Flow (Informative)</name>
        <t>This example illustrates how a client uses the <tt>pop</tt> authorization to bootstrap a STAR order <xref target="RFC8739"/>, Section 2.1. To keep the focus on STAR-specific interaction, details of identifier validation are omitted; the combination of the <tt>pop</tt> authorization with STAR is specified in Section 3.5.</t>
        <t><strong>Step 0: Discover capability.</strong></t>
        <t>Before creating the order, the client checks that the server advertises <tt>popSupported: true</tt> (this document) and <tt>auto-renewal</tt> support in its directory metadata, as specified in Section 3.4.1.</t>
        <t><strong>Step 1: Client creates a STAR order.</strong></t>
        <t>The client includes an <tt>auto-renewal</tt> object in the <tt>newOrder</tt> request alongside the <tt>popKey</tt> and <tt>pop</tt> identifier. This is the only difference from a standard CSR-less order.</t>
        <artwork><![CDATA[
{
  "identifiers": [
    { "type": "dns", "value": "example.com" },
    { "type": "pop", "value": "" }
  ],
  "popKey": "<base64url(DER-encoded SPKI)>",
  "auto-renewal": {
    "end-date": "2027-08-30T00:00:00Z",
    "lifetime": 86400
  }
}
]]></artwork>
        <t>The <tt>auto-renewal</tt> object follows the syntax defined in <xref target="RFC8739"/>, Section 3.1.1. The <tt>end-date</tt> and <tt>lifetime</tt> fields are required: <tt>end-date</tt> specifies the latest date of validity of the last certificate issued, in <xref target="RFC3339"/> format, and <tt>lifetime</tt> specifies the maximum validity period of each STAR certificate in seconds. <tt>lifetime</tt> is a nominal value that does not include any extra validity time due to server or client adjustment (<xref target="RFC8739"/>, Section 3.5).</t>
        <t><strong>Step 2: Server processes the order.</strong></t>
        <t>The server processes the request as described in Section 3.2, creating both the identifier authorization (e.g., DNS) and the <tt>pop</tt> authorization. The server MAY adjust the <tt>auto-renewal</tt> values according to its local policy (<xref target="RFC8739"/>, Section 3.1.1); the returned Order object includes the echoed <tt>popKey</tt> and the server-accepted <tt>auto-renewal</tt> object, and its <tt>expires</tt> value is set so that the order remains valid for the full auto-renewal window:</t>
        <artwork><![CDATA[
{
  "status": "pending",
  "expires": "2027-08-30T00:00:00Z",
  "identifiers": [
    { "type": "dns", "value": "example.com" },
    { "type": "pop", "value": "" }
  ],
  "authorizations": [
    "https://acme.example.com/acme/authz/dns-abc123",
    "https://acme.example.com/acme/authz/pop-def456"
  ],
  "popKey": "<base64url(DER-encoded SPKI)>",
  "auto-renewal": {
    "end-date": "2027-08-30T00:00:00Z",
    "lifetime": 86400
  },
  "finalize": "https://acme.example.com/acme/order/xyz/finalize"
}
]]></artwork>
        <t><strong>Step 3: Complete the authorizations.</strong></t>
        <t>The client completes the identifier authorization (e.g., via <tt>dns-01</tt>) and the <tt>pop-01</tt> challenge as shown in Sections 10.1 and 10.2. Both authorizations MUST reach the <tt>valid</tt> state before the order becomes <tt>ready</tt>.</t>
        <t><strong>Step 4: Finalize the bootstrap.</strong></t>
        <t>Once the order is <tt>ready</tt>, the client sends an empty JSON object to the finalize endpoint, as specified in Section 6.1:</t>
        <artwork><![CDATA[
POST /acme/order/xyz/finalize HTTP/1.1
Host: acme.example.com
Content-Type: application/jose+json

{
  "protected": "<base64url(protected-header)>",
  "payload": "e30",
  "signature": "<base64url(account-key-signature)>"
}
]]></artwork>
        <t>Once the order is <tt>valid</tt>, the client obtains the (rolling) STAR certificate from the <tt>star-certificate</tt> URL as defined in <xref target="RFC8739"/>, Section 3.3. Subsequent automatic renewals within the order's lifetime do not re-run the <tt>pop-01</tt> challenge; the initial <tt>pop</tt> authorization, once <tt>valid</tt>, constitutes the long-term authorization for the auto-renewal sequence (Section 3.5). This bootstrap flow is the CSR-less equivalent of the STAR bootstrap described in <xref target="RFC8739"/>, Section 2.1.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS-203">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM)</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="March" day="28"/>
          </front>
        </reference>
        <reference anchor="FIPS-204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
        </reference>
        <reference anchor="FIPS-205">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
        </reference>
        <reference anchor="X.690">
          <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/>
            </author>
            <date year="2015" month="August"/>
          </front>
        </reference>
        <reference anchor="P1363">
          <front>
            <title>IEEE Standard Specifications for Public-Key Cryptography</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2000"/>
          </front>
          <seriesInfo name="IEEE" value="Std 1363-2000"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2000.92292"/>
        </reference>
        <reference anchor="RFC8555" target="https://www.rfc-editor.org/info/rfc8555" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8555.xml">
          <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="RFC5280" target="https://www.rfc-editor.org/info/rfc5280" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC8739" target="https://www.rfc-editor.org/info/rfc8739" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8739.xml">
          <front>
            <title>Support for Short-Term, Automatically Renewed (STAR) Certificates in the Automated Certificate Management Environment (ACME)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <author fullname="A. Pastor Perales" initials="A." surname="Pastor Perales"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>Public key certificates need to be revoked when they are compromised, that is, when the associated private key is exposed to an unauthorized entity. However, the revocation process is often unreliable. An alternative to revocation is issuing a sequence of certificates, each with a short validity period, and terminating the sequence upon compromise. This memo proposes an Automated Certificate Management Environment (ACME) extension to enable the issuance of Short-Term, Automatically Renewed (STAR) X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8739"/>
          <seriesInfo name="DOI" value="10.17487/RFC8739"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="RFC7515" target="https://www.rfc-editor.org/info/rfc7515" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
          <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="RFC4086" target="https://www.rfc-editor.org/info/rfc4086" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4086.xml">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC8032" target="https://www.rfc-editor.org/info/rfc8032" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8410" target="https://www.rfc-editor.org/info/rfc8410" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8410.xml">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <reference anchor="RFC9881" target="https://www.rfc-editor.org/info/rfc9881" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9881.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (ML-DSA)</title>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>Digital signatures are used within X.509 certificates and Certificate Revocation Lists (CRLs), and to sign messages. This document specifies the conventions for using FIPS 204, the Module-Lattice-Based Digital Signature Algorithm (ML-DSA) in Internet X.509 certificates and CRLs. The conventions for the associated signatures, subject public keys, and private key are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9881"/>
          <seriesInfo name="DOI" value="10.17487/RFC9881"/>
        </reference>
        <reference anchor="RFC9909" target="https://www.rfc-editor.org/info/rfc9909" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9909.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Stateless Hash-Based Digital Signature Algorithm (SLH-DSA)</title>
            <author fullname="K. Bashiri" initials="K." surname="Bashiri"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="S. Gazdag" initials="S." surname="Gazdag"/>
            <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
            <author fullname="S. Kousidis" initials="S." surname="Kousidis"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>Digital signatures are used within the X.509 Public Key Infrastructure, such as X.509 certificates and Certificate Revocation Lists (CRLs), as well as to sign messages. This document specifies the conventions for using the Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) in the X.509 Public Key Infrastructure. The conventions for the associated signatures, subject public keys, and private keys are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9909"/>
          <seriesInfo name="DOI" value="10.17487/RFC9909"/>
        </reference>
        <reference anchor="RFC3279" target="https://www.rfc-editor.org/info/rfc3279" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3279.xml">
          <front>
            <title>Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="L. Bassham" initials="L." surname="Bassham"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="May" year="2002"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for digital signatures and subject public keys used in the Internet X.509 Public Key Infrastructure (PKI). Digital signatures are used to sign certificates and certificate revocation list (CRLs). Certificates include the public key of the named subject. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3279"/>
          <seriesInfo name="DOI" value="10.17487/RFC3279"/>
        </reference>
        <reference anchor="RFC7518" target="https://www.rfc-editor.org/info/rfc7518" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7518.xml">
          <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="RFC9935" target="https://www.rfc-editor.org/info/rfc9935" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9935.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for the Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM)</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>The Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) is a quantum-resistant Key Encapsulation Mechanism. This document specifies the conventions for using the ML-KEM in X.509 Public Key Infrastructure. The conventions for the subject public keys and private keys are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9935"/>
          <seriesInfo name="DOI" value="10.17487/RFC9935"/>
        </reference>
        <reference anchor="RFC5869" target="https://www.rfc-editor.org/info/rfc5869" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml">
          <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="RFC9810" target="https://www.rfc-editor.org/info/rfc9810" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9810.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Certificate Management Protocol (CMP)</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="M. Ounsworth" initials="M." surname="Ounsworth"/>
            <author fullname="J. Gray" initials="J." surname="Gray"/>
            <date month="July" year="2025"/>
            <abstract>
              <t>This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocol (CMP). Protocol messages are defined for X.509v3 certificate creation and management. CMP provides interactions between client systems and PKI components such as a Registration Authority (RA) and a Certification Authority (CA).</t>
              <t>This document adds support for management of certificates containing a Key Encapsulation Mechanism (KEM) public key and uses EnvelopedData instead of EncryptedValue. This document also includes the updates specified in Section 2 and Appendix A.2 of RFC 9480.</t>
              <t>This document obsoletes RFC 4210, and together with RFC 9811, it also obsoletes RFC 9480. Appendix F of this document updates Section 9 of RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9810"/>
          <seriesInfo name="DOI" value="10.17487/RFC9810"/>
        </reference>
        <reference anchor="RFC5480" target="https://www.rfc-editor.org/info/rfc5480" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5480.xml">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC3339" target="https://www.rfc-editor.org/info/rfc3339" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-acme-profiles" target="https://datatracker.ietf.org/doc/html/draft-ietf-acme-profiles-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-acme-profiles.xml">
          <front>
            <title>Automated Certificate Management Environment (ACME) Profiles Extension</title>
            <author fullname="Aaron Gable" initials="A." surname="Gable">
              <organization>Internet Security Research Group</organization>
            </author>
            <date day="28" month="August" year="2026"/>
            <abstract>
              <t>This document defines how an ACME Server may offer a selection of different certificate profiles to ACME Clients, and how those clients may indicate which profile they want.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-acme-profiles-02"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert" target="https://datatracker.ietf.org/doc/html/draft-ietf-cose-cbor-encoded-cert-20" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-cbor-encoded-cert.xml">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>University of Glasgow</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>IN Groupe</organization>
            </author>
            <author fullname="Lijun Liao" initials="L." surname="Liao">
              <organization>NIO</organization>
            </author>
            <date day="30" month="June" year="2026"/>
            <abstract>
              <t>This document specifies a CBOR encoding of X.509 certificates. The resulting certificates are called C509 certificates. The CBOR encoding supports a large subset of RFC 5280 and common certificate profiles, and it is extensible. Two types of C509 certificates are defined. One type is an invertible CBOR re-encoding of DER-encoded X.509 certificates with the signature field copied from the DER encoding. The other type is identical except that the signature is computed over the CBOR encoding instead of the DER encoding, thereby avoiding the use of ASN.1. Both types of certificates have the same semantics as X.509 while providing comparable size reduction. This document also specifies CBOR-encoded data structures for certification requests and certification request templates, new COSE headers, as well as a TLS certificate type and a file format for C509. This document updates RFC 6698 by extending the TLSA selectors registry to include C509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-20"/>
        </reference>
        <reference anchor="I-D.ietf-acme-device-attest" target="https://datatracker.ietf.org/doc/html/draft-ietf-acme-device-attest-10" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-acme-device-attest.xml">
          <front>
            <title>Automatic Certificate Management Environment (ACME) Device Attestation Extension</title>
            <author fullname="Brandon Weeks" initials="B." surname="Weeks">
              <organization>Google Inc</organization>
            </author>
            <author fullname="Ganesh Mallaya" initials="G." surname="Mallaya">
              <organization>AppViewX Inc.</organization>
            </author>
            <author fullname="Sven Rajala" initials="S." surname="Rajala">
              <organization>Keyfactor</organization>
            </author>
            <author fullname="Corey Bonnell" initials="C." surname="Bonnell">
              <organization>TurboLight Solutions</organization>
            </author>
            <author fullname="Ryan Hurst" initials="R." surname="Hurst">
              <organization>Peculiar Ventures</organization>
            </author>
            <date day="9" month="August" year="2026"/>
            <abstract>
              <t>This document specifies new identifiers and a challenge for the Automatic Certificate Management Environment (ACME) protocol which allows validating the identity of a device using attestation. This document updates RFC 8555 to enable a privacy-preserving mode for the identifiers defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-acme-device-attest-10"/>
        </reference>
        <reference anchor="I-D.ietf-acme-rats" target="https://datatracker.ietf.org/doc/html/draft-ietf-acme-rats-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-acme-rats.xml">
          <front>
            <title>Automated Certificate Management Environment (ACME) Remote Attestation Identifier and Challenge Type</title>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Cryptic Forest Software, Ltd</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works Inc</organization>
            </author>
            <date day="1" month="March" year="2026"/>
            <abstract>
              <t>This document describes an approach where an ACME Server can challenge an ACME Client to provide Evidence, Endorsements, or Attestation Result according to the Remote ATtestation procedureS (RATS) framework in any format supported by the Conceptual Message Wrapper (CMW). The ACME Server can optionally challenge the Client for specific claims that it wishes attestation for.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-acme-rats-01"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-pq-composite-kem" target="https://datatracker.ietf.org/doc/html/draft-ietf-lamps-pq-composite-kem-20" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lamps-pq-composite-kem.xml">
          <front>
            <title>Composite ML-KEM for use in X.509 Public Key Infrastructure</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>OpenCA Labs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>Bundesdruckerei GmbH</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <date day="26" month="August" year="2026"/>
            <abstract>
              <t>This document defines combinations of US NIST ML-KEM in hybrid with traditional algorithms RSA-OAEP, ECDH, X25519, and X448. These combinations are tailored to meet security best practices and regulatory guidelines. Composite ML-KEM is applicable in any application that uses X.509 or PKIX data structures that accept ML- KEM, but where the operator wants extra protection against breaks or catastrophic bugs in ML-KEM.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-kem-20"/>
        </reference>
        <reference anchor="RFC2986" target="https://www.rfc-editor.org/info/rfc2986" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2986.xml">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC7800" target="https://www.rfc-editor.org/info/rfc7800" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7800.xml">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8747" target="https://www.rfc-editor.org/info/rfc8747" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8747.xml">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC9449" target="https://www.rfc-editor.org/info/rfc9449" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9449.xml">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC7517" target="https://www.rfc-editor.org/info/rfc7517" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
      </references>
    </references>
    <?line 1178?>

<section anchor="appendix-a">
      <name>Design Decisions and Alternatives Considered</name>
      <t>This appendix documents the design decisions made in this document and the alternatives that were considered but not adopted. It is provided for informational purposes to help the Working Group understand the rationale behind the chosen design.</t>
      <section anchor="comparison-with-csr-based-issuance">
        <name>Comparison with CSR-based Issuance</name>
        <t>The following table summarizes the key differences between the traditional CSR-based issuance flow and the <tt>pop</tt> authorization flow defined in this document:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Dimension</th>
              <th align="left">CSR-based Flow</th>
              <th align="left">pop Authorization Flow</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Public key submission</td>
              <td align="left">In CSR at finalization</td>
              <td align="left">In <tt>newOrder</tt> as <tt>popKey</tt></td>
            </tr>
            <tr>
              <td align="left">Proof of possession</td>
              <td align="left">CSR self-signature</td>
              <td align="left">
                <tt>pop-01</tt> challenge</td>
            </tr>
            <tr>
              <td align="left">Binding time</td>
              <td align="left">Finalization</td>
              <td align="left">Authorization phase</td>
            </tr>
            <tr>
              <td align="left">Substitution attack surface</td>
              <td align="left">CSR can be replaced at finalization</td>
              <td align="left">None (key fixed at order creation)</td>
            </tr>
            <tr>
              <td align="left">Supported key types</td>
              <td align="left">Signature-capable only</td>
              <td align="left">All types (signature + KEM)</td>
            </tr>
            <tr>
              <td align="left">PKCS#10 CSR ASN.1/DER encoding</td>
              <td align="left">Required</td>
              <td align="left">Eliminated (popKey remains DER SPKI)</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="historical-context-why-csr-was-chosen-and-why-it-is-no-longer-necessary">
        <name>Historical Context: Why CSR Was Chosen and Why It Is No Longer Necessary</name>
        <t>ACME's original requirement for a PKCS#10 CSR at finalization was driven by two pragmatic considerations: compatibility with existing PKI toolchains and HSM workflows, and the convenience of using the CSR's self-signature as proof of possession.</t>
        <t>Both rationales have since eroded. The CA/Browser Forum Baseline Requirements do not mandate PKCS#10 CSRs for certificate issuance; they require validation of domain control, but not a separate proof-of-possession check. The same holds for the standard ACME flow: the CSR is the client's statement of the key it wants certified, and RFC 8555 does not make verification of the CSR self-signature a gated condition. ACME is now the Web PKI automation standard, so backward compatibility with legacy CSR workflows matters less. Post-quantum KEM keys cannot produce self-signatures, and the CSR-based PoP leaves a semantic window: the public key is not bound to the order until finalization, a property that matters in deployments with untrusted proxy components (see Section 7.1).</t>
        <t>The <tt>pop</tt> authorization design addresses this longstanding constraint by replacing the CSR-based PoP with an ACME-native mechanism aligned with the principle that the order is the authoritative source of client-declared certificate parameters.</t>
      </section>
      <section anchor="the-two-paths-for-pop-and-why-order-level-pop-was-rejected">
        <name>The Two Paths for PoP and Why Order-Level PoP Was Rejected</name>
        <t>During the development of this document, a key architectural question was whether proof-of-possession should be modeled as a new authorization type or as an order-level condition verified at finalization. In WG discussion, Ilari Liusvaara observed that two paths existed for implementing PoP in ACME:</t>
        <ul spacing="normal">
          <li>
            <t><strong>(a) New identifier type with dedicated authorization:</strong> This approach reuses the existing ACME authorization state machine. The <tt>pop</tt> identifier requests a dedicated authorization whose sole challenge is <tt>pop-01</tt>. The order becomes <tt>ready</tt> only after all authorizations, including the <tt>pop</tt> authorization, are <tt>valid</tt>.</t>
          </li>
          <li>
            <t><strong>(b) Public key as an order field:</strong> This approach adds <tt>popKey</tt> and a PoP challenge URL directly to the order object. The PoP proof is submitted at finalization, alongside or instead of a CSR.</t>
          </li>
        </ul>
        <t>The Working Group consensus favored path (a) for several reasons. It preserves the OR-semantics of existing identifier authorizations, avoids a new class of order-level wait condition, and leaves a clean integration path for future extensions. It also eliminates the late-binding semantic window that remains open in path (b) and in the traditional CSR flow, because the PoP proof must complete before the order becomes <tt>ready</tt>; that window matters in deployments with untrusted proxy components (see Section 7.1).</t>
        <t>Two order-level variants of path (b) were discussed and rejected:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Order-level field without authorization:</strong> adding a <tt>popState</tt> field to the order object to track PoP status. This would bypass the standard ACME authorization state machine, require special-case logic in order processing, and force clients to handle PoP differently from other verifications, increasing implementation complexity.</t>
          </li>
          <li>
            <t><strong>Order-level PoP verified at finalization:</strong> adding a <tt>keyPopNonce</tt> field to the order and requiring the client to submit the PoP proof at finalization. When the order transitions to <tt>ready</tt>, the server has not yet verified that the client possesses the private key corresponding to the declared public key; <tt>ready</tt> therefore loses its semantic meaning that all verifications required for issuance have been completed. The temporal separation creates a window in which the binding between the declared public key and the proof of possession could be subverted. While the protocol could be specified to prevent direct replacement of the public key at finalization, this does not eliminate the underlying architectural weakness.</t>
          </li>
        </ul>
        <t>The <tt>pop</tt> authorization design avoids both issues: all verifications, including proof-of-possession, are completed before the order becomes <tt>ready</tt>, preserving the semantic meaning of the <tt>ready</tt> state. The client experience remains uniform, as all verifications are represented as authorizations.</t>
      </section>
      <section anchor="why-a-dedicated-authorization-not-a-challenge-attached-to-certificate-identifier-authorizations">
        <name>Why a Dedicated Authorization, Not a Challenge Attached to Certificate-Identifier Authorizations?</name>
        <t>The design of attaching a PoP challenge to each identifier authorization was considered and rejected for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t><strong>OR-semantics violation:</strong> ACME authorizations have OR-semantics (any one challenge succeeds -&gt; authorization valid). A PoP challenge attached to an identifier authorization would require AND-semantics (identifier challenge AND PoP challenge) to achieve the desired security property. This would fundamentally change the semantics of existing authorization processing.</t>
          </li>
          <li>
            <t><strong>Multi-identifier inefficiency:</strong> An order with N identifiers would require N separate PoP challenges, each proving the same private key possession. This is inefficient and scales poorly.</t>
          </li>
          <li>
            <t><strong>Semantic confusion:</strong> Mixing identifier control validation and private key possession proof in the same authorization conflates two logically independent concerns.</t>
          </li>
        </ul>
      </section>
      <section anchor="why-the-pop-identifier-value-is-the-empty-string">
        <name>Why the <tt>pop</tt> Identifier Value Is the Empty String</name>
        <t>The <tt>pop</tt> identifier's value is the empty string to explicitly indicate that it is not a certificate identifier. This avoids any confusion with DNS names, email addresses, or other identifiers that could appear in the issued certificate. An empty value is also consistent with the precedent set by <xref target="I-D.ietf-acme-rats"/> for auxiliary identifiers that do not represent a certificate identity.</t>
      </section>
      <section anchor="popkey-encoding-and-future-evolution">
        <name><tt>popKey</tt> Encoding and Future Evolution</name>
        <t>The <tt>popKey</tt> field is defined as a DER-encoded SubjectPublicKeyInfo (SPKI) <xref target="RFC5280"/>, while the document's secondary motivation is to reduce encoding complexity for constrained clients. This tension is deliberate: a pragmatic tradeoff between cryptographic consistency and ecosystem compatibility.</t>
        <t><strong>Current Design Choice: DER SPKI</strong></t>
        <t>The decision to use DER SPKI for <tt>popKey</tt> is based on the following considerations:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Certificate Format Compatibility:</strong> The X.509 certificates issued by the ACME server contain the public key in DER SPKI format. Accepting the public key in the same format from the client allows the server to use it directly for certificate issuance, avoiding error-prone format conversions that could introduce security vulnerabilities.</t>
          </li>
          <li>
            <t><strong>Ecosystem Compatibility:</strong> The DER SPKI format is the standard public key representation for interactions with HSMs, PKCS#11 tokens, and existing CA software. Requiring clients to submit public keys in this format maximizes interoperability with existing PKI infrastructure.</t>
          </li>
          <li>
            <t><strong>Scope of "ASN.1-Free":</strong> The "ASN.1-free" claim in this document is scoped to the certificate request process: the client no longer needs to construct a full PKCS#10 CSR with its associated ASN.1 structures and signing logic. The SPKI encoding of the public key remains necessary for compatibility with the X.509 certificate format and existing PKI toolchains. This distinction is reflected in the revised Abstract and Section 1.1.</t>
          </li>
          <li>
            <t><strong>C509 Interoperability:</strong> For C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, the server MUST verify cryptographic equivalence between the DER-encoded <tt>popKey</tt> and the CBOR-encoded key in the issued certificate, rather than requiring byte-for-byte identity (see Section 6.2). This ensures compatibility with constrained environments while maintaining a single public key declaration format.</t>
          </li>
        </ol>
        <t><strong>Future Evolution: Alternative Public Key Encodings</strong></t>
        <t>The current design is not intended to be the final word on public key encodings for CSR-less ACME. As the ecosystem evolves and deployment experience with non-DER formats matures, future revisions or extensions could consider alternative encodings:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>JWK Support:</strong> Accepting JSON Web Key (JWK) format for <tt>popKey</tt> would align with the JOSE ecosystem used elsewhere in ACME <xref target="RFC7515"/> <xref target="RFC7517"/> and eliminate ASN.1/DER processing for clients that already handle JWK. The server would need to convert JWK to DER SPKI before certificate issuance. This would particularly benefit clients in JavaScript environments or those already integrating with OAuth/OpenID Connect workflows.</t>
          </li>
          <li>
            <t><strong>C509 Native CBOR Encoding:</strong> For deployments exclusively using C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, accepting the C509 CBOR encoding of the public key directly would enable a fully CBOR-native issuance path. This would require the server to understand C509's optimized public key representations (e.g., compressed EC points, CBOR-encoded RSA parameters). Such an extension would eliminate the final remaining ASN.1/DER dependency for C509-only deployments, creating a truly end-to-end CBOR-based certificate issuance flow.</t>
          </li>
        </ol>
        <t>These alternatives are not adopted in this document due to the additional server-side complexity, the need for widespread implementation experience, and the current lack of deployment data. The Working Group may consider them in future extensions once the ecosystem has matured and deployment experience with C509 and other non-DER formats has been gained. Any such extension must define unambiguous conversion rules between the alternative encoding and the DER SPKI format required for X.509 certificate issuance.</t>
      </section>
    </section>
    <section anchor="appendix-b">
      <name>Document Revision History (Informative)</name>
      <t><strong>draft-geng-acme-public-key-00:</strong> Initial publication. Introduced the concept of a public key challenge as an alternative to CSR-based finalization.  Proposed multiple challenge variants bound to different identifier types.</t>
      <t><strong>draft-geng-acme-public-key-01:</strong> Minor editorial refinements. Clarified scope and relationship with existing ACME challenge types.</t>
      <t><strong>draft-geng-acme-public-key-02:</strong> Refined challenge attachment model. Addressed early feedback on identifier binding semantics.</t>
      <t><strong>draft-geng-acme-public-key-03:</strong> Structural reorganization of challenge object fields. Improved alignment with RFC8555 terminology.</t>
      <t><strong>draft-geng-acme-public-key-04:</strong> Expanded challenge variants to six distinct types covering both PoP and identifier control validation. Introduced the pk_binding object in newOrder request.  First draft to reference public key identity authentication protocols.  Last combined version before functional split per IETF 125 feedback.</t>
      <t><strong>draft-geng-acme-public-key-05:</strong> Functional split: "pk-01" now focuses exclusively on proof-of-possession. Identifier control validation moved to draft-geng-acme-idp-01. Challenge consolidation into single pk-01 challenge. Introduced pop_mode negotiation and ALPN identifier acme-pk/1.</t>
      <t><strong>draft-geng-acme-public-key-06:</strong> Refined pop_mode semantics. Added comprehensive security considerations. Introduced initial KEM key support framework. WG adoption call issued (April 2026) did not pass due to architectural concerns regarding challenge semantics and insufficient community support.</t>
      <t><strong>draft-geng-acme-public-key-07:</strong> Removed <tt>pop_mode</tt>. "pk-01" became exclusively a proof-of-possession challenge. Added <tt>popKeyAccepted</tt> and <tt>popSupported</tt> fields. Established IANA "ACME PoP Key Algorithms" registry. Added KEM revocation guidance.</t>
      <t><strong>draft-ietf-acme-pop-00:</strong> Complete redesign: PoP becomes a dedicated <tt>pop</tt> authorization (one <tt>pop-01</tt> challenge per order) rather than a challenge attached to each identifier authorization, dropping the multi-authorization key-consistency checks and the <tt>popKeyAccepted</tt> echo signal; <tt>pop</tt> authorizations are order-bound and non-reusable (Section 4.3). Renames <tt>pk-01</tt> to <tt>pop-01</tt> and <tt>nonce</tt> to <tt>popNonce</tt>, keeps <tt>popSupported</tt> (Section 3.4), defines <tt>badPopKey</tt>, and replaces <tt>kdf_version</tt> with domain-separation versioning (Section 5.5). Adds composition rules for STAR (Sections 3.4.1, 10.4), C509 (Section 10.3), profiles, device attestation, RATS (Section 3.5), and composite KEM keys (Section 5.2). Expands security analysis: KEM+STAR single control point (Section 7.5) and non-repudiation of KEM proofs (Section 7.6); resolves the open questions of draft-geng-acme-public-key-07 (Appendix A).</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y963Yb2XUu+r/H6HeoTf9oUgEgXiS1RG0nYVOUxVgXHlFO
OzvJMIpAkawIQMFVBVJwSxnnHc4bnic5877mqgtIyZ3sZOzTcewmWVXrNte8
z28Oh8Pvv6vzepYdJltHq7qYp3U2TY6zss4v8wn8kLxJF+lVNs8WdXKyuMnL
YkH/vn10/OZkJzn5VGeLKi8WyWVRJmdlUVwO4T9nRVVlFf5+6/vv0ouLMrvB
AeCV5Kw4S46v09ksW1xl8Fcc5Koo14dJVU+//65aXcxzevPDegmzOj358PL7
7/JleZjU5aqq93d3n+3uf//d999Ni8kincMj0zK9rId5Vl8O08k8Gy6L5XB3
9/vvVsspfLs6TN6/PE6ePn782H+9tq8nyW+SdFYVMMF8Mc2WGfzXot4aJFvZ
NK+LMk9n+MPp0U/wP7DIrdP3H17CxBer+UVWHsJEYBT4n0mxqGAvVhXNNMMp
wofLLD1Mjt6fHH3/3W1Rfrwqi9USfvE1W/0zvJcvrpLf4bvff/cxW8OXpjBi
Mkz8f91kixVO5DdJIsP8/Dv6idfa+Az8fp7mM3zo77NP6Xw5y0aTYk5/SMvJ
9WFyXdfL6vDhQ/fXh/LFq7y+Xl3gjuGu5zfr4e3Vw0VW4xKH+QJmAhu3Hq7T
xdUWvjDDg6jhef2me2/EHxvlRc8XHroDxle6nxpd1/PZFu56uqqvCzyYJBni
fyUJ08nLDFcP/8W/LMqrw+Sf8sUtvJycLupsNsuvcL8/ZJPrRTErrtb8YEb7
xP8On0zgoatL+P+/X/PLvG3618e7P+4+efb3f/6z/jqaw1m6WK+Sn1duCq9W
6W2Wh1HzrPLjJrerJb508PfX9GDnZ1/nuIg/5ulXfPeyTBcfR5+AvPHlTV//
Y76AK5st3Mc/4F08qnRA+eQynRXVaAKP/j1d1hQe4C/i/8EFqcv8AkgfDwf/
b1GUcAvym4x29+Xp2flwf/dAtlrZ0ptiupplw9dpXeeTbPhTWsG1+X22Hp4s
JumyWgFtIf95A+tMF3k1T7bfvB7+/uTNzhZ/h65nsr+7fzDcPRjuP+XfLlcX
s7y6hgucvKUPpDMgggoGXcFNLC6T8zpdTNNyWiXwv44mku23p+cfdvgrqzIP
92RxM4OvViOYRD26Km4e4r/gbx7iyh7iayP8txGscbScXro1P7rPml/kcFNg
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

-->

</rfc>
