Mozilla und Google haben angekündigt, DoH in ihren Webbrowsern Firefox bzw. Chrome zu aktivieren. In diesem Artikel möchte ich allgemeinverständlich erklären, was sich dadurch für Nutzer dieser Programme ändern kann bzw. wird.
Dazu beschreibe ich zuerst in vereinfachender Weise, wie das heutige DNS-System funktioniert und was an diesem System kritisiert wird. Darauf folgt eine Beschreibung von DoH und der Kritik an diesem Protokoll. Der Artikel soll dem Leser helfen, sich eine eigene Meinung zu bilden.
Dieser Artikel richtet sich in erster Linie an (Privat-)Anwender und Nutzer der genannten Programme. Er soll ein grundlegendes Verständnis auch ohne vollständige Kenntnis der Fachterminologie ermöglichen. Den versierten Leser bitte ich daher zu entschuldigen, sollten einige Ausführungen fachlich nicht ganz exakt sein.
Das Domain Name System (DNS)
Das DNS ist einer der wichtigsten Dienste in vielen Netzwerken und quasi das Rückgrat des Internets. Denn es sorgt dafür, dass zu einer Eingabe im Webbrowser wie z.B. https://www.my-it-brain.de oder www.ubuntuusers.de der Server gefunden wird, welcher die entsprechende Seite ausliefern kann. Das DNS funktioniert dabei so ähnlich wie ein Telefonbuch bzw. eine Telefonauskunft.
Wie wird das DNS von (Privat-)Anwendern genutzt?
Um zu veranschaulichen, wie das DNS in den meisten Fällen genutzt wird, stelle man sich folgendes Heimnetzwerk vor, wie es vermutlich in vielen Haushalten existiert.

Endgeräte wie Laptop, Smartphone, Tablet, PC, etc. sind via LAN oder WLAN an den heimischen (W)LAN-Router angebunden. Letzterer erhält vom Internet Service Provider (ISP) eine oder mehrere IP-Adressen mitgeteilt, über welche der Router — vom Internet aus gesehen — erreichbar ist. Darüber hinaus teilt der ISP noch die IP-Adressen seiner DNS-Server mit, welche ebenfalls im (W)LAN-Router gespeichert werden.
Der (W)LAN-Router wiederum weist jedem Endgerät eine IP-Adresse zu, unter welcher dieses Gerät im Heimnetzwerk erreicht werden kann. Darüber hinaus teilt er den Endgeräten eine sogenannte Gateway-Adresse mit. Diese Adresse stellt für die verbundenen Endgeräte quasi das Tor ins Internet dar. Gleichzeitig wird diese IP-Adresse meist auch als DNS-Serveradresse auf den Endgeräten konfiguriert. Erledigt wird dies alles in der Regel über das DHCP-Protokoll, um dem Nutzer die manuelle Konfiguration der beteiligten Komponenten zu ersparen.
Damit sind dann eigentlich auch schon alle Voraussetzungen geschaffen, um mit den Endgeräten im Internet surfen zu können.
Tippt nun ein Nutzer im Webbrowser seines PCs die Adresse https://www.my-it-brain.de ein, wird auf folgendem Weg die IP-Adresse des Servers ermittelt, welcher diesen Blog ausliefert. Das folgende Bild dient der Veranschaulichung der Schritte 1-5.

