2FA (Two-Factor Authentication) — дополнительный уровень безопасности, при котором для входа нужны два независимых фактора из разных категорий: знание (пароль, PIN), владение (телефон, ключ безопасности), биометрия (отпечаток). При компрометации одного фактора атакующий не получает доступ.
Методы 2FA
- TOTP (Time-based One-Time Password) — 6-значный код, меняющийся каждые 30 секунд. Генерируется приложением (Google Authenticator, Authy). Стандарт RFC 6238.
- SMS OTP — код по SMS. Удобен, но уязвим к SIM-swapping и SS7-атакам. Слабее TOTP.
- U2F / FIDO2 — аппаратные ключи (YubiKey). Наиболее безопасный метод. Защищает от фишинга.
- Push-уведомление — одобрение в приложении (Duo Security, Microsoft Authenticator).
TOTP для SSH
# Установить Google Authenticator PAM
apt install libpam-google-authenticator
# Настроить для пользователя
google-authenticator
# /etc/pam.d/sshd добавить
auth required pam_google_authenticator.so
# /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
История
Концепция многофакторной аутентификации появилась в банковском секторе в 1960-х. RSA SecurID (hardware token) — 1986. TOTP стандартизирован в RFC 6238 (2011). FIDO Alliance основан в 2012 году. FIDO2/WebAuthn — стандарт W3C с 2019 года. Passkeys (2022) — развитие FIDO2 без паролей.
Связь с хостингом
2FA обязательна для защиты SSH на VDS, панелей управления хостингом и учётных записей в облачных провайдерах. SSH-ключи + TOTP — оптимальная защита административного доступа. Для команды: централизованный IAM (Teleport, HashiCorp Vault) обеспечивает 2FA для всех SSH-подключений.
История двухфакторной аутентификации
Первая реализация 2FA для массового применения — RSA SecurID (1986), аппаратные токены с одноразовыми паролями. TOTP (Time-based One-Time Password) стандартизирован в RFC 6238 (2011) как основа для Google Authenticator (2010). SMS-коды как 2FA введены крупными банками в 2000-е годы. FIDO2/WebAuthn (2019) — стандарт беспарольной аутентификации с аппаратными ключами YubiKey. По данным Google, 2FA блокирует 99.9% автоматизированных атак на аккаунты.
Типы второго фактора
| Тип | Безопасность | Удобство |
|---|---|---|
| SMS-код | низкая (SIM swap) | высокое |
| TOTP (приложение) | высокая | среднее |
| Push-уведомление | высокая | высокое |
| Аппаратный ключ (FIDO2) | максимальная | низкое |
| Биометрия | высокая | высокое |
Настройка 2FA на хостинге
Для защиты SSH используется модуль libpam-google-authenticator: установка, настройка PAM, генерация QR-кода. Панели управления cPanel, ISPmanager, Webmin поддерживают TOTP нативно. Для WordPress плагины WP 2FA, miniOrange обеспечивают защиту административной панели.
Типичные ошибки
- SMS как второй фактор для критичных систем: SIM-своппинг компрометирует защиту.
- Хранение TOTP seed-кода в той же системе что и пароль — теряется смысл второго фактора.
- Не сохранены backup-коды при настройке TOTP — при потере устройства потерян доступ.