DNSSEC
DNSSEC (Domain Name System Security Extensions) is a suite of extension specifications by the Internet Engineering Task Force (IETF) for securing data exchanged in the Domain Name System. DNSSEC was designed to protect applications from accepting forged or manipulated DNS data, such as that created by DNS cache poisoning and man-in-the-middle attacks, by using digital signatures based on public key cryptography.
How it works
DNSSEC strengthens DNS authentication using digital signatures based on public key cryptography. Unlike traditional DNS, where responses could be forged, DNSSEC ensures that DNS data comes from the legitimate source and hasn't been tampered with during transit. It's important to note that DNSSEC doesn't encrypt DNS queries or responses - it only provides authentication and integrity verification.
Key Points
- DNSSEC provides data origin authentication and data integrity protection, but not confidentiality or encryption
- Uses public key cryptography with DNSKEY (public keys) and RRSIG (digital signatures) records
- Creates a chain of trust from root DNS servers down through the DNS hierarchy
- Protects against DNS cache poisoning, man-in-the-middle attacks, and DNS spoofing
- DNSSEC validation failures result in the resolver rejecting the response entirely
Common Use Cases
- DNS Cache Poisoning Prevention: Prevents attackers from injecting false DNS data into resolver caches, which could redirect users to malicious websites
- Man-in-the-Middle Attack Protection: Ensures that DNS responses haven't been intercepted and modified by attackers between the authoritative server and the client
- High-Security Domains: Financial institutions, government websites, and other security-critical domains use DNSSEC to ensure users reach the legitimate site
- DANE and TLSA Records: DNSSEC is required for DANE (DNS-based Authentication of Named Entities), which allows certificates to be bound to DNS names using TLSA records
code Example DNSSEC Records
| Type | Host / Name | Value / Points to | TTL |
|---|---|---|---|
| DNSKEY | @ | 257 3 8 AwEAAb...c8= | 3600 |
| DNSKEY | @ | 256 3 8 AwEAAa...m0= | 3600 |
| RRSIG | @ | A 8 2 3600 20250115000000 20241216000000... | 3600 |
| DS | @ | 12345 8 2 49FD...AB12 | 3600 |
* DNSSEC adds several new record types to DNS zones. The main records are DNSKEY (public keys) and RRSIG (digital signatures).