- PC fragt den (W)LAN-Router nach der gesuchten IP-Adresse
- (W)LAN-Router fragt den bzw. die DNS-Server des ISP
- Der DNS-Server des ISP fragt ggf. weitere DNS-Server im Internet
- DNS-Server des ISP kennt die gesuchte IP-Adresse und teilt sie dem (W)LAN-Router mit
- Der (W)LAN-Router teilt die IP-Adresse dem PC mit
Der PC ist mit Kenntnis der IP-Adresse nun in der Lage, die gewünschte Seite beim Server anzufragen und im Webbrowser darzustellen.
Oftmals verfügen die in vorstehender Abbildung dargestellten Geräte über einen Zwischenspeicher für erfolgreich ausgeführte DNS-Abfragen, den sogenannten Cache. So muss bei einer wiederholten Anfrage einer bereits erfolgreich aufgelösten IP-Adresse nicht erneut die komplette Kette durchlaufen werden. Die Anfrage kann stattdessen aus dem Cache beantwortet und somit Zeit eingespart werden. Das folgende Code-Beispiel soll dies verdeutlichen. Dabei ist es nicht wichtig, jede einzelne Zeile interpretieren zu können. Der Befehl dig my-it-brain.de
versucht den Namen ‚my-it-brain.de‘ in eine IP-Adresse aufzulösen. Die mit ‚Query time‘ beginnende Zeile gibt die Verarbeitungsdauer der Anfrage an.
user@X201:~$ dig my-it-brain.de
; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> my-it-brain.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55873
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;my-it-brain.de. IN A
;; ANSWER SECTION:
my-it-brain.de. 3600 IN A 136.243.44.163
;; Query time: 68 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Sep 26 15:45:15 CEST 2019
;; MSG SIZE rcvd: 59
user@X201:~$ dig my-it-brain.de
; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> my-it-brain.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55400
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;my-it-brain.de. IN A
;; ANSWER SECTION:
my-it-brain.de. 3590 IN A 136.243.44.163
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Sep 26 15:45:24 CEST 2019
;; MSG SIZE rcvd: 59
user@X201:~$
Die Beantwortung der ersten DNS-Abfrage dauerte noch 68 ms. Die zweite Anfrage konnte direkt aus dem Cache meines Laptops in 0 ms beantwortet werden. Dabei ist anzumerken, dass alle Anwendungen von diesem Cache profitieren können, sofern sie alle den Cache des Betriebssystems oder ggf. auch den des nachgelagerten (W)LAN-Routers nutzen können.
Kritik
Die Kommunikation über das DNS-Protokoll ist nicht verschlüsselt. Jeder Teilnehmer in einem Netzwerk, der eine DNS-Abfrage zu sehen bekommt, kann deren vollständigen Inhalt lesen. So kann z.B. der ISP sehen, welche Seiten wie oft von seinen Kunden aufgerufen werden. Wobei über die Häufigkeit wiederholter Seitenaufrufe keine genaue Aussage getroffen werden kann, wenn im Heimnetzwerk des Nutzers DNS-Caches verwendet werden.
Der DNS-Client, welcher einen Namen in eine IP-Adresse auflösen möchte, hat keinerlei Möglichkeit zu prüfen, ob die zurückgelieferte IP-Adresse wirklich dem Inhaber der gewünschten Seite gehört. Im Prinzip kann jeder, der eine DNS-Anfrage sieht, eine Antwort senden. Das Endgerät akzeptiert in der Regel die Antwort, die es als erstes erreicht als gültig.
Dadurch bestehen vielfältige Angriffsformen, welche meist das Ziel verfolgen, DNS-Teilnehmer durch Manipulation auf falsche Webseiten zu lenken, um anschließend Passwörter, PINs, Kreditkartennummern usw. zu ergaunern. Darüber hinaus können Manipulationen auch für Zwecke der Zensur verwendet werden.
Die erwähnten Gefahren für Angriffe bzw. Zensur möchte ich mit zwei kurzen Beispielen verdeutlichen.
Beispiel 1: Phishing mit Hilfe von Cache Poisoning

Beim Cache Poisoning wird der DNS-Cache des (W)LAN-Routers manipuliert. In der Folge werden Aufrufe von z.B. Gmail, Amazon, eBay oder Online-Banking-Webseiten auf sogenannte Phishing-Webseiten umgeleitet. Diese sehen den echten Seiten meist zum Verwechseln ähnlich und sollen den Nutzer dazu verleiten, seine Zugangsdaten zu diesen Diensten preiszugeben.
Als Anwender gibt es nicht viel, was man tun kann, um sich vor diesen Angriffen zu schützen. Es bleibt lediglich:
- Verfügbare Sicherheitsupdates für alle vorhandenen Geräte zeitnah zu installieren
- Beim Besuch von Webseiten skeptisch zu prüfen, ob es Anomalien gibt, die auf Phishing-Versuche hindeuten können
Beispiel 2: Zensur durch den ISP
Eure DNS-Anfragen müssen in jedem Fall bei eurem ISP vorbei. Entweder, weil ihr die DNS-Server eures ISP verwendet, oder weil sie dessen Netz auf dem Weg zu eurem DNS-Provider passieren. In jedem Fall kann euer ISP die Pakete identifizieren und ihren Inhalt lesen. Damit ist euer ISP auch in der Lage, die Anfrage bzw. Antwort zum Zwecke der Zensur zu manipulieren.
Das Risiko der Zensur ist je nach Land und verwendetem ISP bzw. DNS-Provider unterschiedlich zu bewerten. Als Nutzer könnt ihr der Zensur evtl. entgehen, indem man VPN-Tunnel nutzt, um mit vertrauenswürdigen DNS-Providern zu kommunizieren. Dies funktioniert jedoch nur, sofern die VPN-Protokolle vom ISP nicht identifiziert und ebenfalls blockiert werden können.
DNS over HTTPS (DoH)
DNS over HTTPS (DoH) ist ein Protokoll zur Durchführung einer DNS-Auflösung über das HTTPS-Protokoll. Das Ziel ist es, die Privatsphäre und Sicherheit der Benutzer zu erhöhen, indem das Abhören und Manipulieren von DNS-Daten durch Man-in-the-Middle-Angriffe verhindert wird.[1] Neben der Verbesserung der Sicherheit sind weitere Ziele von DNS über HTTPS, die Leistung zu verbessern und DNS-basierte Zensurmaßnahmen zu verhindern. DNS over HTTPS wurde am 19. Oktober 2018 als RFC 8484 standardisiert.[2]
https://de.wikipedia.org/wiki/DNS_over_HTTPS
Was ändert sich für (Privat-)Anwender?
Bei Verwendung dieses Protokolls wird zur Auflösung von Namen in IP-Adressen nicht mehr die Infrastruktur eures Heimnetzwerks oder die eures ISP genutzt. Anwendungen wie z.B. Mozilla Firefox oder Google Chrome implementieren vorkonfigurierte DNS-Server-Adressen, welche zukünftig die Namensauflösung übernehmen. Wie dies aussehen kann, wird in folgender Skizze dargestellt.

Die Skizze zeigt Verbindungen zwischen verschiedenen Anwendungen und verschiedenen DNS-Diensten im Internet. Die Kommunikation erfolgt über das HTTPS-Protokoll und ist damit verschlüsselt. Die Verschlüsselung der DNS-Kommunikation soll vor Manipulation schützen. Ganz nach dem Motto: „Was man nicht sieht, kann man nicht manipulieren bzw. blockieren.“
Der Anwender selbst hat nichts weiter zu tun. Sein Internet funktioniert weiterhin, ohne etwas ändern zu müssen. Die in den obigen Beispielen beschriebenen Probleme scheinen gelöst, oder? Ja, aber …
Kritik an DoH
DoH verhindert effektiv Zensur durch den ISP. Dieser kann die in HTTPS versteckten DNS-Anfragen nicht von anderem HTTPS-Datenverkehr unterscheiden. Einzig vorstellbare Gegenmaßnahme ist die Blockade sämtlichen HTTPS-Datenverkehrs.
Cache Poisoning sollte keinen Einfluss mehr auf die Anwendungen haben, da diese die vorhandene Infrastruktur nicht mehr nutzen und die Anwendungen (hoffentlich) nur Antworten von den konfigurierten DNS-Services akzeptieren.
Tatsächlich fallen mir noch einige weitere Angriffsvektoren wie z.B. DNS-/IP-Spoofing und Man-in-the-Middle-Angriffe auf HTTPS ein, doch mögen diese durch Maßnahmen auf Anwendungsseite mitigiert worden sein. Daher gehe ich hier nicht weiter darauf ein. Sollte ich neue Erkenntnisse hierzu gewinnen, werde ich diese in einem folgenden Artikel thematisieren.
Statt dem eigenen ISP bzw. dem selbst gewählten DNS-Server zu vertrauen, liegt das Vertrauen nun bei den in den Anwendungen konfigurierten DNS-Providern. Warum ich diesen mehr Vertrauen sollte als meinem ISP, erschließt sich mir persönlich nicht.
In einer Welt, in der Google als Datenkrake verschrien ist, gebe ich diesem Unternehmen nur ungern auch noch meine DNS-Anfragen und würde diese lieber bei meinem ISP belassen. Nun lebe ich in einem Land, wo die ISPs noch nicht negativ durch Zensur aufgefallen sind. Wer hier das kleinere Übel darstellt, muss jeder für sich selbst beurteilen.
Stand heute ist mir nicht bekannt, ob die zu verwendenden DNS-Server in den Anwendungen (wie z.B. Firefox und Chrome) konfiguriert werden können oder man mit den Voreinstellungen leben muss. Möchte man die Vorgabe ändern, hat man nun definitiv mehr Arbeit als früher. Beim klassischen DNS lässt man einfach neue DNS-Server-Adressen über DHCP an seine Endgeräte verteilen und ist fertig. Bei DoH ist diese Konfiguration pro Anwendung und pro Endgerät durchzuführen. Ich fände es schon ärgerlich, wenn zukünftig jede Anwendung mit ihrem eigenen DNS-Resolver daherkommt und einzeln angepasst werden muss.
DoH geht an den im Heimnetzwerk existierenden Caches vorbei. Dies bedeutet entweder langsamere DNS-Abfragen oder erhöhten Bedarf an Arbeitsspeicher auf den Endgeräten, wenn alle Anwendungen nun ihren eigenen Cache implementieren.
Und wenn nun ein oder zwei dieser großen Dienste, auf die alle DNS-Anfragen konzentriert werden, ausfällt? Dann müssen unter Umständen eine Vielzahl von Anwendungen einzeln umkonfiguriert werden, um einen anderen DNS-Provider zu nutzen. Und das auf jedem Endgerät!
Fazit
Das bisherige DNS ist nicht perfekt. Es hat Stärken und Schwächen. Die Schwächen wurden oben bereits benannt. Zu einer der Stärken zählt, dass das DNS hierarchisch aufgebaut ist und dezentral betrieben wird. So ist es recht unwahrscheinlich, dass das DNS als Ganzes ausfallen bzw. kontrolliert werden kann. Fällt das DNS des ISP oder des gewählten DNS-Providers aus, kann man mit verhältnismäßig geringem Aufwand einen anderen DNS-Server verwenden und den Dienst weiterhin nutzen.
Mir persönlich gefällt das Konzept von DoH aus den oben genannten Gründen nicht. Ich hoffe und wünsche mir, dass sich auch in zukünftigen Versionen der verschiedenen Anwendungen DoH deaktivieren und die vorhandenen DNS-Resolver des Betriebssystems bzw. des Heimnetzwerks nutzen lassen.
Auch wenn ich selbst von DoH nicht überzeugt, geschweige denn begeistert bin, wird die Marktmacht von Mozilla und Google sicher ausreichen, um das Protokoll dauerhaft zu etablieren. Hoffentlich lassen die Anwendungshersteller uns Anwendern die Freiheit, die Anwendung nach unseren Wünschen zu konfigurieren.
Doch nun genug der Schmähkritik. Ich möchte hier nicht mit einem negativen Ausblick schließen, bietet DoH doch auch Chancen. Steigt mit der Zeit die Anzahl der verfügbaren DoH-Endpunkte, hat der Anwender in Zukunft evtl. eine ebenso große Auswahl wie heute bei den DNS-Servern. Und vielleicht unterstützen zukünftig auch die Resolver des Betriebssystems und der heimischen (W)LAN-Router DoH und können wie heute von den jeweiligen Anwendungen genutzt werden. All dies bleibt abzuwarten. Bis dahin wird das Internet für den normalen Anwender wohl auch weiter funktionieren, nachdem Firefox und Chrome DoH aktiviert haben.
Ich hoffe, ich konnte euch das DNS und DoH etwas näherbringen. So dass ihr die Eingangsfrage für euch selbst beantworten könnt. Solltet ihr Fragen haben oder über die beiden hier besprochenen Protokolle diskutieren wollen, nutzt gern die Kommentarfunktion dazu.
Weiterführende Quellen und Links
- DNS-Standards RFC 1034 (1987) und RFC 1035 (1987)
- DoH-Standard RFC 8484
- DNS over TLS
- Domain Name System Security Extensions (DNSSEC)
- DNS-based Authentication of Named Entities (DANE)
Dieser Beitrag darf gerne geteilt werden.
Der Feuerfuchs akzeptiert bei DoH in den nightlybuilds ein Parameter für eigene DoH-Server… Wenn ich mich recht entsinne, ist cloudflare (1.1.1.1) der Standard und Custom ist möglich.
In der about:config mal nach network.trr. suchen… (: mode auf 2, 3 oder 4 und ab dafür…
Inwieweit man 8.8.8.8 (google) nutzen will ist einem selbst überlassen. Ich persönlich würde es lassen.
Alternativ kann man aber eigene DoH-Server betreiben und in Firefox hinterlegen… Ist suboptimal aber elegant.
Gruß
Gorja
Hast du für den eigenen DoH-Server eine gute Anleitung?
Das scheint mir eine verständliche Anleitung zu sein. Ich habe es bisher nur überflogen und noch nicht selbst verifiziert.
https://www.bentasker.co.uk/documentation/linux/407-building-and-running-your-own-dns-over-https-server
Letztendlich muss ja eine Möglichkeit bestehen, eigene Server im LAN oder in einem größeren Intranet zu erreichen. Das kann nicht nur über die IP passieren; ich denke da an große Firmennetze.
Muss dann in jedem dieser Netze ein eigener DoH-Server aufgesetzt werden und der Browser dann speziell dafür konfiguriert werden?
Sieht für mich danach aus.
Hallo Jürgen,
da Firmennetzwerke teilweise andere Anforderungen haben, bin ich in diesem Artikel bewusst nicht näher darauf eingegangen. Dennoch möchte ich kurz auf deine Frage eingehen.
Auch heute schon betreiben eigentlich alle Unternehmen ab einer bestimmten Größe eine eigene DNS-Infrastruktur mit eigenen Nameservern, Resolvern und Chaches. Parallel dazu eine DoH-Infrastruktur aufzubauen, erfordert sicher einen gewissen Mehraufwand und macht unter Umständen neues Personal erforderlich. Wie dies konkret gestaltet werden kann, hängt jedoch vom Einzelfall ab, ist aber grundsätzlich leistbar.
Webbrowser in Unternehmen werden auch heute bereits häufig über Gruppenrichtlinien bzw. Enterprise-Policies konfiguriert, welche zukünftig wahrscheinlich auch die DoH-Konfiguration gestatten werden.
Größere Unternehmen haben für diese Art der Administration bereits die erforderliche Infrastruktur. In Heimnetzwerken und kleinen Unternehmen ist diese hingegen oft nicht vorhanden. Hier steigt dann der Pflegeaufwand bzw. der Investitionaufwand für den Aufau entsprechender Infrastruktur.
Beantwortet dies deine Frage?
Viele Grüße
Jörg
Entweder bind9 mit DNS over TLS (DoT) oder dnsrypt-proxy für DNS over https (DoH). Was du einsetzen willst, liegt ganz bei dir. Brauchst halt deinen eigenen Server oder nimmst von GoogleCloudComputing (omfg) nen micro f1… Oder ne x-beliebige freeshell und lässt dort dein eigenes ssh-forwarding laufen, oder oder oder… Musst halt abwägen, inwiefern du deinen DNS-Traffic an jemand externen (google) auslagern willst oder halt das ganze über nen vps/root auslagerst… Musst dann halt noch schauen, wie du deinen eigenen DNS fütterst… Ob mit dem DNS deines Hosters oder oder oder…
Oder aber cloudflare mit 1.1.1.1 nutzen (:
Hab leider keine Anleitung… Aber wenn du eine schreibst, push ich die :D
Hallo gorja,
Ich danke dir, dass du Lösungen aufgezeigt hast, wie man einen eigenen DoH-Server betreiben kann.
Weißt zu du zufällig, ob die in den verschiedenen Betriebssystemen integrierten Resolver bereits eine DoH-Unterstützung bieten?
Viele Grüße
Jörg
Was mich an der Lösung von Firefox & Google stört:
Die DNS Abfragen von fast allen Nutzer werden zentralisiert. Die Folge ist, eine Metadaten Analyse für eine sehr große Gruppe von Nutzer ist nun realisierbar. Und das global! Welche Gruppen rufen welche Website auf. Daraus kann man mehr erkennen als den meisten Menschen bewusst ist.
Hallo Franz,
Die Zentralisierung der DNS-Abfragen sehe ich aus den gleichen Gründen wie du kritisch.
Meine Hoffnung ist, dass es mit voranschreitender Entwicklung des RFC 8484 eine größere Auswahl an DoH-Servern geben wird. Da in diesem RFC bereits Cache Interaction berücksichtigt wird, besteht ebenfalls Hoffnung, dass man nicht jede einzelne Anfrage zu einem zentralen Anbieter senden muss, sondern Caches in ähnlicher Weise wie heute verwenden kann.
Viele Grüße
Jörg
Wie sieht das denn aus wenn man ein VPN benutzt. Wenn die Programme nun alle ihre eigenen DNS resolver eingebaut haben, funken die dann an meinem VPN vorbei und leaken meine IP Adresse samt Verlauf der besuchten Seiten? Oder könnte bei einer DNS Abfrage nicht noch ein Cookie o.ä. mitgeschickt werden um mich eindeutig zu identifizieren. Durch die Verschlüsselung würde man das doch gar nicht mitbekommen was alles in seinem https Paket mitgesendet wird oder?
Hallo Mike,
ob die HTTPS-Pakete am VPN-Tunnel vorbei oder hindurch gehen ist irrelevant, denn sie landen letztendlich beim (vor-)konfigurierten DNS-Server.
Dieser kann die Anfragen weiterhin auswerten. Dies geht jedoch heute auch schon problemlos, nur werden die Anfragen nicht bei wenigen Anbietern gebündelt.
Durch die Verschlüsselung wird es für den Nutzer so gut wie unmöglich, zu kontrollieren, was übertragen wird. Zumindest, wenn das Verbindungslog des Browsers gefiltert wird. Denn hier sollten alle Requests unverschlüsselt zu sehen sein.
Viele Grüße
Jörg
Pingback: Spielerei mit DNS-Abfragen | My-IT-Brain