Envelopes: one DNS message each; a seal is a valid signature (RRSIG), a cross a rejected replyKey coins: each zone's public key (DNSKEY); the golden coin in front is the resolver's trust anchorGolden links: DS records, a parent vouching for its child's keyPink blocks: the attacker and the eavesdropperA validating resolver asks ns1.example.com for www.example.com with the DO bit set. An off-path attacker's forged reply (198.51.100.66) arrives first, but it carries no signature that example.com's key can verify, so it is rejected as bogus and never cached. Each zone publishes its public key (DNSKEY) and signs its records (RRSIG); each parent vouches for its child's key with a signed DS record, and the resolver trusts only the root's key, its built-in trust anchor. The real answer (203.0.113.10) is checked link by link up to that anchor and returned with the AD flag. DNSSEC gives integrity, not privacy: plain DNS on port 53 can be read on the path, while DNS over TLS (port 853) and DNS over HTTPS hide the questions from the eavesdropper. 192.0.2.53, 203.0.113.10 and 198.51.100.66 are RFC 5737 documentation addresses and 192.168.1.20 is a private RFC 1918 address; the example.com keys, key tags and signatures are illustrative.

The attack fails

  1. Your laptop asked the resolver for www.example.com. The resolver has already followed the referrals, so it asks ns1.example.com directly. It sets the DO (DNSSEC OK) bit, which means: send the signatures too.

How the seals work

Checking the real answer

Encrypted DNS

The records, field by field

;; step 1/12 · ask-signed · query
;; Validating resolver → example.com
query     resolver → ns1.example.com (192.0.2.53), UDP/53
id        random 16 bits, from a random source port (RFC 5452)
flags     QR=0 RD=0
EDNS0     DO=1  (DNSSEC OK, RFC 3225)
question  www.example.com. IN A

A validating resolver that receives a reply that fails validation may ask the same or another server again; if nothing validates it returns SERVFAIL instead of an unverified answer (RFC 4035 §5.5). Encrypted DNS protects only the hop between your device and the resolver. The resolver still sees every name, and its own queries to authoritative servers are usually plain text.