朝向 TOTP 代码的测试套件

主要观点:作者作为书呆子会阅读规范文档,指出当前 TOTP 规范已过时且各主要实现存在差异,构建了测试套件供用户测试应用程序对 TOTP 标准的实现情况。
关键信息:

  • TOTP 基于 HOTP,以时间为计数器,自 UNIX 纪元已约 17.4 亿秒,当前周期默认 30 秒。
  • 对于 2FA 令牌的数字位数,谷歌说 6 或 8 位,YubiCo 允许 7 位,HOTP 规范示例为 6 位,TOTP RFC 未明确截断位数。
  • HOTP 规范给定算法为 SHA-1,TOTP 允许使用 SHA-256 和 SHA-512 等,HOTP 还提及其他候选哈希函数。
  • 周期方面,谷歌默认 30 秒,TOTP RFC 推荐 30 秒,无最大或最小限制,不同用户需求不同。
  • 秘密部分,谷歌和苹果对秘密的编码方式和长度要求不同。
  • 标签允许为同一服务有多个代码,谷歌和苹果等的规定存在差异。
  • 颁发者部分,谷歌、苹果和 Yubico 的要求也不一致。
    重要细节:
  • 作者构建的测试套件地址为 https://edent.codeberg.page/T...
  • 文中多处提到各规范的具体链接,如 Google 相关、Apple 相关、TOTP RFC 等。
  • 对各参数的讨论详细且涉及多种情况和疑问,如数字位数限制的原因、不同算法的使用等。
阅读 17
0 条评论