ValiBox: DNSSEC-validatie thuis

De .nl-zone heeft de meeste DNSSEC-signed delegaties van alle top-level domains. Helaas is het aantal validerende resolvers in Nederland nog behoorlijk laag. De ValiBox is onze aanzet om dit probleem aan te pakken en DNSSEC beschikbaar te maken voor thuisgebruikers.

Ondanks het feit dat een paar grote partijen zoals Google en Comcast inmiddels DNSSEC-validatie op hun resolvers aan hebben staan, blijft het aantal validerende resolvers relatief laag. Natuurlijk kan iedereen thuis op zijn of haar netwerk een eigen resolver neerzetten, en daarop DNSSEC-validatie configureren. Maar dat vereist meer kennis van DNS en netwerken dan bij de meeste gebruikers beschikbaar is.De ValiBox home router software image, gebaseerd op OpenWRT. Als je een ValiBox-device in je thuisnetwerk aansluit, gedraagt het zich als een WiFi-accesspoint met een eigen local NAT, waarbinnen DNSSEC-validatie gebruikt wordt.Deze DNSSEC-validatie heeft echter wel een wijziging ten opzichte van 'normale' DNSSEC-validatie; als er een DNSSEC-fout wordt gezien, krijgt de gebruiker niet het standaard antwoord 'kan het adres niet vinden', maar wordt hij of zij doorverwezen naar een pagina met daarin de melding dat er een DNSSEC-fout is gevonden. Deze pagina biedt ook de mogelijkheid om deze fout tijdelijk te negeren. Als de gebruiker hiervoor kiest zal de domeinnaam vervolgens wel resolven. Het is te vergelijken met een self-signed SSL-certificaat, waar je in je browser een melding van krijgt en die je vervolgens tijdelijk toe kunt staan.

Waarom DNSSEC-fouten (tijdelijk) negeren

Een veel gehoorde reden om niet aan DNSSEC-validatie te doen is dat bij het maken van een fout door de domeinnaambeheerder, bijvoorbeeld het laten verlopen van de digitale handtekeningen, de zone 'verdwijnt' voor mensen die deze handtekeningen controleren, terwijl de zone nog wel werkt voor mensen die dat niet doen. Een validator kan immers in veel gevallen niet het verschil maken tussen een DNS man-in-the-middle aanval en een beheerdersfout: de handtekening klopt of de handtekening klopt niet.Daarnaast is er, omdat DNSSEC backwards compatible is zijn met het bestaande DNS, binnen het protocol ook geen onderscheid te maken tussen bijvoorbeeld een lame delegation en een DNSSEC-fout; in beide gevallen zal een validerende resolver het antwoord 'SERVFAIL' (server failure) teruggeven.SIDN werkt hard aan het terugdringen van het aantal DNSSEC-fouten binnen .nl, onder andere door actieve monitoring en waarschuwing van de registrars bij het zien van problemen. Momenteel zien we dagelijks nog zo'n 5000 fouten, op de 2,6 miljoen gesigned delegaties.Hoewel het aantal fouten relatief laag is, kan het toch vervelend zijn als een domein niet beschikbaar is vanwege een DNSSEC-fout, en dat is een van de redenen dat partijen niet staan te springen om als eerste validatie te bieden. Daarom is het in deze fase van de uitrol van DNSSEC gewenst om sommige fouten tijdelijk te kunnen negeren.

Hoe werkt de ValiBox?

SIDN Valibox

