首页 / 百科 / TOTP

TOTP

安全

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

TOTP 是 RFC 6238(2011)定义的时间基一次性密码:服务端与验证器共享密钥,每 30 秒基于 HMAC-SHA1 派生 6 位数字,是 Google Authenticator 与两步验证生态的核心协议。

演进脉络

一次性密码的前身是 event-based 的 HOTP(RFC 4226,2005,计数器驱动)。TOTP(RFC 6238,2011)把计数器换成"Unix 时间 ÷ 30 秒"的时间窗口,免去同步计数器的麻烦。Google Authenticator 2010 年开源发布后,TOTP 成为两步验证事实标准;2018 年 FIDO2/WebAuthn 开始承担更强角色,但 TOTP 仍是覆盖面最广的第二因素。

参数与生态约定

标准参数:时间步长 30 秒、码长 6 位、HMAC-SHA1(部分系统支持 SHA256/512)。密钥以 Base32 交付,扫描的 otpauth:// URI(Key URI Format,Google 文档)约定了 issuer、account 与算法参数。 Base32 而非 Base64 正是为了人工抄写不混淆。

安全边界

TOTP 是"你拥有什么",防的是密码泄露,不防设备丢失与钓鱼(实时中继攻击可即时转发验证码)。生产部署建议:密钥仅在扫码时展示一次、允许 ±1 个窗口时钟漂移并记录重放、配套恢复码。对抗钓鱼的最优解仍是 FIDO2 硬件通行密钥。

相关工具

相关词条