Vad är DNSSEC?
DNSSEC, Domain Name System Security Extensions, är en uppsättning kryptografiska tillägg till DNS. DNS-poster signeras digitalt så att en validerande resolver kan kontrollera att svaret kommer från rätt källa och inte har manipulerats på vägen. DNSSEC krypterar inte frågan eller svaret.
Så fungerar DNSSEC
DNSSEC bygger en kedja av förtroende från rotzonen via en toppdomän till den signerade domänen. Zonens publika nycklar, DS-posten i föräldrazonen och RRSIG-signaturerna måste passa ihop. En resolver validerar varje länk och markerar ett giltigt svar som autentiserat. Vid ogiltig signatur bör den avvisa svaret i stället för att leverera potentiellt manipulerad information.
Chain of Trust:
Root Zone (.)
├── Signs: .com zone key
│ └── KSK (Key Signing Key)
│ └── ZSK (Zone Signing Key)
│
TLD Zone (.com)
├── Signs: example.com zone key
│ └── DS Record points to child KSK
│
Domain Zone (example.com)
├── Signs: All DNS records
│ └── RRSIG (Record Signature)
│ └── DNSKEY (Public keys)
│
Resolver validates entire chain from root
DNSSEC-posttyper
| Post | Syfte | Beskrivning |
|---|---|---|
| RRSIG | Signatur | Kryptografisk signatur för varje postmängd |
| DNSKEY | Publik nyckel | Zonens publika signeringsnycklar (KSK och ZSK) |
| DS | Delegation Signer | Hash av barndomänens KSK i föräldrazonen |
| NSEC/NSEC3 | Autentiserad nekad existens | Bevisar att en post inte finns |
Nyckeltyper
| Nyckel | Syfte | Rotationsfrekvens |
|---|---|---|
| KSK (Key Signing Key) | Signerar DNSKEY-poster | Årligen eller mer sällan |
| ZSK (Zone Signing Key) | Signerar övriga poster | Månadsvis till kvartalsvis |
KSK skyddar övergången mellan zonen och dess publika nycklar, medan ZSK normalt signerar den övriga zoninformationen. Rutinerna för generering, lagring, åtkomst och rotation måste vara dokumenterade.
DNSSEC-validering
1. Klienten frågar en resolver efter A-posten för example.com.
2. Resolvern hämtar A-posten och dess RRSIG-signatur.
3. Resolvern hämtar DNSKEY för att kontrollera RRSIG.
4. Resolvern validerar DS-posten mot DNSKEY.
5. Kedjan fortsätter till roten och varje nivå kontrolleras.
6. Om alla signaturer är giltiga är svaret autentiserat.
Validering måste testas från flera resolvrar. Internetstiftelsen beskriver DNSSEC som ett sätt att avgöra om informationen kommer från rätt källa och om den ändrats under överföringen.
Hot som DNSSEC motverkar
| Attack | Beskrivning | DNSSEC-skydd |
|---|---|---|
| Cacheförgiftning | Falska poster läggs in i en cache | Signaturer upptäcker manipulation |
| Man-in-the-middle | Svar fångas upp och ändras | Kryptografisk validering misslyckas |
| DNS-förfalskning | Falska IP-adresser returneras | Förfalskade poster saknar giltig signatur |
DNSSEC skyddar inte webbservern, registrarens konto eller själva nätverkstrafikens sekretess. Det kräver en fungerande förtroendekedja och en resolver som faktiskt validerar den.
Hänsyn vid införande
- Prestanda: Signaturer gör svaren större, ofta omkring 1 000–4 000 byte jämfört med omkring 100 byte.
- Nyckelhantering: Nycklar måste genereras, lagras och roteras säkert.
- Zonsignering: Zonen måste signeras om när poster ändras.
- Resolverstöd: Klienterna behöver resolvrar som validerar DNSSEC.
Planera för nyckelrotation, återställning, övervakning av RRSIG:s giltighet och hantering av förlorade eller felaktiga DS-poster innan DNSSEC aktiveras.
Bästa praxis
1. Använd algoritm 13 eller 14: ECDSA ger mindre signaturer än RSA i många konfigurationer.
2. Automatisera nyckelrotation: Använd verktyg som OpenDNSSEC för nycklarnas livscykel.
3. Övervaka utgång: RRSIG-signaturer har giltighetsperioder och får inte löpa ut.
4. Testa före driftsättning: Validera zonen med verktyg som dnsviz.net.
5. Planera för nödlägen: Dokumentera procedurer för nyckelbyte och återställning.
DNSSEC är ett viktigt skydd för DNS-integriteten. När valideringen fungerar ökar sannolikheten att användare når den legitima destinationen i stället för en server som kontrolleras av en angripare.