TOTP 重新同步时钟

gcc*_*gcc 5 one-time-password two-factor-authentication

我正在使用 Node + Redis 进行 TOTP 验证,并试图弄清楚如何实现时钟漂移同步。我正在使用硬件设备生成 TOTP 密码/令牌,但在验证令牌时需要考虑这些硬件设备的时钟漂移。我已经阅读了RFC和其他博客文章,并且从较高的层面来看,我认为我理解在时间步长方面调整时钟漂移的算法,但我无法弄清楚在哪种情况下令牌应该验证失败和/或我应该在数据库中设置哪些标志来告诉我这一点。有任何想法吗?或者更好的是,有人可以向我指出一些人们在其中实现此功能的示例代码链接吗?

小智 0

时钟漂移调整可以在身份验证期间执行,也可以通过让用户提供两个或多个连续的 OTP 代码来执行。无论哪种方式,都会根据预期的 OTP 代码检查代码,并通过比较计算漂移时间(如果在下午 1 点提供代码 1234,但匹配代码需要下午 1:10 时间戳,则存在 10 分钟漂移)。