<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-acme-dns-persist-00" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="ACME Persistent DNS Challenge">Automated Certificate Management Environment (ACME) Challenge for Persistent DNS TXT Record Validation</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-acme-dns-persist-00"/>
    <author initials="S." surname="Heurich" fullname="Shiloh Heurich">
      <organization>Fastly</organization>
      <address>
        <email>sheurich@fastly.com</email>
      </address>
    </author>
    <author initials="H." surname="Birge-Lee" fullname="Henry Birge-Lee">
      <organization>Crosslayer Labs, Inc.</organization>
      <address>
        <email>henry@crosslayerlabs.com</email>
      </address>
    </author>
    <author initials="M." surname="Slaughter" fullname="Michael Slaughter">
      <organization>Amazon Trust Services</organization>
      <address>
        <email>slghtr@amazon.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="03"/>
    <area>Security</area>
    <workgroup>Automated Certificate Management Environment</workgroup>
    <keyword>acme</keyword>
    <keyword>dns</keyword>
    <keyword>validation</keyword>
    <keyword>persistent</keyword>
    <abstract>
      <?line 64?>

<t>This document specifies "dns-persist-01", a new validation method for the Automated Certificate Management Environment (ACME) protocol. This method allows a Certification Authority (CA) to verify control over a domain by confirming the presence of a persistent DNS TXT record containing CA and account identification information. This method is particularly suited for environments where traditional challenge methods are impractical, such as IoT deployments, multi-tenant platforms, and scenarios requiring batch certificate operations. The validation method is designed with a strong focus on security and robustness, incorporating widely adopted industry best practices for persistent domain control validation. This design aims to make it suitable for Certification Authorities operating under various policy environments, including those that align with the CA/Browser Forum Baseline Requirements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-acme-dns-persist/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Automated Certificate Management Environment Working Group mailing list (<eref target="mailto:acme@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/acme/"/>.
        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/sheurich/draft-sheurich-acme-dns-persist"/>.</t>
    </note>
  </front>
  <middle>
    <?line 68?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Automated Certificate Management Environment (ACME) protocol <xref target="RFC8555"/> defines mechanisms for automating certificate issuance and domain validation. The existing challenge methods, "http-01" and "dns-01", require real-time interaction between the ACME client and the domain's infrastructure during the validation process. While effective for many use cases, these methods present challenges in certain deployment scenarios.</t>
      <t>Examples include:</t>
      <ul spacing="normal">
        <li>
          <t>Internet of Things (IoT) deployments where devices may not be able to host an HTTP service or coordinate DNS updates in real-time.</t>
        </li>
        <li>
          <t>Edge compute and multi-tenant hosting platforms where the entity managing the DNS zone is distinct from the tenant subscribing to the certificate.</t>
        </li>
        <li>
          <t>Organizations that wish to pre-validate domains and batch issuance operations offline or at a later time.</t>
        </li>
        <li>
          <t>Scenarios requiring wildcard certificates where domain control is proven once and reused over an extended period.</t>
        </li>
        <li>
          <t>Environments with strict change management processes where DNS modifications require approval workflows.</t>
        </li>
      </ul>
      <t>This document defines a new ACME challenge type, "dns-persist-01". This method proves control over a Fully Qualified Domain Name (FQDN) by confirming the presence of a persistent DNS TXT record containing CA and account identification information.</t>
      <t>The record format is based on the "issue-value" syntax from <xref target="RFC8659"/>, incorporating an issuer-domain-name and a mandatory accounturi parameter <xref target="RFC8657"/> that uniquely identifies the applicant's account. This design provides strong binding between the domain, the CA, and the specific account requesting validation.</t>
      <section anchor="robustness-and-alignment">
        <name>Robustness and Alignment with Industry Best Practices</name>
        <t>This validation method is designed to provide a robust and persistent mechanism for domain control verification within the ACME protocol. Its technical design incorporates widely adopted security principles and best practices for domain validation, ensuring high assurance regardless of the specific CA policy environment. These principles include, but are not limited to:</t>
        <ol spacing="normal" type="1"><li>
            <t>The use of a well-defined, unique DNS label (e.g., "_validation-persist") for persistent validation records, minimizing potential conflicts.</t>
          </li>
          <li>
            <t>Consideration of DNS TTL values when determining the effective validity period of an authorization, balancing persistence with responsiveness to DNS changes (see <xref target="validation-data-reuse-and-ttl-handling"/>).</t>
          </li>
          <li>
            <t>Explicit binding of the domain validation to a specific ACME account through a unique identifier, establishing clear accountability and enhancing security against unauthorized use.</t>
          </li>
        </ol>
        <t>Certification Authorities operating under various trust program requirements will find this technical framework suitable for their domain validation needs, as its design inherently supports robust and auditable validation practices.</t>
        <t/>
      </section>
    </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?>

<dl>
        <dt><strong>DNS TXT Record Persistent DCV Domain Label</strong></dt>
        <dd>
          <t>The label "_validation-persist" as specified in this document. This label is consistent with industry practices for persistent domain validation.</t>
        </dd>
        <dt><strong>Authorization Domain Name</strong></dt>
        <dd>
          <t>The domain name at which the validation TXT record is provisioned. It is formed by prepending the DNS TXT Record Persistent DCV Domain Label to the FQDN being validated.</t>
        </dd>
        <dt><strong>Issuer Domain Name</strong></dt>
        <dd>
          <t>A domain name disclosed by the CA in Section 4.2 of the CA's Certificate Policy and/or Certification Practices Statement to identify the CA for the purposes of this validation method.
</t>
          <t>Note: The <tt>issuer-domain-names</tt> provided in the challenge object <bcp14>MAY</bcp14> be drawn from the machine-readable <tt>caaIdentities</tt> array in the ACME server's directory object, as specified in <xref target="RFC8555"/>, Section 9.7.6. This creates a clearer programmatic link between the server's advertised identities and the challenge object.</t>
        </dd>
        <dt><strong>Validation Data Reuse Period</strong></dt>
        <dd>
          <t>The period during which a CA may rely on validation data, as defined by the CA's practices and applicable requirements.</t>
        </dd>
        <dt><strong>persistUntil</strong></dt>
        <dd>
          <t>An optional parameter in the validation record that specifies the timestamp after which the validation record should no longer be considered valid by CAs. The value <bcp14>MUST</bcp14> be a base-10 encoded integer representing a UNIX timestamp in UTC (the number of seconds since 1970-01-01T00:00:00Z ignoring leap seconds).</t>
        </dd>
      </dl>
      <t/>
    </section>
    <section anchor="dns-persist-01-challenge">
      <name>The "dns-persist-01" Challenge</name>
      <t>The "dns-persist-01" challenge allows an ACME client to demonstrate control over an FQDN by proving it can provision a DNS TXT record containing specific, persistent validation information. The validation information links the FQDN to both the Certificate Authority performing the validation and the specific ACME account requesting the validation.</t>
      <t>When an ACME client accepts a "dns-persist-01" challenge, it proves control by provisioning a DNS TXT record at the Authorization Domain Name. Unlike the existing "dns-01" challenge, this record is designed to persist and may be reused for multiple certificate issuances over an extended period.</t>
      <section anchor="challenge-object">
        <name>Challenge Object</name>
        <t>The challenge object for "dns-persist-01" contains the following fields:</t>
        <ul spacing="normal">
          <li>
            <t><strong>type</strong> (required, string): The string "dns-persist-01"</t>
          </li>
          <li>
            <t><strong>url</strong> (required, string): The URL to which a response can be posted</t>
          </li>
          <li>
            <t><strong>status</strong> (required, string): The status of this challenge</t>
          </li>
          <li>
            <t><strong>issuer-domain-names</strong> (required, array of strings): A list of one or more Issuer Domain Names. The client <bcp14>MUST</bcp14> choose one of these domain names to include in the DNS TXT record. The challenge is successful if a valid TXT record is found that uses any one of the provided domain names.  </t>
            <t>
Each string in the array <bcp14>MUST</bcp14> be a domain name that complies with the following normalization rules:  </t>
            <ol spacing="normal" type="1"><li>
                <t>The domain name <bcp14>MUST</bcp14> be represented in A-label format (Punycode, <xref target="RFC5890"/>).</t>
              </li>
              <li>
                <t>All characters <bcp14>MUST</bcp14> be lowercase.</t>
              </li>
              <li>
                <t>The domain name <bcp14>MUST NOT</bcp14> have a trailing dot.</t>
              </li>
            </ol>
            <t>
The server <bcp14>MUST</bcp14> ensure the array is not empty. Servers <bcp14>MUST NOT</bcp14> send more than 10 issuer domain names. This limit serves as a practical measure to prevent denial-of-service vectors against clients. Clients <bcp14>MUST</bcp14> consider a challenge malformed if the <tt>issuer-domain-names</tt> array is empty or if it contains more than 10 entries, and <bcp14>MUST</bcp14> reject such challenges. Each domain name <bcp14>MUST NOT</bcp14> exceed 253 octets in length.</t>
          </li>
        </ul>
        <t>The following shows an example challenge object:</t>
        <figure anchor="fig-challenge-object">
          <name>Example dns-persist-01 Challenge Object</name>
          <sourcecode type="json"><![CDATA[
{
  "type": "dns-persist-01",
  "url": "https://ca.example/acme/authz/1234/0",
  "status": "pending",
  "issuer-domain-names": ["authority.example", "ca.example.net"]
}
]]></sourcecode>
        </figure>
        <t/>
      </section>
    </section>
    <section anchor="challenge-response-and-verification">
      <name>Challenge Response and Verification</name>
      <t>To respond to the challenge, the ACME client provisions a DNS TXT record for the Authorization Domain Name being validated. The Authorization Domain Name is formed by prepending the label "_validation-persist" to the domain name being validated.</t>
      <t>For example, if the domain being validated is "example.com", the Authorization Domain Name would be "_validation-persist.example.com".</t>
      <t>The RDATA of this TXT record <bcp14>MUST</bcp14> fulfill the following requirements:</t>
      <ol spacing="normal" type="1"><li>
          <t>The RDATA value <bcp14>MUST</bcp14> conform to the issue-value syntax defined in <xref target="RFC8659"/>, Section 4. To ensure forward compatibility, the server <bcp14>MUST</bcp14> ignore any parameter within the issue-value that has an unrecognized tag.</t>
        </li>
        <li>
          <t>The <tt>issuer-domain-name</tt> portion of the issue-value <bcp14>MUST</bcp14> be one of the Issuer Domain Names provided by the CA in the <tt>issuer-domain-names</tt> array of the challenge object.</t>
        </li>
        <li>
          <t>The issue-value <bcp14>MUST</bcp14> contain an accounturi parameter. The value of this parameter <bcp14>MUST</bcp14> be a unique URI identifying the account of the applicant which requested the validation, constructed according to <xref target="RFC8657"/>, Section 3.</t>
        </li>
        <li>
          <t>The issue-value <bcp14>MAY</bcp14> contain a <tt>policy</tt> parameter. If present, this parameter modifies the validation scope. The <tt>policy</tt> parameter follows the 'tag=value' syntax from <xref target="RFC8659"/>. The parameter's 'tag' and its defined values <bcp14>MUST</bcp14> be treated as case-insensitive.  </t>
          <t>
Note: This requirement ensures forward compatibility, allowing future extensions without breaking existing implementations, consistent with ACME's extensibility model (RFC 8555, Section 7.3). The explicit requirement is necessary to ensure consistent behavior across implementations; without it, some CAs might reject unknown parameters, preventing protocol evolution.  </t>
          <t>
The following value for the <tt>policy</tt> parameter is defined with respect to subdomain and wildcard validation:  </t>
          <ul spacing="normal">
            <li>
              <t><tt>policy=wildcard</tt>: If this value is present, the CA <bcp14>MAY</bcp14> consider this validation sufficient for issuing certificates for the validated FQDN, for specific subdomains of the validated FQDN (as covered by wildcard scope or specific subdomain validation rules), and for wildcard certificates (e.g., <tt>*.example.com</tt>). See <xref target="wildcard-certificate-validation"/> and <xref target="subdomain-certificate-validation"/>.</t>
            </li>
          </ul>
          <t>
If the <tt>policy</tt> parameter is absent, or if its value is anything other than <tt>wildcard</tt>, the CA <bcp14>MUST</bcp14> proceed as if the policy parameter were not present (i.e., the validation applies only to the specific FQDN).</t>
        </li>
        <li>
          <t>The issue-value <bcp14>MAY</bcp14> contain a <tt>persistUntil</tt> parameter. If present, the value <bcp14>MUST</bcp14> be a base-10 encoded integer representing a UNIX timestamp (the number of seconds since 1970-01-01T00:00:00Z ignoring leap seconds). CAs <bcp14>MUST NOT</bcp14> consider this validation record valid for new validation attempts after the specified timestamp. However, this does not affect the reuse of already-validated data.</t>
        </li>
      </ol>
      <t>For example, if the ACME client is requesting validation for the FQDN "example.com" from a CA that uses "authority.example" as its Issuer Domain Name, and the client's account URI is "https://ca.example/acct/123", it might provision:</t>
      <figure anchor="ex-basic-validation">
        <name>Basic Validation TXT Record</name>
        <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123")
]]></sourcecode>
      </figure>
      <t>The ACME server verifies the challenge by performing a DNS lookup for TXT records at the Authorization Domain Name. It then iterates through the returned records to find one that conforms to the required structure. For a record to be considered valid, its <tt>issuer-domain-name</tt> value <bcp14>MUST</bcp14> match one of the values provided in the <tt>issuer-domain-names</tt> array from the challenge object, and it must contain a valid <tt>accounturi</tt> for the requesting account. When comparing issuer domain names, the server <bcp14>MUST</bcp14> adhere to the normalization rules specified in <xref target="challenge-object"/>. The server also interprets any <tt>policy</tt> parameter values according to this specification.</t>
      <section anchor="multiple-issuer-support">
        <name>Multiple Issuer Support</name>
        <t>A domain <bcp14>MAY</bcp14> authorize multiple Certificate Authorities (CAs) by provisioning a separate <tt>_validation-persist</tt> TXT record for each issuer. This allows domain owners to maintain relationships with multiple CAs simultaneously, enhancing flexibility and resilience.</t>
        <section anchor="coexistence-of-records">
          <name>Coexistence of Records</name>
          <t>When multiple TXT records are present at the same DNS label (e.g., <tt>_validation-persist.example.com</tt>), each record functions as an independent authorization for the specified issuer. This follows a similar pattern to CAA records <xref target="RFC8659"/>, where multiple records at the same label are permissible.</t>
        </section>
        <section anchor="ca-verification-process">
          <name>CA Verification Process</name>
          <t>When a CA performs validation for a domain with multiple <tt>_validation-persist</tt> TXT records, it <bcp14>MUST</bcp14> follow these steps:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Query DNS</strong>: Retrieve all TXT records from the Authorization Domain Name.</t>
            </li>
            <li>
              <t><strong>Filter Records</strong>: Iterate through the returned records to find one where the <tt>issuer-domain-name</tt> value matches one of the Issuer Domain Names the CA is configured to use for this validation. The CA <bcp14>MUST</bcp14> ignore all other records.</t>
            </li>
            <li>
              <t><strong>Validate Record</strong>: If a matching record is found, the CA proceeds to validate it according to the requirements in this specification, including verifying the <tt>accounturi</tt> and <tt>persistUntil</tt> parameters.</t>
            </li>
            <li>
              <t><strong>Handle No Match</strong>: If no record with a matching <tt>issuer-domain-name</tt> is found, the validation attempt <bcp14>MUST</bcp14> fail.</t>
            </li>
          </ol>
        </section>
        <section anchor="security-and-management-considerations">
          <name>Security and Management Considerations</name>
          <t>When authorizing multiple issuers, domain owners <bcp14>MUST</bcp14> consider the following:</t>
          <dl>
            <dt><strong>Auditing</strong></dt>
            <dd>
              <t>Regularly audit DNS records to ensure that only intended CAs remain authorized. Remove records for CAs that are no longer in use.</t>
            </dd>
            <dt><strong>Independent Security</strong></dt>
            <dd>
              <t>Each authorized CA operates independently. The compromise of one CA's systems does not directly affect the security of other authorized CAs.</t>
            </dd>
            <dt><strong>Weakest Link</strong></dt>
            <dd>
              <t>The domain's overall security posture is influenced by the security practices of all authorized CAs. Domain owners should consider the practices of each CA they authorize.</t>
            </dd>
            <dt><strong>Authorization Removal</strong></dt>
            <dd>
              <t>To de-authorize a CA, the corresponding TXT record <bcp14>MUST</bcp14> be deleted from the DNS zone.</t>
            </dd>
          </dl>
        </section>
        <section anchor="example-authorizing-two-cas">
          <name>Example: Authorizing Two CAs</name>
          <t>This example demonstrates how a domain owner can authorize two different CAs, "ca1.example" and "ca2.example", to issue certificates for <tt>example.org</tt>.</t>
          <t><strong>DNS Configuration:</strong></t>
          <figure anchor="ex-multiple-ca-auth">
            <name>Multiple CA Authorization Records</name>
            <sourcecode type="dns"><![CDATA[
_validation-persist.example.org. 3600 IN TXT ("ca1.example;"
" accounturi=https://ca1.example/acme/acct/12345;"
" policy=wildcard")
_validation-persist.example.org. 3600 IN TXT ("ca2.example;"
" accounturi=https://ca2.example/acme/acct/67890;"
" persistUntil=1767225600")
]]></sourcecode>
          </figure>
          <t><strong>Verification Flow for CA1:</strong></t>
          <ol spacing="normal" type="1"><li>
              <t>CA1 queries for TXT records at <tt>_validation-persist.example.org</tt>.</t>
            </li>
            <li>
              <t>It receives both records.</t>
            </li>
            <li>
              <t>It filters for the record where <tt>issuer-domain-name</tt> is "ca1.example".</t>
            </li>
            <li>
              <t>It validates the request using this record, noting the <tt>policy=wildcard</tt> authorization.</t>
            </li>
            <li>
              <t>The second record for "ca2.example" is ignored.</t>
            </li>
          </ol>
          <t><strong>Verification Flow for CA2:</strong></t>
          <ol spacing="normal" type="1"><li>
              <t>CA2 queries for TXT records at <tt>_validation-persist.example.org</tt>.</t>
            </li>
            <li>
              <t>It receives both records.</t>
            </li>
            <li>
              <t>It filters for the record where <tt>issuer-domain-name</tt> is "ca2.example".</t>
            </li>
            <li>
              <t>It validates the request using this record, noting the <tt>persistUntil</tt> constraint.</t>
            </li>
            <li>
              <t>The first record for "ca1.example" is ignored.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="just-in-time-validation">
        <name>Just-in-Time Validation</name>
        <t>When processing a new authorization request, a CA <bcp14>MAY</bcp14> perform an immediate DNS lookup for <tt>_validation-persist</tt> TXT records at the Authorization Domain Name corresponding to the requested domain identifier.</t>
        <t>If one or more such records exist, the CA <bcp14>MUST</bcp14> evaluate them according to the requirements specified in <xref target="multiple-issuer-support"/>. If at least one record meets all validation requirements, the CA <bcp14>MAY</bcp14> transition the authorization to the "valid" status without returning a "pending" challenge to the client. This mechanism is an optimization and does not alter the ACME state machine defined in <xref target="RFC8555"/>. The server internally transitions the authorization from "pending" through "processing" to "valid" instantaneously. From the client's perspective, it receives a "valid" authorization object directly in response to its creation request.</t>
        <t>If no DNS TXT record meets the validation requirements, or if the records are absent, the CA <bcp14>MUST</bcp14> proceed with the standard authorization flow by returning a "pending" authorization with an associated <tt>dns-persist-01</tt> challenge object.</t>
        <t>This mechanism enables efficient reuse of persistent validation records while maintaining the security properties of the validation method.</t>
        <t/>
      </section>
    </section>
    <section anchor="wildcard-certificate-validation">
      <name>Wildcard and Subdomain Certificate Validation</name>
      <t>This validation method supports validation for wildcard certificates (e.g., *.example.com) and specific subdomains through the use of the <tt>policy=wildcard</tt> parameter.</t>
      <section anchor="scope-of-policywildcard">
        <name>Scope of <tt>policy=wildcard</tt></name>
        <t>When a DNS TXT record includes the <tt>policy=wildcard</tt> parameter value, it authorizes certificate issuance for:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>The validated FQDN itself</strong> - The base domain for which the TXT record exists (e.g., <tt>example.com</tt>)</t>
          </li>
          <li>
            <t><strong>Wildcard certificates</strong> - Certificates covering immediate subdomains (e.g., <tt>*.example.com</tt>)</t>
          </li>
          <li>
            <t><strong>Specific subdomains</strong> - Any specific subdomain of the validated FQDN (e.g., <tt>www.example.com</tt>, <tt>app.example.com</tt>, <tt>server.dept.example.com</tt>)</t>
          </li>
        </ol>
        <t>For example, a TXT record at <tt>_validation-persist.example.com</tt> containing <tt>policy=wildcard</tt> can validate certificates for <tt>example.com</tt>, <tt>*.example.com</tt>, <tt>www.example.com</tt>, and any other subdomain of <tt>example.com</tt>.</t>
        <t>If the <tt>policy</tt> parameter is absent, or if its value is anything other than <tt>wildcard</tt>, the validation applies only to the specific FQDN being validated and <bcp14>MUST NOT</bcp14> be considered sufficient for wildcard certificates or subdomains.</t>
        <t/>
      </section>
    </section>
    <section anchor="subdomain-certificate-validation">
      <name>Subdomain Certificate Validation</name>
      <t>When the <tt>policy=wildcard</tt> parameter is present (as described in <xref target="wildcard-certificate-validation"/>), CAs <bcp14>MAY</bcp14> issue certificates for subdomains of the validated FQDN. This section describes the implementation details for subdomain validation.</t>
      <section anchor="determining-permitted-subdomains">
        <name>Determining Permitted Subdomains</name>
        <t>To determine which subdomains are permitted, the FQDN for which the persistent TXT record exists (referred to as the "validated FQDN") must appear as the exact suffix of the FQDN for which a certificate is requested (referred to as the "requested FQDN").</t>
        <t>For example, if <tt>dept.example.com</tt> is the validated FQDN, a certificate for <tt>server.dept.example.com</tt> is permitted because <tt>dept.example.com</tt> is its suffix.</t>
      </section>
      <section anchor="implementation-requirements">
        <name>Implementation Requirements</name>
        <ul spacing="normal">
          <li>
            <t>The persistent DNS TXT record <bcp14>MUST</bcp14> include <tt>policy=wildcard</tt> for subdomain validation to be permitted.</t>
          </li>
          <li>
            <t>CAs <bcp14>MUST</bcp14> verify that the validated FQDN is a proper suffix of the requested FQDN.</t>
          </li>
          <li>
            <t>If the <tt>policy</tt> parameter is absent or has any value other than <tt>wildcard</tt>, subdomain validation <bcp14>MUST NOT</bcp14> be permitted.</t>
          </li>
        </ul>
        <t>See <xref target="subdomain-validation-risks"/> for important security implications of enabling subdomain validation.</t>
      </section>
      <section anchor="example-subdomain-validation">
        <name>Example: Subdomain Validation</name>
        <t>For a persistent TXT record provisioned at <tt>_validation-persist.example.com</tt> with <tt>policy=wildcard</tt>:
