DNSSEC Explained: What It Is and Whether Your Domain Actually Needs It

DNSSEC Explained: What It Is and Whether Your Domain Actually Needs It

Rishav Kumar · November 7, 2023 · 4 min read

DNS was designed in the 1980s with essentially no security built in. A resolver asks a nameserver for an IP address, the nameserver answers, and the resolver has no way to verify that the answer is genuine. DNSSEC was developed to fix this, and while it has been around for years, it is still not universally deployed. Here is what it actually does.

The Problem DNSSEC Solves

The attack DNSSEC is designed to prevent is called DNS cache poisoning. In this attack, a malicious actor intercepts or forges a DNS response, inserting a fake IP address. The resolver caches this fake answer and serves it to users, who then connect to the attacker infrastructure instead of the legitimate server. Because the original DNS protocol has no way to verify response authenticity, a well-executed cache poisoning attack is invisible to the end user.

The Kaminsky attack in 2008 demonstrated how practical this exploit was, triggering emergency patching of DNS resolvers around the world. DNSSEC is the long-term cryptographic fix.

How DNSSEC Works

DNSSEC adds a chain of cryptographic signatures to DNS responses. Each zone signs its records with a private key, publishing the corresponding public key in a DNSKEY record. When a resolver receives a signed response, it verifies the signature against the published public key. If the signature does not match — because the response was tampered with — the resolver rejects it.

The trust chain starts at the DNS root. ICANN maintains the root zone signing key. TLD registries (like Verisign for .com) sign their zones and have their keys signed by the root. Domain owners sign their zones and have their keys signed by the TLD registry. A resolver can walk this chain of trust from root to leaf to verify any signed response.

What DNSSEC Does Not Do

DNSSEC authenticates DNS responses — it proves the answer came from the legitimate zone authority and was not tampered with in transit. It does not encrypt DNS queries. Anyone watching network traffic can still see what domains you are looking up; they just cannot tamper with the answers. For query privacy, DNS over HTTPS or DNS over TLS is the relevant technology.

DNSSEC also does not protect the connection to the website itself. It only protects the DNS lookup that translates the hostname to an IP. HTTPS handles the security of the actual connection.

How to Enable DNSSEC for Your Domain

Enabling DNSSEC requires both your DNS hosting provider and your domain registrar to support it. Your DNS provider signs your zone and generates DS (Delegation Signer) records. You then submit those DS records to your registrar, which publishes them in the TLD zone. Once the chain is complete, resolvers that validate DNSSEC will verify your responses.

Cloudflare makes this simple — if you use Cloudflare for DNS, enabling DNSSEC is a single toggle in the dashboard and they handle the DS record submission automatically for domains registered through them. For domains registered elsewhere, you copy the DS record Cloudflare generates and paste it into your registrar panel.

The Operational Risk of DNSSEC

DNSSEC adds operational complexity. If the signing keys expire or are misconfigured, validating resolvers will refuse to resolve your domain — meaning your site goes completely unreachable for users of resolvers that enforce DNSSEC validation. Key rollovers require careful coordination. Most managed DNS providers handle this automatically, but if you self-host your DNS, you need to manage key rotation properly.

Should You Enable It?

For most domains, DNSSEC is a low-risk security improvement worth enabling — particularly if your DNS provider makes it easy and handles key management automatically. High-value domains (financial services, government, healthcare) should consider it mandatory. For a personal blog or small business site, the practical risk of DNS cache poisoning targeting your specific domain is low, but enabling DNSSEC costs you nothing if your provider supports it and the protection is real.