<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="full3978trust200902" docName="draft-ietf-acme-dns-account-label-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ACME-DNS-CHALLENGE">Automated Certificate Management Environment (ACME) DNS Labeled With ACME Account ID Challenge</title>

    <author fullname="Antonios A. Chariton">
      <organization>Independent Contributor</organization>
      <address>
        <email>daknob@daknob.net</email>
      </address>
    </author>
    <author fullname="Amir A. Omidi">
      <organization>Independent Contributor</organization>
      <address>
        <email>amir@aaomidi.com</email>
      </address>
    </author>
    <author fullname="James Kasten">
      <organization>Snowflake</organization>
      <address>
        <email>james.kasten@snowflake.com</email>
      </address>
    </author>
    <author fullname="Fotis Loukos">
      <organization>Google</organization>
      <address>
        <email>fotisl@google.com</email>
      </address>
    </author>
    <author fullname="Stanislaw A. Janikowski">
      <organization>Google</organization>
      <address>
        <email>stanwise@google.com</email>
      </address>
    </author>

    <date year="2025" month="May" day="15"/>

    <area>Security</area>
    <workgroup>Automated Certificate Management Environment</workgroup>
    <keyword>acme</keyword>

    <abstract>


<?line 53?>

<t>This document outlines a new DNS-based challenge type for the ACME protocol that enables multiple independent systems to authorize a single domain name concurrently. By adding a unique label to the DNS validation record name, the dns-account-01 challenge avoids CNAME delegation conflicts inherent to the dns-01 challenge type. This is particularly valuable for multi-region or multi-cloud deployments that wish to rely upon DNS-based domain control validation and need to independently obtain certificates for the same domain.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/aaomidi/draft-ietf-acme-dns-account-challenge"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-acme-dns-account-label/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WG Working Group mailing list (<eref target="mailto:acme@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/acme/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/acme/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/aaomidi/draft-ietf-acme-dns-account-challenge"/>.</t>
    </note>


  </front>

  <middle>


<?line 57?>

<section anchor="introduction"><name>Introduction</name>

<t>The <spanx style="verb">dns-01</spanx> challenge specified in section 8.4 of <xref target="RFC8555"/> uses a single DNS authorization label (<spanx style="verb">_acme-challenge</spanx>) for domain validation. This single-label approach creates a limitation in domain validation: each domain can only delegate its validation to one ACME client at a time. Since delegation requires the use of CNAME records, of which only one can exist per DNS name, operators are forced to choose a single ACME challenge solver for their domain name.</t>

<t>This limitation becomes particularly problematic in modern deployment architectures. In multi-region deployments, separate availability zones serve the same content while avoiding cross-zone dependencies. These zones need to independently obtain and manage certificates for the same domain name. Similarly, during zero-downtime migrations, two different infrastructure setups may coexist for extended periods, with both requiring access to valid certificates. Other use cases include multi-CDN deployments and the provision of backup certificates for use when an active certificate must be quickly revoked.</t>

<t>This document specifies a new challenge type: <spanx style="verb">dns-account-01</spanx>, which addresses these operational needs. The <spanx style="verb">dns-account-01</spanx> challenge incorporates the ACME account URL into the DNS validation record name, allowing multiple independent ACME clients to perform domain validation concurrently. Since these authorization labels depend on the ACME account KID (<xref section="7.3" sectionFormat="comma" target="RFC8555"/>), operators can generate and configure the necessary DNS records in advance.</t>

<t>This RFC does not deprecate the <spanx style="verb">dns-01</spanx> challenge specified in <xref target="RFC8555"/>. The ability to complete the <spanx style="verb">dns-account-01</spanx> challenge requires ACME server operators to deploy new code, making adoption of this challenge an opt-in process.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="dns-account-01-challenge"><name>DNS-ACCOUNT-01 Challenge</name>

