Все о хранении и защите криптоключей

Что такое приватный ключ, как его теряют и как этого избежать

Что такое приватный ключ

Приватный ключ — это шестнадцатиричное число весом 256 бит, которое используется для восстановления доступа к кошельку. 

На данный момент 256-битного шифра достаточно для обеспечения защиты от брутфорс-атак (атака методом подбора). Для того, чтобы взломать сеть Ethereum, хакеру необходимо проверить 2^256 ключей, и сейчас такая работа может занять тысячи лет даже у самого мощного компьютера в мире.

Давайте посчитаем, сколько приватных ключей необходимо проверить, чтобы наткнуться на один активный (т.е. принадлежащий какому-либо человеку). Учитывая, что количество активных кошельков в Ethereum составляет приблизительно 50 миллионов, найдем степень двойки, наиболее близкую к этому числу:

Тогда получается, что отношение использующихся приватных ключей к пустым составляет (2^26) / (2^256). Делаем вывод — для подбора доступа хотя бы к одному кошельку со средствами необходимо будет осуществить перебор 2^230 приватных ключей. Вот как выглядит это число:

Появление квантовых компьютеров может поставить под угрозу безопасность криптокошельков. Однако переход на более сложные методы шифрования или увеличение веса приватного ключа может запросто отодвинуть проблему на сотни лет вперед. На данный момент нет потребности в переходе на более сложные методы шифрования ввиду того, что скорость дешифрования (получения доступа к кошельку по имеющемуся ключу) на обычных компьютерах может ощутимо уменьшиться.

Как приватный ключ может выглядеть в вашем кошельке

Вот пример того, как может выглядеть приватный ключ:

50645367566B59703373357638792F423F4528482B4D6251655468576D5A7134 (ни в коем случае не используйте этот ключ)

В Metamask он может выглядеть следующим образом:

Не ваш ключ — не ваша крипта

Когда у вас есть контроль над закрытым ключом, вы обладаете правом совершать транзакции и расходовать средства, привязанные к этому адресу. Закрытый ключ — это то, чем вы никогда не должны делиться с физическими или юридическими лицами, поэтому он и называется закрытым ключом.

Как только ваш приватный ключ попадает в открытый доступ — кошелек вместе со средствами на нем никогда не станут вашими. Зачастую бывает так, что со сливом приватного ключа в открытый доступ из кошелька пропадают только ETH, при этом ERC-20 токены и NFT остаются на аккаунте. 

Такое может быть в случае, когда аккаунт патрулирует больше одного бота. Как только вы отправляете ETH на скомпрометированный кошелек, боты конкурируют друг с другом для того, чтобы как можно быстрее вывести новопришедшие ETH. Из-за этого никто не может вывести любые другие средства с кошелька. Они могут там застрять на продолжительное время.

Таких ботов называют ETH Sweepers. Для спасения средств необходимо обратиться в специальные службы, приведенные в статье об этих ботах.

Как теряют ключи

Приведем несколько примеров и гипотетических ситуаций, когда третьи лица могут получить доступ к вашему приватному ключу.

  1. Пользователи антидетект-браузера Dolphin Anty потеряли средства со своих криптокошельков. Хакеры могли извлечь Vault Data каждого из кошельков Metamask и затем подобрать пароль (который устанавливает пользователь для защиты приватного ключа) при помощи вычислительных мощностей в виде ферм с видеокартами. Особенность браузера Dolphin Anty в том, что вся информация хранится на облачном хранилище компании. Не стоит путать антидетект-браузеры с обычными (Chrome, Firefox, Opera и т.д.), где вся информация хранится только на вашем ПК.
  2. Приватный ключ нельзя оставлять нигде в интернете. Не сохраняйте ключ в переписке с самим с собой во Вконтакте или Телеграм, в Google Cloud и т.д., ведь в случае взлома вашего аккаунта или сервиса ваш приватный ключ также попадет в публичный доступ.
    Как пример, один из разработчиков на Ethereum случайно оставил свой приватный ключ в репозитории Github. Через час он потерял свои средства.
  3. Приватные ключи нежелательно хранить на компьютере, особенно если вы любите пользоваться неофициальными версиями платных программ. Хакеры любят распространять вредоносные программы («njRat») вместе с пиратским софтом. Если злоумышленник умело занимается криптованием вирусов, то даже ваш антивирус может не спасти от взлома. 
  4. Факт хранения seed-фразы на бумаге не защищает вас от ее утечки. Например, в США офицер полиции случайно слил в сеть ключ восстановления при обыске подозреваемого.

Как правильно хранить ключи

Рассмотрим примеры методов хранения приватных ключей, начиная от самых простых и заканчивая наиболее сложными и безопасными.

Если вы не хотите хранить приватный ключ (или аналог к нему — seed-фразу) на бумаге, то можно рассмотреть способы хранения на ПК. Рекомендуем сохранять текстовые файлы с ключами в непримечательных файлах под такими же названиями — для этого очень хорошо подходят системные файлы. Например, файл C:\Program Files (x86)\Microsoft\binary.txt вряд-ли будет когда-либо обнаружен в случае, если злоумышленник получит доступ к вашим файлам. Также можно рассмотреть способы хранения текстовиков в файлах игр или вместе с материалами для учебы. Очень важно не называть текстовики названиями, которые часто используются разработчиками (например bin.txt, temp.txt и т.д.), поскольку они могут случайно перезаписаться.

Обязательно рассмотрите возможность хранения ключей на запасных носителях (flash-накопители). Так вы избежите кражи данных при взломе ПК.

Можно заархивировать важные файлы в WinRAR архиве и задать ему пароль. Особенно остро проблема может стоять в случаях, когда вы храните приватные ключи на SSD диске, поскольку такие носители навсегда теряют информацию в случае поломки. А вот информацию из HDD дисков можно извлечь даже в случаях небольшого механического воздействия на них, а также такие носители защищены от воздействия коротким замыканием.

Лучше всего хранить приватные ключи (или seed-фразы) на бумаге или других физических носителях. Обязательно убедитесь в надежности места хранения вашего ключа.

Существует возможность создания кошельков социального восстановления. Принцип прост — в случае, если вы потеряли доступ к кошельку, вы можете обратиться к своим доверенным лицам, которые могут восстановить средства при помощи мультиподписи. Такой способ хранения достаточно сложен и имеет некоторые недостатки.

Будьте бдительны и крайне аккуратно и бережно храните свои ключи. Позаботиться о безопасности не так сложно, а вот вернуть потерянные средства будет невозможно.