<?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.6.27 (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-01-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ACME-DNS-ACCOUNT-01">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>Google</organization>
      <address>
        <email>aaomidi@google.com</email>
      </address>
    </author>
    <author fullname="James Kasten">
      <organization>Google</organization>
      <address>
        <email>jdkasten@google.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="2023" month="March" day="30"/>

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

    <abstract>


<t>This document outlines a new challenge for the ACME protocol, enabling an ACME
client to answer a domain control validation challenge from an ACME server
using a DNS resource linked to the ACME Account ID. This allows multiple
systems or environments to handle challenge-solving for a single domain.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://daknob.github.io/draft-todo-chariton-dns-account-01/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-acme-dns-account-01/"/>.
      </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/daknob/draft-todo-chariton-dns-account-01"/>.</t>
    </note>


  </front>

  <middle>


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

<t>The <spanx style="verb">dns-01</spanx> challenge specified in section 8.4 of <xref target="RFC8555"/> requires that
ACME clients validate the domain under the <spanx style="verb">_acme-challenge</spanx> label for the
<spanx style="verb">TXT</spanx> record. This unique label creates an impediment limiting the number of
other entities domain validation can be delegated to.</t>

<t>In multi-region deployments, where separate availability zones serve the same
content, and dependencies across them are avoided, operators need a way to
obtain a separate certificate per zone, for the same domain name. Similarly, in
cases of zero-downtime migration, two different setups of the infrastructure
may coexist for a long period of time, and both need access to valid
certificates.</t>

<t>Due to the uniqueness of the <spanx style="verb">_acme-challenge</spanx> label, operators today have to
pick a single ACME challenge solver for their domain name, and then add a
<spanx style="verb">CNAME</spanx> record to this infrastructure. A domain name can only have one <spanx style="verb">CNAME</spanx>
in DNS.</t>

<t>This document specifies a new challenge type, <spanx style="verb">dns-account-01</spanx>. This challenge
leverages the ACME Account Resource URL to present an account-unique stable
challenge to an ACME server. This challenge allows any domain name to delegate
its domain validation to more than one service through ACME account-unique DNS
records.</t>

<t>As now multiple labels can be used to prove domain control, and they depend on
the ACME account, any number of them can be generated in advance, and then all
required <spanx style="verb">CNAME</spanx> records can be created statically. The dynamic part of the
label depends on the ACME account and not the account key, to allow for
seamless account key rollover without the label changing. This ensures very
long-lived labels, without any security considerations.</t>

<t>This RFC does not intend to deprecate the <spanx style="verb">dns-01</spanx> challenge specified in
<xref target="RFC8555"/>. Since this new challenge does not modify or build on any
pre-existing challenges, the ability to complete the <spanx style="verb">dns-account-01</spanx> challenge
requires ACME server operators to deploy new changes to their codebase. This
makes adopting and using 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>

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

<t>When the identifier being validated is a domain name, the client can prove control of that domain by provisioning a <spanx style="verb">TXT</spanx> resource record containing a designated value for a specific validation domain name.</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>

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

<t>A client can fulfill this challenge by performing the following steps:</t>

<t><list style="symbols">
  <t>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</t>
  <t>Compute the SHA-256 digest <xref target="FIPS180-4"/> of the key authorization</t>
  <t>Construct the validation domain name by prepending the following label to the domain name being validated:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
"_acme-challenge_" || base32(SHA-256(Account Resource URL)[0:9])
]]></artwork></figure>
  <list style="symbols">
      <t>SHA-256 is the SHA hashing operation defined in <xref target="RFC6234"/></t>
      <t><spanx style="verb">[0:9]</spanx> is the operation that selects the first ten bytes (bytes 0 through 9 inclusive) from the previous SHA256 operation</t>
      <t>base32 is the operation defined in <xref target="RFC4648"/></t>
      <t>Account Resource URL is defined in <xref section="7.3" sectionFormat="comma" target="RFC8555"/> as the value in the Location header field</t>
      <t>The <spanx style="verb">"||"</spanx> operator indicates concatenation of strings</t>
    </list></t>
  <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>For example, if the domain name being validated is "www.example.org", and the account URL of "https://example.com/acme/acct/ExampleAccount" then the client would provision the following DNS record:</t>

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

