Защищаем информацию: схема разделения секрета Шамира и Биткоин

Считается, что хранить биткоины надежнее всего на холодных кошельках. В этом случае безопасность приватного ключа обеспечивается seed-фразой из 12 слов. Но насколько далеко можно зайти в поисках надежности?

Криптография и конфиденциальность

Несомненным плюсом криптовалют является возможность для пользователя сохранять в своих руках максимум контроля над активами. Владелец крипты может не зависеть от третьих лиц, таких как банки, государства или биржи, держа свои активы на собственном кошельке. В этом случае приватный ключ оказывается защищенн seed-фразой. Тот, кто ею обладает, может восстановить доступ к кошельку.

С одной стороны, seed-фраза, если ее надежно хранить, превосходно обеспечивает сохранность криптовалюты. С другой стороны, в случае ее утраты, доступ к средствам может оказаться навсегда потерянным. У Биткоина нет горячей линии, куда можно позвонить, суды, программисты, техподдержка – никто не сможет помочь в случае утраты seed-фразы. Для смягчения данной проблемы без риска уменьшения безопасности используется схема разделения секрета Шамира (Shamir’s secret sharing – сокращенно SSS).

Ади Шамир (Adi Shamir) – израильский ученый-криптограф. Его вклад в изучение вопроса сложено переоценить. Криптографический алгоритм с открытым ключом RSA (сокращение от фамилий Rivest, Shamir и Adleman) стал важной вехой в истории развития методов ассиметричного шифрования. Протокол Фиата–Шамира широко используется для идентификации с нулевым разглашением. 

В то же время, наработки Ади Шамира напрямую используются в криптовалютах весьма ограниченно. BTC использует не RSA-протокол, а более удобный ECDSA, работающий на эллиптических кривых. Протокол Фиата–Шамира также имел довольно ограниченную реализацию. Существует научное исследование, признавшее его недостаточно безопасным.

Схема разделения секрета Шамира

Вернемся к SSS. Алгоритм SSS работает путем разделения секрета на несколько частей, каждая из которых сама по себе бесполезна. Чтобы восстановить и извлечь секрет, необходимо объединить определенное количество долей, которых будет достаточно. Иными словами, секрет делится на n-частей, и чтобы его восстановить, нужно заранее заданное m-количество (понятно, что n>=m). 

Например, мы разделили секрет на шесть частей и решили, что четырех будет достаточно на его восстановление. В этом случае даже при утрате двух частей мы сможем восстановить секрет. По сути это очень напоминает мультиподпись.

Когда это может быть полезным

В контексте хранения сид-фразы SSS открывает возможности для шифровки информации с последующим дроблением секрета на части. Это в теории позволяет более надежно хранить ключ от биткоин-кошелька. Или, например, распределить секрет среди доверенных лиц. В этом случае каждый отдельный человек не сможет самостоятельно получить доступ к средствам.

Читать также:
Бразильский регулятор запустит «песочницу» для токенизации активов в 2024 году

Обычная seed-фраза может быть подвержена риску потери или перехвата злоумышленником. Снижение обоих этих рисков одновременно невозможно в сценарии с seed-фразой: риск потери можно уменьшить путем создания нескольких копий, но это увеличивает риск кражи; риск кражи можно снизить, имея одну копию, но это увеличивает риск потери. Схема разделения секрета Шамира устраняет оба этих риска, поскольку существует несколько частей секрета (снижается риск потери), а для восстановления кошелька требуется заранее определенное количество частей (снижается риск кражи).

Интересное применение этого способа может быть связано с наследованием: части секрета можно распределить среди наследников, и тогда только сообща они смогут получить доступ к кошельку.

Пример реализации схемы – отдельные аппаратные криптокошельки с реализованной функцией Shamir Backup. В частности, ими выступают некоторые устройства от Trezor. Но отметим, что решение может подойти не всем.

Недостатки использования SSS

Использовать SSS можно, как правило, вместе с аппаратными кошельками. В этом случае есть риск вредоносного ПО и прошивок, которые перехватят нужное количество частей секрета, захватят доступ к кошельку. Более того, и без злоумышленников есть риски, связанные с аппаратными кошельками: порча или потеря устройства, неудачная прошивка.

Разделение одного секрета на несколько частей может гипотетически снизить риск потери (за счет того, что не все части нужны для восстановления), но этот риск остается, и не так просто оценить, насколько он ниже по сравнению с разумным и аккуратным хранением обычной seed-фразы.

Более того, SSS ограничивает «пользовательскую мобильность», может заинтересовать долгосрочных инвесторовходлеров, но активных юзеров, которым нужен постоянный доступ к активам – уже спорно. В целом, использование SSS в таком виде может оказаться избыточным: привычная всем seed-фраза – это уже вполне надежный механизм, который, кстати, можно усилить и другими способами.

Альтернативы

К примеру, кодовая фраза. Также не будет ошибкой просто принять разумные меры безопасности: записать seed-фразу и спрятать ее в надежном месте, создать зашифрованный носитель (разумеется, со всеми предосторожностями), купить специальную капсулу, которая в воде не тонет и в огне не горит, добавить лишние фразы в seed, которые стоит предварительно заучить, и другие способы.