The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"JavaScript-приложения криптовалют, использующие SecureRandom..."
Отправлено opennews, 16-Апр-18 19:52 
Раскрыты (https://davidgerard.co.uk/blockchain/2018/04/11/javascript-s... сведения о серьёзных проблемах с качеством генерации ключей криптовалют через браузерные web-интерфейсы или старые приложения, написанные  на JavaScript, в которых для получения случайных чисел использовался класс SecureRandom() из библиотеки jsbn (https://github.com/andyperlitch/jsbn). Недостаточный размер энтропии приводил к созданию предсказуемых ключей и делал реальным подбор закрытого ключа по открытому.


Проблема затрагивает только ключи, сгенерированные при помощи JavaScript-приложений, в которых применяется старая версия библиотеки jsbn, выпущенная до 2013 года. Например, проблема зафиксирована в выпусках приложения BitAddress до 2013 года и bitcoinjs до 2014 года. Важно отметить, что в сети в JavaScript-реализациях криптовалют и в web-сервисах до сих пор встречается уязвимый старый код, например, при запросе jsbn на первом месте в выдаче Google выдаётся ссылка на форк репозитория jsbn на GitHub, который был ответвлён 7 лет назад (автор данного форка несколько дней назад удалил (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018... его).

Суть проблемы в том, что до появления Web Crypto API класс SecureRandom() пытался (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018... собрать энтропию при помощи API window.crypto (nsIDOMCrypto), предоставляющего доступ к CSPRNG, но из-за опечатки в функции сравнения версии браузера создавалась ситуация, при которой библиотека пыталась обратиться к window.crypto.random в бразузере без его поддержки и  без вывода ошибки откатывалась на использование ненадёжного математического генератора псевдослучайных чисел math.Random, который способен обеспечить всего 48-бит энтропии (в реальных конфигурациях выдаёт заметно меньше).

Трудоёмкость воссоздания закрытого ключа методом прямого перебора (brute force) для уязвимых ключей, созданных при уровне энтропии 48-бит, оценивается при наличии достаточно большой вычислительной мощности примерно в одну неделю работы. Поэтому  всем пользователям, использующим подверженные уязвимости адреса криптоваолют, рекомендуется перенести с них средства на новые адреса, созданные с использованием качественного генератора случайных чисел. Кроме того, даже при использовании
CSPRNG, ключ, созданный в программах на базе jsbn, не может считаться надёжным, так как SecureRandom() прогоняет выход через ненадёжный алгоритм RC4, который приводит (https://ru.wikipedia.org/wiki/RC4#%D0%98%D1&#... к появлению коррелирующих смещений (biases).

URL: https://davidgerard.co.uk/blockchain/2018/04/11/javascript-s.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=48448

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру