To proxy or not

Do you intercept SSL?

Nun wird es mal wieder etwas technisch. Es geht um ein Thema, welches mich geschäftlich beschäftigt, zu welchem ich also auch zwei Meinungen habe. Eben eine Geschäftliche und eine Private.

Was ist ein Proxy?

Ich wiederhole ungern, was das Internet schon hergibt. Deshalb die stark vereinfachende Ultrakurzbeschreibung. Details gibt unter anderem auch der Wikipedia-Artikel Proxy (Rechnernetz) her.

Ein Proxy ist ein «Stellvertreter» in einem Netzwerk, welcher Anfragen von (internen) Clients (PC, Laptop, Tabletts oder Smartphones) nach Webseiten entgegennimmt, die Antworten im Internet abholt und den Clients zurückgibt.

Die Analogie zum Gastgeber, der Pizzas für seine Gäste bestellt, welche in diesem Abschnitt des oben genannten Wikipedia-Artikels beschrieben ist, finde ich sehr passend und originell. Gekürzt hier wiedergegeben, da ich weiter unten darauf referenziere:

  • Meine Gäste haben Hunger und möchten Pizza
  • Ich frage die Wünsche aller Gäste ab und bestelle dann Pizzen beim Lieferdienst
  • Ich nehme die Pizzen in Empfang und verteile sie gemäss Bestellung an die Gäste

Warum wird denn Internet-Verkehr proxifiziert?

Die oben genannte Erklärung hilft ein wenig, zu erklären, weshalb man den Verkehr ins Internet über einen Proxy laufen lassen kann, soll oder eventuell gar muss. Das betrifft wohl die wenigsten Privathaushalte (bei sich selbst), sondern bezieht sich auf grössere Unternehmen.

  1. Ressourcenoptimierung
    Der Proxy kann (statische) Inhalte, welche immer wieder abgerufen werden, zwischenspeichern und so Bandbreite ins Internet einsparen. Dieses Argument ist im Zeitalter von günstigeren Breitbandanschlüssen nicht mehr so wichtig. Vor allem werden immer mehr Inhalte im Internet dynamisch erzeugt und lassen sich gar nicht mehr gut zwischenspeichern.
    Pizza-Analogie: der Lieferant kann mir die Pizzen ev. in einer grossen Schachtel liefern.
  2. Nachvollziehbarkeit
    Ich kann an einem Ort, dem Proxy und seinem Log, alle Anfragen ins Internet protokollieren.
    Pizza-Analogie: Ich weiss, wer welche Pizza bestellt hat und muss nicht alle befragen.
    Der Albtraum aller auf Datenschutz bedachten User? 
    1. Ja, aber
    2. Als Verantwortlicher einer Firma kann ich gegenüber den Strafverfolgungsbehörden auskunfts- und rechenschaftspflichtig sein*). Hat ein Benutzer in meinem Netzwerk eine Straftat (zum Beispiel: Aufruf zu Gewalt, Rassenhass etc.) von seinem Firmengerät aus begangen, wird beim Zielsystem die Firmenadresse registriert. Bei einer Anzeige muss ich belegen können, wer diese Straftat begangen hat. Das Log des Proxy zeigt mir das an einem zentralen Ort an.
    3. Natürlich kann ich hier auch zentral an einem Ort nachgucken, wer wann, wo und ungefähr wie lange im Internet gesurft ist. Entsprechend ist der Zugriff auf diese Logs sehr genau zu regeln. In der Schweiz ist ein Arbeitnehmender hier gesetzlich sehr gut abgesichert und das muss der Arbeitgeber zwingend einhalten, sonst macht er sich auch strafbar.
  3. Durchsetzen von Vorgaben
    Mit einem Proxy habe ich die Möglichkeit, den Zugriff aller Mitarbeitenden auf das Internet in der von mir gewünschten oder rechtlich notwendigen Form zu begrenzen.
    Pizza-Analogie: Wenn in meinem Haushalt keine Sardelle über die Türschwelle kommt, dann kann ich das so einfacher durchsetzen. Keine Angst, ich liebe Sardellen. :-)
    Beispiele:
    1. Webseiten mit strafbaren Inhalten (harte Pornographie, Extremismus und Gewalt) können blockiert werden
    2. Webseiten, welche nicht geschäftlichem Nutzen dienen, können gesperrt werden. Vielleicht möchte eine Firma nicht, dass die Mitarbeitenden auf Casino-Seiten ihre Zeit vertrödeln, sich auf Schnäppchenjagd begeben oder sich (legale) nackte Tatsachen zu Gemüt führen.
      Über diese Funktion wird sehr häufig gestritten:
      • Wer über Ziele geführt wird und/oder eine Vorgesetzte hat, welche genügend aufmerksam ist, sollte ja auffallen, wenn Zeit vertrödelt wird.
      • Manchmal sind solche Zugriffe trotzdem geschäftlich notwendig. Ev. muss die Marketing-Abteilung prüfen, ob ihre Werbung auf solchen Seiten richtig aussieht. Entsprechende Ausnahmeprozesse sind organisatorisch und manchmal auch technisch aufwändig.
  4. Schutzmassnahmen
    Ein entsprechend ausgerüsteter Proxy kann den Verkehr überprüfen und unerwünschte Elemente entfernen oder blockieren.
    Pizza-Analogie: Ich kann kontrollieren, dass keine Pizzen vergammelt sind oder noch eine Messerspitze darin steckt.
    In der Computerwelt kann ich Viren erkennen. Illegale Antworten, welche versuchen, den Browser zu manipulieren, entfernen. Oder auch Webseiten, welche in Kategorien für Malware oder Phishing aufgeführt sind, blockieren.

