zurück zum Artikel

Androids Verschlüsselung angreifbar

Olaf Göllner

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.

Das Android Security Team lokalisierte die Ursache für einen Bitcoin-Diebstahl [1], 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 [2].

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 [3], dass mehr als 360.000 Anwendungen von dieser Schwachstelle betroffen seien könnten.

Das Problem erinnert stark an Debians OpenSSL-Problem [4] 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 [5] beigefügt.

Google hat laut eigener Aussage inzwischen Patches für OHA-Partner [6] 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 [7])


URL dieses Artikels:
https://www.heise.de/-1936181

Links in diesem Artikel:
[1] https://www.heise.de/news/Bitcoin-Diebstahl-durch-Android-Patzer-1933714.html
[2] https://bitcointalk.org/index.php?topic=271486.0%2F
[3] http://www.symantec.com/connect/blogs/android-cryptographic-issue-may-affect-hundreds-thousands-apps
[4] https://www.heise.de/hintergrund/Gute-Zahlen-schlechte-Zahlen-270078.html
[5] http://android-developers.blogspot.com.au/2013/08/some-securerandom-thoughts.html
[6] http://www.openhandsetalliance.com/android_overview.html
[7] mailto:ogo@heise.de