Verslag DNSSEC: Internet achter de schermen

04-08-2010

Dit verslag is geschreven door Vincent Verschuren (@vverschuren). Bedankt Vincent!

Manoeuvrerend langs wegwerkzaamheden stuurde mijn inventieve navigatiesysteem me door het prachtigste tuinbouwlandschap via nostalgische B-wegen naar het nieuwe kantoor van Pareto. Pareto is een aanbieder van weboplossingen, zowel in Microsoft technologie als in open source. Met ruim een half uur vertraging kwam ik de drempel over met het avondeten op de hielen. Een select gezelschap van 12 developers en 1 security specialist waren al druk aan het bij kletsen. De macaroni en vegetarische lasagna werden welkom onthaald, maar hierna was het tijd voor echt zware kost: DNS en DNSSEC. De spreker van deze avond was Matthijs Mekking van NLNet Labs. NLnet Labs is een stichting opgericht om (nieuwe) protocollen te evalueren en te ontwikkelen. De focus ligt hierbij op onderwerpen die direct gerelateerd zin aan het Internet, zoals IPv6 en routing, maar vooral ligt de expertise op het gebied van DNS en DNSSEC. Onze spreker is dus met recht een expert.

Omdat er een internationaal gezelschap aanwezig was, was de presentatie deze keer in het Engels. Het onderwerp van de avond was DNS en vooral de DNSSEC extensie dat een aantal security kwesties oplost. Omdat het merendeel van de aanwezigen developers was en niet dagelijks met DNS bezig zijn, begon de presentatie met een korte beschrijving van het DNS protocol.

Wat is DNS

Het Domain Name System (DNS) is het systeem en protocol dat o.a. op het Internet gebruikt wordt om IP-addressen bij domeinnamen te vinden. Het systeem bestaat uit een hiërarchische structuur van name servers. Via een recursieve lookup kan op basis van de hiërarchische structuur in de domeinnaam, van een root server naar authoritative nameserver worden genavigeerd, die uiteindelijk het IP-adres van een website teruggeeft. Ook het omgekeerde is mogelijk: een IP-adres kan gematcht worden naar een bepaald domain (reverse DNS). Hoewel dit de meest gebruikte mogelijkheden zijn, wordt DNS ook op andere manieren gebruikt, bijvoorbeeld voor het bepalen van de mailservers voor een domein. Om niet iedere keer een volledige lookup te hoeven doen, worden DNS gegevens meestal gecached door de locale DNS server. De Time To Live (TTL) waarde van het DNS record bepaald hoe lang de data in de cache blijft.

Security threats

Het grootste probleem is dat de integriteit van de verkregen data niet te valideren is. Omdat het DNS protocol niet goed beveiligd is, is het vrij eenvoudig om domeinnamen te kapen of onbereikbaar te maken door bijvoorbeeld cache poisoning. Dit is bijvoorbeeld te realiseren via de zogenaamde Kaminsky Attack, waarbij men niet alleen een DNS query maar ook een response verstuurt, die vervolgens in de cache van de DNS server wordt opgenomen. Dit kan redelijk eenvoudig omdat het DNS protocol slechts 65536 mogelijke transaction ID’s kent, waardoor dit eenvoudig te raden is. Tot recent was er geen echte oplossing voor dit probleem. Een van de mogelijke patches was het vergroten van het aantal mogelijke UDP poorten, waardoor raden moeilijker werd.

DNSSEC

DNSSEC, wat mede door NLNet Labs ontwikkeld is, is een oplossing voor dit beveiligingsprobleem. Het is een backwards compatible uitbreiding op het DNS protocol. De beveiliging wordt bereikt door de DNS records te signen d.m.v. public-key cryptografie. Het DNS record wordt geverifieerd via een ‘chain of trust’ die start vanaf de DNS root server. Op die manier kan de bron en authenticiteit van de DNS records worden geverifieerd. Ook het ontbreken van een record kan worden aangetoond doordat de hashes van de records die voor en na het ontbrekende record zouden staan, worden geretourneerd.

Praktische problemen bij het gebruik van DNSSEC

Een van de problemen is dat het periodiek nodig is de encryptie keys, of zelfs het complete encryptie algoritme te vervangen. Een aantal strategieën om dit te realiseren werden besproken. Verder is het een probleem dat nog niet alle toplevel-domeinen DNSSEC ondersteunen. Bijvoobeeld de .nl DNS-servers zijn nog niet gesigned. De verwachting is echter dat dit binnenkort gerealiseerd zal zijn.

Een ander probleem is dat DNSSEC het beheren van de DNS records veel complexer maakt. NLNet Labs werkt hiervoor aan een softwarepakket genaamd OpenDNSSEC, die dit vereenvoudigt. Ten slotte werd er een video getoond van de Signing Ceremony van de root servers.

Hoewel de meeste aanwezigen developers zijn en vanuit die functie niet dagelijks bezig zijn met DNS, was de sessie een zeer welkome verdieping van de kennis van een van de belangrijkste protocollen op het internet.

Na de sessie werd er, zoals gebruikelijk, nog lang na gesproken onder het genot van een hapje en een drankje. Ook hierin zijn we goed verzorgd door onze gastheren. Mijn dank gaat uit naar Pareto die zo vriendelijk was om de gastheer van deze avond te zijn.

News @devnologynl

There you have it: Devnology predicts 2027. Thanks all for sticking with us over the years! https://t.co/pMmr5PCztx

19-04-2017 at 20:01

Nerds talking the last 8 years, and making predictions for the next. https://t.co/VGT8XIFQ0j

19-04-2017 at 18:37

@_angelos opening the last Devnology meeting with a tweet of the first one he attended https://t.co/ufAYScx3cn

19-04-2017 at 17:08

Qwan 5dff39510bacfcefb54e89f953eddfc1a7a21185b7128d96ff6b466f56acb6d9
Macaw 06e9331a5321067b592bf45ea39db7df6792dc976000d24d3ee4043d99203514
Finalist e304343cdbeb0996cc1e7a26527993a5fa2db87ca53a81fb15dca22a35d7f28c

Devnology is a non-profit organisation and thus depends on sponsors. Thanks to our wonderful sponsors all Devnology events are free!