Es gibt eine Vielzahl von Diensten, die versuchen, DNS Leaks zu erkennen. Ein solcher als „DNS-Leak-Tester“bekannter Dienst ist üblicherweise als normale Website realisiert, die der Nutzer über den Browser aufruft. Um auf das Vorhandensein eines DNS Leaks zu testen, löst der DNS-Leak-Tester eine Reihe spezieller Verbindungsversuche aus. Das Ziel ist, nachzuvollziehen, woher die daraus resultierenden DNS-Anfragen stammen. Doch wie genau funktioniert das?
Um das Wirkprinzip eines DNS-Leak-Testers nachzuvollziehen, muss man verstehen, wie das DNS aufgebaut ist. Beim DNS handelt es sich um ein hierarchisches System aus Nameservern. Dabei wird zwischen autoritativenund nichtautoritativen Nameservern unterschieden. Ein autoritativer Nameserver dient als Quelle der DNS-Daten einer DNS-Zone. Unter einer DNS-Zone können Sie sich konzeptuell in etwa eine Domain, ggf. mit weiteren Subdomains, vorstellen.
Neben autoritativen Nameservern gibt es Nameserver, die Teile der DNS-Daten in einem Cache vorhalten. So können bereits gestellte Anfragen schnell beantwortet werden, ohne jedes Mal beim autoritativen Nameserver nachzufragen. Der DNS-Server des ISP ist für die meisten Domains ein nichtautoritativer Nameserver. Schauen wir uns an, was passiert, wenn beim DNS-Server des ISP eine Anfrage für einen Domänennamen eingeht:
- Ein Klient möchte eine unter einem Domain-Namen gehostete Ressource abrufen.
- Der Klient stellt eine Domänennamen-Anfrage an den DNS-Server seines ISP.
- Kennt der DNS-Server die zum Domänennamen gehörende IP-Adresse, liefert er diese zurück.
- Andernfalls fragt der DNS-Server des ISP beim autoritativen DNS-Server der DNS-Zone, die dem Domain-Name übergeordnet ist, nach.
- Der autoritative DNS-Server liefert die IP-Adresse für den Domänennamen zurück.
- Der DNS-Server des ISP reicht die IP-Adresse an den Client weiter und speichert die Anfrage in seinem Cache.
- Der Client kann nun die Anfrage nach der Ressource an den unter dem Domain-Namen erreichbaren Server stellen.
Ein DNS-Leak-Tester setzt auf diesem grundlegenden Prinzip auf. Wir stellen dies hier am Beispiel der Website DNS Leak Test dar:
- Ein Nutzer steuert im Browser die Website dnsleaktest.com an.
Die DNS-Leak-Test-Website generiert Abfragen an fiktive Ressourcen unter einer zufällig erzeugten, eindeutigen Subdomain. Hier ein Beispiel für den Namen einer solchen Domain:
c6fe4e11-d84d-4a32-86ef-ee60d9c543fa.test.dnsleaktest.com
- Um eine der Ressourcen abzurufen, benötigt der Browser des Seitenbesuchers die zum Domänennamen gehörende IP-Adresse.
Da es sich um einen zufällig erzeugten Domain-Namen handelt, kann kein DNS-Server außer dem autoritativen die IP-Adresse kennen.
- Der DNS-Server, der die Anfrage erhält, fragt daher beim autoritativen DNS-Server für die DNS-Zone test.dnsleaktest.com nach.
Der autoritative DNS-Server für diesen Domänennamen steht unter der Kontrolle des Seitenbetreibers von dnsleaktest.com.
- Der autoritative DNS-Server gleicht den zufällig erzeugten, eindeutigen Teil des Domänennamens mit Einträgen in einer internen Datenbank ab.
So lässt sich auf Seite von dnsleaktest.com nachvollziehen, welche eingehende DNS-Anfrage zu welchem Website-Besucher gehört.
- In Form der IP-Adresse liegt dem autoritativen DNS-Server die Information vor, von welchem externen DNS-Server die Anfrage nach der IP-Adresse des zufällig erzeugten Domain-Namens stammte.
Ist die Quelle der Anfrage der DNS-Server eines ISP, liegt ein DNS Leak vor.
Ist die Quelle der Anfrage der DNS-Server eines ISP, liegt ein DNS Leak vor.