<t>The <spanx style="verb">dns-account-01</spanx> challenge allows a client to prove control of a domain name by provisioning a TXT resource record containing a designated value for a specific validation domain name. It leverages the ACME account URL to construct a unique but stable validation domain name. The ACME server validates control of the domain name by performing one or more DNS queries to this validation domain name, following CNAME records, to arrive at one or more TXT resource record. The ACME server verifies that the contents of one or more of these TXT record(s) match the digest value of the key authorization that is constructed from the token value provided in the challenge.</t>

<section anchor="challenge-definition"><name>Challenge Definition</name>
<t>The challenge object contains the following fields:</t>

<t><list style="symbols">
  <t>type (required, string): The string "dns-account-01".</t>
  <t>token (required, string): A random value that uniquely identifies the challenge. This value <bcp14>MUST</bcp14> have at least 128 bits of entropy. It <bcp14>MUST NOT</bcp14> contain any characters outside the base64url alphabet, including padding characters ("="). See <xref target="RFC4086"/> for additional information on additional requirements for secure randomness.</t>
</list></t>

<t>Example challenge object:</t>

<figure><artwork><![CDATA[
{
    "type": "dns-account-01",
    "url": "https://example.com/acme/chall/i00MGYwLWIx",
    "status": "pending",
    "token": "ODE4OWY4NTktYjhmYS00YmY1LTk5MDgtZTFjYTZmNjZlYTUx"
}
]]></artwork></figure>

</section>
<section anchor="challenge-fulfillment"><name>Challenge Fulfillment</name>

<t>To fulfill this challenge, a client performs the following steps:</t>

<t><list style="numbers" type="1">
  <t>Construct Key Authorization
  - Construct a key authorization <xref section="8.1" sectionFormat="comma" target="RFC8555"/> from the <spanx style="verb">token</spanx> value provided in the challenge and the client's account key
  - Compute the SHA-256 digest <xref target="FIPS180-4"/> of the key authorization</t>
  <t>DNS Record Creation
  - Construct the validation domain name by prepending the following two labels to the domain name being validated:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
 "_" || base32(SHA-256(<ACCOUNT_URL>)[0:10]) || "._acme-challenge"
]]></artwork></figure>
  <list style="symbols">
      <t>SHA-256 is the SHA hashing operation defined in <xref target="RFC6234"/></t>
      <t><spanx style="verb">[0:10]</spanx> is the operation that selects the first ten bytes (bytes 0 through 9 inclusive) from the previous SHA-256 operation</t>
      <t>base32 is the operation defined in <xref target="RFC4648"/></t>
      <t>ACCOUNT_URL is defined in <xref section="7.3" sectionFormat="comma" target="RFC8555"/> as the value in the <spanx style="verb">Location</spanx> header field</t>
      <t>The <spanx style="verb">||</spanx> operator indicates concatenation of strings</t>
    </list></t>
</list></t>

<t><list style="symbols">
  <t>Provision a DNS <spanx style="verb">TXT</spanx> record with the base64url digest value under the constructed domain validation name</t>
</list></t>

<t><list style="numbers" type="1">
  <t>Challenge Response
  - Respond to the ACME server with an empty object ({}) to acknowledge that the challenge can be validated by the server</t>
</list></t>

<t>Example DNS record for domain <spanx style="verb">example.org</spanx> with account URL <spanx style="verb">https://example.com/acme/acct/ExampleAccount</spanx>:</t>

<figure><artwork><![CDATA[
_ujmmovf2vn55tgye._acme-challenge.example.org 300 IN TXT "LoqXcYV8...jxAjEuX0.9jg46WB3...fm21mqTI"
]]></artwork></figure>

<t>Example response to server:</t>

<figure><artwork><![CDATA[
POST /acme/chall/Rg5dV14Gh1Q
Host: example.com
Content-Type: application/jose+json

{
  "protected": base64url({
    "alg": "ES256",
    "kid": "https://example.com/acme/acct/ExampleAccount",
    "nonce": "SS2sSl1PtspvFZ08kNtzKd",
    "url": "https://example.com/acme/chall/Rg5dV14Gh1Q"
  }),
  "payload": base64url({}),
  "signature": "Q1bURgJoEslbD1c5...3pYdSMLio57mQNN4"
}
]]></artwork></figure>

