Open Source im professionellen Einsatz

Mit dem Java Anonymous Proxy unbeobachtet surfen

Mix it, Baby

Anonymität im Web ist ein Mythos. Vom Webserver mitgeloggte IPs und Zugriffzeiten reichen zur eindeutigen Nutzer-Identifizierung aus. JAP, der Java Anonymous Proxy, verspricht Abhilfe durch Mixen der Nutzerdaten und ist trotz seiner Komplexität äußerst einfach zu bedienen.

Wer beim Bäcker in einer fremden Stadt als Nicht-VIP sein Brot bar bezahlt, gibt auch keine Daten über sich preis. Niemand zeichnet seine Bewegungsdaten und Verhaltensmuster auf. Anonymität ist im Alltag eher die Regel als die Ausnahme. Das Internet hingegen erlaubt es, den Besucherverkehr auf Websites nahtlos zu überwachen: Ein standardmäßig konfigurierter Webserver loggt die IP des Besuchers und den Zeitpunkt des Zugriffs.

Damit lassen sich die Besucher eindeutig identifizieren und über eine Rückfrage bei deren Providern, die aus einem »whois«-Aufruf und der IP zu erkennen sind, auch ihre Daten ermitteln. Allerdings hat hier der Gesetzgeber aus Datenschutzgründen einige Hürden eingebaut. Nutzer, die mit fester IP surfen, sind über eine simple »whois«-Abfrage sowieso sofort identifiziert.

Wer seine Privatsphäre wahren möchte, muss relativ schwere Geschütze auffahren: so genannte Anonymisierdienste. Diese Dienste verschleiern mehr oder weniger effektiv die IP des Surfers und geben ihre eigene dem Webserver zum Logging an.

Web-basierte Anonymisierdienste

Eine ganz einfache Lösung sind Web-basierte Anonymisierdienste wie The Cloak [1], Guardster [2] oder Anonymization.net [3]. Als Ausgangspunkt einer anonymen Surftour dient die Webseite des Dienstes, auf der der Surfer in einem Eingabefeld die gewünschte URL eingibt. Anschließend ruft ein Programm auf dem jeweiligen Webserver die gewünschte Seite ab. Es analysiert häufig die gefundene Seite und ersetzt Links so, dass sie ebenfalls über den Anonymisierserver laufen. Anschließend liefert der Anonymisierdienst die gewünschte Webseite aus (Abbildung 1).

Solche Web-basierten Dienste haben jedoch diverse Nachteile: Ein erster ist das Vertrauen, denn der Nutzer weiß nicht, was der Dienst protokolliert und wie anonym er wirklich ist. Zweitens könnten unter Umständen Links, die beispielsweise ein Javascript generiert, nicht umgeschrieben worden sein: Er surft dann plötzlich doch wieder identifizierbar, ohne es aber zu merken. Dagegen bietet zum Beispiel The Cloak eine Option, sämtliche Javascript-Inhalte aus der besuchten Seite herauszufiltern.

Und zu guter Letzt: Der Weg zwischen dem eigenen Browser und dem Anonymisierdienst ist unverschlüsselt. Hier könnte also ein dazwischengeschalteter Host, zum Beispiel ein Zwangsproxy des eigenen Providers das Surfverhalten aktiv belauschen. Aus diesen Gründen bieten einige der Web-basierten Anonymisierer ihre Dienste auch verschlüsselt über HTTPS an, allerdings ist das nicht immer gratis.

Open Proxy

Die größten Schwierigkeiten, also das Parsen der HTML-Seite und Austauschen der Links, löst ein Proxy elegant: Hier wird der Browser so konfiguriert, dass er jeden HTTP-Request an den Proxy sendet. Der Proxy tritt dann gegenüber dem Zielserver als Kommunikationspartner auf (Abbildung 2).

Ein Proxy allein bringt allerdings noch keine Anonymität: So kennt der AOL-Proxy seine User. Besser geeignet sind so genannte Open Proxies, also Proxy-Server, die jeder nutzen kann. Sogar der US-Senat stellte, wenn auch versehentlich, einen solchen Server zur Verfügung [4]. Um jetzt den Surfer zu identifizieren, ist auch noch ein Blick in die Logfiles des Open Proxy und eine zusätzliche Anfrage beim Provider nötig.

Abbildung 1: Das Funktionsprinzip eines Web-basierten Anonymisierdienstes: Der Kommunikationspartner der Zielseite ist der Webserver des Dienstes - der Nutzer kann seine eigenen Verbindungsdaten verstecken.

Abbildung 1: Das Funktionsprinzip eines Web-basierten Anonymisierdienstes: Der Kommunikationspartner der Zielseite ist der Webserver des Dienstes - der Nutzer kann seine eigenen Verbindungsdaten verstecken.

Das Geheimnis, wer hinter einem vom Proxy gesandten HTTP-Request steckt, lüften manche Proxies freiwillig: Sie fügen einen HTTP-Header ein, in den sie die IP-Adresse des anfragenden Rechners verpacken. Allerdings protokollieren die wenigsten Webserver den Inhalt dieses Headers in ihren Logfiles.

Abbildung 2: Anonymität über einen Open Proxy: Der Proxy-Server ist der Gesprächspartner des Ziel-Webservers. Im Gegensatz zum Web-basierten Anonymisierer muss er die HTML-Seiten nicht umschreiben.

Abbildung 2: Anonymität über einen Open Proxy: Der Proxy-Server ist der Gesprächspartner des Ziel-Webservers. Im Gegensatz zum Web-basierten Anonymisierer muss er die HTML-Seiten nicht umschreiben.

Das Problem der nicht verschlüsselten Übertragung löst aber auch ein Open Proxy nicht: Kann ein Angreifer die Kommunikation zwischen Proxy und Surfer belauschen, dann ist die Anonymität dahin.

Genau da setzt der Java Anonymous Proxy (JAP) der TU Dresden [5] an: Ein portabler, weil in Java geschriebener Proxy auf dem eigenen Rechner. Er verschlüsselt alle Anfragen und schickt sie an einen Mix, von dem sie - vermischt mit den Anfragen anderer Nutzer - über mehrere Mixe zu einem Proxy gelangen, der dann letztlich die Anfrage an den Webserver stellt. Ein Mix ist also eine Zwischenstation zum Vermischen der Nutzerdaten.

Damit gibt es nur noch zwei Punkte, an denen eine Klartext-Kommunikation belauscht werden kann: Auf dem eigenen Rechner und zwischen dem Proxy und dem Webserver. Für die Sicherheit der eigenen Maschine ist jeder Nutzer mit Root-Rechten selbst verantwortlich, wer sich hier belauschen lässt, hat zunächst gewiss andere Sorgen.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook