Hvad er DNSSEC?
DNSSEC (Domain Name System Security Extensions) er en suite af protokoller der tilføjer kryptografisk autentificering til DNS-svar. Med DNSSEC kan din computer verificere at et DNS-svar faktisk kommer fra den autoritative kilde og ikke er blevet manipuleret undervejs.
DNS var oprindeligt designet i 1980'erne uden sikkerhed i tankerne. Enhver kunne i princippet sende falske DNS-svar og omdirigere trafik. DNSSEC løser dette problem ved at tilføje digitale signaturer til DNS-data.
Hvorfor har vi brug for DNSSEC?
Uden DNSSEC er DNS sårbar over for flere angrebstyper:
DNS Spoofing: En angriber sender et falsk DNS-svar før det rigtige når frem, og får din computer til at kontakte en ondsindet server.
Cache Poisoning: En angriber forgifter en DNS-resolvers cache med falske records, så alle der bruger den resolver bliver omdirigeret.
Man-in-the-Middle: En angriber opfanger og modificerer DNS-trafik mellem dig og DNS-serveren.
Med DNSSEC kan disse angreb detekteres og afvises, da falske svar ikke vil have gyldige signaturer.
Sådan fungerer DNSSEC
DNSSEC bruger public-key kryptografi til at signere DNS-records. Processen involverer flere komponenter der arbejder sammen.
Nøglepar og signaturer
DNSSEC bruger to typer nøgler:
Zone Signing Key (ZSK):
- Bruges til at signere DNS-records i zonen
- Kortere nøgle, roteres oftere (hver måned til kvartal)
- Mindre computerkrævende at bruge
Key Signing Key (KSK):
- Bruges til at signere ZSK
- Længere nøgle, roteres sjældnere (årligt eller sjældnere)
- Skaber tillid til ZSK
Record-typer i DNSSEC
DNSSEC introducerer nye DNS record-typer:
DNSKEY: Indeholder de offentlige nøgler (ZSK og KSK) der bruges til verifikation.
RRSIG: Resource Record Signature - den faktiske digitale signatur for et sæt records.
DS (Delegation Signer): Publiceres i parent-zonen og peger på KSK i dit domæne. Dette skaber tillidskæden.
NSEC/NSEC3: Authenticated denial of existence - beviser at et domæne IKKE eksisterer uden at afsløre andre domæner.
Tillidskæden (Chain of Trust)
DNSSEC sikkerhed bygger på en tillidskæde fra rod-serverne ned til dit domæne:
- Rod-zonen (.) er signeret med rod-KSK
- TLD (.dk) har en DS-record i rod-zonen der peger på .dk's KSK
- Dit domæne har en DS-record hos .dk der peger på din KSK
- Din KSK signerer din ZSK
- Din ZSK signerer alle dine DNS-records
Hvis én signatur er ugyldig, afvises hele kæden.
Validering af DNS-svar
Når en DNSSEC-validerende resolver modtager et svar:
- Hent RRSIG for den ønskede record
- Hent DNSKEY fra domænets zone
- Verificér RRSIG med DNSKEY
- Hent DS-record fra parent-zone
- Verificér at DNSKEY matcher DS
- Fortsæt op gennem kæden til roden
- Hvis alle signaturer er gyldige, acceptér svaret
Aktivér DNSSEC på dit domæne
Processen for at aktivere DNSSEC varierer afhængigt af din DNS-udbyder og registrar.
Metode 1: Managed DNSSEC (anbefalet)
Mange DNS-udbydere tilbyder fuld DNSSEC-håndtering:
Cloudflare:
- Log ind på Cloudflare Dashboard
- Vælg dit domæne
- Gå til DNS > DNSSEC
- Klik "Enable DNSSEC"
- Tilføj de viste DS-records hos din registrar
AWS Route 53:
- Aktivér DNSSEC signing i Hosted Zone
- Opret KSK via Route 53 eller import eksisterende
- Tilføj DS-record hos registrar
Google Cloud DNS:
- Aktivér DNSSEC på zonen
- Kopiér DS-record information
- Tilføj hos registrar
Metode 2: .dk domæner via DK Hostmaster
For .dk domæner der bruger DK Hostmasters navneservere er DNSSEC automatisk aktiveret. Hvis du bruger egne navneservere:
- Generér DNSSEC-nøgler på din DNS-server
- Log ind på selvbetjening.dk-hostmaster.dk
- Tilføj DS-records under domæneindstillinger
- Vent på validering og propagering
Metode 3: Manuel DNSSEC med BIND
For avancerede brugere der kører egen DNS:
# Generér ZSK
dnssec-keygen -a ECDSAP256SHA256 -n ZONE example.dk
# Generér KSK
dnssec-keygen -a ECDSAP256SHA256 -n ZONE -f KSK example.dk
# Signér zonen
dnssec-signzone -o example.dk -k KSK.key example.dk.zone ZSK.key
DNSSEC best practices
Vælg stærke algoritmer
Moderne DNSSEC bør bruge:
- ECDSAP256SHA256 (Algorithm 13): Anbefalet, god sikkerhed og ydeevne
- ECDSAP384SHA384 (Algorithm 14): Stærkere men langsommere
- Ed25519 (Algorithm 15): Nyeste, bedste ydeevne
Undgå:
- RSA/SHA-1 (Algorithm 5, 7): Forældet, svækket sikkerhed
- DSA (Algorithm 3, 6): Forældet
Nøglerotation
Regelmæssig rotation af nøgler reducerer risikoen ved kompromittering:
ZSK rotation:
- Hver 1-3 måneder
- Kan automatiseres
- Minimal påvirkning af tillidskæden
KSK rotation:
- Årligt eller ved mistanke om kompromittering
- Kræver opdatering af DS-record hos registrar
- Planlæg omhyggeligt for at undgå nedetid
Overvåg DNSSEC-status
Opsæt alerts for:
- Udløbende signaturer
- Validerings fejl
- DS/DNSKEY mismatch
- Tillidskæde-brud
Planlæg for fejl
DNSSEC-fejl kan gøre dit domæne utilgængeligt. Hav en plan:
- Dokumentér opsætning: Gem nøgler og konfiguration sikkert
- Test før produktion: Brug staging-domæne først
- Kend rollback-proceduren: Hvordan fjerner du DNSSEC hurtigt?
- Overvåg proaktivt: Opdage problemer før brugere mærker dem
Fejlfinding af DNSSEC
Validerings-fejl
Hvis dit domæne ikke validerer:
# Test med dig
dig +dnssec +multi example.dk
# Test tillidskæden
drill -T example.dk
# Online værktøj
# https://dnsviz.net/
Almindelige årsager:
- DS-record matcher ikke DNSKEY
- Signaturer er udløbet
- Forkert algoritme
- Manglende NSEC/NSEC3 records
DS-record problemer
DS-recorden hos registrar skal præcis matche din DNSKEY:
# Generér forventet DS fra DNSKEY
dnssec-dsfromkey -a SHA-256 Kexample.dk.+013+12345.key
Sammenlign output med det der er registreret hos registrar.
Udløbne signaturer
RRSIG-records har udløbsdato. Hvis signering ikke kører automatisk:
# Tjek signatur-udløb
dig +dnssec example.dk | grep RRSIG
Løsning: Re-signér zonen eller fix automatisk signering.
DNSSEC og DNS-udbyderskift
Skift af DNS-udbyder med aktivt DNSSEC kræver omhyggelig planlægning:
Sikker migrationsproces
- Sænk TTL på alle records til minimum (300 sekunder)
- Vent mindst 2x oprindelig TTL
- Deaktivér DNSSEC hos registrar (fjern DS-record)
- Vent på DS-record propagering (24-48 timer)
- Skift navneservere til ny udbyder
- Vent på NS-propagering
- Aktivér DNSSEC hos ny udbyder
- Tilføj nye DS-records hos registrar
- Verificér fuld tillidskæde
- Gendan TTL til normale værdier
Risici ved forkert migration
Hvis du skifter DNS-udbyder uden at fjerne DS-records først:
- DNSSEC-validerende resolvere afviser dit domæne
- Dit website bliver utilgængeligt for mange brugere
- Email-levering fejler
DNSSEC adoption og fremtid
Nuværende adoption
DNSSEC-adoption varierer kraftigt:
- .dk: Høj adoption (~50%+), DK Hostmaster har gjort det nemt
- .com/.net: Lav adoption (~5-10%), primært tekniske domæner
- Store sites: Google, Facebook, Microsoft har alle DNSSEC
Hvorfor er adoption lav?
- Kompleksitet i opsætning og vedligeholdelse
- Risiko for nedetid ved fejl
- Manglende synlige fordele for slutbrugere
- Historisk dårlig registrar-support
Fremtidige udviklinger
DNS over HTTPS (DoH): Krypterer DNS-forespørgsler, komplementerer DNSSEC
DNS over TLS (DoT): Alternative til DoH med lignende fordele
Automated key management: Simplificerer DNSSEC-vedligeholdelse
Test din DNSSEC-opsætning
Online værktøjer
- DNSViz: https://dnsviz.net/ - Visualiserer tillidskæden
- DNSSEC Debugger: https://dnssec-debugger.verisignlabs.com/
- Zonemaster: https://zonemaster.net/ - Komplet DNS-analyse
Kommandolinje
# Verificér DNSSEC
dig +dnssec +short example.dk
# Fuld tillidskæde
delv @8.8.8.8 example.dk +rtrace
# Tjek DS-record
dig DS example.dk +short
DomainiFy Scanner
DomainiFy tjekker automatisk din DNSSEC-opsætning som del af den komplette sikkerhedsanalyse.
Konklusion
DNSSEC er en vigtig sikkerhedsprotokol der beskytter mod DNS-manipulation. Selvom opsætningen kan være kompleks, gør moderne DNS-udbydere det stadig nemmere at aktivere.
Anbefalinger:
- Aktivér DNSSEC på alle dine domæner
- Brug en DNS-udbyder med managed DNSSEC
- Overvåg for validerings-problemer
- Planlæg omhyggeligt ved DNS-udbyderskift
Med DNSSEC aktiveret kan dine brugere stole på at de faktisk kommunikerer med din server og ikke en angriber.