Unter dem Namen “Dark Skippy” demonstrierten Lloyd Fournier, Nick Farrow und Robin Linus gestern einen Angriff, mit dem private Schlüssel einer Bitcoin Hardware-Wallet über manipulierte Signaturdaten veröffentlicht werden können. Mit nur 2 beziehungsweise 4 solcher manipulierten Signaturen soll es möglich sein, die 12 oder 24 Wörter der Wallet zu extrahieren und volle Kontrolle über die dort gesicherten Bitcoin zu erhalten. Voraussetzung für den Angriff ist dabei eine bösartige Hardware-Wallet respektive ein bösartiges Signiergerät, das gezielt versucht, den eigenen Nutzer anzugreifen.

Werfen wir einen Blick auf den neuen Angriff – der eigentlich alles andere als neu ist – und darauf, wie man sich davor schützen kann!

Heute stellen wir Dark Skippy vor – eine mächtige neue Methode, mit der ein bösartiges Signiergerät private Schlüssel veröffentlichen kann.

Mit einem manipulierten Signaturverfahren kann ein Gerät effizient und verdeckt einen geheimen Master-Seed durch das Einbetten in Transaktionssignaturen exfiltrieren.
@utxoclub auf 𝕏

Trojanische Signaturen

Der Ansatz von Dark Skippy, also die Manipulation von Bitcoin-Signaturen, um geheime Informationen in ihnen zu verstecken, ist im Grunde alles andere als neu und schon länger in der Welt der Hardware-Wallets bekannt. Zunächst gibt es also auch keinen Grund zur Panik, da keine bahnbrechende Entdeckung gemacht wurde, sondern lediglich auf einem bestehenden Konzept aufgebaut wurde inklusive einer Demonstration in der Praxis.

Doch worum geht es überhaupt? Die Grundannahme der Angriffe mit „manipulierten Signaturen“ ist eine kompromittierte, also bösartige Hardware-Wallet. Zunächst könnte man in so einem Szenario direkt vom Schlimmsten ausgehen, denn wenn man der eigenen Hardware-Wallet nicht vertrauen kann, wem denn dann? 

Doch in der Praxis ist es für bösartige Hardware-Wallets gar nicht so einfach, den Seed des Nutzers, also etwa die 24 Wiederherstellungswörter der Wallet, nach außen zu veröffentlichen – schließlich hat die Hardware-Wallet keine direkte Verbindung zum Bitcoin-Netzwerk beziehungsweise zum Internet.

Ein versteckter Kommunikationskanal

Für das spezifische Szenario, in dem eine bösartige Hardware-Wallet den Seed des Nutzers im Nachhinein an einen Angreifer veröffentlichen will, kommt der sogenannte “Nonce Covert Channel Attack” ins Spiel, was vereinfacht gesagt bedeutet, einen bestimmten Bereich einer digitalen Signatur als Datenfeld zu missbrauchen, um so unbemerkt Informationen am Endgerät vorbei im Bitcoin-Netzwerk zu veröffentlichen. 

Der Angreifer muss bei einem solchen Angriff nur im Netzwerk nach der richtigen Transaktion Ausschau halten und kann das Geheimnis, zum Beispiel ein einzelnes Wort, einfach auslesen. Die Besonderheit an dieser Methode ist, dass der Hersteller einer Hardware-Wallet auf diese Weise, zumindest theoretisch, unbemerkt die Seedwörter seiner Kunden auslesen könnte, ohne dass irgendjemand etwas davon mitbekommt. 

Auch bei einer reproduzierbaren Open-Source Firmware, kann dieses theoretische Risiko nicht ausgeschlossen werden, da es im Grunde unmöglich ist, wirklich zu verifizieren, welcher Code schlussendlich im Inneren einer Hardware-Wallet ausgeführt wird.

Wirklich relevant?

Nicht ganz umsonst wurde dieser Angriff in der Vergangenheit häufig als zu theoretisch oder spezifisch abgetan, denn die vergleichsweise hohe technische Komplexität könnte einen potenziellen Angreifer schnell abschrecken. Um erfolgreich ganze 24 Wörter zu exportieren, wären mehrere dutzend manipulierte Signaturen nötig, die viel Rechenkapazität für die Erstellung benötigen.

Denn auf der anderen Seite hat eine kompromittierte Hardware-Wallet noch weitere Möglichkeiten, an die Bitcoin des Nutzers heranzukommen. Das wohl einfachste Beispiel wären vorab festgelegte Seedwörter, bei denen der Nutzer zwar denkt, eine zufällige Wallet zu erstellen, in Wirklichkeit aber nur eine vorbereitete Wallet des Angreifers abruft. Eine weitere, aber ebenso effektive Möglichkeit wäre es, falsche öffentliche Schlüssel an das Endgerät zu kommunizieren, um dem Nutzer falsche Adressen vorzutäuschen. 

Ideal sind diese beiden “primitiveren” Angriffsmethoden allerdings nicht. Schließlich könnte der Nutzer einen eigenen Seed würfeln und/oder die Ableitung der Adressen mit einem unabhängigen Gerät verifizieren. Außerdem könnten diese Methoden nicht nachträglich angewendet werden, also beispielsweise mit einem manipulierten Firmware-Update.

Der verdeckte Weg über die manipulierten Signaturen ist also doch nicht so irrelevant, da er erstens unentdeckt ausgeführt werden kann und vor allem auch nachträglich, egal ob der Nutzer einen eigenen Seed nutzt oder nicht. Wenn es doch nur effizienter wäre …

Dark Skippy

