Eine .onion-Adresse ist faktisch ein öffentlicher Schlüssel: Wer den passenden privaten Schlüssel besitzt, kontrolliert die Adresse. Damit ein Dienst erreichbar bleibt, veröffentlicht er einen signierten Datensatz, den sogenannten Descriptor, den jeder im Tor-Netz abrufen kann. GoBalance übernimmt das Signieren dieses Datensatzes – und genau dort liegt der Fehler.

Ein privater Tor-Schlüssel ist 64 Byte lang. GoBalance übergab dem Signierer jedoch nur die ersten 32 Byte und verwarf den Rest. Die weggelassene Hälfte ist aber jener Teil, der den geheimen Zufallswert jeder Signatur verbirgt. Ohne ihn wird dieser Wert zu einer festen, für jeden berechenbaren Zahl. Ein einziger veröffentlichter Descriptor enthält dann genug Information, um den privaten Schlüssel des Dienstes zu rekonstruieren – ganz ohne Zugriff auf dessen Server.

Besonders schwer wiegt, dass es sich um den langlebigen Masterschlüssel der Adresse handelt und nicht um einen kurzlebigen Schlüssel. Ein einmal rekonstruierter Schlüssel kann daher noch weit in der Zukunft gültige Datensätze für diese Adresse signieren.

GoBalance ist eine in Go neu geschriebene Fassung von Tors Onionbalance-Lastverteiler und wird mit EndGame ausgeliefert, einem verbreiteten Werkzeugkasten, der Dark-Web-Seiten während Denial-of-Service-Angriffen online hält. Der Fehler steckt in der Neuimplementierung. Das ursprüngliche Onionbalance und Tor selbst sind laut Searchlight nicht betroffen. Betroffen sind zudem nur Dienste, deren Masterschlüssel im Tor-eigenen Schlüsselformat abgelegt ist; das Einrichtungswerkzeug von GoBalance schreibt Schlüssel in einem sichereren Format, das nicht gefährdet ist. Nicht jede Seite, die GoBalance einsetzt, ist also angreifbar.

Übernahme bei Dread

Ans Licht kam die Lücke durch Dread, eines der größten Foren im Dark Web, betrieben von den Administratoren HugBunter und Paris. Zwischen dem 5. und 7. Oktober wurden beide .onion-Adressen von Dread übernommen und auf die konkurrierende Seite Conclave umgeleitet.

Zunächst gaben die Betreiber sich selbst die Schuld. Paris erklärte am 5. Oktober, er habe „dummerweise den privaten Haupt-Onion-Schlüssel von Dread in ein GoBalance-Update hochgeladen“. Zwei Tage später wurde auch die zweite Adresse übernommen – eine Reserveadresse für zahlende Mitglieder. Dieser Fall lässt sich kaum mit einem Versehen erklären; HugBunter erklärte daraufhin, der Angreifer habe eine GoBalance-Schwachstelle gegen mehrere Dark-Web-Dienste eingesetzt. Searchlight teilt diese Einschätzung und wertet die zweite Übernahme als das stärkere Indiz für die Ausnutzung der Lücke, während die erste Adresse weiterhin als separates Schlüsselleck behandelt wird.

Dread ist inzwischen auf eine neue Adresse umgezogen und hat Nutzer aufgefordert, ihre Passwörter zu ändern. In einer signierten Nachricht vom 7. Oktober erklärten die Betreiber, das Forum sei „dauerhaft migriert, nachdem der private Onion-Schlüssel durch eine Schwachstelle in Software von Dritten offengelegt wurde“, und „andere Hidden Services könnten ebenfalls betroffen sein“. In die Server von Dread sei nicht eingedrungen worden.

Weitere Betroffene

Wie viele andere Seiten betroffen sind, ist unklar. HugBunter sprach davon, dass bei mehreren Dark-Web-Marktplätzen die Adressen übernommen worden seien, darunter auch bereits eingestellte Angebote – Namen oder Zahlen nannte er nicht. Öffentlich bestätigt hat es bislang mindestens ein weiterer Dienst: Der Marktplatz Omega teilte in einer signierten Mitteilung vom 8. Oktober mit, er habe seine alte Adresse „aufgrund eines durch den GoBalance-Fehler verursachten Problems“ abgeschaltet und sei auf eine neue umgezogen.

Noch kein offizieller Fix

Eine offizielle Korrektur gibt es nicht. Mit Stand 9. Oktober existiert in der US-amerikanischen National Vulnerability Database kein CVE-Eintrag zu der Lücke, und weder vom Tor Project noch vom Betreuer von GoBalance liegt ein öffentlicher Sicherheitshinweis vor. Dread hat angekündigt, eine gepatchte Version von GoBalance zu veröffentlichen und betroffenen Seiten beim Umzug zu helfen.

Ein unabhängiger Forscher hat einen Patch sowie einen funktionierenden Proof-of-Concept veröffentlicht, der aus einem einzigen öffentlichen Descriptor den Masterschlüssel rekonstruiert. Nach Angaben des Forschers wurden dafür ausschließlich eigens zu Testzwecken erzeugte Schlüssel verwendet; ein realer Dienst sei nicht angegriffen worden. Es handelt sich nicht um eine offizielle Veröffentlichung.

Was Betreiber und Nutzer tun können

Ein Patch allein macht die Offenlegung nicht rückgängig: Ist ein Descriptor einmal veröffentlicht, lässt sich der darin durchgesickerte Schlüssel nicht zurückholen. Eine Seite, die eine verwundbare Version betrieben hat, muss daher eine neue .onion-Adresse erzeugen und dorthin umziehen – so wie Dread und Omega es getan haben. Nutzern möglicherweise betroffener Seiten riet Dread, das Passwort dort und auf weiteren eventuell betroffenen Seiten zu ändern und die alte Adresse als unsicher zu behandeln; jede neue Adresse sollte vor dem Vertrauen über eine signierte Ankündigung bestätigt werden.