Unhidden Services
Deanonymisierung von Tor Hidden Services verhindern
Das Tor-Netz verspricht Nutzern und Hidden-Service-Anbietern ein hohes Maß an Anonymisierung: Indem Daten mehrfach verschlüsselt werden und Umwege über mindestens drei Tor-Knoten nehmen, soll niemand die Quelle identifizieren können. Ohne besondere Vorsichtsmaßnahmen riskieren Hidden-Service-Betreiber jedoch, trotzdem enttarnt zu werden.
Die Zwiebel ist nicht zufällig das Symbol des Tor-Projekts: Alle Daten werden mehrfach verschlüsselt, bevor sie auf die Reise durchs Tor-Netzwerk über bis zu sechs Knoten in aller Welt zum Ziel befördert werden. Da jeder Knoten nur seine Nachbarn kennt, aber nicht den Inhalt der verschlüsselten Datenpakete, sollen sich Inhalte und Urheber nicht in Verbindung bringen lassen. Während Anwender mit Tor-Browser hinter mindestens drei Knoten gut geschützt sind, laufen Hidden-Service-Anbieter Gefahr, enttarnt zu werden, indem etwa Behörden oder staatliche Angreifer Eigenheiten des Tor-Netzes und ihre gesetzlichen Befugnisse ausnutzen. Für Hidden-Service-Betreiber sind deshalb zusätzliche Vorsichtsmaßnahmen erforderlich.
Grundsätzlich laufen Tor-Verbindungen, egal ob Tor-Browser oder Hidden Service, immer über mindestens drei zufällig ausgewählte Knoten des Tor-Netzes. Benutzt etwa ein Anwender den Tor-Browser, um anonym die c’t-Website zu besuchen, sucht sich der Tor-Browser drei Knoten aus dem weltweiten Tor-Netzwerk heraus: Einen Entry Node, mit dem der Tor-Browser direkt kommuniziert, einen Middle Node, an den der Entry Node die Daten weiterleitet, und einen Exit Node, der die Daten vom Middle Node erhält und schließlich den c’t-Webserver kontaktiert. Die Abbildung rechts veranschaulicht diese Verbindungsart zu einem Webserver außerhalb des Tornetzes.
Knotenkunde
Die Einstufung als Entry, Middle und Exit Node ist nicht willkürlich, sondern wird von den Knotenbetreibern und dem Tor-Netz vorgenommen. So gibt es in Deutschland aufgrund der Rechtsprechung zu Störerhaftung nur wenige Exit Nodes. Zum Entry Node wird ein Tor-Knoten nur, wenn der Betreiber das möchte und nach einer Uptime von mindestens 24 Stunden. Für Middle Nodes, die die Daten ähnlich wie ein Proxy durchleiten, gibt es keine Mindestanforderungen – einen solchen Knoten kann jeder selbst aufsetzen und betreiben.
Der c’t-Webserver erhält die Anfrage vom Exit Node und kennt somit nur dessen IP-Adresse – wer wirklich dahinter steckt, verbirgt das Tor-Netz durch die dreifache verschlüsselte Weiterleitung. Wollte ein Angreifer oder eine Behörde die Identität des Anwenders ermitteln, könnte sie durch Abhören der Verbindung zunächst die IP-Adresse des Exit Node ermitteln. Anschließend müsste man die Leitung des Exit Node anzapfen und beobachten, welche Daten beim Node eingehen und welche er wohin versendet.
Da es sich bei Tor um ein Low Latency Network handelt, Daten also möglichst schnell an den nächsten Knoten weitergeleitet werden, kann ein Angreifer anhand des Datenumfangs und der zeitlichen Nähe von Empfang und Wiederaussenden Rückschlüsse darauf ziehen, wohin die Daten weitergeleitet wurden. Diese Form nennt man Korrelationsangriff, bei der nach Zusammenhängen im Zu- und Abfluss der Daten gesucht wird. Das funktioniert nicht nur bei einer weltweiten Überwachung aller Tor-Knoten, sondern auch bei einzelnen Nodes innerhalb der Knotenkette, indem man als Angreifer selbst Tor-Knoten bereitstellt.
Auf diese Weise müsste sich ein Angreifer vom Exit Node über den Middle Node zum Entry Node weiterhangeln, um schließlich den Anwender identifizieren zu können. Erschwert wird ein solcher Angriff durch die Vielzahl an Tor-Knoten weltweit, deren Datenverkehr ein Angreifer überwachen müsste, und durch die Vielzahl der Anwender, die gleichzeitig Daten übertragen. Da die Knoten häufig in verschiedenen Ländern liegen, ist die Hürde für die Enttarnung von Tor-Benutzern selbst für staatliche Ermittler sehr hoch.
Knoten wechsle dich
Ein weiterer Mechanismus soll die Rückverfolgung zusätzlich erschweren: Tor nutzt eine Knotenkette nur zehn Minuten lang, danach werden andere Knoten ausgewählt. Offene Verbindungen, etwa zu einem Chat-Server, einem Proxy oder Websocket, werden aber nicht abgebrochen und neu aufgebaut. So kann eine Verbindung je nach Dienst auch über Tage unverändert bestehen, was Angreifern die Rückverfolgung ermöglichen könnte.
Auch der automatische Wechsel der Knoten hat Nachteile: So könnte ein Angreifer eine große Anzahl überwachte Entry, Middle und Exit Nodes bereitstellen. Durch den häufigen Wechsel der Knoten ist die Wahrscheinlichkeit groß, dass Tor irgendwann zufällig drei Knoten des Angreifers als Knotenkette auswählt und damit den Anwender enttarnt. Besonders kritisch ist der Entry Node, denn dieser kennt ja die öffentliche IP-Adresse des Anwenders, worüber sich der Internetzugang zurückverfolgen lässt. Lasse Øverlier und Paul Syverson beschrieben diesen Angriff 2006 auf der Black-Hat-Konferenz [1].
Deshalb verwendet Tor heute sogenannte Entry Guards: Das sind lange aktive Entry Nodes, die im Tor-Netz ein gewisses Vertrauen genießen. Diese Entry Guards nutzt Tor dann über Wochen, sofern sie nicht offline gehen – Middle Node und Exit Node werden aber weiterhin regelmäßig ausgetauscht. So haben es auch staatliche Angreifer schwer, Anwendern kurzzeitig überwachte oder anderweitig kompromittierte Entry Nodes unterzujubeln und sie so zu enttarnen.
Hidden Services angreifen
Ruft man statt einer Website außerhalb des Tor-Netzes die Website einer Onion-Domain auf, etwa den Heise Tippgeber unter sq4lecqyx4izcpkp.onion, verlängert sich die Knotenkette auf insgesamt sechs Tor Nodes. So baut der Tor-Browser zunächst, nachdem er beim Directory Server die zuständigen Introduction Points erfragt hat, eine Kette aus Entry Node und Middle Node auf. Da die Verbindung das Tor-Netz nicht verlässt, kommt als dritter Knoten kein Exit Node zum Zug, sondern ein weiterer Middle Node – der als Rendezvous-Punkt (Rendezvous Point, RP) mit dem Server dient. Auch der Server baut eine Knotenkette aus Entry Node und zwei Middle Nodes auf und verwendet als letzten Knoten denselben Rendezvous-Punkt wie der Client. Die Abbildung auf Seite 150 unten zeigt eine solche Verbindung zu einem Hidden Service.
Damit der Server mitgeteilt bekommt, wer der Rendezvous-Knoten für die Verbindung zum Client ist, gibt es sogenannte Introduction Points (IP). Auch das sind Middle Nodes, zu denen der Server eine Kette aus drei Knoten unterhält. Der Client baut seinerseits eine Verbindung zu einem Introduction Point auf und teilt dem Server den Rendezvous Point mit. Welche Introduction Points für eine Onion-Domain zuständig sind, erfährt der Client von den Directory Servern – quasi dem DNS-System des Tor-Netzes.
Für einen Angreifer wird es dadurch noch schwieriger, den Client zu identifizieren: Der gesamte Datenaustausch erfolgt verschlüsselt über das Tor-Netz, und selbst wenn der Angreifer den Hidden Service bereits aufgespürt hätte, müsste er die Datenströme immer noch über insgesamt sechs Knoten zurückverfolgen. Wenn ein Angreifer die Introduction Points unter seiner Kontrolle hätte, über die der Client ja den Rendezvous-Knoten für die Verbindung bekannt gibt, müsste er eine Kette von drei Knoten zurückverfolgen. Hinzu kommt, dass der Angreifer erst einmal den Anwender auf seinen Hidden Service locken und dort so lange halten müsste, bis er die Verbindung zurückverfolgt hat.
Für den Betreiber eines Hidden Service sieht es mit dem Identitätsschutz wesentlich schlechter aus. Die ständige Verfügbarkeit und der Rendezvous-Knoten bieten Angreifern eine große Angriffsfläche, um Datenströme zurückzuverfolgen.
Auskorreliert
So kann ein Angreifer problemlos jederzeit und in frei wählbaren Abständen große und kleine Dateien des Hidden Service abrufen oder Verbindungen auf- und abbauen, was einen Korrelationsangriff stark vereinfacht. Schlimmer noch: Indem er einen modifizierten Tor-Daemon verwendet und einige eigene Middle Nodes betreibt, kann er den Hidden Service leicht bis zum Entry Node zurückverfolgen und dann über den vereinfachten Korrelationsangriff oder durch gezielte Angriffe auf den Entry Node die IP-Adresse des Hidden-Service-Betreibers ermitteln.
Und das funktioniert so: Der Angreifer stellt zunächst mehrere Middle Nodes bereit, die er überwacht. Durch einen Patch [2] des Tor-Daemons und eine angepasste Konfigurationsdatei sorgt er dafür, dass Tor nur noch einen statt drei Knoten für die Verbindung verwendet, und zwar einen seiner eigenen Middle Nodes. Somit wird der eigene Knoten automatisch zum Rendezvous Point, mit dem sich der zu enttarnende Hidden Service anschließend über einen Entry Node und zwei Middle Nodes verbindet. Die Abbildung rechts zeigt den Angriffsweg.
Node in the Middle
Indem der Angreifer immer neue Verbindungen zum Hidden Service öffnet, die den eigenen Rendezvous Point verwenden, sucht sich der Tor-Daemon des Hidden Service laufend neue Middle Nodes aus dem weltweiten Pool aus. Allerdings ist der letzte Knoten der Kette, der Rendezvous Point, vom Angreifer vorgegeben, und der Entry Node bleibt ebenfalls quasi persistent – sodass sich nur die beiden Middle Nodes ändern. Jetzt muss der Angreifer nur abwarten, bis der Hidden Service zufällig einen der vom Angreifer bereitgestellten Nodes als ersten Middle Node verwendet – bei etwa 7000 Tor Nodes, die durchschnittlich zur Verfügung stehen, ein durchaus absehbares Ereignis. So kann der Angreifer den Entry Node des Hidden Service identifizieren.
Um über einen Entry Node den Betreiber des Hidden Service zu identifizieren, könnte ein staatlicher Angreifer versuchen, im Rahmen seiner gesetzlichen Möglichkeiten den Datenverkehr des Entry Node zu überwachen um dann durch Abhören der Leitungen über den vereinfachten Korrelationsangriff den Internetanschluss des Betreibers zu ermitteln.
Alternativ könnte er etwa per DDoS-Angriff versuchen, den Entry Node des Hidden Service zu überlasten – sodass sich der Hidden Service einen neuen Entry Node sucht, weil der bisherige nicht mehr erreichbar ist. Hat der Betreiber keine Vorkehrungen getroffen, wählt der Tor-Daemon zufällig einen neuen Entry Node – und dies könnte ein vom Angreifer bereitgestellter Node sein, womit der Betreiber wieder identifiziert wäre.
Abgewehrt
Eine Abwehrmaßnahme ist, dem Tor-Daemon des Hidden Service mit einer Liste fest vorgegebener, vertrauenswürdiger Entry Guards zu konfigurieren – vorzugsweise im „verfeindeten“ Ausland, wo es unwahrscheinlich ist, dass Behörden oder staatliche Angreifer den Node überwachen dürfen. Für türkische Dissidenten etwa wären deutsche Entry Guards interessant, da bei der momentanen politischen Lage nicht davon auszugehen ist, dass türkische Geheimdienste oder Polizeibehörden von ihren deutschen Kollegen Daten ausgehändigt bekämen. Wer in Deutschland befürchtet, von den Behörden überwacht zu werden, sollte sich eher einem russischen oder südamerikanischen Entry Guard anvertrauen.
Eine Knoten-Suchmaschine finden Sie auf atlas.torproject.org, dort erhalten Sie etwa mit dem Suchstring flag:guard country:de eine Liste von deutschen Entry Guards. Ein Beispiel ist torasanhetzner des deutschen Hosters Hetzner, den notwendigen Fingerprint des Node finden Sie in den Details auf Atlas. Den Fingerprint tragen Sie in der Tor-Konfigurationsdatei /etc/tor/torrc ein:
EntryNodes 59023E9AE34092677C:
.401B6AF7E316D31D24EBA0
In der gleichen Weise gehen Sie vor, wenn Sie russische Entry Guards verwenden wollen. Sie sollten sich mindestens drei Entry Guards aussuchen, um sicherzustellen, dass Ihr Hidden Service nicht deshalb offline ist, weil alle Entry Guards Ihrer Liste offline sind. Die Fingerprints der Nodes reihen Sie einfach durch Komma getrennt hintereinander.
Ganz wartungsfrei ist die Liste allerdings nicht: Auch Entry Guards sind nicht unbedingt hochverfügbar, außerdem müssen Sie die Liste ständig dem aktuellen politischen Klima anpassen. Sollten etwa künftig Russen und Amerikaner kooperieren, wäre dies für russische Dissidenten, die amerikanische Entry Guards verwenden, brandgefährlich.
Deshalb ist es die beste Vorsichtsmaßnahme, einen Hidden Service gar nicht erst am eigenen Internetanschluss oder auf einem unter eigenem Namen angemieteten Server in Betrieb zu nehmen. Ein Raspberry Pi Zero W als digitales Flugblatt etwa nutzt ein öffentliches WLAN für seine Internetverbindung und lässt sich – Handschuhe beim Zusammenbau vorausgesetzt – nicht zum Urheber zurückverfolgen. Wie Sie selbst ein solches Flugblatt bauen, erklärt der Artikel auf Seite 144. Anonym angemietete und etwa per Bitcoin bezahlte Server sind aber auch eine Alternative. (mid@ct.de)