Google身份验证器

✍ dations ◷ 2024-09-20 11:43:50 #计算机访问控制,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上可供下载。

相关

  • 进行性多灶性白质脑病进行性多灶性白质脑病(英语:Progressive multifocal leukoencephalopathy,PML),或称进行性多灶性脑白质炎,是一种以进行性脑损伤和多灶性脑白质炎症为特点的罕见并致命的病毒性疾
  • 认知神经科学异常心理学 行为遗传学 生物心理学 心理药物学 认知心理学 比较心理学 跨文化心理学 文化心理学 差异心理学(英语:Differential psychology) 发展心理学 演化心理学 实验心理学
  • 舌头舌(舌头)是口腔底的肌肉,帮助咀嚼、吞咽、构音和感受味觉。舌能辨别酸、甜、苦、辣、咸、鲜味,舌表面的大部分粘膜上皮中含味蕾。因为舌是帮助发声的器官之一,在一些语言中,比如在
  • 美国科学促进会美国科学促进会(英语:American Association for the Advancement of Science,缩写为AAAS),创建于1848年9月20日,是世界最大的非营利科学组织,下设21个专业分会,所涉包括数学、物理学
  • amphiesma腹链蛇属(学名:Amphiesma)是蛇亚目游蛇科下的一个蛇属,其品种均为无毒蛇类,多分布在亚洲地区,包括中国、西伯利亚、韩国、印度次大陆、中南半岛、东南亚、日本及印尼。其拉丁学名
  • 乙二酸酐乙二酸酐也称为草酸酐或环氧乙烷二酮,是一种假想的有机碳氧化物。这种化合物的分子式为C2O3。乙二酸酐可被认为是乙二酸的酸酐或环氧乙烷的二羰基取代物。乙二酸酐至今(直到20
  • 于格·费利西泰·罗贝尔·德拉梅内于格·费利西泰·罗贝尔·德拉梅内(Hugues Felicité Robert de Lamennais 1782年6月19日-1854年2月27日)法国天主教神父、哲学家、政治理论家、基督教社会主义者。他是法国复
  • 查尔斯·布兰顿·哈金斯查尔斯·布兰顿·哈金斯(英语:Charles Brenton Huggins,1901年9月22日-1997年1月12日),出生于加拿大哈利法克斯的美国医学家与生理学家,主要研究前列腺癌。他发展以赫尔蒙控制癌细
  • 河合龙之介河合龙之介(1983年5月23日-)是日本男演员。隶属于T-artist旗下的艺人,出生于日本东京都府中市,血型O型,身高178cm,体重65kg。毕业于早稲田大学。兴趣是电影欣赏(以一年看300部为目标
  • 张雪楼张雪楼爵士(英语:Sir Christopher John Chancellor,1904年3月29日-1989年9月9日),英国记者,曾任路透社总经理。张雪楼是英国殖民地长官约翰·钱塞勒爵士(Sir John Robert Chancellor