Octet

What does DNSSEC protect against, and what does it not do?

Show the answer

Say this first

DNSSEC lets a validating resolver prove an answer came from the zone owner unchanged. Each record set is signed (RRSIG), the zone publishes its public keys (DNSKEY), and the parent vouches for the child's key with a DS record, up to the root's trust anchor. It stops cache poisoning and spoofed answers. It does not encrypt anything, does not hide which names you look up, and does not protect the hop between a non-validating stub and its resolver.

Go deeper

The chain of trust

  1. The resolver trusts the root key (the trust anchor).
  2. The root zone signs a DS record for com., a hash of the .com key.
  3. The .com zone signs a DS record for example.com..
  4. example.com signs its records with keys that match that DS.

Zones usually have a key-signing key (KSK, the one the parent's DS points at) and a zone-signing key (ZSK, which signs the records). NSEC or NSEC3 records prove that a name does not exist.

What a validating resolver does

Valid answers get the AD (authenticated data) bit. Answers that fail validation become SERVFAIL. The client gets no answer at all rather than a forged one.

How DNSSEC outages happen

  • Signatures expire because the signing job stopped.
  • A key rollover without updating the DS at the registrar.
  • Moving to a new DNS provider while the old DS stays at the parent.

dig +dnssec shows the RRSIGs, dig +cd turns checking off for a comparison, and delv explains validation step by step.

Traps

  • Saying DNSSEC encrypts DNS.