Функция дополнительной безопасности, называемая кодовая фраза, была реализована в предложении по улучшению биткоина BIP39. Авторы этого документа - основатели Satoshi Labs Марек Палатинус и Павол Руснак, создатели первого в мире аппаратного кошелька для хранения криптовалют – Trezor.
На сегодняшний день кодовая фраза считается одним из продвинутых способов защиты криптовалютных активов. О том, как эффективно использовать кодовую фразу, расскажут специалисты интернет-магазина по продаже аппаратных кошельков для криптовалют Cryptonist.ru.
Что такое кодовая фраза
Важно понимать, что кодовая фраза - не просто пароль. С ее помощью создается совершенно новый кошелек со своими уникальными парами закрытых и открытых ключей.
Одна из возможностей, которая открывается перед владельцем криптовалют – это создание нескольких скрытых кошельков на основе одной мнемонической фразы (Seed). Выглядит это следующим образом:
Иллюстрация наглядно показывает, что оригинальный сид с пустой фразой порождает кошелек А с небольшим балансом, который используется для карманных расходов или вовсе не используется. При вводе фразы “Alexander_Satoshovski9($!” открывается доступ к основным активам пользователя (кошелек B). А ввод фразы “Alexander_hello” может открыть кошелек с незначительным остатком (кошелек C).
Также можно рассмотреть эту функцию как способ увеличения начального уровня энтропии, который используется для генерации мнемонических слов. Напомним, что для создания сида из 12, 18 и 24 слов используется энтропия из 128, 192 и 256 бит. Вдобавок к этой энтропии, которая генерируется автоматически программой-клиентом, дополнительная фраза позволяет задать случайность, которая уже устанавливается пользователем.
Несколько тезисов для лучшего понимания материала:
-
В кодовой фразе можно использовать любые слова, словосочетания, наборы букв и специальные символы из таблицы ASCII;
-
Буквы чувствительны к регистру;
-
Не существует неправильной фразы, клиентская программа всегда будет рассчитывать какой-нибудь из возможных кошельков;
-
Ввод "пустой" фразы позволит получить доступ к исходным адресам пользователя;
-
Эта функция позволяет защитить активы и других криптовалют, которые поддерживаются предложениями BIP39/44;
-
Утеря фразы равносильна утере сида, то есть всех связанных с ней криптоактивов, поэтому ее стоит использовать только людям, понимающим принципы работы кошельков.
Примечание. Задержимся немного на третьем утверждении – «Не существует неправильной фразы». Как это понимать?
В отличие от мнемонической фразы, где последние биты данных представляют из себя контрольную сумму, проверяющую порядок и целостность всех слов, кодовая фраза принимает на вход любое значение, введенное пользователем, и «скрещивая» его с мнемонической фразой формирует совершенно новый кошелек с новыми адресами. Поэтому все, что вводит пользователь в качестве фразы, будет использовано для расчета нового кошелька.
Когда это пригодится?
Теперь нам ясно по крайней мере в теории, что это такое, и самое время рассказать, в каких случаях эта функция будет вам полезна.
Давление со стороны третьих лиц
Представим ситуацию, когда на владельца криптовалют будут оказывать давление. Например, при пересечении границы сотрудники таможенной службы обнаружат аппаратный кошелек и потребуют показать баланс криптоактивов, чтобы убедиться, что приезжающий не перевозит большую сумму цифровых денег в другую страну. Пока это звучит абсурдно, но поверьте, что это только дело времени, когда различные государственные (и не только) структуры проявят интерес к криптовалютным сбережениям.
Поскольку кодовая фраза позволяет создавать множество скрытых кошельков, каждый из которых будет иметь собственную фразу, то пользователю ничего не стоит завести два кошелька: «демонстративный» с небольшой суммой, с которой можно будет расстаться, и основной со всем доступным балансом. Доступ к первому можно будет беспрепятственно открыть, а второй со всеми криптоактивами останется в сохранности. Только владелец кошелька определяет, какой из балансов он захочет показать.
Атака гаечным ключом
Одна из распространенных атак на владельца криптовалют, с которой не справится ни один вид защиты и сертификат безопасности — это «атака гаечным ключом» (5 dollar wrench attack). Это вид физических атак, не требующих специализированных знаний, оборудования и особых навыков для взлома ПК или аппаратного устройства.
Когда владелец криптовалют оказывается в ситуации, где "плохие парни" держат его в изоляции и требуют раскрыть и перевести все средства на их адреса, он может дать доступ к заранее заготовленному адресу с небольшой суммой и сохранить весь основной капитал.
Компрометация мнемонической фразы
Кодовая фраза позволяет не только защититься от физических атак, но и защитить мнемоническую фразу (Seed) от компрометации, так как недостаточно будет исходного Seed’а для получения доступа ко всем монетам, скрытым за фразой.
Физическая атака на аппаратный кошелек
Кодовая фраза дополнительно защищает криптовалютные активы от любого рода физических атак на аппаратный кошелек. Она вводится в момент подключения устройства к ПК и соответствующие фразе счета и адреса рассчитываются в тот момент, когда вводится фраза.
Теперь рассмотрим применение этой функции в популярных аппаратных кошельках Trezor, Ledger и Keepkey.
Trezor T
Оригинальный кошелек А (без фразы)
Для начала проверим адреса кошелька с оригинальной мнемонической фразой.
Запомним эти адреса. Согласно иллюстрации 1, которая была в начале статьи, этот кошелек мы используем для повседневных трат. Переведем на его адреса 70$. Теперь перейдем к созданию основного кошелька. Сначала нам нужно включить эту функцию.
Для включения кодовой фразы нажимаем на название кошелька и переходим во вкладку Расширенный (Advanced). Затем устанавливаем флажок и нажимаем на кнопку «Включить шифрование кодовой фразой» (Enable passphrase encryption).
Подтверждаем действия на устройстве.
Создание скрытого кошелька B (основного)
После переподключения устройства к ПК у нас появится новое окно, где необходимо ввести фразу два раза.
Введем фразу основного кошелька. Можно сказать, что в момент ввода фразы мы и создаем новый кошелек.
Зайдем в раздел адресов и убедимся, что адреса этого кошелька отличаются от первого кошелька.
Согласно иллюстрации 1, этот кошелек является основным, и на его адреса мы переводим существенную для нас сумму в 10 000$.
Напомним, что у модели Trezor T есть возможность ввода фразы не только через ПК, но и через устройство.
Создание скрытого кошелька C (ложного)
Переподключаем кошелек и в диалоговом окне вводим вторую фразу «Alexander_hello».
Переходим в раздел получение (Receive) и сверяем адреса.
У нас появились новые адреса, закрепленные за фразой «Alexander_hello». Каждый раз при вводе Alexander_hello будут рассчитываться эти адреса. В соответствии с иллюстрацией 1 переводим на эти адреса незначительную сумму денег – 100$.
Итак, у нас есть три кошелька:
-
Без фразы (оригинальный);
-
С фразой Alexander_Satoshovski9($!” (основной);
-
С фразой Alexander_hello (ложный).
Наверное, у читателя возник вопрос – зачем создано три кошелька?
Все дело в том, что при подключении аппаратного кошелька к ПК в интерфейсе отображается диалоговое окно с предложением ввести фразу. Третьи лица, оказывающие давление, могут догадаться, что у вас имеются скрытые кошельки (кошельки с фразами). Именно поэтому при использовании кошелька с включенной функцией кодовой фразы необходимо всегда иметь ложный кошелек С.
Есть и другой немного упрощенный способ использовать эту функцию, но уже с двумя кошельками:
-
Без фразы (оригинальный);
-
С фразой Alexander_Satoshovski9($!” (основной).
Но при такой конфигурации эту функцию следует отключить, чтобы не появлялось диалоговое окно с просьбой ввести кодовую фразу.
Внешний наблюдатель никогда не сможет узнать, имеются ли у пользователя скрытые кошельки с фразами.
Как отключить кодовую фразу?
Снова переходим в настройки кошелька, снимаем флажок и нажимаем на кнопку Отключить шифрование кодовой фразой (Disable Passphrase Encryption).
Что произойдет с криптоактивами при отключении кодовой фразы? Ничего! Они останутся на балансе адресов с фразой до тех пор, пока вы не потратите их.
Работа кодовой фразы на других аппаратных кошельках практически аналогична, поэтому будет только продемонстрировано, как включается эта защита.
Trezor One
У младшей модели One абсолютно все аналогично с новой моделью T за исключением одной важной детали – ввод осуществляется только через клавиатуру.
Видеодемонстрация подключения кодовой фразы с Trezor:
Ledger Nano S
В Ledger Nano S защита реализована двумя способами. Рассмотрим каждый из них.
Attached to a pin
Этот способ позволяет привязать фразу к PIN-коду. Таким образом нет необходимости ее ввода при каждом подключении устройства к ПК. Один PIN-код будет давать доступ к кошельку с минимальным балансом, а другой ко всем активам пользователя. Для включения дополнительного PIN-кода следует зайти в приложение Settings – Security – Passphrase - Attach to a pin.
Французский производитель установил ограничение до двух дополнительных PIN-кодов. Это означает, что только две разные фразы можно привязать к двум разным PIN-кодам.
Set Temporary
Предусмотрена возможность зайти в кошелек с фразой через опцию Set Temporary, которая находится в приложении Preferences – Security – Set Temporary. После ввода пин-кода устройство рассчитает соответствующие скрытые адреса.
Владельцы кошельков Ledger могут использовать два кошелька:
-
Без фразы (оригинальный);
-
С фразой Alexander_Satoshovski9($!” (основной).
Предусмотрено только два кошелька, так как «плохие люди» не смогут догадаться или обнаружить существование дополнительных скрытых кошельков, как это было в интерфейсе Trezor с появлением окна с просьбой введения фразы.
Использование дополнительного PIN-кода представляется весьма хорошим решением, когда речь идет о длинной и сложной фразе, но здесь есть и обратная сторона – ее можно забыть. По аналогии с паролями, которые со временем забываются из-за неиспользования.
Видеодемонстрация подключения кодовой фразы с Ledger Nano S:
Keepkey
У американского производителя опция кодовой фразы включается в настройках Keepkey client, где необходимо выбрать Passphrase encryption. Далее ввод осуществляется по аналогии с Трезором.
Использование кодовой фразы сравнимо с Trezor, так как при подключении аппаратного кошелька к ПК выходит диалоговое окно с предложением ввести фразу.
Видеодемонстрация подключения кодовой фразы на Keepkey:
Electrum
Чтобы активировать функцию в легком кошельке Electrum, нужно создать новый файл с расширением .dat и, после выбора типа счета Legacy/Standart, включить опцию Extend this seed with custom words. После чего потребуется ввести фразу на следующем этапе.
Часто задаваемые вопросы
Как восстановить средства, закрепленные за фразой?
Сначала следует восстановить кошелек с помощью оригинального сида. Затем включить эту функцию и при следующем запуске интерфейса ввести ее, после чего программа-клиент рассчитает соответствующие адреса.
Можно восстановить средства, закрепленные за фразой с аппаратного кошелька на программном?
Кодовая фраза – это часть предложения BIP39, которое является стандартом индустрии криптовалютных кошельков. Отсюда следует, что на любом интерфейсе, который работает согласно BIP39, можно будет восстановить криптоактивы с кодовой фразой.
Поддерживают ли эту защиту другие криптовалюты?
Да, она поддерживается многими блокчейнами, которые внедрили стандарт BIP39 в свои клиенты, и которые занесены в список зарегистрированных монет BIP44.
Где хранить кодовую фразу?
В надежном месте подальше от огня, воды и посторонних людей. В таком месте, чтобы близкие обнаружат ее в случае, если с владельцем кошелька что-либо произойдет. Одно можно сказать точно - не стоит ее хранить в том же месте, где хранится Seed, так как это полностью лишает смысл ее использования.
Что если пользователь потерял кодовую фразу?
Это равносильно утере мнемонической фразы (Seed) и означает утерю связанных с ней криптовалют навсегда.
Подводим итоги
Мы рассмотрели один из продвинутых методов защиты криптоактивов, которая защищает от:
-
Давления со стороны третьих лиц;
-
Атаки гаечным ключом;
-
Любых видов атак на аппаратное устройство;
-
Компрометации мнемонической фразы.
Как показывает практика, чем больше безопасность, тем меньше удобства, и наоборот. При включенной функции в некоторых аппаратных устройствах и интерфейсах необходимо каждый раз вводить фразы дважды (Trezor, Keepkey, Mycelium).
Если пользователь применяет длинные фразы, состоящие из предложений и специальных символов, это немного замедляет процесс входа в интерфейс кошелька. Также не стоит забывать и о самом важном – утеря фразы равносильна утере всех криптоактивов.