- Permitted: <tt>example.com</tt>, <tt>www.example.com</tt>, <tt>app.example.com</tt>, <tt>server.dept.example.com</tt>, <tt>*.example.com</tt>
- Not permitted without additional validation: <tt>otherexample.com</tt>, <tt>example.net</tt></t>
        <t/>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The requirement for CAs to ignore unknown parameter tags means that future extensions must be carefully designed to ensure that being ignored does not create security vulnerabilities. Extensions that require strict enforcement should use alternative mechanisms, such as separate record types or explicit version negotiation.</t>
      <section anchor="persistent-record-risks">
        <name>Persistent Record Risks</name>
        <t>The persistence of validation records creates extended windows of vulnerability compared to traditional ACME challenge methods. If an attacker gains control of a DNS zone containing persistent validation records, they can potentially obtain certificates for the validated domains until the validation records are removed or modified.</t>
        <t>Clients <bcp14>SHOULD</bcp14> protect validation records through appropriate DNS security measures, including:</t>
        <ul spacing="normal">
          <li>
            <t>Using DNS providers with strong authentication and access controls</t>
          </li>
          <li>
            <t>Implementing DNS Security Extensions (DNSSEC) where possible</t>
          </li>
          <li>
            <t>Monitoring DNS zones for unauthorized changes</t>
          </li>
          <li>
            <t>Regularly reviewing and rotating validation records</t>
          </li>
        </ul>
      </section>
      <section anchor="account-binding-security">
        <name>Account Binding Security</name>
        <t>The <tt>accounturi</tt> parameter provides strong binding between domain validation and specific ACME accounts. However, this binding depends on the security of the ACME account itself.</t>
        <t>The security of this method is fundamentally bound to the security of the ACME account's private key. If this key is compromised, an attacker can immediately use any pre-existing <tt>dns-persist-01</tt> authorizations associated with that account to issue certificates, without needing any further access to the domain's DNS infrastructure. This elevates the importance of secure key management for ACME clients far above that required for transient challenge methods, as the window of opportunity for an attacker is tied to the lifetime of the persistent authorization, not a momentary challenge.</t>
        <t>CAs <bcp14>SHOULD</bcp14> implement robust account security measures, including:</t>
        <ul spacing="normal">
          <li>
            <t>Strong authentication requirements for ACME accounts</t>
          </li>
          <li>
            <t>Account activity monitoring and anomaly detection</t>
          </li>
          <li>
            <t>Rapid account revocation capabilities</t>
          </li>
          <li>
            <t>Regular account security reviews</t>
          </li>
          <li>
            <t>Account key rotation policies and procedures</t>
          </li>
        </ul>
        <t>Clients <bcp14>SHOULD</bcp14> protect their ACME account keys with the same level of security as they would protect private keys for high-value certificates.</t>
        <section anchor="account-key-rotation">
          <name>Account Key Rotation</name>
          <t>The <tt>accounturi</tt> parameter is a stable identifier for the ACME account that persists across key rotations. When a client rotates their account key following the procedures defined in <xref target="RFC8555"/>, Section 7.3.5, the <tt>accounturi</tt> remains unchanged. Therefore, existing DNS TXT records containing the <tt>accounturi</tt> parameter do not require modification when performing account key rotations.</t>
        </section>
      </section>
      <section anchor="subdomain-validation-risks">
        <name>Subdomain Validation Risks</name>
        <t>Enabling subdomain validation via <tt>policy=wildcard</tt> creates significant security implications. Organizations using this feature <bcp14>MUST</bcp14> carefully control subdomain delegation and monitor for unauthorized subdomains. This policy value serves as the explicit mechanism for domain owners to opt-in to broader validation scopes.</t>
        <t>The ability to issue certificates for subdomains of validated FQDNs creates significant security risks, particularly in environments with subdomain delegation or where subdomains may be controlled by different entities.</t>
        <t>Potential risks include:</t>
        <ul spacing="normal">
          <li>
            <t>Subdomain takeover attacks where abandoned subdomains are claimed by attackers</t>
          </li>
          <li>
            <t>Unauthorized certificate issuance for subdomains controlled by different organizations</t>
          </li>
          <li>
            <t>Confusion about which entity has authority over specific subdomains</t>
          </li>
        </ul>
        <t>Organizations considering the use of subdomain validation <bcp14>MUST</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>Maintain strict control over subdomain delegation</t>
          </li>
          <li>
            <t>Implement monitoring for subdomain creation and changes</t>
          </li>
          <li>
            <t>Consider limiting subdomain validation to specific, controlled scenarios</t>
          </li>
          <li>
            <t>Provide clear governance policies for subdomain certificate authority</t>
          </li>
        </ul>
      </section>
      <section anchor="cross-ca-validation-reuse">
        <name>Cross-CA Validation Reuse</name>
        <t>The persistent nature of validation records raises concerns about potential reuse across different Certificate Authorities. While the issuer-domain-name parameter is designed to prevent such reuse, implementations <bcp14>MUST</bcp14> carefully validate that the issuer-domain-name in the DNS record matches the CA's disclosed Issuer Domain Name.</t>
      </section>
      <section anchor="record-tampering-and-integrity">
        <name>Record Tampering and Integrity</name>
        <t>DNS records are generally not authenticated end-to-end, making them potentially vulnerable to tampering. CAs <bcp14>SHOULD</bcp14> implement additional integrity checks where possible and consider the overall security posture of the DNS infrastructure when relying on persistent validation records.</t>
        <t>Additionally, CAs <bcp14>MUST</bcp14> protect their <tt>issuer-domain-name</tt> with robust security measures. Using DNSSEC to protect the CA's <tt>issuer-domain-name</tt> is a recommended mechanism for this purpose. An attacker who compromises the DNS for a CA's <tt>issuer-domain-name</tt> could disrupt validation or potentially impersonate the CA in certain scenarios. While this is a systemic DNS security risk that extends beyond this specification, it is amplified by any mechanism that relies on DNS for identity.</t>
      </section>
      <section anchor="issuer-domain-name-normalization-and-limits">
        <name>Issuer Domain Name Normalization and Limits</name>
        <t>The <tt>issuer-domain-names</tt> field requires domain names to be provided in a normalized form (lowercase A-labels, no trailing dot) to prevent errors and security issues arising from case-sensitivity differences or Unicode homograph attacks. By requiring a canonical representation, servers and clients can perform simple byte-for-byte comparisons, ensuring interoperability and deterministic validation. The order of names in the array has no significance.</t>
        <t>The server-side limit on the number of issuer domain names provided in a single challenge (e.g., 10) helps mitigate denial-of-service vectors where a client might be forced to perform an excessive number of DNS queries or a server might be burdened by validating against a large set of domains.</t>
      </section>
      <section anchor="dns-security-measures">
        <name>DNS Security Measures</name>
        <t>To enhance the security and integrity of the validation process, CAs and clients should consider implementing advanced DNS security measures.</t>
        <section anchor="dnssec">
          <name>DNSSEC</name>
          <t>DNS Security Extensions (DNSSEC) provide cryptographic authentication of DNS data, ensuring that the validation records retrieved by a CA are authentic and have not been tampered with. To ensure the integrity of the validation process, DNSSEC signatures <bcp14>SHOULD</bcp14> be validated on <tt>dns-persist-01</tt> TXT records.</t>
        </section>
        <section anchor="multi-perspective-validation">
          <name>Multi-Perspective Validation</name>
          <t>Multi-Perspective Issuance Corroboration (MPIC) is a technique to validate domain control from multiple network vantage points. This is a critical defense against localized network attacks, such as BGP hijacking and DNS spoofing, which could otherwise lead to certificate mis-issuance.</t>
          <t>For CAs subject to requirements like the CA/Browser Forum Baseline Requirements, MPIC is essential for robust domain validation. However, for private PKI systems where the network topology is well-known and such localized attacks are not part of the threat model, MPIC may be considered optional.</t>
        </section>
      </section>
      <section anchor="validation-data-reuse-and-ttl-handling">
        <name>Validation Data Reuse and TTL Handling</name>
        <t>This validation method is explicitly designed for persistence and reuse. The period for which a CA may rely on validation data is its <tt>Validation Data Reuse Period</tt> (as defined in <xref target="conventions-and-definitions"/>). However, if the DNS TXT record's Time-to-Live (TTL) is shorter than this period, the CA <bcp14>MUST</bcp14> treat the record's TTL as the effective validation data reuse period for that specific validation.</t>
        <t>CAs <bcp14>MAY</bcp14> reuse validation data obtained through this method for the duration of their validation data reuse period, subject to the TTL constraints described in this section. The <tt>persistUntil</tt> parameter indicates when the DNS validation record should no longer be considered valid for new validation attempts. If a <tt>persistUntil</tt> parameter is present in the DNS TXT record, the CA <bcp14>MUST NOT</bcp14> successfully complete a validation attempt after the date and time specified in that parameter. This restriction does not preclude reuse of data that has already been validated.</t>
      </section>
      <section anchor="persistuntil-parameter-considerations">
        <name>persistUntil Parameter Considerations</name>
        <t>The <tt>persistUntil</tt> parameter provides domain owners with direct control over the validity period of their validation records. CAs and clients should be aware of the following considerations:</t>
        <ul spacing="normal">
          <li>
            <t>Domain owners should set expiration dates for validation records that balance security and operational needs. To avoid unexpected validation failures during certificate renewal, domain owners are advised to:
            </t>
            <ul spacing="normal">
              <li>
                <t>Align <tt>persistUntil</tt> values with certificate lifetimes or planned maintenance intervals</t>
              </li>
              <li>
                <t>Monitor or set reminders for <tt>persistUntil</tt> expirations</t>
              </li>
              <li>
                <t>Document <tt>persistUntil</tt> practices in certificate management procedures</t>
              </li>
              <li>
                <t>Automate updates to validation records with new <tt>persistUntil</tt> values during certificate renewal workflows</t>
              </li>
            </ul>
          </li>
          <li>
            <t>CAs <bcp14>MUST</bcp14> properly parse and interpret the integer timestamp value as a UNIX timestamp (the number of seconds since 1970-01-01T00:00:00Z ignoring leap seconds) and apply the expiration correctly.</t>
          </li>
          <li>
            <t>CAs <bcp14>MUST</bcp14> reject or consider expired any validation record where the current time exceeds the <tt>persistUntil</tt> timestamp.</t>
          </li>
        </ul>
      </section>
      <section anchor="revocation-and-invalidation">
        <name>Revocation and Invalidation of Persistent Authorizations</name>
        <t>The persistent nature of <tt>dns-persist-01</tt> authorizations means that a valid DNS TXT record can grant control for an extended period, potentially even if the domain owner's intent changes or if the associated ACME account key is compromised. Therefore, explicit mechanisms for revoking or invalidating these persistent authorizations are critical.</t>
        <t>The primary method for an Applicant to invalidate a <tt>dns-persist-01</tt> authorization for a domain is to <strong>remove the corresponding DNS TXT record</strong> from the Authorization Domain Name. After the record is removed, new validation attempts for the domain will fail. This behavior represents a deliberate design trade-off: any existing authorization obtained via this method will remain valid until it expires as per the CA's Validation Data Reuse Period. This persistence underscores the importance of protecting the ACME account key.</t>
        <t>For situations requiring immediate revocation of issuance capability, such as a suspected account key compromise, the primary and most effective mechanism is to <strong>deactivate the ACME account</strong> as specified in <xref target="RFC8555"/>, Section 7.5.2. Deactivating the account immediately and irrevocably prevents it from being used for any further certificate issuance.</t>
        <t>ACME Clients <bcp14>SHOULD</bcp14> provide clear mechanisms for users to:</t>
        <ul spacing="normal">
          <li>
            <t>Remove the <tt>_validation-persist</tt> DNS TXT record.</t>
          </li>
          <li>
            <t>Monitor the presence and content of their <tt>_validation-persist</tt> records to ensure they accurately reflect desired authorization.</t>
          </li>
        </ul>
        <t>Certificate Authorities (CAs) implementing this method <bcp14>MUST</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>During a validation attempt, fail the validation if the corresponding DNS TXT record is no longer present or if its content does not meet the requirements of this specification (e.g., incorrect <tt>issuer-domain-name</tt>, missing <tt>accounturi</tt>, altered <tt>policy</tt>).</t>
          </li>
          <li>
            <t>Reject new validation attempts when the current time exceeds the timestamp specified in a <tt>persistUntil</tt> parameter, even if the DNS TXT record remains present and would otherwise satisfy all other validation requirements.</t>
          </li>
          <li>
            <t>Ensure their internal systems are capable of efficiently handling the validation failure when DNS records are removed or become invalid.</t>
          </li>
        </ul>
        <t>While this method provides a persistent signal of control, the fundamental ACME authorization object (as defined in <xref target="RFC8555"/>) remains subject to its own lifecycle, including expiration. A persistent DNS record allows for repeated authorizations, but each authorization object issued by the CA will have a defined validity period, after which it expires unless renewed.</t>
        <t/>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="acme-validation-methods-registry">
        <name>ACME Validation Methods Registry</name>
        <t>IANA is requested to register the following entry in the "ACME Validation Methods" registry:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Label</strong>: dns-persist-01</t>
          </li>
          <li>
            <t><strong>Identifier Type</strong>: dns</t>
          </li>
          <li>
            <t><strong>ACME</strong>: Y</t>
          </li>
          <li>
            <t><strong>Reference</strong>: This document</t>
          </li>
        </ul>
        <t/>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>When designing future extensions to this specification, new parameters <bcp14>SHOULD</bcp14> be designed to degrade gracefully when ignored by CAs that do not recognize them. Parameters that fundamentally change the security properties of the validation <bcp14>SHOULD NOT</bcp14> be introduced without a version negotiation mechanism.</t>
      <section anchor="dns-record-size-considerations">
        <name>DNS Record Size Considerations</name>
        <t>The RDATA of the TXT record, which contains the <tt>issue-value</tt>, may become large, particularly if the <tt>accounturi</tt> is long. While the total size of a TXT record's RDATA can be up to 65,535 octets, it must be formatted as a sequence of one or more character-strings, where each string is limited to 255 octets in length.</t>
        <t><strong>CA Implementation Guidelines:</strong>
