Bitcoin-Geldbörsen ausgeräumt: Android erzeugt unsichere Zufallszahlen

Eine Sicherheitslücke in Googles Handy-Betriebssystem Android hat zur Folge, dass ein Angreifer an private Schlüssel von Bitcoin-Wallet-Besitzern gelangen kann. Damit hat er auch Zugriff auf die digitale Geldbörse des Opfers. Diese Schwachstelle wurde kürzlich vermehrt ausgenutzt.

Ursache der Schwachstelle ist ein Programmierfehler in Googles Implementierung der Java-Klasse “SecureRandom” der Java Cryptography Architecture (JCA). Dies führt dazu, dass die “SecureRandom()”-Funktion keine korrekten Pseudozufallszahlen erzeugt. Dies wirkt sich auf die Sicherheit kryptografischer Verfahren aus, die bei Bitcoin-Transaktionen zum Einsatz kommen.

Jede Bitcoin-Transaktion wird kryptografisch mit einem privaten Schlüssel signiert. Bei diesem Signiervorgang wird eine von Android generierte Zufallszahl verwendet, die allerdings aufgrund des Programmierfehlers nicht völlig zufällig ist, da der Zufallszahlengenerator nicht korrekt initialisiert wird. Android-Benutzer berichteten in zahlreichen Foren, dass sie mehrere Bitcoin-Transaktionen mit gleichen Zufallszahlen bemerkten. Hierdurch ist die verwendete Signatur identisch, und ein Angreifer kann den privaten Schlüssel des Besitzers der Bitcoin-Geldbörse errechnen. Hat der Angreifer erst einmal diesen Schlüssel, so kann er Transaktionen im Namen des Opfers ausführen. Angeblich wurden derartige Attacken verwendet, um bisher mehrere tausend US-Dollar zu stehlen.

Anfällig für die Attacke sind Bitcoin-Nutzer, die ihren privaten Schlüssel auf einem Android-Gerät speichern und von dort Bitcoin-Transaktionen ausgeführt haben. Allerdings muss die verwendete Applikation die fehlerhafte Java-Klasse verwenden. Folgende Bitcoin-Applikation sind von der Sicherheitslücke betroffen: Bitcoin Wallet, BitcoinSpinner, Blockchain.info und Mycellium Wallet. Korrigierte Updates sind erhältlich. Applikationen, die sich auf “/dev/urandom” zum Generieren von Pseudozufallszahlen verlassen, sind von der Schwachstelle nicht betroffen.

Für Entwickler ist ein Beitrag im Android Developer Blog interessant. Er beschreibt, wie man Android-Applikation modifiziert, um die Schwachstelle zu umgehen.

Nach oben