Ein HTTP-Proxy kann reine HTTP-Anfragen lesen und weiterleiten. Doch was ist mit verschlüsseltem HTTPS-Traffic? Wie soll der Proxy weiterleiten, was er nicht lesen kann? Die Antwort ist die CONNECT Methode: der standardisierte Weg, dem Proxy zu sagen "öffne einen rohen TCP-Tunnel zu dieser Adresse und misch dich dann nicht ein".
Wie wird der Tunnel aufgebaut?
Nach der 200-Antwort wird der Proxy zu einer "Röhre": Er leitet die eingehenden Bytes unverändert an die Gegenseite weiter und sieht sich den Inhalt überhaupt nicht an.
Die CONNECT-Antwort 200 Connection established In dem Moment gibt der Proxy die HTTP-Kommunikation auf. Die folgenden Bytes sind der TLS-Handshake, den der Proxy nicht interpretieren kann – er transportiert ihn lediglich.
Was sieht der Proxy im CONNECT-Tunnel?
HTTPS verbirgt also, was Sie tun , aber nicht, wohin Sie gehen . Diese Unterscheidung ist bei der Bewertung der Proxy-Privatsphäre von entscheidender Bedeutung.
Metadaten-Leaks und das Thema Logs haben wir in unserem Beitrag zu Logdateien ausführlich behandelt.
Unterschied zwischen CONNECT und Absolute-URI
Bei reinem HTTP wird dem Proxy eine andere Anfrageform gesendet. Beides darf man nicht verwechseln:
| Reines HTTP (Absolute-URI) | HTTPS (CONNECT) | |
|---|---|---|
| Anfragezeile | GET http://site/yol HTTP/1.1 | CONNECT site:443 HTTP/1.1 |
| Sieht der Proxy den Inhalt | Ja, vollständig | Nein |
| Kann er Header hinzufügen | Ja | Nein |
| Kann er cachen | Ja | Nein |
| Für jede Anfrage | Neue Anfragezeile | Ein Tunnel, viele Anfragen |
Deshalb können Header wie X-Forwarded-For nur bei reinem HTTP-Traffic ergänzt werden; bei HTTPS kann der Proxy die Header nicht anfassen.
Warum wird CONNECT eingeschränkt?
CONNECT ist die Befugnis, dem Proxy zu sagen: "öffne eine rohe TCP-Verbindung zu einer beliebigen Adresse". Ohne Einschränkung würde der Proxy zu einem offenen Relay. Deshalb begrenzen die meisten Proxy-Konfigurationen CONNECT auf bestimmte Ports:
Die Sperrung der SMTP-Ports dient der Vermeidung von Spam-Missbrauch. Wenn Sie E-Mail-Traffic übertragen müssen, benötigen Sie eine gesonderte Freigabe Ihres Anbieters.
Häufige Fehler
Die Meldung, die Sie im Browser sehen ERR_TUNNEL_CONNECTION_FAILED, bedeutet, dass die CONNECT-Anfrage eine andere Antwort als 200 erhalten hat. Für Details probieren Sie es mit curl.
Analyse über die Kommandozeile
Der letzte Befehl zeigt, wie schlicht das Protokoll ist: Es genügt, ein paar Zeilen Text zu senden und die 200-Antwort zu erhalten.
TLS-Interception (SSL Inspection)
Manche Unternehmens-Proxys bauen keinen Tunnel auf, sondern schalten sich dazwischen: Sie verbinden sich selbst mit dem Ziel und präsentieren dem Client ein gefälschtes Zertifikat, das mit dem Stammzertifikat des Unternehmens signiert ist. Geschieht das, kann der Proxy auch die verschlüsselten Inhalte lesen.
Klicken Sie im Browser auf das Schloss-Symbol und sehen Sie sich den Aussteller des Zertifikats an. Erscheint dort statt der erwarteten öffentlichen Zertifizierungsstelle der Name des Unternehmens, wird TLS-Interception eingesetzt. Das Thema haben wir in unserem Beitrag zum transparenten Proxy ausführlich behandelt.
Performance-Hinweis: Wiederverwendung des Tunnels
Ist ein CONNECT-Tunnel einmal aufgebaut, können mehrere Anfragen an dasselbe Ziel denselben Tunnel nutzen. Das bedeutet, dass die Kosten des Handshakes nur einmal anfallen. Keep-Alive in Ihrem Client aktiviert zu lassen, bringt bei CONNECT-basiertem Traffic einen deutlichen Geschwindigkeitsgewinn.
Die erste Anfrage ist teuer, die folgenden sind günstig. Ein Client, der für jede Anfrage eine neue Verbindung öffnet, zahlt diesen Aufschlag immer wieder.
Zusammenfassung
CONNECT ist ein einfacher, aber wirkungsvoller Mechanismus, mit dem ein HTTP-Proxy verschlüsselten Traffic transportieren kann. Ist der Tunnel aufgebaut, sieht der Proxy den Inhalt nicht; er kennt nur die Zieldomain, den Zeitpunkt und die Byte-Menge. Portrichtlinien schränken CONNECT ein, um Missbrauch zu verhindern. Für die Performance ist die Wiederverwendung des Tunnels entscheidend. Um Ihre Konfiguration zu überprüfen, nutzen Sie unser Proxy-Prüfwerkzeug können Sie nutzen.