在给定带有时间戳的旧值的情况下,是否可以预测未来的2FA值



共享2FA代码安全吗?我说的是TOTP,就像Google AuthenticatorAuthy一样。

例如,如果我有代码和生成时间,是否可以预测新代码?如果我有一对以上的代码+时间怎么办?

我认为基于旧信息(代码+时间(预测新代码是可能的。

那么,如果这是可能的,我该怎么做呢?我在找一些算法。

已知时间段、时间、代码和秘密长度。

示例:

22:20:30 561918
22:21:00 161664
22:21:30 610130

在内部,这些2FA生成器通常基于基于时间的一次性密码算法工作。这些算法通过对两个值的组合使用强哈希函数来工作:共享秘密和当前时间增量,特别是使用一种称为HMAC的结构,只要底层哈希函数是。

因此,如果有人可以通过查看2FA设备的一些时间戳和输出来预测2FA设备未来的输出,那么他们要么(1(必须知道共享的秘密,要么(2(能够破解HMAC。除非有人入侵过谷歌,或者知道HMAC或底层哈希函数受到的攻击超出了公开文献的范围,否则这两种情况都不太可能发生。

换句话说,你不应该担心有人在给定过去的值的情况下猜测未来的值,尽管我仍然建议不要给出旧值,因为除了你登录的网站之外,你不应向任何人提供2FA值。:-(

最新更新