Парольная фраза (passphrase, кодовая фраза, «13-е» или «25-е слово») — часть стандарта BIP-39, добавляющая к сид-фразе дополнительный слой защиты. Основа: Насколько надёжна ваша парольная фраза?.

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

Что это даёт

Функцию поддерживает множество кошельков — Electrum, Sparrow, Samourai, COLDCARD, Trezor и другие.

Практический смысл двоякий:

  • Защита от компрометации сида. Если злоумышленник получит вашу резервную копию — украдёт металлическую пластину, сфотографирует бумажку, найдёт копию, случайно попавшую в интернет, — без парольной фразы она бесполезна. Это ваш секрет, без которого сид-фраза не несёт практически никакой ценности.
  • Несколько кошельков на одном сиде. Каждая парольная фраза даёт свой независимый кошелёк. Отсюда сценарий подставного кошелька: на кошелёк без парольной фразы кладётся небольшая сумма, а основные сбережения живут по тому же сиду в сочетании с парольной фразой. Злоумышленник, получивший доступ к сиду, решит, что нашёл всё. Основа: гид по SeedSigner.

Важно не путать парольную фразу с PIN-кодом устройства. PIN ограничивает доступ к конкретному аппаратному кошельку, и его «разрешается» забыть — доступ к монетам восстанавливается из сид-фразы. Парольная фраза критически важна для самого кошелька: забыли её — потеряли средства.

Три способа создать парольную фразу

Случайная последовательность слов

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

Классика жанра — список Diceware Арнольда Рейнхолда, впервые опубликованный в 1995 году. В нём 7776 слов, ровно столько, сколько существует упорядоченных исходов броска пяти шестигранных костей (6⁵). Джозеф Бонно в 2016 году доработал список, исключив редкие и трудные в написании слова, и выпустил сокращённую версию из 1296 слов — четыре кости (6⁴).

Список работает как словарь: каждому слову предшествует уникальный номер. Бросили кости и получили 4216 — берёте слово под номером 4216.

Сокращённый список требует больше слов для той же стойкости, но сами слова короче. Фраза из четырёх слов длинного списка содержит в среднем 28,0 буквы, из пяти слов короткого — только 22,7. Пример эквивалентной по стойкости пары:

  • короткий словарь: float volt limes rhyme nest
  • длинный словарь: freeway oppose spinout managing

Случайные символы

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

АлфавитСимволыПример
Нижний регистрa–zakorhrjfmsym
Цифры и нижний регистрa–z, 0–9bqkng36w9nf
Цифры и оба регистраA–Z, a–z, 0–95Xai1WhSYu
Любые символыASCII 32–126q%9Ec#pD7

Осмысленное предложение

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

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

Сколько стоит взлом

Предположим, злоумышленник украл сид-фразу и подбирает парольную фразу по словарю. Насколько это дорого?

Расчёт строится на трёх шагах. Общее количество вариантов для случайных символов и случайных слов равно nᵏ, где n — размер алфавита или списка слов, а k — длина в символах или словах. Для осмысленного предложения при оценке 5,7 бита на слово это 2^(5,7 × k) ≈ 52ᵏ. Полученное число делится пополам — в среднем атакующему нужно проверить половину пространства, — а результат делится на скорость перебора за доллар.

Скорость берётся из практики: арендованный графический процессор NVIDIA Tesla V100 считает 2160 миллионов хешей SHA-512 в секунду при цене около $3,06 в час. Проверка одного кандидата при известном сиде требует 2048 вычислений HMAC, вывода нескольких публичных ключей и проверки их присутствия в цепочке — это более 4096 вычислений SHA-512 плюс работа по обращению к блокчейну. Итого атакующий проверяет около 620 миллионов парольных фраз за один доллар.

Числа получаются внушительные. Случайная фраза из двенадцати строчных букв даёт около 48 × 10¹⁵ вариантов — примерно $77 миллионов по сегодняшним ценам. Добавление заглавных букв и цифр позволяет достичь того же уровня всего девятью-десятью случайными символами.