Also gibt es als Firma ab einer gewissen Grösse gute Gründe oder gar Verpflichtungen, einen Proxy einzusetzen.

Proxy und SSL

Kommen wir zum Hauptgrund dieses (leider) länglichen Artikels. Wenn ein Proxy stellvertretend die Anfrage für einen Client ausführt, dann läuft das dem Prinzip von SSL – vollständige Verschlüsselelung von einem zum anderen Ende – zuwider. Eigentlich kann ein Proxy so eine Verbindung gar nicht direkt entgegennehmen. Eigentlich…

Denn es gibt einen Kunstgriff, die SSL-Interception, gerne auch (verharmlosend) SSL-Inspection genannt.

en: to intercept someone/something
de: jemanden abfangen, abhören, unterbrechen

Dieser Wikipedia-Artikel erklärt das hybride Verschlüsselungsverfahren, welches bei SSL/TLS zum Einsatz kommt.

Der Server präsentiert dem Client mit der Webseite ein Zertifikat. Der Browser des Clients überprüft, ob das Zertifikat mit dem Namen der abgerufen Webseite übereinstimmt und ob es:

  • gültig ist (Datum von und Datum bis
  • nicht zurückgerufen wurde (ungültig erklärt, sogenannte Revocation in einer CRL)
  • vertrauenswürdig ist (von einer bekannten/gültigen Firma ausgestellt etc).

Dieses Zertifikat kann man als Benutzer überprüfen. Das Symbol bei der ULR im Browser zeigt üblicherweise ein Schlösschen an, wird teilweise auch grün dargestellt. Die Anzeige des Zertifikats ist bei den heutigen Browsern teilweise (unverständlicherweise!) schwieriger geworden.

Beispiel Anzeige Entwicklermodus Chrome/Mac mit SBB Webseite

Das obige Beispiel zeigt den Browser «Chrome» (auf Mac OS X), wo man unter «Anzeigen» – «Entwickler» – «Entwicklertools» mehr Informationen über die Webseite abrufen kann. Hier ist auch ein Link auf die Anzeige des Zertifikats vorhanden. 

SSL-Zertifikat der SBB-Webseite, abgerufen am 06.08.2017

Das Bild zeigt das Zertifikat der SBB-Webseite, abgerufen am 6. August 2017. 

Wie funktioniert denn nun die «Interception»?

In der Regel wird ein Proxy solcherart verschlüsselte Webseiten registrieren (siehe oben unter Nachvollziehbarkeit) und den Verkehr an sich beidseitig unverändert weiterleiten. Ist die Interception eingeschaltet, passiert folgendes:

  • Der Proxy verhandelt mit dem Client die Verschlüsselungsparameter, als wäre er das Zielsystem. Dazu präsentiert er dem Client ein Zertifikat, in welchem er behauptet, das Zielsystem zu sein.
  • Der Proxy kann nun die Details der Anfrage erkennen, da er die Anfrage ja entschlüsseln kann.
  • Der Proxy ruft dann die Webseite des Zielsystems auf und behauptet, der Client zu sein. In der Regel wird er die selben Parameter wie der Client verwenden, um die Verbindung aufzubauen.
  • Das Zielsystem beantwortet die Anfrage, da es annehmen muss, mit einem Client zu sprechen.
  • Der Proxy kann die Antwort nun entschlüsseln und überprüfen, da er ja die Verbindungsparameter kennt.
  • Der Proxy verschlüsselt die Antwort wieder und präsentiert sie dem anfragenden Client.

Der Proxy ist also sozusagen ein «Man in the middle». Siehe auch diesen Wikipedia-Artikel zum gleichnamigen Angriff.

Lässt sich das System so einfach austricksen?

Öhm, einigermassen… Eigentlich darf kein Server ein Zertifikat für eine «fremde» Webseite präsentieren und der Browser merkt, wenn Name in der URL und im Zertifikat nicht übereinstimmen.

Die Herausgeber von Zertifikaten sind peinlichst darauf bedacht, dass keine falschen Zertifikate herausgegeben werden und fehlerhafte Herausgeber müssen mit scharfen Sanktionen rechnen. Musste ich beim Verfahren startssl.com versus Chrome und Firefox selber erleben.

Beispiel einer Zertifikatswarnung

Nun muss also der Hersteller des Proxy zusammen mit den Engineers der Firma, die ihn einsetzt, den Client bzw. den Browser so konfigurieren, dass er sich «übertölpeln» lässt.  Dazu wird ihm meist ein Generalvertrauen in das Zertifikat, welches der Proxy präsentiert, eingeimpft. Selbstverständlich kann ein Benutzer, der ein (mehr oder weniger) gesundes Misstrauen hat, das Zertifikat angucken und merkt, dass da wer in der Mitte ist.

Aber warum soll ich denn überhaupt Interception einschalten?

Endlich, auf der Zielgerade dieses Artikels! 😅

Es gibt da zwei Herzen, ach, in meiner Brust! :-)

