← 返回文章列表

两步验证到底防什么:TOTP 原理与安全边界

口令安全入门

TOTP 是什么

TOTP(基于时间的一次性口令)的核心很朴素:服务端和你的验证器 App 共享一个种子密钥,双方用「当前时间步长(通常 30 秒)+ HMAC-SHA1」算出同一串 6 位数字。服务器只要比对是否相等即可。

它到底防什么

2FA 防的是密码泄露或撞库:攻击者即使拿到你的密码,没有种子密钥也生成不了下一步的动态码。但它不防实时钓鱼,中间人可以把你刚输入的动态码立刻转发到真网站。

三种 2FA 强度对比

方式强度弱点
短信验证码弱可被 SIM 交换、信号拦截、运营商内部人员获取
TOTP 验证器 App中不绑定域名,易被实时钓鱼转发
硬件密钥 / Passkey(WebAuthn)强绑定域名,钓鱼无法重放;需设备支持

使用建议

  1. 优先级:硬件密钥或 Passkey 最好,其次 TOTP App;短信验证码只作为兜底;
  2. 保存恢复码:离线打印或密码管理器存一份,防止丢手机后锁死账号;
  3. 分开存放:不要把 TOTP 种子和主密码存在同一处(别让密码管理器既存密码又存动态码还同步到同一云);
  4. 时间校准:验证失败先确认设备时间准确,时间漂移会让动态码对不上。

种子密钥与二维码

开通 2FA 时看到的二维码是 otpauth:// 链接,其中种子用 Base32 编码。截图保存等于泄露种子,请用支持加密导出的验证器。

动手试试

生成强随机种子:密码生成器、哈希计算。