# DNS over TLS

DoT (DNS over TLS) :
| Familie: | Internetprotokollfamilie |
| Einsatzgebiet: | verschlüsseltes DNS |
| Port: | 853/TCP |
| DNS im TCP/IP-Protokollstapel: Anwendung DNS Transport UDP TCP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token Bus Token Ring FDDI … ||
| Standards: | RFC 7858 (2016) RFC 8310 (2018) |
DNS over TLS (DoT) ist ein Protokoll, mit dem DNS-Abfragen, d. h. vor allem Abfragen zur Auflösung von Hostnamen in IP-Adressen und umgekehrt, über das Transport-Layer-Security-Protokoll verschlüsselt übertragen werden. Es handelt sich um einen von der Internet Engineering Task Force vorgeschlagenen Standard, RFC 7858.

## Protokoll

Bei DNS over TLS werden DNS-Anfragen und -Antworten über eine mit TLS gesicherte Verbindung übertragen, die zwischen dem Client wie bspw. dem Webbrowser und dem Server des DNS-Anbieters aufgebaut wird. TLS (Transport Layer Security, weitläufiger bekannt unter der Vorgängerbezeichnung Secure Sockets Layer SSL) ist ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet. Der für DNS over TLS zum Verbindungsaufbau von der IETF standardisierte Port ist 853.

## Sicherheit

Die DNS-Abfrage ist in diesem Fall über das Verschlüsselungsprotokoll Transport Layer Security (TLS) gesichert und – im Gegensatz zum ungesicherten DNS – gegen Ausspähung und Manipulation durch einen Man-in-the-Middle-Angriff geschützt. Dadurch soll sowohl die Privatsphäre der Anwender vor Lauschern geschützt als auch die Einschleusung manipulierter DNS-Informationen verhindert werden. Zudem sollen damit Denial-of-Service-Attacken erschwert werden.

## Implementierungen

Auf Client-Seite wird DNS over TLS von Android ab Android P ohne Zusatzprogramme vom Betriebssystem direkt unterstützt. Dabei erlaubt das Android Pie dem Nutzer, den bevorzugten DoT-Server explizit in den Einstellungen einzutragen. Das Betriebssystem Windows hat zurzeit keinen eigenen Support für DoT, weswegen hier auf lokale DNS-Resolver gesetzt werden muss, die die DNS-Anfragen mittels des Localhost zuerst intern auf dem Client umleiten und dann zu den entsprechenden öffentlichen Servern weiterleiten. Auf Server-Seite wird es von verschiedenen Programmen unterstützt. So wird es in DNSDist von PowerDNS in der aktuellen Version 1.3.0. unterstützt. Name Server Daemon unterstützt DoT seit Version 4.2. Bei BIND ist es in Kombination mit dem Tool stunnel möglich, DNS over TLS zu verwenden. Technitium DNS Servers hat bekannt gegeben, dass sie DNS over TLS seit Version 1.3 unterstützen.
DNS over TLS wird mittlerweile frei verfügbar von mehreren öffentlichen DNS-Provider angeboten.
In Windows 11 previews ab Version 25158 ist es möglich, DNS-over-TLS (DoT) über die Konsole einzuschalten. Die Benutzung von DNS over HTTPS (DoH) ist bereits per Eingabe in die Standard-Netzwerk-Dialog-Eingabemaske des User Interface der regulären Windows-11-Version möglich. Dabei ist ebenfalls Discovery of Designated Resolvers (DDR) konfigurierbar. DDR ist dabei für die automatische Konfiguration von DoH verantwortlich.
DDR ist seit dem 22H2-Update im Windows stable Kanal, also dem Standard-Windows, enthalten.
FreeBSD (und eines seiner Derivate NomadBSD), NetBSD und OpenBSD bieten die Möglichkeit, mit einem dedizierten lokalen Unbound daemon DNS over TLS zu betreiben.
Seit MacOS Ventura und iOS 16 sind DoT sowie DoH mit dem DDR Encrypted Initial Kontakt standardmäßig benutzbar und ohne Konsolen Eingriff in MacOS nutzbar.

## Unterschiede zu anderen Protokollen

Standardmäßig werden DNS-Anfragen und Antworten unverschlüsselt mit UDP übertragen.
Für die Implementierung einer Verschlüsselung gibt es aktuell vor allem drei Optionen, nämlich:
* DNS over TLS (DoT)
* DNS over HTTPS (DoH)
* DNSCrypt
Bei DNS over TLS werden normale DNS-Anfragen über einen TLS-Tunnel geschickt, während bei DNS over HTTPS eine HTTPS-Verbindung aufgebaut wird, über die die Kommunikation erfolgt. Dies führt dazu, dass – falls der DNS-Provider auf Port 443 zusätzlich eine Website anbietet – für einen Lauscher im Gegensatz zu DNS over TLS auch nicht ersichtlich ist, ob DNS-Anfragen gestellt oder Webinhalte abgerufen werden. Dafür ist DNS over TLS deutlich schneller. Drittens gibt es noch DNSCrypt, bei dem Anfragen und Antworten verschlüsselt direkt per UDP oder TCP übertragen werden.