Cryptology Academy · Les

DNSSEC: DNS-responses authenticeren

Leer hoe DNSSEC digitale handtekeningen gebruikt om DNS te beschermen tegen spoofing en cache poisoning.

Les 4 van 413 stappen

DNSSEC: DNS-responses authenticeren is een gratis Cryptology Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

DNS-cachevergiftiging: de Kaminsky-aanval

In 2008 onthulde onderzoeker Dan Kaminsky een kritieke aanval op DNS-resolvers. De aanval maakte gebruik van het kleine veld van 16 bits voor de transactie-ID in DNS-antwoorden. Door een resolver te overspoelen met vervalste antwoorden met willekeurige transactie-ID's kon een aanvaller statistisch gezien de juiste transactie-ID raden voordat het echte antwoord binnenkwam. Een vergiftigde cache verwijst alle gebruikers van die resolver wekenlang door naar servers die door de aanvaller worden beheerd, totdat de cache verloopt.

Wat DNSSEC toevoegt aan DNS

DNSSEC (DNS-beveiligingsuitbreidingen) voegt cryptografische authenticatie toe aan DNS-antwoorden. Elke DNS-recordset in een met DNSSEC ondertekende zone gaat vergezeld van een digitale handtekening. Validerende resolvers controleren deze handtekeningen voordat ze records accepteren. Een vervalst of gewijzigd antwoord heeft een ongeldige handtekening en wordt afgewezen. DNSSEC beschermt tegen cachevergiftiging en antwoordvervalsing, maar versleutelt DNS-query's niet.

Zonesleutel voor ondertekening en sleutel voor sleutelondertekening

DNSSEC gebruikt per zone een hiërarchie met twee sleutels. De Zone Signing Key (ZSK) wordt gebruikt voor de dagelijkse ondertekening van afzonderlijke DNS-recordsets. De Key Signing Key (KSK) ondertekent alleen de DNSKEY-recordset, die de openbare sleutels van zowel de ZSK als de KSK bevat. De ZSK kan regelmatig worden vervangen, bijvoorbeeld maandelijks, terwijl de KSK minder vaak verandert, bijvoorbeeld jaarlijks. De hashwaarde van de KSK moet namelijk in de bovenliggende zone worden geregistreerd en het vervangen ervan is operationeel complex.

RRSIG: handtekeningen van resource records

Elke ondertekende DNS-recordset (RRset genoemd) heeft een bijbehorend RRSIG-record met de cryptografische handtekening over die RRset. Wanneer een resolver een DNS-record opvraagt, bevat het antwoord zowel het record als de bijbehorende RRSIG. De resolver verifieert de RRSIG met de openbare sleutel van de zone. De handtekening omvat de recordinhoud, het type, de klasse en de vervaltijd, waardoor zowel wijziging als het opnieuw afspelen van oude, geldige handtekeningen wordt voorkomen.

DS-records: bovenliggende en onderliggende zones koppelen

De vertrouwensketen in DNSSEC wordt opgebouwd met Delegation Signer-records (DS-records). Wanneer een zone naar een onderliggende zone doorverwijst, publiceert de bovenliggende zone een DS-record met een hashwaarde van de KSK van de onderliggende zone. Een resolver die de bovenliggende zone vertrouwt, kan controleren of de hashwaarde van de KSK van de onderliggende zone overeenkomt met het DS-record. Zo ontstaat vertrouwen in de handtekeningen van de onderliggende zone. Deze keten loopt vanaf de DNS-rootzone via topniveaudomeinen naar afzonderlijke domeinzones.

DNSKEY-record: de openbare sleutel van de zone publiceren

Elke met DNSSEC ondertekende zone publiceert haar openbare ondertekeningssleutels in DNSKEY-records. Meestal zijn er twee DNSKEY-records: één voor de ZSK en één voor de KSK. De hashwaarde van de openbare sleutel van de KSK wordt als DS-record in de bovenliggende zone geregistreerd, waarmee het vertrouwen in de zone aan haar bovenliggende zone wordt gekoppeld. De hashwaarde van de KSK van de rootzone is hardcoded in validerende resolvers als het uiteindelijke vertrouwensanker, het Root Zone Trust Anchor genoemd.

De vertrouwensketen van root naar eindzone

