我理解双因素身份验证的基本思想:两个凭据用于更安全地对用户进行身份验证。我问的是我经常遇到的一种特定的双因素身份验证方法。
当我为我的Google帐户打开双因素身份验证时,我能够在iPhone上访问频繁变化的伪随机数。这些随机数构成了第二个身份验证因素(另一个是我的密码),我可以输入这些数字来验证自己的身份。
我真正不明白的是,当我的iPhone离线时,这些号码仍然可以验证我的身份。所以很明显,无论发生什么,都比谷歌验证我有他们给我的一些数字更有趣。
我对到底发生了什么非常感兴趣。伪随机数是系统时间的键控哈希吗?这是我最好的猜测,但我很好奇。
您所谓的"伪随机数"是一次性密码 (OTP)。这些密码是在算法下生成的。如果您谈论频繁更改的 OTP,则使用 TOTP 算法。TOTP(基于时间的一次性密码)算法意味着生成临时密码。此密码通常在 30-60 秒后过期。您的设备不需要在线,因为 OTP 是基于密钥生成的,这对您的设备和服务是相同的。因此,设备和服务器生成相同的密码,当您在访问帐户的过程中输入OTP时,服务器会检查OTP是否正确。基于它,服务器确认或拒绝对帐户的访问。