Разработчик Алекс Клюбин (Alex Klyubin) из компании Google подтвердил наличие уязвимости в криптографическом модуле Java Cryptography Architecture, который используется приложениями Android для генерации ключей, подписи и генерации псевдослучайных чисел. Уязвимость связана с некорректной реализацией генератора псевдослучайных чисел (PRNG) в операционной системе.
Клюбин опубликовал сообщение в блоге для разработчиков Android вскоре после того, как стало известно о краже как минимум 55 BTC из одного из биткоин-кошельков, сгенерированных в Android-приложении.
Сейчас стало понятно, что действительно уязвимости подвержены все приложения Android, которые используют встроенный Java Cryptography Architecture, в том числе Bitcoin-приложения. Кроме того, плохие последовательности псевдослучайных чисел поступают также в приложения, которые «напрямую обращаются к системному PRNG от OpenSSL без явной инициализации на Android», — пояснил Алекс Клюгин. Он также опубликовал код, как приложения Android должны правильно обращаться к PRNG, чтобы получить качественную последовательность псевдослучайных чисел.
Антивирусная компания Symantec считает, что уязвимости подвержены до 360 000 приложений Android, которые полагаются на интерфейс SecureRandom
Вопреки ранее распространенной информации, баг затрагивает абсолютно все версии Android, а не только Android 4.2 и более ранние версии, как сообщалось прежде. Это подтвердил специалист по безопасности Android Адриан Людвиг (Adrian Ludwig).