DNSSEC-validatie begint bij de rootzone, waarvan het vertrouwensanker voor de KSK hardcoded in resolvers staat. De DNSKEY van de rootzone wordt gebruikt om de RRSIG ervan te verifiëren, waarmee de DS-records voor TLD's zoals .com worden geauthenticeerd. De DNSKEY van de .com-zone verifieert de RRSIG van de DS-records voor afzonderlijke domeinen. Deze keten van cryptografische verificatie loopt van de root naar het opgevraagde domein, zodat elke schakel is geauthenticeerd.

DNSSEC-validatie in resolvers

Wanneer een DNSSEC-validerende resolver een antwoord ontvangt, voert deze de volledige controle van de vertrouwensketen uit. De resolver haalt DNSKEY-records op, verifieert RRSIG-handtekeningen, volgt DS-records terug naar het vertrouwensanker van de rootzone en controleert de vervaltijden van handtekeningen. Als de validatie mislukt, geeft de resolver een SERVFAIL-fout terug in plaats van de mogelijk vervalste records. De meeste grote openbare resolvers, waaronder Cloudflares 1.1.1.1 en Googles 8.8.8.8, voeren DNSSEC-validatie uit.

Uitdagingen bij de invoering van DNSSEC

De invoering van DNSSEC is ondanks de beveiligingsvoordelen traag verlopen. Het vervangen van sleutels vereist afstemming tussen zonebeheerders en registers van bovenliggende zones. Een fout tijdens het vervangen van de KSK kan de hele zone onbereikbaar maken. Het vervangen van de KSK van de ICANN-rootzone in 2019 vereiste jarenlange voorbereiding. Door handtekeningen neemt de zoneomvang aanzienlijk toe. Beheerders moeten geautomatiseerde sleutelrotatie en monitoring implementeren. Door deze operationele complexiteit zien veel kleinere domeinbeheerders af van DNSSEC.

DNSSEC versleutelt DNS-verkeer niet

Een veelvoorkomende misvatting is dat DNSSEC privacy voor DNS-query's biedt. Dat is niet zo. DNSSEC authenticeert alleen antwoorden; query's en antwoorden reizen nog steeds als leesbare UDP-pakketten via poort 53. Iedereen die het netwerk controleert, kan nog steeds elke opgevraagde domeinnaam zien. DNS-over-TLS (DoT) en DNS-over-HTTPS (DoH) bieden privacy voor query's door het DNS-verkeer te versleutelen. DNSSEC en DoH/DoT vullen elkaar aan: het ene biedt authenticiteit en het andere vertrouwelijkheid.

DNSSEC in de praktijk

In 2024 was ongeveer 90 procent van de DNS-rootzone en de belangrijkste TLD's met DNSSEC ondertekend. Slechts ongeveer 20 tot 30 procent van de afzonderlijke domeinnamen was echter ondertekend. De ondersteuning voor DNSSEC-validatie door browsers en toepassingen verschilt sterk. Het beveiligingsvoordeel van DNSSEC is het grootst in combinatie met DANE (DNS-gebaseerde authenticatie van benoemde entiteiten). DANE gebruikt DNSSEC om vingerafdrukken van TLS-certificaten te publiceren, zodat clients certificaten kunnen verifiëren zonder uitsluitend op certificaatautoriteiten te vertrouwen.

DNSSEC-vertrouwensketen

Hoe stelt een DNSSEC-validerende resolver vanaf nul vertrouwen in de DNS-records van een domein vast?

DNSSEC: belangrijkste punten

DNSSEC voegt cryptografische handtekeningen toe aan DNS-antwoorden om cachevergiftiging en antwoordvervalsing te voorkomen. ZSK's ondertekenen recordsets, KSK's ondertekenen DNSKEY-records en DS-records koppelen het vertrouwen tussen bovenliggende en onderliggende zones. De validatie begint bij het hardcoded Root Zone Trust Anchor. DNSSEC versleutelt DNS-verkeer niet; DoH en DoT bieden privacy, terwijl DNSSEC authenticiteit biedt. Operationele complexiteit, waaronder het vervangen van sleutels, heeft de brede invoering vertraagd.

Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “DNSSEC: DNS-responses authenticeren” gratis?

Ja — de volledige tekst van “DNSSEC: DNS-responses authenticeren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “DNSSEC: DNS-responses authenticeren”?

Leer hoe DNSSEC digitale handtekeningen gebruikt om DNS te beschermen tegen spoofing en cache poisoning. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “DNSSEC: DNS-responses authenticeren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Wat maakt een protocol veilig
  2. SSH: externe toegang beveiligen
  3. SFTP en SCP: veilige bestandsoverdracht
  4. DNSSEC: DNS-responses authenticeren
← Terug naar Cryptology Academy