Ist es möglich, HTTPS-Verbindungen über Proxyserver herzustellen? Wenn ja, welche Art von Proxyserver erlaubt dies?
Dupliziert mit Wie verwende ich den Socks 5-Proxy mit Apache HTTP Client 4?
Ist es möglich, HTTPS-Verbindungen über Proxyserver herzustellen? Wenn ja, welche Art von Proxyserver erlaubt dies?
Dupliziert mit Wie verwende ich den Socks 5-Proxy mit Apache HTTP Client 4?
Antworten:
TLS / SSL (The S in HTTPS) garantiert, dass sich zwischen Ihnen und dem Server, den Sie kontaktieren, keine Lauscher befinden, dh keine Proxys. Normalerweise
CONNECT
öffnen Sie eine TCP-Verbindung über den Proxy. In diesem Fall kann der Proxy keine Anforderungen / Antworten zwischenspeichern, lesen oder ändern und ist daher eher nutzlos.Wenn der Proxy Informationen lesen soll, können Sie folgendermaßen vorgehen:
Ein Beispiel ist Squids SSL-Bump . Ebenso kann Burp dafür konfiguriert werden . Dies wurde auch in einem weniger harmlosen Kontext von einem ägyptischen ISP verwendet .
Beachten Sie, dass moderne Websites und Browser HPKP oder integrierte Zertifikat-Pins verwenden können, die diesen Ansatz zunichte machen .
quelle
Unconditionally trusted
bezieht sich auf ein CA-Zertifikat. CA-Zertifikate haben keine Domänen. Ich habe die Antwort mit zwei Beispielen geändert, in denen dies in der Praxis ohne Warnungen an den Benutzer funktioniert / funktioniert hat.Die kurze Antwort lautet: Es ist möglich und kann entweder mit einem speziellen HTTP-Proxy oder einem SOCKS-Proxy durchgeführt werden.
In erster Linie verwendet HTTPS SSL / TLS, das die End-to-End-Sicherheit gewährleistet, indem ein sicherer Kommunikationskanal über einen unsicheren eingerichtet wird. Wenn der HTTP-Proxy den Inhalt sehen kann, handelt es sich um einen Lauscher, der das Ziel von SSL / TLS verfehlt. Es müssen also einige Tricks gespielt werden, wenn wir einen Proxy über einen einfachen HTTP-Proxy durchführen möchten.
Der Trick ist, wir verwandeln einen HTTP-Proxy in einen TCP-Proxy mit einem speziellen Befehl namens
CONNECT
. Nicht alle HTTP-Proxys unterstützen diese Funktion, aber viele tun dies jetzt. Der TCP-Proxy kann den übertragenen HTTP-Inhalt nicht im Klartext sehen, dies hat jedoch keine Auswirkungen auf seine Fähigkeit, Pakete hin und her weiterzuleiten. Auf diese Weise können Client und Server mithilfe des Proxys miteinander kommunizieren. Dies ist die sichere Methode zum Proxying von HTTPS-Daten.Es gibt auch eine unsichere Methode, bei der der HTTP-Proxy zu einem Mann in der Mitte wird. Es empfängt die vom Client initiierte Verbindung und initiiert dann eine weitere Verbindung zum realen Server. In einem gut implementierten SSL / TLS wird der Client benachrichtigt, dass der Proxy nicht der echte Server ist. Der Client muss dem Proxy also vertrauen, indem er die Warnung ignoriert, damit die Dinge funktionieren. Danach entschlüsselt der Proxy einfach Daten von einer Verbindung, verschlüsselt sie erneut und speist sie in die andere ein.
Schließlich können wir HTTPS sicherlich über einen SOCKS- Proxy vertreten, da der SOCKS-Proxy auf einer niedrigeren Ebene arbeitet. Sie können sich einen SOCKS-Proxy sowohl als TCP- als auch als UDP-Proxy vorstellen.
quelle
Soweit ich mich erinnern kann, müssen Sie eine HTTP CONNECT-Abfrage auf dem Proxy verwenden. Dadurch wird die Anforderungsverbindung in einen transparenten TCP / IP-Tunnel konvertiert.
Sie müssen also wissen, ob der von Ihnen verwendete Proxyserver dieses Protokoll unterstützt.
quelle
Wenn es immer noch von Interesse ist, finden Sie hier eine Antwort auf eine ähnliche Frage: Konvertieren Sie den HTTP-Proxy in Twisted in den HTTPS-Proxy
Um den zweiten Teil der Frage zu beantworten:
Standardmäßig werden die meisten Proxyserver so konfiguriert, dass HTTPS-Verbindungen nur zu Port 443 zugelassen werden, sodass https-URIs mit benutzerdefinierten Ports nicht funktionieren. Dies ist im Allgemeinen abhängig vom Proxyserver konfigurierbar. Squid und TinyProxy unterstützen dies beispielsweise.
quelle
Hier ist mein vollständiger Java-Code, der sowohl HTTP- als auch HTTPS-Anforderungen mit dem SOCKS-Proxy unterstützt.
quelle
Sie können dies mithilfe von Man-in-the-Middle-Techniken mit dynamischer SSL-Generierung erreichen. Schauen Sie sich mitmproxy an - es ist ein Python-basierter, SSL-fähiger MITM-Proxy.
quelle
Tunneln von HTTPS über SSH (Linux-Version):
alles was du auf localhost machst. dann:
quelle
Ich hatte es versucht
ssh -N -D 12345 login@proxy_server
localhost:12345
Dies führte jedoch zu dem Fehler "Unsichere Verbindung", wenn ich versuchte, eine Verbindung zu einer https-Website herzustellen.
Die Lösung war zu
Referenz aus der digitalen Ozeandokumentation
So leiten Sie den Webverkehr ohne VPN mithilfe eines SOCKS-Tunnels sicher weiter
quelle
Ich glaube nicht, dass "HTTPS-Verbindungen über Proxyserver haben" den Man-in-the-Middle-Angriffstyp eines Proxyservers bedeutet. Ich denke, es wird gefragt, ob man über TLS eine Verbindung zu einem http-Proxyserver herstellen kann. Und die Antwort lautet ja.
Ja, siehe meine Frage und Antwort hier. Der HTTP-Proxyserver funktioniert nur in SwitchOmega
Die Art des Proxyservers stellt SSL-Zertifikate bereit, wie dies bei normalen Websites der Fall ist. Sie benötigen jedoch eine
pac
Datei, damit der Browser die Proxy-Verbindung über SSL konfigurieren kann.quelle