如何使用第三方 OTP 应用程序设置 Google 2FA

Kit*_*rve 4 privacy two-factor-authentication google-workspace

我在我志愿服务的组织之一有一个 Google 帐户。他们最近决定要求所有帐户登录都进行 2FA。Google 的 2FA 注册过程需要 (a) PSTN 电话号码、(b) 智能手机上的 Google 应用程序(不是 Google 身份验证器)、(c) 硬件安全令牌之一。我不准备将我的电话号码提供给 Google,也不愿意安装一个要求我在手机上登录的 Google 应用,因为有许多第三方 OTP 实现可用(除了其他任何东西,我很少使用智能手机,更喜欢使用桌面应用程序)。该组织不提供硬件令牌,我也没有自己的令牌。还有另一种选择吗?例如,获取与 OTP 应用程序一起使用的设置和初始化密钥,或与硬件令牌作用相同的浏览器扩展。我正在运行 Ubuntu 21.04 和 Firefox,但如果绝对必要,可以使用基于 Chrome 的浏览器。

(编辑以澄清在注册期间不提供 Google 身份验证器作为选项:只有 Google(搜索)应用程序或 Gmail 应用程序是可能的。)

Mil*_*s R 11

截至 2022 年,在初始注册时无法执行此操作,因为在 Google 中将 Google 身份验证器设置为 2FA 选项需要已启用 2FA(“要在 iPhone、iPod Touch 或 iPad 上使用 Google 身份验证器,您需要:两步验证已开启”)。这意味着您需要向他们提供您的电话号码,或者使用他们在您手机上的应用程序之一设置 2FA。然后您可以转到身份验证器。

这是一个解决方法:

  • 按照本指南使用 Chrome DevTools 创建虚拟硬件安全密钥(确保选择类型“u2f”)
  • 当您打开 DevTools 并且虚拟设备处于活动状态时,使用安全密钥启动 Google 2FA 设置。
  • 完成此操作后,您已满足在帐户上设置 2FA 的先决条件,因此您现在可以继续设置第三方 OTP 应用程序。现在,您可以选择使用 Authenticator 应用程序设置 2FA,该应用程序将为您呈现一个 QR 码,您可以将其与任何支持扫描 QR 码以生成 OTP 代码的应用程序(例如 1Password)一起使用


use*_*686 8

“智能手机上的谷歌特定应用程序”有两种选择——一种使用在线通知(谷歌提示),另一种使用离线 OTP(谷歌身份验证器)。

一次性密码

Google 以“身份验证器应用程序”的名义支持基于 OTP 的 2FA 。它使用 OATH TOTP 标准——与大多数其他 OTP 应用程序使用的标准完全相同,具有标准参数(6 位数字,30 秒间隔)。

作为注册过程的一部分,您将看到一个直接包含 TOTP 共享密钥的二维码。您几乎可以使用任何现有的 OTP 应用程序扫描它(桌面应用程序也应该能够“扫描”屏幕截图)。

在同一步骤中,您还可以单击“无法扫描?” 并显示与纯文本相同的 TOTP 种子。您可以将其复制并粘贴到您的桌面 OTP 应用程序中,也可以将其写在纸上以作为备份存储。

该应用程序不需要与 Google 通信。但是,设备的时钟需要准确(Google 官方应用程序会使用在线时间服务器自动补偿错误的时钟,但在其他应用程序中,您需要自己处理)。

在此处输入图片说明 在此处输入图片说明

当系统询问您的手机类型时,无论您选择“iOS”还是“Android”都没有关系 - 无论哪种方式,您都会得到相同的过程。

(如果“无法扫描?”选项丢失,也可以使用通用二维码解码器扫描二维码,这将显示纯文本中的 TOTP 种子。二维码的内容使用格式otpauth://totp/GitHub:someuser?secret=ABCDEF&issuer=GitHub,用户名和发行人仅供展示。)

代币

关于硬件令牌——是的,有一些浏览器扩展可以模拟 WebAuthn 或 U2F 令牌,但其中许多似乎已被放弃,而且它们不一定是安全的。(它们也有突然不再工作的风险,所以如果你使用它们,请确保有 TOTP 作为备份。)

在 Linux 上,您还有诸如rust-u2f 之类的软件,它在操作系统级别模拟硬件 U2F 令牌——它可以与任何网站和任何 Web 浏览器一起使用,因为它被视为实际连接的 HID 设备。尽管如此,它还是比真正的硬件令牌更脆弱,我不确定我是否会推荐使用它。

最后,让操作系统提供基于软件的“平台令牌”实际上是更新的 WebAuthn 规范的一部分。Windows 10 在“Windows Hello”名称下实现了它(所有主要浏览器都支持),而 Apple 刚刚在 macOS Monterey 中添加了一个类似的“iCloud Passkey”功能。

不幸的是,谷歌不支持“平台”令牌,只支持硬件令牌——我不确定这是故意的还是因为他们使用旧的 U2F API 而不是 WebAuthn。(但是,rust-u2f 仍然可以工作,因为它模拟的是硬件令牌,而不是平台令牌。)

  • 对于 TOTP,您希望专门寻找 **"Authenticator app"** 选项,该选项应该看起来相当通用(例如,它没有说“添加电话”,而只是“设置”)。如果您正在查看显示您的特定手机的列表 - 那是错误的地方。(我不确定 _initial_ 注册过程,但主要的“双因素管理”页面有很多选项 - 硬件密钥、TOTP“身份验证器”、通过蓝牙充当硬件密钥的智能手机、“谷歌提示”、短信, 电话...) (2认同)
  • @Kitserve“_在手机上获取 Google 提示,只需点击“是”即可登录_”指的是您问题中的 _(a)_,它通过 Google 应用程序使用智能手机本身作为硬件密钥 _(实际的 Google 应用程序([ Android](https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox) || [苹果](https://apps.apple.com/us/app/google /id284815942)),而不是身份验证器应用程序)_。 (2认同)
  • 抱歉,花了一段时间才回过头来。在大家的帮助下,我得以完成这项工作。谷歌一开始没有提供 OTP 密码的选项,只是谷歌应用程序。不确定这是由于管理员在 Google Workspace 中设置的设置所致,还是现在只是 Google 默认设置。感谢 user1686,我能够使用 rust-u2f 注册 2FA。注册后,它提供了设置 Google 身份验证器的选项,我可以在桌面 OTP 应用程序中使用这些设置。设置完成后,我就可以删除 rust-u2f 密钥。 (2认同)