WEIRDS de toekomst van WHOIS?

Naast een registratieservice biedt elke registry ook een WHOIS-dienst aan waarmee gebruikers de mogelijkheid hebben om informatie over een domeinnaam op te vragen. Deze informatie bestaat meestal uit de NAW-gegevens van de houder en informatie over de registrar via wie de domeinnaam is geregistreerd. De vorm waarin deze gegevens worden verstuurd en getoond is niet gestandaardiseerd. De data-attributen kunnen verschillende namen en een afwijkende volgorde hebben. In de WHOIS voor .nl wordt de eigenaar van een domeinnaam bijvoorbeeld aangegeven met het attribuut ‘registrant’ . Dit is in de WHOIS van .be “DomeinnaamHouder” en bij .de is het “Domain Holder”. Dat zijn drie voorbeelden waarbij hetzelfde wordt bedoeld maar anders wordt beschreven. Verwarrend! En dan is dat nog maar één attribuut van de vele die in een WHOIS-output getoond kunnen worden.

Standaarden

De internetwereld wordt gedreven door standaarden. Dit is nodig omdat er veel verschillende partijen zijn met evenzoveel  verschillende systemen, platformen, netwerken, protocollen, software e.d. Om interoperabiliteit te bevorderen hebben deze partijen in de IETF (Internet Engineering Task Force) met elkaar standaarden afgesproken. De huidige WHOIS-standaard, IETF RFC 3912, is daar een voorbeeld van, maar, het probleem met deze RFC is dat deze vrij oppervlakkig is. Er wordt alleen beschreven dat de WHOIS via TCP op poort 43 bereikbaar moet zijn en dat elk verzoek en antwoord wordt afgesloten met een ASCII CR  LF (carriage return en linefeed). De RFC  beschrijft niet welke data er verstuurd moeten worden en in welk formaat en wat de verschillende data-attributen betekenen. Adresnotatie en internationalisatie ontbreekt ook.

Hogere prioriteit

Veel partijen willen graag  op een geautomatiseerde manier de WHOIS kunnen bevragen. Dit kan een registrar zijn maar denk bijvoorbeeld ook aan een Certificate Authority (CA). Er ontstaat een probleem op het moment dat het software systeem van een van deze partijen moet samenwerken met meerdere of zelfs tientallen verschillende WHOIS-implementaties. Voor elke WHOIS moet separate code worden geschreven en onderhouden en de kans op fouten is groter vanwege het woud aan termen en namen voor data-attributen die feitelijk hetzelfde betekenen maar steeds een andere naam hebben per implementatie.  Dit was altijd al een probleem, maar door de introductie van het nieuwe gTLD-programma van ICANN heeft dit een hogere prioriteit gekregen. Dit programma voorziet in een enorme uitbreiding van het aantal top-level domeinen, waarbij er +/- 1800 nieuwe TLD’s beschikbaar komen zoals .amsterdam of .nike. ICANN verplicht elke nieuwe gTLD-registry om ook een WHOIS-dienst aan te bieden. De huidige situatie kan als er niets gebeurd exponentieel verslechteren, met als gevolg veel extra werk en kosten voor registrars.

Gelukkig is er binnen de IETF een werkgroep gestart met als doel het komen tot een nieuwe standaard voor een  WHOIS-dienst. Deze werkgroep heeft de naam WEIRDS (Web Extensible Internet Registration Data Service). Het resultaat van de werkgroep wordt een nieuw WHOIS-protocol met de naam RDAP (Registration Data Access Protocol).

Technologie

WEIRDS maakt gebruik van REST en JSON, een combinatie die de laatste jaren bijzonder populair is bij het ontwerpen van nieuwe webdiensten.  Een RESTful web service is een service die gebruikt maakt van Representational State Transfer (REST) als architecturale stijl. In het kort draait het bij hierbij om twee zaken, de http-methoden en resources. Een resource en een methode samen zijn voldoende om een operatie uit te voeren op een RESTful web service. Een voorbeeld van een methode is de GET om een resource op te vragen en POST om een nieuwe resource aan te maken. Een resource is een unieke identifier meestal in the vorm van een HTTP URI. WEIRDS beschrijft drie afzonderlijke resources: Domain, Entity en Nameserver.