- CAs <bcp14>SHOULD</bcp14> endeavor to keep the <tt>accounturi</tt> values they generate reasonably concise to minimize the final record size.</t>
        <t><strong>Client Implementation Guidelines:</strong>
- Clients <bcp14>MUST</bcp14> properly handle the creation of TXT records where the RDATA exceeds 255 octets. As specified in <xref target="RFC1035"/>, Section 3.3, clients <bcp14>MUST</bcp14> split the RDATA into multiple, concatenated, quote-enclosed strings, each no more than 255 octets. For example:</t>
        <artwork><![CDATA[
~~~ dns
_validation-persist.example.com. IN TXT ("first-part-of-long-string..."
" ...second-part-of-long-string")
~~~
{: #ex-long-txt-record title="Multi-String TXT Record Format"}
]]></artwork>
        <t>Failure to correctly format long RDATA values may result in validation failures.</t>
        <section anchor="domain-name-normalization-algorithm">
          <name>Domain Name Normalization Algorithm</name>
          <t>This section provides a non-normative algorithm for domain name normalization to promote interoperability. Both clients and servers <bcp14>SHOULD</bcp14> follow a consistent normalization process to ensure that domain names are handled uniformly.</t>
          <t>The recommended normalization process consists of the following four steps, applied in order:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Case-folding</strong>: Apply Unicode-aware, locale-independent case-folding to the entire domain name string to convert it to lowercase.</t>
            </li>
            <li>
              <t><strong>Unicode Normalization</strong>: Normalize the string to Unicode Normalization Form C (NFC).</t>
            </li>
            <li>
              <t><strong>Punycode Conversion</strong>: Convert each label of the domain name to its A-label (Punycode) representation as specified in <xref target="RFC5890"/>.</t>
            </li>
            <li>
              <t><strong>Trailing Dot Removal</strong>: Remove any trailing dot from the final string.</t>
            </li>
          </ol>
          <t>For example, a domain name like <tt>EXAMPLE.com.</tt> is normalized as follows:
1. After case-folding: <tt>example.com.</tt>
2. After NFC normalization: <tt>example.com.</tt>
3. After Punycode conversion: <tt>example.com.</tt>
4. After removing trailing dot: <tt>example.com</tt></t>
          <t>An internationalized domain name like <tt>üÑICODE-example.com.</tt> is normalized as follows:
1. After case-folding: <tt>ünicode-example.com.</tt>
2. After NFC normalization: <tt>ünicode-example.com.</tt>
3. After Punycode conversion: <tt>xn--nicode-example-9jb.com.</tt>
4. After removing trailing dot: <tt>xn--nicode-example-9jb.com</tt></t>
        </section>
      </section>
      <section anchor="ca-implementation-guidelines">
        <name>CA Implementation Guidelines</name>
        <t>Certificate Authorities implementing this validation method should consider:</t>
        <ul spacing="normal">
          <li>
            <t>Establishing clear policies for Issuer Domain Name disclosure in Certificate Policies and Certification Practice Statements</t>
          </li>
          <li>
            <t>Developing procedures for handling validation record TTL variations</t>
          </li>
          <li>
            <t>Creating account security monitoring and incident response procedures</t>
          </li>
          <li>
            <t>Providing clear documentation for clients on proper record construction</t>
          </li>
        </ul>
        <section anchor="error-handling">
          <name>Error Handling</name>
          <t>When implementing the "dns-persist-01" validation method, Certificate Authorities <bcp14>SHOULD</bcp14> return appropriate ACME error codes to provide clear feedback on validation failures. Specifically:</t>
          <ul spacing="normal">
            <li>
              <t>CAs <bcp14>SHOULD</bcp14> return a <tt>malformed</tt> error (as defined in <xref target="RFC8555"/>) when the TXT record has invalid syntax, such as duplicate parameters, invalid timestamp format in the <tt>persistUntil</tt> parameter, missing mandatory <tt>accounturi</tt> parameter, or other syntactic violations of the record format specified in this document.</t>
            </li>
            <li>
              <t>CAs <bcp14>SHOULD</bcp14> return an <tt>unauthorized</tt> error (as defined in <xref target="RFC8555"/>) when validation fails due to authorization issues, including:  </t>
              <ul spacing="normal">
                <li>
                  <t>The <tt>accounturi</tt> parameter in the DNS TXT record does not match the URI of the ACME account making the request</t>
                </li>
                <li>
                  <t>The <tt>persistUntil</tt> timestamp has expired, indicating that the validation record is no longer considered valid for new validation attempts</t>
                </li>
                <li>
                  <t>The <tt>issuer-domain-name</tt> in the DNS TXT record does not match any of the values provided in the <tt>issuer-domain-names</tt> array of the challenge object</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Note that these error codes apply to validation attempts on specific challenges. In the case of Just-in-Time Validation (see <xref target="just-in-time-validation"/>), when a CA finds a pre-existing DNS TXT record that does not meet validation requirements, the CA proceeds with the standard authorization flow by issuing a new <tt>pending</tt> challenge rather than returning an error.</t>
          <t>These error codes help ACME clients distinguish between different types of validation failures and take appropriate corrective actions.</t>
        </section>
      </section>
      <section anchor="client-implementation-guidelines">
        <name>Client Implementation Guidelines</name>
        <t>ACME clients implementing this validation method should consider:</t>
        <ul spacing="normal">
          <li>
            <t>Implementing secure DNS record management practices</t>
          </li>
          <li>
            <t>Providing clear user interfaces for managing persistent validation records</t>
          </li>
          <li>
            <t>Implementing validation record monitoring and alerting</t>
          </li>
          <li>
            <t>Designing appropriate error handling for validation failures</t>
          </li>
          <li>
            <t>Considering the security implications of persistent records in their threat models</t>
          </li>
        </ul>
      </section>
      <section anchor="dns-provider-considerations">
        <name>DNS Provider Considerations</name>
        <t>DNS providers supporting this validation method should consider:</t>
        <ul spacing="normal">
          <li>
            <t>Implementing appropriate access controls for validation record management</t>
          </li>
          <li>
            <t>Providing audit logging for validation record changes</t>
          </li>
          <li>
            <t>Supporting reasonable TTL values for validation records</t>
          </li>
          <li>
            <t>Considering dedicated interfaces or APIs for ACME validation record management</t>
          </li>
        </ul>
        <t/>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="basic-validation-example">
        <name>Basic Validation Example (FQDN Only)</name>
        <t>For validation of "example.com" by a CA using "authority.example" as its Issuer Domain Name, where the validation should only apply to "example.com":</t>
        <ol spacing="normal" type="1"><li>
            <t>CA provides challenge object with a list of valid Issuer Domain Names:  </t>
            <sourcecode type="json"><![CDATA[
{
  "type": "dns-persist-01",
  "url": "https://ca.example/acme/authz/1234/0",
  "status": "pending",
  "issuer-domain-names": ["authority.example", "ca.example.net"]
}
]]></sourcecode>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record (note the absence of a <tt>policy</tt> parameter for scope):  </t>
            <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123")
]]></sourcecode>
          </li>
          <li>
            <t>CA validates the record through DNS queries. This validation is sufficient only for "example.com".</t>
          </li>
        </ol>
      </section>
      <section anchor="wildcard-validation-example">
        <name>Wildcard Validation Example</name>
        <t>For validation of "*.example.com" (which also validates "example.com" and specific subdomains like "www.example.com") by a CA using "authority.example" as its Issuer Domain Name:</t>
        <ol spacing="normal" type="1"><li>
            <t>The CA provides a challenge object similar to the basic example, containing an <tt>issuer-domain-names</tt> array.</t>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record at the base domain's Authorization Domain Name, including <tt>policy=wildcard</tt>:  </t>
            <figure anchor="ex-wildcard-validation">
              <name>Wildcard Policy Validation Record</name>
              <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123;"
