Minimalisering van de querynaam binnen het DNS opnieuw bekeken

De adoptie van QNAME minimization is aanzienlijk toegenomen sinds het in 2016 werd geïntroduceerd

Verlichte kubussen met de letters DNA in een futuristische omgeving

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

Auteurs: Jonathan Magnusson, Moritz Müller, Anna Brunstrom, Tobias Pulls

Onlangs publiceerden we tijdens de Passive and Active Measurement Conference (PAM 2023) de paper 'A Second Look at DNS QNAME Minimization'. Deze paper was een gezamenlijk project van Karlstad University, SIDN Labs en Internetstiftelsen en ging over de adoptie van QNAME minimalisation (qmin) binnen het DNS. De privacyfunctie voor recursieve DNS-resolvers qmin werd in 2016 geïntroduceerd om query's die via het DNS worden verstuurd minder risicogevoelig te maken en de privacy te verbeteren. Het doel van het onderzoek was om te meten in hoeverre de adoptie van qmin sinds de introductie ervan is toegenomen en bouwt voort op de experimenten van De Vries et al. uit 2018.

Wat is qmin?

Het is de taak van de recursieve DNS-resolver om bij de DNS-nameservers de resource record op te vragen waar de DNS stub resolver om vraagt. Als je de website op www.kau.se wilt bezoeken, stuurt de stub resolver, bijvoorbeeld op je mobiele telefoon, eerst de query naar de recursieve DNS-resolver. Vervolgens moet de recursieve resolver eerst een van de rootservers bevragen, daarna een van de TLD-servers van .se en zo verder totdat hij bij de autoritatieve zone van kau.se aankomt, waar de resource record kan worden opgehaald. Oorspronkelijk zou een resolver, zoals in de onderstaande figuur wordt afgebeeld, de querynaam van www.kau.se in zijn geheel naar elk van de autoritatieve nameservers hebben gestuurd. In veel gevallen is dit technisch gezien echter onnodig. Problematischer is dat in sommige gevallen gevoelige informatie in de domeinnaam zou kunnen uitlekken naar derden.

Normal DNS flow

Figuur 1: Normale DNS-stroom.

RFC 9156 beschrijft het proces waarbij de hoeveelheid informatie die in een DNS-query wordt verstuurd, wordt teruggebracht tot het minimum dat nodig is om de query om te zetten. Dit zorgt ervoor dat de hoeveelheid gegevens die over het netwerk wordt verzonden kleiner wordt, de privacy verbetert en het risico op afluisteren afneemt. Tijdens het proces worden overbodige labels uit de opgevraagde domeinnaam verwijderd en wordt het minimumaantal DNS-query's gebruikt dat nodig is om de domeinnaam om te zetten. De onderstaande figuur laat zien hoe de vorige lookup eruit zou hebben gezien als qmin ingeschakeld was geweest.

A minimizing resolver

Figuur 2: Een minimaliserende resolver.

De metingen

De Vries et al. deden in 2018 al onderzoek naar de uitrol van QNAME minimisation, maar sindsdien is er veel veranderd: in 2021 verscheen een bijgewerkte versie van qmin, waarin de oorspronkelijke specificaties wijzigingen hadden ondergaan, en daarnaast is in meer resolversoftware het minimaliseren van de querynaam tegenwoordig standaard ingeschakeld.

Het doel van ons onderzoek was om de adoptie van qmin te meten over een langere periode en in meer detail. Om die reden hebben we zowel actieve als passieve metingen uitgevoerd.

Actieve metingen

Het doel van de actieve metingen was om de ontwikkeling van qmin-adoptie over langere tijd te volgen en inzicht te krijgen in de kenmerken van de resolvers die qmin hebben ingevoerd. We analyseerden gegevens die door NLnet Labs met behulp van RIPE Atlas probes werden verzameld en beschikbaar waren op DNSThought. Ook beoordeelden we open resolvers uit een lijst die tot stand kwam door de IPv4-adresruimte te scannen op servers die werken op UDP-poort 53. Het doel daarvan was om open resolvers te classificeren en de nauwkeurigheid van de classificatie in de passieve metingen te verbeteren.