JSON staat voor JavaScript Object Notation en is van oorsprong een deel van de programmeertaal Javascript. Het is een alternatief voor de taal XML. Mede door de eenvoud en de  compacte notatie wordt JSON in steeds meer web services toegepast. Daarnaast is er uitgebreide ondersteuning van het formaat in vele ontwikkeltalen en platformen. Bij de huidige XML WHOIS van .nl kan met XSD (XML Scheme Definition Language eenvoudig gecontroleerd worden of de document structuur en inhoud van het antwoord valide is. De XSD wordt ook wel het contract genoemd waaraan een XML document moet voldoen. Een nadeel van JSON is dat er (nog) geen complexe document validatie mogelijk is zoals bij  XML, Hierdoor is het niet eenvoudig om te controleren of een JSON document valide is.

De WEIRDS-werkgroep heeft besloten om REST te gebruiken op basis van onder andere de ervaringen van ARIN en RIPE NCC.  Deze partijen zijn als RIR (Regional Internet Registry) verantwoordelijk voor het verdelen van IP-adressen en hebben een WHOIS-service gebruikt om te kunnen achterhalen aan welke partij een IP-adres block is uitgedeeld. ARIN en RIPE NCC gebruikten hiervoor RESTful web services en deze zijn een succes gebleken. Een groot deel van dit succes komt voort uit het gemak waarmee RESTful web services zijn te gebruiken.

Prototype

Op het moment dat de WEIRDS draft voldoende vorm kreeg heeft SIDN Labs besloten om een prototype te gaan bouwen. De achterliggende gedachte hierbij was dat we bij SIDN Labs geloven in werkende code en bruikbare prototypes om te experimenteren met nieuwe technologieën. In dit geval om de voorgestelde draft RDAP-standaard te evalueren. SIDN Labs is actief in de IETF en we zullen de resultaten van de evaluatie dan ook delen met de WEIRDS-werkgroep. Dit is ook het goede moment hiervoor, omdat RDAP de status ‘draft standard’ heeft en waar nodig nog aangepast kan worden, bijvoorbeeld op basis van de resultaten van onze evaluatie. Daarnaast delen we de resultaten van de evaluatie natuurlijk met de registrars via deze website.

Het prototype is ontwikkeld als een proxy die voor de bestaande XML WHOIS is geplaatst (zie onderstaande figuur). Een verzoek aan de WEIRDS WHOIS wordt vertaald naar een verzoek voor de XML WHOIS. Het resultaat van de XML WHOIS wordt daarna vertaald naar een JSON-resultaat dat naar de gebruiker wordt teruggestuurd. Het voordeel van deze architectuur is dat we relatief snel een implementatie konden ontwikkelen omdat de business logica vooral bestaat uit het doorsturen van verzoeken en het transformeren van XML naar JSON. Daarnaast kunnen alle business rules die in de XML WHOIS zijn geprogrammeerd automatisch worden hergebruikt. Het nadeel is dat de JSON output beperkt is tot de data die beschikbaar is via de XML WHOIS. Zo is er in de XML WHOIS geen DNSSEC sleutelmateriaal aanwezig, dit betekent dat de DNSSEC-attributen in de WEIRDS JSON response niet gebruikt kunnen worden. Ook is er maar één zoekingang mogelijk (domeinnaam) omdat de XML WHOIS zoeken op een entiteit of name server niet ondersteund.

RTEmagicC_WEIRDS-implementatie.png

Pilot

Het doel van de WEIRDS-pilot voor .nl is (1) .nl-registrars in een vroeg stadium een beeld te geven van de nieuwe WHOIS-standaard die nu wordt ontworpen en (2) waar nodig het ontwerp in de IETF te beïnvloeden op basis van de resultaten van de pilot.

Op weirds.sidnlabs.nl vind je meer informatie over het prototype en hoe je het kunt gebruiken. Alle .nl-registrars en andere gebruikers met een ontheffing voor de Registrar WHOIS van .nl worden uitgenodigd om het prototype uit te proberen en de ervaringen te delen via hetfeedbackformulier op weirds.sidnlab.nl.


Maarten Wullink is research engineer bij SIDN Labs.

Dit artikel verscheen op 17 oktober op de blog van SIDN Labs en is met toestemming van de auteur gepubliceerd op ISP Today.

Over Maarten Wullink

Laatste artikelen