我见过许多双因素身份验证应用,例如google身份验证应用。
该应用程序脱机工作,每隔30秒重置手机上的密钥。
那么服务器如何知道哪些密钥有效?
我无法理解这个?
如果我要自己创建这样的应用程序。我怎么能这样做?
答案 0 :(得分:2)
Google身份验证器使用Time-based One-time Password Algorithm。它使用当前时间和共享密钥来计算代码。只要设备和服务器设置了正确的时间,生成的代码就会生效。
答案 1 :(得分:0)
Google身份验证器使用两种不同的方法:
"基于时间的"版本(TOTP)非常简单,可以保持同步。 (您的设备......和远程服务器......必须具有相同/正确的时间。)
"以反制为基础的"版本(HOTP)保持同步(即使您的移动设备处于飞行模式)并以某种方式每隔30秒更新其计数器内部......并且远程服务器也会这样做。
我只使用#1 ...因为Google并不清楚#2计数器如何保持同步状态#34; (在30秒内改变)移动设备和远程服务器之间没有任何通信。