Onion-Dienste sind Dienste, die nur über Tor zugänglich sind.
Das Betreiben eines Onion-Dienstes bietet deinen Nutzern die Sicherheit von HTTPS mit den zusätzlichen Datenschutzvorteilen des Tor Browser.
Warum Onion-Dienste?
Onion-Dienste bieten ihren Nutzern verschiedene Vorteile in Bezug auf Privatsphäre und Sicherheit.
Ausblenden des Standorts
Die IP-Adresse eines Onion-Dienstes ist geschützt.
Onion-Dienste sind ein Overlaynetz über TCP/IP, so dass IP-Adressen in gewisser Weise für Onion-Dienste unbedeutend sind: Sie werden nicht einmal im Protokoll verwendet.
Ende-zu-Ende-Authentifizierung
Wenn ein Benutzer eine bestimmte Onion besucht, weiß er, dass der Inhalt, den er sieht, nur von dieser bestimmten Onion stammen kann.
Eine Nachahmung ist nicht möglich, was im Allgemeinen nicht der Fall ist.
In der Regel bedeutet das Erreichen einer Website nicht, dass ein Man-in-the-Middle nicht an einen anderen Ort umgeleitet hat (z.B. bei DNS-Angriffen).
End-to-end-Verschlüsselung
Der Onion-Dienst-Verkehr wird vom Client zum Onion-Host verschlüsselt.
Das ist so, als bekäme man starkes SSL/HTTPS kostenlos.
NAT-Durchdringung
Ist dein Netzwerk gefiltert und du kannst keine Anschlüsse auf deiner Firewall öffnen?
Dies könnte passieren, wenn du auf einem Universitätscampus, in einem Büro, auf einem Flughafen oder so ziemlich überall bist.
Onion-Dienste benötigen keine offenen Anschlüsse, da sie durch NAT hindurchgehen. Sie bauen nur ausgehende Verbindungen auf.
Das Onion-Dienst-Protokoll: Übersicht
Nun stellt sich die Frage, welches Protokoll wird benötigt, um all diese Eigenschaften zu erreichen?
Normalerweise verbindet man sich mit einer IP-Adresse und das war's, aber wie kann man sich mit etwas verbinden, das keine IP-Adresse hat?
Grundsätzlich sieht die Adresse eines Onion-Dienstes wie folgt aus: vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion
Das sieht seltsam und zufällig aus, weil es der identity public key (ein kryptografischer Schlüssel) des Onion-Dienstes ist.
Das ist einer der Gründe, warum wir die oben genannten Sicherheitseigenschaften erreichen können.
Das Onion-Dienst-Protokoll verwendet das Tor-Netzwerk, so dass der Client sich dem Dienst vorstellen kann und dann einen Rendezvous-Punkt mit dem Dienst über das Tor-Netzwerk einrichten kann.
Hier ist eine detaillierte Aufschlüsselung, wie dies geschieht:
Akt 1: Wo der Onion-Dienst seine Einstiegspunkte einrichtet
Stellen wir uns vor, deine Lokalzeitung beschließt, einen Onion-Dienst (mit SecureDrop) einzurichten, um anonyme Hinweise zu erhalten.
Als erster Schritt im Protokoll kontaktiert der Onion-Dienst eine Reihe von Tor-Relays und bittet sie, als seine Einstiegspunkte zu fungieren, indem er langfristige Kanäle zu ihnen herstellt.
Diese Kanäle sind anonymisierte Kanäle, so dass der Server seinen Einstiegspunkten nicht seinen Standort aufdeckt.
Der Onion-Dienst versteckt sich hinter dem Tor-Netzwerk und schützt sich selbst, indem er den Zugang nur über drei Einstiegspunkte zulässt, mit denen er sich über einen Drei-Hop-Tor-Kanal verbindet.
Akt 2: Wo der Onion-Dienst seine Deskriptoren veröffentlicht
Nun, da die Einstiegspunkte eingerichtet sind, müssen wir einen Weg schaffen, damit die Programme sie finden können.
Aus diesem Grund stellt der Onion-Dienst einen Onion-Dienst-Deskriptor zusammen, der eine Liste seiner Einstiegspunkte (und deren "Authentifizierungsschlüssel") enthält, und signiert diesen Deskriptor mit dem identity private key des Onion-Dienstes.
Der hier verwendete identity private key ist der private Teil des öffentlichen Schlüssels, der in der Onion-Dienst-Adresse codiert ist.
Der Onion-Dienst lädt diesen signierten Deskriptor in eine verteilte Hash-Tabelle hoch, die Teil des Tor-Netzwerks ist, so dass Clients ihn auch erhalten können.
Er benutzt einen anonymisierten Tor-Kanal, um diesen Upload durchzuführen, so dass er seinen Standort nicht preisgibt.
Akt 3: Wenn ein Client den Onion-Dienst besuchen möchte
Nehmen wir an, du möchtest anonym einige Daten zum Steuerbetrug an deine lokale Zeitung über deren SecureDrop senden.
Du findest die Onion-Adresse für das SecureDrop der Zeitung auf einer öffentlichen Website oder bei einem Freund.
Akt 4: Wenn der Client sich dem Onion-Dienst vorstellt
Alle vorherigen Schritte wurden nur für den Onion-Dienst eingerichtet, damit er für Clients erreichbar ist.
Lass uns jetzt zu dem Punkt vorspulen, an dem ein Programm tatsächlich den Dienst besuchen möchte.
In diesem Fall hat der Client die Onion-Adresse von SecureDrop und möchte es besuchen, also verbindet er sich per Tor Browser mit dem Dienst.
Als Nächstes muss der Client zur verteilten Hash-Tabelle aus Schritt 2 gehen und nach dem signierten Deskriptor des Onion-Dienstes von SecureDrop fragen.
Akt 5: Wo der Client die Signatur der Onion-Adresse überprüft
Wenn der Client den signierten Deskriptor erhält, überprüft er die Signatur des Deskriptors mit dem öffentlichen Schlüssel, der in der Onion-Adresse verschlüsselt ist.
Dies bietet die Sicherheit der Ende-zu-Ende-Bestätigung, da wir nun sicher sind, dass dieser Deskriptor nur von diesem Onion-Dienst und niemandem sonst erstellt werden konnte.
Und innerhalb des Deskriptors befinden sich die Einführungspunkte, die es dem Client ermöglichen, sich beim Onion-Dienst von SecureDrop vorzustellen.
Akt 6: Wenn das Programm einen Rendezvous-Punkt festlegt
Nun, bevor der Einstieg erfolgt, wählt das Programm (in diesem Fall du) ein Tor-Relay aus und baut einen Kanal zu diesem auf.
Das Programm bittet das Relay, dein Rendezvous-Punkt zu werden und gibt ihm einen "Einmal-Geheimtext", der als Teil des Rendezvous-Verfahrens verwendet wird.
Akt 7: Wo der Onion-Dienst sein Rendezvous mit dem Client hat
Der Einstiegspunkt gibt deine Details (Geheimtext und Rendezvous-Adresse) an den Onion-Dienst weiter, der mehrere Verifizierungsprozesse durchführt, um zu entscheiden, ob du vertrauenswürdig bist oder nicht.
Akt 8: Wo der Rendezvous-Punkt das Geheimnis des Programms verifiziert
Der Onion-Dienst verbindet sich mit dem Rendezvous-Punkt (über einen anonymisierten Kanal) und sendet das "one-time-secret" dort hin.
Der Rendezvous-Punkt führt eine letzte Überprüfung durch, um die geheimen Texte von dir und dem Dienst abzugleichen (letzterer kommt auch von dir, wurde aber durch den Dienst weitergeleitet).
Der Rendezvous-Punkt leitet einfach (end-to-end verschlüsselte) Nachrichten vom Programm zum Dienst und umgekehrt weiter.
Akt 9: Wenn der Onion-Dienst sein Rendezvous mit dem Klient hat
Generell besteht die komplette Verbindung zwischen Client und Onion-Dienst aus 6 Relays: 3 davon wurden vom Programm ausgewählt, wobei das dritte der Rendezvous-Punkt ist, und die anderen 3 wurden vom Onion-Dienst ausgewählt.
Das bietet location hiding für diese Verbindung.
Schließlich wird über den Rendezvous-Punkt ein Tor-Kanal zwischen dir und dem SecureDrop Onion-Dienst deiner Zeitung aufgebaut.
Weitere Ressourcen
Dies war nur ein High-Level-Überblick über das Tor Onion-Dienst-Protokoll.
Hier sind einige weitere Ressourcen, wenn du mehr erfahren möchtest: