Een DNSSEC-testbed voor kwantumveilige cryptografie

Voorbereiden op de toekomst

De woorden 'QUANTUM COMPUTING' op een chip.

De originele blog is Engelstalig, dit is de Nederlandse vertaling ervan.

DNSSEC werd in het leven geroepen om het DNS, een belangrijk onderdeel van de internetinfrastructuur, te voorzien van authenticatie en integriteit. Om die eigenschappen te garanderen vertrouwt DNSSEC op cryptografie. Nu er door onderzoek aanzienlijke vooruitgang wordt geboekt in het ontwerpen van kwantumcomputers, is het tijd om na te denken over een toekomstscenario waarin bruikbare kwantumcomputers een realiteit zijn. In deze blog bespreken we het testbed dat we aan het opzetten zijn om de impact van kwantumveilige cryptografische algoritmes op DNSSEC empirisch te evalueren.

Kwantumcomputers en DNSSEC

Op dit moment zijn kwantumcomputers experimenteel en niet erg krachtig. In de komende 10 of 15 jaar is het echter mogelijk dat kwantumcomputers krachtig genoeg worden om een bedreiging te vormen voor tal van cryptografische functies die worden gebruikt voor internetbeveiliging. Zelfs al zou het aanmerkelijk langer kunnen duren voordat kwantumcomputers krachtig genoeg zijn om de huidige cryptografie te bedreigen, we moeten voorbereid zijn op een worstcasescenario. In de context van het DNS is het mogelijk dat wanneer er krachtige kwantumcomputers beschikbaar komen, DNSSEC niet langer in staat zal zijn om de authenticatie en integriteit te garanderen. Voor eindgebruikers betekent dit dat ze er niet meer zeker van kunnen zijn dat ze op de juiste website terechtkomen als ze naar example.nl surfen (spoofing). Ook krijgen ze misschien meer spam en phishingmails, aangezien moderne mailbeveiligingsprotocollen ook vertrouwen op DNSSEC.

Gelukkig werken cryptografen aan het creëren van cryptografische algoritmes die bestand zijn tegen aanvallen van kwantumcomputers: zogenoemde kwantumveilige cryptografische algoritmes. Deze kwantumveilige algoritmes hebben echter vaak heel andere eigenschappen dan hun niet-kwantumveilige tegenhangers, zoals handtekeninggroottes en vereisten met betrekking tot rekentijd, geheugen en, in sommige gevallen, sleutelbeheer. Dat brengt met zich mee dat deze kwantumveilige algoritmes geen naadloze vervangingen zijn voor de algoritmes van vandaag.

Voor DNSSEC weten we al dat er strenge eisen gelden waar het bijvoorbeeld de grootte van handtekeningen en de validatiesnelheid betreft. Maar ook andere factoren, zoals de grootte van het zonebestand, hebben implicaties voor de geschiktheid van algoritmes.

PATAD: een DNSSEC-testbed voor kwantumveilige cryptografie

Om de impact van kwantumveilige cryptografische algoritmes op DNSSEC emperisch te onderzoeken zijn we het PATAD-project (Post-quantum Algorithm Testing and Analysis for the DNS-project) gestart. Het doel is om een testbed te ontwikkelen die ons in staat stelt om kwantumveilige algoritmes in DNSSEC te prototypen, evalueren en vergelijken, niet alleen voor SIDN, maar ook voor andere organisaties. Om dat te bewerkstelligen hebben we een eerste versie van het testbed gecreëerd dat we in de nabije toekomst flink gaan uitbouwen. In dit testbed ontwikkelen we prototypes van kwantumveilige varianten van de benodigde softwarecomponenten. Met behulp van dit testbed kunnen we metingen uitvoeren en kunnen we verschillende kwantumveilige algoritmes benchmarken in realistische scenario's. Uiteindelijk willen we het testbed ook openstellen voor andere onderzoekers.

