DNS over HTTPS (DoH)

Hallo zusammen,

Domain Name Service (DNS) ist eines meiner Steckenpferde und ich beschäftige mich schon seit bald 20 Jahren mit diesem alten Protokoll. Mittels DNS werden Adressen von Hosts in IP Adressen aufgelöst.

 

DNS mit Privacy und Security vor dem Durchbruch

https://www.heise.de/select/ct/2018/14/1530492966691096

Der Client nutzt entweder den DNS Server des Unternehmens oder den des Providers. DNS Querys sind unverschlüsselt und laufen über UDP oder TCP Port 53.

Bei DNS Sec sind die Antworten digital signiert aber sind immer noch unverschlüsselt. Jemand der den Traffic abgreifen kann, sieht aufgrund der DNS Anfragen immer noch, welche dienste sie benutzen.

Quelle: heise.de

Wenn ich mir allerdings die DNS SEC Statistik der .ch Domain ansehe, so wird rasch klar, dass DNS Sec nicht die Lösung ist. 

Domain-Namen mit DNSSEC

https://www.nic.ch/de/statistics/dnssec/

Bei DNS over TLS (DoT) wird die DNS Abfrage über eine Transport Layer Security (TLS) gesicherte Verbindung ausgeführt. Bei DNS over HTTPS (DoH) wird die DNS Abfrage nicht mehr über das DNS Protokoll, sondern über eine HTTPS gesicherte Verbindung ausgeführt. Bei TLS und HTTPS braucht es natürlich erstmal einen 3-way TLS Handshake was die Performance etwas einschränkt - mehr dazu habe ich in meinem Artikel TLS Basics and Hardening erklärt.

Quelle: heise.de

Was für DNS over HTTP Provider es gibt, wird unter anderem in diesem Wikipedia Artikel erklärt.

DNS over HTTPS (DoH)

https://de.wikipedia.org/wiki/DNS_over_HTTPS

Um zu demonstrieren, wie so ein DNS over HTTPS Query aussieht habe ich Cloudflare DNS ausgewählt.

DNS over HTTPS auf Cloudflare Developers

https://developers.cloudflare.com/1.1.1.1/dns-over-https/json-format/

Statt dem Linux Tool Curl nutze ich natürlich Powershell

 

$json = Invoke-RestMethod -URI "https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=www.heise.de"

$json

$json.Answer.data

Bisher unterstützt nur Firefox das Feature, muss jedoch Manuell aktiviert werden. Bei Chrome ist es noch ein experimentelles Feature.

Firefox DNS-over-HTTPS

https://support.mozilla.org/en-US/kb/firefox-dns-over-https

Ob wirklich DNS over HTTPS genutzt wird, kann man auf folgender Website testen: https://1.1.1.1/help

Ich war gespannt, ob ich danach immer noch interne DNS Hosts auflösen kann. Das ging Problemlos. Als ich den Fiddler zum aufzeichnen eines solchen Requests ausprobiert habe, hat DNS over HTTPS nicht mehr funktioniert. Anscheinend wird da das Zertifikat überprüft und somit die "Man-in-the-middle" Attacke erkannt.

Aus aktuellem Anlass:

Firefox aktiviert in den USA DNS-over-HTTPS standardmäßig

https://www.heise.de/newsticker/meldung/Firefox-aktiviert-in-den-USA-DNS-over-HTTPS-standardmaessig-4667693.html

Grüsse
Andres Bohren