是否可以通过给定带有时间戳的旧值来预测将来的2FA值?

问题描述 投票:0回答:1

共享2FA代码是否安全?我说的是TOTP,例如Google AuthenticatorAuthy

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

我认为可以根据旧信息(代码+时间)来预测新代码。

因此,如果可能的话,我该怎么办?我正在寻找某种算法。

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

示例:

22:20:30 561918
22:21:00 161664
22:21:30 610130
security authentication math google-authenticator
1个回答
0
投票

[内部,这些2FA生成器通常基于time-based one-time password algorithm工作。这些算法通过对两个值(共享的机密和当前时间增量)的组合使用强大的哈希函数来工作,并且特别使用称为HMAC的构造,只要其基础哈希函数是已知的,该构造就是安全的。

因此,如果有人可以通过查看2FA设备的时间戳和输出来预测2FA设备的未来输出,那么他们要么(1)必须知道共享密钥,要么(2)能够破解HMAC 。除非有人对Google进行了黑客攻击,或者知道以非公开文献记载的方式对HMAC或底层哈希函数进行了攻击,但这两种情况都不大可能。

换句话说,您不必担心有人会根据过去的值来猜测将来的值,尽管我仍然建议您不要给出旧的值,因为您不应向除您网站以外的任何人提供2FA值重新登录。 :-)

© www.soinside.com 2019 - 2024. All rights reserved.