JavaScript-приложения криптовалют, использующие SecureRandom(), могли генерировать уязвимые ключи

Рaскрыты свeдeния o сeрьёзныx прoблeмax с кaчeствoм гeнeрaции ключeй криптoвaлют чeрeз брaузeрныe web-интeрфeйсы или — или стaрыe прилoжeния, написанные на JavaScript, в которых пользу кого получения случайных чисел использовался откат SecureRandom() из библиотеки jsbn. Неполный размер энтропии приводил к созданию предсказуемых ключей и делал реальным ассортимент закрытого ключа по открытому. Рак головы затрагивает только ключи, сгенерированные подле помощи JavaScript-приложений, в которых применяется старуха версия библиотеки jsbn, выпущенная вплоть до 2013 года. Например, проблема зафиксирована в выпусках приложения BitAddress после 2013 года и bitcoinjs до 2014 возраст. Важно отметить, что в сети в JavaScript-реализациях криптовалют и в web-сервисах предварительно сих пор встречается уязвимый анахронический код, например, при запросе jsbn для первом месте в выдаче Google выдаётся депортация на форк репозитория jsbn бери GitHub, который был ответвлён 7 полет назад (автор данного форка малую толику дней назад удалил его). Центр проблемы в том, что до появления Web Crypto API кайфовый SecureRandom() пытался собрать энтропию возле помощи API window.crypto (nsIDOMCrypto), предоставляющего ход к CSPRNG, но из-за опечатки в функции сравнения версии браузера создавалась положение, при которой библиотека пыталась адресоваться к window.crypto.random в бразузере безо его поддержки и без вывода ошибки откатывалась получи и распишись использование ненадёжного математического генератора псевдослучайных чисел math.Random, тот или иной способен обеспечить всего 48-двоичная единица информации энтропии (в реальных конфигурациях выдаёт обширно меньше). Трудоёмкость воссоздания закрытого ключа методом прямого перебора (brute force) угоду кому) уязвимых ключей, созданных при уровне энтропии 48-двоичная единица информации, оценивается при наличии достаточно громадный вычислительной мощности примерно в одну неделю работы. Благодаря чего всем пользователям, использующим подверженные уязвимости адреса криптоваолют, рекомендуется на с них средства на новые адреса, созданные с использованием качественного генератора случайных чисел. В придачу того, даже при использовании CSPRNG, тангента, созданный в программах на базе jsbn, неважный (=маловажный) может считаться надёжным, так словно SecureRandom() прогоняет выход через проблематический алгоритм RC4, который приводит к появлению коррелирующих смещений (biases). Бустер: http://www.opennet.ru/opennews/art.shtml?num=48448