<t>(In the above, "..." indicates that the token and the JWK thumbprint in the key authorization have been truncated to fit on the page.)</t>

<t>Respond to the ACME server with an empty object ({}) to acknowledge that the challenge can be validated by the 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/evOfKhNU60wg",
    "nonce": "SS2sSl1PtspvFZ08kNtzKd",
    "url": "https://example.com/acme/chall/Rg5dV14Gh1Q"
  }),
  "payload": base64url({}),
  "signature": "Q1bURgJoEslbD1c5...3pYdSMLio57mQNN4"
}
]]></artwork></figure>

<t>On receiving a response, the server constructs and stores the key authorization from the challenge <spanx style="verb">token</spanx> value and the current client account key.</t>

<t>To validate the <spanx style="verb">dns-account-01</spanx> challenge, the server performs the following steps:</t>

<t><list style="symbols">
  <t>Compute the SHA-256 digest <xref target="FIPS180-4"/> of the stored key authorization</t>
  <t>Compute the validation domain name with the account URL of the ACME account requesting validation</t>
  <t>Query for <spanx style="verb">TXT</spanx> records for the validation domain name</t>
  <t>Verify that the contents of one of the TXT records match the digest value</t>
</list></t>

<t>If all the above verifications succeed, then the validation is successful. If no DNS record is found, or DNS record and response payload do not pass these checks, then the server <bcp14>MUST</bcp14> fail the validation and mark the challenge as invalid.</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="security-considerations"><name>Security Considerations</name>

<t>As this challenge that is introduced only differs in the left-most label of the domain name from the existing <spanx style="verb">dns-01</spanx> challenge, the same security considerations apply.</t>

<t>In terms of the construction of the label prepended to the domain name, there is no need for a cryptographic hash. The purpose of that is to create a long-lived and statistically distinctive record of minimal size.</t>

<t>SHA-256 was picked due to its broad adoption, hardware support, and existing need in implementations that would likely support <spanx style="verb">dns-account-01</spanx>.</t>

<t>The first 10 bytes were picked as a tradeoff: the value needs to be short enough to not significantly impact DNS record and response size, 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 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="dns-parameters"><name>DNS Parameters</name>

<t>The Underscored and Globally Scoped DNS Node Names is to be updated to include the following entry:</t>

<figure><artwork><![CDATA[
RR Type: TXT
_NODE NAME: _acme-challenge_*
Reference: This document
]]></artwork></figure>

<t>Where <spanx style="verb">_acme-challenge_*</spanx> denotes all node names beginning with the string <spanx style="verb">_acme-challenge_</spanx>. It does NOT refer to a DNS wildcard specification.</t>

</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 entry:</t>

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

</section>
</section>


  </middle>

  <back>


    <references title='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'><organization/></author>
<author fullname='J. Hoffman-Andrews' initials='J.' surname='Hoffman-Andrews'><organization/></author>
<author fullname='D. McCarney' initials='D.' surname='McCarney'><organization/></author>
<author fullname='J. Kasten' initials='J.' surname='Kasten'><organization/></author>
<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'><organization/></author>
<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'><organization/></author>
<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'><organization/></author>
<author fullname='J. Schiller' initials='J.' surname='Schiller'><organization/></author>
<author fullname='S. Crocker' initials='S.' surname='Crocker'><organization/></author>
<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'><organization/></author>
<author fullname='T. Hansen' initials='T.' surname='Hansen'><organization/></author>
<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'><organization/></author>
<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>




    </references>



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

</section>


  </back>

<!-- ##markdown-source:
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
ykbG/2yNw8TI1ufgP4IoPRFGJQAA

-->

</rfc>

