Expertenwissen

DNS über QUIC (DoQ)-Arbeits- und Implementierungsleitfaden.

In der heutigen Welt der digitalen Konnektivität hat das Domain Name System (DNS) die scheinbar einfache Aufgabe, von Menschen lesbare Namen in maschinenlesbare Adressen umzuwandeln. Doch wenn es nicht richtig funktioniert, können Sie keine Online-Bankgeschäfte tätigen, an einer Online-Geschäftsbesprechung teilnehmen oder eine Nachricht in den sozialen Medien veröffentlichen. Leider haben herkömmliche DNS-Implementierungen damit zu kämpfen, den modernen Anforderungen an Sicherheit und Zuverlässigkeit gerecht zu werden, ohne die Leistung zu beeinträchtigen. 

In diesem Artikel wird die Entwicklung des DNS-Systems von der Vergangenheit bis zur Zukunft erörtert und wie DNS über QUIC eine wesentliche Rolle für eine sicherere, schnellere und stabilere Internet-Infrastruktur spielt.

Zusammenfassung der wichtigsten DNS-über-QUIC-Konzepte

Konzept Beschreibung
Bedrohungen für das Bereichsnamensystem DDOS-Angriffe, Cache-Poisoning und Lauschangriffe
Entwicklung der DNS-Sicherheit Die DNS-Sicherheit entwickelt sich mit der Zeit weiter, um den Bedrohungen mit aktualisierten Standards wie DNSSEC, DoT, DoH und dem neuesten DoQ zu begegnen.
Bedarf an DoQ DoT und DoH bieten Datenschutz, verursachen aber einen gewissen Leistungsaufwand, der durch DoQ überwunden wird.
Vorteile von DoQ DoQ ist standardmäßig verschlüsselt und bietet eine höhere Zuverlässigkeit und bessere Leistung als DoT und DoH
Verabschiedung von DoQ Es wurde 2022 standardisiert, ist relativ neu und wird schrittweise eingeführt. Es wird einige Zeit dauern, bis es auf allen Resolvern und Servern eingeführt ist.

Die Entwicklung des Bereichsnamensystems

Die IETF hat das Domain Name System vor über drei Jahrzehnten standardisiert, um den Zugang zu den verschiedenen Ressourcen im Internet über Namen statt über numerische Adressen zu erleichtern - etwa beim Zugriff auf eine Website oder beim Austausch von E-Mails mit dem Mail-Exchanger. Die Sicherheit war damals noch kein Hauptanliegen. ("Die Tatsache, dass das DNS keine großen Sicherheitsvorkehrungen trifft, war von Anfang an beabsichtigt, denn das Problem bestand darin, die Menschen dazu zu bringen, die Idee eines verteilten Systems zu akzeptieren, was damals sehr umstritten war"- Dr. Paul Mockapetris, Erfinder des DNS)

Mit der Ausweitung des globalen Internets haben Cyberkriminelle jedoch begonnen, Schwachstellen im Domänennamensystem auszunutzen. Dazu gehören beispielsweise Distributed-Denial-of-Service-Angriffe, die den Cache des Resolvers vergiften oder Endnutzer auf bösartige Websites umleiten. Ein weiteres Sicherheitsproblem ist das DNS-Hijacking - das Abhörenvon DNS-Kommunikationen, um unbefugten Zugriff auf die Netzwerkeinstellungen des Benutzers, wie z. B. Routerkonfigurationen, zu erlangen und Schwachstellen für andere Arten von Angriffen zu ermitteln.

Das Domänennamensystem wurde weiterentwickelt, um seine Sicherheitsaspekte zu verbessern, die in der ursprünglichen Norm fehlten. 

{{banner-23="/design/banners"}}

DNSSEC

