Habe mir das Video angeguckt, sehr aufschlussreich! Zu Beginn, es wird von vier Angriffsvektoren gesprochen:
- Auf dem Weg vom Hersteller zum Kunden;
- Seitenkanalangriff durch Belauschen u.ä.;
- Manipulation der Firmware;
- Manipulation des Chips;
Der zweite Redner (der erste Redner hielt die Einführung) behandelt den ersten Punkt, welcher ziemlich simpel ist. Jeder sollte sich im klaren sein (gesunder Menschenverstand), dass die Hardware-Wallet (HW) auf dem Weg der Lieferung manipuliert werden kann, ob nun direkt auf dem Weg vom Hersteller oder, was ziemlich dumm von einem Bitcoinbesitzer wäre, bei einem Kauf aus zweiter Hand. Deshalb belasse ich es hierbei.
Desweiteren wird vom zweiten Redner beschrieben wie die HW dann manipuliert werden könnte (
Ledger, Trezor u.a.): Sie wird geöffnet und deart manipuliert, dass ein kleiner Chip zwischen Nutzer und HW plaziert wird, sodass, wenn die HW nach einer Bestätigung einer Transaktion fragt, diese Bestätigung von aussen per Funk ausgelöst werden kann. Der eigentliche Besitzer ist nicht mehr notwendig. Kann möglicherweise durch ausreichend Alufolie verhindert werden (Faradayscher Käfig).
Der dritte Redner spricht vom
Ledger Nano S und wie man die Firmware austauschen kann. Was das Team festgestellt hat, ist, dass die HW zwar prüft, ob die Software, welche z.B. durch ein Update aufgespielt werden soll, vom Hersteller stammt, aber dies wird nur einmal gemacht und das Resultat "F00DBABE" (ein HEX-Wert, also Zahl, siehe auch
https://www.binaryhexconverter.com/hex-to-decimal-converter) wird an einer bestimmten Stelle im Speicher abgespeichert. Steht der Wert dort, dann ist alles okay. Das Team war nun in der Lage, diesen Wert zu setzen um eine beliebige Software einzuspielen und somit nicht notwendigerweise vom Hersteller stammt (das Spiel Snake). Am Ende bespricht der Redner, so wie ich es verstehe, noch andere Methoden das Gerät zu hacken, meinte aber zu Beginn des Abschlusses, dass sie das nicht im Detail gemacht haben, da nicht notwendig. D.h., da lauern noch weitere Schwächen.
Dann spricht der dritte Redner über den
Ledger Blue, welcher ein Bluetooth-Interface enthält, wenn auch nicht aktiviert. Der Witz scheint hier zu sein, dass dieses Gerät sehr groß ist! Alle Ledger-Geräte bestehen aus zwei Chips (die Trezors scheinbar nur aus einem), einem Unsicheren und einem Sicheren. Der Unsichere ist für die Steuerung, die Interaktion mit den Nutzer und dem Datentransfer verantwortlich. Der Sichere hält die Privatekeys vor und kümmert sich um die Signierung der Transaktionen. Beim Blue ist es nun so, dass die Verbindung zwischen Sicherem und Unsicherem Chip am Akku herum geht, die zwei Chips liegen an unterschiedlichen Seiten des Geräts und der Akku ist gross, da das Gerät über einen Bildschirm und eben potentiell Bluetooth verfügt. Und solch eine lange Verbindung ist eine Antenne, welche sich belauschen lässt. Beim Nano liegen die Chips hingegen praktisch nebeneinander. Die "Antenne" im Blue scheint trotzdem zu klein für einen erfolgreichen Angriff zu sein. Jedoch, ist das Gerät per USB mit einem Rechner verbunden, dann wird das Signal über das USB-Kabel verstärkt (so mein Verständnis). Daraufhin hat das Team versucht aus den Signalen schlau zu werden, mit Hilfe von AI, um die PIN abzufangen. Das ist nichts Neues siehe z.B.
https://security.stackexchange.com/questions/23322/keyboard-sniffing-through-audio-recorded-typing-patterns. Am Ende hatte das Team 90% Erkennungrate für eine eingegebene Ziffer durch Abhören der Antenne. Bei einer Länge der PIN von vier Ziffern ist die Erkennungsrate immer noch ca. 66%, d.h. man hat bei einem Angriff in 2/3 der Fälle Erfolg die gesamte PIN abzugreifen. Der Redner spekuliert, dass die Signale, welche er abgreift, wohl die x-und y-Koordinate auf dem Bildschirm kodieren, wenn diese bei Eingabe gedrückt werden. BTW, der
Trezor T shuffelt die Ziffern bei jeder Eingabe, dort sollte dieser Angriff, falls prinzipiell möglich, erschwert sein (mein Kommentar und nicht im Vortrag). Hier hilft möglicherweise auch genug Alufolie. Zum experimentieren für Nichtelektroniker (wozu ich mich zähle) und zum realisieren was möglich ist empfehle ich
http://www.erikyyy.de/tempest/.
Am Ende spricht das Team über den
Trezor One und es geht um den Chip, welcher dort verbaut ist (STM32). Dieser Chip kann in drei verschiedenen Zuständen vorliegen: voller Zugriff, begrenzter Zugriff und gar kein Zugriff. Wenn man den Trezor kauft, dann liegt der Chip im dritten Zustand vor. Mit viel Elektronik bekommen sie es hin, dass das Gerät in Zustand zwei kommt um Daten zu schreiben und zu lesen (wenn ich das richtig verstanden und nichts verdreht habe). Desweiteren, so wird gesagt, dass beim Trezor, für ein Upgrade, die PIN nicht benötigt wird. Was sinnvoll ist, da ansonsten, bei einem Bug in der PIN-Eingabe, diese möglicherweise nicht upgegradet werden kann. Die Userdaten, was auch die Seed beinhaltet, werden bei einem Upgrade vom Flash in den RAM geladen (der Chip scheint sowas zu besitzen), und nach dem Update des Flashes wieder auf diesen zurückgeschrieben. Die Idee ist nun, den Upgrade-Prozess an dem Punkt zu unterbrechen, wo die Userdaten noch im RAM sind um diese auszulesen. Beim Upgrade-Prozess gibt es nun eine Interaktion mit dem Nutzer, wo das System stoppt, bis der Nutzer sein Okay gegeben hat.
In diesem Moment kann der gesamte RAM mit etwas Elektronik als Datei gedumpt werden. Und gruseligerweise steht dort die Seed im Plaintext sowie die PIN drin! (ca. bei 49:00)Jedoch, das wird nämlich auch explizit am Ende des Vortrags gesagt (ca. 50:30), und wie schon gestern vermutet wurde (
https://bitcointalksearch.org/topic/m.48919477):
WER SEINEN TREZOR MIT EINER PASSPHRASE SCHÜTZT DER IST VOR DIESEM ANGRIFF GESCHÜTZT!!! D.h., es ist nicht die Schuld des Herstellers, wenn man dieses zusätzliche Sicherheitsfeature ignoriert.
Fazit:
- Es macht wirklich Sinn, sich auch mit der Hardware einer HW auseinanderzusetzen um dessen Sicherheit einschätzen zu können;
- Man sollte immer ein Auge auf die HW haben, d.h. sobald jemand Zugriff auf das Gerät hat, kann er praktisch alles damit machen;
- Wenn es die HW erlaubt eine Passphrase zuvergeben, DANN SOLLTE MAN EINE PASSPHRASE VERGEBEN!!!