Ein Fehler in einem Zufallszahlengenerator von Android kompromittiert die Sicherheit von Bitcoin-Geldbörsen (Wallet), die mit bestimmten Apps genutzt wurden, warnen die Entwickler des Bitcoin Project. Unter bestimmten Umständen lässt sich dadurch der private Schlüssel des Wallet-Besitzers ermitteln, mit dem man die virtuelle Geldbörse ausräumen kann. Offenbar nutzen Online-Gauner diese Schwachstelle bereits für virtuelle Beutezüge mit realen Folgen aus.

Zahlreiche Bitcoin-Apps verlassen sich auf die Zufallszahlen, die Googles Implementierung der Java-Klasse SecureRandom erzeugt. Diese Zufallszahlen spielen eine tragende Rolle bei den kryptografischen Verfahren, durch die Bitcoin-Transaktionen abgesichert sind: Verschickt man Bitcoins, signiert man diese Transaktion mit seinem privaten Schlüssel – ähnliche wie beim Versand signierter Mails mit PGP. Die Informationen über die Transaktion werden anschließend in die öffentlich einsehbare Blockchain aufgenommen. So kann sich jedermann davon überzeugen, dass der Versender der Bitcoins auch tatsächlich zu dieser Transaktion berechtigt war.

Beim Signieren wird eine Zufallszahl genutzt, die unter Android unter bestimmten Umständen nicht so zufällig ist, wie sie sein sollte. In Bitcoin-Foren finden sich Berichte darüber, dass Android-Apps für mehrere Transaktionen die gleiche Zufallszahl genutzt haben, wodurch auch die Signatur identisch war. Das ist fatal, weil sich so anhand öffentlicher Informationen der private Schlüssel des Besitzers der Bitcoin-Geldbörse (Wallet) errechnen lässt. Damit ist die Geldbörse kompromittiert; denn wer im Besitz des privaten Schlüssels ist, kann damit selbst Transaktionen signieren.

Das ist kein theoretisches Angriffsszenario, die Schwachstelle wurden Berichten zufolge bereits dafür missbraucht, um Bitcoins im Wert von mehreren tausend US-Dollar abzuzwacken. Für die Betroffenen gibt es keine Möglichkeit, die Transaktion zu widerrufen und sich die virtuellen Münzen zurück zu holen.

Betroffen sind Bitcoin-Nutzer, die ihren privaten Schlüssel auf einem Android-Smartphone oder -Tablet gespeichert und von dort aus Transaktionen durchgeführt haben. Anscheinend nutzen nicht alle Bitcoin-Apps die unzuverlässige Java-Klasse von Google. Bestätigt wurde die Schwachstelle bislang in Bitcoin Wallet, BitcoinSpinner, Blockchain.info und Mycellium Wallet. Für letztere App steht bei Google Play ein Update auf die ausgebesserte Version 0.6.5 bereit, Update für die anderen Programme sind bereits in Arbeit. Nicht betroffen sind Apps, die statt der Java-Klasse SecureRandom den nativen Zufallszahlengeneratoren des Linux-Kernels /dev/random benutzen.

Wer nicht ausschließen kann, dass ein privater Schlüssel kompromittiert wurde, sollte sich mit einem sicheren Verfahren (etwa mit einem PC-Client) eine neue Bitcoin-Adresse generieren und dort seine virtuellen Münzen hinsenden. (rei)