====== DNSSEC Explained ====== **DNS Security Extensions (DNSSEC)** is a set of extensions to the Domain Name System (DNS) that allows DNS responses to be **cryptographically verified**. DNSSEC helps ensure that DNS records have not been modified or forged while they travel across the Internet. DNSSEC provides: * Data authenticity * Data integrity * Protection against DNS spoofing and cache poisoning DNSSEC **does not** provide encryption or privacy. ----- ===== Why Was DNSSEC Created? ===== Traditional DNS was designed without security. An attacker may attempt to convince a recursive resolver that a fake IP address belongs to a domain. Example: Attacker example.com │ ▼ 203.0.113.200 (Fake) instead of 93.184.216.34 If the resolver accepts the forged response, users may be redirected to a malicious website. DNSSEC prevents this by allowing DNS responses to be digitally signed. ----- ===== How DNSSEC Works ===== Each DNS zone has a pair of cryptographic keys. * Private Key * Public Key The authoritative DNS server signs its DNS records using the private key. Resolvers verify the signatures using the corresponding public key. Authoritative Server DNS Record │ ▼ Digital Signature │ ▼ Recursive Resolver │ Verify Signature │ ▼ Trusted Answer If verification fails, the resolver rejects the response. ----- ===== Chain of Trust ===== DNSSEC works through a **chain of trust**. Each level of the DNS hierarchy signs the next level. Root Zone │ ▼ .com │ ▼ example.com The root zone is the trust anchor for the entire DNSSEC system. If every signature is valid, the resolver can trust the final DNS record. ----- ===== DNSSEC Record Types ===== DNSSEC introduces several additional DNS record types. ^ Record ^ Purpose ^ | **DNSKEY** | Public key for the DNS zone | | **DS** | Delegation Signer (links parent and child zones) | | **RRSIG** | Digital signature for DNS records | | **NSEC** | Authenticated proof that a record does not exist | | **NSEC3** | Similar to NSEC, but hides zone contents | | **CDS** | Child Delegation Signer (automation) | | **CDNSKEY** | Child DNSKEY (automation) | ----- ===== DNSSEC Validation ===== When a resolver receives a DNS response, it performs validation. Steps: - Retrieve the requested DNS record. - Retrieve its RRSIG record. - Retrieve the DNSKEY. - Verify the signature. - Verify the chain of trust up to the root zone. If validation succeeds, the response is accepted. Otherwise the resolver returns an error. ----- ===== DNSSEC Does NOT Encrypt DNS ===== A common misconception is that DNSSEC encrypts DNS traffic. It does not. DNSSEC provides: * Authentication * Integrity It does **not** provide: * Confidentiality * Privacy * Encryption DNS queries remain visible on the network. For encrypted DNS, technologies such as **DNS over HTTPS (DoH)** and **DNS over TLS (DoT)** are used. ----- ===== DNSSEC vs DoH vs DoT ===== ^ Technology ^ Authentication ^ Encryption ^ | DNS | No | No | | DNSSEC | Yes | No | | DNS over TLS (DoT) | No | Yes | | DNS over HTTPS (DoH) | No | Yes | | DNSSEC + DoH | Yes | Yes | DNSSEC and DoH solve different security problems and are often used together. ----- ===== Advantages ===== DNSSEC provides: * Protection against cache poisoning * Protection against forged DNS responses * Verification that DNS records originate from the authoritative server * Increased trust in DNS infrastructure ----- ===== Limitations ===== DNSSEC does not: * Hide DNS queries. * Encrypt DNS traffic. * Prevent DDoS attacks. * Protect websites against compromise. It only verifies the authenticity of DNS data. ----- ===== How Can I Check Whether a Domain Uses DNSSEC? ===== A domain usually supports DNSSEC if: * A **DS** record exists in the parent zone. * The zone publishes **DNSKEY** records. * DNS responses contain **RRSIG** records. Example: example.com DNSKEY RRSIG DS ----- ===== DNSSEC and Telenegar ===== Telenegar DNS Check can help determine whether a domain supports DNSSEC by: * Querying DNSSEC-related record types. * Displaying DNSKEY records. * Displaying DS records. * Displaying RRSIG records. * Indicating whether DNSSEC appears to be enabled. Future versions may also perform DNSSEC validation. ----- ===== Common Misconceptions ===== * **DNSSEC encrypts DNS traffic.** * False. DNSSEC only authenticates DNS data. * **DNSSEC prevents every DNS attack.** * False. It prevents forged DNS responses but not every attack. * **DoH replaces DNSSEC.** * False. DNSSEC and DoH provide different security properties. ----- ===== Related Topics ===== * [[networking:dns:dns|DNS Explained]] * [[networking:dns:recursive-authoritative|Recursive vs Authoritative DNS]] * [[networking:dns:dns-propagation|DNS Propagation]] * [[tools:dnscheck|DNS Check]] ----- {{tag>dns dnssec dnskey ds rrsig nsec doh dot security}}