Перейти к основному содержимому

BIP-39 Passphrase (25-е слово): Продвинутая безопасность кошелька

BIP-39 passphrase — обычно называемая «25-м словом» — это одна из самых мощных, но при этом часто неправильно понимаемых функций безопасности в криптовалютных кошельках. Она добавляет выбранную пользователем строку в процесс вывода seed, из-за чего одна и та же мнемоническая фраза создает совершенно другой набор ключей и адресов. При правильном использовании это дает многоуровневую защиту от компрометации seed-фразы. При небрежном использовании это может привести к необратимой потере средств.

В этом руководстве подробно разобрано, как именно работает passphrase, когда ее использовать, какие риски она добавляет и как внедрить ее безопасно.

Как работает passphrase​

Технический механизм​

Как описано в стандарте BIP-39, процесс вывода seed использует PBKDF2-HMAC-SHA512:

Seed = PBKDF2(
password = mnemonic_words,
salt = "mnemonic" + passphrase,
iterations = 2048,
key_length = 512 bits
)

Когда passphrase не задана, соль — это просто строка "mnemonic". Когда passphrase указана, она добавляется к соли: "mnemonic" + "YourPassphrase". Поскольку соль отличается, результат PBKDF2 полностью отличается, создавая совершенно другой мастер-ключ, а значит и совершенно другие пути деривации, приватные ключи, публичные ключи и адреса.

Ключевые свойства​

Любая passphrase действительна. Для passphrase нет контрольной суммы или механизма валидации. Любая строка — включая пустую строку, один символ или предложение из 500 символов — создает валидный кошелек. Ввод неверной passphrase не вызывает сообщение об ошибке; вместо этого тихо открывается другой (обычно пустой) кошелек.

Одна и та же мнемоника, разные кошельки. 24-словная мнемоника с passphrase "alpha" создает полностью другой кошелек, чем та же мнемоника с passphrase "bravo". Между этими двумя кошельками нет криптографической связи, которую мог бы обнаружить атакующий.

Регистр и кодировка важны. "MyPassphrase" и "mypassphrase" создают разные кошельки. Passphrase с пробелом в конце отличается от той же passphrase без него. Перед хэшированием passphrase нормализуется в UTF-8 NFKD, но кроме этого требуется точное совпадение символов.

Зачем использовать passphrase​

Защита от кражи seed-фразы​

Если атакующий украдет вашу 24-словную seed-фразу (с бумажного бэкапа, металлической пластины или скомпрометированного устройства), он получит доступ ко всем средствам в кошельке — если только не была задана passphrase. Без passphrase он увидит только «базовый» кошелек (полученный с пустой passphrase). Ваши реальные средства, хранящиеся в кошельке, защищенном passphrase, останутся недоступны.

Это преобразует вашу безопасность из однофакторной (то, что у вас есть — seed-фраза) в двухфакторную (то, что у вас есть — seed-фраза, плюс то, что вы знаете — passphrase).

Правдоподобное отрицание​

Поскольку любая passphrase создает валидный кошелек, вы можете поддерживать несколько кошельков из одной seed-фразы:

  • Без passphrase — Приманочный кошелек с небольшим количеством средств.
  • Passphrase "alpha" — Ваш основной кошелек со значительными накоплениями.
  • Passphrase "bravo" — Вторичный кошелек для дополнительной защиты.

Если вас принуждают раскрыть seed-фразу (атака «$5 wrench attack»), вы можете сообщить seed-фразу без passphrase. Атакующий увидит реальный кошелек с некоторыми средствами, не сможет узнать, существуют ли дополнительные кошельки под passphrase, и может удовлетвориться найденным.

Эту стратегию часто называют «кошелек под принуждением» (duress wallet) или «скрытый кошелек» (hidden wallet).

Защита от скомпрометированного оборудования​

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

Как настроить passphrase​

Hardware Wallets​

Большинство крупных hardware wallets поддерживают BIP-39 passphrase:

Ledger:

  1. В Ledger Live перейдите в Settings.
  2. Включите "Passphrase" в разделе Advanced settings.
  3. Есть два режима: "Attached to PIN" (для удобства хранит хэш на устройстве) и "Temporary" (нужно вводить каждый раз).
  4. Выберите passphrase и подтвердите ее.

Trezor:

  1. В Trezor Suite включите функцию passphrase.
  2. При каждом подключении Trezor будет запрашивать passphrase.
  3. Можно вводить любую passphrase — подтверждение не сохраняется.

Coldcard:

  1. В меню перейдите в Passphrase.
  2. Введите passphrase на устройстве.
  3. Coldcard покажет первый полученный адрес — проверьте, что он совпадает с ожидаемым.

Software Wallets​

