Skip to main content
dns

DNSSEC Check

DNSSEC Check helps you validate dnssec configuration and signatures, for authoritative DNS validation, resolver checks, and faster troubleshooting.

Enter a domain name without http:// or www

DNSSEC CheckA cryptographic chain locks DNS answers with signed trust anchors.DSRRSIG

Advertisement · Anuncio

Advertisement · Anuncio

Technical Analysis & Guide

What It Does

The DNSSEC checker queries a domain for its DS record (published by the parent zone through your registrar), its DNSKEY set (published in your own zone) and an NSEC record, then classifies the domain as signed, incomplete or unsigned. It shows up to three DS records and the number of DNSKEYs found. It is a presence check of the chain-of-trust links, not a full cryptographic validation of every signature.

Illustration of dns concept

Why It Matters

  • →Spoofing protection: Validating resolvers reject forged answers for a signed zone, which blocks cache-poisoning attacks of the kind publicized by Kaminsky in 2008.
  • →Broken chains cause outages: A DS at the registrar that no longer matches any DNSKEY makes the domain bogus, and validating resolvers return SERVFAIL for every name.
  • →Provider migrations: Moving DNS hosts without first removing or replacing the DS is the most common way signed domains go dark.
  • →Dependent standards: DANE for SMTP (RFC 7672) and TLSA records only work on DNSSEC-signed zones, so mail TLS hardening depends on this chain.
  • →Compliance signals: Several government and ccTLD programs require or reward DNSSEC on public domains, and auditors check for DS presence.

How to Read Results

  • status signed (pass): Both a DS at the parent and DNSKEYs in the zone were found. dsRecords shows up to three entries in the form key-tag algorithm digest-type digest, e.g. 2371 13 2 1F987CC6....
  • dnskeyCount: Number of DNSKEY records. Two is typical (one KSK with flags 257, one ZSK with flags 256); more appear during key rollovers or with multiple signers.
  • hasNSEC: Whether an NSEC record was returned at the apex. False is normal for zones using NSEC3 or providers that synthesize denial proofs on the fly; it is not an error by itself.
  • status incomplete (warn): DNSKEYs exist but the parent has no DS, so the zone is signed but resolvers treat it as insecure. Publish the DS at the registrar to finish the chain.
  • status unsigned (warn): Neither DS nor DNSKEY was found. Resolvers treat the domain as insecure and accept unsigned answers.
  • Unexpected unsigned result: If the chain is bogus, a validating resolver may return SERVFAIL and the tool sees no data. Confirm with dig +cd DNSKEY example.com before concluding the zone is unsigned.

Technical Background

DNSSEC is defined by RFC 4033 (concepts), RFC 4034 (record types) and RFC 4035 (protocol changes). It adds origin authentication and integrity to DNS without encryption. Each RRset in a signed zone carries an RRSIG signature made with a private key whose public half is published as a DNSKEY at the zone apex. The parent zone publishes a DS record containing a hash of the child's key-signing key, and the parent's own records are signed and vouched for by its parent, up to the root key that validating resolvers ship as a trust anchor. A DS line such as example.com. 3600 IN DS 2371 13 2 1F987CC6... encodes the key tag, the algorithm (13) and the digest type (2, SHA-256).

Most zones use a split-key design. The key-signing key (KSK, DNSKEY flags 257, the SEP bit set) signs only the DNSKEY RRset and is referenced by the DS at the parent; the zone-signing key (ZSK, flags 256) signs everything else. This lets operators rotate the ZSK frequently without touching the registrar, while KSK rollovers require a coordinated DS update. RFC 6781 and RFC 7583 describe the timing: pre-publish the new key, wait for old TTLs to expire, swap signatures or the DS, and only then retire the old key. CDS and CDNSKEY records (RFC 7344, RFC 8078) let a parent that supports them pick up DS changes automatically. Proof of non-existence uses NSEC, which links names in canonical order, or NSEC3 (RFC 5155), which hashes names to limit zone walking; RFC 9276 recommends NSEC3 with zero extra iterations and an empty salt.

Algorithm choice follows RFC 8624. RSASHA256 (8) and ECDSAP256SHA256 (13) are MUST implement for validators, and Ed25519 (15) is RECOMMENDED. Algorithm 13 is the common default today because its keys and signatures are far smaller than RSA, keeping responses under UDP size limits. RSAMD5, DSA and GOST must not be used, and RSASHA1 variants (5 and 7) are not recommended for signing. For DS digests, SHA-256 (type 2) is mandatory and SHA-1 (type 1) must no longer be generated.

