Een experimentele DoH-server van SIDN Labs

De server helpt ons ontwikkelingen van de DoH-standaard beter begrijpen. Probeer ‘m uit!

We schreven al vaker over DNS-privacy in het algemeen en over DNS-over-HTTPS (DoH) in het bijzonder. DoH is een relatief nieuwe standaard voor versleutelende DNS-communicatie, die de gemoederen al een tijdje behoorlijk bezighoudt. Ondanks de discussies gaan de ontwikkelingen snel en komen er wereldwijd steeds meer publieke DoH-diensten beschikbaar. Enkele van de eerste publieke DoH-diensten, werden geleverd door techreuzen zoals Google en CloudFlare, wat ook weer leidde tot discussies over ‘centralisatie van het internet’. Andere DoH-diensten worden toegevoegd aan het portfolio van bestaande DNS-dienstenleveranciers, zoals NextDNS. En dat lijstje groeit inmiddels gestaag. Enkele ISP’s, zoals XS4ALL, bieden inmiddels ook DoH aan in de besloten omgeving van hun klanten. Zelf draaien we bij SIDN Labs alweer een tijdje een eigen experimentele DoH-server. Daar testen we uitgebreid mee, maar we nodigen iedereen van harte uit er ook mee aan de slag te gaan. In deze blogpost gaan we daar wat dieper op in.

DNS Privacy: DNS-innovaties ter bescherming van je privacy Vraagt de introductie van DoH om regulering van browsers?

DNS-over-HTTPS (DoH)

Bij DoH gaan DNS-verzoeken niet meer leesbaar via UDP over het netwerk, zoals bij het traditionele DNS het geval is. In plaats daarvan worden de DNS-verzoeken versleuteld met TLS en over het HTTP-protocol (dus via TCP) getransporteerd. Dit heeft voor- en nadelen, waar de meningen over zijn verdeeld. De versleuteling zorgt voor meer privacy en minder kans op vervalsingen door kwaadwillende hackers. Maar anderen beweren dat de privacy bij DoH juist in het geding is, vanwege de tracking-mogelijkheden van HTTP (cookies en andere vormen van ‘fingerprinting’). En voor sommigen is het een voordeel dat DNS-over-HTTP minder goed te blokkeren is (op firewalls), terwijl dat voor anderen juist een vervelend scenario is. Voor de criticasters zijn alternatieven zoals DNS-over-TLS (DoT) of DNScrypt, juist weer aantrekkelijker. Ook wordt er getwist over de performance van de verschillende alternatieven. Welke is het snelste, betrouwbaarste of meest schaalbaar? De meningen zijn hierover verdeeld. Feit is dat de ontwikkelingen, vooral voor DoH, gestaag doorgaan.

DoH in het wild

De ontwikkeling van de DoH-standaard is relatief snel gegaan. De basis werd gelegd na de onthullingen van Edward Snowden. Zijn publicaties genereerden een golf van ‘privacy awareness’, waar onder andere het beter nadenken over DNS-privacy het gevolg van was. Dit leidde ertoe dat enkele grote bedrijven, zoals Mozilla en Google de nieuwe visie op privacy omarmden. Beide bedrijven leveren een bekende browser (respectievelijk FireFox en Chrome), waar DoH-functionaliteit aan werd toegevoegd. Deze onconventionele stap gaf aanleiding tot discussie, omdat DNS tot dan toe iets was voor op het niveau van het operating system. Als applicaties hun eigen DNS regelen, heeft dat een behoorlijke impact, bijvoorbeeld in termen van systeembeheer en foutopsporing. Desondanks besloten beide bedrijven hun plannen door te zetten. Mozilla ging hierin het verst, maar inmiddels timmeren anderen ook flink aan de weg.

DoH is beschikbaar in Google’s Chrome, komt beschikbaar in Microsoft Windows en is experimenteel beschikbaar in de Opera-browser om er maar een paar te noemen. Gerenommeerde open-source softwareleveranciers zoals PowerDNS en Unbound leveren DoH-implementaties of werken daaraan. Op GitHub verschijnt ook steeds meer kwalitatief goede open source DoH-software.

Experimentele DoH-server van SIDN Labs

Hoewel er inmiddels dus flink wat publieke DoH-resolvers te vinden zijn, vonden we er geen die ook gebruikers-authenticatie doet, terwijl dat ons juist een nuttige feature leek. Dat was mede de reden dat wij er zelf eentje optuigden. Voor deze experimentele DoH-server besloten we om software van GitHub te gebruiken, geschreven in de programmeertaal Go: https://github.com/m13253/dns-over-https We draaien hem in combinatie met een Apache webserver op: https://doh.sidnlabs.nl/dns-query (Maar hij werkt dus alleen met gebruikersnaam en -wachtwoord) Met dit testsysteem kijken we hoe de server (met authenticatie) werkt in browsers. Ook gebruiken we de meegeleverde, makkelijk te installeren DoH-client, om deze te testen in bijvoorbeeld wifi-netwerken in de trein of in hotels, waarbij sprake is van een zogenaamde ‘captive portal’. Kortom, onze eigen experimentele server stelt ons in staat om de ontwikkelingen van de DoH-standaard beter te begrijpen.

Probeer hem zelf!

Wil je met onze experimentele DoH-server aan de slag, kijk dan op https://doh.sidnlabs.nl/about/ voor de voorwaarden en hoe je hem instelt. Laat ons weten wat je ervan vindt!