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:
- В Ledger Live перейдите в Settings.
- Включите "Passphrase" в разделе Advanced settings.
- Есть два режима: "Attached to PIN" (для удобства хранит хэш на устройстве) и "Temporary" (нужно вводить каждый раз).
- Выберите passphrase и подтвердите ее.
Trezor:
- В Trezor Suite включите функцию passphrase.
- При каждом подключении Trezor будет запрашивать passphrase.
- Можно вводить любую passphrase — подтверждение не сохраняется.
Coldcard:
- В меню перейдите в Passphrase.
- Введите passphrase на устройстве.
- 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 усложняет планирование наследования. Вашим наследникам нужны:
- Seed-фраза.
- Passphrase.
- Понимание, что passphrase существует и обязательна.
- Инструкции по использованию.
Если чего-то из этого нет, наследование не сработает. См. наше руководство по 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 Key Derivation Tool, чтобы увидеть, как разные passphrase создают полностью разные адреса из одной и той же seed-фразы. Введите тестовую мнемонику с passphrase и без нее, чтобы увидеть эффект. Все вычисления выполняются в вашем браузере — данные не передаются.
Passphrase vs. PIN кошелька vs. пароль
Эти три понятия часто путают:
| Характеристика | BIP-39 Passphrase | PIN кошелька | Пароль кошелька |
|---|---|---|---|
| Что защищает | Деривацию seed | Доступ к устройству | Доступ к приложению |
| Где хранится | Нигде (вы запоминаете) | На устройстве | На устройстве/сервере |
| Можно ли изменить | Нет (создает новый кошелек) | Да | Да |
| Если забыть | Средства недоступны | Сброс устройства, восстановление из seed | Сброс пароля |
| Цель brute-force | PBKDF2 с 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 одинаков вне зависимости от длины мнемоники.