DNS over HTTPS (DoH) is a network protocol defined in RFC 8484 that encrypts DNS queries and responses by wrapping them in HTTPS connections sent over port 443, protecting resolver traffic from on-path observation and tampering. While DoH enhances privacy by blending DNS traffic with ordinary HTTPS web traffic, enterprises face significant operational challenges including loss of DNS visibility, potential bypass of internal resolvers, and inability to apply DNS filtering, threat detection, and query logging to DoH clients. Managing DoH effectively requires establishing approved internal DoH-capable resolvers, implementing client and browser policies to enforce their use, and monitoring or blocking connections to unauthorized DoH servers to maintain network security and troubleshooting capabilities.
So funktioniert DoH
Ein DoH-Client verpackt eine gewöhnliche DNS-Nachricht in eine HTTPS-Anfrage und sendet sie an einen DoH-Server. Der Server gibt die DNS-Antwort in der HTTPS-Antwort zurück.
- DoH-Server ermitteln: Der Client ist mit einer URI-Vorlage für den DoH-Server konfiguriert. Er löst bei Bedarf den Hostnamen des Servers auf und öffnet eine TCP-Verbindung zu Port 443, sofern in der URI kein anderer Port angegeben ist.
- TLS-Verbindung herstellen: Der Client und der Server handeln eine TLS-Sitzung aus, und der Client überprüft das Serverzertifikat. Dadurch wird der Server authentifiziert und der gesamte nachfolgende Datenverkehr verschlüsselt.
- Anfrage senden: Der Client kodiert die DNS-Anfrage im Standard-Wire-Format und sendet sie in einer HTTP-Anfrage mit der GET- oder POST-Methode. Die Nachricht verwendet den Medientyp „application/dns-message“.
- Antwort zurückgeben: Der Server löst den Namen auf und gibt die DNS-Antwort im Hauptteil der HTTP-Antwort zurück. Der Client verwendet sie wie jede andere DNS-Antwort. RFC 8484 nennt HTTP/2 als empfohlene Mindestversion des HTTP-Protokolls, wodurch viele Abfragen über eine einzige Verbindung abgewickelt werden können.
Da die Sitzung verschlüsselt ist, erkennen Geräte auf dem Übertragungsweg lediglich eine TLS-Verbindung zum DoH-Server und können die Abfragenamen weder lesen noch verändern. DoH schützt nur die Verbindung zwischen Client und Resolver. Der Datenverkehr vom Resolver zu den autoritativen Servern wird nicht verschlüsselt, und der Resolver-Betreiber sieht weiterhin jede Abfrage.
Häufige Probleme mit DoH
Ein Browser oder eine Anwendung mit eigener DoH-Resolver-Einstellung sendet Anfragen direkt an einen öffentlichen Server und umgeht den internen Resolver. Interne Zonen schlagen dann mit NXDOMAIN oder Timeouts fehl, und Split-Horizon-Einträge, Filterrichtlinien sowie die Protokollierung von Anfragen gelten für diesen Client nicht mehr.
Sicherheitstools, die den Datenverkehr auf Port 53 überprüfen oder protokollieren, erkennen nichts von DoH-Clients. Blocklisten, Sinkholes und Antwortrichtlinienzonen zeigen keine Wirkung, und Ermittler stellen Lücken im Abfrageverlauf dieser Hosts fest.
Da DoH auf TLS basiert, können eine falsche Systemuhr, eine nicht vertrauenswürdige Zertifikatskette oder ein TLS-überprüfender Proxy dazu führen, dass der Client keine Verbindung zum DoH-Server herstellen kann. Je nach Konfiguration greift der Client dann entweder auf unverschlüsseltes DNS zurück oder die Auflösung wird unterbrochen.
Da DoH den Port 443 mit dem Webdatenverkehr teilt, ist eine Blockierung des Ports nicht möglich, ohne dabei HTTPS zu beeinträchtigen. Teams, die bekannte DoH-Serveradressen blockieren, stellen fest, dass neue oder selbst gehostete Server dennoch durchkommen, sodass die Liste ständig gepflegt werden muss.
Einige Clients versuchen es erneut über unverschlüsseltes DNS, wenn der DoH-Server nicht erreichbar ist. Techniker, die eine Richtlinie testen, sehen möglicherweise Anfragen auf Port 53 und gehen davon aus, dass DoH deaktiviert ist, obwohl der Client lediglich seinen Fallback-Pfad nutzt.