TOTP
Time-based One-Time Password(RFC 6238)。共有秘密鍵と現在時刻(30秒窓)から生成される6桁のコード。
HOTPを土台にしており、HMAC-SHA1(secret, floor(unix_time / 30))を6桁に切り詰めて作る。秘密鍵はotpauth://totp/...?secret=...を埋め込んだQRコードで共有する。オフラインでも動き、スマートフォンの時計がサーバーと合っていればよい。
SMSによる二要素認証(SIMスワップに弱い)よりは安全だが、パスキーやFIDO2には劣る(偽サイトにコードを入力させるフィッシングが可能なため)。Google Authenticator、Authy、1Password、Bitwardenなどが採用している。パスキーが主流になるまでの、事実上の標準的な2FA方式だ。