Die DNS-Sicherheitserweiterung (DNSSEC) wurde von der IETF im Jahr 2005 vorgeschlagen. Sie erweitert das Domain Name System um die Authentifizierung der Datenherkunft und die Datenintegrität. Ziel des Standards ist es, Endnutzer vor DNS-Cache-Poisoning und Man-in-the-Middle-Angriffen zu schützen. DNSSEC verwendet Kryptografie mit öffentlichem/privatem Schlüssel zur Authentifizierung der DNS-Antworten. Der Standard schützt die DNS-Anfragen vor Manipulationen, indem er den Antworten digitale Signaturen hinzufügt, aber er verschlüsselt die Daten selbst nicht. Der DNS-Verkehr bleibt im Klartext und ist somit abhörsicher.

Es wurden weitere Normen eingeführt, um diese Datenschutzbedenken auszuräumen.

DNS über TLS

Der Standard DNS over Transport Layer Security (DoT) wurde 2016 vorgeschlagen. Der Standard zielt darauf ab, die Privatsphäre des Endnutzers zu schützen und die Möglichkeiten der Manipulation von DNS-Anfragen auf dem Weg zu beseitigen. DoT nutzt die Sicherheit und Verschlüsselung von Transport Layer Security (TLS), um Nachrichten zwischen dem DNS-Client und dem Resolver auszutauschen, wodurch die Möglichkeit des Abhörens im Netzwerk ausgeschlossen wird.

DNS über HTTPS

DNS über HTTPS (DoH) wurde 2018 vorgeschlagen, um einen zusätzlichen Mechanismus zum Schutz der Privatsphäre von Endnutzern bereitzustellen. DoH nutzt das Standard-HTTP-Protokoll, um den DNS-Verkehr über TLS zu kapseln und zu transportieren, sodass die DNS-Anfragen nicht von HTTPS-Verkehr zu unterscheiden sind.

Beschränkungen von DoT und DoH

Sowohl DoT als auch DoH leisten sehr gute Arbeit bei der Gewährleistung des Datenschutzes, indem sie den bewährten Verschlüsselungsmechanismus TLS verwenden. Dieser Datenschutz wird jedoch durch zusätzliche Verzögerungen bei der Auflösung von DNS-Anfragen erkauft. Die TCP-Transportschicht führt aufgrund des TCP-Drei-Wege-Handshakes zu einer Verzögerung. Da TCP die Reihenfolge der Pakete erzwingt, kommt es zu Head-of-Line-Blockierungen, die zusätzliche Latenzzeiten bei der Kommunikation verursachen. Außerdem fügt TLS der DNS-Auflösung seine eigene Verarbeitungs- und Aufbauzeit hinzu.

DNS über QUIC

Um all diesen zusätzlichen Aufwand zu bewältigen, wurde im IETF-Standard RFC 9250 im Jahr 2022 ein neuer Standard DNS over QUIC vorgeschlagen. Er verbessert die Stärken seiner Vorgänger und überwindet deren Schwächen. Die Association for Computing Machinery (ACM) veröffentlichte im Oktober 2022 eine Leistungsstudie. In der Studie wurden verteilte DoQ-Messungen aus verschiedenen Blickwinkeln durchgeführt, um die Auswirkungen von DoQ auf das Web-Browsing-Erlebnis zu messen. Der Studie zufolge waren die Ladezeiten von Webseiten mit DoQ im Vergleich zu DoH um 10 % schneller. Im Vergleich zu einfachem UDP-DNS war DoQ nur 2 % langsamer, selbst mit dem zusätzlichen Verschlüsselungs-Overhead. 

Bevor wir uns ansehen, wie DNS über QUIC funktioniert, wollen wir das QUIC-Protokoll und seine Vorteile für die Netzwerkkommunikation untersuchen.

Wie QUIC funktioniert

