Domain name security, theft, recovery and disputes
Abstract diagonal lattice illustration representing DNSSEC (DNS Security Extensions)

LayerDNS

DNSSEC (DNS Security Extensions)

Governing policy
RFC 4033, 4034 and 4035
Window
Parent DS TTL before any change
Layer
DNS
Authority
RFC 4033, DNS Security Introduction and Requirements, March 2005

Cryptographic proof that a DNS answer came from your zone — and the one control most likely to take your own site offline

What DNSSEC protects, and what it does not

DNSSEC — the DNS Security Extensions — attaches cryptographic signatures to the records in your zone so that a resolver can prove the answer it received genuinely came from you and was not forged or altered in transit. That is the entire promise. It protects the answers, not the ownership.

That distinction is the one people get wrong most often, and it is expensive. An attacker who compromises your registrar account does not have to defeat any cryptography. He removes the DS record — the hash of your zone's key that the registry publishes in the parent zone, the link that anchors your domain to the global chain of trust — waits out the cached copies, and re-points the domain to his own nameservers with a clean, unsigned, entirely valid delegation. Registration-level takeover is a registrar and registry problem, and it is answered with transfer locks and registry lock, not with signatures.

What DNSSEC does answer is the class of attack in which someone lies to a resolver about your records: cache poisoning, on-path tampering, a rogue answer injected between your authoritative server and the user. It is also, by a wide margin, the domain control most likely to take your own site down with no attacker involved at all.

How the chain of trust is built

DNSSEC adds four record types and two message header bits. DNSKEY is the public half of the key pair your zone signs with. RRSIG is the signature attached to a set of records. DS (Delegation Signer) is a hash of your key-signing key, published by the registry in the parent zone. NSEC, and its hashed variant NSEC3, proves that a name does not exist without letting anyone enumerate your whole zone. The header bits are CD (Checking Disabled) and AD (Authenticated Data). All of it is specified in RFC 4033 and its companions RFC 4034 and RFC 4035, published March 2005.

The structure is deliberately plain. RFC 4033 describes it as an alternating sequence of DNSKEY RRsets and DS RRsets forming a chain of signed data, "with each link in the chain vouching for the next." The root zone's key is the trust anchor — the key a validator trusts inherently, defined in the RFC as "a configured DNSKEY RR or DS RR hash of a DNSKEY RR." The root signs a DS for .net; the .net registry signs a DS for the domain beneath it; that DS is a hash of that domain's key-signing key. Break any link and everything below it fails.

Only a security-aware resolver — one that "supports the EDNS0 message size extension and the DO bit" — walks the chain. A non-validating resolver ignores DNSSEC completely, which explains the most confusing symptom in this area: a broken domain is dead for some users and perfectly fine for others. A signed zone whose parent publishes no DS is what RFC 4033 calls an island of security, "a signed, delegated zone that does not have an authentication chain from its delegating parent." It gets no validation benefit — and, importantly, no failure mode either.

Fail-closed: the .de outage of 5 May 2026

DNSSEC does not degrade gracefully. A validating resolver that cannot verify the chain does not quietly fall back to the unsigned answer. It returns SERVFAIL, and to the user the site simply does not exist. The clearest demonstration of what that means at scale happened on 5 May 2026, at the level of an entire country-code top-level domain.

DENIC, the registry operator for .de, started publishing incorrect DNSSEC signatures for the .de zone from approximately 19:30 UTC during a routine, scheduled key rollover; non-validatable signatures were generated and distributed. Every .de domain — every one, regardless of how carefully its own operator had configured anything — became unresolvable for users behind validating resolvers. Cloudflare mitigated the outage on its own resolver by marking .de insecure, a negative trust anchor, at 22:17 UTC: roughly three hours of impact. Cloudflare noted that its practice of serving stale cached records past TTL expiry cushioned the initial impact.

Read what did not happen there. Nothing was hacked. No registrant misconfigured anything. No zone file was wrong. One signature failed to verify during a routine key change, and a national namespace went dark for validating users. That is the risk profile you accept when you sign.

