MFA snižuje riziko kompromitace účtu o 99.9 %. Implementujte TOTP (Google Authenticator) nebo WebAuthn (passkeys).
TOTP implementace¶
import pyotp secret = pyotp.random_base32() totp = pyotp.TOTP(secret) uri = totp.provisioning_uri(“user@example.com”, issuer_name=”MyApp”)
QR kód z uri → authenticator app¶
totp.verify(user_code, valid_window=1) # ±30s tolerance
Recovery kódy¶
import secrets def generate_recovery_codes(count=10): codes = [secrets.token_hex(4) for _ in range(count)]
Uložit hashe do DB, plaintext zobrazit uživateli JEDNOU¶
return codes
Doporučení¶
- TOTP jako minimum
- WebAuthn/Passkeys jako nejbezpečnější
- SMS jen jako fallback (SIM swap riziko)
- Recovery kódy pro případ ztráty zařízení
- Enforce MFA pro admin role
Klíčový takeaway¶
TOTP je minimum, passkeys jsou budoucnost. SMS jen jako fallback. MFA pro všechny admin účty.