Das QUIC-Protokoll (Quick UDP Internet Connections) wurde ursprünglich von Google-Ingenieuren (gQUIC) entwickelt, um die Leistung von Websites und Video-Streaming zu verbessern. Aufgrund all seiner potenziellen Vorteile wurde gQUIC von der IETF übernommen und standardisiert(QUIC - RFC9000). Das QUIC-Protokoll wurde gegenüber dem ursprünglichen Entwurf von gQUIC in Zusammenarbeit mit vielen Organisationen und Einzelpersonen verbessert. Eine der bemerkenswerten Änderungen gegenüber gQUIC ist, dass die von Google verwendete Verschlüsselung angepasst wurde und die IETF TLS 1.3 als Standardverschlüsselungsmechanismus in QUIC einführte. Außerdem wurde gQUIC speziell für HTTP entwickelt, während IETF QUIC ein standardisiertes allgemeines Transportprotokoll ist, das mehrere Anwendungsprotokolle wie HTTP, DNS usw. übertragen kann. Die wesentlichen Vorteile des QUIC-Protokolls werden im Folgenden erörtert.

Die QUIC-Grundsätze(Quelle)

Verbindungsaufbau und Sicherheit

QUIC ist ein sicheres Allzweck-Transportprotokoll, das standardmäßig die TLS 1.3-Verschlüsselung integriert. Es arbeitet über UDP und schafft eine eigene zustandsabhängige Interaktion zwischen Client und Server. So kombiniert es kryptografische Funktionen und Transportparameter in einem Protokoll und eliminiert viele Overheads. 

Im Vergleich zu TCP+TLS, bei dem zuerst ein TCP-Dreiwege-Handshake und dann ein TLS-Handshake durchgeführt wird, benötigt QUIC nur eine Round-Trip-Time (RTT) für neue Interaktionen. Es kombiniert die Hello-Nachricht, den Verschlüsselungsalgorithmus und die eindeutige Verbindungs-ID in einem Paket. Die Verbindungsinformationen werden bei einer erneuten Verbindung zwischen Client und Server mit Null-RTT wiederholt.

Null-RTT-Verbindungsaufbau in QUIC(Quelle)

Paket-Multiplexing

QUIC unterstützt das Multiplexing von Paketen unter Verwendung mehrerer Streams innerhalb derselben Verbindung. Sobald die Verbindung hergestellt ist, können der Client und der Server mehrere Streams für die gleichzeitige Datenübertragung öffnen. Dadurch werden Head-of-Line-Blocking-Probleme vermieden, die beim TCP-Transport auftreten.

Multiplexing in QUIC(Quelle)

Überlastungskontrolle und Wiederherstellung bei Paketverlusten

QUIC ist ein äußerst anpassungsfähiges Protokoll. Es kann schnell auf Änderungen der Netzwerkbedingungen reagieren, wodurch eine effiziente Nutzung der verfügbaren Bandbreite gewährleistet und Paketverluste und Verzögerungen minimiert werden. QUIC passt verschiedene Parameter, wie z. B. die Größe des Überlastungsfensters, die Timeout-Werte für die erneute Übertragung und die Schrittgeschwindigkeit, dynamisch auf der Grundlage von Echtzeit-Netzwerk-Feedback an. 

Um Echtzeitanwendungen besser zu unterstützen, wurde der QUIC-Standard aktualisiert und um die Möglichkeit erweitert, Fehler oder verlorene Pakete vor der erneuten Übertragung mit Hilfe der Forward Erasure Correction (FEC) zu beheben. 

Migration von Verbindungen

QUIC behält einen Sitzungsstatus bei, indem es eine eindeutige Verbindungs-ID verwendet, um die Kontinuität bei wechselnden IP-Adressen von Client und Server zu wahren. Dadurch kann das QUIC-Protokoll die Endbenutzersitzungen transparent umschalten, z. B. beim Wechsel von einer WiFi- zu einer 4G-Verbindung. Dies bietet den Vorteil einer nahtlosen Verbindungsmigration und eines reibungslosen Browsing-Erlebnisses bei Verwendung des QUIC-Protokolls für den Transport.

{{banner-15="/design/banners"}}

