coinomico

Простой и безопасный старт в криптовалюте.

Колонку ведёт Демид Красильников

Защита 2FA в криптокошельке: почему одного SMS-кода мало

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

Демид Красильников, Обозреватель и гид по криптограмотности·Обновлено: 07 ноября 2026 г.·9 мин

Защита 2FA в криптокошельке: почему одного SMS-кода мало

Именно на этом участке новички чаще всего оставляют самую удобную для атакующего схему входа.

По оценке NIST, передача кода через телефонную сеть для аутентификации относится к ограниченным методам. SMS-сообщение может быть перехвачено, номер телефона — перенесён на другую SIM-карту, а код — выманен на поддельном сайте. При этом двухфакторная аутентификация биржевого аккаунта никак не защищает seed-фразу некастодиального кошелька. Смешение этих двух задач создаёт иллюзию безопасности.

Я всегда начинаю с простого разделения: что именно хранится, где лежат закрывающие ключи и какой именно вход мы защищаем. Только после этого можно выбирать между SMS, приложением-аутентификатором и FIDO/WebAuthn.

Сначала определите, какой у вас криптокошелек

Под словом «кошелёк» скрываются принципиально разные конструкции.

1. Кастодиальный кошелек или биржа. Ключи от активов хранит сервис. Пользователь управляет аккаунтом, а безопасность средств зависит от инфраструктуры площадки и действий её сотрудников. Bitcoin.org прямо предупреждает: при хранении ключей у третьей стороны пользователь зависит от её безопасности и добросовестности. Сервис могут взломать, закрыть или ограничить доступ к средствам.

2. Некастодиальный кошелёк. Закрывающие ключи остаются у пользователя. Чаще всего их хранит аппаратное устройство, а seed-фраза служит резервной копией для восстановления. Здесь вход в приложение и владение ключами — разные слои защиты.

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

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

Двухфакторная аутентификация защищает вход в аккаунт. Ключи кошелька она защищает лишь настолько, насколько их надёжно хранит сам сервис.

Почему SMS перестаёт быть достаточной защитой

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

В редакции 4 NIST SP 800-63B использование телефонной сети общего пользования, включая SMS и голосовые вызовы, для передачи кода вне основного канала отнесено к ограниченным методам аутентификации. Среди причин ограничения NIST называет перенос номера на устройство злоумышленника, уязвимости SS7 и переадресацию сообщений.

Основные сценарии выглядят так:

  • Перехват кода. В руководстве CISA от 18 декабря 2024 года отмечено, что SMS-коды не зашифрованы и могут быть перехвачены при доступе злоумышленника к сети оператора.
  • SIM-swap. Злоумышленник переносит номер на контролируемую SIM-карту и перехватывает входной код. Двухфакторная аутентификация превращается в дополнительную кнопку на пути к аккаунту.
  • Фишинг. Человеку показывают поддельную страницу биржи или сервиса. Введённый код злоумышленник пересылает настоящему сайту в режиме реального времени.
  • Подмена номера телефона. Восстановление доступа, смена устройства и проверка личности часто привязаны именно к номеру, хотя сам номер давно не является надежным доказательством личности.

По NIST, ручной ввод кода сам по себе не привязывает аутентификацию к конкретной сессии. Поэтому одноразовые коды и SMS-коды не считаются устойчивыми к фишингу. Проблема заключается в самой механике: если обманутый пользователь вводит код на поддельном сайте, протокол способен обработать этот ввод как обычную успешную аутентификацию.

Отсюда важная оговорка: SMS-код всё ещё даёт некоторую защиту. Говорить, что он бесполезен, неверно. Его слабость состоит в более низкой устойчивости по сравнению с аппаратными ключами и passkeys.

CISA также рекомендует установить для аккаунта мобильного оператора PIN или пароль. Такой код может требоваться для входа в личный кабинет или переноса номера. Для пользователя криптобиржи это простая мера, которая закрывает один из маршрутов к SMS-аутентификации.

