Продвинутый Урок 3 4 мин чтения

Слабые пароли и мозговые кошельки: деньги, потерянные из-за плохого пароля

Тот, кто сгенерировал ключ из фразы, потерял деньги тому, кто подумал о той же фразе.

В 2011 и 2012 годах было распространено одно умное на вид совет: вместо того чтобы записывать приватный ключ, запомните фразу. Фраза проходит через хэш, хэш становится ключом, и вы носите кошелек в голове — без бумаги, без сейфа, без риска пожара. Это называлось мозговым кошельком, и почти все деньги, хранившиеся таким образом, были украдены.

Механизм прост и именно в этом заключается проблема. Вы выбираете фразу, применяете к ней SHA-256, и 256 бит, которые получаются, становятся приватным ключом. Расчет верен и криптография работает. То, что не работает, — это первый этап: фраза не была случайной, она была выбрана человеком.

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

То, что вы думаете, что никто не придумает, уже напечатано, и вся полка помещается на одном диске.

Но даже не нужно перебирать сорок бит, и здесь все становится жестоко. Никто не атакует мозговой кошелек грубой силой. Атакуют по словарю: берут всю Библию стих за стихом, все существующие тексты песен, все реплики из фильмов, все пословицы, все утекшие пароли из всех взломанных баз данных с 2005 года — и вычисляют ключ для каждой из них. Это миллиарды попыток, а не триллионы, и компьютер справляется с ними за выходные.

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

Крючок уже был в воде до того, как рыба подошла.

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

Стоит честно сказать, что проблема не ограничивается фразами. Это общая проблема человеческой энтропии, и она проявляется в других формах. Ключи, сгенерированные тестовыми программами, которые никогда не менялись. Ключи, полученные из дат рождения. Ключи, созданные дефектными генераторами, как в Android, о котором рассказывал предыдущий урок. Кошельки, созданные на сайтах, обещавших случайный выбор в браузере, но всегда выбирающих одно и то же. Во всех этих случаях реальное пространство поиска составляло несколько десятков бит, а не 256.

Случайный выбор, сделанный человеком, помещается в горсть. Машинный выбор не помещается в мире.

Практический урок короткий и стоит больше, чем весь урок: энтропию не придумывают, ее случайно выбирают. Двенадцать слов BIP-39 существуют именно для этого — это не фраза, которую вы выбрали, это число, случайно выбранное источником случайности и переведенное в слова, чтобы вы могли его скопировать. Разница между этими двумя вещами — это разница между кошельком и ловушкой.

И есть следствие, которое завершает предыдущий модуль. Вся эта работа со словарем — это, технически, поиск ключей — те же инструменты, те же алгоритмы, тот же аппарат. Разница между законным упражнением и преступлением не в технике: она в том, кто положил туда деньги и с какой целью. Задачи 2015 года были оставлены для поиска. Забытый мозговой кошелек кого-то — нет.

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