Любая система уязвима



Биткойн кошельки множество лет считались неприступными. Сильная математика в основе криптографии защищала кошельки от взлома пароля. Защищала и от самих несчастных владельцев, которые пытались восстановить доступ забыв/удалив свой сохранённый пароль. Сколько биткойнов остались заблокированными на кошельках 2011-2015 года? Очень и очень много, ведь тогда их добыча была проще. Всего баланс кошельков тех годов оценивается в 1,4 миллиона биткойнов.



Теперь же пароли от кошельков 2011-2015 годов можно попробовать восстановить с помощью эксплойта Randstorm. Как обнаружили исследователи компании Unciphered, специализирующейся на восстановлении криптовалют, при созданием кошельков с помощью Open-source библиотеки BitcoinJS генерировались недостаточно случайные ключи шифрования. Цепочка зависимостей там сложная, BitcoinJS использовала библиотеку JSBN со уязвимой функцией SecureRandom(), которая в свою очередь усиливалась недостатками другой функции Math.random(), используемой в браузерах.



В результате ключ шифрования генерировался не совсем случайно и перебрать его стало возможно, особенно просто для ключей сгенерированных до марта 2012 года. В дальнейшем BitcoinJS перестали использовать библиотеку JSBN и цепочка уязвимостей прервалась. Как защитить уже созданные в тот период кошельки?

Создать новый кошелек и перевести средства, иначе никак.



Любая система уязвима, даже если сейчас кажется, что это не так.