Оценка сверху приводится и по времени: по расчётам Coldbit, специально спроектированный ASIC-суперкластер для взлома PBKDF2-HMAC-SHA512 потратил бы 150 лет на фразу из шести слов сокращённого списка Diceware. Такого оборудования сегодня не существует, и его разработка потребовала бы дополнительных затрат — поэтому стоимость в долларах остаётся более честной метрикой, чем время.

Атака дешевеет со временем

По закону Мура стоимость любой фиксированной атаки уменьшается вдвое каждые восемнадцать месяцев. Через десять лет она может снизиться примерно до одной сотой от сегодняшней: те же $77 миллионов превращаются в $750 000 — сумму, которая уже заинтересует атакующего, если он знает, что вы храните больше.

Отсюда правило выбора длины: парольная фраза должна оставаться дорогой для взлома не сегодня, а через десять лет. Если вам нужна фраза, взлом которой в 2030 году стоил бы не менее $10 миллионов, и вы используете сокращённый список Diceware, расчёт даёт длину около 5,8 слова — то есть шесть слов.

Компромиссы

Парольная фраза — не бесплатное улучшение. У неё есть цена, и она серьёзная.

Потеря парольной фразы равносильна потере средств. Если вы забудете или потеряете её, вместе с ней пропадёт и доступ к резервной копии кошелька. Схема «одна подпись + парольная фраза» повышает защиту от кражи, но не устраняет единую точку отказа — она лишь переносит её. Основа: Как обезопасить свои сид-фразы?.

Защита работает не во всех сценариях. Парольная фраза защищает ваши двенадцать или двадцать четыре слова ровно до тех пор, пока вы сами не потеряли к ним доступ. Если атакующий украдёт или уничтожит все резервные копии сида, парольная фраза окажется бесполезной.

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

Проверяйте отпечаток. Любая парольная фраза, включая опечатку, порождает валидный кошелёк — устройство не сообщит вам об ошибке. Единственный способ убедиться, что вы ввели именно то, что задумали, — сверить отпечаток кошелька (XFP), который меняется при добавлении парольной фразы. Записывайте его рядом с сид-фразой и проверяйте соответствие при каждом вводе. Основа: гид по COLDCARD.

Парольная фраза не входит в резервную копию устройства. У COLDCARD зашифрованный бэкап на SD-карте содержит исходную сид-фразу, но не парольную фразу — сохранять её нужно отдельно.

Вводите на устройстве, а не на компьютере. Устройства с экраном и клавиатурой позволяют вводить парольную фразу непосредственно на самом устройстве. Это принципиально: даже если компьютер заражён, парольная фраза его не касается.

Парольная фраза или мультиподпись

Оба инструмента решают задачу «одного секрета мало», но решают её по-разному. Подробный разбор второго — на странице мультиподпись.

КритерийПарольная фразаМультиподпись
Защита от кражиСредняяВысокая
Защита от потериНизкая — теряете фразу, теряете всёВысокая (m-из-n)
Сложность настройкиНижеВыше
Единая точка отказаСохраняетсяУстранена

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

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

Что стоит запомнить

  • Парольная фраза — отдельный, независимый слой поверх сид-фразы; она не связана с качеством генератора случайных чисел и не компенсирует слабую энтропию сида.
  • Любая парольная фраза, включая опечатку, даёт валидный кошелёк. Всегда сверяйте отпечаток перед отправкой средств.
  • Никакое оборудование не обеспечивает стопроцентную защиту сида: при достаточных ресурсах и опыте злоумышленник извлечёт сид из любого аппаратного кошелька. Если физические атаки входят в вашу модель угроз, надёжная парольная фраза оправдана.
  • Выбирайте длину с запасом на десять лет вперёд, а не на сегодня.

Пробелы

Механика участия парольной фразы в выводе сида разобрана на странице HD-кошельки и в разделе о BIP-39 страницы сид-фраза: фраза входит в соль PBKDF2 вместе с константой mnemonic, а не в контрольную сумму — отсюда и невозможность «ошибиться». Открытым остаётся вопрос о том, какие альтернативы BIP-39 (Electrum v2, Aezeed, SLIP-39) применяют аутентификацию парольной фразы и как это меняет баланс между правдоподобным отрицанием и обнаружением опечаток.

Источники

Дополнительные материалы