</section>
<section anchor="server-validation"><name>Server Validation</name>

<t>Upon receiving the challenge response, the server:</t>

<t><list style="numbers" type="1">
  <t>Performs the typical JWS validation.</t>
  <t>Constructs and stores the key authorization</t>
  <t>Computes the SHA-256 digest <xref target="FIPS180-4"/> of the stored key authorization</t>
  <t>Computes the validation domain name using the KID value from the JWS message</t>
  <t>Queries for TXT records at the validation domain name</t>
  <t>Verifies that one TXT record matches the computed digest value</t>
</list></t>

<t>The validation succeeds only if all verifications pass. The server <bcp14>MUST</bcp14> mark the challenge as invalid if any verification fails.</t>

<t>The client <bcp14>SHOULD</bcp14> de-provision the resource record(s) provisioned for this challenge once the challenge is complete, i.e., once the "status" field of the challenge has the value "valid" or "invalid".</t>

</section>
<section anchor="errors"><name>Errors</name>

<t>The server <bcp14>SHOULD</bcp14> follow the guidelines set in <xref section="6.7" sectionFormat="comma" target="RFC8555"/> for error conditions that occur during challenge validation.</t>

<t>If the server is unable to find a <spanx style="verb">TXT</spanx> record for the validation domain name, it <bcp14>SHOULD</bcp14> include the account URL it used to construct the validation domain name in the problem document. Clients <bcp14>MUST NOT</bcp14> use or rely on the presence of this field to construct the validation domain name.</t>

</section>
<section anchor="implementation-considerations"><name>Implementation Considerations</name>

<t>As this challenge creates strong dependency on the <spanx style="verb">kid</spanx> account identifier, the server <bcp14>SHOULD</bcp14> ensure that the account identifier is not changed during the lifetime of the account. This contains the entire URI, including the ACME endpoint domain name, port, and full HTTP path.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The same security considerations apply for the integrity of authorizations (<xref section="10.2" sectionFormat="comma" target="RFC8555"/>) and DNS security (<xref section="11.2" sectionFormat="comma" target="RFC8555"/>) as in the original specification for <spanx style="verb">dns-01</spanx>.</t>

<t>To allow for seamless account key rollover without the label changing, the dynamic part of the label depends on the ACME account and not the account key. This allows for long-lived labels, without the security considerations of keeping the account key static.</t>

<t>In terms of the construction of the account label prepended to the domain name, there is no need for a cryptographic hash. The goal is to simply create a long-lived and statistically distinct label of minimal size. SHA-256 was chosen due to its existing use in the <spanx style="verb">dns-01</spanx> challenge (<xref section="8.1" sectionFormat="comma" target="RFC8555"/>).</t>

<t>The first 10 bytes were picked as a tradeoff: the value needs to be short enough to stay lower than the size limits for DNS (<xref section="2.3.4" sectionFormat="comma" target="RFC1035"/>), long enough to provide sufficient probability of collision avoidance across ACME accounts, and just the right size to have Base32 require no padding. As the algorithm is used for a uniform distribution of inputs, and not for integrity, we do not consider the trimming a security issue.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<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>

<figure><artwork><![CDATA[
label: dns-account-01
identifier-type: dns
ACME: Y
Reference: This document
]]></artwork></figure>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

<reference anchor="FIPS180-4" target="https://csrc.nist.gov/publications/detail/fips/180/4/final">
  <front>
    <title>Secure Hash Standard (SHS)</title>
    <author >
      <organization>National Institute of Standards and Technology</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
</reference>


<reference anchor="RFC8555">
  <front>
    <title>Automatic Certificate Management Environment (ACME)</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
    <author fullname="D. McCarney" initials="D." surname="McCarney"/>
    <author fullname="J. Kasten" initials="J." surname="Kasten"/>
    <date month="March" year="2019"/>
    <abstract>
      <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8555"/>
  <seriesInfo name="DOI" value="10.17487/RFC8555"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC4086">
  <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="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>
