Tor: Protokoll für versteckte Dienste


Tor macht es Benutzern möglich, den Ort der Dienste zu verstecken. Dies kann die Publikation von Webseiten oder ein Server für Instant-Nachrichten wie auch anderes sein. Andere Nutzer können sich über so genannte Rendezvouspunkte mit den versteckten Diensten verbinden ohne deren Identität zu kennen. Die Seite beschreibt die technischen Details zu dem Protokoll. Eine eher praktische Anleitung kannst du auf der Seite Versteckte Dienste konfigurieren finden.

Ein versteckter Service muss seine Existenz im Tor-Netzwerk bekannt machen, bevor er kontaktiert werden kann. Daher wählt der Service zufällig einige Tor-Server aus, baut Verbindungsstrecken auf und bittet diese, als Einführungspunkte (introduction point) zu agieren. Beachte bitte, dass in den folgenden Abildungen die grünen Verweise eher Verbindungsstrecken von mehreren beteilten Rechnern meint, als direkte Verbindungen. Das macht es für jeden unmöglich, den Einführungspunkt mit der IP-Adresse des versteckten Servers in Verbindung zu bringen. Dies ist wichtig, denn obwohl die Einführungspunkte und andere die Identität des versteckten Services (öffentlicher Schlüssel) kennen, dürfen sie nicht dessen Ort (IP-Adresse) erfahren.

Tor hidden service step one

Im zweiten Schritt generiert der versteckte Service einen Deskriptor. Dieser enthält die Adresse des Einführungspunktes und seinen öffentlichen Schlüssel. Der versteckte Service signiert die Informationen mit seinem privaten Schlüssel. Es speichert den Deskriptor bei Verzeichnisservern, indem er wieder eine Verbindungsstrecke nutzt. Wenn nun ein Client die Adresse XYZ.onion bei einem Verzeichnisserver nachfragt, wird der Deskriptor dort gefunden. Die Adresse XYZ ist dabei ein 16 Zeichen langer Name, der in eindeutiger Weise vom öffentlichen Schlüssel des versteckten Service abgeleitet wurde. Obwohl dieses Verfahren zunächst unpraktisch aussieht, dient es einem wichtigen Ziel: Jedermann – auch Einführungspunkte, Verzeichnisserver und natürlich Tor-Proxys – kann prüfen, ob sie wirklich mit dem versteckten Dienst reden. Nach diesem Schritt ist der versteckte Dienst bereit.

Auf den ersten Blick ist die Benutzung einen generierten Servicenamens unpraktisch. Es dient jedoch einem wichtigen Ziel: Jeder – auch die Einführungspunkte, Verzeichnisserver und natürlich auch die Clientprogramme – können feststellen, ob sie mit dem richtigen Dienst kommunizieren. Schaue dir dazu Zookos Vermutung an. Sie besagt, dass du bei der Wahl der Eigenschaften dezentralisiert, sicher und menschenlesbar maxmimal zwei Eigenschaften ereichen kannst. Vielleicht wird irgendwann jemand das Design der Petnamen implementieren?

Tor hidden service step two

Ein Programm, welches sich mit dem versteckten Dienst verbinden möchte, muss zuerst von der Onionadresse wissen. Danach kann sich das Programm verbinden. Es lädt den Deskriptor von den Verzeichnisservern herunter. Wenn ein Deskriptor existiert (Der Dienst könnte auch offline sein oder ein Fehler in der Onionadresse ist möglich.), baut der Client eine Strecke zu einem Tor-Server auf und bittet es, als Rendezvouspunkt zu agieren. Dazu teilt er ihm ein einmaliges Geheimnis mit.

Tor hidden service step three

Neben dem Aufbau der Verbindung zum Rendezvouspunkt muss das Clientprogramm eine Nachricht an den Einführungspunkt erstellen (verschlüsselt mit dem öffentlichen Schlüssel des versteckten Dienstes.). Diese Nachricht schließt die Adresse des Rendezvouspunktes und das Geheimnis ein. Das Programm sendet die Nachricht an einen der Einführungspunkte und bittet, diese an den versteckten Dienst zu leiten. Wieder wird alle Kommunikation über Verbindungsstrecken im Tor-Netzwerk abgewickelt. Damit wird die Anonymität des Clients gesichert.

Tor hidden service step four

Der versteckte Dienst entschlüsselt die Nachricht des Clienten und findet dort die Adresse des Rendezvouspunktes sowie das Geheimnis. Der Dienst baut eine Strecke zum Rendezvouspunkt auf und sendet das Geheimnis in einer Rendezvousnachricht.

An diesem Punkt ist es besonders wichtig, dass der versteckte Dienst dieselben Knoten zum Anlegen neuer Strecken verwendet. Sonst könnte ein Angreifer einen eigenen Server betreiben und den versteckten Dienst zwingen, eine Anzahl an Verbindungsstrecken über ihn auszurichten. Über eine Analyse der Laufzeiten der Internetpakete kann man so die IP-Adresse des Dienstes herausfinden. Der Angriff wurde von Øverlier und Syverson in der Veröffentlichung "Locating Hidden Servers" beschrieben.

Tor hidden service step five

Im letzten Schritt informiert der Rendezvouspunkt den Clienten über den erfolgreichen Verbindungsaufbau. Danach können sowohl Client wie auch der versteckte Service ihre Verbindungsstrecken zum Rendezvouspunkt nutzen, um miteinander zu kommunizieren. Der Rendezvouspunkt leitet die Nachrichten vom Client zum Service und zurück weiter.

Eine der Gründe, nicht eher aufgebaute Strecken zu nutzen, ist die Tatsache, dass kein einzelner Server verantwortlich für einen bestimmten versteckten Dienst sein soll. Darum lernt der Rendezvouspunkt nie die Identität des versteckten Dienstes kennen.

Im Allgemeinen besteht die komplette Verbindung zwischen dem Client und dem versteckten Dienst aus sechs Tor-Servern. Drei wurden vom Client und drei vom versteckten Dienst gewählt.

Tor hidden service step six

Es gibt detailliertere Beschreibungen zu dem Protokoll als diese Seite. Schaue dir hierzu die Designbeschreibung von Tor und die Rendezvous-Spezifikation an. Dort findest du genauere Informationen.


"Tor" und das "Onion Logo" sind registrierte Warenzeichen der The Tor Project, Inc. Außer wenn es anderweitig erwähnt ist, ist der Inhalt dieser Seiten unter der Creative Commons Attribution 3.0 United States License lizensiert.

Achtung: Diese Übersetzung ist möglicherweise veraltet. Das englische Original ist auf Revision 22359 während diese Übersetzung auf 17024 basiert.

Diese Seite gibt es auch in den folgenden Sprachen: English, français, Italiano, polski, Русский (Russkij).
Wie stellt man die Standardsprache ein.

Die Tor-Entwickler haben diese Übersetzung nicht auf Korrektheit geprüft. Sie könnte veraltet oder falsch sein. Die offizielle Version ist in englischer Sprache, erhältlich unter https://www.torproject.org/.

Webmaster - Letzte Änderung: Thu Mar 25 12:14:11 2010 - Zuletzt kompiliert: Sat Jul 24 15:24:53 2010