Die neue Angriffsmethode Dark Skippy nutzt zwar den gerade schon erläuterten Ansatz, verbessert aber vor allem dessen Effizienz. Bisher ging man immer davon aus, dass die Hardware-Wallet viele verschiedene Zufallszahlen (auch “Nonce” genannt) bei der Erstellung der Signatur “durchtesten” muss, bis sie die gewünschte manipulierte Signatur erhält. Je länger die gewünschte Nachricht, umso aufwändiger beziehungsweise schlussendlich unrealistischer wurde der Angriff – daher auch die vielen benötigen Signaturen für einen Erfolg.

Dark Skippy verändert den Ansatz dahingehend, dass eben nicht mehr so viele verschiedene Zufallswerte aufwändig getestet werden müssen. Stattdessen kann durch Verwendung einer kleineren, gezielt gewählten Zufallszahl und anschließender Anwendung eines Algorithmus auf die Signaturen, eine viel größere Menge an beliebigen Daten in einer einzelnen Signatur übertragen werden. So sollen für 12 Wörter gerade einmal 2 Signaturen, und für 24 Wörter nur 4 Signaturen notwendig sein. Mit anderen Worten: Eine einzelne Transaktion könnte theoretisch das komplette Wallet-Geheimnis eines Nutzers veröffentlichen.

Anti-Klepto-Protokoll

Glücklicherweise gibt es bereits eine etablierte Gegenmaßnahme, die sowohl Dark Skippy, als auch Manipulationen von Signaturen an sich verhindert. Mit dem Anti-Klepto-Protokoll wird das Endgerät nämlich direkt in die Erstellung der Signatur, genauer gesagt der Auswahl der Zufallszahl respektive Nonce eingebunden. Das Protokoll ist so abgestimmt, dass die Hardware-Wallet keinerlei Möglichkeit hat, die Nonce der Signatur alleine zu bestimmen, ohne dass es dem Endgerät auffallen würde. Die Wallet-Software auf dem Endgerät kann also kryptografisch verifizieren, dass keine Signaturen manipuliert wurden und das Angriffsszenario somit nichtig machen.

Aktuell gibt es zwei Hardware-Wallets, die das Anti-Klepto- beziehungsweise Anti-Exfil-Protokoll implementiert haben: die Blockstream Jade und die BitBox02. Anti-Klepto ist dabei nicht nur mit der hauseigenen Wallet-Software, also Blockstream Green respektive der BitBoxApp kompatibel, sondern auch Teil des HWI (Hardware Wallet Interface) und somit auch bei Verwendung von Software wie Electrum oder Sparrow Wallet aktiviert. Als Teil einer Open-Source Kryptografie-Bibliothek steht das Protokoll auch für andere Hersteller zur Integration im eigenen Produkt zur Verfügung. An einer Unterstützung für Taproot-Adressen wird bereits gearbeitet

Für “Air-Gapped” Wallets, die in der Bandbreite der Kommunikation mit dem Endgerät bewusst limitiert sind, ist die Implementierung des Anti-Klepto-Protokolls nicht ganz so einfach. Erstens, weil sich bisher noch niemand die Arbeit gemacht hat, ein entsprechendes Verfahren zu entwerfen und umzusetzen und zweitens, weil es die Nutzererfahrung in irgendeiner Form verkomplizieren würde. Es wären nämlich zusätzliche Kommunikationsrunden und der Austausch einer höheren Datenmenge notwendig. 

Fazit

Sind durch Dark Skippy also alle anderen Hardware-Wallets und Signiergeräte unsicher geworden? Nein, das wäre eine ziemlich übertriebene Darstellung. Im Laufe des Beitrags dürfte klar geworden sein, dass es sich um eine recht fortgeschrittene Angriffsmethode handelt, die nur mit viel Aufwand, technischer Expertise und einem hohen Maß an Kontrolle über eine bestimmte Hardware-Wallet umsetzbar ist. Bisher ist von keinen erfolgreichen Angriffen in der Praxis bekannt, wobei Dark Skippy als effizienterer Angriff natürlich auch gerade erst vorgestellt beziehungsweise demonstriert wurde.

Das Anti-Klepto-Protokoll ist in erster Linie ein Sicherheits-Feature, das Nutzern weniger Vertrauen in den Hersteller der Hardware-Wallet abverlangt. Das Risiko eines derartigen Angriffes wird also verifizierbar ausgeschlossen. Eine vollständig „vertrauenslose“ Hardware-Wallet wird es wohl nie geben, aber es lohnt sich dennoch, die Sicherheit und Vertrauensannahmen stetig zu optimieren und die Selbstverwahrung von Bitcoin ein Stück weit sicherer zu machen.

Empfohlen für Bitcoin

BitBox02

BitBox02

  • Vollständig Open-Source
  • Secure Chip
  • USB-C Unterstützung
  • Bitcoin-only Edition
  • Anti-Klepto
  • Sichere Multisig
  • Nicht mit iOS/iPhone kompatibel
  • Backups können auch auf microSD-Karten gespeichert werden
  • Erhalte 5 % Rabatt mit Code BLOCKTRAINER
Sebastian

Über den Autor: Sebastian

Sebastian ist Informatikstudent und seit 2020 von der Funktionsweise und den technischen Details des Bitcoin-Netzwerks fasziniert. Mit Schwerpunkten in Kryptografie und IT-Sicherheit interessiert er sich vor allem für Hardware-Wallets und die sichere Selbstverwahrung von Bitcoin.

Artikel des Autors

Kommentare aus unserem Forum