DNS-Persist-01: A New Model for DNS-Based Challenge Validation
Operational benefits and use cases
- Many commenters see DNS-Persist-01 as solving real pain: fragile scripts, custom DNS servers, or CNAME/NS delegation hacks just to support DNS-01.
- Especially attractive for:
- Wildcard certificates.
- Internal / non–internet-facing services where HTTP-01/TLS-ALPN-01 aren’t possible.
- Large fleets where manual or periodic DNS changes are a bottleneck.
- Some say this finally makes publicly‑trusted certs for LAN/internal services easier than pre-ACME, and could replace complex DIY setups.
Account identifier exposure and privacy
- A major thread criticizes exposing the ACME account URI in DNS:
- It enables correlating multiple domains under the same account (Shodan-style lookups, infrastructure mapping).
- Acts as an extra data point in breach/scope expansion.
- Mitigations discussed:
- Use one ACME account per domain or per load balancer.
- Note that CAA
accounturiand CT logs already leak some account/domain linkage. - Some argue the account URI is effectively a random opaque ID anyway.
Design choice: account URI vs keys or random tokens
- Several suggest embedding a public key or random per-domain token instead of an account URI to avoid account correlation.
- Draft authors’ rationale (as relayed in-thread):
- Key rotation without DNS changes is core to the design; pinning a key in DNS defeats that.
- Reuse the same identifier as CAA
accounturi, simplifying policy and tooling. - Keep crypto binding inside ACME; DNS record matching is just string comparison.
Security model, DNS, and DNSSEC
- Consensus that DNS control has always been a single point of failure for ACME; DNS-Persist-01 doesn’t change that, just streamlines the mechanism.
- Threats discussed:
- Compromised registrars and DNS providers dominate; extra crypto on top of DNS doesn’t help there.
- On‑path tampering between CA and authoritative DNS is mitigated by multi‑perspective DNS checks (MPIC) and optionally DNSSEC.
- Debate over DNSSEC:
- Some call it “dangerous” operationally since misconfigurations can drop a domain off the Internet; others say it’s just clumsy but security‑beneficial.
- The draft only “SHOULD” use DNSSEC; mandatory DNSSEC is seen as blocking adoption, though some wish TXT‑based trust signals would require it.
Reuse windows, revocation, and CAA
- Concern about how to revoke/expire authorizations:
- Removing the TXT record invalidates authorization once CAs refresh (ballot caps reuse at 10 days; Let’s Encrypt says they’re moving to ~7 hours).
- CAA can already restrict:
- Which accounts may issue for a domain.
- Which validation methods (e.g., limiting to
dns-persist-01).
Impact on existing setups and tooling
- Existing ACME challenge types remain; users relying on HTTP-01 or traditional DNS-01 don’t need to change anything.
- DNS-Persist-01 is optional, mainly a convenience / automation improvement for those who adopt it.
- Tooling:
- Support exists in Pebble; lego integration is in progress.
- Certbot and others are tracking feature support.
Operational patterns and DNS APIs
- Many share approaches using:
- Granular DNS APIs (Route53 conditions, PowerDNS API, BIND RFC2136, acme-dns).
- Per-host or per-record keys to limit blast radius if a single machine is compromised.
- Discussion around DNS providers:
- Some hosts allow very fine-grained API scoping; others only at zone level.
- Suggestions include using a dedicated
_acme-challengesubdomain delegated to an automation-friendly DNS service.
Alternatives and broader PKI/DANE debate
- Some argue internal services might be better served by a private CA with name-constrained roots, avoiding internet dependency.
- Others see this as a step towards tighter DNS–TLS integration and “True DANE,” but note DNSSEC’s rough deployment history and browser ecosystem realities.
- There’s side discussion on short-lived certs, rate limits, and name-constrained intermediates, but those are seen as orthogonal to DNS-Persist-01.