Ich weiß, dass dies bereits beantwortet wurde, aber viele wichtige Details wurden ausgelassen.
Funktionsweise des Zwiebel-Routings
Das Zwiebel-Routing ist eine Anonymität Technik, bei der ein Pfad zufällig durch einen Servercluster ausgewählt wird, sodass jede Verbindung einen anderen Weg einschlägt. Die spezifischen Relais für Guard, Middle und Exit werden vom Tor-Client zufällig ausgewählt. Der Pfad vom Wachmann zum Ausgang wird als Schaltung bezeichnet, und der Tor-Client merkt sich dies. Der Schutz wird einmal ausgewählt und bleibt für lange Zeit gleich (wie unten erläutert), während sich die Mitte und der Ausgang in regelmäßigen Abständen ändern (entweder alle zehn Minuten oder wenn eine neue Verbindung hergestellt wird). Der unvorhersehbare Pfad und die große Anzahl von Relais zur Auswahl verbessern die Anonymität erheblich.
(Quelle: torproject.org) sub>
Wenn Sie Daten über Tor senden, werden die Daten mit drei Schlüsseln verschlüsselt. Jede Ebene gibt das nachfolgende Relay an, das verwendet werden soll (wie von Ihrem Client zufällig ausgewählt):
- Eine Anwendung wie Tor Browser fordert eine Webseite über Tor an und teilt dies dem Client mit. Diese Anforderung erfolgt in Ihrem lokalen Netzwerk mithilfe des SOCKS5-Protokolls.
- Der Tor-Client verschlüsselt Daten mit drei Schlüsseln und teilt jeden Schlüssel mit einem anderen zufälligen Relay. In jeder Schicht ist auch die Adresse des nächsten Relais verschlüsselt. Dies wird dann an die Wache gesendet.
- Die Wache empfängt Daten und entfernt die dritte Schicht mit ihrem Schlüssel. Die Daten werden an das in der dritten Schicht, dem mittleren Relais, angegebene Relais weitergeleitet.
- Das mittlere Relais empfängt Daten und entfernt die zweite Schicht mit seinem Schlüssel. Die Daten werden an das Relais weitergeleitet, das in der zweiten Schicht, dem Exit, angegeben ist.
- Der Exit empfängt Daten und entfernt die letzte (erste) Schicht mit ihrem Schlüssel. Es überprüft den Zielstandort und leitet die jetzt vollständig entschlüsselten Daten an ihn weiter.
- Der Zielstandort empfängt die Daten und sendet eine Antwort an die Ursprungs-IP, den Exit.
Jetzt wurde der Datenverkehr erfolgreich an sein Ziel gesendet, aber er muss zurück. Tor-Relais behalten im Speicher, welches Relais mit ihm kommuniziert. Wenn es also eine Antwort von diesem Relais erhält, weiß es, wohin es gesendet werden soll. Auf diese Weise weiß das mittlere Relais, dass der Wachmann ihn gebeten hat, Daten an den Ausgang zu senden, und merkt sich dies. Wenn derselbe Ausgang ihm Daten zurückgibt, kann er diese an den Wachmann weiterleiten:
- Der Ausgang empfängt die Antwort, fügt das Ziel des vorherigen Relais (das mittlere Relais) hinzu, verschlüsselt es mit seinem Schlüssel und sendet es an das mittlere Relais.
- Das mittlere Relais empfängt dies und fügt das Ziel von hinzu das vorherige Relais (der Wächter) und fügt eine weitere Verschlüsselungsebene mit seinem Schlüssel hinzu, bevor es an den Wächter gesendet wird.
- Der Wächter empfängt dies und fügt eine dritte Verschlüsselungsebene mit seinem Schlüssel hinzu, bevor er die Daten weitergibt Sie, der Tor-Client.
- Der Tor-Client empfängt dies und entfernt alle Verschlüsselungsebenen. Es gibt dann die Antwort auf jede angeforderte Anwendung (z. B. Tor Browser).
Dies ist das ursprüngliche Konzept hinter Zwiebel-Routing. All dies geschieht in ein oder zwei Sekunden.
Wer kann was sehen?
Ich habe diese Antwort tatsächlich geschrieben weil niemand mit dem obligatorischen EFF-Diagramm auf Tor verbunden ist. Dies zeigt jeden Punkt von Interesse und was ein gegebener Gegner beobachten kann:
Aus der Sicht der Relais sind drei Dinge wahr:
- Der Wachmann weiß, wer Sie sind (Ihre IP), aber nicht, was Sie tun (Ihr Ziel).
- Der Ausgang weiß, was Sie tun, aber nicht, wer Sie sind.
- Der mittlere Knoten weiß nichts über Sie.
Die Anonymität beruht auf der Tatsache, dass niemand wissen kann, wer Sie sind und was Sie tun.
Angriffe der Verkehrsanalyse gegen Tor
Um mit Tor dekanonymisiert zu werden, müssen eine Entität, die weiß, wer Sie sind, und eine Entität, die weiß, was Sie tun, zusammenarbeiten, ohne dass Sie direkt angegriffen werden (Software-Exploits, Backdoor-Hardware, OPSEC-Fehler). In dem Diagramm wird dieser Gegner als NSA bezeichnet. Die schwarz gepunktete Linie zeigt die gemeinsame Nutzung von Daten. Dies bedeutet, dass die genauen Timing-Informationen verwendet werden können, um Sie zu korrelieren. Dies wird als Verkehrsanalyse-Angriff bezeichnet und ist ein Risiko, wenn Ihr Gegner beide Enden der Verbindung überwacht. Tor hat nur eine begrenzte Fähigkeit, sich davor zu schützen, aber zum Glück ist es oft genug, da es so viel Verkehr gibt, in den man sich einfügen kann. Betrachten Sie die folgende Zeitleiste von Ereignissen:
- ISP1 sieht, dass
203.0.113.42
512 verschlüsselte Bytes (253 unverschlüsselt) von Daten zu t + 0 sendet. - ISP2 sieht, dass
example.com
eine 253-Byte-Anforderung für /foo.html
bei t + 4 empfängt. - ISP2 sieht
example.com
Senden einer 90146-Byte-Antwort bei t + 5. ISP1 sieht, dass 203.0.113.42
eine 90424-verschlüsselte Byte-Antwort (90146 unverschlüsselt) bei t + 9 empfängt.
ISP1 ist ein beliebiger ISP zwischen Ihnen und dem Wachmann, und ISP2 ist ein beliebiger ISP zwischen dem Ausgang und dem Ziel. Wenn all dies überwacht werden kann und ISP1 und ISP2 zusammenarbeiten, kann man bei ausreichender Berechnung schließen, dass auf die IP-Adresse 203.0.113.42 zugegriffen wurde, auf example.com/foo.html
. Tor macht dies in einigen Punkten schwieriger. Erstens verringern persistente Wachen die Wahrscheinlichkeit, dass ein Gegner die Schritte 1 und 4 beobachten kann, indem sie dem Netzwerk eine große Anzahl böswilliger Wachen hinzufügen. Zweitens sendet Tor Datenverkehr in Zellen mit jeweils 512 Bytes (oder zumindest früher. Es sind jetzt 514 Bytes), sodass Schritt 1 das Senden von 512 Bytes und dennoch Schritt umfassen würde 2 würde immer noch 253 empfangene Bytes anzeigen. Drittens erhöht die Anzahl der Sprünge, die Tor durchläuft, den Jitter in der Latenz. Aus diesem Grund unterscheidet sich jeder nachfolgende Zeitstempel um eine kleine, aber zufällige Zeit. Dies macht es schwierig, andere Verbindungen, die eine ähnliche Datenmenge zu einem ähnlichen Zeitpunkt übertragen, von Ihrer Verbindung zu unterscheiden.
Es gab viele akademische Angriffe gegen Tor, die auf Verkehrsanalysen beruhen, aber immer eine geringe voraussetzen Welt, in der alle Latenzen fest und deterministisch sind. Dies sind die Angriffe, über die in den Medien berichtet wird, obwohl sie nicht für das eigentliche Tor-Netzwerk in einer Welt gelten, in der jedes Netzwerk voller Rauschen ist.
Angriffe auf die Verkehrsanalyse gegen einen Proxy
Diese Art von Angriff ist gegen Tor schwer durchzuführen, da ein Gegner möglicherweise nicht auf ISP1 und ISP2 zugreifen kann. Selbst wenn dies der Fall ist, reicht die Infrastruktur eines von ihnen möglicherweise nicht aus, um hochauflösende Zeitstempel aufzuzeichnen (z. B. aufgrund von NetFlow-Datensätzen mit reduzierter Granularität), und ihre internen Uhren können geringfügig abweichen. Mit einem Proxy ist dieser Angriff jedoch viel einfacher durchzuführen. Dies ist auch dann ein Problem, wenn Sie dem Proxy-Anbieter vollständig vertrauen. Betrachten Sie diese alternative Zeitleiste von Ereignissen, in der ISP1 den ISP des Proxy-Dienstes selbst darstellt:
- ISP1 sieht, dass
203.0.113.42
253 Datenbytes bei t + 0 sendet. - ISP1 sieht, dass der Proxyserver eine 253-Byte-Anforderung an
example.com für /foo.html
bei t + 1.
- ISP1 sieht, dass
example.com
eine 90146-Byte-Antwort bei t + 2 sendet. - ISP1 sieht, dass
203.0.113.42
eine 90146-Byte-Antwort bei t + 3 erhält.
Mit diesen Informationen liegt alles in den Händen von ISP1 Es ist ziemlich einfach zu schließen, dass 203.0.113.42 example.com/foo.html
angefordert hat. Es gibt kein Auffüllen und praktisch keinen Jitter (da die Verzögerung nur so lange dauert, bis der Proxy-Dienst die Anforderung intern weiterleitet). Aus diesem Grund weiß dieser einzelne ISP sowohl, wer Sie sind als auch was Sie tun , und alles, was er tun muss, ist die Tatsache zu verbinden, dass sie von derselben Person stammen. Einfach. Dies ist der wichtigste technische Nachteil von Proxys, selbst wenn ihre oft skizzenhafte Natur und die Geschichte der schlechten Ehrlichkeit ignoriert werden.