CyberGlossary

身份与访问

基于时间的一次性密码 (TOTP)

别称: RFC 6238, 时间型一次性密码

定义

RFC 6238 定义的一种一次性密码算法,根据共享密钥和当前时间生成短码,每 30 秒刷新一次。

TOTP 是广泛使用的二次验证机制。用户的身份验证器应用(Google Authenticator、Authy、1Password 等)与服务器共享同一个对称种子,并对当前 Unix 时间按 30 秒窗口取整后计算相同的 HMAC-SHA1 哈希值。屏幕上显示的 6 至 8 位数字代码会自动变化,且只在短时间内有效,从而降低了被偷窥或钓鱼获取后再利用的价值。一旦通过扫描二维码完成种子配置,TOTP 即可完全离线工作。其主要弱点是实时钓鱼代理 (AiTM) 中继验证码、设备上的恶意软件以及服务器端的种子泄露;在可能的情况下,更推荐 FIDO2 与 passkey。

示例

  • 在 GitHub 账户上启用 2FA 时,使用 Google Authenticator 扫描二维码。
  • 登录网上银行时输入身份验证器应用生成的 6 位数字代码。

相关术语