Google身份验证器

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

相关

  • 法属圣马丁圣马丁(法语:Saint-Martin),通称法属圣马丁,正式名称为圣马丁集体(Collectivité de Saint-Martin),是一个法国海外集体。法国政府于2007年2月22日宣布该地自法属瓜德罗普分离,成为直
  • 中国战争史中国自古以来内部或对外具有重大影响的战事列表,战事名称以大中华地区使用者为准,后面附上时间为该战进行时间或中方参战时间,每场战争名词下方为该战简介。中国有明确记载确实
  • 聚光灯《聚光灯》(韩语:스포트라이트,英语:Spotlight)是韩国MBC于2008年5月14日起播放的水木迷你连续剧。描写电视台报道局(新闻部)社会部记者对真实报道的热情和在采访过程中的矛盾以及
  • 圣克拉拉省拉斯比利亚斯(Las Villas)省是古巴历史曾经存在的一个省份,省会为圣克拉拉市(非“圣克拉拉省”)(Santa Clara)。1978年时被一分为三,为现在的西恩富戈斯省、圣斯皮里图斯省和比亚克
  • 阿尔弗雷德·朱勒斯·艾耶尔阿尔弗雷德·艾耶尔爵士(Sir. Alfred Jules Ayer,1910年10月29日-1989年6月27日),英国哲学家,因1936年出版《语言、真理与逻辑》而闻名于世。此书中他提出了逻辑实证主义的一个主
  • 王德滋 (岩石学家)王德滋(1927年6月27日-),江苏泰兴人,中国岩石学家。1950年毕业于国立南京大学地质系。1997年当选为中国科学院院士。南京大学地球科学系教授、《高校地质学报》主编。曾任南京大
  • 太阳系外行星之最列表以下是已知的。此条目所列出的值都是已确定的:PSR B1257+12 A 的质量是基于另两颗较外侧的共面行星。依照其质量,它可能是小行星,还不足以成为行星(但系外行星的质量下限是近年
  • 陈绍馨 日本东北帝国大学文学科社会学科毕业(1932)  日本关西大学社会学博士(1957) 陈绍馨(1906年6月14日-1966年11月16日),新北市汐止人,日名山中彰二,外文拼音 Chen Shao-Hsing,台罗拼音
  • 小鬼初恋《小鬼初恋》(英语:)是一部1991年出品的剧情片,主角是丹·艾克罗伊德、杰米·李·柯蒂斯、麦考利·卡尔金、安娜·克伦斯基以及彼得·迈克尔·古兹。影片剧情的背景是设定于1972
  • 哈兰德·桑德斯哈兰德·大卫·桑德斯(英语:Harland David Sanders,1890年9月9日-1980年12月16日),以山德士上校(又译桑德斯上校)、肯德基爷爷的名字而闻名,是美国企业家、连锁速食店肯德基(Kentucky