QUIC abschalten

So schön die Nutzung mit QUIC auf den ersten Blick erscheint, so knifflig sind natürlich unterschiedliche Einsatzbereiche und der ein oder andere Administrator wird sich wünschen, dass er nicht zur IPv6 sondern auch QUIC irgendwie vermeiden kann. Teilweise ist es auch erforderlich, da viele Firewalls, Proxy-Server und Clientlösungen noch nicht mit QUIC umgehen können.

Möglichkeiten

 Aus meiner Sicht gibt es mehrere Möglichkeiten, die geeignet kombiniert werden sollten.

  • Webserver Alt-SVC-Header
    Wenn Sie natürlich selbst der Betreiber des Webservers sind, dann können einfach den Header entfernen, welche dem Client die QUIC-Option anbietet. Siehe QUIC Handshake und QUIC mit IIS. Darauf gehe ich in der Seite nicht weiter ein.
  • HTTP-Proxy verbirgt "Alt-Svc"-Header
    Wenn sie heute alle HTTP-Anfragen über einen SSL-Inspection Proxy leiten, dann kann dieser in der Rückantwort den "Alt-Svc"-Header einfach entfernen. Damit sollte kein Client mehr diese Information erhalten. Das ist aber nicht ganz sicher, da die Information über QUIC im Cache gehalten wird und der Anwender vielleicht im Homeoffice nicht ihren Proxy genutzt hat.
  • Namensauflösung beschränken
    Ohne Proxy muss QUIC eine direkte UDP-Verbindung zum Ziel aufbauen und dazu den Namen auf die Ziel-IP auflösen. Wenn ihre Clients aber nur die internen-DNS-Server fragen und diese keine externe oder nur eine selektive externe Namensauflösung durchführen, wird der Client keine Adressen finden. Das funktioniert natürlich nur, wenn alle anderen Zugriffe weiter über einen HTTP-Proxy laufen.
  • Firewall "blockt"
    Der "sicherste" Weg ist natürlich die Blockade auf der Firmen-Firewall. Ein  einfaches "ANY<->ANY UDP/443 REJECT" sollte schon reichen, um QUIC zu unterbinden. Ich habe noch keinen Anbieter gesehen, der QUIC über einen anderen Port angeboten hat. Bitte machen Sie keinen "BLOCK", da dann der Client ja nicht aktiv mitbekommt, dass UDP/443 verboten ist.
  • Client deaktiviert
    Die dritte Option besteht in der Konfiguration der Client-Software, dass Sie QUIC gar nicht nutzt. Die Einstellung muss ich natürlich genaugenommen für Windows, MacOS, Smartphones und auch noch die verschiedenen verwendeten Produkte umsetzen.

Aus meiner Sicht bleibt für Firmen, die einen HTTP-Proxy nutzen nur die Option, den Header zu verbergen, dass die Clients gar kein QUIC angeboten bekommen. Auf jeden Fall muss dann auch noch die Firewall die QUIC-Verbindung aktiv verhindern

HTTP Proxy

Ich versuche hier Links und Konfigurationseinstellungen zu dokumentieren, mit denen Sie QUIC/HTTP/3 für Clients unterdrücken können. Proxy Server gibt es als eigenständige Server, als Cloud-Service, als Teil der Firewall und als Reverse Proxy z.B. bei CDN-Providern.

Die Modifikation von HTTP-Reply-Headern ist nur möglich, wenn Sie die TLS-Verbindung aufbrechen!

Die Einstellungen sind je nach Proxy-Lösung individuell. Hier nur ein paar Beispiele

Produkt Default Beschreibung

Squid

Erlaubt

Als SQUID-Administrator können Sie über folgende Konfiguration den Header aus den Antworten entfernen

reply_header_access X-Squid-Error deny all

Zscaler

Default Rule prüfen

