Informatiebeveiliging is niet nieuw. In de middeleeuwen was onder andere de zegel belangrijk om te laten zien wie de afzender van een brief was. Want hoe wist je toen dat het niet je vijand was die het antwoord had gestuurd?
Met een stuk was en een zegelring werd daarom een zegel op de brief geplakt. Als je een brief ontving kon je de zegel controleren en wist je wie de brief verzonden had. Het probleem met DNS is in dat opzicht te vergelijken met de brief van vroeger. De zegelring was een belangrijk onderdeel in de beveiliging van communicatie in de middeleeuwen. DNSSEC, oftewel Domain Name System Security Extensions, is net zo belangrijk voor DNS in de wereld van nu.
Domain Name Systems (DNS) zorgen er voor dat je browser weet naar welke server je een verbinding moet maken wanneer je de website www.sensson.net bezoekt. Maar hoe weet je browser dat je naar de juiste server toe gaat en dat het antwoord van de DNS server klopt? Dit wordt geregeld door DNSSEC. DNSSEC beveiligt het antwoord van de DNS server en je browser controleert of deze beveiliging juist is. Wanneer DNSSEC verkeerd is ingesteld kan dit betekenen dat de website niet meer werkt. Dit komt doordat de ‘chain of trust’ ergens doorbroken wordt. De keten geeft een fout en je browser zal de website niet weer geven. In dit artikel gaan we kort in op de chain of trust en hoe deze globaal werkt binnen DNSSEC.
Om te begrijpen hoe de chain of trust werkt zullen we eerst laten zien hoe DNS werkt. Dit doen we aan de hand van onze eigen domein naam, www.sensson.net. Wanneer je een website bezoekt typ je de url in de browser, de browser vertaalt deze url met behulp van DNS naar een server adres en vraagt de website op bij dit server adres. Wanneer je een url wilt vertalen naar een adres vraagt je browser dit eerst aan je eigen computer. Als je voor de tweede keer een adres op vraagt is er namelijk een kans dat dit adres nog bekend is en hoef je de vraag niet aan iemand anders te stellen. Wanneer je computer het antwoord niet heeft, wordt de vraag gesteld aan DNS server van je internet provider en als deze het antwoord ook niet weet stuurt deze de vraag door naar een Root name server. Deze root servers worden beheerd door ICANN (Internet Corporation for Assigned Names and Numbers) en zij hebben het antwoord op de eerste vraag.
De eerste vraag wordt dus gesteld aan een Root name server en dit is waar we het antwoord kunnen krijgen op vragen over bijvoorbeeld .net domein namen. Dit doen we aan de server a.root-servers.net. Deze Root name server geeft als antwoord dat we voor informatie over .net domein namen terecht kunnen bij een 13 andere servers. We kiezen nu voor a.gtld-servers.net.
De tweede vraag wordt gesteld aan a.gtld-servers.net. We weten dat deze DNS server meer informatie heeft over de .net zone, maar we zijn op zoek naar meer informatie over sensson.net. Volgens a.gtld-servers.net kunnen we het antwoord vinden bij de name servers ns1.sensson.net en ns2.sensson.eu. Dit zijn onze eigen name servers.
De derde vraag stellen we aan ns1.sensson.net. We zijn nog steeds op zoek naar www.sensson.net. Nu krijgen we het antwoord waar we naar op zoek zijn. De name server ns1.sensson.net geeft het IP adres terug van de server waar de website van www.sensson.net op draait.
We hebben drie vragen nodig gehad om het antwoord te krijgen op de vraag wat het IP adres voor www.sensson.net is. Dat zijn drie schakels die beveiligd moeten worden, maar ook drie schakels waar het mis kan gaan. DNSSEC kan deze schakels beveiligen door de antwoorden te ondertekenen. Bij iedere name server is een sleutel bekend waarmee het antwoord gecontroleerd kan worden. Door de antwoorden bij alle schakels te ondertekenen met de juiste handtekening wordt er een keten van vertrouwen opgebouwd. Wanneer de keten onderbroken wordt kunnen we niet meer garanderen dat het antwoord klopt. Dit is DNSSEC in de simpelste vorm.
De chain of trust zorgt er dus voor dat we het antwoord kunnen controleren. Maar waarom is dat belangrijk? Dit heeft alles te maken met de weg die de vraag en het antwoord af moeten leggen voor ze op de plek van hun bestemming zijn. Zonder controle weet je niet of het antwoord wat je hebt gekregen onderweg is aangepast. Het internet is groot en het antwoord gaat over ontzettend veel schakels voor het bij jou terug komt. DNSSEC zorgt voor de beveiliging van deze schakels zodat je zeker bent van het antwoord wat je krijgt.
Binnen de wereld van DNS wordt de plek waar informatie over een domein naam wordt opgeslagen een zone genoemd. Op de name server ns1.sensson.net bestaat een zone voor sensson.net en op a.gtld-servers.net bestaat een zone voor .net. In Delegation Signer (DS) records wordt informatie over DNSSEC opgeslagen. DNSSEC gebruikt deze records om te controleren of het antwoord klopt. DS records zijn dus belangrijk, want wanneer je deze records niet in stelt wordt de keten onderbroken.
Wanneer je een domein naam wilt beveiligen moet je de juiste informatie aan leveren bij de registrar van je domein naam. Voor .net is dat ICANN, maar in Nederland is dat Stichting Internet Domeinregistratie Nederland (SIDN). Wij leveren de informatie automatisch aan bij SIDN en SIDN voegt voor ons de juiste DS records toe. Dit doen we voor alle domeinen die via ons geregistreerd zijn en op onze name servers staan. Wij controleren deze informatie dagelijks om er voor te zorgen dat we de juiste DNSSEC informatie publiceren bij SIDN.
Meer informatie over DNSSEC kun je terug vinden op het Nederlands kennisplatform DNSSEC en bij SIDN.