SIDN waarschuwt voor kwetsbare DNSSEC-instellingen

De titel van deze blog klinkt misschien wat sensatiebelust, maar gelukkig trok hij wel je aandacht. Bovendien klopt hij wel. Graag licht ik dit hieronder toe.

DNSKEY’s

In samenwerking met SIDN Labs, hebben onderzoekers van SURFnet en Universiteit Twente de kwaliteit van alle gesigneerde domeinnamen in .nl geanalyseerd. De onderzoekers hebben onder andere gekeken naar de lengte van de publieke sleutels in een zone file, de zogenaamde DNSKEY’s. Want wat is een geschikte lengte? Maak je ze lang, dan is dat weliswaar heel veilig maar worden DNS-antwoorden mogelijk te groot. Hou je de DNSKEY echter kort, dan is deze in theorie te kraken. Zeker als je deze DNSKEY’s niet of slechts met een grote interval vernieuwt (het zogenaamd ‘rollen’ van de sleutels).

Maar wat is ‘te kort’ eigenlijk?

Dit soort informatie over DNSKEY’s is beperkt voorhanden, maar wel heel relevant voor onze registrars. In hun rol van DNS-operator zijn zij meestal degenen die een domeinnaam van een DNSSEC-handtekening voorzien en daarmee de veiligheid van hun dienstverlening en die van het nl-domein als geheel verhogen.

512 bits voor RSA is simpelweg te kort

Vooropgesteld; een domeinnaam die is gesigneerd met behulp van DNSSEC is per definitie veel veiliger dan een ongesigneerde domeinnaam. Toch is de sleutellengte die een registrar kiest, een belangrijke factor in dit geheel. Goede documentatie hierover is echter schaars. Het mede dankzij SIDN Labs tot stand gekomen IETF-document, RFC6781 zegt in paragraaf 3.4.2 iets over de lengte van sleutelmateriaal. In dat document wordt gesteld dat ruwweg alles kleiner dan 700 bits een risico vormt, omdat er daadwerkelijk geslaagde kraakpogingen zijn geweest bij die lengte.

ECDSA dan maar?

Maar let wel, het hierboven genoemde RFC-document gaat uit van het RSA-algoritme. Wordt er bijvoorbeeld gebruik gemaakt van het relatief nieuwe Elliptic Curve (ECDSA), dan gelden hele andere minima. Ruwweg is een ECDSA-sleutel van 256-bits al net zo veilig is als de enorme 3072-bits lengte van een RSA-sleutel. Kortom, het gebruikte algoritme speelt een wezenlijke rol bij dit verhaal. Juist omdat ECDSA veilig blijft bij kortere lengtes, is het een interessant algoritme voor DNSSEC (de omvang van een DNS-antwoord doet ertoe; die wil je liefst klein houden). Helaas is ECDSA nog geen gemeengoed. Ook het registratiesysteem van SIDN (DRS) ondersteunt het nog niet, maar daar komt binnenkort verandering in. Ook enkele andere grote spelers (met name CloudFlare) hebben het omarmd en passen het al toe bij het signeren van hun domeinnamen.

Richtlijnen

Een RSA-sleutellengte van slechts 512 bits serieus aan de korte kant is voor een gesigneerde domeinnaam, hoewel er dus wellicht behoefte is aan duidelijker richtlijnen op dit gebied. Toch troffen de onderzoekers nog 270 .nl-domeinnamen aan met deze sleutellengte (waarvan 265 bij een specifieke registrar). Op een totaal van ruim 2,4 miljoen gesigneerde domeinnamen is dat gelukkig erg weinig. Maar het was aan de andere kant een kleine moeite om een paar registrars te wijzen op de, volgens huidige maatstaven, te zwakke beveiliging van hun domeinnamen. Inmiddels hebben we dit dan ook gedaan.

Er is zeker ruimte voor vervolgonderzoek en het opstellen van handige richtlijnen. Het is bijvoorbeeld ook interessant om te bekijken of publieke sleutels binnen .nl wel eens worden vernieuwd en zo ja met welke regelmaat. Dit is onderzoek dat prima past in het OpenIntel-project dat we samen doen met eerder genoemde instellingen.