Безопасность

Фразы-семена: 12 слов, которые стоят между вами и потерей всего

Эти слова — не пароль. Это и есть деньги.

Фраза-семенная фраза, обычно состоящая из 12 или 24 слов, взятых из стандартизированного списка из 2 048 слов, — это не учетные данные для входа, открывающие доступ к средствам, хранящимся где-то еще. Математически это и есть сам кошелек. Каждое из этих слов кодирует фрагмент исходной энтропии, который детерминированный алгоритм (описанный в стандарте BIP39) преобразует в главный закрытый ключ, и каждый биткоин-адрес, который кошелек когда-либо генерировал или когда-либо сгенерирует, выводится из этого единственного ключа.

Нет ни корпоративной базы данных, хранящей копию, ни службы поддержки, которая могла бы помочь восстановить забытый ключ, ни процедуры «забыли пароль». Тот, кто может предоставить эти слова, контролирует каждую монету, которую можно получить с их помощью (мгновенно и необратимо).

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

Источник изображения: X

Злоумышленнику не нужно было ничего взламывать. Ему просто нужно было, чтобы жертва ввела 12 слов не в то поле, после чего он действовал быстро: примерно 139 миллионов долларов в биткойнах и 153 миллиона долларов в лайткойнах были распределены по мостам THORChain, конвертированы через сервисы мгновенного обмена в монеро и за несколько минут переведены через несколько уровней цепочек-оболочек.

Команде мониторинга ZeroShadow удалось выявить и заморозить около 700 000 долларов из этой суммы в течение 20 минут — редкий случай частичного спасения средств, который напоминает о том, насколько незначительная доля похищенных семенных фраз вообще поддается восстановлению.

Почему 12 слов — это на самом деле огромное число

Каждое слово BIP39 несет 11 бит энтропии, поскольку словарь содержит ровно 2 048 (2^11) записей. Фраза из 12 слов несет в себе примерно 128 бит общей энтропии с учётом встроенной контрольной суммы, а фраза из 24 слов — 256 бит.

Это не просто «большие» числа по сравнению с типичным паролем — они астрономически больше. Перебор всех возможных комбинаций полной фразы из 12 слов, даже при чрезвычайно щедрой скорости в 1 миллиард попыток в секунду, занял бы порядка 10^22 лет. Возраст Вселенной составляет около 13,8 миллиарда лет.

Не существует реалистичного уровня будущей вычислительной мощности, который мог бы сократить этот разрыв; угадывание полной, неизвестной начальной фразы не представляет риска, с которым кому-либо нужно считаться.

Опасность заключается не в математике, а в утечке информации. Если станет известно даже несколько слов или злоумышленник узнает некоторые из них с фотографии, из облачной резервной копии или в результате мошенничества с подделкой обращений в службу поддержки, оставшееся пространство поиска сокращается катастрофически, а не плавно. На приведенном выше графике показано, почему: если 6 из 12 слов уже известны, взлом остальных по-прежнему займет примерно 1 169 лет при той же скорости перебора (что по-прежнему безопасно).

Но если известно 7 слов, это время сокращается до менее чем одного года. При 8 известных словах — до нескольких часов. При 10 или 11 известных словах — до миллисекунд. Уровень безопасности не снижается линейно по мере утечки слов; он обрывается как с обрыва, и именно поэтому раскрытие «только первых шести слов» или «половины фразы» не является значительно более безопасным, чем раскрытие всей фразы целиком.

Единственная функция, созданная для выявления ошибок, а не для защиты от злоумышленников

Контрольная сумма BIP39 существует по гораздо более прозаической причине, чем защита от подбора: она выявляет опечатки. Последнее слово семенной фразы не является чисто случайным; несколько его битов представляют собой контрольную сумму, рассчитанную на основе остальных слов, чтобы кошелек мог проверить, правильно ли была введена фраза.

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

Миллионы монет доказывают, что больший риск — это не кража

Несмотря на всё то внимание, которое привлекает фишинговое ограбление на сумму 282 миллиона долларов, гораздо более значительная и незаметная причина потерь гораздо проще: люди теряют доступ к своим собственным ключам. Оценки разнятся, но компания Chainalysis, занимающаяся аналитикой блокчейна, оценивает, что до 23 % всех добытых биткоинов (несколько миллионов BTC из примерно 19,8 миллиона, добытых на сегодняшний день) остаются навсегда недоступными, в основном из-за забытых фраз, уничтоженных резервных копий и смертей без какого-либо плана наследования фраз. Никаких хакеров, никаких уязвимостей, никаких фишинговых страниц — просто кошелек, который больше никто не может открыть, содержащий монеты, которые никогда больше не будут перемещены.

В этом и заключается истинная важность семенной фразы: это не просто пароль, который нужно запомнить, а единственное и непреложное доказательство владения активом, для которого не существует никакого механизма восстановления. Если её записать неправильно, она безопасно выйдет из строя. Если её раскрыть даже частично, безопасность быстро рухнет. Если её полностью потерять, не имея ничего другого, на что можно было бы опереться, биткоины, которые за ней стоят, просто перестанут существовать для кого бы то ни было.

Источник

Добавить комментарий

Кнопка «Наверх»
  • bitcoinBitcoin (BTC) $ 63,632.00
  • ethereumEthereum (ETH) $ 1,894.70
  • tetherTether (USDT) $ 0.999089
  • usd-coinUSDC (USDC) $ 0.999331
  • tronTRON (TRX) $ 0.326999
  • dogecoinDogecoin (DOGE) $ 0.070959
  • leo-tokenLEO Token (LEO) $ 9.80
  • zcashZcash (ZEC) $ 492.03
  • cardanoCardano (ADA) $ 0.189640
  • moneroMonero (XMR) $ 364.42
  • chainlinkChainlink (LINK) $ 8.39
  • stellarStellar (XLM) $ 0.175464
  • daiDai (DAI) $ 1.00
  • bitcoin-cashBitcoin Cash (BCH) $ 214.27
  • litecoinLitecoin (LTC) $ 44.95
  • hedera-hashgraphHedera (HBAR) $ 0.069951
  • crypto-com-chainCronos (CRO) $ 0.054933
  • okbOKB (OKB) $ 86.26
  • ethereum-classicEthereum Classic (ETC) $ 6.66
  • kucoin-sharesKuCoin (KCS) $ 6.60
  • algorandAlgorand (ALGO) $ 0.084402
  • cosmosCosmos Hub (ATOM) $ 1.27
  • true-usdTrueUSD (TUSD) $ 0.995591
  • vechainVeChain (VET) $ 0.004715
  • dashDash (DASH) $ 31.60
  • decredDecred (DCR) $ 13.32
  • tezosTezos (XTZ) $ 0.201349
  • iotaIOTA (IOTA) $ 0.033449
  • neoNEO (NEO) $ 1.83
  • basic-attention-tokenBasic Attention (BAT) $ 0.066703
  • qtumQtum (QTUM) $ 0.651380
  • 0x0x Protocol (ZRX) $ 0.078813
  • ravencoinRavencoin (RVN) $ 0.003592
  • ontologyOntology (ONT) $ 0.037742
  • paxos-standardPax Dollar (USDP) $ 0.998872
  • iconICON (ICX) $ 0.021363
  • wavesWaves (WAVES) $ 0.217665
  • liskLisk (LSK) $ 0.072239
  • bitcoin-diamondBitcoin Diamond (BCD) $ 0.061182
  • huobi-tokenHuobi (HT) $ 0.089639
  • monacoinMonaCoin (MONA) $ 0.065415
Закрыть
Закрыть