Ondersteuning voor veilige verhuizing van ondertekende domeinen is compleet

Hoewel DNSSEC in Nederland al bijna twee jaar geleden officieel is ingevoerd, is het verhuizen van beveiligde domeinen altijd een probleem gebleven. Je wilt immers dat een eenmaal ondertekend domein niet alleen bij de nieuwe registrar maar ook tijdens de hele overdracht beveiligd blijft.

Het daarvoor benodigde verhuisprotocol werd een paar jaar geleden al door Antoin Verschuren, Technisch Adviseur bij SIDN, bedacht en wordt inmiddels bij de IETF gestandaardiseerd.

Als onderdeel van die verhuisprocedure moest wel sleutelmateriaal tussen verkrijgende en latende registrar worden uitgewisseld, iets dat op dat moment nog helemaal niet mogelijk was in de registry-interface van SIDN. Vandaar dat vorig jaar een nieuw EPP-commando werd ontwikkeld: key relay.

Nu ook PowerDNS — de meest gebruikte DNS server voor ondertekende domeinen — de publicatie van extern sleutelmateriaal officieel ondersteunt, is de hele keten compleet. Ondertekende domeinen kunnen veilig en geautomatiseerd tussen registrars worden overgedragen. Monshouwer was afgelopen zomer de eerste die het hele verhuisprotocol ook daadwerkelijk implementeerde en uitvoerde.

Kleine toevoeging PowerDNS

Sinds kort is de direct-dnskey optie een volwaardig onderdeel van PowerDNS. Hoewel deze switch precies een jaar geleden (vanaf versie 3.2) al in de DNS server software werd opgenomen, heeft deze pas met de release van versie 3.3.1 vorige maand het label ‘experimenteel’ verloren. Daarmee ondersteunt PowerDNS nu officieel het veilige IETF verhuisprotocol voor DNSSEC-ondertekende domeinen.

Ik ben destijds in de Internet Draft voor dit protocol gedoken, vertelt Peter van Dijk, programmeur en support-medewerker bij Netherlabs, de lead developer en supporter van de PowerDNS software. Toen bleek al gauw dat de ondersteuning van het verhuisprotocol maar een kleine toevoeging nodig had. Als de direct-dnskey optie aan wordt gezet, worden geïmporteerde DNSKEY records in de database meegenomen bij de ondertekening en publicatie van de zones. Op die manier kan sleutelmateriaal van een collega-registrar in de zone worden opgenomen, een voorwaarde voor het opzetten van een veilige overdracht.

MethodeIETF0-600x268

EPP scripts

Hoewel het veilig verhuizen van een ondertekend domein nogal wat voeten in de aarde heeft, raakt deze complexiteit de PowerDNS software nauwelijks. De DNS server haalt zijn informatie uit de achterliggende database — in negentig procent van de gevallen is dat MySQL — en genereert op basis daarvan zijn zones. Hoe die informatie in eerste instantie in die database terecht komt, is voor PowerDNS niet van belang. Operators gebruiken daarvoor aparte scripts die onder andere via EPP (Extensible Provisioning Protocol) met de registry communiceren. De database vormt dus de interface tussen de DNS server enerzijds en het achterliggend back-end voor de zone-informatie anderzijds.

Complex verhuisprotocol

De complexiteit van het verhuisproces zit ‘m in de procedure, niet in de doorgifte van het sleutelmateriaal of de publicatie ervan. Dat zegt Kees Monshouwer, eigenaar en oprichter van het gelijknamige internet-bedrijf. Hij heeft een PHP EPP library die ooit door internet provider Mijndomein is ontwikkeld geadopteerd en deze uitgebreid met ondersteuning voor DNSSEC en key relay. Monshouwer was vorige zomer dan ook de eerste die een beveiligde verhuizing van een ondertekend domein succesvol uitvoerde.

Het inbouwen van de ondersteuning voor het verhuisprotocol heeft me een paar dagen gekost. Daarvoor moet je het verhuisproces ophakken in verschillende stappen. Nu het key relay commando voor EPP er eenmaal is, is het uitwisselen van sleutelmateriaal tussen de registrars echter heel eenvoudig geworden. De verkrijgende partij ondertekent zijn nieuwe zone en stuurt de publieke sleutels via EPP naar de latende registrar. Deze krijgt vervolgens bericht dat er extern sleutelmateriaal beschikbaar is. Dan is het slechts een kwestie van ophalen, wat checks uitvoeren, de sleutels ondertekenen en publiceren.

AntoinVerschuren-DNSSEC_ICANN_EPP_Keyrelay_20130410-2-sheet6-600x339

Elektronisch doorgeefluik

Voor PowerDNS zijn die laatste twee stappen niet meer dan het invullen van een veld in de achterliggende database,aldus Monshouwer. Zodra een nieuw record wordt weggeschreven, gaat de DNS server er gelijk mee aan de slag. Zou je datzelfde met BIND named willen doen, dan moet je achtereenvolgens een zone file wegschrijven, ondertekenen en publiceren. Ze hebben wel een database back-end, maar BIND blijft toch erg georiënteerd op bestanden.

In feite is een veilige verhuizing voor driekwart gelijk aan een key roll-over, maar dan over twee registrars verdeeld. Met het key relay commando voor EPP is er nu een elektronisch doorgeefluik waarmee gemakkelijk sleutelmateriaal van de ene naar de andere registrar kan worden overgezet. Wat daar nog aan ontbreekt is feedback: je zou via dezelfde interface bericht willen ontvangen dat het sleutelmateriaal goed is ontvangen en wanneer het gepubliceerd gaat worden. Nu kun je alleen maar wachten, met als risico dat je sleutelmateriaal nooit gepubliceerd wordt. Dat kan betekenen dat je klant twee dagen extra zit te wachten zonder dat je hem wat kunt vertellen.

Referentie-implementatie

Daarnaast zou SIDN meer kunnen doen om de implementatie van het verhuisprotocol bij de registrars te stimuleren. Problemen bij de verhuizing van beveiligde domeinen zijn immers een belangrijke oorzaak van beschadigde domeinen. Denk dan bijvoorbeeld aan een implementatie-raamwerk in de vorm van pseudo-code of een gedetailleerd flow diagram, maar misschien ook een referentie-implementatie. Op dit moment schrijven de registrars veelal hun eigen scripts, en daarvan wordt maar weinig gepubliceerd. We hebben het nu nog niet zo in de gaten omdat er nog maar weinig gevalideerd wordt, maar een volledige DNSSEC-implementatie is toch behoorlijk ingewikkeld.


Michiel Henneke is marketingmanager bij SIDN.

Dit artikel verscheen op 3 februari 2014 op DNSSEC.nl en is met toestemming van de auteur op ISP Today gepubliceerd.