" policy=wildcard")
]]></sourcecode>
            </figure>
          </li>
          <li>
            <t>CA validates the record through DNS queries. This validation authorizes certificates for "example.com", "*.example.com", and specific subdomains like "www.example.com".</t>
          </li>
        </ol>
      </section>
      <section anchor="validation-example-with-persistuntil">
        <name>Validation Example with persistUntil</name>
        <t>For validation of "example.com" with an explicit expiration date:</t>
        <ol spacing="normal" type="1"><li>
            <t>The CA provides a challenge object similar to the basic example, containing an <tt>issuer-domain-names</tt> array.</t>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record including <tt>persistUntil</tt>:  </t>
            <figure anchor="ex-persist-until">
              <name>Validation Record with Expiration Time</name>
              <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123;"
" persistUntil=1721952000")
]]></sourcecode>
            </figure>
          </li>
          <li>
            <t>CA validates the record. This validation is sufficient only for "example.com" and will not be considered valid after the specified timestamp (2024-07-26T00:00:00Z).</t>
          </li>
        </ol>
      </section>
      <section anchor="wildcard-validation-example-with-persistuntil">
        <name>Wildcard Validation Example with persistUntil</name>
        <t>For validation of "*.example.com" with an explicit expiration date:</t>
        <ol spacing="normal" type="1"><li>
            <t>The CA provides a challenge object similar to the basic example, containing an <tt>issuer-domain-names</tt> array.</t>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record including <tt>policy=wildcard</tt> and <tt>persistUntil</tt>:  </t>
            <figure anchor="ex-wildcard-persist-until">
              <name>Wildcard Validation Record with Expiration Time</name>
              <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123;"
