Aus Linux-Magazin 11/2013

Insecurity Bulletin: Unsichere Zufallszahlen in Android

Gute Zufallszahlen sind der Schlüssel zu starker Kryptographie. Eine Schwäche in Androids Zahlengenerator gefährdet den Kontostand von Anwendern, die mit der Alternativwährung Bitcoin bezahlen.

Die Entwickler digitaler Geldbörsen für Android schlugen Anfang August 2013 Alarm: Die Bitcoin-Wallets waren unsicher, ein Angreifer konnte an private kryptographische Schlüssel des Besitzers kommen und damit Geld abräumen [1].Ursache ist ein Programmierfehler in Googles Implementierung der Java-Klasse »SecureRandom« der Java Cryptography Architecture (JCA). Er führt dazu, dass die Funktion »SecureRandom()« unter Android keine korrekten Pseudozufallszahlen erzeugt.

Update für die Geldbörse

Dies wirkt sich auf die Sicherheit kryptographischer Verfahren aus, die bei Bitcoin-Transaktionen zum Einsatz kommen. Jede Transaktion mit der Internetwährung ist mit einem privaten Schlüssel signiert. Der Signiervorgang verwendet eine von Android generierte Zufallszahl, die aber wegen des Programmierfehlers nicht völlig zufällig war, da die erwähnte Java-Klasse den Generator nicht korrekt initialisierte. Android-Benutzer berichteten in Foren, dass sie mehrere Bitcoin-Transaktionen mit gleichen Zufallszahlen bemerkten. Hierdurch war die verwendete Signatur identisch und ein Angreifer konnte den privaten Schlüssel des Besitzers der Bitcoin-Geldbörse errechnen. Hat der Angreifer erst einmal diesen Schlüssel, so darf er Transaktionen im Namen des Opfers ausführen. Angeblich haben im Zuge solcher Attacken mehrere Tausend US-Dollar den Besitzer gewechselt. Ein Proof-of-Concept-Exploit von Nikolai Elenkow steht im Web zur Verfügung und funktioniert unter Android 4.3 [2].

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. Das gilt aber nur, wenn die eingesetzte Applikation die fehlerhafte Java-Klasse verwendet. Die folgenden Bitcoin-Applikationen sind betroffen: Bitcoin Wallet (Abbildung 1), Bitcoin Spinner, Blockchain.info und Mycellium Wallet. Korrigierte Updates dieser Apps sind erhältlich. Applikationen, die sich auf die Device-Datei »/dev/urandom« zum Generieren von Pseudozufallszahlen verlassen, sind von der Schwachstelle nicht betroffen.

Abbildung 1: Neben anderen wurde die App Bitcoin Wallet ein Opfer der schwachen Zufallszahlen.

Abbildung 1: Neben anderen wurde die App Bitcoin Wallet ein Opfer der schwachen Zufallszahlen.

Für Anwendungsentwickler ist ein Beitrag [3] im Android-Developer-Blog interessant. Er beschreibt, wie man Android-Applikationen modifiziert, um diese Schwachstelle zu umgehen. Offenbar sieht der Android-Hersteller Google vornehmlich die App-Entwickler in der Pflicht, für die Sicherheit der Anwendungen zu sorgen. Anfragen des Linux-Magazins an den Internetkonzern, ob es Nachbesserungen an Androids JCA-Umsetzung geben werde, blieben unbeantwortet. (mhu)

Infos

  1. Android Security Vulnerability: http://bitcoin.org/en/alert/2013-08-11-android
  2. Proof-of-Concept von Nikolay Elenkov: https://gist.github.com/nelenkov/581f9be65dcc0b6b35b9
  3. Alex Klyubin, “Some SecureRandom Thoughts”: http://android-developers.blogspot.com.au/2013/08/some-securerandom-thoughts.html
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben