Google身份验证器

Google身份验证器是一款TOTP与HOTP的两步验证软件令牌（英语：Authenticator），此软件用于Google的认证服务。此项服务所使用的算法已列于 RFC 6238 和 RFC 4226 中。 Google身份验证器给予用户一个六位到八位的一次性密码用于进行登录Google或其他站点时的附加验证。其同样可以给第三方应用生成口令，例如密碼管理員或网络硬盘。先前版本的Google身份验证器开放源代码，但之后的版本以专有软件的形式公开。 用户通常將身份验证程序安裝在智能手机上，为了登录到使用两步验证的网站或服务上，用户提供用户名和密码后运行身份验证器进行额外验证。 该应用程序会生成六位数的一次性密码，不同网站則可能会生成同一密码。 为了使身份验证器正常工作，安装运行之前网站必须向用户提供一组共享密钥。这组密钥将会用于未来的所有登入请求。 在两步验证的保护之下，仅拥有用户名密码已不足以黑入账户。攻击者需要这组共享密钥或者拿到进行两步验证的移动设备。另一种方法是进行中间人攻击；若用户的电脑被木马侵入，则用户名、密码及一次性密码都将被木马所捕获，随后攻击者即可利用木马进行登录、监听或修改用户与网站的通信。 谷歌提供安卓、黑莓和iOS版本的身份验证器。同时也有第三方版本。 Windows Phone 7.5/8/8.1/10: Microsoft Authenticator Virtual TokenFactor Windows Mobile: Google Authenticator for Windows Mobile Java CLI: Authenticator.jar Java GUI: JAuth FXAuth J2ME: gauthj2me lwuitgauthj2me Mobile-OTP （仅支持中文） totp-me Palm OS: gauthj2me Python: onetimepass, pyotp PHP: GoogleAuthenticator.php Ruby: rotp, twofu Rails: active_model_otp （第三方实现） webOS: GAuth Windows: gauth4win MOS Authenticator WinAuth .NET: TwoStepsAuthenticator HTML5: html5-google-authenticator MeeGo/Harmattan (Nokia N9): GAuth Sailfish OS: SGAuth, SailOTP Apache: Google Authenticator Apache Module PAM: Google Pluggable Authentication Module oauth-pam Backend: LinOTP（英语：LinOTP） （后端管理使用Python实现） Chrome/Chrome OS: Authenticator iOS: OTP Auth privacyIDEA 认证系统。 服务提供商为每个用户生成80位的密钥（然而RFC 4226 §4要求使用128位并建议使用160位密钥）。 它以16位、26位或者32位base32的字符串亦或是二维码的方式提供。客户端使用此密钥生成HMAC-SHA1。经过HMAC处理过的信息可能为： 自UNIX时间（TOTP）起始之后所经过的30秒周期数 随着每个新密码所增加的计数（HOTP） 一段哈希值被提取出来并转换为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[offset..offset+3] //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[offset..offset+3] //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 Google身份验证器在Google Play商店上以私有版权协议发布。Google在GitHub上开放了其身份验证器源代码，并陈述如下： “此开源计划包含了2.21版本的源代码。随后的版本中包含了Google特有的工作流程，与此项目无关。” 最後一個開源的版本在2020年發布。 Android版本的独立分支之一为FreeOTP，其基于Google在GitHub上所开源的最新版本。另外一个較不活躍的分支OTP Authenticator也在Google Play上可供下载。 多重要素驗證 基於HMAC的一次性密碼演算法 FreeOTP 一次性密碼應用程式的比較（英语：Comparison of OTP applications） Google Is Making Your Account Vastly More Secure With Two-Step Authentication - TechCrunch. TechCrunch. 2010-09-20 [2016-03-12]. （原始内容存档于2020-12-02）.  GitHub - google/google-authenticator: Open source version of Google Authenticator (except the Android app). GitHub. Google. [2017-10-15]. （原始内容存档于2021-01-26） （英语）. These implementations support the HMAC-Based One-time Password (HOTP) algorithm specified in RFC 4226 and the Time-based One-time Password (TOTP) algorithm specified in RFC 6238.  Willis, Nathan (22 January 2014)."FreeOTP multi-factor authentication （页面存档备份，存于互联网档案馆）". LWN.net. Retrieved 10 August 2015. https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 （页面存档备份，存于互联网档案馆） A Google Authenticator. App Store. [2017-10-15]. （原始内容存档于2015-12-22）.  Authenticator. 4 April 2013 [2017-10-15]. （原始内容存档于2019-10-17）.  Virtual TokenFactor. 26 February 2012 [2017-10-15]. （原始内容存档于2013-09-08）.  [APP]Google Authenticator for Windows Mobile. XDA Developers. [2017-10-15]. （原始内容存档于2019-04-19）.  http://blog dot jamesdotcuff dot net. [2017-10-15]. （原始内容存档于2014-08-01）.  mclamp/JAuth. GitHub. [2017-10-15]. （原始内容存档于2015-08-04）.  kamenitxan/FXAuth. GitHub. [2017-10-15]. （原始内容存档于2020-09-05）.  gauthj2me - Google Authentification in Java Mobile, j2me - Google Project Hosting. [2017-10-15]. （原始内容存档于2016-01-06）.  lwuitgauthj2me - Google Authenticator for J2ME phones - Google Project Hosting. [2017-10-15]. （原始内容存档于2016-03-16）.  chunlinyao / mobile-otp — Bitbucket. [2017-10-15]. （原始内容存档于2017-10-15）.  totp-me - TOTP for Java ME - Google authenticator. [2017-10-15]. （原始内容存档于2018-01-05）.  gauth.prc - gauthj2me - Google Authenticator for Palm OS (converted from java) - Google Authentification in Java Mobile, j2me - Google Project Hosting. [2017-10-15]. （原始内容存档于2016-01-06）.  tadeck/onetimepass. GitHub. [2017-10-15]. （原始内容存档于2020-10-27）.  pyotp/pyotp. GitHub. [2017-10-15]. （原始内容存档于2018-06-11）.  chregu/GoogleAuthenticator.php. GitHub. [2017-10-15]. （原始内容存档于2020-09-29）.  rotp - RubyGems.org - your community gem host. [2017-10-15]. （原始内容存档于2019-07-11）.  ukazap/twofu. GitHub. [2017-10-15]. （原始内容存档于2020-09-12）.  heapsource/active_model_otp. GitHub. [2017-10-15]. （原始内容存档于2020-12-05）.  GAuth. [2017-10-15]. （原始内容存档于2020-10-20）.  gauth4win - Google Authenticator for windows - Google Project Hosting. [2017-10-15]. （原始内容存档于2016-01-11）.  MOS Authenticator Home. [2017-10-15]. （原始内容存档于2020-02-17）.  winauth - Windows Authenticator for Battle.net / World of Warcraft / Guild Wars 2 / Glyph / WildStar / Google / Bitcoin - Google Project Hosting. [2017-10-15]. （原始内容存档于2015-05-17）.  glacasa/TwoStepsAuthenticator. GitHub. [2017-10-15]. （原始内容存档于2020-12-05）.  gbraad/html5-google-authenticator. GitHub. [2017-10-15]. （原始内容存档于2014-07-05）.  Techtransit. Nokia Store: Download GAuth and many other games, wallpaper, ringtones and mobile apps on your Nokia phone. [2017-10-15]. （原始内容存档于2014-07-12）.  SGAuth. [2017-10-15]. （原始内容存档于2019-07-11）.  SailOTP. [2017-10-15]. （原始内容存档于2021-01-10）.  google-authenticator-apache-module - Apache Module for Two-Factor Authentication via Google Authenticator - Google Project Hosting. [2017-10-15]. （原始内容存档于2015-11-19）.  google-authenticator - Two-step verification - Google Project Hosting. [2017-10-15]. （原始内容存档于2015-02-10）.  oauth-pam - PAM for use with OAuth Websites - Google Project Hosting. [2017-10-15]. （原始内容存档于2016-08-08）.  Authenticator. [2017-10-15]. （原始内容存档于2019-10-17）.  OTP Auth. App Store. [2017-10-15]. （原始内容存档于2019-04-12）.  https://tools.ietf.org/html/c#section-4[永久失效連結] google/google-authenticator-android: Open source fork of the Google Authenticator Android app. GitHub. 16 May 2022.  FreeOTP. [2017-10-15]. （原始内容存档于2020-11-12）.  kaie/otp-authenticator-android. GitHub. [2017-10-15]. （原始内容存档于2020-11-22）.  Google帮助上的Google身份验证器 （页面存档备份，存于互联网档案馆） GitHub上的Google 身份验证器 （页面存档备份，存于互联网档案馆）旧版本源代码  在Stack Overflow上使用Python实现的Google身份验证器 （页面存档备份，存于互联网档案馆） F-Droid資源庫上的Android軟體套件Authenticator