Een aantal validerende resolvers hebben een optie om 'Negative Trust Anchors' (NTAs) in te stellen; dit geeft de beheerder van de resolver de mogelijkheid om DNSSEC-validatie voor specifieke zones (tijdelijk) uit te schakelen. Het idee daarachter is dat een mens beter kan beoordelen of het om een aanval of een beheerdersfout gaat, en de afweging kan maken dat het succesvol resolven van een domein tijdelijk belangrijker is dan de bescherming die DNSSEC biedt.De ValiBox maakt deze functionaliteit beschikbaar aan de gebruiker zonder dat hij of zij in de configuratie van een resolver te hoeft duiken.Intern gebruikt de ValiBox een standaard image van OpenWRT, waar we een paar vernieuwingen aan hebben toegevoegd: we hebben een variant van Unbound gemaakt, die bij DNSSEC-fouten niet de standaard SERVFAIL teruggeeft, maar het IP-adres van de ValiBox zelf. Op de ValiBox draait een webapplicatie die we zo hebben gemaakt dat deze herkent dat het om een validatiefout gaat, en de gebruiker de optie geeft om een NTA in te stellen. Tenslotte hebben we nog een simpel systeem gemaakt om de software te updaten, waar de gebruiker slechts op 1 knop 'update' hoeft te klikken.

Evaluatie

We hebben binnen SIDN een gebruikerstest gehouden; We hebben een eerste versie van de ValiBox gemaakt, met een simpele variant van bovenstaande software. Deze had nog wat bekende tekortkomingen maar we wilden vooral testen of het concept zelf in goede aarde zou vallen, en of de ValiBox bruikbaar was voor de gemiddelde gebruiker.We hebben 20 GL-Inet-devices met daarop de ValiBox software uitgedeeld aan collega’s om uit te proberen.  De gebruikers verschilden van mensen die niets van netwerktechniek afwisten tot mensen die meteen aan de slag gingen met de beveiliging van het systeem.De resultaten waren overwegend positief; bij 15 van de 20 gebruikers werkte het systeem direct, zonder verdere instellingen te wijzigen. Zij konden naar dnssec-test.sidnlabs.nl gaan en zien dat er DNSSEC-validatie plaats vond. Bij 2 gebruikers leek de ValiBox niet te werken. De overige 3 gebruikers hadden geen tijd kunnen vinden om de ValiBox te testen.Er waren wel enkele klachten; twee gebruikers kregen de rapportage dat de software in ‘permissive mode’ draaide, waarbij DNSSEC-validatie wel plaats vindt maar er geen gevolg wordt gegeven aan het vinden van DNSSEC-fouten. Een gebruiker kon zijn audio-apparatuur niet aansturen via het netwerk.Er waren ook een aantal opmerkingen waarvan we wel wisten dat het nog niet goed zat; de NTA-management pagina's hadden nog geen goede beveiliging, en 1 gebruiker wilde de hele optie eigenlijk liever helemaal uit kunnen zetten (en dus alleen standaard DNSSEC-beveiliging krijgen). De gewijzigde Unbound is nog niet in staat alle gevallen van DNSSEC-fouten correct te herkennen en de redirect-setup werkt niet goed met Safari.Al met al is de proef zeer leerzaam geweest en het resultaat was goed genoeg om mee verder aan de slag te gaan. Bij het merendeel van de gebruikers werkte de ValiBox zoals verwacht en we zijn van mening dat de problemen die er waren op te lossen zijn door het verbeteren van de software.

Wat nu?

Om te beginnen gaan we de belangrijkste gebreken die we hebben gevonden oplossen en de ValiBox-software releasen onder een open source licentie. Vervolgens gaan we kijken of we de feature die we aan Unbound hebben toegevoegd kunnen verbeteren en terug kunnen geven aan de ontwikkelaars ervan. Ook willen we gaan kijken of er nog andere of additionele software is om de DNSSEC-validatie en het NTA-management uit te voeren.Uiteindelijk is ons doel dat de ValiBox zelf overbodig wordt; dat DNSSEC-validatie standaard onderdeel wordt van home routers of zelfs op gebruikerssystemen zelf. Er zijn in deze richting al enige initiatieven zoals Turris en system resolved. Met de ValiBox willen we een bijdrage leveren om DNSSEC-validatie sneller uitgerold te krijgen.Houd onze site in de gaten voor de public release van de ValiBox!