<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-geng-acme-public-key-03" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="ACME PK Challenge">Automated Certificate Management Environment (ACME) Extension for Public Key Challenges</title>
    <seriesInfo name="Internet-Draft" value="draft-geng-acme-public-key-03"/>
    <author initials="F." surname="Geng" fullname="Feng Geng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>gengfeng@huawei.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>
    <date year="2026" month="January" day="06"/>
    <workgroup>Automated Certificate Management Environment Working Group</workgroup>
    <keyword/>
    <keyword/>
    <keyword/>
    <abstract>
      <?line 54?>

<t>This document specifies an extension to the ACME protocol <xref target="RFC8555"/> that enables Acme server to use the public key authentication protocol to verify that the real certificate applicant behind the Acme client has control over the identity and to ensure strong consistency between the identity in the challenge phase and the identity of the final certificate issued. This document also proposes a process extension for removing CSR at the certificate application phase.</t>
    </abstract>
  </front>
  <middle>
    <?line 58?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The ACME protocol balances the verification of  control over identifiers such as domain names and the verification of subject ownership (user/device), ensuring the authenticity of entity identities and issuance accuracy during automated certificate application processes. This document proposes a more general ACME challenge type oriented towards verifying user/device ownership. The challenge enables the Acme server to verify the control of the identity of the certificate applicant behind the Acme client via a public key authentication protocol, truly realizing what the Acme WG Charter describes as "The processing must also confirm that the requesting party has access to the private key that corresponds to the public key that will appear in the certificate".</t>
      <t>On the other hand this challenge avoids public key replacement attacks. Typically, the Acme client acts as a unified entry point for automated certificate requests and communicates with the Acme server. In the process of requesting a certificate for the user/device, the Acme server does not verify whether the public key in the Certificate Signing Request (CSR) is owned by the applicant, although it can verify the applicant's control over an identifier through the challenge phase. Because we recognize that the act of submitting a CSR does not truly prove control over the private key contained within that CSR. This mechanism has the risk of public key replacement, i.e., an untrustworthy or compromised Acme client (such as Resellers or other agents) may replace the public key in the CSR after completing the challenge, so that the applicant who completes the challenge is not the same as the user corresponding to the public key of the issued certificate. This ultimately allows certificates to be issued to unrelated or malicious entities.</t>
      <t>This document proposes a new ACME challenge type pk-01 that verifies the identity of the applicant by means of public key authentication and is directly bound to the authorization process. The Acme server requires that the public key in the challenge phase be consistent with the public key in the final CSR submission, eliminating the risk of public key replacement attacks. Considering the complicated task of CSR parsing, this document supplements a simplified process of removing CSR (see Section 8), which directly issues a certificate after successful challenge phase, realizing the consistency of the public key in the challenge phase and in the issued certificate.</t>
      <t>More critically, the challenge is designed for the Acme server to work in coordination with a trusted identity provider (IdP), which endorses the relationship between the applicant and its public key. Enables Acme server to recognize the real applicant behind through Acme client, and establishes a complete chain of trust from Acme server to applicant. This trust binding mechanism is particularly important in the scenario of issuing certificates for user/device, ensuring that the certificate clearly identifies the legitimacy of the holder of the identifier.</t>
      <t>Note that this document requires an IdP that records public keys. The IdP is the trust center for the automated certificate request process, which stores the trusted user's public key and possibly the identity information corresponding to the public key. Specific identity information can be selected based on the actual operations. Before the certificate request process, the user's public key should have been entered into the IdP in some way, such as self-registration by the user or LDAP-based import.</t>
      <t>It is worth noting that the existing external account binding in ACME <xref target="RFC8555"/> is primarily used to authenticate Acme client account identitie and is not the same as the validation of certificate applicant identities proposed in this document. The main purpose of this document is to issue certificates to "applicant who actually pass the challenge", ensuring that the public key of the applicant who completes the challenge and the public key of the certificate issued are consistent. This document strictly corresponds to the concept of “Prohibit the reuse of Acme client public key to request certificate” in the standard ACME process. If the Acme client's public key is used to apply for a certificate, it is equivalent to an identity impersonation/injection attack by the Acme client on the certificate applicant. The pk-01 challenge presented in this document avoids this very problem by allowing the Acme server to "see" the actual applicant behind the Acme client, enhancing security.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</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>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>The standard ACME automated certificate application process can be summarized in three phases: ACME account management, challenge phase and certificate application phase. The current decoupled design of the three-part framework brings many benefits, but there are also security issues. The public key of the applicant who completes the challenge in phase 2 and the public key in the issued certificate in phase 3 is not consistently bound. Problems can occur where the users in the challenge phase are not the same as the users who actually receive certificates.</t>
      <t>The content of ACME application certificates can be categorized into resources and user/device. The resource category is mainly server-side resources (e.g., domain names), such as dns-01<xref target="RFC8555"/>, http-01<xref target="RFC8555"/><xref target="RFC8738"/>, tls-alpn-01<xref target="RFC8737"/><xref target="RFC8738"/> and so on. The user/device category is mainly such as sso-01 <xref target="I-D.biggs-acme-sso"/>, device-attest-01 <xref target="I-D.ietf-acme-device-attest"/>, and e-mail-reply-00 <xref target="RFC8823"/> and so on.</t>
      <section anchor="web-pki-pkica-reseller">
        <name>Web-PKI - PKI/CA Reseller</name>
        <t>When issuing certificates for resources, the applicant is required to demonstrate resource control (e.g., dns-01, http-01, etc.).  The applicant controls the resource and needs to grant Acme client privileges to directly prove its ownership of the resource to complete the interrogation, in exchange for Acme server's trust, so as to obtain the certificate.</t>
        <t>In PKI/CA reseller scenarios (As shown in the figure on the right，such as SSL.com generating ACME certificates for reseller customers), the PKI/CA reseller acts as an intermediary selling digital certificates, serving as the Registration Authority (RA) between users and the CA. Resellers receive users' CSRs, then forward the CSRs to the CA to complete the certificate issuance process. During this process, instances of dishonest resellers may occur, including issues such as fraudulent applications.</t>
        <figure anchor="fig-pk-challenge-usecase-1">
          <name>PKI/CA Reseller Use Case</name>
          <artwork><![CDATA[
                          │                                 
                          │          ┌──────────────┐       
         ┌────────────┐   │          │    PKI/CA    │       
         │   PKI/CA   │   │          │  (SSL.com)   │       
         └────────────┘   │          └──────────────┘       
                ▲         │               ▲                 
              /           │                 \               
             /            │                  \  ┌──────────┐
            /             │                   \ │ Reseller │
           /              │                    ▼│ (proxy)  │
          /               │                    ▲└──────────┘
         /                │                   /             
        ▼                 │                  /              
┌─────────────┐           │                 ▼               
│ Application │           │      ┌─────────────┐            
└─────────────┘           │      │ Application │            
│ ACME client │           │      └─────────────┘            
└─────────────┘           │      │ ACME client │            
                          │      └─────────────┘            
                          │                                 
]]></artwork>
        </figure>
      </section>
      <section anchor="iot-pki-remote-control-for-automobiles">
        <name>IoT-PKI - Remote Control for Automobiles</name>
        <t>In remote control of vehicles scenarios, it is necessary to apply for a remote control certificate for the device in order to control the automobile. This process involves the vehicle owner's terminal app, the vehicle cloud TSP (Telematics Service Provider), the automobile, and the ACME server (PKI/CA). The ACME client can be deployed on the terminal app or the vehicle cloud TSP.</t>
        <t>Vehicle cloud TSP provides identity assertions for the terminal app, and the Acme server trusts the Acme client. TSP serves as the unified identity authentication center within the automotive enterprise. The terminal app and TSP belong to Trust Domain A, while the ACME server (PKI/CA) that ultimately issues certificates belongs to Trust Domain B. This involves requesting device certificates across trust domains. The terminal app in Trust Domain A ultimately needs to connect to the automobile in Trust Domain B to enable remote control.</t>
        <t>However, the terminal app cannot fully trust the Acme client, as it holds the private key itself and does not grant external access to it. Due to vehicle safety requirements, it is essential to verify that the owner's terminal app holds the corresponding key control rights for the certificate.</t>
        <t>Currently, the Acme server cannot “see” the actual terminal app behind the ACME client. Additionally, there exists the possibility that the Acme client could be compromised, allowing an attacker to replace the public key information in the CSR with that of another malicious user to request a certificate from the ACME server.</t>
        <figure anchor="fig-pk-challenge-usecase-2">
          <name>Remote Control for Automobiles</name>
          <artwork><![CDATA[
┌────────────────────────────┐                   ┌────────────────┐
│ Telematics Service Provider│                   │ Automotive PKI │
│         (IdP_A)            │ ◄──────────────►  │   (IdP_B)      │
└────────────────────────────┘                   └────────────────┘
             ▲                                           ▲         
             │                                           │         
             │                                           │         
             │                                           │         
       ┌─────┴──────┐                             ┌─────────────┐  
       │Terminal app├─?─?─?─?─?─?─?─?─?─?─?─?─?── │  Automobile │  
       └────────────┘                             └─────────────┘  
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document proposes the pk-01 challenge to construct a complete chain of trust from the Acme server to the applicant, so that certificates can be issued to the applicants (users/devices) that actually pass the challenge. Acme server indirectly verifies the authenticity of PK_2 behind the Acme client proxy and who holds control of SK_2 by trusting IdP_B. A complete chain of trust from the Acme server to the applicant is constructed so that the Acme server verifies the control of the identity by the applicant behind the Acme client through a public key authentication protocol.</t>
      <figure anchor="fig-pk-challenge-defense">
        <name>Trust chain from Acme server to applicant</name>
        <artwork><![CDATA[
    ┌───────────┐          PK-01           ┌───────────┐
    │User's IdP │# # # # # # # # # # # # # │ACME Server│
    │ (IdP_B)   │                          │  (IdP_A)  │
    └───────────┘                          └───────────┘
        #                                        ▲      
         #                                      /       
          #                                    /        
        PK-01                                 /         
            #                                ▼          
             #─────────────┐      ┌────────────┐        
             │ Application │      │ACME Client │        
             │ (SK_2,PK_2) │      │(SK_1,PK_1) │        
             └─────────────┘      └────────────┘                      
]]></artwork>
      </figure>
      <t>Regarding the issue in Section 3.1, the applicant need not grant the Acme client privileges or trust equivalent to resource control. Instead, it only needs to provide the Reseller with the minimum necessary trust required to fulfill its responsibility of applying for certificates on behalf of the applicant. The pk-01 challenge verifies the identity of the applicant through public key authentication, directly binding it to the authorization process. This ensures that the applicant who completes the challenge matches the applicant associated with the public key issuing the certificate, thereby eliminating public key substitution attacks. The entire process establishes an end-to-end connection from the ACME server to the applicant themselves, preventing resellers from tampering with the process.</t>
      <t>Regarding the issue in Section 3.2, the ACME server via pk-01 challenge can verify whether the terminal application itself holds control over the private key corresponding to the certificate. This process implements cross-domain end-to-end security between the terminal app and the PKI/CA (ACME server), preventing attacks from both external and internal sources.  It is applicable and relevant for authentication scenario use cases between cross-trust domains.</t>
      <t>The pk-01 challenge presented in this document prevents public key replacement attacks on the other hand. With the proposed new identifiers, the consistency of the pk in the challenge phase and the pk in the final issued certificate is guaranteed against public key replacement attacks.</t>
    </section>
    <section anchor="extensions-identifier-types">
      <name>Extensions -- Identifier Types</name>
      <t>New identifier types are proposed in this document to ensure strong consistency between the identity corresponding to the final certificate issued and the identity of the certificate applicant. And the public key authentication protocol is utilized to provide strong security for the authentication process.</t>
      <t>The identifier pk can be used in lightweight binding cases, such as user-bound devices, where the Acme server needs to verify the consistency of the pk identifier in the final certificate issuance phase and in the challenge phase. The identifiers csr and selfsign-cert can be used in cases where specific identity information is bound (including pk, subject, etc.). The Acme server needs to verify the consistency of this identifier value during the final certificate issuance phase to prevent the identity information from being tampered with midway. Especially when csr is specified as the identifier, the applicant can send the csr when submitting the certificate order without submitting the csr file again in the final certificate application phase, which corresponds to the simplified process of revocation of csr in Section 8. Implementations MUST NOT use the challenge of type pk-01 as options to validate a type identifier other than the following.</t>
      <t><tt>
"identifier": { "type": "pk", "value":"MIGfMA0GC***GbQIDAQAB"}
"identifier": { "type": "selfsign-cert", "value":"MIIHSDCC***AU1GH3xQ="}
"identifier": { "type": "csr", "value":"MIICljCCA***RL64+taHbP"}
</tt></t>
    </section>
    <section anchor="extensions-pk-01-challenge-types">
      <name>Extensions -- pk-01 Challenge Types</name>
      <t>The pk-01 challenge type requires the client to access the specified “pk-url” to start the challenge and complete the verification of the corresponding private key control of the declared public key. A challenge of this type MUST include all required fields described in section 8 of <xref target="RFC8555"/>. In addition, the following fields are defined for this specific type of challenge:</t>
      <t>pk_url (required, string): The URL to start the pk-01 challenge type process. The server must include enough information in the URL to allow the request to be associated with a specific challenge and to be able to point to a specific PK provider or public key server.</t>
      <t>pk_provider (optional, string): The domain of the PK provider relied upon for this challenge. Acme server MAY rely upon any number of PK providers and public key servers, however each MUST be represented as a different entry in the challenge array. The applicant can use this field to differentiate the list of providers and select the most appropriate one. If this field does not exist, the Acme server's default identity provider is used. The server MUST NOT present more than one pk-01 challenge with the same pk_provider value in a single authorization, including values for unprovided fields.</t>
      <t>process options (optional, string): Indicate options for the ACME process. The Acme server provides a choice between the standard ACME protocol flow (standard) or a removed CSR file (simplified). If this field is not exist, the ACME standard process is executed by default.</t>
      <t>The server MUST sets the status of the challenge to processing after receiving a response from the client within the validity period. If the client completes the proof of ownership of the private key corresponding to public key and the generated identity assertion validates the declared identifier, then the status of the challenge is set to "valid". If the server fails to validate the public key against the private key control or fails to validate the declared identifier, the status of the challenge will be set to "invalid".</t>
      <t><tt>
{
  "type": "pk-01",
  "url": "https://example.org/acme/chall/abc123_defg456",
  "status": "pending",
  "pk_url": "https://example.org/acme/start-pk",
  "pk_provider": "https://pk-identity-provider.org/",
  "standardization": "standard" | "simplified",
}
</tt></t>
    </section>
    <section anchor="identifier-validation-challenges">
      <name>Identifier Validation Challenges</name>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>The general process of the PK challenge is illustrated by the standard ACME certificate issuance sequence. For convenience, it is divided into three phases: certificate application, public key authentication and certificate issuance phase.</t>
        <t>In the first phase, the client submits the certificate request, which carries the public key information at the start. The server responds to the client that it must satisfy authentication. The client can select one of the various authentication methods it supports and inform the server. The server returns what needs to be accomplished for this authentication method. This content will contain the "start URL".</t>
        <figure anchor="fig-pk-challenge-overview">
          <name>Overview of the pk-01 Challenge Flow</name>
          <artwork><![CDATA[
Client                                                    ACME Server

​~~~~~~~~~~~~~~~~~~~~~~ Certificate Application ~~~~~~~~~~~~~~~~~~~~~~~~~

request new order(pk)           -------->
                                <--------           required authorizations
request authorization           -------->
                                <--------       PK challenge with start URL

​~~~~~~~~~~~~~~~~~~~~ public key authentication ~~~~~~~~~~~~~~~~~~~~~~~~~~

request on PK start URL         --------->
                                                 ACME redirect to provider
                                                    authentication request

             provider authenticates client (not shown here)

provider redirect to ACME       --------->
identity assertion
                                               validate provider assertion
                                                 record challenge as valid
                                <---------              redirect to client

​~~~~~~~~~~~~~~~~~~~~ certificate issuance ~~~~~~~~~~~~~~~~~~~~~~

request challenge              ----------->
                               <----------                           valid
request finalize (CSR)         ----------->        (Verify pk consistency)
                               <-----------                   finalize URL
finalize                       ----------->
                               <-----------                     certificate
]]></artwork>
        </figure>
        <t>In the second phase, the client performs a request for one of the authentication methods and the server responds to it. Among these may be one or more challenge of type pk-01, which can be used to start the process of authentication based on the web through different "start URL". The request redirects the client to the applicant and the IdP, which conducts the public key authentication protocol with the applicant. After successfully providing validation to the IdP, the Acme server records the associated challenge as validated (or not). Among them, the whitelisting mechanism can be supplemented here. Legitimate public key identities will be registered in advance at the Acme server to form a trusted list, and after the public key authentication protocol is passed, the public key identity will be signed by the IdP and then passed to the Acme server to verify the application authority of the public key (whether it is in the trusted list), thus restricting unauthorized public key identities.</t>
        <t>In the process of authentication, the process of this document is quite different from the way of sso. The authentication process is primarily authenticated through public key authentication protocols (e.g. aPAKE/Opaque<xref target="RFC9807"/>). The IdP here also needs to support the appropriate public key authentication protocols.</t>
        <t>The redirection to the client then indicates that the authentication process has been completed, at which point it can be demonstrated whether the applicant has the private key corresponding to the public key in the application order. The user's private key information is always private in this process and does not need to be provided to the agent. After completing the authentication, it redirects the client to the certificate request process.</t>
        <t>In the last phase, after completing authentication the client eventually submits the CSR. This document requires that the public key contained in the CSR must match the public key in the starting order. In this way, tampering with public key information can be avoided. Other processes are consistent with the standard process.</t>
      </section>
      <section anchor="public-key-authentication-order-fulfillment">
        <name>Public key authentication &amp; Order fulfillment</name>
        <t>Public key authentication is essentially authenticating the control of the corresponding private key of a public key and pk_url allows the client to initiate the public key authentication process. The server must accept GET requests for pk_url. Upon receiving such a request:</t>
        <ol spacing="normal" type="1"><li>
            <t>The Acme server receives the request and redirects it to the IdP. IdP instance holds the public key, e.g. IdP instances supporting the aPAKE/Opaque protocols.</t>
          </li>
          <li>
            <t>The IdP requires the requesting party to perform authentication to verify that it holds the private key corresponding to the public key. The IdP will include supported public key verification protocols in the verification request, protocols that include, but are not limited to (1) challenge public key signature and verify signature, (2) Opaque/AKE and (3) non-interactive zero-knowledge (NIZK) discrete logarithm equality (DLEQ) proof, etc. The client selects one of the protocols to perform the authentication process.</t>
          </li>
          <li>
            <t>After successfully authenticating the identity, the IdP returns the user's information and the logged-in device public key information to the Acme server. When the Acme server receives the request, it checks whether the device public key is consistent with the public key in the order. When the ACME server receives the request, it MUST check whether the device public key is consistent with the public key in the order. For identifiers of type csr and selfsign-cert, identity consistency checks are also required. The challenge is successful if the check passes.</t>
          </li>
        </ol>
        <figure anchor="fig-pk-authentication-overview">
          <name>Overview of the Public Key Authentication Flow</name>
          <artwork><![CDATA[
ACME Server                          Applicant                                       IdP

​~~~~~~~~~~~~~~~~~~~~~~~~~~~provider authenticates client ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ACME redirect to provider        ------------------------------------------------->

                                                    <---------            list of supported 
                                                        public key authentication protocols

                      select authentication protocol --------->        
                                           
verification        <----------------------------------------------- redirect to ACME Server
]]></artwork>
        </figure>
        <t>When the Acme server receives a response from IdP, it must validate it and update the appropriate challenge status. The server updates the challenge status to "valid" if the provider validation is successful, or to "invalid" if it is unsuccessful.</t>
        <t>In the case of public key verification, the IdP acts as the asserting party and conducts a public key authentication agreement with the applicant to obtain public key information and identity information about the subject (applicant). The Acme server acts as a relying party that receives identity information from the IdP. The Acme server verifies the consistency of the public key and the order public key after receiving the public key and identity information. For the identifiers of type csr and selfsign-cert, the identity consistency needs to be further checked on the basis again.</t>
        <t>The standard process, as defined in section 7.4 of <xref target="RFC8555"/>. Once the client has been authorized in all respects, it can proceed with the completion of the order. The client SHOULD use the public key declared in the order as the public key in the CSR. If the order identifier type is csr or selfsign-cert, the commonName, subjectAltName, etc. fields should be filled in the CSR. Then the CSR, encapsulated as specified, is submitted to the ACME server.</t>
        <t>The server needs to validate the order against the identifier after receiving a request from the client to complete the order. The client's request for order fulfillment can only be continued under the condition that all checks have been passed.</t>
      </section>
    </section>
    <section anchor="changes-to-the-finalize-request">
      <name>Changes to the Finalize Request</name>
      <t>Since the Acme server has already obtained the user/device's authenticated public key during the challenge phase, there is no need to send the CSR in the final phase, since the CSR no longer carries parts that are not present in other parts of the ACME protocol.</t>
      <t>The process after removing the CSR, starting from the client issuing a new order request to the ACME server validating the challenge, is consistent with the process in Section 6. It is only in the final certificate issuance phase that the ACME server updates the challenge record to verified (or unverified) and automatically requests a certificate for the applicant (verified public key) when the result is verified. There is no need to send the CSR file again.</t>
      <figure anchor="fig-pk-removing-csr">
        <name>Overview of the PK Challenge Flow(remove CSR)</name>
        <artwork><![CDATA[
Client                                                    ACME Server
​~~~~~~~~~~~~~~~~~~~~~~~ certificate issuance ~~~~~~~~~~~~~~~~~~~~~~~~~~~

request challenge              ---------->
                               <---------                            valid
                                                        issue certificates
finalize                       ---------->
                               <----------                     certificate
]]></artwork>
      </figure>
    </section>
    <section anchor="further-use-cases">
      <name>Further Use Cases</name>
      <t>## Temporary Certificate with One-time Key</t>
      <t>The public key authentication protocol in pk-01 can be chosen OPAQUE protocol to realize the temporary certificate with one-time key. For example, in an enterprise cooperation scenario, each company has its own private CA, and a member of company A needs to have a temporary meeting with a member of company B, Bob, and needs to authenticate and authorize Bob. The most suitable method is that the CA of company A signs a temporary certificate for him for this meeting.</t>
      <t>Alice, a legitimate user in company A, generates a temporary ID and password pw for Bob (pw performs OPAQUE protocol for registration), passes the ID and pw to Bob via out-of-band, and Bob generates a temporary public-private key pair (pk,sk) for this purpose. Bob registers the temporary public key pk at the ACME server after authentication through the OPAQUE protocol with the help of the password pw, and then applies for a temporary certificate issued by the CA of Company A that is bound to pk and ID.</t>
      <section anchor="various-public-key-authentication-protocols">
        <name>Various Public Key Authentication Protocols</name>
        <t>The certificate applicant can pick a suitable public key authentication protocol according to the specific usage scenario. It can be WebAuthn authentication, OPAQUE, private key signature checking, non-interactive zero-knowledge (NIZK) discrete logarithm equality (DLEQ) proof, and so on.</t>
      </section>
      <section anchor="revocation-of-certificates">
        <name>Revocation of Certificates</name>
        <t>When a certificate is revoked, it is also necessary to prove whether the user is authorized to revoke it. Thus, the PK-01 challenge proposed in this document can also be used to prove that the user applying for revocation does have the ownership of the corresponding private key of the certificate, so as to realize a more reliable revocation.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="acme-identifier-types">
        <name>ACME Identifier Types</name>
        <t>The "ACME Identifier Types" registry is to be updated to include the following entries:</t>
        <artwork><![CDATA[
+----------------+------------------+
| Label          | Reference        |
+----------------+------------------+
| pk             | RFC XXXX         |
+----------------+------------------+
| csr            | RFC XXXX         |
+----------------+------------------+
| selfsign-cert  | RFC XXXX         |
+----------------+------------------+

]]></artwork>
      </section>
      <section anchor="acme-validation-method">
        <name>ACME Validation Method</name>
        <t>The "ACME Validation Methods" registry is to be updated to include the following entries:</t>
        <artwork><![CDATA[
+------------+-------------------------+---------+------------+
| Label      | Identifier Type         | ACME    | Reference  |
+------------+-------------------------+---------+------------+
| pk-01      | pk/csr/selfsign-cert    | Y       | RFC XXXX   |
+------------+-------------------------+---------+------------+


]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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="RFC8738" target="https://www.rfc-editor.org/info/rfc8738" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8738.xml">
          <front>
            <title>Automated Certificate Management Environment (ACME) IP Identifier Validation Extension</title>
            <author fullname="R.B. Shoemaker" initials="R.B." surname="Shoemaker"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies identifiers and challenges required to enable the Automated Certificate Management Environment (ACME) to issue certificates for IP addresses.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8738"/>
          <seriesInfo name="DOI" value="10.17487/RFC8738"/>
        </reference>
        <reference anchor="RFC8737" target="https://www.rfc-editor.org/info/rfc8737" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8737.xml">
          <front>
            <title>Automated Certificate Management Environment (ACME) TLS Application-Layer Protocol Negotiation (ALPN) Challenge Extension</title>
            <author fullname="R.B. Shoemaker" initials="R.B." surname="Shoemaker"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies a new challenge for the Automated Certificate Management Environment (ACME) protocol that allows for domain control validation using TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8737"/>
          <seriesInfo name="DOI" value="10.17487/RFC8737"/>
        </reference>
        <reference anchor="RFC8823" target="https://www.rfc-editor.org/info/rfc8823" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8823.xml">
          <front>
            <title>Extensions to Automatic Certificate Management Environment for End-User S/MIME Certificates</title>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <date month="April" year="2021"/>
            <abstract>
              <t>This document specifies identifiers and challenges required to enable the Automated Certificate Management Environment (ACME) to issue certificates for use by email users that want to use S/MIME.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8823"/>
          <seriesInfo name="DOI" value="10.17487/RFC8823"/>
        </reference>
        <reference anchor="RFC9807" target="https://www.rfc-editor.org/info/rfc9807" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9807.xml">
          <front>
            <title>The OPAQUE Augmented Password-Authenticated Key Exchange (aPAKE) Protocol</title>
            <author fullname="D. Bourdrez" initials="D." surname="Bourdrez"/>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="K. Lewi" initials="K." surname="Lewi"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2025"/>
            <abstract>
              <t>This document describes the OPAQUE protocol, an Augmented (or Asymmetric) Password-Authenticated Key Exchange (aPAKE) protocol that supports mutual authentication in a client-server setting without reliance on PKI and with security against pre-computation attacks upon server compromise. In addition, the protocol provides forward secrecy and the ability to hide the password from the server, even during password registration. This document specifies the core OPAQUE protocol and one instantiation based on 3DH. This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9807"/>
          <seriesInfo name="DOI" value="10.17487/RFC9807"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.biggs-acme-sso" target="https://datatracker.ietf.org/doc/html/draft-biggs-acme-sso-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.biggs-acme-sso.xml">
          <front>
            <title>Automated Certificate Management Environment (ACME) Extension for Single Sign On Challenges</title>
            <author fullname="Andrew Biggs" initials="A." surname="Biggs">
              <organization>Cisco</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Moynihan" initials="R." surname="Moynihan">
              <organization>Cisco</organization>
            </author>
            <date day="8" month="April" year="2021"/>
            <abstract>
              <t>This document specifies an extension to the ACME protocol [RFC8555] to enable ACME servers to validate a client's control of an email identifier using single sign-on (SSO) technologies. An extension to the CAA [RFC8659] resource record specification is also defined to provide domain owners a means to declare a set of SSO providers that ACME servers may rely upon when employing SSO for identifier validation on their domain.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-biggs-acme-sso-01"/>
        </reference>
        <reference anchor="I-D.ietf-acme-device-attest" target="https://datatracker.ietf.org/doc/html/draft-ietf-acme-device-attest-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-acme-device-attest.xml">
          <front>
            <title>Automated Certificate Management Environment (ACME) Device Attestation Extension</title>
            <author fullname="Brandon Weeks" initials="B." surname="Weeks"/>
            <author fullname="Ganesh Mallaya" initials="G." surname="Mallaya"/>
            <author fullname="Sven Rajala" initials="S." surname="Rajala"/>
            <date day="8" month="December" year="2025"/>
            <abstract>
              <t>This document specifies new identifiers and a challenge for the Automated Certificate Management Environment (ACME) protocol which allows validating the identity of a device using attestation.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-acme-device-attest-00"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
wye/2XkWxec3/hd1GVBE6n8AAA==

-->

</rfc>
