Google身份验证器

✍ dations ◷ 2025-11-20 03:58:00 #计算机访问控制,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上可供下载。

相关

  • 红颜祸水致命女郎(法语:femme fatale、国际音标:)是文学上用来分类以自身的魅力诱使目标(多数是男人)沉溺的女性,而为之倾倒的人多数是下场悲惨如失去社会地位、家庭、政权甚至是自己的性命
  • 世界主义世界主义(英语:Cosmopolitanism)是一种意识形态,可从正义概念的普世性出发,每一个世界公民都不受歧视地自我决定其发展。世界主义则是此世界因互相依存的网络交流的全球状态。世
  • 公元前4500年在前5千纪(或称前第5个千年)时代,亚洲、北非和欧洲南部的人类已经广泛从事农业生产,在小亚细亚半岛城市已经普遍建立,铜器开始使用,车轮被发明出来,畜牧业在欧亚大陆逐渐普及,中国进
  • 特洛伊小行星地球特洛伊是轨道在邻近地球-太阳拉格朗日点L4和L5上运行的小行星。它们类似于木星与拉格朗日点相关联的小行星,都被称为特洛伊小行星。从地球表面上观察,它们的位置大约在太阳
  • 认知学认知科学(英语:Cognitive Science),是一门研究讯息如何在大脑中形成以及转录过程的跨领域学科。它研究何为认知,认知有何用途以及它如何工作,研究信息如何表现为感觉、语言、注意
  • 单挫林单挫林是一种突触后肌肉松弛剂,可减轻骨骼肌的收缩。它透过抑制兰诺定受体(Ryanodine receptor)来阻止从肌质网释放钙离子以达成治疗效果。单挫林用来治疗和预防因全身麻醉而引
  • 男男性行为者男男性行为者(英文:men who have sex with men,缩写MSM,又称男男性接触者、男男性行为人群)是指与同性发生性关系的男性,而不管他们自我认定为何种性向。这个术语主要用于美国,用以
  • 长鳓长鳓(学名:,又称鳓,俗名曹白、鲞鱼、力鱼)为辐鳍鱼纲鲱形目鲱亚目锯腹鳓科鳓属的其中一种鱼类。本鱼广泛分布于东海、俄罗斯东部大彼得湾以及沿海,以及印度太平洋区等海域,包括俄罗
  • 洪德法洪德法(d'Hondt method),又译抗特计算法,是指在比例代表制下的最高均数方法选举形式之一。洪德法基本规则为,把每一参选党派所取得票数除以一、二、三、直至议席数目,然后将得出的
  • 中心 (群论)在抽象代数中,群 G {\displaystyle G} 即为其自身。正交群 O ( n )