Om kwantumveilige algoritmes aan DNSSEC toe te voegen, moeten we de relevante DNS-componenten aanpassen. Een DNS-opstelling die beveiligd is met DNSSEC heeft meestal verschillende componenten, die in Figuur 1 worden weergegeven. Het begint met de invoer van een zonebestand, dat de DNS-zone bevat. Dan is de zonebestandsigner (Part 1) aan de beurt, die DNSSEC-handtekeningen kan genereren. Daarna hebben we, om de zone te publiceren, een autoritatieve DNS-server nodig (Part 2) die het gegenereerde zonebestand kan laden en aanbieden. Daarmee is het publicatiegedeelte van de opstelling afgerond. Vervolgens gaan we door naar het consumptiegedeelte, waar een recursieve resolver (Part 3) in staat moet zijn om de opgehaalde handtekeningen te valideren. Ten slotte is daar de stub resolver (Part 4), die kan fungeren als intermediair tussen de recursieve resolver en een applicatie die om een DNS-lookup vraagt.

DNS-opstelling met DNS-beveiliging

Figuur 1: architectuur van het PATAD-testbed (vergelijkbaar met een typische met DNSSEC beveiligde DNS-opstelling). De onderdelen met een '*' behoeven aanpassing om kwantumveilige algoritmes te ondersteunen.

De belangrijkste elementen in deze weergave die kwantumveilig moeten zijn, zijn de zonebestandsigner die de handtekeningen genereert en de recursieve resolver die de handtekeningen moet valideren. De autoritatieve DNS-server behoeft ook aanpassing om de nieuwe algoritmes te ondersteunen, maar die wijzigingen hebben geen betrekking op de cryptografische verrichtingen. In eerste instantie zijn we begonnen met 1 algoritme (Falcon), maar dit werkt stelt ons in staat om later meer algoritmes toe te voegen en dat zijn we ook van plan. We gebruiken PowerDNS als de autoritatieve name server in de eerste versie van ons testbed.

Het PATAD-testbed stelt ons in staat om bijvoorbeeldtopologieën te creëren voor het uitvoeren van experimenten. Zo'n topologie zou bijvoorbeeld de rootzone, een topleveldomein en een secondleveldomein simuleren.

Gebruik van het testbed door operators en onderzoekers

Om te inventariseren voor welke andere organisaties ons nuttig zou kunnen zijn, vroegen we experts uit verschillende doelgroepen hoe zij baat zouden kunnen hebben bij ons testbed.

De experts bij wie we aanklopten, waren Simona Samardjiska, cryptografisch onderzoeker en universitair docent aan de Radboud Universiteit, Roland van Rijswijk-Deij, netwerkwetenschapper en hoogleraar aan de Universiteit Twente, en Joeri de Ruiter, technisch specialist security en privacy bij SURF.

Onze eerste vraag aan de 3 experts was hoe het PATAD-testbed hen zou kunnen helpen in hun werk en wat ze verwachten op te steken van het gebruik van het testbed. "Een goed ontworpen testbed kan een essentieel hulpmiddel zijn voor het evalueren van de prestaties van nieuwe algoritmes en nieuwe implementaties van algoritmes in een realistische setting die aansluit bij de eisen die door het echte internet worden gesteld," zegt Van Rijswijk-Deij. Ook voor DNS-operators zou het heel aantrekkelijk zijn om een idee te hebben van de prestaties van nieuwe algoritmes, aldus De Ruiter. De Ruiter benadrukt verder dat het belangrijk is om te weten hoe kwantumveilige algoritmes presteren "om te kunnen bepalen hoe de [kwantumveilige] algoritmes ons zouden raken." Samardjiska voegt hieraan toe dat het van belang is om veel simulaties van verschillende scenario's te kunnen uitvoeren.

