DNSSEC

DNSSEC (DNS Security Extensions) adds cryptographic signatures to DNS responses, allowing resolvers to verify that the data they receive is authentic and has not been modified in transit. It protects against cache poisoning and man-in-the-middle attacks on DNS.

How DNSSEC Works

A zone operator generates a key pair and uses the private key to sign every record set in the zone. Each signature is published alongside the records as an RRSIG record. When a validating resolver receives a response, it uses the zone's public key (published as a DNSKEY record) to verify the RRSIG. If the signature is valid and not expired, the resolver knows the data is authentic.

To prevent attackers from substituting a fake DNSKEY, the zone's public key is itself authenticated by the parent zone through a DS (Delegation Signer) record. This creates a chain of trust from the root zone down to your domain.

Key Records

Chain of Trust

DNSSEC validation starts at the root zone, which is signed with a well-known key (the root trust anchor). The root zone contains DS records for each TLD. Each TLD zone is signed and contains DS records for its child zones. This chain continues until it reaches your domain.

For example, validating www.example.com involves:

  1. The root zone's DNSKEY validates the DS record for .com
  2. The .com zone's DNSKEY (verified via the DS) validates the DS record for example.com
  3. The example.com zone's DNSKEY (verified via the DS) validates the RRSIG on the A record for www.example.com

If any link in this chain is broken, validation fails and the resolver returns a SERVFAIL to the client.

Should You Enable DNSSEC?

Yes, if your registrar and DNS provider both support it. DNSSEC prevents a class of attacks where an attacker intercepts DNS queries and returns forged responses to redirect traffic. It is particularly important for domains that handle financial transactions, email, or authentication.

Caveats to be aware of:

Common Issues

Check DNSSEC for your domain

Open Domain Lookup

Check your domain's DNSSEC with the DNS lookup tool →