🔑 Использование TOTP-приложений
Безопасная замена SMS-кодам и защита второго фактора аутентификации (ИАФ.3, ЗКС.1)
TOTP (Time-based One-Time Password) — это алгоритм генерации одноразовых паролей, привязанных к времени. При настройке двухфакторной аутентификации сервис и ваше приложение обмениваются секретным ключом (обычно через QR-код). Дальше происходит следующее:
- Приложение и сервер, зная один и тот же секретный ключ и текущее время, независимо друг от друга вычисляют одинаковый шестизначный код.
- Код меняется каждые 30–60 секунд.
- Вы вводите этот код на сайте вместе с паролем. Сервер сверяет его со своим. Если они совпадают — доступ разрешён.
Ключевая особенность: Приложению не нужен интернет. Код генерируется прямо на вашем устройстве локально, что исключает перехват при передаче.
⚠️ Уязвимости SMS
- SIM-своппинг: Мошенник перевыпускает вашу SIM → все коды приходят ему.
- Перехват трафика (SS7): Протокол SS7 был создан десятилетия назад без учёта безопасности. Коды могут быть перехвачены в сети оператора.
- Зависимость от сети: В роуминге или при плохом сигнале SMS может не прийти вовремя.
- Нешифрованная передача: Код отправляется по воздуху в открытом виде.
✅ Преимущества TOTP
- Не зависит от сети: Работает в самолёте, метро, за границей.
- Защита от SIM-своппинга: Даже если мошенники перевыпустят вашу SIM, ваши TOTP-коды останутся при вас.
- Короткое время жизни: Код действителен 30–60 секунд. Окно атаки минимально.
- Локальная генерация: Код никуда не передаётся — он существует только на вашем устройстве.
Сравнение факторов риска по методике ФСТЭК
| Фактор риска |
SMS-код |
TOTP-приложение |
Обоснование (ФСТЭК) |
| Канал передачи |
Открытый (SS7/GSM). Перехватывается. |
Отсутствует. Генерация локально. |
Исключение угроз перехвата (ЗКС.1). |
| Привязка к идентификатору |
К номеру телефона (можно перевыпустить). |
К секретному ключу в Secure Enclave. |
Устранение зависимости от внешнего ID (ИАФ.3). |
| Целостность |
Нет гарантии подлинности отправителя. |
Детерминированный расчёт. Подделка невозможна. |
Гарантия подлинности аутентификатора. |
| Доступность |
Требует сигнала сети. |
Работает офлайн. Требуется точное время. |
Непрерывность функционирования (НФ). |
| Жизненный цикл |
Зависит от доставки. |
Строго 30 секунд. |
Минимизация экспозиции (УПД.4). |
💼 Категория 1: Встроенные в менеджеры паролей
- Bitwarden, 1Password, KeePassXC: Ключи хранятся в том же зашифрованном хранилище. Автоматическое заполнение и синхронизация между устройствами.
- Плюсы: Централизованное управление, резервное копирование включено в общую стратегию бэкапа.
- Соответствие ФСТЭК: Централизованное управление аутентификаторами (усиление ИАФ.3 п.8).
📱 Категория 2: Специализированные автономные
- 2FAS / Ente Auth: Открытый исходный код, E2EE-синхронизация, биометрическая защита входа, экспорт/импорт резервных копий.
- Aegis (Android): Полностью локальное, шифрование базы данных, регулярные автоматические бэкапы.
- Google/Microsoft Authenticator: Базовые решения. Риск единой точки отказа при привязке к аккаунту вендора.
Категория 3: Аппаратные токены (Максимальная защита): YubiKey, Nitrokey, Tangem. Секретный ключ никогда не покидает токен. Соответствует требованию строгой аутентификации с аппаратным средством (ИАФ.3 п.10).
⚙️ Пошаговая настройка и миграция
- 🔒 Шаг 1. Защита самого приложения: Обязательно установите биометрию или PIN-код на вход в TOTP-приложение. Без этого любой, кто взял разблокированный телефон, получит доступ ко всем кодам. Создайте зашифрованную резервную копию сразу после установки.
- 🔄 Шаг 2. Миграция сервиса: В настройках безопасности выберите «Приложение-аутентификатор». Отсканируйте QR-код. Обязательно сохраните резервные коды восстановления, которые сервис предложит после привязки. Храните их отдельно от телефона.
- Шаг 3. Отключение SMS: Только после успешной проверки TOTP-кода отключайте SMS как второй фактор. Никогда не делайте это до подтверждения работоспособности нового метода.
- ⏰ Шаг 4. Синхронизация времени: TOTP критически зависим от точности часов. Убедитесь, что на устройстве включена автоматическая синхронизация времени (NTP). Если код не принимается — проверьте настройки времени.
⚠️ Критически важно: Резервное копирование и восстановление
Если вы потеряете телефон или он сломается, а у вас не будет резервной копии — вы потеряете доступ ко всем аккаунтам, где включена 2FA. Это самая частая проблема при переходе на TOTP.
- Резервные коды (Backup Codes): Сохраните их в надёжном месте, отдельно от телефона (распечатайте, сейф, зашифрованный файл на ПК). Каждый код можно использовать только один раз.
- Облачное резервное копирование: Некоторые приложения (Microsoft Authenticator, Ente Auth, 2FAS) поддерживают зашифрованное облачное резервное копирование. Убедитесь, что оно использует end-to-end encryption.
- Ручной экспорт: Aegis и другие open-source приложения позволяют экспортировать все секретные ключи в один зашифрованный файл. Периодически создавайте такой экспорт.
- Дублирование на втором устройстве: Установите приложение на планшет или второй телефон и синхронизируйте аккаунты для страховки.
📋 Обоснование по методике (ИАФ.3, усиление п.10)
Для реализации строгой аутентификации допускается использование мобильного телефона в качестве второго фактора с установленным приложением-генератором одноразовых паролей. Однако для привилегированных пользователей и систем высокого класса защищенности требуется аппаратное средство с неизвлекаемым ключом.
- TOTP исключает угрозы перехвата в канале связи (ЗКС.1).
- Устраняется зависимость от компрометируемого внешнего идентификатора (номера телефона).
- Минимизируется время экспозиции аутентификатора (УПД.4).
- Для личного использования TOTP-приложение является оптимальным балансом безопасности и удобства при условии защиты самого приложения.
🏆 Итоговая рекомендация
- Начните с защиты приложения: Установите PIN/биометрию на вход в TOTP-приложение и создайте зашифрованную резервную копию базы. Без этого TOTP становится новой точкой отказа.
- Мигрируйте критичные сервисы: Почта, банки, Госуслуги и менеджер паролей должны использовать TOTP или аппаратный ключ. SMS оставьте только для некритичных уведомлений.
- Сохраните резервные коды: Распечатайте их или сохраните в менеджере паролей. Потеря доступа к TOTP без резервных кодов означает потерю аккаунта навсегда.
- Проверяйте резервные копии: Хотя бы раз в полгода попробуйте восстановить доступ из резервной копии на другом устройстве, чтобы убедиться, что она работает.
TOTP защищает второй фактор, но не заменяет защиту устройства. Эффективность достигается только в связке с надежной блокировкой экрана (Уровень 1) и PIN-кодом на само приложение. 🛡️