Software wallets с поддержкой BIP-39 passphrase обычно показывают эту опцию во время начальной настройки или импорта seed. Ищите в процессе настройки пункты "Advanced options", "Optional passphrase" или "25th word".

Выбор надежной passphrase​

Passphrase должна иметь достаточную энтропию, чтобы выдержать brute-force атаку в случае компрометации seed-фразы:

Тип passphraseПримерная энтропияВремя brute-force (ASIC)
Распространенное английское слово~10 bitsСекунды
Случайная фраза из 4 слов~50 bitsГоды
Случайная фраза из 6 слов~75 bitsМиллионы лет
20+ случайных символов~120+ bitsТепловая смерть Вселенной

Рекомендации:

  • Используйте минимум 4-6 случайно выбранных слов или 16+ случайных символов.
  • Не используйте личную информацию (имена, даты рождения, распространенные фразы).
  • Не используйте одно словарное слово.
  • Рассмотрите генератор passphrase (например, diceware) вместо самостоятельного придумывания.

Стратегии резервного копирования passphrase​

Теперь passphrase — часть вашего секрета восстановления. Если вы потеряете либо seed-фразу, либо passphrase, вы потеряете доступ к средствам. Это создает проблему бэкапа: нужно хранить оба секрета, но хранение их вместе лишает смысла защиту.

Стратегия 1: Раздельные места хранения​

  • Храните seed-фразу в месте A (например, в огнеупорном сейфе дома).
  • Храните passphrase в месте B (например, в банковской ячейке).
  • Атакующему нужно скомпрометировать оба места.

Стратегия 2: Запоминание + физический бэкап​

  • Запомните passphrase.
  • Храните зашифрованную резервную копию passphrase отдельно от seed-фразы.
  • Если вы станете недееспособны, зашифрованный бэкап позволит наследникам восстановить средства.

Стратегия 3: Shamir's Secret Sharing для passphrase​

  • Разделите passphrase на доли с помощью Shamir's Secret Sharing.
  • Распределите доли между несколькими доверенными лицами.
  • Для восстановления требуется M-of-N долей.

Чего НЕ делать​

  • Не храните passphrase рядом с seed-фразой. Это полностью устраняет преимущество безопасности.
  • Не полагайтесь только на память. Память ненадежна, особенно на горизонте лет и десятилетий.
  • Не используйте passphrase, которую не можете стабильно воспроизвести. Помните, что регистр, пробелы и точные символы критичны.
  • Не храните passphrase в password manager, где также хранится seed-фраза.

Риски и подводные камни​

Риск 1: Необратимая потеря средств из-за забытой passphrase​

Это самый большой риск использования passphrase. В отличие от seed-фразы с контрольной суммой, нет механизма проверки «правильности» passphrase. Если вы ее забудете, ошибетесь даже в одном символе или добавите скрытый символ (пробел в конце, неверная Unicode-нормализация), откроется другой, пустой кошелек, и ваши средства станут недоступны навсегда.

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

Риск 2: Перехват клавиатурного ввода при вводе passphrase​

Passphrase в какой-то момент нужно ввести в кошелек. В software wallet это означает ввод на компьютере, где ее могут перехватить keylogger или запись экрана. В hardware wallet с вводом на самом устройстве (Coldcard, Trezor) passphrase вводится на экране устройства, что значительно безопаснее.

Снижение риска: Вводите passphrase только в hardware wallet с вводом на устройстве или на air-gapped компьютере.

Риск 3: Сложности с наследованием​

Использование passphrase усложняет планирование наследования. Вашим наследникам нужны:

  1. Seed-фраза.
  2. Passphrase.
  3. Понимание, что passphrase существует и обязательна.
  4. Инструкции по использованию.

Если чего-то из этого нет, наследование не сработает. См. наше руководство по Seed Phrase для стратегий наследования с учетом passphrase.

Риск 4: Ложное чувство безопасности​

Слабая passphrase (одно распространенное слово, дата рождения, кличка питомца) может быть перебрана brute-force, если у атакующего есть seed-фраза. Атакующий с seed-фразой и GPU-кластером может проверить миллиарды вариантов passphrase на известной функции PBKDF2. Используйте сильную, случайно сгенерированную passphrase.

Риск 5: Опечатки при настройке​

Если вы настроите кошелек с passphrase, где есть незамеченная опечатка, кошелек будет работать нормально: вы сможете получать и отправлять средства. Но в следующий раз при восстановлении из seed-фразы и вводе passphrase без этой опечатки (или с другой опечаткой) вы получите другой кошелек. Ваши средства окажутся «заперты» за этой опечаткой.

Снижение риска: После настройки сразу восстановите кошелек на другом устройстве с seed-фразой + passphrase, чтобы убедиться, что появляются точно те же адреса.

