Anonym im Internet - Seite 2
Tor und das Tor Netzwerk
Es folgt eine grobe und vereinfachte Darstellung des Tor Netzwerks (TOS), die auch dem kryptografisch oder technisch nicht versierten Benutzer einige markante Merkmale des Tor Netzwerks vorstellt. Eine detailierte Beschreibung des Tor Netzwerks mit Darstellung der Schwächen und möglichen Angriffe auf das Tor Netzwerk bieten die Tor Design Dokumente und die Präsentationen und Publikationen des Tor Projektleiters Roger Dingledine. Antworten zu speziellen Fragestellungen finden sich in der TorFAQ. Neue Forschungsergebnisse und Informationen zur Anonymisierung finden sich in den Selected Papers in Anonymity.
Das Tor Netzwerk
Tor (TCP basiertes Onion Routing) ist ein Netzwerk aus vielen, über die ganze Welt verteilten Rechnern, auf denen die Tor als Serveranwendung (Onion Router, OR) betrieben wird. Die Onion Router bilden zusammen mit den Tor Verzeichnisservern das Rückgrad des Tor Netzwerks, da über sie die Verbindungen der Tor Benutzer anonymisiert und verschlüsselt zu den jeweiligen Zielrechnern weitergeleitet werden. Von der Einhüllung der Datenpakete in mehrfache Verschlüsselungsschalen zur Anonymisierung und Verschlüsselung leitet sich der Begriff „Onion“ (engl. für „Zwiebel“) her. Detailierte Informationen zu allen Onion Routern erhält man über die aufbereiteten Daten der Verzeichnisserver auf der Rueckgr (TOS) Status-Website.
Von Benutzern des Tor Netzwerks wird Tor als lokaler Onion Proxy (OP) betrieben, um den TCP basierten Datenstrom der unterschiedlichsten Dienste und Anwendungen (WWW, E-Mail, Instant Messaging usw.) über das globale Netzwerk der Onion Router (OR) zu leiten. Wenn von Internetanwendungen des Benutzers, deren Datenströme über Tor gleitet werden, Verbindungsanfragen an den Onion Proxy gehen, schalten sich mehrere Onion Router zu Ketten zusammen und tunneln für den Benutzer und dessen Internetanwendung den Transport der Datenströme durch das Internet. Die Verschlüsselungs- und Anonymisierungsmechanismen von Tor sorgen dafür, dass dem Anbieter eines Internetdienstes bzw. Betreiber des Servers die dem Internetnutzer zugehörige IP-Adresse verborgen bleibt. Gleichzeitig sorgen die verschlüsselten und anonymisierenden Tor Tunnel im Idealfall dafür, dass einem Angreifer, der den ausgehenden Datenverkehr des Internetnutzers oder den Datenverkehr an Zwischenstationen des Internets und des Interdienstanbieters überwacht, verborgen bleibt, welche Ziel-Verbindungen ein Internetnutzer aufnimmt und damit, welche Inhalte oder Kontakte im Interesse des Internetnutzers liegen. Das bedeutet jedoch nicht, dass Tor vor allen Angriffen schützt, wenn ein Angreifer über genügend Ressourcen und Kapazitäten verfügt, um den globalen Datenverkehr des Internets und damit auch den Datenverkehr des gesamten Tor Netzwerks über Analysen des Datenverkehrs und die Anwendung von Techniken wie DPI zu überwachen.
Aufgrund des SOCKS basierten Designs kann der Onion Proxy und das Tor Netzwerk von allen Internetanwendungen zur Anonymisierung TCP basierter Internetdienste wie z. B. SSH, E-Mail oder P2P Dienste genutzt werden. Eine intensive P2P Nutzung setzt allerdings eine drastische Erhöhung der Kapazitäten des Tor Netzwerks voraus, d. h. eine große Anzahl von Onion Routern mit entsprechender Bandbreite und eine ausreichende Menge an Ausgangs Onion Routern, die Verbindungen zu P2P typischen Portnummern zulassen. Generell ist es jedem Onion Router Betreiber belassen, für welche Dienste er seinen Router öffnet. Auf der anderen Seite können Zielrechner Verbindungen von Ausgangs Onion Routern ablehnen, so dass es auch bei ausreichender Größe des Tor Netzwerks immer zu Verbindungsunterbrechungen kommen kann.
Die Onion Router bilden die Netzknoten (Nodes) des verteilten Tor Netzwerks, die sich miteinander über das Transport Layer Security (TLS) Verschlüsselungsprotokoll verbinden. TLS wird auch bei der Verbindung des lokalen Onion Proxy des Benutzers mit dem Eingangs Onion Router eingesetzt, d. h. die Verschlüsselung beginnt bereits auf dem ersten „Teilstück“ der gesamten „Route“ durch das Tor-Netz. Spezielle Netzknoten mit hohem „Vertrauensstatus“ übernehmen die Rolle von Verzeichnisservern, die von ihnen signierte Verzeichnisse speichern, die Daten bekannter Onion Router enthalten. Zu den Daten, die einen Onion Router beschreiben, gehören sein Kurzname und seine aktuelle IP-Adresse, der Status (aktiv/inaktiv), die Funktion, die er als Eingangs-, Mittelsmann- oder Ausgangs-Netzknoten (Entry, Middleman oder Exit Node) im Tor Netzwerk wahrnimmt, Weiterleitungsrichtlinien und die öffentlichen RSA Schlüssel. Nach jedem Start des Onion Proxy und in regelmäßigen Abständen kontaktiert der Onion Proxy des Benutzers mehrere Verzeichnisserver, um von den Verzeichnisservern ein aktuelles Verzeichnis zu allen Onion Routern zu erhalten, das bis zur nächsten Aktualisierung auf dem Rechner des Benutzers zwischengespeichert und nach jeder Aktualisierung durch das aktualisierte Verzeichnis ersetzt wird.
Neben den öffentlich bekannten Verzeichnisservern und den im Verzeichnis veröffentlichten Eingangs-, Mittelsmann- oder Ausgangs-Netzknoten existieren Bridge-Netzknoten und Bridge-Netzknoten, auf denen Verschleierungs-Proxymodule („Pluggable Transport Plugins“) laufen, die nicht im Verzeichnis veröffentlicht werden. Bridge-Knoten übernehmen – wie schon der Name andeutet – die Funktion von „Brücken“ zu einem Eingangs-Knoten des Tor-Netzwerks, während von den Verschleierungs-Proxymodulen der Tor Datenverkehr so manipuliert wird, dass er dem Datenverkehr unverfänglicher Protokolle wie XMPP ähnelt. Beide Netzknotentypen dienen dazu, die Erkennung und Blockierung der Verbindungen zwischen Tor Anwender und Tor Netzwerk in repressiven Regimen wie z. B. China, den eigenen Internetdienstanbieter oder die hausinterne IT-Abteilung zu unterlaufen, die dazu umfangreiche technische Überwachungs- und Kontroll-Infrastrukturen und Techniken wie Deep Packet Inspection einsetzen.
Aufbau von Tor Tunnels
Jeder Onion Router besitzt einen langlebigen Identitäts-Schlüssel. Mit dem Identitäts-Schlüssel signieren die Onion Router ihre TLS-Zertifikate und ihre Beschreibung, die sich im Verzeichnis wiederfindet und die Verzeichnisserver signieren die Verzeichnisse. Neben dem Identitäts-Schlüssel besitzt jeder Onion Router einen kurzlebigen Onion-Schlüssel, der in Zeitintervallen gewechselt wird.
Phase 1
Zu Beginn der Bildung einer Verbindungskette wählt der Onion Proxy aus dem Verzeichnis drei Onion Router: Der erste Onion Router (TOR-1) dient als Eingangs-, der zweite Onion Router (TOR-2) als Mittelsmann- und der letzte Onion Router (TOR-3) als Ausgangs-Netzknoten innerhalb der Verbindungskette aus Tor Routern. Werden Bridge Onion Router genutzt, wird zusätzlich ein Bridge Onion Router ausgewählt, der die Verbindung zum Eingangs-Netzknoten TOR-1 schaltet.
Die drei Onion Router werden zufällig zusammengestellt, so dass sich die Ketten ständig in ihrer Zusammensetzung ändern. Der Onion Proxy bildet direkt nach jedem Start einige Verbindungsketten auf „Vorrat“ und während seines Betriebs weitere Verbindungsketten. Jede Verbindungskette hat eine begrenzte Laufzeit, nach deren Ende die Verbindungskette verfällt und durch eine neue ersetzt wird. Während ihrer Laufzeit kann eine Verbindungskette für mehrere Datenströme verschiedener Internetanwendungen für Verbindungen zu verschiedenen Zielrechnern verwendet werden.
Phase 2
Der Onion Proxy vereinbart mit TOR-1 eine TLS verschlüsselte Verbindung. Dann sendet der Onion Proxy an TOR-1 eine Anfrage zur Herstellung einer Verbindung, die gleichzeitig Material zur Bildung eines gemeinsamen Sitzungsschlüssels per Diffie-Hellman-Schlüsselaustausch enthält. Der komplette Inhalt der Anfrage geht TOR-1 verschlüsselt mit dessen RSA Onion-Schlüssel über die TLS verschlüsselte Verbindung zu.
Phase 3
TOR-1 sendet an den Onion Proxy die Bestätigung der Verbindung zusammen mit Material für den gemeinsamen AES-128 Sitzungsschlüssel zurück, mit dem der Onion Proxy und TOR-1 anschließend die weiteren Daten verschlüsselt zueinander übertragen. Eigentlich handelt es sich um zwei symmetrische Schlüssel, die aus dem gemeinsam vereinbarten Schlüssel erzeugt werden: einen für die Verschlüsselung von Daten vom Onion Proxy an TOR-1 und einen Schlüssel für die Verschlüsselung von Daten von TOR-1 an den Onion Proxy.
Phase 4
Jetzt, wo eine verschlüsselte Verbindung zwischen dem Onion Proxy und TOR-1 aufgebaut ist, sendet der Onion Proxy an TOR-1 eine Aufforderung, die Verbindung von TOR-1 zu TOR-2 zu erweitern. Diese Aufforderung enthält wieder Material für gemeinsame Sitzungssschlüssel, aber diesmal für TOR-2 und wird deshalb mit dem Onion-Schlüssel von TOR-2 verschlüsselt.
Phase 5
TOR-1 baut seinerseits eine TLS verschlüsselte Verbindung zu TOR-2 auf und sendet darüber an TOR-2 die Aufforderung mit ihm eine Verbindung herzustellen und das an TOR-2 verschlüsselte Schlüsselmaterial vom Onion Proxy. Daten, aus denen Informationen hervorgehen würden, dass die Aufforderung und das Schlüsselmaterial vom Onion Proxy stammen, gehen nicht an TOR-2. TOR-2 besitzt also nur von TOR-1 Identifikationsdaten (IP-Adresse), der Onion Proxy bleibt TOR-2 unbekannt.
Phase 6
TOR-2 sendet an TOR-1 die Bestätigung der hergestellten Tor Verbindung zwischen TOR-2 und TOR-1 und das Material für die gemeinsamen Sitzungsschlüssel mit dem Onion Proxy. TOR-1 sendet an den Onion Proxy die Bestätigung, dass die Verbindung zwischen ihm und TOR-2 steht und das vom TOR-2 stammende Material für den gemeinsamen Sitzungschlüssel.
Phase 7
Die gleichen Vorgänge wie in Phase 4 - 6 wiederholen sich, ausgehend vom Onion Proxy, für den dritten und letzten Onion Router TOR-3: TOR-2 stellt per TLS verschlüsselter Verbindung eine Verbindung zu TOR-3 her. Der Onion Proxy und TOR-3 teilen sich gemeinsame Sitzungschlüssel. Wie bei Phase 5 bleibt TOR-3 TOR-1 und der Onion Proxy unbekannt, TOR-3 kennt nur TOR-2 und den Zielrechner, während der Zielrechner nur TOR-3 kennt.
Das Resultat
Vom Benutzer ausgehend, wurde mit dem Onion Proxy (OP) eine Verbindungskette aus drei Onion Routern – plus vorgeschaltetem Bridge Router bei Nutzung von Bridges – gebildet, deren Zusammensetzung periodisch und zufällig wechselt: mit TOR-1 als Eingang-, TOR-2 als Mittelsmann- und TOR-3 als Ausgang-Router. Der TOR-3 Ausgang-Router wird aus allen Ausgang-Routern danach ausgewählt, ob er den Port anbietet, der für die Inanspruchnahme des betreffenden Protokolls bzw. Dienstes des Zielrechners benötigt wird – zum Beispiel Port 80 für HTTP Verbindungen zu einem Webserver. Für alle Verbindungen, sowohl zwischen dem Onion Proxy des Benutzers und TOR-1 oder dem Bridge Router, als auch zwischen den Onion Routern wird zunächst eine TLS verschlüsselte Verbindung aufgebaut, über die Schlüsselvereinbarungen und Datentransfers laufen. Jeder Onion Router erweitert die Verbindungskette Schritt für Schritt zum nächsten Onion Router bis die Dreier-Kette steht. Dadurch „kennt“ jeder Onion Router nur den unmittelbar vorangehenden und nachfolgenden Rechner. Nur der Onion Proxy bzw. der Benutzer „kennt“ alle beteiligten Onion Router. Mit jeder schrittweisen Erweiterung wird gleichzeitig zwischen dem Onion Proxy des Benutzers und jedem Onion Router ein separater gemeinsamer Sitzungsschlüssel für die spätere Verschlüsselung der Datenströme vereinbart und zwischengespeichert.
Transport über Tor Tunnel
Phase 1
Eine Internetanwendung (z. B. Webbrowser, Instant Messaging, E-Mail, P2P Client) die mit einer SOCKS-Schnittstelle ausgestattet oder in einen SOCKS-Wrapper eingebunden ist, sendet seine Datenpakete, die für einen bestimmten Zielrechner bestimmt sind, an den Onion Proxy des Benutzers. Je nachdem, welche SOCKS Version die Internetanwendung unterstützt und wie SOCKS in der Internetanwendung implementiert ist, führt die Internetanwendung zuvor die Namensauflösung des Domainnamens des Zielrechners selbst durch und übergibt dem Onion Proxy die IP-Adresse des Zielrechners oder überlässt die Namensauflösung vollständig dem Ausgang-Router.
Phase 2
Der Onion Proxy des Benutzers verschlüsselt den Datenstrom an den Zielrechner mit dem Sitzungsschlüssel des TOR-3 Ausgang-Routers (grün). Das Resultat wird anschließend mit dem Sitzungsschlüssel des TOR-2 Mittelsmann-Routers (blau) und abschließened mit dem Sitzungsschlüssel des TOR-1 Eingang-Routers (rot) verschlüsselt. Um den Kern der eigentlichen Daten legen sich also schalenförmig in absteigender Reihenfolge Verschlüsselungsschichten für alle Onion Router.
Phase 3
Der verschlüsselte Datenstrom wird über die TLS verschlüsselte Verbindung (gelb) dem TOR-1 Eingang-Router zugestellt. Da die äußerste Verschlüsselungsschicht mit dem Sitzungsschlüssel erstellt wurde, den auch TOR-1 besitzt, kann sie TOR-1 entschlüsseln und entfernt damit eine der Verschlüsselungsschalen. Eine weitere Entschlüsselung kann TOR-1 nicht durchführen, da die Verschlüsselungsschicht von TOR-2 folgt, die ja mit einem anderen Sitzungsschlüssel erzeugt wurde. Der Mittelsmann-Router TOR-2 ist deshalb der nächste Netzknoten, an den TOR-1 das verschlüsselte Datenpaket weitersendet. TOR-2 führt dann die gleiche Entschlüsselung seiner Verschlüsselungsschicht durch und sendet es an den Ausgang-Router TOR-3 weiter, der die letzte Verschlüsselungsschicht um den Datenstrom des Benutzers entfernt.
Phase 4
Der Ausgang-Router TOR-3 führt die Namensauflösung des Domainnamens des Servers durch, falls sie nicht bereits über die Internetanwendung des Benutzers erfolgte und sendet bzw. empfängt die Datenströme des Benutzers und des Servers. Sofern der Server keine TLS Verschlüsselung anbietet oder der Benutzer des Onion Proxy nicht die verschlüsselte Protokoll-Variante des nachgefragten Dienstes angefragt hat, erfolgt die Verbindung zwischen dem Ausgangsrouter TOR-3 und dem Server unverschlüsselt und alle Daten werden in Klartextform übertragen.
Übertragene Daten in unverschlüsselter Klartextform können auf der Strecke TOR-3 ↔ Server und auf dem TOR-3 Onion Router selbst abgefangen, mitprotokolliert und eingesehen werden. Aus diesem Grund ist es angeraten, für unverschlüsselte Verbindungen, über die sensible Daten übertragen werden, Tor nicht zu verwenden und bei verschlüsselten Verbindungen darauf zu achten, dass die Identität des Servers über Zertifikate, Fingerprints usw. überprüft wird.
Zwei anschauliche Beispiele, die Gefahren bei der unsachgemäßen Nutzung von Internetanwendungen und Tor aufzeigen, bieten die Heise Meldungen Anonymisierungsnetz Tor "abgephisht" vom 10.09.2007 und Anonymisierungsnetz Tor "abgephisht" Teil 2 vom 21.11.2007. Leider hat insbesondere das Experiment, über das in der ersten Meldung berichtet wurde und das breite Presseaufmerksamkeit erregte, zu Falschaussagen geführt, deren Aussage es ist, Tor „hätte Löcher“ oder wäre „nicht vertrauenswürdig“, die auf Unkenntnis der Tor Funktionen und Strukturen zurückzuführen sind. Jede unverschlüsselte und nicht authentifizierte Verbindung über das Internet mit Anwendungen, deren Absicherung durch den Anwender ungenügend durchgeführt wird, kann zu Daten- und Identitätsdiebstahl, erfolgreichen Phishing-Angriffen und abgefangenen Daten beitragen.
Phase 5
Der Datenstrom der Antworten des Servers wird über die Tor Verbindungskette schrittweise zurück an den Benutzer gesendet. Dafür verschlüsselt der TOR-3 Ausgang-Router die Daten mit seinem Sitzungsschlüssel, den er mit dem Onion Proxy des Benutzers vereinbart hatte und sendet den verschlüsselten Datenstrom über die TLS verschlüsselte Verbindung zu TOR-2 zurück, der eine weitere Verschlüsselung mit seinem Sitzungsschlüssel durchführt und das Datenpaket an TOR-1 weiterschickt. TOR-1 legt mit seinem Sitzungsschlüssel die letzte Verschlüsselungsschicht um den bereits verschlüsselten Datenstrom und leitet ihn über die TLS verschlüsselte Verbindung mit dem Onion Proxy des Benutzers an den Onion Proxy aus, wo alle Verschlüsselungsschichten wieder entschlüsselt und der freigelegte Klartext-Datenstrom des Servers an die betreffende Internetanwendung des Benutzers übergeben wird.