Das Domain Name System, kurz DNS, wurde in den 80er Jahren entwickelt. Als «Telefonbuch» des Internets übersetzt es menschenverständliche Domainnamen wie www.tec-bite.ch in maschinenlesbare IP-Adressen (149.126.6.73). Das bewährte DNS-Protokoll funktioniert sehr zuverlässig. Aber es überträgt die Daten im Klartext. Damals dachte noch niemand an die Privatsphäre der Benutzer, die DNS-Anfragen erstellen oder an die Authentizität (Echtheit) und Integrität (Korrektheit) der DNS-Antworten.
Ablauf einer DNS-Anfrage
Zur Repetition beschreibe ich kurz die einzelnen Schritte einer DNS-Abfrage für www.tec-bite.ch, um darauf aufbauen zu können:
- Der Client durchsucht zuerst seine Host-Datei und anschliessend seinen DNS-Cache, ob dort tec-bite.ch mit der dazugehörigen IP-Adresse hinterlegt ist.
- Falls nicht, leitet der Client die DNS-Anfrage an seinen DNS-Resolver weiter. Wenn der DNS-Resolver die IP-Adresse zu tec-bite.ch nicht in seinem Cache hat, kontaktiert er als nächstes einen Root-Nameserver. Der Root-Nameserver sendet die IP-Adressen der «.ch»-Zone-Nameserver an den DNS-Resolver zurück.
- Nun sendet der DNS-Resolver die DNS-Anfrage an einen der «.ch»-Zone-Nameserver (z.B. nic.ch). Dieser wiederum sendet die IP-Adresse der autoritativen Nameserver für tec-bite.ch zurück.
- Als nächster Schritt sendet der DNS-Resolver die DNS-Anfrage an den autoritativen Nameserver von tec-bite.ch. Dieser antwortet anschliessend mit der IP-Adresse welche für tec-bite.ch hinterlegt ist.
- Der DNS-Resolver sendet die erhaltene Antwort an den Client.
Schwachstellen des DNS-Systems
Der DNS-Traffic ist in zwei Abschnitte einzuteilen. Der erste Abschnitt ist zwischen dem Client und seinem DNS-Resolver. Der zweite Abschnitt ist zwischen dem DNS-Resolver und den autoritativen Nameservern. Da der DNS-Traffic im Klartext und ungeschützt erfolgt, kann bei beiden Abschnitten der DNS-Traffic mitgelesen oder sogar manipuliert werden. Das DNS-Protokoll ist so tief in unseren Systemen verankert, dass noch kein neueres Protokoll es ablösen konnte. Inzwischen wurden jedoch DNS-Protokoll-Erweiterungen eingeführt, um die heutigen Anforderungen zu erfüllen:
DNSSEC
Eine der DNS-Erweiterungen sind die Domain Name System Security Extensions (DNSSEC). Sie wurden entwickelt, um die Authentizität (Echtheit) und Integrität (Korrektheit) der DNS-Antworten im zweiten Abschnitt zu gewährleisten. Damit die DNSSEC-Erweiterung zum Schutz genutzt werden kann, müssen alle autoritativen Nameserver DNSSEC unterstützen und entsprechend konfiguriert sein. Die DNS-Anfrage selbst wird immer noch im Klartext überwiesen. Die Authentizität und die Integrität gelten nur für DNS-Antworten. In diesem Artikel gehe ich nicht weiter auf DNSSEC ein. Weitere Informationen können z.B. hier nachgelesen werden.
Weitere Informationen über DoT-Protokolle: de.wikipedia.org/wiki/DNS_over_TLS
DoT und DoH
Jedoch möchte ich gerne auf die beiden DNS-Erweiterungen DNS-over-TLS (DoT) und DNS-over-HTTPS (DoH) eingehen, welche im ersten Abschnitt genutzt werden können. In Firmennetzwerken werden vielfach interne DNS-Resolver installiert. Aber bei anderen Netzwerken wie Mobilfunknetzwerken oder in vielen privaten Netzwerken werden oft öffentlich zugängliche DNS-Resolver für die DNS-Auflösung genutzt. Da die DNS-Anfragen und DNS-Antworten dabei unverschlüsselt und ungeschützt im Internet zu den öffentlichen DNS-Resolvern übertragen werden, können die DNS-Pakete von Dritten geloggt, ausgewertet oder sogar manipuliert werden. Da setzten die beiden Protokolle DoT und DoH an, welche die DNS-Abfragen durch einer der beiden Protokolle verschlüsselt. Bei DoT wird der DNS-Traffic mit TLS verschlüsselt und bei DoH wird die Verschlüsselung durch HTTPS erreicht.
Weitere Informationen über DoH-Protokolle: de.wikipedia.org/wiki/DNS_over_HTTPS
Vor- und Nachteile von DoT und DoH
Durch die Verschlüsselung des DNS-Traffics zu den DNS-Resolvern ist nicht nur die Authentizität (Echtheit) und die Integrität (Korrektheit) im ersten Abschnitt gewährleistet sondern auch die Vertraulichkeit. Ein weiterer und wichtiger Aspekt ist, dass unser DNS-System vor über 30 Jahren zum Schutz und zur Stabilität dezentral aufgebaut wurde. Leider gibt es zur Zeit nur sehr wenige DNS-Resolver, die DoT und DoH unterstützten. Die bekanntesten und wahrscheinlich die grössten DoT- und DoH-DNS-Resolver werden von Google und Cloudflare zur Verfügung gestellt. Wenn sich diese beiden grossen DNS-Resolvern im DoH und DoT Bereich durchsetzen, kann dies zu neuen Gefahren führen.
Vorteile DoT
- Verschlüsselt und Authentisiert
Vorteile DoH
- Webserver kann gleich die benötigten DNS-Antworten der eingebundenen externen URLs mitliefern.
Nachteile DoT
- TCP (höhere Latenz beim Verbindungsaufbau, TLS Handshake)
- Kommunikation über TCP Port 853
- Durch blockieren der Verbindungen von TCP Port 853 kann DoT unterbunden werden. Viele Systeme wechseln in diesem Fall auf die herkömmliche DNS-Abfrage ohne DoT (Fail Open Konfiguration).
Nachteile DoH
- DoH wird meist durch die Applikation gemacht:
- Der Browser verwendet dann nicht mehr die System-DNS-Einstellungen
- DNS Traffic des Browsers kann nicht mehr auf dem Firmen-DNS kontrolliert werden
- Getunnelt durch HTTPS: höhere Komplexität, Latenz im Verbindungsaufbau
- Webserver kann gleich die benötigten DNS-Antworten der eingebundenen externen URLs mitliefern. Dabei kann er auch falsche DNS-Antworten liefern.
Nachtrag – 4. Juli 2019, 10.40 Uhr:
Ein aktueller Heise.de-Artikel berichtet über eine der möglichen Gefahren eines Monopols von DoH-Infrastruktur.
Wie sieht die Realität in der Schweiz aus?
Gemäss der Statistik von nic.ch haben aktuell nur 4.1% aller .ch-Domains DNSSEC im Einsatz. Da ist die Schweiz noch ein Entwicklungsland und hat grossen Nachholbedarf. Jedoch kann der Schutz im ersten Abschnitt, also zwischen Client und DNS-Resolver, mit DoT oder DoH sehr einfach umgesetzt werden.
Öffentliche DoT- und DoH-DNS-Resolver
Die Digitale Gesellschaft, welche sich für Freiheitsrechte in einer vernetzten Welt einsetzt, betreibt in der Schweiz öffentliche DNS-Resolver welche DoT und DoH unterstützten. Bei diesen DNS-Resolvern findet kein Logging und keine Traffic Analyse statt.
Die Server sind wie folgt erreichbar:
DoT-Server: dns.digitale-gesellschaft.ch:853
DoH-Server: dns.digitale-gesellschaft.ch/dns-query
Anleitungen
Wer sein Endgerät für DoT oder DoH konfigurieren möchte, findet hier eine Anleitung:
www.digitale-gesellschaft.ch/dns
Wer selbst ein DoT- und/oder DoH-DNS-Resolver betreiben möchte, findet hier einen Konfigurationsvorschlag:
github.com/DigitaleGesellschaft/DNS-Resolver
Weitere Informationen
Hier können weitere Informationen über diese beiden DNS-Resolver von der Digitalen Gesellschaft abgerufen werden:
Als Web-Artikel:
www.digitale-gesellschaft.ch/2019/04/11/oeffentliche-dns-over-tls-und-https-dns-resolver-neuer-service-der-digitalen-gesellschaft/
Als Video-Tipp: Hier gibt es detailliertere Informationen wie die DNS-Resolver aufgebaut sind.
www.youtube.com/watch?v=3LephDI-nmU
Point
Point ist Security Engineer bei AVANTEC und hat sich spezialisiert im Access-, Identitäts- und im Clientbereich. Die MS-Welt ist ihm auch nicht fremd. Er setzt sich für das Gute ein, weil die gute Seite am Schluss immer gewinnt :-)
Es ist irgendwie Paradox, dass man bei DNS auf TLS setzt und die Latenz erhöht, und im Gegenzug mit dem auf UDP basierenden QUIC die Latenz wieder versucht runter zu holen. 😉
Zurück zum Thema…
DNSSEC ist nicht nur in der Schweiz, sondern weltweit sehr sparsam implementiert worden. Die Schweiz als Entwicklungsland würde ich dennoch nicht als DNSSEC Entwicklungsland bezeichnen. DNSSEC hat meiner Meinung nach zwei entscheidende Nachteile, welche das Deployment bremsen:
1. DNSSEC ist ein komplexes Biest. Bei einem meiner früheren Arbeitgeber hatten überprüft, ob es Sinn machen würde, DNSSEC zu implementieren. Aufgrund der Grösse des Unternehmens und der Anzahl an verschiedensten Subdomains, Load Balancern, Delegationen etc, wäre das ein äusserst komplexes Projekt mit einem minimalen Gewinn an Sicherheit geworden. So dürfte es vielen anderen Unternehmen ebenfalls ergehen.
2. Die Validation erfolgt bei DNSSEC nicht auf dem Client, sondern auf dem Resolver. Ich sehe das kritisch, da man einen vertrauenswürdigen Resolver voraussetzt.
Hallo Ihsan Dogan
Besten Dank für Deinen Kommentar.
Du hast recht, dass die Schweiz gegenüber anderen Ländern in der DNSSEC-Statistik nicht schlecht abschneidet. Da DNSSEC jedoch nächstes Jahr schon sein 10-jähriges Jubiläum feiern kann, finde ich es schon entwicklungsbedürftig, wenn zur Zeit nur 4.1% aller .ch-Domains DNSSEC einsetzen. Daher finde ich es schon mal gut, dass Dein früherer Arbeitgeber überprüft hat, ob er DNSSEC einsetzen will. Diese Frage stellen sich offenbar nicht sehr viele. Wer weiss, vielleicht kommt in Zukunft ein eigener Beitrag zum Thema DNSSEC, der Licht in das «komplexe Biest» bringt.