DNSSEC adds cryptographic signatures to DNS records, protecting against cache poisoning and spoofing attacks. Learn how it works and whether you need it.
Anay Pandya
1,854 words
Anay Pandya
Founder of ZeriFlow · 10 years fullstack engineering · About the author
Key Takeaways
DNSSEC (Domain Name System Security Extensions) is a set of protocols that adds cryptographic authentication to DNS responses. It doesn't encrypt DNS queries — it verifies that the answers you receive are authentic and haven't been tampered with.
<div class="zf-stat-callout" style="background:#0d1117;border:1px solid rgba(16,185,129,0.25);border-left:3px solid #10b981;border-radius:4px;padding:16px 20px;margin:24px 0"> <p style="margin:0 0 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.15em;color:#10b981;font-family:monospace">ZeriFlow Data — 12,400+ sites analyzed</p> <p style="margin:0;font-size:13px;color:#e2e8f0;line-height:1.6;font-family:monospace">Only 18% of the 12,400+ domains analyzed by ZeriFlow have DNSSEC validation enabled. Without cryptographic DNS records, DNS cache poisoning can silently redirect users to attacker-controlled servers.</p> </div>
Keep reading
Is your site actually secure?
Run a free check — 60 seconds
Think of DNS as a phone book for the internet. When you type example.com, your computer asks a DNS server: "What's the IP address for this domain?" The DNS server responds with something like 93.184.216.34.
The problem: standard DNS has no way to verify that this answer is correct. An attacker who can intercept or forge DNS responses can send you to a different IP address entirely — one they control.
DNSSEC solves this by adding digital signatures to DNS records. Your computer can verify these signatures to confirm that the DNS response really came from the domain owner and hasn't been modified in transit.
DNS spoofing (also called DNS cache poisoning) is an attack where a malicious actor injects fake DNS records into a resolver's cache. Here's how it works:
example.com gets sent to the attacker's server.Once DNS is poisoned, the attacker controls where your users go:
example.com in their browser bar but are on the attacker's server. The SSL certificate won't match (unless the attacker has obtained one), but many users ignore certificate warnings.DNS spoofing isn't theoretical. Major ISPs have been targeted, and the Kaminsky vulnerability (discovered in 2008) affected virtually every DNS implementation in the world. While mitigations were deployed rapidly, DNS remains fundamentally unauthenticated without DNSSEC.
DNSSEC creates a chain of trust from the DNS root zone all the way down to your domain. Every DNS record is accompanied by a cryptographic signature that proves:
Root Zone (.) — Signs .com zone's keys
↓
.com Zone — Signs example.com zone's keys
↓
example.com Zone — Signs individual DNS records
↓
A Record: 93.184.216.34 — Verified authenticEach level signs the keys for the level below it. The root zone's keys are the trust anchor — they're hardcoded into DNS resolvers worldwide.
When a DNSSEC-aware resolver looks up example.com:
example.com to verify the RRSIG.com zone to verify the DNSKEY.com zone's keys against the root zone's trust anchorDNSSEC introduces several new DNS record types:
### DNSKEY Record Contains the public key used to sign DNS records for a zone. There are typically two types:
example.com. 3600 IN DNSKEY 257 3 13 (
mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+
KkxLbxILfDLUT0rAK9iUzy1L53eKGQ==
)### RRSIG Record The signature for a specific record set. Each DNS record type has its own RRSIG:
example.com. 3600 IN RRSIG A 13 2 3600 (
20250401000000 20250301000000 12345 example.com.
oJB1W6WNGv+ldvQ3WDG0MQkg5IEhjRip8WTr
PYGv07h108dUKGMeDPKijVCHX3DDKdfb+v6o
B9wfuh3DTJXUAfI/M0zmO/zz8bW0Rznl8O3t
GNazPwQKkRN20XPXV6nwwfoXmJQbsLNNLfkE
i9M7NAT/aVf3tyP8ywP8eCCNk=
)### DS Record A hash of the child zone's DNSKEY, stored in the parent zone. This is the link in the chain of trust:
example.com. 3600 IN DS 12345 13 2 (
49FD46E6C4B45C55D4AC69CBD3CD34AC1AFE51DE
)The DS record lives in the .com zone and says: "The DNSKEY for example.com should hash to this value."
### NSEC / NSEC3 Records These prove that a record does NOT exist (authenticated denial of existence). Without these, an attacker could strip DNSSEC signatures and return unsigned, fake "does not exist" responses.
### Verdict Yes, enable DNSSEC — especially if you use a managed DNS provider that handles key rotation automatically (Cloudflare, AWS Route 53, Google Cloud DNS, dnsimple). The operational risk is minimal with modern tooling.
Enabling DNSSEC is a two-step process: configure it at your DNS provider, then add the DS record at your domain registrar.
If Cloudflare manages both your DNS and domain registration, enabling DNSSEC is one click:
If Cloudflare manages DNS but your registrar is elsewhere: 1. Enable DNSSEC in Cloudflare 2. Cloudflare shows you the DS record details 3. Log in to your registrar and add the DS record manually
# Enable DNSSEC signing
aws route53 enable-hosted-zone-dnssec \
--hosted-zone-id Z1234567890
# Get the DS record to add at your registrar
aws route53 get-dnssec \
--hosted-zone-id Z1234567890# Enable DNSSEC for a managed zone
gcloud dns managed-zones update my-zone \
--dnssec-state on
# Get DS records
gcloud dns managed-zones describe my-zone \
--format="value(dnssecConfig.defaultKeySpecs)"For self-hosted DNS:
# Generate KSK
dnssec-keygen -a ECDSAP256SHA256 -f KSK example.com
# Generate ZSK
dnssec-keygen -a ECDSAP256SHA256 example.com
# Sign the zone
dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) \
-N INCREMENT -o example.com -t example.com.zone# Check if DNSSEC is enabled
dig +dnssec example.com A
# Look for the 'ad' (Authenticated Data) flag in the response
# flags: qr rd ra ad; means DNSSEC validated
# Check DS record at parent
dig +short example.com DS
# Verify the chain of trust
dig +sigchase +trusted-key=./trusted-key.key example.com A| Problem | Symptom | Fix |
|---|---|---|
| Missing DS record | DNSSEC signed but not validated | Add DS record at registrar |
| Expired RRSIG | SERVFAIL for validating resolvers | Re-sign zone or fix auto-signing |
| DS/DNSKEY mismatch | SERVFAIL | Update DS record at registrar to match current KSK |
| Algorithm mismatch | Partial validation failures | Ensure consistent algorithm across KSK, ZSK, and DS |
DNSSEC strengthens email security in several ways:
### Protecting MX Records Without DNSSEC, an attacker who poisons your MX records can redirect all email for your domain to their server. With DNSSEC, MX records are cryptographically authenticated.
### DANE (DNS-Based Authentication of Named Entities) DANE uses DNSSEC to publish TLS certificate information in DNS (via TLSA records). This allows mail servers to verify each other's certificates without relying solely on certificate authorities.
# TLSA record — pins the certificate for mail.example.com
_25._tcp.mail.example.com. IN TLSA 3 1 1 (
2b8d0f87a5f5... # SHA-256 hash of the certificate
)### SPF, DKIM, DMARC Protection SPF, DKIM, and DMARC all rely on DNS records. DNSSEC ensures these records can't be spoofed:
Without DNSSEC, an attacker who poisons your DNS could modify or remove your SPF/DKIM/DMARC records, making email spoofing much easier.
ZeriFlow includes DNS security as part of its comprehensive website scan. In under 60 seconds, it checks:
Each finding comes with a specific recommendation. If DNSSEC isn't enabled, ZeriFlow tells you exactly what to do based on your DNS provider and registrar.
DNS security is one of the most overlooked aspects of web security. Most website owners focus on SSL certificates and security headers but forget that the entire system depends on DNS being trustworthy. DNSSEC is the foundation that makes everything else reliable.
Scan your domain at zeriflow.com to see your complete DNS security status alongside all other security categories.
<!-- zf-internal-links -->
Related resources
Website Vulnerability Scanner
Run a broader website security audit across headers, TLS, DNS, cookies, SEO, and disclosure checks.
Security Headers Checker
Check CSP, HSTS, X-Frame-Options, and other response headers.
SSL Checker
Review TLS certificate, HTTPS, and transport security signals.
DMARC Checker
Validate email authentication records for domain spoofing protection.
CSP Checker
Review Content-Security-Policy coverage and common gaps.
September 19, 2025
Referrer-Policy Header: What It Does and How to Set It Correctly
Monitor your security score
Schedule recurring scans and catch regressions after deployments.