什么是 Time based One Time Passwords (TOTP)?
Time based One Time Passwords (TOTP) 是一种通过短期有效的代码来确认登录的方法。你的手机和服务端共享一个密钥并参考当前时间,因此双方可以独立生成相同的六位代码。想象一个在你眼前不断变化的锁形组合,就是这么简单。
有人以为 TOTP 需要手机信号才能工作。不是的。应用在设备上使用时间和共享密钥生成代码,因此即使在飞行模式下也能使用。
Time based One Time Passwords (TOTP) 的工作原理
启用用于交易所或钱包登录的 TOTP 时,大致流程如下。
- 开始:在安全设置中选择使用身份验证器应用并扫描二维码。
- 密钥:你的应用保存一个共享种子,通常被称为 密钥,用于将你的设备和服务配对。
- 同步:双方在短时间片内读取相同的时钟并运行标准算法生成六位代码。
- 输入:登录时在计时器过期前输入该代码。
- 验证:服务端用相同算法验证代码,匹配则允许登录。
就是这么简单。
为什么 Time based One Time Passwords (TOTP) 很重要
用简单语言说明“有何意义”:
- 好处:即使有人知道你的密码,TOTP 也能阻止许多账号接管。
- 角度:短信验证码可能因 SIM 换卡而薄弱,因此 TOTP 是更可靠的第二步。大多数服务允许你通过身份验证器应用启用 双因素认证 2FA。
- 适用场景:你会在交易所、NFT 市场、去中心化金融面板和托管入口看到它。
设置时把种子写下或安全保存,并保持手机时间自动更新。丢失种子或时间漂移可能导致无法登录。
Time based One Time Passwords (TOTP) 的关键特征
值得了解的快速特性:
- 有效期:代码大约持续三十秒,然后更换。
- 离线:设置完成后,应用无需网络也能生成代码。
- 共享:双方依赖在设置时存储的相同密钥。
- 公开:基于公开的 RFC 标准,这就是许多应用支持它的原因。
Time based One Time Passwords (TOTP) 如何计算?
在底层,TOTP 使用一个以时间为输入的单向函数。你不需要手动计算,但原理如下:
TOTP code = Truncate(HMAC SHA 1(secret, counter)) mod 10^digits counter = floor(unix time in seconds divided by step) step = 30 and digits = 6 in most apps 变体
常见形式:
- HOTP:基于计数器的代码,每次使用后递增,不依赖时间。
- 推送:应用推送提示供你批准,类似 TOTP 但无需输入代码。
- 硬件:小型令牌在屏幕或钥匙扣上显示代码。
- 多账户:可以存储多个账号并提供备份选项以便恢复的应用。
如果你在假网站上输入了有效代码,TOTP 也无法保护你。注意 网络钓鱼风险,确认地址栏后再进行操作。
示例
你在加密交易所登录,输入密码,然后打开身份验证器应用,输入一个在三十秒内过期的六位 Time based One Time Passwords (TOTP)。
趣闻
TOTP 在 OATH 社区通过 RFC 6238 被标准化,它是 Google Authenticator 和许多其他应用背后的静默支撑。像把经典表盘与在线讨论结合起来,但用于登录代码。
总结
把 TOTP 想象为一个小型、与时间同步的锁,让你的登录更难被盗,同时易于使用。
