Androids Verschlüsselung angreifbar

Eine Schwachstelle in Androids Crypto-Bibliotheken betrifft möglicherweise hunderttausende Android-Anwendungen. Der Fehler sorgt für schwache Zufallszahlen und wurde von Kriminellen bereits für den Diebstahl von Bitcoins genutzt.

In Pocket speichern vorlesen Druckansicht 200 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Olaf Göllner

Das Android Security Team lokalisierte die Ursache für einen Bitcoin-Diebstahl, der Anfang der Woche bekannt wurde: Androids in Java realisierte Verschlüsselung (Java Cryptography Architecture, kurz: JCA) verwendet schwache Zufallszahlen. Das betrifft potentiell alle Apps, die auf Android-Smartphones Verschlüsselung einsetzen. Es ist bereits ein Fall bekannt, in dem dieses Problem genutzt wurde, um Bitcoins im Wert von über 5000 US-Dollar zu stehlen.

Das Problem lässt sich auf eine schlechte Intialisierung des eingesetzten Pseudozufallszahlen-Generators zurückführen (Pseudo Random Number Generator, PRNG). Ein solcher PRNG liefert zwar Zahlenfolgen die nicht erkennbar korreliert sind; aber mit dem gleichen Startwert liefert er jedes Mal die gleiche Folge. Kommen nur wenige Startwerte zum Einsatz, gibt es nur wenig "Zufallszahlen" und Angreifer können ihre Brute-Force-Attacken auf bestimmte Wertebereiche einschränken.

Die Java Cryptography Architecture wird für die Generierung von Schlüsseln, sowie zur Signierung und Erzeugung von Zufallszahlen verwendet. Betroffen sind alle Apps, die den systemeigenen OpenSSL PRNG benutzen, ohne diesen explizit zu initialisieren und JCA-Klassen wie SecureRandom, KeyGenerator, KeyPairGenerator, KeyAgreement und Signature nutzen. Die Sicherheitsexperten von Symantec schätzen, dass mehr als 360.000 Anwendungen von dieser Schwachstelle betroffen seien könnten.

Das Problem erinnert stark an Debians OpenSSL-Problem vor einigen Jahren. Alex Klyubin, der verantwortliche Sicherheitsspezialist rät Entwicklern dringend, den Pseudozufallszahlen-Generator mit Werten aus /dev/urandom oder /dev/random zu initialisieren. Eine genaue Umsetzung mit konkreten Codebeispiel ist seinem Blogeintrag beigefügt.

Google hat laut eigener Aussage inzwischen Patches für OHA-Partner bereitgestellt, die sicherstellen sollen, dass der OpenSSL PRNG nun korrekt initialisiert wird und ausreichend sichere (Pseudo-)Zufallszahlen erzeugt. Dabei ist allerdings zu beachten, dass sich das Problem nicht ohne weiteres durch ein Update der JCA oder auch der Apps aus der Welt schaffen lässt – selbst wenn diese beim Anwender ankommen sollten. Um weitere Diebstähle zu vermeiden, müssen zusätzlich alle erratbaren Schlüssel gelöscht werden. (ogo)