Действующая в сфере сетевой безопасности компания Symantec недавно сообщила об обнаружении уязвимости, способной затронуть безопасность данных сотен тысяч пользователей операционной системы Android (всех версий). Вчера Google подтвердила наличие этой уязвимости, призвав разработчиков приложений воспользоваться более безопасными технологиями. Уязвимость была использована на прошлой неделе для взлома кошелька денежной системы Bitcoin, с которого была похищена сумма, эквивалентная $5720. Основана она на слабости криптографической системы ОС, благодаря которой многие приложения используют ненадёжные «псевдослучайно генерируемые» пароли.
Приложения, использующие Java Cryptography Architecture (JCA) для генерации ключей и цифрового подписывания, получают не самые надёжные значения из-за неправильной инициализации PRNG – генератора псевдослучайных чисел. PRNG представляет собой основной компонент компьютерной криптографии. Из-за уязвимости Android во время взлома на прошлой неделе оказалось возможным использовать одну и ту же последовательность чисел для подтверждения разных транзакций. Также затронуты приложения, которые вызывают системные OpenSSL PRNG без инициализации, а вот зашифрованные соединения, использующие классы HttpClient и java.net, остальнись неуязвимыми. По подсчётам Symantec, программным сервисом SecureRandom, использующим JCA, пользуются 360 тысяч программ.
Транзакции в сети Bitcoin являются публично видимыми, поэтому злоумышленники сканируют данные о них, выискивая нужные именно им, получают ключ и снимают средства с кошелька ничего не подозревающего владельца. Google рекомендует разработчикам приложений осуществлять вызов случайных чисел более явно, чтобы минимизировать связанный с этой уязвимостью риск. Следует отметить, что сама архитектура сети Bitcoin с её открытостью и децентрализацией позволила осуществить подобный взлом.