Lion Cipher Lab

Sign your own DNS zone with DNSSEC and prove tamper-detection

Why it matters

Plain DNS has no security at all: any device on the path between a resolver and a name server can forge an answer, and the resolver has no way to tell a real reply from a fake one. That is how cache-poisoning attacks redirect users to attacker servers. DNSSEC (DNS Security Extensions) fixes exactly that one thing — it lets the OWNER of a zone cryptographically SIGN their records so a resolver can prove an answer really came from the zone owner and was not altered in flight. It does this with public-key signatures: the zone signs each RRset (a group of records of the same name and type) with a…

What you'll learn

Steps in this lab

  1. The one thing DNSSEC does — and the one thing it does not
  2. Stand up an authoritative BIND 9 server in a container
  3. Create the unsigned zone (plain DNS first)
  4. Generate the two keys: a KSK and a ZSK
  5. Sign the zone — RRSIGs, the DNSKEY RRset, and the DS record
  6. Serve the signed zone and query it with dig +dnssec
  7. Validate the chain by hand
  8. TAMPER: forge a record and watch DNSSEC catch it
  9. NSEC vs NSEC3 — proving a name does NOT exist without leaking the zone
  10. The judgment: what this costs to run, and when it is worth it
  11. What you did — and the reflex to keep

Open the full interactive lab →