Tor

Aus Mikiwiki
Version vom 6. August 2011, 17:18 Uhr von Michi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Tor (früher: The Onion Router) ist ein Rechnernetz zur Anonymisierung der Verbindungsdaten. Es wird für TCP-Verbindungen eingesetzt und kann beispielsweise für Webbrowsing, Instant Messaging, IRC, SSH, E-Mail, P2P und anderes benutzt werden. Tor schützt vor der Analyse des Datenverkehrs seiner Nutzer, der zusätzliche Einsatz von Privoxy ist dabei sehr zu empfehlen.

Tork ist eine grafische Oberfläche für Tor.

Funktionsweise

Gewöhnlich kommuniziert der Webbrowser direkt mit dem entfernten Zielrechner und erhält von dort z. B. eine Webseite, wobei der dortige Server die Zugriffsdaten protokolliert. Mit Hilfe des Tor-Clients geht die eigene Anfrage nun nicht direkt zum Zielrechner, sondern passiert erste einen Proxy auf dem lokalen Rechner und dann eine Reihe sogenannter "Nodes" bis hin zu einem "Exit-Node", der dann in Kontakt mit dem Zielrechner tritt.

Als "Nodes" werden im Tor-Netzwerk Knotenpunkte bezeichnet, welche der Datenverkehr auf dem Weg zum Ziel passiert. Einen Node eröffnet, wer Tor als Server oder als sogenannten "Onion-Router" betreibt. Privatnutzer verwenden Tor mehrheitlich als Client bzw. als Socks-4-Proxy, der dann als "Onion-Proxy" bezeichnet wird. Dadurch ergibt sich ein Problem: Da die angeforderten Daten verschiedene privat betriebene Nodes passieren, bevor sie den eigenen Rechner erreichen, könnte theoretisch jeder Betreiber eines Onion-Routers den Datenverkehr mitprotokollieren. Daher wird zwischen dem eigenen Onion-Proxy und jedem Node auf dem Weg zum Exit-Node ein eigener Schlüssel vereinbart. Das verhindert, dass sich ein nicht autorisierter Node in die Route schmuggelt.

Das System verschlüsselt zudem Daten in mehreren Schichten (das kann nur der eigene Onion-Proxy) und verhindert so, dass ein Node-Betreiber die passierenden Inhalte entschlüsseln kann. Die Daten sind also - wie eine Zwiebel (engl. onion) - von mehreren Verschlüsselungsschichten umgeben. Erst der Exit-Node reicht die eigentlichen Daten an den Zielrechner weiter, wobei er nicht weiss, von welchem Rechner die Anfrage stammt, denn keiner der Onion-Router kennt den Onion-Proxy. So weiss auch kein Betreiber eines Onion-Touters, wessen Daten durch ihre Nodes fliessen.

Auf dem Rückweg werden die Daten wieder eingepackt: Erst der Onion-Proxy auf dem lokalen Rechner dekodiert die verschlüsselten Schichten und legt die Daten frei. So ist für Aussenstehende und auch den Internetdienstanbieter nicht ersichtlich, welche Daten man anfordert oder schickt, und der Betreiber des Zielrechners sieht lediglich die IP-Adresse des Exit-Nodes, der irgendwo auf der Welt steht.

Wie bei den meisten Anonymisierungs- und Verschlüsselungsprogrammen wird leider auch bei Tor die Kommunikation mit den entfernten Rechnern meist ziemlich stark verlangsamt.

Modi

Tor kennt einen Client- und einen Server-Modus. Der Client-Modus bietet sich an, wenn der eigene Rechner eine private, nicht routbare IP-Adresse besitzt (z. B. 10.x.x.x) und für Internetverbindungen ein NAT-Gateway nutzen muss. Auch Rechner mit Modems sind im Client-Modus gut aufgehoben.

Nach dem Start wartet Tor am Port 9050 auf eingehende Socks-4-Verbindungen. Wird jetzt der eigene Webbrowser angewiesen, diesen Port anzusteuern, läuft die Verbindung über das Onion-Routing-Netz. Die Dokumentation weist richtigerweise daraufhin, dass fürs Surfen die Kombination mit Privoxy eine gute Idee ist.