<reference anchor="RFC4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</reference>
<reference anchor="RFC1035">
  <front>
    <title>Domain names - implementation and specification</title>
    <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
    <date month="November" year="1987"/>
    <abstract>
      <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="13"/>
  <seriesInfo name="RFC" value="1035"/>
  <seriesInfo name="DOI" value="10.17487/RFC1035"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.draft-ietf-dnsop-domain-verification-techniques">
   <front>
      <title>Domain Control Validation using DNS</title>
      <author fullname="Shivan Kaul Sahib" initials="S. K." surname="Sahib">
         <organization>Brave Software</organization>
      </author>
      <author fullname="Shumon Huque" initials="S." surname="Huque">
         <organization>Salesforce</organization>
      </author>
      <author fullname="Paul Wouters" initials="P." surname="Wouters">
         <organization>Aiven</organization>
      </author>
      <author fullname="Erik Nygren" initials="E." surname="Nygren">
         <organization>Akamai Technologies</organization>
      </author>
      <date day="21" month="October" year="2024"/>
      <abstract>
	 <t>   Many application services on the Internet need to verify ownership or
   control of a domain in the Domain Name System (DNS).  The general
   term for this process is &quot;Domain Control Validation&quot;, and can be done
   using a variety of methods such as email, HTTP/HTTPS, or the DNS
   itself.  This document focuses only on DNS-based methods, which
   typically involve the Application Service Provider requesting a DNS
   record with a specific format and content to be visible in the domain
   to be verified.  There is wide variation in the details of these
   methods today.  This document provides some best practices to avoid
   known problems.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-domain-verification-techniques-06"/>
   
</reference>



    </references>

</references>


<?line 212?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

</section>


  </back>

<!-- ##markdown-source:
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
xk9NQ5iv7yKj0XwUDOD0tLI3Lc7kWLg7g+CtYXPoS1f6aKKGc26vz5r9Y12Y
QIJCSZy7Yu1CaesndXTbzl4PBm8Q+3ZKiqt/WLKmsUF17WGqFcnKCpdqF7Wr
0TBx4pbRFKqJsmbzOLrbifc+oVZyU1RUOfUxm1d3w2pTuRroT+g6vR5NBTAC
P9XUOXb9nhubhRaYzzO6L2l0SUxTPFflHHp2bxJ3fehsBQWHa+MF1CkTdxNW
mcqv875jNo7j3S2sWvUKHBuMG0Z6xFwGL2xnKPzT0BHtrHD0OSuAkZkQReUG
TckICmVC6AG+BOXhCg6rqKpH38uNXqLQsIl0Q1vmtKGFd2h/reZnhIleFFZN
NC+mUBO1UT67TBRNKlyHZ+ScnMbHHt3GLoX2mR8cG0t1Al260sc8qXgCo3OZ
yzmZXH6gK7iQ+h85xTWKPcBC6TCRpjXuKo3UQoBTdSrr1xEbvc1149shpfmm
rdsJPdsjyY5SZuam5nTXq9HzqPG410gs7g4qjNkNQoF+CeEaPNKB5QsI/uja
E+4ZI4H8rat3BgqIwFm3s9/gbC/ejw/cNQ6prkE1zAiQ98eIBT/HABhX1ylQ
XgJHD+0UXZzSDQ6sTlenKx5rPFTc0w2eS9lyMrWeQRzjRmPf+3YzjJjIC8IE
K2Z9j1OophGfdjp3ucrULlLm0l+ASeN/IxU8UOYoacLJFC1j1yYGREEgkAN6
+Aze70tKLedzP7auw0MaU7qUwM76l/01VEOmcMIuq1t2IRBlqbd1a/NL1BN0
cw2eF8GRYdey8J2bu1NeZtHlcIOGhdL9yoZKa+fEvSc/PomWCaLtbzzxPiIm
euwuuhbuyjgRPbZybepLdffjDLqfJWH7dbvpJn7Rx15ezkfYnf6rNeaZEa1P
0f8D6F/cCRUpAAA=

-->

</rfc>