De actieve meetmethoden waren een verbetering ten opzichte van het vorige onderzoek door De Vries et al. We gebruikten 3 geografische locaties voor de metingen op open resolvers, bevroegen elke open resolver 100 keer en creëerden een nieuw domein met een wildcardlabel om gecachete delegeringen te beperken. Dankzij deze verbeteringen in de meetmethoden konden we bij het classificeren van de resolvers extra informatie waarnemen, namelijk 'conflicterende resolvers' die de query's soms maar niet altijd minimaliseren. In de paper gaan we dieper in op het fenomeen van conflicterende resolvers.

Passieve metingen

De passieve metingen lieten de evolutie van qmin vanaf het onderzoek door De Vries tot aan oktober 2022 zien op grotere schaal en maakten gebruik van gegevens die afkomstig waren van de rootservers en het ccTLD .nl. De methodologie werd verbeterd om dieper inzicht te verschaffen in de adoptie van qmin, zoals wie vooroploopt en wie achterblijft, en om incidentele informatielekken te ontdekken bij resolvers waarop qmin is ingeschakeld.

We categoriseerden query's als geminimaliseerd als ze bij de root 1 label en bij .nl 2 labels bevatten. In tegenstelling tot eerder onderzoek lieten we query's van de Google-browser Chrome die betrekking hadden op niet-bestaande domeinnamen met één label buiten beschouwing, om overschatting te voorkomen. Dit deden we door alleen te kijken naar query's naar bestaande domeinnamen.

Gecontroleerde experimenten

Het doel van de gecontroleerde experimenten was om te onderzoeken hoe populaire open-source resolvers (Bind, Unbound, Knot Resolver en PowerDNS) presteren wanneer ze geminimaliseerde query's verwerken. We gebruikten de Cisco Umbrella Top 1M-lijst van meest populaire query's op basis van passief DNS-gebruik en vergeleken de resultaten met die van het eerdere onderzoek door De Vries et al. De resolvers werden geconfigureerd met dezelfde cachegrootte en DNSSEC was uitgeschakeld. In het onderzoek werd gekeken naar zowel de qmin-modus 'relaxed' als 'strict' en de resultaten werden vergeleken met die van het eerdere onderzoek.

Adoptie van qmin neemt verder toe

Lijngrafiek die inzicht geeft in de adoptie van qmin op basis van metingen met Ripe Atlas probes
Figuur 3: Actieve metingen door NLnet Labs met Ripe Atlas probes.
https://images.ctfassets.net/yj8364fopk6s/HXIOgSETcseK3L2uH7Izr/e988768c6330c41ad3e1780935f9dcd7/Active_measurements_by_NLnet_Labs_with_Ripe_Atlas_Probes.png

De resultaten van het onderzoek laten zien dat de adoptie van qmin sinds 2018 aanzienlijk is toegenomen. Uit de actieve metingen (zie bovenstaande figuur) blijkt dat de adoptie is toegenomen van 2500 door RIPE Atlas probes gebruikte resolvers in 2018 naar 14.000 in 2022 en van 18.000 open resolvers waarop qmin was ingeschakeld in 2018 naar 80.000 in 2022. Hoewel de resultaten van RIPE Atlas probes misschien niet representatief zijn voor de gemiddelde resolver op het internet, is de toename in de adoptie van qmin niettemin een positieve ontwikkeling voor de privacy op het internet.

