The OpenNET Project / Index page

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

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

Раскрыты сведения о серьёзных проблемах с качеством генерации ключей криптовалют через браузерные web-интерфейсы или старые приложения, написанные на 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 бит, оценивается при наличии достаточно большой вычислительной мощности примерно в одну неделю работы. Поэтому всем пользователям, использующим подверженные уязвимости адреса криптовалют, рекомендуется перенести с них средства на новые адреса, созданные с использованием качественного генератора случайных чисел. Кроме того, ключ, созданный в программах на базе jsbn, даже при использовании CSPRNG не может считаться надёжным, так как SecureRandom() прогоняет выход через ненадёжный алгоритм RC4, который приводит к появлению коррелирующих смещений (biases).

  1. Главная ссылка к новости (https://davidgerard.co.uk/bloc...)
  2. OpenNews: Криптовалюта Monero не настолько защищена от отслеживания, как предполагалось
  3. OpenNews: Выявлена лёгкая в реализации атака на P2P-сеть криптовалюты Ethereum
  4. OpenNews: Ошибка в реализации криптовалюты Zcoin позволяла повторно тратить средства
  5. OpenNews: Опубликован прототип бэкдора в генераторе псевдослучайных чисел Dual_EC_DRBG
  6. OpenNews: Критическая уязвимость в генераторе случайных чисел GnuPG и Libgcrypt
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: bitcoin, crypt, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.2, Аноним, 20:01, 16/04/2018 [ответить] [смотреть все]    [к модератору]
  • +/
    Надо было собирать энтропию с событий ввода как GnuPG
     
  • 1.3, Аноним, 20:14, 16/04/2018 [ответить] [смотреть все]     [к модератору]
  • –3 +/
    Ой, какие бомбы замедленного действия Похоже криптой не следует пользоваться е... весь текст скрыт [показать]
     
     
  • 2.4, A.Stahl, 20:34, 16/04/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +12 +/
    А ЯваСкриптом нужно было начинать не пользоваться ещё 15 лет назад.
     
     
  • 3.13, Аноним, 22:00, 16/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    А слабо предоставить замену Ну хотя бы частично компенсирующую жс, не надо всех... весь текст скрыт [показать]
     
     
  • 4.14, Аноним, 22:58, 16/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Assembler, C, Lisp В принципе, при грамотном отношении этих трёх было бы достат... весь текст скрыт [показать]
     
     
  • 5.16, A.Stahl, 23:37, 16/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ты злой Нет, хуже Ты во власти стереотипов На ЯваСкрипте не пишут дураки Вов... весь текст скрыт [показать]
     
     
  • 6.31, Аноним, 00:13, 18/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    - А если хороший человек сделает гадость, он так и останется хорошим - Хороший ... весь текст скрыт [показать]
     
  • 5.19, Аноним, 07:58, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Т е блобы во все щели Про квалификацию тыжпограммистов на С и Lisp можно сказа... весь текст скрыт [показать]
     
     
  • 6.20, Crazy Alex, 09:11, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Слышал про такую штуку, как свободный софт Хотя выбор языков забавный, конечно ... весь текст скрыт [показать]
     
     
  • 7.25, Аноним, 11:28, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    M или Гугель сделают браузер в котором работать будет только код написанный под... весь текст скрыт [показать]
     
  • 6.21, commiethebeastie, 09:17, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Когда на них тыжпрограммисты писали Они же фокспро, дельфи и сишарпик использую... весь текст скрыт [показать]
     
     
  • 7.27, Аноним, 11:33, 17/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Как раз тыжпограмисты используют C, т.к. это даёт +100500 к крутости.
     
  • 6.33, Аноним, 00:45, 18/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Какие ещё блобы code script type text lisp onload lambda this ... весь текст скрыт [показать]
     
     
  • 7.36, Аноним, 08:01, 18/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Для ускорения работы и повышения безопасности это надо поместить в специальную с... весь текст скрыт [показать]
     
  • 5.30, rvs2016, 16:01, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Остаётся ответить только на вопрос Как имеющиеся браузеры заставить выполнять п... весь текст скрыт [показать]
     
     
  • 6.32, Аноним, 00:44, 18/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А что, понятие API только для js изобрели и для других языков принципиально нель... весь текст скрыт [показать]
     
     
  • 7.37, rvs2016, 14:12, 18/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну конечно же изобрести можно любые программы, подпрограммы да алгоритмы Но в б... весь текст скрыт [показать]
     
     
  • 8.38, Аноним, 23:32, 18/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Изначально вопрос стоял предложите альтернативы яваскрипту Если одним из крит... весь текст скрыт [показать]
     
  • 6.34, Аноним, 00:47, 18/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Первые два - в виде устанавливаемых из репозитория пакетного менеджера или скач... весь текст скрыт [показать]
     
     
  • 7.39, rvs2016, 10:05, 19/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Это слова для кого Для программистов и сисадминов Или для пользователей Прогр... весь текст скрыт [показать]
     
  • 4.23, АНГЫВНАГЫНВАШЩ, 09:36, 17/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    для анимации кнопочек JS более чем достаточно
     
  • 2.5, Аноним, 20:41, 16/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Да эта пирамида дай Б-г год ещё протянет ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.24, Аноним, 10:40, 17/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Что еще по "телевизеру" сказали?
     
  • 1.10, Аноним, 21:33, 16/04/2018 [ответить] [смотреть все]    [к модератору]  
  • –6 +/
    https://ru.wikipedia.org/wiki/%D0%91%D0%BB%D0%BE
     
  • 1.12, Аноним, 21:59, 16/04/2018 [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Сами виноваты Я никогда не пользовался этим дерьмом Зачем пользоваться всяким ... весь текст скрыт [показать]
     
     
  • 2.17, KonstantinB, 03:21, 17/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Суть проблемы как раз в том, что в некоторых браузерах нужного нет, а в комбинац... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.22, Аноним, 09:35, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Значит эти браузеры - гoвно и их пользователей надо послать на хер, раз они не м... весь текст скрыт [показать]
     
     
  • 4.28, KonstantinB, 14:51, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    От проекта зависит Я б с удовольствием слал, но некоторые заказчики хотят, чтоб... весь текст скрыт [показать]
     
     
  • 5.29, KonstantinB, 14:58, 17/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Впрочем, Math random голый я бы все равно не брал Сходил бы на сервер за ранд... весь текст скрыт [показать]
     
     
  • 6.40, qwe, 02:41, 21/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Сходил бы на сервер за рандомом, если в браузере все плохо.

    Ага, отличная идея - формировать приватные ключи пользователя на сервере.

     
  • 1.18, Аноним, 07:46, 17/04/2018 [ответить] [смотреть все]     [к модератору]  
  • +/
    JavaScript во все поля и минимум юнит-тестов - что ты с хипстеров возьмёшь ... весь текст скрыт [показать]
     
     
  • 2.35, Аноним, 01:41, 18/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    У хипстеров как раз TDD вместо мозга Написали тест - написали реализацию Не на... весь текст скрыт [показать] [показать ветку]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


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