Was ist ein DNS-Server?
DNS (Domain Name Service) ist das Telefonbuch des Internet. Eine kurze Erklärung:
-
Der Surfer gibt den Namen einer Website in der Adressleiste des Browsers ein.(z.B. "https://www.privacy-handbuch.de")
- Daraufhin fragt der Browser bei einem DNS-Server nach der IP-Adresse des Webservers, der die gewünschte Webseite liefern könnte. Üblicherweise wird der DNS-Server des Zugangsproviders gefragt, also z.B. Telekom, Vodafon...
- Der angefragte DNS-Server erkundigt sich daraufhin bei den Servern der Root-Zone nach dem DNS-Server, der für die Toplevel Domain ".de" zuständig ist. Dann fragt er dieses Server nach dem DNS-Server, der für die Domain "privacy-handbuch.de" zuständig ist. Abschließend fragt er diesen DNS-Server nach der IP-Adresse des Webservers für "www.privacy-handbuch.de".
- Wenn ein passender Webserver gefunden wurde, dann wird die IP-Adresse an den Browser zurück gesendet (z.B. "81.169.145.78") oder NIXDOMAIN, wenn der Surfer sich vertippt hat. Der Prozess dauert nur wenige Millisekunden.
- Dann sendet der Browser seine Anfrage an die IP-Adresse des entsprechenden Servers und erhält als Antwort die gewünschte Webseite.
DNS-Server werden nicht nur beim Surfen verwendet. Alle Dienste verwenden das DNS-System, um die IP-Adressen der Server zu ermitteln (E-Mail, Chat.... usw.)
Ein DNS-Server kennt also alle Internet Dienste und alle Webseiten, die man aufruft. Außerdem kann der DNS-Server durch Manipulation der Antworten entscheiden, welche Webseiten der Surfer sehen kann und welche Dienste man nutzen kann.
Möglichkeit zur Zensur
Die Möglichkeit der DNS-Manipulation zur Zensur des Internetzugangs sollte 2009 mit dem
Zugangserschwerungsgesetz (ZugErschwG) genutzt werden. Alle Provider sollten eine geheime, vom BKA gelieferte Sperrliste von Domainnamen sperren und die Surfer beim Aufruf dieser Webseiten durch manipulierte DNS-Anworten auf eine Stopp-Seite umlenken. Durch zumutbare technische Maßnahmen gemäß dem Stand der Technik sollten die Provider die Nutzung alternativer, unzensierter DNS-Server verhindern.
Neben dem damaligen Innenminster Schäuble haben sich besonders Hr. v. Guttenberg und die damalige Familienministerin Ursula von der Leyen für das Gesetz engagiert.
Frau v.d.Leyen wurde dafür mit dem Big Brother geehrt. Aufgrund des Widerstandes der Zivilgesellschaft wurde das
ZugErschwG wieder aufgehoben.
Aktuell wird die Sperrung von Webseiten in der Türkei, Ukraine und in Vietnam beispielsweise nach diesem Muster umgesetzt und in Großbritannien gibt es konkrete Pläne für eine Zensurinfrastruktur auf Basis von DNS-Manipulationen.
Vertrauenswürdige DNS-Server
Die meisten DNS-Server der Zugangs-Provider manipulieren die Antworten routiniert und lenken den Surfer z.B. bei Schreibfehlern auf einen eigenen Server um statt standardkonform NIXDOMAIN zu liefern. Außerdem nutzen sie oft kein DNSSEC für die kryptografische Validierung der DNS-Informationen.
Folgende logdaten-freie, nicht-zensierende DNS-Server mit DNSSEC Support kann ich als Alternative zu den Default DNS-Servern der Provider empfehlen:
- Censurfridns Denmark
- IPv4: 91.239.100.100 / IPv6: 2001:67c:28a4::
- IPv4: 89.233.43.71 / IPv6: 2002:d596:2a92:1:71:53::
- DNS Watch
- IPv4: 84.200.69.80 / IPv6: 2001:1608:10:25::1c04:b12f
- IPv4: 84.200.70.40 / IPv6: 2001:1608:10:25::9249:d69b
- Xiala.net
- IPv4: 77.109.148.136 / IPv6: 2001:1620:2078:136::
- IPv4: 77.109.148.137 / IPv6: 2001:1620:2078:137::
- Die DNS-Server vom CCC (213.73.91.35) und Digitalcourage e.V. (85.214.20.141) empfehle ich nicht, da diese Server kein DNSSEC zur Validierung nutzen.
Man kann mit dem Kommando "dig" prüfen, ob der DNS-Server DNSSEC unterstützt:
> dig @213.73.91.35 +dnssec test.dnssec-or-not.net
....
# ;; flags: qr rd ra; ...
Wenn DNSSEC unterstützt wird, dann muss in der Zeile flags das Kürzel ad stehen für "Authenticated Data" (fehlt hier beim CCC Server -> kein DNSSEC).
> dig @77.109.148.137 +dnssec test.dnssec-or-not.net
....
# ;; flags: qr rd ra ad; ...
Beim DNS-Server von xiala.net ist das ad Flag vorhanden -> DNSSEC supported.
Einfache Konfiguration der DNS-Server
Es gibt viele Anleitungen im Internet, wie man DNS-Server konfiguriert.
- Die bevorzugten DNS-Server kann man im eigenen LAN im Router konfigurieren, indem man auf der Konfigurationsseite für die Verbindung zum Provider die bevorzugten DNS-Server eingibt.
- Alternativ kann man die DNS-Server auf jedem Computer in den Einstellungen für die Netzwerkverbindung einstellen. Anleitungen liefert die bevorzugte Suchmaschine.
Unter Linux kann man z.B. mit dem Networkmanager Applet konfigurieren. In dem Applet in der Taskleiste des Desktop wählt man den Menüpunkt "Verbindung bearbeiten". Dort kann für jede Internet-Verbindung die DNS-Server konfigurieren.
- Mit dem DNS-Server Entropie Test kann man prüfen, ob man alles richtig gemacht hat und wirklich mit dem gewünschten DNS-Server verbunden ist.
Sichere Konfiguration der DNS-Server
Das DNS-Protokoll enthält keine Authentifizierung die sicherstellt, dass man wirklich mit dem gewünschten DNS-Server verbunden ist. DNS-Anfragen könnten vom Provider einfach auf eigene Server umgeleitet werden. In Vorbereitung auf die Umsetzung des ZugErschwG sollte im
DFN Forschungsnetz beispielsweise der Datenverkehr auf dem DNS-Port 53 zu eigenen, potentiell kompromittierten Server umgeleitet werden.
DNSSEC verbreitet sich langsam aber immer weiter als Sicherheitskomponente. Ein DNSSEC-validierender DNS-Server kann die Echtheit der DNS Informationen anhand kryptografischer Signaturen verifizieren und Manipulationen erkennen.
DNSSEC sichert aber nur die Auflösung der DNS-Anfragen auf dem DNS-Server,
die "letzte Meile" zwischen DNS-Server und Nutzer bleibt ungeschützt. Solange dieser Mangel besteht, kann man den Schutz von DNSSEC aushebeln.
DNSSEC ist außerdem die Basis, um via DANE/TLSA die SSL-Zertifikaten zu verifizieren oder um mit OPENPGPKEY bzw. SMIMEA krpytografische Schlüssel sicher zu verteilen.
Um DANE/TLSA zu nutzen, muss die DNSSEC Namensauflösung über einen
unabhängigen, kryptografisch gesicherten Weg erfolgen. Es ist z.B. nicht sinnvoll, diese Information vom DNS-Server des Providers abzurufen, wenn man sich gegen
Lawful SSL Interception beim Zugangsprovider schützen möchte. Zusammen mit dem
man-in-the-middle Angriff könnte ein Angreifer auch die DANE/TLSA Records und DNSSEC Signaturen unterdrücken, um die Erkennung der gefakten SSL-Zertifikate zu verhindern.
Um diese Schwächen zu vermeiden, gibt es folgende Lösungen:
- Man könnte einen eigenen DNSSEC-validierenden DNS-Server auf dem Computer installieren. Damit entfällt die unsichere "letzte Meile" zwischen DNS-Server und Nutzer. Die Installation von Unbound ist nicht schwer.
- DNScrypt stellt mit kryptografischen Verfahren sicher, dass man wirklich den gewünschten DNS-Server verwendet und verschlüsselt die Kommunikation zum DNS-Server. Dafür muss man einen DNScrypt Proxy Daemon auf dem eigenen Computer installieren und konfigurieren.
- DNS-over-TLS wurde von der IETF im Mai 2016 im RFC 7858 spezifiziert. Die DNS-Server Software ldns, Unbound und Knot beherrschen in den aktuellen Versionen DNS-over-TLS. Allerdings gibt es bisher erst wenige nutzbare DNS-Server (meist im Testbetrieb), die DNS-over-TLS sprechen können.
- Man könnte auch wieder DNS-over-HTTPS verwenden. Dabei werden DNS-Anfagen mit HTTPS verschlüsselt zum DNS-Server übertragen. Das Projekt wurde im Sommer 2016 von Google neu initiiert, ist allerdings in einer frühen Phase und eher für Bastler.