Проверяет знание методов усиления безопасности при входе пользователя.
В 2FA требуется сочетание «что-то, что вы знаете» (пароль) и «что-то, что вы имеете» (код из SMS, TOTP‑генератор или аппаратный токен). Используют SMS/Email, RFC 6238 TOTP (Google Authenticator), аппаратные ключи U2F/WebAuthn или push‑уведомления.
Методы второго фактора:
SMS/Email: простой, но менее безопасный (SIM‑swap).
TOTP: приложение‑генератор на основе времени (Authy, Google Authenticator).
U2F/WebAuthn: аппаратные токены (YubiKey).
Этапы реализации:
Регистрация: генерируете секрет и отображаете QR‑код для TOTP или привязываете устройство.
Хранение: секреты в безопасном хранилище (HashiCorp Vault, зашифрованная БД).
Аутентификация: после проверки пароля запрашиваете код и сверяете с TOTP‑алгоритмом или проверяете U2F‑ответ.
Интеграция в Python:
pyotp для TOTP:
import pyotp
secret = pyotp.random_base32()
totp = pyotp.TOTP(secret)
code = totp.now()webauthn для FIDO2.
Выбор метода зависит от требуемого уровня безопасности и удобства пользователя.