Определение простыми словами
MFA — это второй замок на двери. Чтобы войти в аккаунт, мало знать пароль: нужно ещё подтвердить вход кодом из приложения, нажатием на телефон или прикосновением к ключу YubiKey. Если пароль украли через фишинг, злоумышленник всё равно не пройдёт.
Двухфакторная аутентификация (2FA) — частный случай MFA с двумя факторами. Чаще всего используется связка пароль + одноразовый код TOTP из Google Authenticator, Authy или 1Password. Самые надёжные варианты — аппаратные ключи U2F/FIDO2 и passkey.
Сравнение
| Метод | Стойкость | Удобство | Уязвимости |
|---|---|---|---|
| SMS-код | Низкая | Высокое | SIM-swap, перехват по SS7 |
| TOTP-приложение | Средняя | Высокое | Фишинг в реальном времени |
| Push в приложение банка | Средняя | Очень высокое | MFA-fatigue (засыпание спамом) |
| U2F / Passkey | Очень высокая | Среднее (нужен токен) | Потеря ключа без бекапа |
| Биометрия (Face/Touch ID) | Высокая локально | Очень высокое | Не работает удалённо |
Кейсы использования
- Панель управления хостингом — обязательный TOTP, чтобы взломанный пароль не дал доступ к серверам и доменам.
- Корпоративная почта Google Workspace — passkey для администраторов, SMS как fallback запрещён.
- Финансовый сервис — push-подтверждение каждой транзакции в мобильном приложении банка.
- SSH-доступ к VPS — связка ключа Ed25519 и аппаратного токена U2F через `ssh-keygen -t ed25519-sk`.
- Негативный сценарий: включить только SMS-2FA на криптокошелёк и привязать к российскому номеру — оператор по поддельной доверенности сделает SIM-swap, и аккаунт уйдёт.
Технические детали
# Установка PAM-модуля Google Authenticator на Linux
apt install libpam-google-authenticator
# Настройка для пользователя
google-authenticator -t -d -f -r 3 -R 30 -W
# -t TOTP, -d запрет повтора кода, -r 3 -R 30 rate-limit
# Включение в /etc/pam.d/sshd
echo 'auth required pam_google_authenticator.so' >> /etc/pam.d/sshd
# В /etc/ssh/sshd_config:
# ChallengeResponseAuthentication yes
# AuthenticationMethods publickey,keyboard-interactive
systemctl restart sshd
# Проверка резервных кодов (хранить офлайн!)
cat ~/.google_authenticator
🔥 Где это применяется
Частые вопросы
Чем 2FA отличается от MFA?
2FA — это MFA с двумя факторами. Любая 2FA является MFA, но MFA может включать три и более фактора, например пароль + TOTP + биометрия.
Безопасно ли использовать SMS как второй фактор?
SMS лучше, чем ничего, но уязвим к SIM-swap и перехвату через сети SS7. Для критичных аккаунтов — хостинг, банк, почта — берут TOTP-приложение или аппаратный ключ.
Что делать, если потерял телефон с TOTP?
Использовать резервные коды, выданные при настройке (хранить распечатанными). Если их нет — проходить процедуру восстановления у провайдера, обычно с подтверждением паспорта или платежа.