Google身份验证器

✍ dations ◷ 2025-12-02 00:20:35 #计算机访问控制,Google服务

Google身份验证器是一款TOTP与HOTP的两步验证软件令牌,此软件用于Google的认证服务。此项服务所使用的算法已列于 RFC 6238 和 RFC 4226 中。

Google身份验证器给予用户一个六位到八位的一次性密码用于进行登录Google或其他站点时的附加验证。其同样可以给第三方应用生成口令,例如密码管理员或网络硬盘。先前版本的Google身份验证器开放源代码,但之后的版本以专有软件的形式公开。

通常,用户安装身份验证程序在智能手机上。为了登录到使用两步验证的网站或服务上,用户提供用户名和密码后运行身份验证器进行额外验证。 该应用程序会生成六位数的一次性密码,而不同网站可能会生成同一密码。

为了使身份验证器正常工作,安装运行之前网站必须向用户提供一组共享密钥。这组密钥将会用于未来的所有登陆请求。

在两步验证的保护之下,仅仅拥有用户名密码已不足以黑入账户。攻击者需要这组共享密钥或者拿到进行两步验证的移动设备。另一种方法是进行中间人攻击;若用户的电脑被木马侵入,则用户名、密码及一次性密码都将被木马所捕获,随后攻击者即可利用木马进行登录、监听或修改用户与网站的通信。

谷歌提供安卓、黑莓和iOS版本的身份验证器。同时也存在有第三方版本。

服务提供商为每个用户生成80位的密钥(然而RFC 4226 §4要求使用128位并建议使用160位密钥)。 它以16位、26位或者32位base32的字符串亦或是二维码的方式提供出来。客户端使用此密钥生成HMAC-SHA1。经过HMAC处理过的信息可能为:

一段哈希值被提取出来并转换为6位数密码。

  function GoogleAuthenticatorCode(string secret)      key := base32decode(secret)      message := floor(current Unix time / 30)      hash := HMAC-SHA1(key, message)      offset := last nibble of hash      truncatedHash := hash  //4 bytes starting at the offset      Set the first bit of truncatedHash to zero  //remove the most significant bit      code := truncatedHash mod 1000000      pad code with 0 until length of code is 6      return code

生成事件性或计数性的一次性密码伪代码

  function GoogleAuthenticatorCode(string secret)      key := base32decode(secret)      message := counter encoded on 8 bytes      hash := HMAC-SHA1(key, message)      offset := last nibble of hash      truncatedHash := hash  //4 bytes starting at the offset      Set the first bit of truncatedHash to zero  //remove the most significant bit      code := truncatedHash mod 1000000      pad code with 0 until length of code is 6      return code

Android上的开源情况

Google身份验证器在Google Play商店上目前(2017年9月16日)以私有著作权协议发布。Google在GitHub上开放了其身份验证器源代码,并陈述如下:

“此开源计划包含了2.21版本的源代码。随后的版本中包含了Google特有的工作流程,与此项目无关。”

Android版本的独立分支之一为FreeOTP,其基于Google在GitHub上所开源的最新版本。另外一个并非很火的分支OTP Authenticator也在Google Play上可供下载。

相关

  • 塔尔沙漠塔尔沙漠(Thar Desert),也叫印度大沙漠,是南亚地区西北部的一个沙漠。该沙漠面积200,000平方公里。世界第18大沙漠,亚洲第3大沙漠。 该沙漠大部分位于印度拉贾斯坦邦。而该沙漠伸
  • 孝烈武皇后乌喇纳喇氏孝烈武皇后乌拉那拉氏(1590年-1626年10月1日),名阿巴亥(满语:ᠠᠪᠠᡥᠠᡳ,转写:Abahai),清太祖努尔哈赤的大福晋(《清史稿》称大妃),皇太极后母。她的父亲满泰为乌拉部贝勒,故阿巴亥之母
  • 下韦莱省下韦莱省(法语:Province du Bas-Uélé)是位于刚果民主共和国北部的一个省,首府布塔(Buta),与中非共和国接壤,人口1,093,845(2005年),面积148,331 km²。
  • 玑瑛青年创新创业实践基地南开大学玑瑛青年创新创业实践基地,也是南开大学众创空间,位于南开大学八里台校区内,是南开大学和天津市南开区科委共同建设高校众创空间。
  • 硫酸铽硫酸铽是一种无机化合物,化学式为Tb2(SO4)3。它可用于合成其它铽化合物。用硫酸溶解氧化铽(III),可以得到硫酸铽。
  • 阿卜杜勒拉赫曼·阿卜杜阿卜杜勒拉赫曼·阿卜杜,全名阿卜杜勒拉赫曼·默罕默德·阿卜杜·M·侯赛因(阿拉伯语:عبد الرحمن عبدو‎,拉丁转写:Abdulrahman Mohammed A. M. Hussain‎,1972年10
  • 布莱恩·伊诺布莱恩·伊诺(1948年5月15日-,英语:Brian Eno,全名:Brian Peter George St. John le Baptiste de la Salle Eno,常简称Eno),英国音乐人、作曲家、制作人和音乐理论家。氛围音乐的先锋
  • 乔振宇乔振宇(1978年11月1日-),中国大陆男演员,因出演《浣花洗剑录》中方宝玉一角而走红,成为当红小生。亦被大陆网民选为第一届天涯四美之一。乔振宇和王倩一在拍摄电视剧《老有所依》
  • 中国国家图书馆总馆南区中国国家图书馆总馆南区,旧称北京图书馆新馆,位于北京市海淀区中关村南大街33号,是中国国家图书馆总馆的一部分。其建筑位列1980年代北京十大建筑之首。中国国家图书馆的前身是
  • 亨利·迈尔斯·海德门亨利·迈尔斯·海德门(英语:Henry Mayers Hyndman,1842年3月7日-1921年11月20日)是一名英国作家和政治家,英国第一批马克思主义者、改良主义者、社会党的右翼领袖之一,对英国同期的