谷歌身份验证器如何工作的?
谷歌身份验证器 (Google Authenticator) 是一种基于软件的身份验证器,可实现两步验证服务 (2FA, Two-Factor Authentication)。
如何了解两步验证服务?鉴权 (Authentication) 从大方向来说蕴含 3 种因素:
- 常识因素:你所晓得的 (something you know)。比方事后设置的明码。
- 所有权因素:你所领有的 (something you own)。比方一次性明码能够证实咱们领有一部手机或其余设施。
-
固有因素:你自身具备的 (something you are)。比方指纹、人脸和虹膜等生物特色。
比方,为了进步账户安全性,网站在用明码登录后会提醒输出谷歌身份验证器生成的一次性明码。这样就联合了前两类因素。
谷歌身份验证器的应用分两个阶段。
第一个阶段 – 用户启用谷歌身份验证器。
- 步骤 1 和 2:韩梅梅关上网页以启用两步验证。前端申请一个秘钥 (Secret Key)。验证服务会为韩梅梅生成秘钥,并将其存储在数据库中。
- 步骤 3:验证服务向前端返回一个 URI。URI 由密钥发放者、用户名和秘钥组成。URI 以二维码的模式显示在网页上。
- 步骤 4:而后,韩梅梅应用谷歌身份验证器扫描生成的 QR 码。秘钥存储在验证器客户端中。
第二个阶段 – 用户应用验证器登录
- 步骤 1 和 2:韩梅梅想通过谷歌两步验证登录一个网站。每隔 30 秒,谷歌身份验证器会应用 TOTP (Time-based One Time Password) 算法生成一个 6 位数的明码。韩梅梅在网站上输出这个明码。
- 步骤 3 和 4:韩梅梅输出的明码被发送到后盾进行身份验证。验证服务从数据库中读取秘钥,并应用与客户端雷同的 TOTP 算法生成一个 6 位数明码。
- 步骤 5:身份验证服务比拟客户端和服务器生成的两个明码,并将比拟后果返回前端。只有当两个明码匹配时,韩梅梅能力持续登录。
这种身份验证机制平安吗?他人是否获取秘钥?
谷歌身份验证器应用 HTTPS 来传输密钥,并且客户端和数据库是以加密的模式来存储密钥。多层加密确保了密钥的安全性。
生成的 6 位明码会被黑客猜到吗?
不会。明码有 6 位数字,因而生成的明码有 100 万种可能的组合。此外,明码每 30 秒更改一次。如果黑客想在 30 秒内猜出明码,他们每秒须要输出 30,000 个明码组合。
欢送点赞留言提出你的宝贵意见!
【关注公众号:ByteByteGo】