Как генерация приватных ключей стала болью
Абсолютно каждый, кто хотя бы раз пользовался crypto - первым делом сталкивался с сид-фразой или приватным ключом при создании кошелька
Тебе дают этот ключ, и ты спокойно считаешь, что этот кусочек кода надежно защитит твои средства. Но системы, на которых все строится, далеко не всегда идеальны
Milk Sad Disclosure
Учитывая степень развития разработки по сравнению с 14-15 годом и ранее, удивляешься, как такая оплошность, как в Libbitcoin Explorer могла вообще всплыть аж в 22 году
Консольная команда bx seed, в Libbitcoin Explorer версиями 3.x использует генератор псевдослучайных чисел - Mersenne Twister (PRNG), инициализированный 32 битами системного времени.
// Что забавно, популярная документация “Mastering Bitcoin” тоже предлагает использование bx seed для генерации кошельков
Вы вообще понимаете что это значит? о_0
Безопасная криптография предполагает использование огромных, не поддающихся угадыванию, чисел. Если генератор приватного ключа слаб - почти во всех случаях результаты генерации будут скомпрометированы.
А в случае с Milk Sad, приватный ключ базировался на 32-битном временном сиде
Т.е в момент генерации брался timestamp (буквально - какое сейчас время на компе) и переводился в 32-й битный приватный ключ
Git с кодом
В этом случае практическая безопасность кошелька снижается с 256 бит до всего лишь 32 бит неизвестной ключевой информации.
32-битное ключевое пространство - это 2^32, или 4,294,967,296 различных уникальных комбинаций.
Для понимания - неплохим игровым пк такое значение перебирается всего лишь за сутки
А почему уязвимость назвали "Milk Sad"?
Запуск bx seed на версиях 3.x с системным временем 0.0 всегда генерирует следующую сид фразу: "milk sad wage cup reward umbrella...."
Основная кража произошла в 2023 году, хотя первоначальная эксплуатация, вероятно, началась еще раньше. Но все же, не так много денег было украдено, предположительно +-1M$
Но это только начало безумия
Абсолютно каждый, кто хотя бы раз пользовался crypto - первым делом сталкивался с сид-фразой или приватным ключом при создании кошелька
Тебе дают этот ключ, и ты спокойно считаешь, что этот кусочек кода надежно защитит твои средства. Но системы, на которых все строится, далеко не всегда идеальны
Milk Sad Disclosure
Учитывая степень развития разработки по сравнению с 14-15 годом и ранее, удивляешься, как такая оплошность, как в Libbitcoin Explorer могла вообще всплыть аж в 22 году
Консольная команда bx seed, в Libbitcoin Explorer версиями 3.x использует генератор псевдослучайных чисел - Mersenne Twister (PRNG), инициализированный 32 битами системного времени.
// Что забавно, популярная документация “Mastering Bitcoin” тоже предлагает использование bx seed для генерации кошельков
Вы вообще понимаете что это значит? о_0
Безопасная криптография предполагает использование огромных, не поддающихся угадыванию, чисел. Если генератор приватного ключа слаб - почти во всех случаях результаты генерации будут скомпрометированы.
А в случае с Milk Sad, приватный ключ базировался на 32-битном временном сиде
Т.е в момент генерации брался timestamp (буквально - какое сейчас время на компе) и переводился в 32-й битный приватный ключ
Git с кодом
В этом случае практическая безопасность кошелька снижается с 256 бит до всего лишь 32 бит неизвестной ключевой информации.
32-битное ключевое пространство - это 2^32, или 4,294,967,296 различных уникальных комбинаций.
Для понимания - неплохим игровым пк такое значение перебирается всего лишь за сутки
А почему уязвимость назвали "Milk Sad"?
Запуск bx seed на версиях 3.x с системным временем 0.0 всегда генерирует следующую сид фразу: "milk sad wage cup reward umbrella...."
Основная кража произошла в 2023 году, хотя первоначальная эксплуатация, вероятно, началась еще раньше. Но все же, не так много денег было украдено, предположительно +-1M$
Но это только начало безумия