Zoals we in de onderstaande figuur laten zien, brengen de passieve metingen op root- en TLD-nameservers ook aan het licht dat de adoptie op één rootserver is toegenomen van 0,6% in 2018 naar 2,5% en op de TLD-servers van .nl van 35,5% in 2019 naar 57,3%. Bijna 30% van de in Nederland gevestigde resolvers heeft qmin ingeschakeld. Deze resolvers zijn verantwoordelijk voor ongeveer 40% van alle query's uit dit land. Ter vergelijking: in de VS heeft slechts zo'n 20% van de resolvers qmin ingeschakeld.

Grafiek die resultaten laat zien van metingen aan de root- en TLD-nameservers
Figuur 4: Passieve metingen op root- en TLD-nameservers.
https://images.ctfassets.net/yj8364fopk6s/68pJgWrBiViaxuuBDrzWUb/28c48e387b2a869953f594bb0130350b/Passive_measurements_on_root_and_TLD_name_servers.png

Ten slotte lieten de gecontroleerde experimenten ook een ontwikkeling zien naar het gebruik van hogere aantallen pakketten door resolvers, wat echter wel lagere foutpercentages in de DNS-query's als gevolg heeft.

Corner cases

Tijdens de actieve metingen aan client-zijde op DNSThought werd qmin alleen gemeten op het vierde domeinniveau. De resultaten geven aan dat het aantal resolvers dat query's minimaliseert op lagere niveaus (bijvoorbeeld TLD en root) zelfs nog hoger kan zijn. We constateerden ook dat de resolvers van Google Public DNS, die officieel al sinds 2020 query's minimaliseren, in onze actieve metingen werden geclassificeerd als resolvers waarop qmin niet was ingeschakeld. Na diepergaand onderzoek bleek echter wel dat bij andere testdomeinnamen de resolvers van Google Public DNS consequent andere antwoorden gaven. Hieronder tonen we de resultaten van de verschillende tests.

$ dig @8.8.8.8 a.b.qnamemin-test.nlnetlabs.nl TXT +short
"NO - QNAME minimisation is NOT enabled on your resolver :("
$ dig @8.8.8.8 a.b.qnamemin-test.internet.nl TXT +short
"HOORAY - QNAME minimisation is enabled on your resolver :)!"

Het bleek dat Google qmin alleen tot TLD-niveau ondersteunt. Dit konden we in onze tests niet herkennen. Google heeft echter voor andere testdomeinnamen hun gedrag aangepast omdat ze de eer wilde opstrijken voor het minimaliseren van query's op root- en TLD-niveau.

Het ontbreken van gegevensminimalisering binnen een autoritatieve DNS-zone is niet zo ernstig als het onthullen van de volledige querynaam op root- en TLD-niveau. Om dat probleem aan te pakken, stellen we voor om de Public Suffix List (PSL) te gebruiken met één extra label (PSL+1) om de dieptelimiet voor qmin in te stellen. PSL is een lijst van TLD's die worden gebruikt om het instellen van cookies te beperken. De lijst wordt onderhouden door Mozilla en bevat zowel effectieve TLD's zoals '.com' en '.net' als multi-label TLD's zoals '.ac.uk' en '.co.jp'. We stellen voor dat PSL zou kunnen worden gebruikt als referentie voor het bepalen van de dieptelimiet voor qmin door de autoritatieve DNS-zones te identificeren en te bepalen wanneer moet worden gestopt met het minimaliseren van query's.

Conclusie

Concluderend kunnen we stellen dat het onderzoek heeft aangetoond dat de adoptie van qmin sinds de introductie aanzienlijk is toegenomen, wat een positief teken is voor de privacy binnen het DNS. Daarnaast benadrukte het onderzoek de noodzaak om een evenwicht te vinden tussen prestaties en privacy en werd voorgesteld om de Public Suffix List te gebruiken om de dieptelimiet voor het minimaliseren van labels in te stellen. Dit onderzoek vormt een belangrijke stap naar meer inzicht in de adoptie en impact van qmin binnen het DNS en kan een inspiratie zijn voor toekomstige verbeteringen in de privacy en beveiliging van de DNS-infrastructuur.