google身份验证器工作原理
Google身份验证系统是通过基于时间的一次性密码算法实现的双因子(2FA)验证,即TOTP(Time-Based One-Time Password)算法。该算法由3部分组成:
一个共享密钥
一个基于当前时间的输入
一个签名函数
1、Shared Secret(共享密钥)
用户在手机端进行身份验证的时候,需要获取共享密钥。拿Authy举例,获取的方式包括识别程序扫描给定的二维码(QR)或者直接手动输入,密钥是32位加密的字符串。
2、Input(Current Time)
简单来说,输入是基于用户手机产生的当前时间,一旦你获取到secret密钥,就不用再与服务器进行通信了。但是这里比较重要的是用户手机时间要准确,因为从算法原理来讲,身份验证服务器会基于同样的时间来重复进行用户手机的运算。进一步来说,服务器会计算当前时间前后几分钟内的令牌,跟用户提交的令牌比较。所以如果时间上相差太多,身份验证过程就会失败。
3、Signing Function(签名函数)
签名函数使用的是HMAC-SHA1。HMAC是基于哈希的消息验证码,能够用安全的单向哈希函数(SHA1)来生成签名。
googleAuthenticator密钥是什么
谷歌身份验证器本身是不提供密钥的,密钥是给已登录的账号增添二次验证时出现的,输入密钥后,谷歌身份验证器就绑定了你的账户,可以为你今后的账户登录提供验证码,增强账户安全。操作步骤下载谷歌身份验证器(Google Authenticator),安装完成后打开,点击开始2.点击输入提供的密钥3.登录要验证的账户,获取密钥。
4.再谷歌身份验证器上输入账号名和密钥,输入后点击添加。
5.添加验证的账户后会得到验证码6.将得到的验证码输入到网站上,保存设定即可。