Smaller versions are well documented. A DNSSEC signing error at nasa.gov in January 2012 caused Comcast's validating resolvers to refuse to resolve the domain, and Comcast published a detailed post-mortem. HBO NOW was unavailable from Comcast networks in March 2015 for the same class of reason.

Moving a signed domain without breaking it

The most common self-inflicted DNSSEC outage is a registrar transfer or DNS host change performed as though the zone were unsigned. The new operator serves the zone with its own keys, the DS still sitting in the parent points at the old key, and validating resolvers SERVFAIL the domain. Google's migration guidance for signed zones warns that failing to coordinate the move with both the DNS operator and the registrar ends with validating resolvers "treating the domain as invalid."

There are two ways through, and choosing between them belongs at step one of the runbook.

Unsign first. Remove the DS at the registrar, wait out the DS TTL so that no validator still holds a cached copy, then move. The domain is unprotected for that window but it is never broken. This is the simpler path and the right one for most portfolios.

Preserve the chain. Harder, with real prerequisites: both operators must support importing DNSKEY records and publishing multiple DS records, the zone must use the same signing algorithm at both ends ("zones must be signed with all algorithms in use"), automated key rotation must be halted at both, and you must be able to add a second DS at the parent. The order is stop key rotation, create the new signed zone, import the unsigned zone data, exchange DNSKEY records between operators, add the new DS alongside the old one at the registrar, wait for the parent NS and DS TTLs to expire, change the NS delegation, wait again, remove the old DNSKEYs, and only then remove the old DS. A zone can safely leave that multi-operator state after a week, and should not remain in it for more than a month or two.

Signatures that expire while nobody is watching

RRSIGs carry explicit inception and expiration timestamps. When a signature expires, the zone fails validation even though not one record changed and nobody touched anything. This is the single most common cause of a self-inflicted DNSSEC outage, and its shape is always the same: a signer job stops quietly, nothing looks wrong for days because the existing signatures are still inside their validity window, and then the domain goes dark on a schedule nobody was tracking.

So turning DNSSEC on is not the decision. The decision is who re-signs the zone and rolls the keys afterward, on what schedule, and who gets paged when that stops. A one-click DNSSEC button at a registrar is fine when the answer is "the registrar, automatically, indefinitely." It is a liability when nobody has asked.

Common mistakes

  • Transferring a signed domain to a new registrar or DNS host without removing the DS first, so the old DS points at a key the new host does not have.
  • Removing the DS and moving in the same hour, without waiting out the DS TTL.
  • Concluding the outage is not DNSSEC because "it works for me" — the domain is dark only for users behind validating resolvers, historically particular ISPs and public resolvers rather than everyone.
  • Letting RRSIGs expire because a signing job stopped without alerting.
  • Changing signing algorithm partway through a migration.
  • Turning DNSSEC on at a registrar without establishing who is responsible for re-signing and rolling keys afterward.
  • Treating DNSSEC as protection for the registration itself. It is not.

What good practice looks like

  • Decide explicitly who signs — registrar, DNS host, or you — and confirm that the same party also rolls keys and re-signs on a schedule.
  • Prefer CDS and CDNSKEY automation, defined in RFC 7344 and RFC 8078, where the registrar and registry support it, so DS updates do not depend on a person pasting a hash into a web form.
  • Monitor from outside, using a validating resolver, and alarm on approaching RRSIG expiry rather than on SERVFAIL after the fact.
  • Before any registrar transfer or DNS host change, check whether a DS exists at the parent and make the unsign-or-preserve decision deliberately.
  • Lower the DS TTL in advance of a planned change so the mandatory waiting window is short.

Where a signed zone is already broken, the fix is almost always at the parent — removing or correcting the DS — and that requires the registrar to act. Escalation there is a registration problem, not a DNS one.

DNSSEC is what makes a CAA record enforceable

There is a second, less obvious payoff. Under the CA/Browser Forum Baseline Requirements, a certificate authority may treat a failed CAA lookup as permission to issue only if three conditions all hold: the failure is outside the CA's own infrastructure, the lookup was retried at least once, and "the domain's zone does not have a DNSSEC validation chain to the ICANN root."

