<?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.17 (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-00" 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>Google</organization>
      <address>
        <email>aac@google.com</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="January" day="07"/>

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

    <abstract>


<t>This document specifies a new challenge type for the Automated Certificate Management Environment (ACME) protocol which allows an ACME client to respond to a domain control validation challenge presented by an ACME server with a DNS resource that is keyed by the ACME account identification.</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>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>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 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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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:
H4sIAAAAAAAAA51Z7XbbNhL9z6fAsj/W7lqy5NiJo7Pds6rtJG5tObHsum5P
Tw2RkASLJBgClKIm6bPss+yT7R0ApCjZSZP9Y0skMJjPO3egVqsVGGkS0WNh
vzQq5UbE7EgURo5lhC/snGd8IlKRGXaSzWWhMvt5q390frLNjgdDdsZHIsGu
G2mmjB6zfhSpEotOj9nRlCeJyCYiDPhoVIg5HYQ1Lexs9Y+OLq4HV61ONwzo
sIkqlj2mTRwEsYoynkKtuOBj05LCjFs8SkUrzjQ+WPnY1+p0Aoh8EvBC8B4b
iqgspFkGC1XMJoUq8x77GrOCmVhia9xjdFYg86LHxmWSPHn+7NAUpTZ7nc7z
zl4wF1kpegFj/oybl/hsljn0vcHJMpuwl/QGT1MuEyfu32REWxUTPOVFNO2x
qTG57u3uxtxwU/BoJop2tWh3MdmlXbt8pEqzS2fBv+UIHuGzTI12nWOMilUr
mnJYrbIN52BPAlu1aZ5Ee9tOVFuqL5CyGwS8NFNVwN4WRDLrERecfob1UmnW
b1Ok7Xa7BAbwTP7BjVRZj71UapII+0J4f/Do3xP7tB2p9BHBqSxI6EUqY/mF
EhWt/azUH/BXsx+5NuLL1LyPZ3bxZ6W+UEZqdqbKmdJfJHVMG5LPyhwaSNAJ
X5ATfsDnmVro2Zd5QmPvQmrRPCDIVIEikHObtS9OXw+7h53Wfs/uqwDAVo9g
r7ieWgViXsRsa/hquB3adUhTLNvrdA9anUO3kxcT0UivSBdRG4qb9kTNd/Ny
lFC1QU+9GwsD7XbHMte7OHt3Hx8znlgxdX4xb1+PDew2nrDTTEO/EiWrxrVW
muE/uxLRNFOJmiyDQGbjlYVBq9VifKSppkwQXE0RHwBKactd5yICCiAROMvE
gkUVQtkCRnAKZqbiq2CjQsO8UEZFKmGLqYymDHIRNajqUDFKJK01ihVC5woG
4COHYghbxiKVmQJb5zyRsTW+oVmOHdgLZUbLWp4WxVwUbEGwyy0SY5UqiwiW
TLlhMBpw5vZYi2iTr2smY8hzVuGotnMZCihGLgXfwOtQJi4jekkOFOyOUKHT
vWtoVXkyZtBfC7uYHbb3KVLv3//t8sXR4cHBwceP0OttKaGc06vhDF2ZK6yG
3hVlFgsXhLvfLebXR94B0NBs6iDdXf18dQfxETC7zWycy0y+LYVfF6ErGGFD
INNcxNJGK5GpNITRJCIr0xFOg8oKXwtGbjGUHV6ZZjwgZgQt0e0mNjOMan9d
du04N67A9c5rvVqWCAQVOaZXMava6WUV3uvLM8odnxVkXSXRWw8IGCWiebja
SJsH59bJuqwsJySijZW9TJrHvIIVqSpszmVMZcIeIG0SogVOpmt5VynospXC
pisXIl0gHXZnCumJZHcFEguYGVUZ8ldZ2Ey7NhvKzOoB6euxqM9JVSzHS0AO
G5UyiaG/9QCObIl3wDHKknqb3rE68JFMwDFIOUBrnoimbo3QNs6rC6BZuCpH
oI0qtDczUctKzczGX5FY9MFIxWLEtfAxS/mM0itWuVWPkLDULp3XI4pw5KBO
GeFSJDR5+ht2pLI55Tgw2W49FsBhab+7QgdmMOJAmoXn18OrcMf9Z4ML+/ny
5M316eXJMX0evuqfndUfAr9i+Ori+ux49Wm18+ji/PxkcOw24ylbexSE5/1b
vCGtwovXV6cXg/5ZSFE1ayXGC5uWqETKkgKxolrkOoiFjgo5cpnw/dHr//6n
u+8zYq/bfQ4g8unRfbaPL4upyNxpKkuW/is8vgx4ngtekBT4EmWfS8MTRJ9r
pqdqkTEAhYA3v/2VPPNbj/1zFOXd/X/5B2Tw2sPKZ2sPrc8ePnmw2TnxkUeP
HFN7c+35hqfX9e3frn2v/N54SFmzztZXrD4IbuA2m/5VR0FmjwSlYwXtMXUi
3kQVV0e+HxKqIkHnom6BwGLbKPyO0dK+lxo5ahO+hn0Phw5I7Hasd0uQC3KS
2dOhR+n6Oq/AImoCWEMxiqmjAVu+ZOMdgGkBmds9RtXhvrBwvdbDNu1TM7ji
sY19ViDNVOpVscY5IETe1X5ziF/Xr692t8Wm1ZTDSdiaCJBS1t07ZCOCZLhL
kOPyZZudGlZlYOUPC2jE7cGFBMAG04TGmfYwQpWn+2WRINHzKVqm2UHWR0kZ
k5E5j2MPgNXmrfC7cBvAKoSvpf3O4VPUkvUuVnvSVrMxlVlIXb3x3klt86dd
2pFO56DModSff/4ZvLdsMKRghL0H/t5xb6E5vazop3jHCY+J8brZyTpzV3Y6
5y9vF2c3p++qjWiQptS0N0efgZHVCxtEen5xfLJ/cXO7P7iamdv7aXo77HRu
09vu2dXs4Px4Yn65enF/e/VLOrj/Jbm9un4XBh+t3kG/mdhg9GMJDNmAZkpp
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

-->

</rfc>