Wie DNS über QUIC funktioniert

Im herkömmlichen DNS erfolgt die Kommunikation im Klartext. Der Transport erfolgt aus Effizienzgründen über UDP. Der TCP-Transport wird verwendet, wenn die DNS-Paketgröße 512 Byte übersteigt oder wenn ein garantierter Datenaustausch erforderlich ist (wie bei Zonenübertragungen). 

Im Gegensatz dazu ist bei DNS over QUIC (DoQ) der UDP-Port 853 für den DoQ-Server reserviert. Client und Server können sich gegenseitig auf einen anderen Port einigen, dürfen aber nicht Port 53 verwenden, um Verwechslungen zu vermeiden. Das Protokoll funktioniert wie folgt:

  1. Der Client und der Server stellen eine QUIC-Verbindung her
  2. Der Client leitet die DoQ-Abfrage ein, indem er eine DNS-Nachricht sendet, die in ein QUIC-Paket gekapselt ist. Das Paket enthält die DNS-Anfrage und Metadaten, die sie als DNS-über-QUIC-Anfrage spezifizieren. 
  3. Die DNS-Anfrage wird mit dem bereits etablierten QUIC-Handshake verschlüsselt.

Der Client kann mehrere Abfragen parallel über separate QUIC-Streams innerhalb derselben Verbindung senden, und der DoQ-Server kann auf jede Abfrage mit denselben Streams antworten. Dies führt zu einer deutlich verbesserten Antwortzeit, unabhängig vom Verschlüsselungs-Overhead, der zur Kapselung der Datenübertragung verwendet wird. 

Im Vergleich zum traditionellen DNS-Protokoll hat DoQ auch alle Vorteile des QUIC-Protokolls.

  • QUIC verschlüsselt die gesamte Kommunikation und sorgt so für die Vertraulichkeit und Integrität von DNS-Anfragen zwischen Clients und Servern.
  • Mit QUIC können mehrere DNS-Anfragen und -Antworten gleichzeitig über eine einzige QUIC-Verbindung gesendet werden, was die Latenzzeit verringert und die Effizienz erhöht.
  • QUIC verfügt über integrierte Mechanismen zur Staukontrolle, die zu zuverlässigeren und schnelleren DNS-Anfragen und -Antworten führen, insbesondere in Netzen mit hohen Paketverlusten.
  • QUIC bietet 1-RTT oder sogar 0-RTT für Wiederholungsverbindungen, die trotz des Verschlüsselungs-Overheads eine bessere Leistung bieten.

Umsetzung und Annahme

DNS over QUIC hat mit all seinen Vorteilen das Potenzial, der De-facto-Standard für die DNS-Auflösung zu werden. Da es sich bei DoQ jedoch um einen relativ neuen Standard handelt, wird es einige Zeit dauern, bis er als weltweiter Standard akzeptiert und flächendeckend in allen DNS-Auflösern und -Servern implementiert ist.

Derzeitige Implementierungen

Nur wenige Organisationen übernehmen die Führung bei der Einführung von DoQ.

Organisation Werkzeuge
Adgaurd DNS (erster öffentlicher Resolver, der DoQ implementiert)
  • dnslookup: Ein Client, der DNS über TLS (DoT), DNS über HTTPS (DoH), und DNS über QUIC (DoQ) unterstützt.
  • dnsproxy: Ein Proxy-Server für DNS über TLS (DoT), DNS über HTTPS (DoH), und DNS über QUIC (DoQ).
  • DnsLibs: Eine Open-Source-C++-Bibliothek für die Implementierung von DNS über TLS (DoT), DNS über HTTPS (DoH) und DNS über QUIC (DoQ).
Europäischer öffentlicher DNS-Resolver DNS0.EU
PowerDNS Die neueste Version von dnsdist 1.9.0 unterstützt DoQ zusätzlich zu DoT und DoH.
Andere Open-Source-Implementierungen aioquic, quicdoc und doq-proxy.

