Back to blog
Authentication··4 min read·WillItInbox Team

DNSSEC for email: when it matters and when it doesn't

What DNSSEC actually protects in your mail flow, the receivers that care, and the ops cost of keeping it healthy.

DNSSECDNSAuthentication

DNSSEC signs your DNS responses so resolvers can detect tampering. For email, this matters because every authentication standard — SPF, DKIM, DMARC, BIMI, MTA-STS — depends on DNS lookups. If an attacker can spoof your DNS, they can defeat all of them. The question is whether the threat model justifies the operational cost.

What DNSSEC actually adds

Without DNSSEC, an on-path attacker can answer DNS queries with anything. They could swap your SPF record's ~all for +all, swap your DKIM public key for theirs, or tell receivers your MX is now their server. With DNSSEC, every authoritative response is signed; resolvers verify the signature against a chain rooted in the DNS root zone.

StandardAffected by DNS spoofingDNSSEC required
SPFYes
DKIMYes — public key swap
DMARCYes — policy swap
BIMIYes — logo + VMC swap
MTA-STSBootstrapped over HTTPS, partially mitigated
DANE/TLSAN/A — DANE requires DNSSEC
Email standards and what DNSSEC adds.

The chain of trust

DNSSEC works in three layers: the root zone signs the TLD's DS record; the TLD signs your domain's DS record; your domain signs its own records with a Zone Signing Key (ZSK). Resolvers walk this chain on every lookup. Break any link and resolution fails entirely (SERVFAIL).

  • KSK (Key Signing Key) — long-lived. Signs your zone's DNSKEY records. Its hash is published as a DS record at your registrar.
  • ZSK (Zone Signing Key) — shorter-lived. Signs every other record in your zone.
  • DS (Delegation Signer) — published at the parent zone (your TLD), proving the registrar approves your KSK.

Enabling DNSSEC

Standard rollout on managed DNS

  1. 01

    Enable signing at your DNS provider

    Cloudflare, Route 53, Google Cloud DNS all expose this as a one-click toggle. The provider generates and rotates ZSKs automatically.

  2. 02

    Copy the DS record to your registrar

    Your DNS provider produces a DS record. Paste it into your domain registrar's DNSSEC section. This is the moment the chain becomes active.

  3. 03

    Wait for parent-zone propagation

    Most TLDs publish DS within an hour. Verify with dig +dnssec ds example.com @8.8.8.8 — you should see the DS record and an ad (authenticated data) flag in the response.

  4. 04

    Test resolution

    Use Verisign's DNSSEC Analyzer or dig +dnssec txt example.com. The ad flag in the response means resolvers consider your data authenticated.

Should you enable it?

ProfileWorth itWhy
Bank, healthcare, govtThreat model includes nation-state DNS spoofing
High-value SaaSDKIM/MTA-STS protection compounds with DNSSEC
E-commerce above $5M ARRDomain hijack risk justifies the ops investment
Personal blog / hobby projectOperational complexity outweighs the threat
Anyone who hand-edits zone filesWait until you're on managed DNS
DNSSEC value vs cost by org type.

Verifying

shell
# Check DS record at the parent zone
dig +short ds example.com

# Check that resolvers consider data authenticated
dig +dnssec txt example.com @1.1.1.1 | grep -E '(ad|RRSIG)'

# Comprehensive analyzer
# https://dnssec-analyzer.verisignlabs.com/example.com

Frequently asked questions

Keep reading