Wer mich kennt, weiss, was ich von Interception halte.

Gründe Pro:

  1. Abwehr von Schadsoftware
    Ich kann erkennen, ob jemand Schadsoftware über eine verschlüsselte Verbindung überträgt. 
    Beispiel: Der Mitarbeiter ruft seine private Mailbox bei GMX über SSL ab und lädt die Rechnung der Swisscom über 1'234 Franken auf den Firmen-PC hinunter. Die Rechnung ist natürlich nicht echt und auch nicht von Swisscom, sondern ein trojanisches Pferd mit Ransomware, welches sofort nach dem Öffnen fleissig mit dem Verschlüsseln aller durch diesen Benutzer erreichbaren Fileserverablagen beginnt.
  2. Filterung von Funktionen
    Wenn ich eine Verbindung öffne, kann ich gewisse Funktionen einer Seite erlauben oder blockieren.
    Beispiel: Meine Firmenpolicy erlaubt mir nicht, Dokumente auf Dropbox hochzuladen. Aber der Download soll erlaubt sein. Oder ich darf alles hochladen, ausser es enthält gewisse klassifizierte Informationen.
    Ohne Interception kann ich nur alles oder nichts erlauben.
  3. Nachvollziehbarkeit beim Nachladen von Seiten
    Gewisse Webseiten laden Informationen von anderen Seiten nach. Passiert das serverseitig, so erfahre ich ohne Interception nichts davon.

