
Почему важен источник энтропии при генерации приватного ключа


Знаете ли вы, что приватный ключ Bitcoin - это 256-битное число? Это означает, что существует около 2 ^ 256 возможных комбинаций — настолько огромное число, что превосходит общее количество атомов в вселенной.
Приватные ключи являются основой безопасности криптовалюты, выступая в качестве эквивалента мастер-пароля для защиты ваших активов. Их безопасность в значительной степени зависит от случайности или энтропии, которая имеет решающее значение при их создании. Энтропия измеряется в битах, количественно определяя степень случайности или неопределенности системы.
Чтобы дать вам представление о важности случайности, подумайте вот о чем: низкая энтропия при генерации приватных ключей привела к значительным уязвимостям и даже взлому. В 2024 году из-за скомпрометированных приватных ключей было потеряно более 239 миллионов долларов, что подчеркивает, насколько важно обеспечить качественную генерацию этих ключей с использованием энтропии.
Итак, если приватный ключ Bitcoin — это просто число, сколько времени потребуется суперкомпьютеру, чтобы взломать его методом перебора? Дочитайте эту статью до конца, чтобы узнать ответ.
Что такое энтропия?
Энтропия — это способ измерить, насколько что-то случайное или труднопредсказуемое. Она очень важна для создания безопасных криптографических ключей. Это понятие пришло из области информации, где оно показывает, насколько мы не уверены в чем-то. Проще говоря, чем менее предсказуемо что-то, тем выше его энтропия.
Высокая энтропия нужна для приватных ключей в криптовалютах, потому что это делает их почти невозможными для подбора. Чтобы ключи были случайными, они могут возникать из разных источников, как, например, случайные события в аппаратуре, помехи в окружающей среде или действия пользователя, как движение мыши и нажатие клавиш. Операционная система собирает эти случайные события, чтобы создать действительно случайное число, которое используется в приватном ключе.
Если энтропии недостаточно, ключи будет легче угадать и это может привести к плохим последствиям. Например, если источник энтропии работает недостаточно хорошо, он может выдавать одни и те же или похожие числа, что позволит злоумышленникам угадать и воссоздать приватный ключ.
Эта случайность очень важна, так что даже сложные системы, как облачные хранилища и виртуальные компьютеры, используют специальное оборудование, чтобы обеспечить поступление качественной энтропии для операций в криптовалюте.
Как работает энтропия?
В аппаратных кошельках энтропия имеет решающее значение для создания безопасных приватный ключей. Вот как это работает:
Источник энтропии
Аппаратные кошельки, такие как Tangem, — имеют специальные генераторы случайных чисел (HRNG), которые помогают хранить ваши активы в надёжно. Они генерируют случайные числа путем измерения физических явлений, таких как электронный шум или тепловые колебания. Такой способ необходим для того, чтобы сделать ваши приватные ключи максимально непредсказуемыми.
Некоторые из этих кошельков позволяют вам самим добавлять энтропию, например, можно бросить кости и использовать полученные числа. Хотя это может не сильно изменить безопасность, это всё равно может быть весело.
Генерация ключей
После сбора достаточного количества энтропии кошелек использует ее для генерации приватного ключа. Этот процесс часто включает в себя её объединение с разными алгоритмами, такими как SHA-256 для получения 256-битного ключа. Многие аппаратные кошельки используют стандарт BIP39 для генерации сид-фразы фразы (из 12-24 слов) на основе энтропии. При необходимости эту фразу можно использовать для восстановления приватного ключа.
Безопасность процесса
Прошивка кошелька обеспечивает тщательное перемешивание энтропии, чтобы предотвратить любую предсказуемость. Затем она безопасно хранит приватный ключ в защищенной от взлома среде внутри устройства. Именно поэтому большинство аппаратных кошельков имеют сертифицированный CC защищенный элемент. Прошивка Tangem также была дважды тщательно проверена известными независимыми службами безопасности: Kudelski Security и Riscure.
В целом, аппаратные кошельки изолируют процессы генерации энтропии и хранения ключей от остальных операций устройства. Такое разделение сводит к минимуму риск заражения вредоносным ПО или другими внешними угрозами.
Резервное копирование и восстановление
Сид-фразу, созданную на основе энтропии, нужно обязательно записать и хранить в надёжном месте. Эта фраза имеет решающее значение для восстановления кошелька в случае потери или повреждения устройства. Сама фраза содержит энтропию, использованную для создания ключа, что делает её безопасным методом резервного копирования.
Аппаратные кошельки используют высококачественную энтропию, чтобы гарантировать безопасность и устойчивость к атакам генерируемых ими приватных ключей, что делает их одним из самых безопасных способов хранения криптовалюты.
Почему важна энтропия?
Поскольку они содержат одну и ту же информацию, но в разных форматах, ваша энтропия должна оставаться такой же конфиденциальной, как и ваша сид-фраза. Повторюсь: любой, у кого есть доступ к вашей энтропии - сможет получить доступ ко всему вашему кошельку!
Точно так же, как ваша сид-фраза даёт кому-то доступ ко всем вашим приватным ключам и, следовательно, ко всем учётным записям, защищённым этим кошельком, так и ваша энтропия даёт доступ к ним! Таким образом, для обеспечения безопасности крайне важно, чтобы ваша энтропия была максимально случайной и её было сложно подобрать.
Вы же не хотите, чтобы кто-то угадал вашу энтропию и получил доступ к вашим средствам, верно? Именно поэтому число должно быть настолько случайным, чтобы угадать последовательность или встретить одну и ту же комбинацию дважды было статистически невозможно.
Если вашу энтропию легко угадать, хакеры воспользуются этим и смогут легко получить доступ к вашим активам. Поэтому крайне важно выбрать криптокошелёк, который учитывает это.
Понимание энтропии и seed-фраз
Случайность вашей seed-фразы имеет решающее значение для поддержания безопасности. Ручной подбор слов или использование предсказуемых шаблонов значительно ослабит защиту вашего кошелька. Основанный на энтропии метод, используемый Tangem, обеспечивает уровень случайности, необходимый для надежной защиты от различных крипто-атак.
Хотя Tangem предоставляет инструменты для безопасной генерации энтропии, важно помнить, что защита вашей сид-фразы—это ваша ответственность. Никогда не делитесь этой информацией ни с кем, даже с представителями Tangem. Ваша сид-фраза — это ключ к вашему кошельку, и её секретность жизненно важна для обеспечения его безопасности.
Почему важна большая энтропия?
При выборе кошелька в первую очередь следует обратить внимание на то, как он генерирует энтропию. Утечка данных в Trust Wallet в 2022 году была в значительной степени связана с предсказуемым характером генерации энтропии в кошельке.
Компания SecBit проделала большую работу по исследованию и объяснению этой уязвимости в своей статье в блоге: «Лето Fomo в Trust Wallet: новое открытие уязвимости с низкой энтропией, обнаруженной в 2018 году», но мы выделим основные моменты.
Платформа Trust Wallet для iOS использовала библиотеку Trezor-crypto для генерации слов BIP39. Библиотека содержала пример кода, который ни в коем случае нельзя было использовать. Там было предупреждение о том, что его нельзя использовать в реальных ситуациях, только для тестирования.
- Код состоит из двух основных частей: random32 и random_buffer.
- random32:
— Эта часть создаёт случайные числа, но делает это не надёжным способом.
— Проблема в том, что если вы примерно знаете, когда было создано число, вы можете его угадать.
— Что ещё хуже, если два человека создадут числа в одну и ту же секунду, они получат одно и то же «случайное» число. - random_buffer:
— Эта часть заполняет пространство случайными байтами (единицами данных).
— Для этого она использует random32, поэтому у неё те же проблемы с безопасностью. - Большая проблема:
— Этот код использовался для создания seed-фраз, которые дают доступ к кошелькам пользователей.
— Поскольку его случайность не является по-настоящему случайной, хакерам было гораздо проще угадать эти фразы.
— Вместо того, чтобы угадывать из миллионов вариантов, им нужно было угадать из нескольких тысяч (исходя из возможного количества раз, когда фраза создавалась). - Ошибка:
- Trust Wallet проигнорировал это предупреждение и все равно использовал код.
Это означало, что энтропию фраз, используемых для создания кошельков пользователей, воссоздать было намного проще, чем следовало-бы.
Недавнее нарушение безопасности в Trust Wallet напоминает нам о жизненно важном значении сложного генерирования энтропии для защиты кошельков. Trust Wallet решил проблему, компенсировав пользователям их потери.
Как кошелек Tangem генерирует энтропию
Кошелек Tangem обеспечивает надежную защиту ваших активов, начиная с процесса генерации энтропии. В кошельке используется сертифицированный генератор случайных чисел, тщательно протестированный независимыми компаниями. Это гарантирует непредсказуемость генерируемых чисел, защищая ваши монеты от потенциальных атак.
Сколько времени потребуется для подбора приватного ключа BTC?
Чтобы понять, почему защитить свой Bitcoin сложнее всего, давайте посмотрим на то, как это работает. Приватный ключ Bitcoin - это очень, очень большое число. Длиной 256 бит, и это значит, что существует целых 2 в степени 256 разных приватных ключей.
Даже если бы у нас был самый мощный компьютер на свете, чтобы угадать один из этих ключей, потребовалось бы неисчислимое количество времени. Мы говорим о сроках, которые гораздо длиннее, чем возраст всей вселенной.
Предположим, что суперкомпьютер может проверять 1 триллион ключей каждую секунду. Даже так, поиск одного приватного ключа занял бы в среднем около 3,67 x 10^57 лет. А вселенной всего около 13,8 миллиарда лет!
Так что получается, что время, нужное для взлома приватного ключа BTC, в 1,33 × 10^47 раз больше, чем возраст вселенной!