Nem*_*sis 4 security authentication math google-authenticator
共享2FA代码安全吗?我说的是TOTP像Google Authenticator或Authy。
例如,如果我有代码和生成时间,是否可以预测新代码?如果我有超过 1 对代码+时间怎么办?
我认为可以根据旧信息(代码+时间)预测新代码。
那么如果这是可能的,我该怎么做呢?我正在寻找一些算法。
已知时间段、时间、代码和秘密长度。
例子:
22:20:30 561918
22:21:00 161664
22:21:30 610130
Run Code Online (Sandbox Code Playgroud)
在内部,这些 2FA 生成器通常基于基于时间的一次性密码算法来工作。这些算法通过对两个值的组合使用强哈希函数来工作:共享秘密和当前时间增量,并且特别使用称为HMAC的结构,只要底层哈希函数是安全的,该结构已知是安全的。
\n\n因此,如果有人可以通过查看 2FA 设备的一些时间戳和输出来预测 2FA 设备的未来输出,那么他们要么 (1) 必须知道共享密钥,要么 (2) 能够破解 HMAC。除非有人侵入了 Google,或者知道对 HMAC 或底层哈希函数的攻击方式超出了公共文献中的\xe2\x80\x99s,否则这两种情况都不太可能发生。
\n\n换句话说,你不应该\xe2\x80\x99t需要担心有人猜测给定过去值的未来值,尽管我\xe2\x80\x99d仍然建议不要给出旧值,因为你不应该\xe2\x80\x99t给出将 2FA 值发送给除您\xe2\x80\x99 登录的站点之外的任何人。:-)
\n