Заблуждение о «25-м слове»​

Термин «25-е слово» — упрощение, которое может вводить в заблуждение:

  • Passphrase не ограничена словами из списка BIP-39. Это может быть любая строка UTF-8.
  • Passphrase не кодируется как дополнительное мнемоническое слово — она используется как часть соли PBKDF2.
  • У passphrase нет контрольной суммы, в отличие от 24-го слова мнемоники, которое содержит биты контрольной суммы.
  • 12-словная мнемоника также может иметь passphrase — по этой логике это было бы «13-е слово», но термин «25-е слово» используется обобщенно.

Технически корректный термин — «BIP-39 passphrase» или «mnemonic passphrase».

Инструмент SafeSeed

Используйте SafeSeed Key Derivation Tool, чтобы увидеть, как разные passphrase создают полностью разные адреса из одной и той же seed-фразы. Введите тестовую мнемонику с passphrase и без нее, чтобы увидеть эффект. Все вычисления выполняются в вашем браузере — данные не передаются.

Passphrase vs. PIN кошелька vs. пароль​

Эти три понятия часто путают:

ХарактеристикаBIP-39 PassphrasePIN кошелькаПароль кошелька
Что защищаетДеривацию seedДоступ к устройствуДоступ к приложению
Где хранитсяНигде (вы запоминаете)На устройствеНа устройстве/сервере
Можно ли изменитьНет (создает новый кошелек)ДаДа
Если забытьСредства недоступныСброс устройства, восстановление из seedСброс пароля
Цель brute-forcePBKDF2 с seedБлокировки устройстваЗависит от реализации
Область действияВсе кошельки из seedОдно устройствоОдно приложение

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

Продвинутые сценарии использования​

Несколько скрытых кошельков​

Опытные пользователи могут вести несколько кошельков из одной seed-фразы:

  • Пустая passphrase: небольшая сумма (приманка)
  • Passphrase A: основные сбережения
  • Passphrase B: торговый капитал
  • Passphrase C: резерв на экстренный случай

Каждый кошелек полностью независим. Между ними нет on-chain связи. Риск растет вместе с числом passphrase, которые нужно помнить и резервировать.

Комбинирование с мультиподписью​

Для институционального или очень крупного хранения совмещайте BIP-39 passphrase с multi-signature:

  • Ключ каждого подписанта выводится из seed-фразы + уникальной passphrase.
  • Атакующему нужно получить несколько seed-фраз И соответствующие passphrase.
  • Это дает несколько независимых уровней безопасности.

FAQ​

Что такое BIP-39 passphrase или «25-е слово»?​

BIP-39 passphrase — это необязательная строка, выбранная пользователем, которая добавляется в процесс вывода seed (соль PBKDF2). При использовании она заставляет одну и ту же мнемоническую seed-фразу создавать полностью другой набор ключей и адресов. Ее часто называют «25-м словом», хотя это может быть любая текстовая строка, а не только слово BIP-39.

Могу ли я изменить свою passphrase?​

Не так, как меняют пароль. Поскольку passphrase определяет, какие ключи выводятся, изменение passphrase означает открытие другого кошелька с другими адресами. Чтобы «изменить» passphrase, нужно создать новый кошелек с новой passphrase и перевести все средства из старого кошелька на новый.

Что будет, если я забуду passphrase?​

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

Хранится ли passphrase на моем hardware wallet?​

Некоторые hardware wallets предлагают опцию связать passphrase со вторичным PIN (например, режим Ledger "Attached to PIN"). В таком случае для удобства на устройстве хранится подсказка или хэш. Однако канонический метод — режим "temporary", где passphrase вводится каждый раз, и на устройстве ничего не хранится.

Поддерживает ли каждый кошелек BIP-39 passphrase?​

Большинство кошельков, совместимых с BIP-39, поддерживают функцию passphrase, но некоторые не показывают ее в интерфейсе. Проверьте документацию вашего кошелька. Крупные hardware wallets (Ledger, Trezor, Coldcard) поддерживают ее.

Может ли атакующий узнать, что я использую passphrase?​

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

Чувствительна ли passphrase к регистру?​

Да. "MyPassphrase", "mypassphrase" и "MYPASSPHRASE" создают разные кошельки. Пробелы тоже важны — "my pass" и "mypass" различаются. Фиксируйте passphrase максимально точно.

Можно ли использовать passphrase с 12-словной seed-фразой?​

Да. Функция passphrase работает с любой длиной мнемоники BIP-39 (12, 15, 18, 21 или 24 слова). Процесс PBKDF2 одинаков вне зависимости от длины мнемоники.

Связанные руководства​