你能解释一下谷歌身份验证器/无线令牌是如何工作的吗?

22
我一直很好奇谷歌是如何在iPhone应用程序中生成一次性登录令牌的,即使当令牌被分配时没有与服务器通信。这个令牌每10秒钟更改一次。谷歌是如何知道正确的令牌是什么?我禁用了数据,但它仍然可以正常工作。
谢谢
2个回答

22

在安装过程中,它使用你的唯一密钥以及一个特殊的序列/算法(这是认证器程序的一部分(在你的情况下是iPhone .app))来生成一个特殊的密钥。在密钥生成过程中,它还使用你的iPhone上的当前时间与你正在从中登录的计算机时间匹配。

记住验证代码,等待当前代码过期,然后继续使用之前记住的代码在电脑上登录你的Google账户。这仍然可以运作。尝试将你手机的时间往后调20分钟或其他时间,然后使用新生成的代码,它将无法工作。

如果你有HSBC安全加密锁钥匙链的话,它的工作方式类似于那个(用于在线银行)。


1
Google Authenticator生成基于密钥的一次性密码(OTP)。密钥(种子)是一个包含16或32个字符的字母数字代码。在令牌注册过程中,服务器生成密钥并通过QR码与您的手机共享(或手动输入)。例如,当使用TOTP算法时,服务器和Google Authenticator知道种子和当前时间,并基于此信息在预定间隔内生成相同的一次性密码(OTP)。因此,关键要素是密钥和时间。Google Authenticator不需要任何互联网连接或移动网络。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接