分享发现 FIDO WebAuthn 无密码:让我们开始吧!

admin · 2022年03月28日 · 最后由 admin 回复于 2022年03月28日 · 671 次阅读

长期以来,密码一直是一种显而易见的身份验证方法。在本文中,让我们看看密码有什么问题,探索 FIDO 如何让我们摆脱记忆密码,发现 FIDO 的构建块并回答问题,FIDO 或 WebAuthn 是生物识别身份验证吗?

密码(或共享密钥)已不安全

如今,您今天每次登录应用程序或网站时,都可能在输入密码。长期以来,用户被要求输入用户名和密码,每个人都熟悉它并立即知道该怎么做。然而,这种便利性和快速登录的能力伴随着巨大的安全成本。

  • 保护机密很难,每次输入密码时,都有可能让他人获得密码。
  • 网络钓鱼很常见,假电子邮件、电话或假网站是窃取密码的最常见方式。
  • 密码很容易猜到,简单的密码,比如password qwerty iloveyou……仍然是 2021 年最常用的密码,可以在 1 秒内破解。
  • 重用密码,大多数用户在多个网站上使用相同的密码,从个人服务(社交网络、购物……)到工作、银行、金融服务。一旦秘密泄露,攻击者可以尝试其他服务并获得未经授权的访问。
  • 难记,因为简单的密码很容易被猜到,所以建议用户使用大写、符号字符的长组合。然而,这使得它很难记住,他们中的大多数人会将其写在纸上或存储在他们的计算机或云中。

来自 Verizon 数据泄露调查报告(2020 年):

超过 81% 的与黑客相关的违规行为是由于密码薄弱或被盗造成的

安全性和用户体验之间的平衡

随着所有这些安全问题、越来越多的数据泄露以及对保护个人和公司帐户需求的意识的提高,* 身份验证技术不断发展以解决这个问题。

一个好的身份验证模型需要:

  • 使用方便
  • 无处不在
  • 设计安全(防钓鱼,MFA)
  • 全球/开放标准

让我们比较一下这些天现有的身份验证方法:

密码管理器可以生成比记忆密码更强的密码。带有 OTP 的密码提供了一层安全性。它们都比仅仅记住的密码更强大。但它们仍然是可输入的、可钓鱼的和共享的密码。用户仍然可能被诱骗手动将机密输入到看起来合法的网络钓鱼站点。

密码的替代品应该通过设计来保护,但我们不想牺牲用户体验。当今最强大的安全选项之一是安全密钥,这是我们通常用作第二因素身份验证方法 (2FA) 的硬件。如今,由于 FIDO 标准,它们可用作身份验证方法。安全密钥易于使用,安全级别和网络钓鱼能力都很棒!这样做的缺点是您总是必须随身携带至少一个硬件设备,并且仍然很难恢复帐户,我们需要另一种帐户恢复备份方法。

在本文后面,让我们看看为什么使用安全密钥,与密码相比,安全性和网络钓鱼抵抗力如此之好。

带密码的身份验证过程

让我们了解密码的工作原理及其问题。当呈现登录表单时,用户在表单中填写他们的用户名和密码。然后将密码发送到服务,服务散列/加密原始密码并将其存储在他们的服务中。

可能阻止用户使用该服务的问题可能是:

  1. 从输入密码的第一步开始,用户可能不记得密码。
  2. 他们可能会发现很难在他们的设备上输入(在小屏幕手机上,在手机上输入错误太多等)。
  3. 他们使用的服务可能是看起来合法的假冒服务(网络钓鱼)。
  4. 在服务端,密码可能被盗。

介绍 FIDO

FIDO 代表 Fast Identity Online,得到了平台提供商、设备制造商、安全、生物识别、身份和消费者服务提供商等全球领导者的支持。

FIDO 联盟已经为认证机制制定了多个规范。基本思想是使用公钥密码术。

这是一些可以玩的演示站点:

账户创建

在创建帐户期间,会生成一对公钥和私钥,而不是密码,专用于该帐户。这对密钥是由称为 Authenticator 的硬件设备生成的。这可以是您的笔记本电脑、手机或安全密钥,我们稍后会介绍。因此,公钥可以与任何人共享,就像您的用户名一样,这不是秘密。服务器将存储您的公钥。私钥保留在您的设备(身份验证器)上,永远不会与任何人共享。设备有责任保护它。

账户登录

稍后当您想登录时,您不会发送任何秘密。相反,您可以通过提供您的设备知道与您帐户的公钥关联的私钥来证明它是您的帐户。

首先,该服务向 Authenticator 发送一个挑战并要求 “签名” 它。Authenticator 使用私钥对其进行签名并将其发送回服务。服务器已经拥有公钥,并且可以轻松检查签名是否与该密钥匹配。然后假设签名匹配,用户登录时不分享任何秘密!!!

这种身份验证模型的美妙之处在于:

  1. 没有秘密被分享!!存储在您的身份验证器中的私钥永远不会与任何人共享。它不可猜测、不可重用或弱。即使服务器出现数据泄露,他们也只能获取您的公钥,这意味着对所有人公开。
  2. 网络钓鱼不能 “欺骗” 身份验证器,在创建帐户期间,身份验证器会将密钥与您正在注册的服务的域绑定。通过使用不同域但看起来与合法域相同的网络钓鱼是行不通的。身份验证器将无法识别这些虚假域,并且不允许继续进行身份验证。
  3. 出色的用户体验,验证器只需要用户一个简单的手势,可能是指纹扫描、面部或语音识别……速度很快,用户不必记住任何复杂的密码。

因此,FIDO 是简单、快速、方便且安全的身份验证的答案!

了解 FIDO 规范

让我们探索 FIDO 规范的构建块。所以 FIDO 联盟制定了几个规范,其中一些是相互建立的,所以一开始看到所有术语时会感到很困惑。让我们一一来看看。

FIDO 1.0

  • U2F/CTAP1:物理双因素身份验证 (2FA) 的标准规范。
  • UAF:无密码身份验证的标准规范。

FIDO 2.0 = WebAuthn + CTAP(CTAP1 和 CTAP2)

  • WebAuthn:一组标准的 Web API,允许在浏览器中进行无密码身份验证。
  • CTAP2:2FA 或无密码身份验证使用外部身份验证器的规范。

UAF - 通用认证框架

  • FIDO UAF 支持无密码体验。
  • 您可以选择指纹、人脸识别、PIN 等本地身份验证,将您的设备注册到在线服务中。
  • 注册设备后,每当用户需要对服务进行身份验证时,您只需重复本地身份验证操作即可。

U2F - 通用第二因素

  • FIDO U2F 支持第二因素体验,为用户登录(2FA)增加了更强的第二因素。
  • 在注册和身份验证期间,用户只需按下 USB 设备上的按钮或点击 NFC 或 BLE 即可呈现第二个因素。
  • 随着 FIDO2 的发布,U2F 被重新标记为 CTAP1。

CTAP1 - 客户端到身份验证器协议 1

FIDO U2F 的新名称 CTAP1 允许使用现有的 FIDO U2F 设备(例如 FIDO 安全密钥)通过 USB、NFC 或 BLE 在支持 FIDO2 的浏览器和操作系统上进行身份验证,以获得第二因素体验。

CTAP2 - 客户端到身份验证器协议 2

CTAP2 允许使用外部身份验证器(FIDO 安全密钥、移动设备)通过 USB、NFC 或 BLE 在支持 FIDO2 的浏览器和操作系统上进行身份验证,以获得无密码、第二因素或多因素身份验证体验。

FIDO2

FIDO2 包括:

  • W3C 的 Web 身份验证规范
  • FIDO 联盟的客户端到身份验证器协议 (CTAP)

FIDO2 通过平台(或绑定或嵌入式)身份验证器(如生物识别或 PIN)或漫游(或外部)身份验证器(如 FIDO 安全密钥、移动设备、可穿戴设备等)支持无密码、第二因素和多因素用户体验.)。

WebAuthn

W3C 的标准 JavaScript API 被内置到浏览器和平台中,用于创建和管理公钥凭证。

FIDO 或 WebAuthn 是生物识别身份验证吗?

不,FIDO 和生物特征认证的层次不同。生物识别、PIN、图案、面部、语音识别……是特定的认证方式;而 FIDO 是一种实现无密码认证的机制。

结束思想

借助 FIDO,实现简单、快速、方便和安全的身份验证的梦想从未如此接近,无需共享任何记忆的密码或秘密。FIDO 是一种兼具可用性和安全性的身份验证模型的答案。尽管有几个问题需要考虑,例如降低采用门槛或恢复方法,但我们希望未来 FIDO 越来越流行并成为标准。 在下一篇文章中,我们将深入探讨如何实现 WebAuthn,构建一个无密码身份验证演示站点,敬请期待!

翻译自:https://levelup.gitconnected.com/fido-webauthn-passwordless-lets-go-bananas-b58106a762f0

目前已经有使用手机做漫游认证器的 APP 出现

需要 登录 后方可回复, 如果你还没有账号请 注册新账号