Ошибка в JavaScript-классе привела к генерации уязвимых ключей для криптокошельков

Специалист по безопасности Дэвид Джерард в своём блоге сообщил, что использующие класс SecureRandom() JavaScript-приложения криптовалют могли генерировать уязвимые ключи. Созданные в браузере пароли также можно взломать.

В чём заключается проблема?

Функция генерирует ключи, которые имеют менее 48 бит энтропии. Затем SecureRandom() запускает номер, полученный через устаревший алгоритм RC4. Это ещё больше снижает количество бит энтропии, а ключ становится более предсказуем.

Уязвимы адреса, созданные с использованием BitAddress до 2013 года, а также Bitcoinjs до 2014 года. Слабые ключи генерируют приложения, использующие версии jsbn.js до 2013 года — они содержат SecureRandom().

В декабре 2017 года у пользователей Reddit украли Bitcoin Cash через сервис рассылки Mailgun. Расследование показало, что злоумышленник взломал аккаунт сотрудника сервиса и через него запрашивал смену паролей.

Источник: блог Дэвида Джерарда

Вакансии в тему:

Лого компании «Алгоритмика»
JavaScript Developer (React)
JavaScript Developer (React)
Алгоритмика, Москва, до 150 000 ₽
Лого компании «12Go Asia»
PHP-разработчик
PHP-разработчик
12Go Asia, от 1 500 до 2 500 $ (до налогов)
Лого компании «Samsung Research Center»
Full Stack разработчик
Full Stack разработчик
Samsung Research Center, Москва, от 90 000 ₽ (до налогов)