Google身份验证器

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

相关

  • 同性婚姻同性婚姻过去在美国曾极具争议,仅在为数不多的判例中暧昧的未加以否定,最高法院在奥贝格费尔诉霍奇斯案的判决,各州亦须给予承认,并且不得拒绝发放结婚证书给予同性伴侣。最高法
  • 胚胎性癌胚胎性癌(英语:Embryonal carcinoma),是一类位于卵巢或睾丸的罕见生殖细胞瘤。位于卵巢的胚胎性癌相当少见,占全部卵巢生殖细胞瘤的3%。确诊的平均年龄为15周岁。其特征和症状各
  • 官房学派官房学派(英语:Cameralism,17世纪),又称作重商主义的官房学派,又译作“官房学”、“官房主义”,是重商主义的一种形式,强调促进国家福利状况,认为增加国家的黄金、白银等货币能增强国
  • 荒木町 (新宿区)荒木町(日语:荒木町/あらきちょう  */?)是东京都新宿区的町名。未实施新住居表示,不设丁番。2013年8月1日为止的人口有2,194人。邮递区号160-0007。位于新宿区东南部,北邻住吉町
  • 中央区 (相模原市)中央区(日语:中央区/ちゅうおうく  */?)是相模原市的3区之一。区北端一部分(宫下本町三丁目)有京王电铁相模原线通过,但不设站。
  • 节拍器节拍器(Metronome),又叫拍子机,是一种能规律发出声音或视觉效果来显示节拍的器材,通常用来提供一个稳定的节拍和速度;音乐上以每分钟几拍(Beats Per Minute,BPM)来计算速度。节拍器是
  • 所有男人都是恋童癖吗?《所有男人都是恋童癖吗?》(英语:)是由荷兰媒体制作人让·威廉·布鲁勒于2012年拍摄的一部纪录片。本片由14岁的模特儿萨凡纳·凡·斯维登(Savannah van Zweeden)主演,主要探讨恋童
  • 大理小檗大理小檗(学名:)为小檗科小檗属的植物,为中国的特有植物。分布在中国大陆的云南等地,生长于海拔3,000米至3,900米的地区,见于松林下,目前尚未由人工引种栽培。
  • 奥斯卡·维克托罗维奇·斯塔尔克奥斯卡·路德维希·斯塔尔克(瑞典语:Oskar Ludvig Stark; 俄语:Оскар Викторович Старк,俄语为奥斯卡·维克托罗维奇·斯塔尔克; 1846年8月16日-1928年11月12
  • 凌扬藻凌扬藻(1760年-1845年),字誉剑,号药洲,广东番禺(今广州)人。乾隆二十五年(1760年)出生,早年为诸生,督学姚文田很看重他,后与汪大源、何应�、张业南等同为巡抚朱圭所赏识,工诗文。道光二十五