谷歌身份验证器如何工作的?

谷歌身份验证器如何工作的?

 title=

谷歌身份验证器 (Google Authenticator)是一种基于软件的身份验证器,可实现两步验证服务 (2FA, Two-Factor Authentication)。
谷歌身份验证器如何工作的?_第1张图片


如何理解两步验证服务?鉴权 (Authentication) 从大方向来说包含3种要素:

  1. 知识要素:你所知道的 (something you know)。比如预先设置的密码。
  2. 所有权要素:你所拥有的 (something you own)。比如一次性密码可以证明我们拥有一部手机或其他设备。
  3. 固有要素:你本身具备的 (something you are)。比如指纹、人脸和虹膜等生物特征。

    比如,为了提高账户安全性,网站在用密码登录后会提示输入谷歌身份验证器生成的一次性密码。这样就结合了前两类要素。

谷歌身份验证器的使用分两个阶段。

第一个阶段 - 用户启用谷歌身份验证器。

谷歌身份验证器如何工作的?_第2张图片

  • 步骤 1 和 2:韩梅梅打开网页以启用两步验证。前端请求一个秘钥 (Secret Key)。验证服务会为韩梅梅生成秘钥,并将其存储在数据库中。
  • 步骤 3:验证服务向前端返回一个 URI。URI 由密钥发放者、用户名和秘钥组成。URI 以二维码的形式显示在网页上。
  • 步骤 4:然后,韩梅梅使用谷歌身份验证器扫描生成的 QR 码。秘钥存储在验证器客户端中。

第二个阶段 - 用户使用验证器登录

谷歌身份验证器如何工作的?_第3张图片

  • 步骤 1 和 2:韩梅梅想通过谷歌两步验证登录一个网站。每隔 30 秒,谷歌身份验证器会使用 TOTP (Time-based One Time Password)算法生成一个 6 位数的密码。韩梅梅在网站上输入这个密码。
  • 步骤 3 和 4:韩梅梅输入的密码被发送到后台进行身份验证。验证服务从数据库中读取秘钥,并使用与客户端相同的 TOTP 算法生成一个 6 位数密码。
  • 步骤 5:身份验证服务比较客户端和服务器生成的两个密码,并将比较结果返回前端。只有当两个密码匹配时,韩梅梅才能继续登录。

这种身份验证机制安全吗?别人能否获取秘钥?

谷歌身份验证器使用HTTPS来传输密钥,并且客户端和数据库是以加密的形式来存储密钥。多层加密确保了密钥的安全性。

生成的 6 位密码会被黑客猜到吗?

不会。密码有 6 位数字,因此生成的密码有 100 万种可能的组合。此外,密码每 30 秒更改一次。如果黑客想在 30 秒内猜出密码,他们每秒需要输入 30,000 个密码组合。

欢迎点赞留言提出你的宝贵意见!

【关注公众号:ByteByteGo】

你可能感兴趣的:(后端)