" policy=wildcard;"
" persistUntil=1721952000")
]]></sourcecode>
            </figure>
          </li>
          <li>
            <t>CA validates the record. This validation authorizes certificates for "example.com", "*.example.com", and specific subdomains, but will not be considered valid after the specified timestamp (2024-07-26T00:00:00Z).</t>
          </li>
        </ol>
      </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="RFC8659" target="https://www.rfc-editor.org/info/rfc8659" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8659.xml">
          <front>
            <title>DNS Certification Authority Authorization (CAA) Resource Record</title>
            <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <date month="November" year="2019"/>
            <abstract>
              <t>The Certification Authority Authorization (CAA) DNS Resource Record allows a DNS domain name holder to specify one or more Certification Authorities (CAs) authorized to issue certificates for that domain name. CAA Resource Records allow a public CA to implement additional controls to reduce the risk of unintended certificate mis-issue. This document defines the syntax of the CAA record and rules for processing CAA records by CAs.</t>
              <t>This document obsoletes RFC 6844.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8659"/>
          <seriesInfo name="DOI" value="10.17487/RFC8659"/>
        </reference>
        <reference anchor="RFC8657" target="https://www.rfc-editor.org/info/rfc8657" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8657.xml">
          <front>
            <title>Certification Authority Authorization (CAA) Record Extensions for Account URI and Automatic Certificate Management Environment (ACME) Method Binding</title>
            <author fullname="H. Landau" initials="H." surname="Landau"/>
            <date month="November" year="2019"/>
            <abstract>
              <t>The Certification Authority Authorization (CAA) DNS record allows a domain to communicate an issuance policy to Certification Authorities (CAs) but only allows a domain to define a policy with CA-level granularity. However, the CAA specification (RFC 8659) also provides facilities for an extension to admit a more granular, CA-specific policy. This specification defines two such parameters: one allowing specific accounts of a CA to be identified by URIs and one allowing specific methods of domain control validation as defined by the Automatic Certificate Management Environment (ACME) protocol to be required.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8657"/>
          <seriesInfo name="DOI" value="10.17487/RFC8657"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5890" target="https://www.rfc-editor.org/info/rfc5890" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5890.xml">
          <front>
            <title>Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document is one of a collection that, together, describe the protocol and usage context for a revision of Internationalized Domain Names for Applications (IDNA), superseding the earlier version. It describes the document collection and provides definitions and other material that are common to the set. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5890"/>
          <seriesInfo name="DOI" value="10.17487/RFC5890"/>
        </reference>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
          <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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="draft-sheth-identifiers-dns" target="https://datatracker.ietf.org/doc/draft-sheth-identifiers-dns/">
          <front>
            <title>Best Practices for Persistent References in DNS</title>
            <author initials="S." surname="Sheth" fullname="Swapneel Sheth">
              <organization>Verisign Labs</organization>
            </author>
            <author initials="A." surname="Kaizer" fullname="Andrew Kaizer">
              <organization>Verisign Labs</organization>
            </author>
            <date year="2025" month="April" day="22"/>
          </front>
        </reference>
        <reference anchor="birgelee-sc082-security">
          <front>
            <title>Security of SC-082 Redux</title>
            <author initials="H." surname="Birge-Lee" fullname="Henry Birge-Lee">
              <organization>Princeton University</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="cabf-br" target="https://cabforum.org/baseline-requirements-documents/">
          <front>
            <title>Baseline Requirements for the Issuance and Management of Publicly-Trusted TLS Server Certificates</title>
            <author>
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 642?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors acknowledge prior community work that directly informed this specification:</t>
      <ul spacing="normal">
        <li>
          <t>The CA/Browser Forum ballot proposals to enable persistent / static DNS Domain Control Validation signals in the Baseline Requirements <xref target="cabf-br"/>, in particular Ballot SC-082 ("Clarify CA Assisted DNS Validation under 3.2.2.4.7", authored by Michael Slaughter) and the active proposal SC-088 ("DNS TXT Record with Persistent Value DCV Method", also authored by Michael Slaughter). These efforts provided the policy framing and initial industry discussion motivating standardization of a reusable ACME DNS validation record.</t>
        </li>
        <li>
          <t>The formal and empirical security analysis of static / persistent DCV methods performed by Henry Birge-Lee ("Proof of static DCV security" presentation, the "Security of SC-082 Redux" paper <xref target="birgelee-sc082-security"/>, and related research), which helped clarify the threat model and informed the security considerations in this document.</t>
        </li>
        <li>
          <t>The Delegated DNS Domain Validation (DDDV) Threat Modeling Tiger Team discussions and document ("Validation SC - Delegated DNS Domain Validation (DDDV) Threat Model"), whose participants contributed to broad threat enumeration; notable contributors include Michael Slaughter (Amazon Trust Services), Corey Bonnell (DigiCert), Clint Wilson (Apple), and Martijn Katerbarg (Sectigo).</t>
        </li>
      </ul>
      <t>The authors also thank members of the ACME Working Group and CA/Browser Forum who provided early review, critique, and operational perspectives on persistent validation records.</t>
      <t>Any errors or omissions are the responsibility of the authors.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
HLvrbmULssnR3v8BZfqXH12uAAA=

-->

</rfc>
