Gibt es eine Möglichkeit, HTTPS-Anforderungen auf einem Proxyserver zwischenzuspeichern?

12

Wir verwenden den Squid-Proxy-Server in unserer Umgebung und möchten HTTPS-Anforderungen zwischenspeichern.

Gibt es eine Möglichkeit, Squid oder generell einen Proxyserver zum Zwischenspeichern von HTTPS-Anforderungen zu konfigurieren?

Supratik
quelle
Dies gehört wahrscheinlich auf security.se
Tom O'Connor
1
Verwenden Sie Squid, um ganz klar zu sein, vor einer Reihe Ihrer eigenen Server oder zwischen Ihren Workstations und dem Internet?
Zoredache
Nur um klarzustellen. Sie möchten Anfragen oder Antworten zwischenspeichern?
Gqqnbig

Antworten:

12

Es gibt einen Weg, dies zu tun, aber er widerspricht grundsätzlich den Gründen für die Verwendung von HTTPS.

So würden Sie es machen.

  1. Generieren Sie ein selbstsigniertes SSL-Zertifikat für die Site, von der Sie die Anforderungen abfangen und im Cache speichern möchten.
  2. Installieren und starten Sie stunnel auf Ihrem Proxy-Server und teilen Sie ihm mit, dass das darin enthaltene Zertifikat das in Stufe 1 erzeugte ist.
  3. Habe stunnel die entschlüsselten Anfragen an squid weitergeleitet.
  4. Möglicherweise müssen Sie stunnel auf der anderen Seite haben oder openssl_client, um die Anforderung an den Upstream-Server neu zu verschlüsseln.

Vorsichtsmaßnahmen:

  1. Ihre Benutzer werden Sie hassen. Bei jeder SSL-Anforderung an diese Site wird ein ungültiges Zertifikatfenster angezeigt.
  2. Sie setzen sich potenziellen Prozessen aus, wenn Sie ungezogene Dinge tun. (IANAL)
  3. Sie können dafür immer nur ein selbstsigniertes Zertifikat erstellen, da das PKI-Web of Trust für SSL-Zertifikate funktionieren soll. Keine Angabe zu gefährdeten Stammzertifizierungsstellen.

Ich werde Ihnen nicht die genauen Details dazu geben, weil a) ich es für etwas unethisch halte und b) es besser für Sie ist, zu lernen, wie man es macht.

Ich schlage vor, Sie untersuchen, wie Stunnel- und Man-in-the-Middle-Angriffe funktionieren.

Tom O'Connor
quelle
Sie könnten fragen Trust zdnet.com/... Sie ein Stammzertifikat zu verkaufen , so dass Sie diese Lösung implementieren können , ohne belästigen Benutzer: P
Rory
2
Wenn Sie sich in einer Domäne befinden, ist es weitaus einfacher, eine eigene Zertifizierungsstelle zu erstellen und die öffentlichen Zertifikate mit Gruppenrichtlinien bereitzustellen.
Tom O'Connor
1
Das Vertrauen in ein SSC + MITM ist nützlich für das Protokoll-Debugging, das Caching, die Deep Packet Inspection und die Zensur / Protokollierung. : / Abgesehen von diesen Gründen nicht so gut.
5

Nein, das gibt es nicht: Sie sind verschlüsselt ... Eine Problemumgehung wäre so etwas wie eine Man-in-Middle- Bereitstellung, aber das würde alle Gründe hinter https zunichte machen .

yrk
quelle
1
Gibt es keine Problemumgehung, um dies zu erreichen oder den Proxy-Server zum Entschlüsseln und Zwischenspeichern zu zwingen?
Supratik
Eine Problemumgehung wäre etwas, das an die man-in-middleBereitstellung erinnert, aber das würde alle Gründe für https
yrk 18.01.12
5
Ich bin nicht einverstanden, dass es alle Gründe hinter https besiegen würde. Wenn Sie dies zu Hause tun und den Proxy besitzen, verwenden Ihre Daten weiterhin https zwischen Ihrem Proxy und den Websites.
brunoqc
@brunoqc das ist ein VPN-Job.
11.
1
Wenn es aus irgendeinem Grund wichtig ist, https-Nutzdaten zwischenzuspeichern oder eine https-Sitzung zu debuggen, ist MITM sehr nützlich. Tatsächlich arbeitet Charles so.
5

Nur um zu erklären, warum dies ohne MITM nicht möglich ist - ein Proxy sieht nur den DNS-Namen des Servers, zu dem Sie eine Verbindung herstellen möchten, wenn Sie verschlüsseltes HTTPS verwenden. Es werden weder die URL noch Antwortheader angezeigt. Es kann nicht festgestellt werden, auf welche einzelne Ressource Sie auf einer Site zugreifen, ob sie zwischengespeichert werden kann oder nicht oder wie lange die Änderungen dauern. Alles, was es sehen kann, ist, dass jemand etwas von einem Remote-Server mit HTTPS möchte.

Dies bedeutet, dass das Zwischenspeichern nicht funktionieren kann, da der Proxy nicht weiß, welche zwischengespeicherten Objekte Sie erhalten sollen oder wie Sie diese zuerst abrufen können.

Robf
quelle
1

Zeus (Now Riverbeds) ZTM Traffic Manager kann dies tun, da es HTTP- und HTTPS-Verkehr in beide Richtungen übersetzt und unverschlüsselten Inhalt zwischenspeichert - es funktioniert, wir verwenden es, aber es ist furchtbar teuer - wie im Preis eines Porsche pro Server.

Chopper3
quelle
5
Aber Sie müssen trotzdem ein neues Root-Zertifikat auf dem Client installieren, nicht wahr? Und Sie müssen dem Proxy trotzdem vertrauen, nicht wahr?
Phihag