Google身份验证器

✍ dations ◷ 2025-12-07 16:08:53 #计算机访问控制,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上可供下载。

相关

  • 化学平衡化学平衡(英语:Chemical equilibrium)是指在宏观条件一定的可逆反应中,化学反应正逆反应速率相等,反应物和生成物各组分浓度不再改变的状态。可用ΔrGm=ΣνΑμΑ=0判断,μA是反
  • 罗斯柴尔德罗斯柴尔德家族(德语:Rothschild)是一个始于迈尔·阿姆谢尔·罗斯柴尔德的富有家族。迈尔·阿姆谢尔·罗斯柴尔德原本是一个为德国法兰克福自由市黑森-卡塞尔领伯国提供服务的
  • 日南市日南市(日语:日南市/にちなんし Nichinan shi */?)是位于日本宫崎县南部的城市。有九州的小京都之称。辖区位于鳄冢山脉的周边,辖区约有百分之七十七为森林地,特产是饫肥杉,是过
  • 手牵手 (歌曲)《手牵手》(英语:Hand in Hand)是一首抗击SARS的公益单曲,于2003年5月21日发行。该歌曲由音乐人王力宏、陶喆、陈镇川共同创作,并由86位艺人合唱。2002年11月16日,SARS在中国广东
  • 2014年Gaon单曲冠军作品列表2014年Gaon单曲冠军作品列表Gaon单曲榜是Gaon音乐榜的其中一项榜单,它列出韩国全国最畅销的歌曲,由大韩民国文化体育观光部(MCST)管理,其数据则由韩国音乐内容产业协会提供。2008
  • 符宁符宁(高棉语:ហូ នឹម ;1932年7月25日-1977年7月6日),绰号波(ភាស់ ),是赤柬重要领导人之一。出身磅湛省,有一半的华人血统。家境贫困,后来加入赤柬,成为重要领导人之一。1970年柬
  • 斯坦福·怀特斯坦福·怀特(Stanford White)(1853年11月9日-1906年6月25日)是美国建筑师。其中参与设计了著名的麦金,米德和怀特。他设计了一个系列为富人和众多的公众的房子、商业建筑和宗教
  • 戴维·德雷克戴维·德雷克(David Drake,1945年9月24日-),美国科幻和幻想小说作家。 曾参加越战,做过律师,军事科幻小说的重要作家之一。 德雷克以荣誉生毕业于爱荷华大学历史和拉丁文专业。后征
  • 世界极限运动会世界极限运动会(英语:)是一个每年举办的世界极限运动会。它是由美国体育有线电视网ESPN(包括其姐妹附属网络美国广播公司的报道)管理和安排的一个极限运动会,并侧重极限运动。在19
  • 洛佩斯角坐标:0°37′10.2″S 8°42′40.5″E / 0.619500°S 8.711250°E / -0.619500; 8.711250洛佩斯角(法语:Cap Lopez,旧名:Cap Lopez Gonsalvo),是一个约30公里长的半岛,位于加蓬奥果韦