Vergleichende Analyse der DoH- und DoT-Technologien
Categories:
DNS over HTTPS (DoH) und DNS over TLS (DoT) sind zwei gängige Methoden für den verschlüsselten DNS-Transport, die die sichere Übertragung von DNS-Abfragen über unterschiedliche Protokollstapel realisieren. Der Standard für DoT wird durch RFC 7858 definiert, während DoH durch den Standard DNS Queries over HTTPS (DoH) spezifiziert wird. Um die wesentlichen Unterschiede zwischen diesen beiden Technologien zu verstehen, ist eine Analyse beginnend bei der Netzwerkprotokoll-Hierarchie erforderlich.
Netzwerkprotokoll-Hierarchie
Moderne Netzwerkprotokollstapel verwenden ein Schichtenmodell, wobei jede Schicht unterschiedliche Funktionen bereitstellt. Als Anwendungsprotokoll ist DNS nicht an einen bestimmten Transport gebunden und kann auf verschiedenen Trägerprotokollen ausgeführt werden.
Die Anwendungsschicht (L7) umfasst Protokolle wie HTTP/1.1, HTTP/2, HTTP/3, FTP und DNS. Es ist zu beachten, dass die Semantik von HTTP/3 weiterhin in der Anwendungsschicht liegt, wobei QUIC lediglich als Transportträger dient. Die Sicherheitsschicht befindet sich zwischen der Anwendungs- und der Transportschicht und umfasst hauptsächlich TLS und seine Varianten. TLS läuft normalerweise über TCP, wie z. B. bei HTTPS und DoT. DTLS ist die Datagramm-Version von TLS und kann über UDP ausgeführt werden. Das QUIC-Protokoll ist besonderer, da es den TLS-1.3-Handshake und die Schlüsselableitung direkt in das Protokoll integriert.
QUIC kann als Protokoll der Schicht 4.5 betrachtet werden; es basiert auf UDP-Erweiterungen und bietet Fähigkeiten der herkömmlichen Transportschicht. Die Transportschicht (L4) umfasst TCP, UDP und QUIC. Obwohl QUIC aus der Sicht der technischen Implementierung auf UDP basiert, verfügt es über Zuverlässigkeit, Flusssteuerung (Congestion Control), Multiplexing und verschlüsselte Handshakes, weshalb es in der Praxis als eigenständiges Transportprotokoll behandelt wird. Die Netzwerkschicht (L3) verwendet das IP-Protokoll (IPv4/IPv6) für das Routing und die Weiterleitung von Paketen. Die Sicherungsschicht (L2) umfasst Technologien wie Ethernet und Wi-Fi (802.11).
TLS arbeitet als Verschlüsselungsmethode zwischen der Anwendungs- und der Transportschicht. Wenn die TLS-Verschlüsselung aus DoT herausgelöst wird, wird DoT im Grunde zu DNS over TCP. Dieses Schichtenmodell macht die Verschlüsselung zu einer Option und nicht zu einem zwingenden Bestandteil des Protokolls selbst.
Merkmale von Plain DNS
Der gebräuchlichste DNS wird als Plain DNS bezeichnet und kann über UDP oder TCP laufen. UDP ist die häufigste Trägermethode, da der Verbindungsaufbau einfach ist und die erste Abfrage schnell erfolgt. Die Schwäche von UDP ist jedoch die Unzuverlässigkeit; Pakete gehen im Netzwerk leicht verloren. Obwohl TCP mehr Handshakes erfordert und die erste Verbindung etwa 30 % langsamer ist als UDP, ist die Reaktionsgeschwindigkeit nach Aufbau einer langen Verbindung dieselbe wie bei UDP.
Internetanbieter (ISP) entscheiden sich bei Netzwerküberlastung oft dazu, UDP-Pakete zu verwerfen, um den Druck auf die Geräte zu verringern. In Regionen, in denen bestimmte ISPs viele UDP-Pakete verlieren, kann es vorteilhafter sein, TCP für DNS-Abfragen festzulegen. TCP verfügt über einen Retransmissions-Mechanismus, der eine zuverlässige Ankunft der Daten auch bei Paketverlust garantiert. Das Verwerfen von UDP-Paketen hingegen verringert die Last auf den Geräten kleinerer ISPs nicht wirklich, sondern führt durch Wiederholungsversuche eher zu mehr Unsicherheit.
Verschachtelung der Anwendungsschicht
Sowohl DNS als auch HTTP gehören zur Anwendungsschicht; DoH ist im Grunde ein Anwendungsprotokoll, das ein anderes Anwendungsprotokoll verschachtelt. DoH ist nicht zwingend DNS over HTTPS; die Verwendung von normalem HTTP wäre ebenfalls möglich, nur wäre unverschlüsseltes DoH eine Klartextanfrage, die gegenüber Plain DNS keinen Vorteil bietet. Es wird nur in sehr wenigen speziellen Szenarien eingesetzt.
Theoretisch kann DNS auf jedem Anwendungsprotokoll transportiert werden, beispielsweise wäre DNS over FTP realisierbar, lediglich die Entwicklung eines entsprechenden Servers und Clients wäre erforderlich. Diese Flexibilität demonstriert die Möglichkeiten der Kombination von Anwendungsprotokollen.
flowchart TD
subgraph L7["Anwendungsschicht"]
A[DNS]
B[HTTP]
C[FTP]
end
subgraph Security["Sicherheitsschicht"]
D[TLS]
E[DTLS]
end
subgraph Transport["Transportschicht"]
F[TCP]
G[UDP]
H[QUIC]
end
subgraph L3["Netzwerkschicht"]
I[IP]
end
subgraph L2["Sicherungsschicht"]
J[Ethernet]
K[WiFi]
end
A --> D
B --> D
C --> D
D --> F
E --> G
H --> G
F --> I
G --> I
H --> I
I --> J
I --> K
style A fill:#e1f5ff
style B fill:#e1f5ff
style C fill:#e1f5ff
style D fill:#fff4e1
style E fill:#fff4e1
style F fill:#ffe1e1
style G fill:#ffe1e1
style H fill:#e1ffe1Verschachtelung der Transportschicht
Das QUIC-Protokoll basiert auf UDP und bietet gleichzeitig verbindungsorientierte Dienste auf der Transportschicht. QUIC implementiert Transportschicht-Fähigkeiten wie Verbindungsbasiertheit, Flusssteuerung, Retransmission, Flusskontrolle, Fragmentierung und Zusammenbau, die bereits von TCP bekannt sind. Im Vergleich zu TCP ist QUIC verzögerungsärmer. Im Vergleich zu UDP ist QUIC fortschrittlicher und zuverlässiger.
Kombinationsbeziehungen von Protokollen
Es gibt keine zwingende Einschränkung zwischen der Anwendungs- und der Transportschicht; Verschlüsselung kann hinzugefügt werden oder auch nicht. HTTP kann über TCP oder QUIC laufen. DNS kann über TCP, UDP oder QUIC laufen.
Basierend auf diesen Möglichkeiten lassen sich folgende Kombinationsbeziehungen zusammenfassen. Plain DNS entspricht UDP oder TCP plus dem DNS-Protokoll. HTTP/2 entspricht TCP plus TLS 1.2 oder TLS 1.3 plus dem HTTP-Protokoll. HTTP/3 entspricht QUIC plus TLS 1.3 plus dem HTTP-Protokoll.
DoH (DNS over HTTPS) entspricht HTTP/2 oder HTTP/3 plus dem DNS-Protokoll. DoT (DNS over TLS) entspricht TCP plus TLS 1.2 oder TLS 1.3 plus dem DNS-Protokoll. DoQ (DNS over QUIC) entspricht QUIC plus TLS 1.3 plus dem DNS-Protokoll.
flowchart LR
subgraph DoT["DoT DNS over TLS"]
direction LR
T1[TCP] --> T2[TLS]
T2 --> T3[DNS]
end
subgraph DoH2["DoH über HTTP/2"]
direction LR
H1[TCP] --> H2[TLS]
H2 --> H3[HTTP/2]
H3 --> H4[DNS]
end
subgraph DoH3["DoH über HTTP/3"]
direction LR
Q1[QUIC] --> Q2[TLS 1.3]
Q2 --> Q3[HTTP/3]
Q3 --> Q4[DNS]
end
subgraph DoQ["DoQ DNS over QUIC"]
direction LR
D1[QUIC] --> D2[TLS 1.3]
D2 --> D3[DNS]
end
style T1 fill:#e3f2fd
style T2 fill:#fff3e0
style H1 fill:#e3f2fd
style H2 fill:#fff3e0
style Q1 fill:#e8f5e9
style Q2 fill:#fff3e0
style D1 fill:#e8f5e9
style D2 fill:#fff3e0Analyse von Leistung und Kompatibilität
Nachdem die Protokollhierarchie verstanden wurde, lassen sich die Vor- und Nachteile von DoH und DoT analysieren.
Der Vergleich zwischen TCP und QUIC muss unter Berücksichtigung der tatsächlichen Netzwerkumgebung der ISPs diskutiert werden. QUIC ist ein neueres Protokoll, das einige Probleme älterer Netzwerke löst, basiert aber dennoch auf UDP. Aus der Sicht der Netzwerkverzögerung ist die Latenz von QUIC-basierten Protokollen etwa 35 % geringer als bei TCP, weshalb DNS over HTTP/3 und DoQ (DNS over QUIC) theoretisch eine bessere Leistung bieten sollten als DNS over HTTP/2 und DoT.
In realen Netzwerkumgebungen gibt es jedoch Verzögerungsprobleme durch Neuübertragungen aufgrund von Paketverlusten. Bei Netzwerküberlastung verwerfen ISPs UDP-Pakete; QUIC wird als UDP identifiziert und ebenfalls verworfen. Obwohl QUIC Neuübertragungen unterstützt, führen die durch diese eingeführten Verzögerungen dazu, dass die tatsächliche Latenz von QUIC höher sein kann als bei TCP.
In Bezug auf Privatsphäre und Sicherheit sind sowohl DoH als auch DoT verschlüsselter Datenverkehr, der nicht abgefangen oder manipuliert werden kann. Was das Problem der Blockierung nach Identifizierung von DoT betrifft, so liegt dies hauptsächlich daran, dass die Einstellungen für verschlüsseltes DNS im Android-System standardmäßig Port 853 verwenden, wodurch Port 853 zu einem sensiblen Port wird. DoT an sich ist gewöhnlicher verschlüsselter Datenverkehr und wird nicht als DNS-spezifischer Datenverkehr identifiziert. Tatsächlich kann jeder Port DoH-Dienste anbieten; dies erfordert unter Android Drittanbieter-Apps, während iOS DoH auf beliebigen Ports nativ unterstützt.
Die Erweiterbarkeit ist ein wichtiger Vorteil von DoH. Im Vergleich zu HTTP-gekapseltem DNS und Plain DNS bietet HTTP eine deutlich bessere Erweiterbarkeit. Dienstanbieter können über Port 443 zahlreiche Dienste anbieten, einschließlich DoH, und Funktionen bequem erweitern. DoT und DoQ benötigen in der Regel einen exklusiven Port; ihre Erweiterungsfähigkeit basiert vollständig auf Plain DNS. Dies ist ein Unterschied aus der Sicht der Dienstanbieter, der für normale Benutzer derzeit nicht deutlich spürbar ist.
Was die Verarbeitungsgeschwindigkeit von DNS-Anfragen betrifft, so kann die Verarbeitung von HTTP tatsächlich einige CPU-Takte langsamer sein als Plain DNS, dieser Unterschied ist aber in der praktischen Nutzung vernachlässigbar. In Bezug auf die Kompatibilität wird DoH möglicherweise Mainstream, da die Erweiterbarkeit für Dienstanbieter gut ist.
Die Unterstützung für verschlüsseltes DNS durch aktuelle Hauptplattformen variiert. Browser auf Chromium-Basis unterstützen DoH. Windows 11 unterstützt DoH nativ. Android ab Version 8 unterstützt DoT nativ. Android ab Version 11 unterstützt DoT und DoH nativ. macOS unterstützt DoT und DoH nativ. iOS unterstützt DoT und DoH nativ.
Praktische Empfehlungen zur Auswahl
Für normale Benutzer ist die Verwendung von DoH bequemer als DoT. DoH bietet im Vergleich zu DoH die meiste Zeit eine bessere Latenz und selten eine ähnliche Latenz. DoH bietet im Vergleich zu DoQ die meiste Zeit eine ähnliche Latenz und selten eine bessere Latenz.
Diese Voraussetzung setzt voraus, dass der Dienstanbieter DNS-over-HTTP/3-Dienste anbietet. Wenn der Dienstanbieter kein HTTP/3 anbietet, gibt es keinen deutlichen Unterschied zwischen DoH und DoT. DoH verwendet bei guter Netzwerkqualität automatisch DoH/3 für eine niedrigere Latenz und bei schlechter Netzwerkqualität fällt es automatisch auf HTTP/2 zurück. Diese adaptive Fähigkeit muss vom Dienstanbieter implementiert werden, wird aber von den meisten gängigen Anbietern implementiert.
Es wird empfohlen, NullPrivate auszuprobieren. Es unterstützt DoT und DoH/3 und verfügt nativ über Werbeblockierung und DNS-Split-Tunneling-Funktionen. Wenn Sie eine eigene Bereitstellung wünschen, können Sie dessen Open-Source-Bibliothek verwenden.
Die Wahl des Netzwerkprotokolls erfordert eine umfassende Berücksichtigung mehrerer Faktoren, einschließlich der Netzwerkqualität des Anbieters, der Unterstützung durch den Dienstanbieter und der Gerätekompatibilität. Für die meisten Benutzer ist DoH eine hervorragende Wahl, die Leistung, Kompatibilität und Datenschutz ausbalanciert.