Het PATAD-testbed heeft inputs (zoals algoritmes of DNS-zonebestanden) en outputs (zoals prestatiegegevens). Op de vraag welke inputs relevant zouden zijn, zegt Samardjiska dat ze graag verschillende algoritmes in het PATAD-testbed zou willen evalueren, bijvoorbeeld Falcon, UOV en Mayo. Verder noemt ze verschillende soorten statistieken die geanalyseerd zouden kunnen worden, zoals de hoeveelheid verkeer tussen resolvers, responstijden, foutpercentages, handtekeningverificatietijden, geheugengebruik en zonebestandgroottes. Ook is het belangrijk om de interne staat van het testbed te monitoren, aldus Van Rijswijk-Deij, die stelt dat een testbed "zowel extern waarneembaar verkeer (DNS-pakketten die worden uitgewisseld door de nodes waaruit het testbed bestaat) als de interne staat en beslissingen van de software (d.w.z. hergebruik van in de cache opgeslagen items op een resolver, hoeveel handtekeningen er daadwerkelijk gevalideerd worden, enz.) moet registreren". Van Rijswijk-Deij voegt eraan toe dat dergelijke output "ons een duidelijk beeld geeft van de impact van het implementeren van algoritmes en beleidsmaatregelen en ons in staat stelt te experimenteren met verschillende parameters."

Samardjiska benoemt verder "ideeën over verschillende scenario's die geëvalueerd zouden moeten worden met behulp van een testbed, zoals het testen van de mogelijkheid om publieke sleutels out of band of in gefragmenteerde vorm te verzenden. Het is zinvol om ondersteuning te bieden voor hybride algoritmes (voorbeeld), de simulatie van scenario's waarin verschillende resolvers over verschillende mogelijkheden beschikken, en denial-of-service-aanvallen, aldus Samardjiska. Het zou ook mooi zijn om de situatie in de echte wereld zo goed mogelijk na te bootsen, voegt Van Rijswijk-Deij toe, die stelt dat "dit betekent dat er ook simulaties geïmplementeerd worden met omvangrijke zones zoals .com." Daarnaast, vervolgt Van Rijswijk-Deij, "zou het fijn zijn als het testbed ook voorziet in de meest extreme situaties. Wat als bijvoorbeeld elk domein DNSSEC-ondertekend zou zijn?” Vooruitblikkend op de toekomst van het PATAD-testbed stelt Van Rijswijk-Deij voor om "te experimenteren met alternatieve transporten binnen het testbed (bijvoorbeeld TLS, QUIC of het out of band transporteren van sleutel- en handtekeningmateriaal)."

Al met al kan het PATAD-testbed organisaties helpen zich voor te bereiden op de toekomst. Als we weten welke invloed kwantumveilige algoritmes op organisaties hebben, "kunnen we ons voorbereiden op de veranderende vereisten en zijn we in staat om onze leden te informeren," aldus De Ruiter. Bovendien "kan dit helpen om te bepalen wat de mogelijke impact is op andere diensten die we uitvoeren," zo concludeert hij.

Volgende stappen

Onze interactie met de experts bevestigt dat het PATAD-testbed nuttig is. De experts deelden een breed scala aan ideeën over hoe het testbed zou kunnen worden gebruikt.

We hebben een eerste versie van het PATAD-testbed opgezet waarin we een algoritme in een DNS-softwarestack hebben geïntegreerd. Om het testbed geschikt te maken voor het uitvoeren van die hierboven beschreven metingen ondernemen we een aantal stappen. Ten eerste zullen we meer algoritmes integreren in een DNS-softwarestack. Verder zullen we de inbreng van de experts gebruiken om het testbed zodanig uit te breiden dat de relevante prestatiegegevens kunnen worden gemeten. Daarmee is het testbed niet alleen geschikt voor ons eigen onderzoek, maar ook voor dat van andere onderzoekers.

Wil je hieraan meewerken? Laat het ons weten! Stuur een e-mail naar sidnlabs@sidn.nl.