Darüber hinaus unterstützen Technitium, ein quelloffener autoritativer und rekursiver DNS-Server, DNSPerf und Flamethrower sowie quelloffene DNS-Leistungstests die Protokolle DoT, DoH und DoQ.

Die PlattformCatchpoint bietet eine Netzwerküberwachungslösung zur Einrichtung einer proaktiven Beobachtung der wichtigsten Internetdienste, einschließlich DNS, CDN, BGP und anderer Dienste von Drittanbietern. Die DNS-Überwachung verbessert die DNS-Verfügbarkeit, Leistung und Sicherheit für Ihre Anwendungen.

{{banner-3="/design/banners"}}

Eigenen DoQ-Server mit DNSDIST implementieren

Folgen Sie den nachstehenden Schritten, um Ihren privaten DoQ-Resolver mit PowerDNS dnsdist zu implementieren. PowerDNS bietet Repositories für die beliebtesten Linux-Distributionen, um die Installation von dnsdist zu erleichtern. Gehen Sie auf die PowerDNS Repo-Site und folgen Sie den Anweisungen zur Installation von dnsdist 1.9.x auf der von Ihnen gewählten Plattform.

Nach der Installation muss dnsdist konfiguriert werden. Es handelt sich um einen Load-Balancer, der Backend-DNS-Auflöser benötigt. Sie können Ihre eigenen privaten Resolver definieren oder beliebige öffentliche Resolver verwenden. Bearbeiten Sie die Konfigurationsdatei (/etc/dnsdist/dnsdist.conf) und geben Sie die folgenden Konfigurationen ein

-- define downstream servers, aka backends
-- https://dnsdist.org/guides/downstreams.html
newServer("1.1.1.1")
newServer("2606:4700:4700::1111")
newServer("8.8.8.8")
newServer("2001:4860:4860::8888")

Als nächstes müssen wir DNS-Listener aktivieren, um eingehende Verbindungen von Endbenutzern zu akzeptieren. Dnsdist ist eine vielseitige Anwendung, die einfache DNS-Listener über TCP/UDP-Port 53 unterstützt. Sie unterstützt auch DoT über TCP/853, DoH über TCP/443 und DoQ über UDP/853.

-- accept plain DNS (Do53) queries on UDP/53 and TCP/53
addLocal("0.0.0.0:53")

-- accept DNS over QUIC (DoQ) queries on UDP/853
addDOQLocal('0.0.0.0:853', '/etc/ssl/domain-cert.pem', '/etc/ssl/domain-cert.key')

-- accept DNS over TLS (DoT) queries on TCP/853
addTLSLocal('0.0.0.0:853', {"/etc/ssl/domain-cert.pem"}, {"/etc/ssl/domain-cert.key"})

-- accept DNS over HTTPS (DoH) queries on TCP/443
addDOHLocal("0.0.0.0:443", {"/etc/ssl/domain-cert.pem"}, {"/etc/ssl/domain-cert.key"}, "/dns-query")

Starten Sie den dnsdist-Dienst neu, und Ihr DNS-Auflöser ist so eingestellt, dass er alle Standard- und sicheren DNS-Protokolle unterstützt.

Schlussfolgerungen

In diesem Artikel haben wir erörtert, wie sich der DNS-Standard weiterentwickelt und wie DNS über QUIC die Effizienz und Sicherheit des QUIC-Transportprotokolls nutzen kann. DoQ bietet eine geringere Latenzzeit, eine verbesserte Staukontrolle und einen verbesserten Datenschutz durch Verschlüsselung. Es eignet sich gut für den Einsatz bei Mobilität oder in Netzen mit hohen Paketverlusten. Seine breite Einführung hängt jedoch davon ab, dass Interoperabilität und Standardisierung für alle verschiedenen Implementierungen von DNS-Clients und -Servern gewährleistet sind.

Weitere Fachbeiträge