Turn that around. If your zone is signed and anchored, an attacker who suppresses or spoofs the CAA lookup cannot count on the CA proceeding anyway; the absence of an answer is not the same as the absence of a record. If your zone is unsigned, or is an island of security with no DS at the parent, that protection does not apply. DNSSEC is what makes an absent CAA record authoritative rather than merely unanswered — which is why the two controls are worth deploying as a pair rather than in isolation.

Frequently Asked Questions

Does DNSSEC stop someone from stealing my domain?

No, and this is the most common misunderstanding about it. DNSSEC signs the answers your zone gives out so a resolver can verify they were not forged in transit. It says nothing about who is entitled to control the registration. An attacker who compromises your registrar account can remove the DS record at the parent, wait out the cached copies, and re-delegate the domain to his own unsigned nameservers with no cryptographic obstacle at all. Protection against takeover of the registration comes from registrar transfer locks, registry lock, and access control on the registrar account.

Why is my site down for some people and fine for others?

That pattern is close to diagnostic of a DNSSEC failure. Only a security-aware resolver validates the chain of signatures; a resolver that does not support validation ignores DNSSEC entirely and serves the answer regardless. So when your chain breaks, users behind validating resolvers get SERVFAIL and see a site that appears not to exist, while everyone else sees nothing wrong. Historically this has meant particular ISPs and public resolvers rather than the whole internet. If your own connection works, that tells you almost nothing about whether the domain is broken.

Do I have to turn DNSSEC off before transferring my domain?

Not necessarily, but you have to choose deliberately. The simpler path is to unsign first: remove the DS record at the registrar, wait out the DS TTL so that no validator still holds it cached, then transfer. The domain is unprotected during that window but it never breaks. The alternative is a chain-preserving migration, which requires both DNS operators to support DNSKEY import and multiple DS records, the same signing algorithm at both ends, halted key rotation, and the ability to publish a second DS at the parent while the old one is still live.

What is a DS record and who controls it?

The DS, or Delegation Signer, record is a hash of your zone's key-signing key, and it is what anchors your domain into the global chain of trust. It does not live in your zone. It lives in the parent zone, published by the registry, and it normally can only be changed through your registrar. That split matters operationally: the key material is yours, but the record that makes it count is somewhere you cannot edit directly. CDS and CDNSKEY records, defined in RFC 7344 and RFC 8078, exist so a child zone can signal a DS change to the parent automatically.

What happened to the .de domains in May 2026?

On 5 May 2026, DENIC, the registry operator for .de, began publishing incorrect DNSSEC signatures for the .de zone at approximately 19:30 UTC during a routine, scheduled key rollover. The signatures could not be validated, so every .de domain became unresolvable for users behind validating resolvers. Cloudflare mitigated it on its resolver by marking .de insecure, a negative trust anchor, at 22:17 UTC, giving roughly three hours of impact. Nothing was hacked and no individual domain was misconfigured. It is the sharpest available illustration of DNSSEC failing closed.

How do I know if my DNSSEC is about to break?

Watch it from outside your own infrastructure, using a resolver that actually validates, and alarm on the conditions that precede an outage rather than on the outage. The two that matter most are RRSIG expiry approaching, because signatures carry hard expiration timestamps and a stalled signing job produces no symptom until they lapse, and any change in whether a DS record is present at the parent. Checking that the site loads from your desk is not monitoring; your resolver may not validate, in which case it will never show you the failure.

Is DNSSEC worth turning on at all?

It depends on who will own it after the day it is enabled. DNSSEC genuinely defeats forged and tampered DNS answers, and it is what makes an absent CAA record authoritative rather than merely unanswered. It also fails closed, so an operational lapse takes the domain offline for a share of users rather than degrading quietly. If a named party is responsible for re-signing, rolling keys, and monitoring the chain, sign. If nobody is, an unsigned zone is more available than a badly maintained signed one.
Keep reading

Read the guides

The entries describe what a mechanism is. The guides describe what to do with it, in sequence, and where each route closes.

This is a reference, not a practice. Hartzer.net sells nothing, takes no engagements, and is not legal advice. Nothing here creates any relationship or preserves any deadline.

Top