Bei Verfügbarkeit einer öffentlichen IP-Adresse und ausreichend Bandbreite sollte Tor im Server-Modus betrieben werden. Dadurch wird der Rechner selbst zu einem Knoten im Onion-Routing-Netz. Die Systemuhr sollte dabei so genau wie möglich gehen, was am besten durch regelmässiges Abgleichen mit einem Zeitserver sichergestellt wird. In der gut dokumentierten Konfigurationsdatei "torrc" muss zudem mindestens der Nickname des Servers eingetragen und ausserdem eingestellt werden, auf welchem Port er Verbindungen entgegennehmen soll. Sinnvollerweise werden hier ebenfalls Bandbreitenbeschränkungen oder unerwünschte Netze eingetragen.

Unter der "exit policy" verbirgt sich Tors Mechanismus, Verbindungen zu bestimmten Zielports zu unterbinden - danach wird per Voreinstellung keine E-Mail mehr versandt, selbst wenn der Mailclient mit Socks-Proxies umgehen kann. So wird verhindert, dass sich Tor als Spamschleuder aufschwingt.

Installation

Ubuntu 8.04 Hardy Heron

$ sudo apt-get install tor

Verwendung

Start von Tor, das dann auf Port 9050 lauscht.

$ tor
Aug 10 21:36:43.826 [notice] Tor v0.2.0.34 (r18423). This is experimental software. Do not rely on it for strong anonymity. (Running on Linux i686)
Aug 10 21:36:43.829 [notice] Initialized libevent version 1.3e using method epoll. Good.
Aug 10 21:36:43.829 [notice] Opening Socks listener on 127.0.0.1:9050
Aug 10 21:36:45.297 [notice] We now have enough directory information to build circuits.
Aug 10 21:36:51.948 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.

Tor kann auch über das entsprechende Startskript gestartet werden.

$ sudo /etc/init.d/tor start
Raising maximum number of filedescriptors (ulimit -n) to 32768.
Starting tor daemon: tor...
Aug 10 22:04:28.054 [notice] Tor v0.2.0.34 (r18423). This is experimental software. Do not rely on it for strong anonymity. (Running on Linux i686)
Aug 10 22:04:28.057 [notice] Initialized libevent version 1.3e using method epoll. Good.
Aug 10 22:04:28.059 [notice] Opening Socks listener on 127.0.0.1:9050
done.

Um den Datenverkehr nun über Tor zu leiten, müssen im Webbrowser folgende Einstellungen gemacht werden.

Webbrowser Menü
Firefox 2 Bearbeiten > Einstellungen > Verbindung: Verbindungs-Einstellungen > [X] Manuelle Proxy-Konfiguration > SOCKS-Host: 127.0.0.1 Port: 9050 [X] SOCKS v4
Firefox 3 Bearbeiten > Erweitert: Netzwerk > Einstellungen > Verbindung: Verbindungs-Einstellungen > [X] Manuelle Proxy-Konfiguration > SOCKS-Host: 127.0.0.1 Port: 9050 [X] SOCKS v4

Der Webbrowser schickt nun den Datenverkehr zunächst an den Port 9050 - Tor leitet ihn dann ins Internet weiter.

Zum Testen der Funktionstüchtigkeit kann eine der folgenden Seiten einmal mit und einmal ohne eingeschaltetem Proxy besucht werden. Die dabei angezeigten IP-Adressen sollten sich bei funktionierendem Tor unterscheiden.

Vollkommen anonymisiert ist das Browsen im WWW damit leider noch nicht: Der Webbrowser ermittelt die IP-Adresse des Zielrechners, indem er eine Anfrage an einen DNS-Server schickt, der wiederum einen Rechnernamen (z. B. "migros.ch") in eine IP-Adresse (z. B. "146.67.140.135") umwandelt. Der DNS-Server schickt dem Webbrowser anschliessend die aufgelöste IP-Adresse zurück. Durch eine Auswertung der Protokolldateien des DNS-Servers könnte ermittelt werden, welcher Rechner sich zu welchem Zeitpunkt nach einem bestimmten Rechnernamen erkundigt hat.

Dies wird erst durch den Einsatz von Privoxy verhindert, welches Socks 4a verwendet, das (im Gegensatz zu Socks 4 und Socks 5) einen Rechnernamen nicht erst in eine IP-Adresse umwandeln muss; zudem filtert Privoxy verräterische Header aus HTTP-Anfragen. Der Einsatz von Privoxy ist darum dringend anzuraten!

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Electronic Frontier Foundation ger Torwbm
Jens Kubieziel ger Kurzanleitung zur Installation von Torwbm
Susewiki ger Privoxy und Torwbm
Wikipedia ger Tor (Netzwerk)wbm Enzyklopädischer Artikel