密钥生态系统远未完成,但 Google 的实施现已准备就绪。
到目前为止,您可能已经听说无密码的 Google 帐户终于面世了。密码的替代品称为“密钥”。
与当前的身份验证方法相比,在可用性以及它们提供的安全和隐私优势方面,存在许多关于密钥的误解。这并不奇怪,因为密码在过去 60 年中一直在使用,而万能钥匙又是如此新颖。总而言之,通过几分钟的培训,密钥比密码更容易使用,并且在几个月内——一旦十几个行业合作伙伴完成剩余部分——使用密钥将更加容易. 密钥也比密码更安全和更能保护隐私,原因我稍后会解释。
什么是密码?
本文提供了入门指南,帮助人们开始使用 Google 的密钥实施,并解释了使它们成为防止帐户接管的一种更简单、更有效的方法的技术基础。一些较小的网站——特别是 PayPal、Instacart、Best Buy、Kayak、Robinhood、Shop Pay 和 Cardpointers——已经推出了各种使用密码登录的选项,但这些选择更多的是概念验证,而不是可行的解决方案。谷歌是第一个提供密码的主要在线服务,它的产品非常精致和全面,我建议人们今天就启用它们。
首先,它有助于准确了解密钥是什么以及它是如何工作的。Apple在此处提供了有关密钥技术基础的有用描述:
密钥基于 WebAuthentication(或“WebAuthn”)标准构建,该标准使用公钥加密。在帐户注册期间,操作系统会创建一个唯一的加密密钥对,以与应用程序或网站的帐户相关联。这些密钥由设备为每个帐户安全且唯一地生成。
这些密钥之一是公开的,并存储在服务器上。这个公钥不是秘密。另一个密钥是私有的,是实际登录所需要的。服务器永远不会知道私有密钥是什么。在配备 Touch ID 或 Face ID 的 Apple 设备上,它们可用于授权使用密钥,然后通过该密钥对应用程序或网站的用户进行身份验证。不传输共享秘密,服务器不需要保护公钥。这使得密钥非常强大,易于使用,具有高度的网络钓鱼抵抗能力。平台供应商在 FIDO 联盟内合作,以确保密钥实现跨平台兼容,并可以在尽可能多的设备上运行。
FIDO 规范要求用户选择的任何同步机制(无论是来自 Apple、Microsoft、Google 还是第三方)都提供端到端加密,就像 iCloud Keychain 和密码与浏览器当前同步的方式一样(在 Chrome 上,这E2EE 必须打开)。这意味着云提供商不知道私钥。私钥驻留在设备上,只能通过使用解锁 PIN、指纹或面部扫描解锁设备来访问。
Google 帐户密钥支持足够多的平台,因此没有单一的方法可以使用它们。主要使用 Android 和 Linux 的人登录的方式与使用所有 Apple 平台的人或使用带有 Windows 的 iOS 或 Android 的人看起来和使用的流程不同。没有办法在一篇文章中列出所有平台的分步说明。本入门指南混合使用设备和操作系统——特别是 Pixel 7、iPhone 13、第九代 iPad、运行 Windows 10 的 ThinkPad 和 MacBook Air——目标是至少触及所有设备和操作系统的基本工作原理他们中的。
WTF 这个密码是在我的 Pixel 上做的吗?
当我周三醒来时——谷歌推出无密码谷歌账户的那一天——我的 Pixel 7 已经自动创建了一个密码。直到我访问g.co/passkeys时我才注意到,这是myaccount.google.com/signinoptions/passkeys的快捷方式,谷歌为管理帐户密码而安装的页面。令我惊讶的是,钥匙已经在那儿了。由于我的帐户已在 Google 的高级保护计划(APP) 中注册,因此这个新密钥立即出现在双因素身份验证 (2FA) 密钥之上,APP 需要这些密钥来引导新的浏览器登录。
如图所示,我在 MacBook Air 上使用 Chrome 访问该页面,尽管这些天我首选的浏览器是 Firefox。原因:Firefox 尚不支持 macOS 上的密码,尽管这会改变,可能迟早会改变。我最终决定在剩下的过程中继续使用 Safari,因为在 macOS 和 iOS 上使用该浏览器创建的密码会通过 iCloud Keychain 自动同步。目前,在 Apple 平台上使用 Chrome 和 Edge 创建的密码还没有。
在 Safari 中访问相同的 g.co/passkeys 页面,我滚动到底部并单击“创建密钥”并收到一个对话框,其中提供了密钥的简短说明。从那里,我点击了“继续”按钮。出现的下一个屏幕解释了我正在保存一个将存储在 iCloud 中的密码。单击“完成”后,myaccounts.google.com 的密码部分会更新以指示已创建新密码。
不要害怕二维码
为了访问 MacBook Air 上的 myaccounts.google.com 页面,我像往常一样使用密码进行身份验证。然而,谷歌在我的 Pixel 7 上自动创建的密钥为我提供了另一种身份验证方式。我可以点击密码字段左侧下方的“尝试另一种方式”,而不是在 Mac 的登录页面中输入密码。从那里,我可以选择使用密钥。然后我选择“iPhone、iPad 或 Android 设备”,在下一个屏幕上收到二维码,并使用我的 Pixel 7 扫描它。我选择了扫描下方立即显示的“密码”,按照提示进行操作,最后提供了指纹。
此过程称为跨设备身份验证。QR 代码由用户想要登录的设备显示,并使用已经有密码的设备进行扫描。无论我使用密码进行身份验证还是使用 Pixel 设备上的密钥进行跨设备身份验证,最终结果(将 Safari 登录到我的 Google 帐户)都完全相同。
快速绕道:细心的读者可能会注意到,上面的图像显示的 QR 码没有经过编辑或混淆。在许多情况下,公开显示用于身份验证的 QR 码是非常不安全的,因为任何其他人都可以扫描它并访问允许不受信任的设备登录的加密秘密。出于几个原因,关联的 QR 码并非如此与密码。一方面,扫描二维码的受信任设备(在我的例子中是 Pixel 7)必须在物理上离不受信任的设备足够近才能通过蓝牙连接。这是读者无法满足的要求。另一方面,一旦不受信任的设备(在我的例子中是运行 Safari 的 MacBook Pro)连接上,二维码就会失效。
有了 iCloud 存储和同步的密码,在我的 iPhone 和 iPad 上使用它们——或者连接到同一个 iCloud 帐户的任何其他 Apple 设备——非常容易。这意味着我现在可以使用 iPhone 或 iPad 进行与我的 iPhone 提供的相同类型的跨设备身份验证。当 Chrome 和 Edge 都加载到 iPad 或 iPhone 的登录页面时,它允许我跳过密码(即尝试另一种方式),而是使用由 iCloud 管理的密钥。
然后,我在 ThinkPad 上启动了 Chrome,并访问了我的 Google 帐户的登录页面。这一次,我使用 iPhone 上新创建的密钥进行身份验证。该过程几乎与之前使用我的 Pixel 上的密钥向我的 Mac 上的 Safari 进行身份验证的过程相同。
密钥集合中缺少一些主要部分。目前,macOS 上的 Chrome 需要自己的本地密钥。Firefox 支持在 macOS 上尚不可用,我也无法让该浏览器在 Windows 10 上运行。Android 的情况更加有限。目前,由谷歌同步的密钥不适用于浏览器,但同样,这很快就会改变。目前,密钥可以用作传统上要求用户在 Android 设备上输入密码的流程的替代方案(例如,在访问页面时,如 rescuephone,通常需要密码)。
ChromeOS 根本不支持密码。这主要是由于 ChromeOS 对驻留在 Chromebook 上的静态数据进行加密的方式,特别是与密码相关联的解密密钥。密钥是向后兼容的,因此即使有人在其他平台上使用密钥登录 Gmail,他们也可以在使用 Chrome 操作系统设备时使用传统的 Gmail 密码。最明显的是,Linux 根本无法使用密钥。
操作系统和浏览器之间缺乏无缝集成是各种参与者进一步领先或落后于同行的结果。密码是一项正在进行的工作,有许多活动部件。一年之内——更有可能的是,更快——所有的部件都应该可用并以综合的方式组装起来。
关于密钥的另一个常见抱怨是,在进行跨设备身份验证时所需的蓝牙连接不可靠,并且可能破坏登录过程。这个缺点出现在2019 年的一篇文章中我写过谷歌对 iPhone 和 iPad 手机绑定安全密钥的支持。那时我还不知道,但阻碍流程的是我的 iOS 设备和 Mac 没有通过蓝牙正确连接。从那时起,使密钥成为可能的标准已经发展。现在,他们采用了一种“混合”方法,该方法结合了蓝牙和通过云发送的数据。结果是将通过蓝牙发送的内容减少到最低限度。(如本文其他地方所述,不想使用蓝牙的人可以使用普通密码进行身份验证,然后保存密钥。)
不仅更容易…更安全
了解了如何使用万能钥匙的基本知识后,让我们将注意力转移到万能钥匙的安全性上。密钥提供了密码无法提供的保护级别。一方面,它们不能像密码那样被钓鱼。密钥以驻留在每个设备上的加密密钥对为基础。无法诱使用户泄露用于身份验证的密钥。也没有已知的方法可以从设备中提取这些密钥,即使有,攻击者也需要在很长一段时间内对设备进行物理访问。如前所述,用于跨设备身份验证的二维码只能使用一次,并且在不使用时会在短时间内过期。执行此身份验证舞蹈的两个设备必须在附近。半个世界之外,甚至在隔壁城镇的袭击者,
密码还会自动将 2FA 包含在流程中,并且可以修改为需要它的人提供第三个因素。将其与传统 2FA 的流程进行比较,后者通常要求用户拥有密码和物理设备。这不仅不方便,而且许多物理设备提供的一次性密码很容易被仿冒。
一些密钥怀疑论者对将密钥委托给苹果、谷歌或微软基础设施表示担忧。其中一些批评者甚至说,密钥是一种权力游戏,旨在让这些公司控制以前不可能的身份验证秘密。
这些说法根本不是真的。这些密钥使用数百万人多年来使用的相同机制(如iCloud 钥匙串)进行端到端加密。这些公司不可能解密存储在他们服务器上的密钥,即使他们可以,如果不靠近提供第二个身份验证因素的用户设备,他们将无法使用它们。
对于仍然不希望一家或多家大型科技公司接触他们的密码的人来说,他们很快就可以依靠 1Password 和 Dashlane 等公司来为他们做这件事。一位 1Password 代表在一封电子邮件中表示,该公司预计将在 6 月初推出该功能。到 9 月,将可以使用密钥登录 1Password
有些人抱怨要求提供指纹或面部扫描,因为他们不希望与第三方共享他们的生物识别信息。事实上,生物识别技术永远不会离开设备。任何目前信任通过指纹或面部扫描解锁设备的人都没有理由对使用密钥做同样的事情感到不自在。此外,那些不信任使用生物识别技术的人可以通过输入他们的设备解锁密码(就像生物识别技术一样,永远不会离开设备)来简单地进行身份验证。
其他批评者也抱怨说,密码同步流程代表了浏览器同步密码方式的倒退。Chrome 会将密码同步到任何安装了 Chrome 的主要平台。相比之下,密码目前是通过操作系统同步的。因此,为 macOS 上的 Chrome 创建的密钥是设备绑定的,这意味着它无法同步到其他平台上的 Chrome。这种设计是密钥架构师有意做出的决定,他们得出的结论是,操作系统提供了一种将密钥从一个设备移动到另一个设备的更安全的方法。
我不认为这是当前事物状态的倒退。涉及二维码的跨设备认证过程是一次性需求。完成后,用户将密码保存到正在登录的浏览器或平台。这似乎并不比在新安装的浏览器上设置密码同步更麻烦。无论如何,这里的限制是暂时的。万能钥匙的最终目标是跨所有平台、浏览器和密码管理器无缝集成。
正如本入门/解释器所指出的那样,密码仍处于初级阶段,目前无法兑现它们的承诺。然而,谷歌的实施已经足够了,我很乐意推荐人们使用它。现在我已经克服了最初的学习曲线,我发现它们更容易使用。
出于好奇,我从我的 iPhone 中删除了我的 Google 帐户并重新添加了它。与其要求我输入密码并提供物理密钥(后一步是必要的,因为我已加入高级保护计划),我可以选择使用已经通过 iCloud(特别是 iCloud 钥匙串)同步的密钥。四次单击和面部 ID 扫描之后,我的 Gmail 帐户就完全恢复了。
因此,请继续尝试使用 Google 的无密码帐户登录。它们更安全,而且我认为更易于使用。尽管密钥生态系统不完整,但与 Google 身份验证过程的集成是稳健的。您始终可以单击登录屏幕上的“尝试其他方式”选项以退回到传统的密码身份验证。您也可以完全禁用密钥而不会受到任何惩罚。完整的密码愿景可能还没有出现,但无密码的谷歌登录肯定已经准备就绪。