При этом паниковать по поводу каждого нового сообщения о SIM-swap смысла нет. Надёжной статистики именно по криптовалютным аккаунтам нет. Мы знаем механизм атаки и способ снизить риск, но не располагаем данными, которые оправдывали бы запугивание.

SMS, приложение-аутентификатор или FIDO: сравнение без магии

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

МетодКак подтверждается входГлавная уязвимостьПрактический вердикт
SMS-кодЧерез номер телефона и оператора связиПерехват, SIM-swap, фишингИспользовать как запасной вариант, если нет более сильного метода
Приложение-аутентификатор, TOTPКод генерируется на устройстве по общему секретуФишинг, доступ к устройству, утечка секретаЗащита лучше SMS, но устойчивость к фишингу не обеспечивает
FIDO/WebAuthnАппаратный ключ или passkey подтверждает вызов сервисаПотеря устройства, взлом конечного устройства, слабый процесс восстановленияПредпочтительный вариант для аккаунта, где метод поддерживается

Google Authenticator и похожие приложения обычно используют протокол TOTP: приложение хранит секрет и рассчитывает временный код. Преимущество перед SMS очевидно — код не проходит через сеть оператора. Но CISA предупреждает, что коды из приложения-аутентификатора тоже можно выманить фишингом.

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

FIDO/WebAuthn работает с иным принципом. Специальный ключ или passkey подтверждает криптографический вызов, связанный с конкретным сайтом или приложением. Поддельная страница не получает валидный ответ для настоящего домена. Именно поэтому CISA называет FIDO-аутентификацию устойчивой к фишингу.

Набор доступных способов зависит от сервиса. Для примера, в справке Coinbase перечислены SMS, приложение-аутентификатор и аппаратный ключ безопасности YubiKey. Это показывает, что повысить уровень защиты часто можно без смены площадки.

Надёжность второго фактора определяется тем, сможет ли злоумышленник использовать его в поддельном сеансе. В этом смысле FIDO/WebAuthn стоит выше TOTP и SMS.

Мой порядок настройки 2FA криптокошелька

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

1. Проведите инвентаризацию входов

Выпишите все связанные с криптоаккаунтами элементы:

  • адрес электронной почты;
  • основной пароль;
  • номер телефона;
  • приложение-аутентификатор;
  • резервные коды;
  • активные сессии на компьютерах и телефонах;
  • администраторские или торговые разрешения, если сервис их разделяет.

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

2. Включите самый сильный доступный второй фактор

Если сервис поддерживает FIDO/WebAuthn, начните с аппаратного ключа или passkey. Один физический ключ удобно потерять или сломать, поэтому стоит предусмотреть отдельный аварийный экземпляр.

Если FIDO недоступен, используйте приложение-аутентификатор с TOTP. Google Authenticator подходит как знакомый пример такого решения, но именно протокол определяет устойчивость метода, а не название программы.

SMS имеет смысл оставить только тогда, когда сервис не предлагает альтернативу или требует его для восстановления. В таком случае риск следует понимать: компрометация номера может открыть путь к аккаунту.

3. Обработайте резервные коды и секрет приложения

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

QR-код при настройке TOTP содержит общий секрет, с помощью которого приложение генерирует коды. Снимок этого QR-кода способен заменить саму резервную копию. Поэтому не пересылайте его в мессенджеры и не оставляйте в общей папке с фотографиями.

Seed-фраза кошелька никогда не является резервным кодом 2FA. Если сайт или сотрудник просит ввести её для «проверки», «синхронизации» или «восстановления», нужно закрыть страницу и сменить пароль.

4. Защитите номер телефона

Установите PIN или пароль в аккаунте мобильного оператора. Там, где оператор предлагает блокировку переноса номера или изменения SIM-карты, включите её.

При смене телефона,SIM-карты или оператора я перепроверяю три вещи:

1. восстановление аккаунта биржи;

2. подтверждение смены устройства;

3. возможность отключить второй фактор.

Номер телефона должен быть резервным каналом, а не центральным узлом всей безопасности.

