29-12-2009 16:39:40

Een veilig internet, dat zou leuk zijn. Helaas weten we allemaal wel dat dat een utopie is.
Een tijd geleden was op dit weblog te lezen dat we met een aantal collega’s op HAR2009 zaten. Op HAR zijn een heel aantal beveiligings-issues besproken, waaronder een bekende, ‘DNS Poisoning’.

Bij DNS Poisoning is het mogelijk om een nameserver zover te krijgen dat hij jouw antwoord aanneemt op bepaalde vragen, in plaats van het echte antwoord. Er zijn een aantal opties om daar wat aan te doen, maar de beste oplossing die op dit moment ‘in de markt’ wordt uitgerold is DNSSEC. DNSSEC is bedoeld om ervoor te zorgen dat nameservers (zoals bijvoorbeeld ‘nscache1.bit.nl’ voor mensen in het BIT netwerk) kunnen verifieren dat het antwoord dat ze krijgen van een andere nameserver, ook echt het juiste antwoord is. Dat wordt gedaan door de zone een digitale handtekening te geven.

DNSSEC is nog lang niet live op het hele internet, maar het wordt wel steeds uitgebreider. Zo zijn een aantal landen (bijvoorbeeld Tsjechie en Zweden) al bezig met het ondertekenen van hun eigen zone. SIDN (die de .nl zone beheert) heeft aangegeven een maand nadat de root-zone (.) is ondertekend ook de .nl zone te ondertekenen. Het ondertekenen van de root-zone staat rond juli 2010 te gebeuren.

BIT is op dit moment nog aan het uitzoeken hoe wij het ondertekenen van de duizenden zones die wij hosten moeten gaan regelen. Een ondertekening moet namelijk regelmatig ververst worden en als dat mis gaat is potentieel de hele zone (tijdelijk) onbruikbaar. DNSSEC kan niet goed tegen fouten en dus moeten we voorkomen dat we daar tegenaan lopen.

Om een beetje kennis en ervaring op te doen proberen we (net als met IPv6) een beetje in de voorhoede mee te wandelen qua ontwikkelingen. Een van die stappen is ‘zet eens een recursor aan die DNSSEC ondersteunt’. Dat hebben we gedaan, door middel van het installeren van Unbound. De recursive nameserver geeft zelf geen zones uit, maar is de nameserver waaraan desktop-machines vragen ‘wat is het ip-adres van www.bit.nl’.

Unbound is een nameserver van NLnet Labs, een nederlandse stichting die veel met DNS doet. Unbound ondersteunt verificatie van digitale ondertekeningen en er wordt nog hard aan ontwikkeld.
Deze recursive nameserver dienst is vanuit het BIT-netwerk te bereiken en te gebruiken en doet qua betrouwbaarheid en stabiliteit niet onder voor de normale recursive nameservers. Ook deze nameservers zijn redundant (over drie verschillende machines) met BGP uitgevoerd en ‘kunnen niet stuk’ ;). Er is echter wel een grote maar: Deze nameserver hebben verificatie aan staan, en zullen geen antwoorden geven voor zones die wel een ondertekening hebben, maar waar de ondertekening niet klopt. Het kan bijvoorbeeld zijn dat iemand zijn ondertekening verlopen is; die zone is dan niet te resolven via deze nameservers.

Dus, deze nameservers zijn zonder problemen te gebruiken, maar wel op eigen risico. Als je deze nameservers wilt gebruiken moet je de volgende IP’s als nameserver opgeven in je client:
nsseccache1.bit.nl:

nsseccache2.bit.nl:

Onze eigen spamd en mx machines maken al zonder problemen gebruik van deze nameservers. Het kan verstandig zijn om een van de normale nameservers ook in de lijst met nameservers te houden, omdat deze nameservers bij ‘invalid validation’ een SERVFAIL teruggeven, wat een client een nieuw request zal doen sturen naar de volgende nameserver in het lijstje.

Wij gaan ondertussen verder met voorbereidingen voor het ondertekenen van onze zones, voor meer (Nederlandstalige) informatie over DNSSEC, zie http://www.dnssec.nl/.