Wenn Firmen ihre Proxy-Funktion in die Cloud verlagern, dann erfolgt die Inspection und Kontrolle auch in der Cloud. Je nach Default-Regel (Any Allow oder AnyDeny") wird QUIC erlaubt oder geblockt.

If the default Cloud Firewall rule is enabled to block all that is not allowed and no rule explicitly allows traffic associated to QUIC then QUIC will be blocked and no further action is required unless QUIC is possible based on the Allow rules preceding the default block. If the Cloud Firewall is configured to default allow then the core best practice policy to block QUIC is a rule that has the network service “QUIC" selected with the action to “Block/ICMP".

Cloudflare

 

Cloudflare addidert den Header: In der Konfiguration muss man dann HTTP/2 & HTTP/3 abschalten

Namensauflösung

QUIC kann (stand Sommer 2024) nicht über HTTP-Proxy oder andere Proxy-Server geroutet werden. Daher muss der Client die Gegenstelle nicht nur per 443/UDP erreichen könnten, sondern vor allem auch die passende IP-Adresse auflösen können. Der Client muss also per DNS die externen Namen auflösen können. In einer "Sicheren Umgebung", in der alle Zugriffe über einen HTTP-Proxy-Server laufen und direkte Zugriffe auf bestimmte IP-Adressbereiche und DNS-Domains beschränkt sind, kann QUIC den Namen des Server nicht selbst auflösen und der Client versucht dann gar nicht die Verbindung aufzubauen.

Dieser Weg klingt erst einmal vielversprechend und natürlich funktioniert er auch. Aber es gibt einige Fallsticke, die daraus keine sichere Konfiguration machen:

  • DNS-Einschränkung
    Der Verzicht auf eine externe Auflösung war früher häufiger im Einsatz aber zählt heute wohl zu einer Minderheit. Es gibt einfach viele Protokolle, die einen direkten Namen prüfen. Es sind ja nicht nur "A/AAA-Records". Über DNS können noch viel mehr Informationen, z.B. HSTS, MTA-STS, bereitgestellt werden.
  • DNS DoH
    Dann ist es ja nie ausgeschlossen, dass ein Client über einen anderen Weg doch externe Adressen auflösen kann. Ich habe im Chomium-Trace durchaus schon Zugriff per UDP auf 5353 gefunden und auch DoH - DNS over HTTPS müssten Sie sicher ausschließen.
  • HomeOffice
    Vielleicht können Sie so eine strenge Regel noch im Firmen-LAN durchsetzen. Sobald Anwender im Homeoffice sind oder einen Hotspot oder Mobilfunk nutzen, steigen die Anforderungen an ein MDM und die VPN-Lösung.
  • Alt-Svc-Cache/DNS-Cache
    Sollte ein Client dann einmal einen Request mit einem Alt-Svc-Eintrag erhalten haben, dann hält er diesen im Cache. Selbst Browser Cachen DNS-Antworten und vergessen diese bei einem Netzwerkwechsel nicht zwingend.
  • Hosts oder Malware
    Dass ein Anwender (oder eine Malware) gar nicht erst eine DNS-Abfrage macht sondern direkt die gewünschte IP-Adresse über andere Wege, z.B. Abruf einer Webseite, Google-Suche o.ä. ermittelt um direkt zu kommunizieren, ist weiterhin möglich.

Wenn Sie QUIC z.B. aus Sicherheitsüberlegungen nicht erlauben wollen, dann sollten Sie immer das Protokoll aktiv unterbinden und nicht darauf hoffen, dass der Client das Ziel nicht findet.

Firewall

Eine Firewall kann natürlich genau das tun, wozu sie im Netzwerk eingesetzt wird. Sie kann nicht nur Zugriffe aus dem Internet auf eigene Systeme sondern auch ausgehenden Datenverkehr reglementieren. Einige Firewalls erlauben von Grund aus nur, was explizit konfiguriert ist während andere Produkte erst einmal alles erlauben, ehe Sie konfiguriert wurden. Wenn Sie auf der Firewall einfach ausgehende Pakete über 443/UDP blockieren, dann ist QUIC nicht mehr möglich.

Achtung:
Damit sind aber auch andere Dienste unterbunden, die 443/UDP nutzen, z.B. VPNs auf DTLS-Basis (Cisco AnyConnect), einige SIP-Lösungen, Citrix RDP over UDP, Smarthome mit Thread

Allerdings kann es je nach Umsetzen die Zugriffe auf Webseiten etwas verzögern. Siehe dazu auch:

Clients

Die letzte Option ist eine Konfiguration auf dem Client, wenn dies möglich ist. Die meisten Browser erlauben eine Steuerung von QUIC-Nutzung über die Einstellungen oder Registrierung/Gruppenrichtlinien. Leider habe ich noch keine Möglichkeit gefunden, die Einstellungen pro Domain zu steuern.

Produkt Beschreibung

Chrome/Edge

Da beide Browser auf der gleichen Engine aufsetzen, sind die Einstellungen identisch und nur die URL ist anzupassen.

chrome://flags/#enable-quic

Der "Default" ist QUIC mittlerweile aktiviert.

Die Einstellungen können auf Windows auch per Registrierung angepasst werden.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"QuicAllowed"=dword:0000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\ChromeOS]
"QuicAllowed"=dword:0000000

Edge

Für den Edge Browser gelten quasi die gleichen Einstellungen wie für Chrome. Sie müssen nur den Prefix "Chrome:" durch "Edge:" ersetzen

edge://flags/#enable-quic

Allerdings können Sie die Konfiguration des Edge-Browser auch per Registrierung oder Gruppenrichtlinie erfolgen:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge]
"QuicAllowed"=dword:00000001

Eine "1" erlaubt QUIC und eine "0"untersagt Edge die Nutzung von QUIC.

Firefox

Firefox nutzt natürlich seine eigene Engine und damit auch eigene Einstellungen. Die sind unter "about:config" im Pfad "network.htt.http3.enabled" zu erreichen.

Zum Punkt "http3" sind hier natürlich noch viele weitere Parameter vorhanden.

Opera

Opera hat auch eine passende Einstellung:

opera://flags/#enable-quic

WebView2

Eine Sonderrolle nimmt in der Liste der Clients das Microsoft WebView2-Control ein. Microsoft stellt dieses Paket zur Anzeige von Webseiten an, welche aber auch mit dem Internet und damit auch per QUIC kommunizieren kann.

Es gibt hierzu einen Registrierungsschlüssel, welche aber nicht offiziell dokumentiert ist.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2]
"QuicAllowed"=dword:00000001

Eine "1" erlaubt QUIC und eine "0"untersagt Edge die Nutzung von QUIC.

QUIC testen

Ob all ihre Einstellungen wie erwartet funktionieren, können Sie am besten durch einen Test in Erfahrungen bringen. Sie können auf dem Client natürlich meinen QUIC Erreichbarkeitstest starten und die Rückmeldung abwarten. Alternativ können Sie im Browser den Debugger starten und bei der Netzwerkkommunikation nach "h3" suchen (Siehe QUIC mit Edge und Chrome). Dankbare Gegenstellen mit QUIC-Support sind z.B. www.google.de, www.amazon.com etc. (Siehe QUIC im Internet)

Natürlich betreiben auch die ein oder anderen Hersteller von Webseiten und interessierte Personen entsprechende Testseiten.

Natürlich können Sie auch jede öffentliche Webseite, z.B: google.com, amazon.com etc. nutzen, die QUIC anbietet und mit dem Chromium Debugger die Übertragung analysieren.

Weitere Links