5. Настройте контроль вывода

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

  • белый список адресов для вывода;
  • уведомления о смене адресов и выводе;
  • отдельный код или пароль для вывода;
  • задержку или дополнительное подтверждение крупных операций;
  • блокировку неизвестных устройств и сессий.

Белый список адресов ограничивает ущерб, если атакующий уже получил доступ к аккаунту. Уведомления помогают заметить вывод, когда деньги ещё не ушли. Эти меры дополняют 2FA и выполняют другую задачу.

6. Проверьте восстановление доступа

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

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

Если seed-фраза остаётся у вас

У некастодиального кошелька нет обычной связки «логин, пароль, код из сообщения». Здесь главный вопрос звучит иначе: кто контролирует закрывающий ключ?

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

Работа с таким кошельком требует нескольких жёстких правил:

  • Seed-фразу записывают на физическом носителе и хранят отдельно от устройства. Фото в облаке, копия в почте и сообщение в чат создают несколько новых точек отказа.
  • Seed-фраза не вводится на сайтах. Легитимный интерфейс не просит её для «проверки кошелька».
  • Перед подтверждением транзакции параметры проверяются на экране самого аппаратного устройства. Заражённый компьютер может подсовывать изменённый адрес получателя или сумму.
  • Прошивка и программное обеспечение скачиваются с официального источника. Обновление с неизвестного сайта способно превратить защищённое устройство в точку входа.
  • Резервная копия seed-фразы хранится в месте, недоступном для бытовых случайностей и других пользователей.

Для кастодиального сервиса ситуация другая. Там 2FA полезна: она защищает аккаунт от перехвата пароля. Однако взлом или внутренняя ошибка самого сервиса находится за пределами возможностей вашего второго фактора. Ключи хранятся на его стороне, и зелёный замок в приложении не меняет архитектуру доверия.

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

Мой рабочий контур безопасности

Когда речь касается денег, я предпочитаю скучные повторяемые процедуры:

1. У каждого криптосервиса стоит уникальный пароль, хранящийся в менеджере паролей.

2. Основной второй фактор — FIDO/WebAuthn; при отсутствии поддержки — TOTP.

3. SMS остаётся резервным каналом, а телефонный номер защищён PIN-кодом оператора.

4. Резервные коды лежат отдельно от устройства с основным доступом.

5. Адреса вывода ограничены белым списком, а уведомления включены.

6. Активные сессии регулярно просматриваются.

7. Смена телефона, номера или почты автоматически запускает проверку процедуры восстановления.

8. Крупные долгосрочные активы выводятся из горячей среды в аппаратный кошелёк.

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

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

Частые вопросы

Почему SMS-код не считается надёжной защитой аккаунта?
Код может быть перехвачен, номер — перенесён на SIM-карту злоумышленника, а сам код — выманен на поддельном сайте. SMS даёт некоторую защиту, но уступает аппаратным ключам и passkeys.
Что лучше для 2FA: SMS, приложение-аутентификатор или аппаратный ключ?
Если сервис поддерживает FIDO/WebAuthn, предпочтителен аппаратный ключ или passkey: такой способ устойчив к фишингу. Если он недоступен, можно использовать TOTP в приложении-аутентификаторе; SMS разумно оставить запасным вариантом.
Защищает ли 2FA seed-фразу некастодиального кошелька?
Нет. 2FA может защищать аккаунт или интерфейс приложения, но не заменяет безопасное хранение закрытых ключей и seed-фразы.
Как защитить аккаунт мобильного оператора от SIM-swap?
Установите PIN или пароль в аккаунте оператора. Если доступна блокировка переноса номера или изменения SIM-карты, включите её.
Как безопасно хранить резервные коды и секрет TOTP?
Резервные коды можно хранить в зашифрованном менеджере паролей или отдельным бумажным комплектом в безопасном месте. Не пересылайте QR-код настройки TOTP в мессенджеры и не оставляйте его в общей папке с фотографиями.
Что делать, если сервис просит ввести seed-фразу для восстановления?
Не вводите её: сайт или сотрудник не должны просить seed-фразу для проверки, синхронизации или восстановления. Закройте страницу и смените пароль.