TOTP
Time-based One-Time Password (RFC 6238) — um código de 6 dígitos gerado a partir de um segredo compartilhado e da hora atual (janela de 30 segundos).
Baseia-se no HOTP: HMAC-SHA1(secret, floor(unix_time / 30)), truncado para 6 dígitos. O segredo é compartilhado por um QR code que codifica otpauth://totp/...?secret=.... Funciona offline — o relógio do celular só precisa estar sincronizado com o do servidor.
Melhor que o 2FA por SMS (SIM swap), pior que passkeys/FIDO2 (phishable — dá para enganar o usuário e fazê-lo digitar o código num site falso). Está por trás do Google Authenticator, Authy, 1Password e Bitwarden. O método de 2FA padrão até as passkeys assumirem.