Двухфакторная аутентификация (2FA)
Второй фактор подтверждения входа защищает аккаунт даже при утечке пароля.
Сигнатура
Two-Factor Authentication (2FA/MFA)2FA (двухфакторная аутентификация) требует при входе второй независимый фактор помимо пароля: одноразовый код из приложения (TOTP), аппаратный ключ или push-подтверждение. Даже зная пароль, атакующий не войдёт без второго фактора.
Как применять: предлагайте или требуйте 2FA, особенно для администраторов; предпочитайте TOTP и аппаратные ключи (WebAuthn) вместо SMS; предусмотрите резервные коды восстановления.
import pyotp
# Сервер хранит секрет пользователя; приложение-аутентификатор
# генерирует тот же одноразовый код по времени
secret = user.totp_secret
totp = pyotp.TOTP(secret)
if not totp.verify(code_from_user):
raise Exception("Неверный одноразовый код")