Securing DNS with DNSSEC records
DNSSEC adds cryptographic signatures to DNS so resolvers can verify that answers are authentic and unmodified. It does this with a small family of resource record types that hold keys, signatures and authenticated denial-of-existence proofs. This reference explains each record’s role in signing a zone and in the chain of trust.
How it works
A signed zone publishes its public keys as DNSKEY records and a signature
(RRSIG) over every record set. The parent zone vouches for the child by
publishing a DS record — a hash of the child’s Key Signing Key:
example.com. DNSKEY 257 3 13 ( ... ) ; KSK — signs the DNSKEY set
example.com. DNSKEY 256 3 13 ( ... ) ; ZSK — signs everything else
example.com. RRSIG A 13 2 3600 ( ... ); signature over the A RRset
com. DS 12345 13 2 ( hash ); parent points at child KSK
A validating resolver starts at the root trust anchor and walks down: each DS
must match the child’s DNSKEY, and each RRSIG must verify against the
corresponding key. For names that do not exist, NSEC or NSEC3 provides a
signed proof of non-existence.
Tips and notes
- Roll the ZSK often; roll the KSK rarely (it requires a parent DS update).
NSEC3prevents zone walking;NSECis simpler but enumerable.CDS/CDNSKEYlet the child automate DS updates during rollovers.- A broken signature or missing DS yields SERVFAIL from validating resolvers.