DNSSEC: signed DNS answers
In short: Plain DNS is believed without proof. DNSSEC signs the answers so forgeries can be detected. It encrypts nothing; it only proves that the answer is genuine.
The problem
Anyone who slips a false answer to a resolver (cache poisoning, Spoofing) sends you to a foreign site although you typed the right address.
How DNSSEC protects
- Each zone has a key pair (asymmetric encryption). The zone signs its DNS records (digital signature); the signature sits next to them as an
RRSIGrecord. - The public key is published as
DNSKEYin the zone. - A chain of trust runs from the root (
.) via.deto your own domain: the parent zone carries aDSrecord, the hash of the child zone’s key. - A validating resolver follows the chain. If something doesn’t match, it returns an error instead of a forgery.
Proving “does not exist”
NSEC/NSEC3 prove with a signature that a name doesn’t exist.
Enabling
- Turn on DNSSEC at your DNS provider (it signs the zone).
- Put the shown
DSrecord at your domain registrar. - Check with a validation tool. A wrong
DSmakes the domain unreachable for validating resolvers, so be careful and plan key rollovers.
Limits
No protection against eavesdropping (TLS protects the connection itself), and effective only if the resolver validates.