Tor ist ein Netzwerk zur Anonymisierung von Verbindungsdaten. Es wird für TCP-Verbindungen eingesetzt und kann beispielsweise im Web für Browsing, Instant Messaging, IRC, SSH, E-Mail oder P2P benutzt werden. Tor schützt seine Nutzer vor der Analyse des Datenverkehrs. Es basiert auf der Idee des Onion-Routings.
Allgemeines
Tor bietet keine Anonymität gegen jeden Angreifer. So ist es durch Überwachung einer ausreichend großen Anzahl von Tor-Knoten oder größeren Teilen des Internets möglich, nahezu sämtliche über Tor abgewickelte Kommunikation nachzuvollziehen. Ein solches Szenario ist beispielsweise bei Betreibern von Internet-Knoten oder wichtigen Backbones – insbesondere durch Kooperation – durchaus vorstellbar: Gelingt es, den ersten und letzten Knoten der Verbindung zu überwachen, lässt sich mit Hilfe einer statistischen Auswertung auf den Ursprung der Verbindung schließen.
Gegebenenfalls kann das auch durch staatliche Einflussnahme oder geheimdienstliche Tätigkeit erfolgen. Begünstigt wird es sowohl durch die Struktur des Internets, das sich stark auf einzelne Betreiber stützt, als auch durch die sehr ungleiche Verteilung der Tor-Server weltweit, die sich stark auf wenige Länder konzentrieren. Dadurch würde die Zusammenarbeit von wenigen Instanzen ausreichen, um die Wirkung von Tor deutlich zu schwächen.
Anonymes Surfen
Die Software basiert auf dem Prinzip des Onion-Routings und wurde mit einigen Abwandlungen implementiert:
- Der Nutzer installiert auf seinem Computer einen Client, den sogenannten Onion-Proxy. Dieses Programm verbindet sich mit dem Tor-Netzwerk. In der Startphase lädt sich das Programm eine Liste aller vorhandenen und verwendbaren Tor-Server (engl. relays) herunter. Diese mit einer digitalen Signatur versehene Liste wird von Verzeichnisservern (engl. directory server bzw. directory authority) aufbewahrt. Deren öffentliche Schlüssel werden mit dem Tor-Quellcode geliefert. Das soll sicherstellen, dass der Onion-Proxy authentische Verzeichnisdaten erhält.
- Wenn die Liste empfangen wurde, wählt der Onion-Proxy eine zufällige Route über die Tor-Server.
- Der Client verhandelt mit dem ersten Tor-Server eine verschlüsselte Verbindung. Wenn diese aufgebaut ist, wird sie um einen weiteren Server verlängert. Diese Prozedur wiederholt sich noch einmal, so dass eine Verbindungskette immer drei Tor-Server enthält. Jeder Server kennt seinen Vorgänger und seinen Nachfolger. Die Entwickler des Projektes wählten die Zahl Drei, um möglichst große Anonymität bei noch akzeptabler Verzögerungszeit zu erreichen. Der Erfolg hängt dabei davon ab, dass mindestens einer der Server vertrauenswürdig ist und ein Angreifer nicht schon den Anfangs- und Endpunkt der Kommunikation überwacht.
- Nachdem eine Verbindung aufgebaut worden ist, werden über diese Server die Daten versandt. Der letzte Server tritt dabei als Endpunkt der Kommunikation auf. Er wird als Exit- oder Austritts-Server oder -Knoten (engl. exit node) bezeichnet.
Der oben beschriebene Verbindungsaufbau wird in regelmäßigen Abständen wiederholt, und die Verbindungsstrecken werden nach etwa 10 Minuten gewechselt.
Die Pakete innerhalb des Tor-Netzwerkes werden immer verschlüsselt weitergegeben. Erst wenn der Exit-Knoten die Pakete weitergibt, können diese unter Umständen unverschlüsselt sein. Daher ist es weiterhin wichtig, Ende-zu-Ende-Verschlüsselung und -Integritätsschutz einzusetzen, da der Betreiber eines Exit-Knotens ansonsten den gesamten Datenverkehr mitlesen und manipulieren kann.
Versteckte Dienste (z.B. DarkNet)
Tor ermöglicht, dass beide Seiten einer Kommunikation anonym bleiben. Der Abrufer von Informationen nutzt hierzu die vorgestellten Funktionen von Tor. Ein Anbieter von Informationen verwendet versteckte Dienste (engl. hidden services bzw. Tor Onion Services):
- Man möchte einen Dienst anbieten (beispielsweise eine Webseite mit sensiblen Informationen). Zuerst richtet er die dazu notwendige Software (in dem Beispiel einen Webserver) auf dem betreffenden Rechner ein. In diesem Schritt ist Tor nicht involviert.
- Nun wird Tor so eingestellt, dass die Softwarepakete vom Webserver über das Netzwerk weitergegeben werden.
- Nach einem Neustart wird ein Schlüsselpaar erstellt, das den Dienst identifizieren soll. Die Tor-Software erledigt diesen Schritt automatisch.
- Zusammen mit einer Liste von zufällig ausgewählten Eintritts-Punkten (engl. introduction point) sendet er den öffentlichen Schlüssel an einen Verzeichnis-Server und baut eine Verbindung zu den Eintritts-Punkten auf. Damit ist die Einrichtung des versteckten Dienstes abgeschlossen.
- Ein Nutzer möchte eine Verbindung zu diesem Dienst aufnehmen. Hierzu benötigt er den Hash-Wert des öffentlichen Schlüssels. Dieser hat die Form wie 6sxoyfb3h2nvok2d.onion. Die Webseite könnte beispielsweise über die Adresse http://oldd6th4cr5spio4.onion/ erreichbar sein. Mit diesem Hash-Wert erhält der Nutzer die Details des Dienstes vom Verzeichnis-Server.
- Der Nutzer baut über das Tor-Netzwerk eine Verbindung zu einem zufälligen Tor-Server auf, den er als Rendezvous-Punkt bestimmt.
- Danach baut er eine weitere Verbindung zu einem der Eintritts-Punkte auf. Diese Information befand sich in den Details vom Verzeichnisserver. Der Nutzer schickt eine verschlüsselte Mitteilung an den Server. In dieser ist der Rendezvous-Punkt beschrieben, zu dem der Nutzer eine Verbindung aufrechterhält. Server und Nutzer werden sich dort „treffen“.
- Nachdem der Server diese Mitteilung erhalten hat, entscheidet er, ob er mit dem Nutzer kommunizieren will, und baut im positiven Fall eine Verbindung zum Rendezvous-Punkt auf.
- Am Rendezvous-Knoten werden die Kommunikationskanäle, die zu dem Server und dem Nutzer gehören, verbunden. Beide können jetzt Daten austauschen, ohne dass sie gegenseitig ihre Identität kennen.
Versteckte Dienste (z.B. DarkNet) sind nur über das Tor-Netzwerk erreichbar. Allerdings können Betreiber, welche einen gewissen Dienst anbieten, ihren Dienst als versteckten Dienst (hidden service) und auch gleichzeitig als normalen Dienst (welcher ganz normal über das Internet erreichbar ist ohne Anonymisierungssoftware) anbieten. Dies hat den Vorteil, dass Benutzer, welche großen Wert auf Privatsphäre legen, den Weg über das Tor-Netzwerk gehen können.