Gründe Contra:

  1. Gesetzliche oder vertragliche Vorgaben
    Gewisse Verbindungen darf ich nicht untersuchen. So ist zum Beispiel ein Meldeportal für Compliance-Verstösse (Whistleblowser-Meldestelle) absolut vertraulich zu behandeln. Verbindungen zu Ärzten oder Rechtsanwälten geniessen auch besonderen Schutz. Eine Bank kann zum Beispiel in den Nutzungsbedingungen verlangen, dass keine Interception verwendet wird.
    Das führt dazu, dass in der Regel eine Ausnahmeliste gepflegt wird.
  2. Sicherheitsüberlegungen
    Der Proxy ist ein «Man In The Middle». Wird er kompromittiert oder ist er fehlerhaft konfiguriert, leidet die Sicherheit aller Verbindungen.
  3. Performance
    Die Ent- und erneute Verschlüsselung ist einigermassen aufwändig. Die meisten Systeme verfügen heutzutage über spezielle Prozessoren oder ASIC, welche das aber recht gut abwickeln können. Das führt dann aber zum nächsten Thema, den:
  4. Kosten
    Die Pflege von Ausnahmen verursacht Aufwände. Ebenso das Engineering, damit sich die Systeme überhaupt auf eine Interception einlassen. Zudem lassen sich die meisten Hersteller von kommerziellen Proxy-Systemen die Interception extra bezahlen.

Man kann jetzt aber für alle Pro- und Contra-Gründe weitere Argumente finden:

  • Ein guter Schutz gegen Malware kann (und soll!) auch durch einen aktuellen Virenschutz auf dem Client und eine vernünftige Schulung der Mitarbeitenden (Awareness) erreicht werden.
  • Eine gute und sichere Konfiguration einer Interception bzw. des ganzen Proxy gehört bei einem renommierten Hersteller und einer fähigen Firma zum A und O!
  • Tatsache bleibt, dass mit der immer einfacheren Verfügbarkeit von SSL der Anteil von solcherart geschützen Seiten stark zunimmt.
  • Mit der Folge, dass neben den Firmen auch andere Leute und Organisationen immenses Interesse haben, dass dieser Schutz knackbar ist oder wird. Und wir wissen leider nur zu gut aus bekannten Vorfällen, dass solche Lücken nicht nur von den (vermeintlich) Guten ausgenützt werden. Somit dürfte die Interception ein bevorzugtes Ziel von Angreifern werden.

Anmerkung:
Der Artikel wurde sehr lange und ich bin wohl nicht mehr in der Lage, alle Tippfehler oder nicht grad offensichtliche Inkonistenzen jetzt herauszufinden. Melde mir doch einfach solche per Mail an «info@urs-mueller.ch». Ich werde den Artikel dann anpassen. 

Wie ist Deine Meinung? Du kannst gerne hier mitdiskutieren, auch wenn die Kommentarfunktion eher bescheiden ist (Threading, Mentions etc.).

*) Anmerkung vom 07.08.2017, 8:20

Die Anforderung der Nachvollziehbarkeit betrifft nicht alle Firmen in der CH, da normalerweise ein Provider für die Umsetzung des BÜPF/VÜPF zuständig ist. In meinem Fall sind wir das selber. Danke für die Hinweise dazu.

Urs Sonntag 06 August 2017 - 12:27 pm | | default
Stichwörter: , ,

zwei Kommentare

Rueetschli
Rueetschli, - 06-08-’17 21:13
Thomas Verasani
Thomas Verasani, (URL) - 07-08-’17 08:32
(optionales Feld)
(optionales Feld)
Um automatisiertem Kommentarspam entgegen zu wirken, ist leider dieses Idiotenquiz nötig.
Persönliche Informationen speichern?
Hinweis: Alle HTML-Tags außer <b> und <i> werden aus Deinem Kommentar entfernt. URLs oder Mailadressen werden automatisch umgewandelt.