<?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.24 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-geng-acme-public-key-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.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-01"/>
    <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="2025" month="March" day="03"/>
    <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 servers to use the public key authentication protocol to verify the certificate applicant's control of the identity and to ensure strong consistency between the final certificate issued and the identity of the application order. A process extension for removing CSR at the certificate application phase is also proposed in this document.</t>
    </abstract>
  </front>
  <middle>
    <?line 58?>

<section anchor="intro">
      <name>Introduction</name>
      <t>When ACME was first introduced, its main focus was on the challenge of verifying control of identifiers such as domain names. ACME has expanded to support verification of user/device ownership and issuance of certificates for users/devices. Based on the sso-01 <xref target="I-D.biggs-acme-sso"/> for verifying email identifiers, this document introduces a more general ACME challenge type for user/device while avoiding public key substitution attacks.</t>
      <t>During the ACME automatic certificate request process, the ACME server does not check whether the public key of the submitted CSR belongs to the requesting user in the finalized order request. The public key substitution attacks may exist for this phase.</t>
      <t>Normally a user has a client for automated applications. And in some specific application scenarios, some users who expect to obtain certificates and allow continuous updates cannot integrate such a client. Such a user might use a proxy as a unified entry point for automated certificate requests. This proxy might be a system or an administrator. Based on the standard ACME application process, the ACME server can communicate with the user and prove the validity of the user's identity through its proxy. However, standard ACME application process does not verify that the public key in the challenge phase and the public key in the CSR are the same when the CSR is submitted. The proxy may be a malicious adversary that substitutes the final CSR and applies for a mismatched certificate.</t>
      <t>Similarly, in non-proxy scenarios the certificate applicant is the ACME client, which may generate other arbitrary public-private key pairs to apply for obtaining mismatched certificates after completing the challenge phase, i.e., the public key of the finally issued certificate does not match with the public key in the challenge phase, which results in a security risk.</t>
      <t>This document introduces a new ACME challenge type that verifies the identity of the applicant by public key authentication. It also ensures that the public key in the challenge phase is consistent with the public key in the final CSR submission , eliminating the risk of public key substitution attacks. Considering the complicated task of CSR parsing, this document supplements a simplified process of removing CSR (see Section 2.2), 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>The protocol interaction process is based on the standard ACME process. The client only needs to know how to initiate the public key authentication protocol by opening a given URL, and then recognize when that interaction has ended. Once finished, the ACME client can query the status of the challenge to the ACME server to determine if the challenge was successful and, if so, to complete the standard ACME process.</t>
      <t>Note that this document requires an Identity Provider (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 accounts. This document focuses on the scenario where the ACME client acts as a proxy to request certificates for multiple users/devices (see Section 3.1.1), where the ACME client itself can be a malicious adversary that performs the public key substitution attack, and thus authentication of the account is not secured. The document proposes public key verification to verify the identity control of the certificate applicant and to guarantee the authenticity and consistency of the public key in the challenge phase and the final issued certificate against the public key substitution attack.</t>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>This section describes the PK challenge process in terms of the standard ACME <xref target="RFC8555"/> process for issuing certificates and the process for removing CSR, respectively.</t>
      <section anchor="standard-process">
        <name>Standard Process</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 a 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 its supported authentication methods from a variety of authentication methods and inform the server. The server returns what needs to be accomplished for this authentication method. This content will contain the “start URL”. This authentication method is similar to that of sso-01 <xref target="I-D.biggs-acme-sso"/> , except that the IDP here must contain the user's public key and no longer requires a passphrase or key information.</t>
        <figure anchor="fig-pk-challenge-overview">
          <name>Overview of the PK Challenge Flow</name>
          <artwork><![CDATA[
Client                                                    ACME Server

~~~~~~~~~~~~~~~~~~~~~~ Certificate Application ~~~~~~~~~~~~~~~~~~~~~~~~~

request new order(public key)   -------->
                                <--------           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 public key 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 object and the IDP, which conducts a 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="I-D.irtf-cfrg-opaque"/>). 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 user 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, only part of the computation is done. 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="remove-csr">
        <name>Remove CSR</name>
        <figure anchor="fig-pk-challenge-overview-csr-remove">
          <name>Overview of the PK Challenge Flow(remove CSR)</name>
          <artwork><![CDATA[
Client                                                    ACME Server

~~~~~~~~~~~~~~~~~~~~~~ Certificate Application ~~~~~~~~~~~~~~~~~~~~~~~~~

request new order(public key)  -------->
                               <--------            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
                                                        issue certificates
finalize                       ---------->
                               <----------                     certificate


]]></artwork>
        </figure>
        <t>Since the ACME server has already obtained the user/device's authenticated public key in 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 remains consistent from the time the server sends a new order request until the ACME server verifies that the challenge is valid, that is, consistent with the first and second phases in section 3.1.1. The ACME server updates the challenge record as verified (or unverified) and automatically applies a certificate for the applicant (verified public key) when the result is verified. There is no need to send the CSR file again.</t>
      </section>
    </section>
    <section anchor="security-model">
      <name>Security Model</name>
      <section anchor="attacks-and-threat-models">
        <name>Attacks and Threat Models</name>
        <figure anchor="fig-acme-flow-overview">
          <name>Overview of the ACME Flow</name>
          <artwork><![CDATA[
Client                                                    ACME Server

~~~~~~~~~~~~~~~~~~~~~~ ACME account management ~~~~~~~~~~~~~~~~~~~~~~~

ACME account registration     --------->

~~~~~~~~~~~~~~~~~~~~~~~~  Challenge phase ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

creating a certificate order  --------->
                              <---------           a series of challenges

choose a challenge type and 
complete it                   --------->

                                               validate challenge results

~~~~~~~~~~~~~~~~~~~~ Application for Certificate ~~~~~~~~~~~~~~~~~~~~~~

request finalize (CSR)       ---------->
                             <----------                     finalize URL
finalize                     ----------->
                             <----------                     certificate
                                                         

]]></artwork>
        </figure>
        <t>The standard ACME 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-phase framework has brought many benefits, such as compatibility with the current network, ease of expansion, and ease of deployment. However, the decoupled design also brings security problems. After the verification is completed in the second phase of challenge, the ACME server will cache the Authz record, but the public key of the second phase and the third phase is not consistent binding, the adversary can use the cache record to obtain mismatched certificates. That is, to obtain an actual unvalidated certificate issued by the CA, and the adversary holds the public-private key pair corresponding to that certificate.</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-03 [acme-device-attest-03], and e-mail-reply-00 <xref target="RFC8823"/> and so on. The orthogonal decoupling of the second and third phase of the ACME architecture brings security issues for this purpose. The subjects applying for certificates in the third phase may not be the same subjects that passed the challenge in the second phase. Attacks against the resource category are mainly when an adversary obtains ACME account credentials and then impersonates the victim's server to get a fake SSL certificate, which can be defended against by containing the IP and client ID fields when sending requests in the third phase of ACME. The CA can verify the identity of the ACME client by verifying the consistency of the IP and ID fields.</t>
        <t>The main focus in our proposed specification is on attacks targeting the user user/device category. In the threat model, unlike resource-based subjects, the adversary can be the ACME client, so verifying the authenticity of the ACME account cannot defend against the attack. Especially in corporate enterprise scenarios, agent (network administrator) is required to apply certificates for multiple users/devices. The proxy, the ACME client, is the malicious adversary. The adversary applies for certificates for multiple users/devices and performs public key substitution to obtain false certificates after the challenge phase to impersonate legitimate user/device.</t>
        <section anchor="usersdevices-generate-their-own-public-private-keys">
          <name>Users/devices generate their own public-private keys</name>
          <figure anchor="fig-acme-client-as-proxy">
            <name>Scenarios for ACME Clients as Proxy</name>
            <artwork><![CDATA[
        ______________                     
       |  ACME client |                     ______________
       |  (proxy)     | -------------------| ACME server |
       |______________|                    |_____________|
            /\       \
           /  \       \
          /    \       \
         /      \       \
   _________  _________  _________
  | user 1 | | user 2 | | user 3 |
  |________| |________| |________|
]]></artwork>
          </figure>
          <t>The ACME client acts as a delegated agent role to request certificates for multiple users/devices. In this scenario, the user/device generates and holds the public/private key pair itself, and the ACME client does not hold any user/device private key. In the standard ACME certificate application process, the challenge phase and the certificate application phase do not perform consistency checking, so if the public key identity of user 1 completes the proof of ownership during the challenge phase, but the ACME client as a malicious adversary replaces the public key identity of another person, i.e., applies for the certificate with the CSR file corresponding to the other public key, so as to obtain the final certificate. At this time the adversary who owns the certificate (also owns the private key of the certificate) can impersonate user 1.</t>
        </section>
        <section anchor="acme-client-agent-generates-public-private-keys">
          <name>ACME client agent generates public-private keys</name>
          <t>The ACME client acts as a delegated agent role to request certificates for multiple users/devices. In this scenario, it is possible that the user/device lacks the ability to generate public-private key pairs, and the ACME client generates corresponding public-private key pairs for them. At this time the ACME client as an adversary has great freedom to apply for certificates for any user/device. Then the adversary can impersonate any user/device.</t>
        </section>
        <section anchor="terminals-apply-for-their-own-certificates">
          <name>Terminals apply for their own certificates</name>
          <t>The ACME client is the user/device itself, and in this scenario, the adversary is the user/device itself. After completing the challenge phase, the adversary can generate any public-private key pair and apply for a certificate in the third phase, eventually obtaining an illegitimate certificate issued by the CA. This scenario is similar to the scenario in section 3.1.2 where the ACME client agent generates the public and private keys of the user/device.</t>
        </section>
      </section>
      <section anchor="defend-against-threats">
        <name>Defend against Threats</name>
        <t>This document is mainly oriented to the security problem in scenario 1 (Section 3.1.1), when the adversary is the ACME client, acting as a proxy role (not holding a user/device private key), and is able to perform a public key substitution attack to request a certificate. The challenge type proposed in this document ensures identity consistency by verifying that the public key is the same at the time of the certificate application phase and the challenge phase, thus preventing an adversary from replacing the public key to apply for a certificate after the challenge phase is completed.</t>
        <t>For the attack problems in Scenario 2 and Scenario 3, a similar whitelisting mechanism can be supplemented on the basis of consistency checking, i.e., the IDP signing the identity of the public key and then passing it to the ACME server for verifying the application privilege of the public key, so as to realize the legitimacy verification.</t>
      </section>
    </section>
    <section anchor="acme-pk-identifier-type">
      <name>ACME pk Identifier Type</name>
      <t>This document defines the pk-01 challenge type that ensures strong consistency between the final certificate and the identity of the application order even in scenarios where proxies are present. And public key authentication protocol is utilized to provide strong security for the authentication process.</t>
      <t>The pk-01 challenge type can be applied to a variety of identity types that contain public key information. The public key can be used directly with no specific identity information. The identifier pk can be used in case of user-bound devices; csr and selfsign-cert can be used in cases where specific identity information needs to be bound. Implementations MUST NOT use the challenge of type pk-01 as options to validate a type identifier other than the following.</t>
      <artwork><![CDATA[
"identifier": { "type": "pk", "value":"MIGfMA0GC***GbQIDAQAB"}
"identifier": { "type": "selfsign-cert", "value":"MIIHSDCC***AU1GH3xQ="}
"identifier": { "type": "csr", "value":"MIICljCCA***RL64+taHbP"}

]]></artwork>
    </section>
    <section anchor="acme-pk-01-challenge-type">
      <name>ACME pk-01 Challenge Type</name>
      <t>The pk-01 challenge type requires the client to access the specified pk-url to start the PK 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 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. An 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>
      <artwork><![CDATA[
{
  “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”
}

]]></artwork>
    </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 server. IDP instance holds the public key, e.g. IDP instances supporting the aPAKE/Opaque protocols.</t>
        </li>
        <li>
          <t>The IDP server 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 user to obtain public key information and identity information about the subject (user). 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 customer to complete the order. For identifiers of pk type, it is necessary to check whether the public key recorded in the identifier matches the public key in the CSR. For csr or selfsign-cert type identifiers, in addition to this, the identity in the order has to be verified against the identity in the CSR. The client's request for order fulfillment can only be continued under the condition that all checks have been passed.</t>
      <t>In the simplified process of removing CSR, the ACME server issues a certificate for the public key directly after successful authentication of the identity, without the need for the user to generate a CSR file and send it to the ACME server. In this simplified process, the consistency of the public key of the certificate and the public key of the challenge phase can be ensured against public key substitution attacks.</t>
    </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="security-considerations">
      <name>Security Considerations</name>
      <t>This challenge is designed to verify that the client has control of the corresponding identity and to defend against public key substitution attacks. For general security considerations related to the ACME certificate issuance process, see <xref target="RFC8555"/>.</t>
      <t>As with ACME validation methods, the security of PK validation depends on the risk of the validation process being compromised and the strength of the binding between the validation process and the ACME transaction.</t>
      <t>The binding of the validation process to the ACME transaction is managed through a built-in public key validation protocol, where the IDP and the requesting party negotiate an validation protocol to return identity information to the ACME server. The whitelisting mechanism introduced here prevents unauthorized public keys from requesting certificates.</t>
      <t>As for the security based on PK-based authentication itself, it is carried out based on the public key authentication protocol, and corresponding risk mitigation measures can be applied. In PK-based certificate issuance, the PK provided is trustworthy enough to assert whether a given user has a given identity and public key information. A malicious PK provider may falsify these assertions, resulting in the issuance of the wrong certificate. CA's selection of a trusted PK provider is one of the initiatives to mitigate this risk.</t>
    </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="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>
      </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.irtf-cfrg-opaque" target="https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-opaque-18" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.irtf-cfrg-opaque.xml">
          <front>
            <title>The OPAQUE Augmented PAKE Protocol</title>
            <author fullname="Daniel Bourdrez" initials="D." surname="Bourdrez"/>
            <author fullname="Hugo Krawczyk" initials="H." surname="Krawczyk">
              <organization>AWS</organization>
            </author>
            <author fullname="Kevin Lewi" initials="K." surname="Lewi">
              <organization>Meta</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <date day="21" month="November" year="2024"/>
            <abstract>
              <t>This document describes the OPAQUE protocol, an augmented (or asymmetric) password-authenticated key exchange (aPAKE) 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="Internet-Draft" value="draft-irtf-cfrg-opaque-18"/>
        </reference>
      </references>
    </references>
    <?line 389?>



  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