A validating resolver assigns each answer one of four states from RFC 4035: secure (a complete, valid chain), insecure (a signed parent proves there is no DS, so the child is deliberately unsigned), bogus (a DS exists but signatures are missing, expired or do not match) and indeterminate. Only bogus breaks resolution: the resolver returns SERVFAIL rather than unverified data. The usual causes are a stale DS after changing DNS providers, expired RRSIGs when a signer stops re-signing, or a KSK rollover in which the DS was swapped before the new key had propagated. Because this tool reads data through a resolver, a bogus zone may simply appear empty; dig +dnssec, dig +cd and delv show the difference.

Common Errors and How to Fix Them

ProblemDomain returns SERVFAIL everywhere right after switching DNS providers.
FixThe registrar still publishes the old provider's DS. Remove the DS (or replace it with the new provider's DS) at the registrar. For future moves, remove the DS, wait for the parent DS TTL plus a margin, then change name servers.
ProblemChecker reports incomplete: DNSKEY present, no DS at parent.
FixCopy the DS values (key tag, algorithm, digest type 2, digest) from your DNS provider into the registrar's DNSSEC panel. If the registrar supports CDS/CDNSKEY, enable automatic DS publishing instead.
ProblemDS entered with the wrong algorithm number or a SHA-1 digest.
FixUse exactly what the signer generates: algorithm 13 if the zone uses ECDSA P-256, digest type 2 (SHA-256). A mismatched algorithm makes the chain bogus.
ProblemSignatures expired after a self-hosted signer stopped running.
FixRRSIGs have fixed validity windows. Restart automatic re-signing (BIND dnssec-policy, Knot or PowerDNS), confirm new expiry dates with dig +dnssec, and monitor RRSIG expiration.
ProblemKSK rollover broke resolution for some users.
FixThe DS was changed before the new DNSKEY had been published for at least its TTL. Restore a DS matching the key still in use, then redo the rollover following RFC 7583 timing.
ProblemZone still signed with RSASHA1 (algorithm 5 or 7).
FixPerform an algorithm rollover to 13 or 8 using your signer's documented procedure, which double-signs the zone before swapping the DS.

Frequently Asked Questions

How do I enable DNSSEC for my domain?

Turn on DNSSEC signing at the provider hosting your DNS zone, which creates the DNSKEYs and signatures. Then publish the resulting DS record at your registrar, either by pasting it into the DNSSEC panel or through automatic CDS support. The chain is complete once this checker reports both DS and DNSKEY.

What does a bogus DNSSEC status mean?

Bogus means a validating resolver expected signatures, because a DS exists at the parent, but could not verify them. It then refuses to return the data and answers SERVFAIL. Typical causes are a DS that no longer matches the zone's keys, expired signatures or an incorrect algorithm. Insecure, by contrast, simply means the zone is unsigned.

Which DNSSEC algorithm should I use?

Algorithm 13, ECDSA P-256 with SHA-256, is the most widely recommended choice: it is mandatory for validators under RFC 8624 and produces small responses. Algorithm 8, RSA/SHA-256, is also fully supported. Ed25519 (15) is recommended but slightly less universally validated. Avoid SHA-1 based algorithms 5 and 7.

Will DNSSEC slow down my website?

The impact is minimal for users. Signed responses are larger and validating resolvers perform extra lookups for DNSKEY and DS, but those are cached like any other record. Using ECDSA keys keeps packets small. The real risk is operational: a broken chain causes outages, so automate signing and monitor it.

Does DNSSEC encrypt DNS queries?

No. DNSSEC proves that answers are authentic and unmodified, but queries and answers remain readable on the network. Privacy comes from encrypted transports such as DNS over TLS (RFC 7858) and DNS over HTTPS (RFC 8484). The two are complementary and can be used together.

Academic Documentation

Protocol context and primary references

REST API Documentation

v1.0
GET /api/tools/dnssec
					curl -X POST https://epcybertools.com/api/tools/dnssec \
  -H "Content-Type: application/json" \
  -d '{"domain":"cloudflare.com"}'
				
					{
  "success": true,
  "results": [
    { "test": "Sample Check", "status": "pass", "message": "All clear" }
  ]
}
				
Rate Limit: 100 requests / 15 minutes

Usage Examples

			# DS at the parent and DNSKEYs in the zone

dig DS example.com +short

dig DNSKEY example.com +multi

# Look for the ad (authenticated data) flag

dig @1.1.1.1 A example.com +dnssec | grep flags
		
100-Day Max Lifespan
155d 5h 20m 15s
PQC Migration Target
1178d 5h 20m 15s