我希望我知道U2F和其他硬件MFA协议

2021-04-17 04:58:22

Teleport支持了多因素身份验证(MFA)一段时间,播出了一段时间,Viaauthenticator应用程序(TOTP)和硬件令牌(U2F),如Yubikeys。但ThisSupport非常有限:您只能选择一个MFA协议,用户只能注册一个设备。如果用户丢失了设备,则会击败并需要管理员重置的帐户。

因此,对于传送6.0,我们重新实现了MFA支持,使其更令人难以置信。您现在可以启用TOTP和U2F,并且每个用户都可以像它们一样注册的许多更加多数。如果您丢失了U2F键但仍然有ATOTP应用程序注册,则可以登录并替换丢失的U2F键。不需要nAG群集管理员。

在努力的同时,我很高兴地了解这个令人兴奋的世界FFA设备,如U2F键。好的,这并不是那么令人兴奋,只是喜欢分享我沿途所学到的一些东西。希望这将节省有贫困的灵魂,有一些时间。

通用第二因子(U2F)是使用小型USB或NFC设备的第二验证因子(DUH)的开放标准。它验证了两件事在病程中:用户可以访问物理设备(这是不可避免的),并且用户正在主动执行Theauthentication(即点击U2F设备)。服务器端,U2F支持Inmany流行的Web服务。客户端,大多数大主教也支持它。还有一些非WebSoftware支持U2F,如OpenSSH。

U2F涉及3个派对:U2F设备本身,客户端(例如Web浏览器)ANDA Server(AKA“依赖方”)。用户控制U2F设备和TheClient。服务器希望验证此用户。

U2F是一个经典挑战 - 响应协议。 U2F设备包含匿名密钥对并在身份验证期间签署由ThesErver发送的“挑战”(随机字节BLOB)。在实际签名之前,U2F设备闪烁等待用户点击它。这证明了用户存在并正派认证。 yubico具有此协议的巨大展示,其所有额外的保护。

当您读取关于U2F的任何资源时,您将最终被其他相关遗传术淹没。以下是一些,以及如何与U2F相关:

FIDO:快速身份在线(联盟)是一组尝试Toreplace密码的公司。他们通过设计更好的认证标准来实现这一目标。本设计委员会的方法令人震惊地结束了创造了一个标准的汤和首字母缩略词。 Intheir 8年的存在,他们设法创建了第一代标准(U2F)并用第二代(Fido 2,WebAuthn和Ctap 2)替换它。除了讽刺的言论,他们正在做益智的合作与快速真实的采用工作。

UAF:通用认证框架基本上是U2F,额外的钟声口哨。老实说,我不知道为什么它存在或者是否有人使用它.Since它与U2F不兼容,因为U2F更简单,每个人都只是实现了。

Fido 2:Fido Folks从U2F和UAF学习了一些教训,并且不满2个不兼容的标准,创造了一个第3个不可能的标准。 Fido 2是WebAuthn Plus CTAP 2。

WebAuthn:U2F的一部分是浏览器实现的JS API。 FORFIDO 2,联盟决定将JS API拉出一个单独的标准Sothat WebApp Devs有更少的规格来读取。他们还意识到,缩略语是不良的非技术人员,所以WebAuthn出生。

CTAP:客户端验证器协议是Fido 2标准的另一半。它描述了在实现JS API时,浏览器应该如何与实际FIDO 2Device交谈。奇怪的是,CTAP涵盖了U2F和WEBAUTHN兼容的设备。 CTAP1适用于U2F,CTAP2用于WEBAUTHN。为什么曾在此处包括U2F?可能要使硬件供应商实施过渡,或者因为它是来自WebAuthn的不同委员会。

您会注意到上面的Web浏览器的许多提到。实际上,所有Fido标准都以网络为中心,并不与任何其他客户端软件一起设计。 Butthis并没有阻止非浏览器软件作者使用标准,通常是一些克鲁尼克效果。

由于U2F设备创建和存储非对称密钥对,并且能够驾驶任意的“挑战”,我可以将其用作通用硬件密钥库吗?

主要是,没有。 U2F设备不仅仅符号您提供的任何数据。它在签名之前为它添加了更多信息,如应用程序ID(例如网站URL Toprevent网络钓鱼)和单调计数器(以防止重放攻击)。在挑战中添加了不受欢迎的数据,您无法执行TLS Handshakeor签名X.509证书。此外,浏览器不会公开原始的U2F DeviceMessages;它们是通过JS API抽象的,这限制了您的选项。

奇怪的是,OpenSSH为U2FsignatuResto添加了SSH协议的特殊处理,以允许使用U2F设备进行SSH私钥。不幸的是,我们没有自由扩展其他标准协议的Chesame。

可信平台模块(TPMS) - 通常是焊接到主机上的芯片。用于BitLocker或Luks等全磁盘加密,以及某些情况以验证计算机的出处。

硬件安全模块(HSMS) - 非常过于过度的设备(数千亿美元),存储非常敏感的私钥(LikePublic CA键)。通常由于合规性要求而使用。从USB杆到机架式服务器的形式差异。

个人身份验证(PIV)卡 - 基本上,由美国政府设计的人类身份(也广泛用于爱沙尼亚)的廉价和便捷的人。这些aretyply上“智能卡”(看起来像一张带芯片的信用卡)。

加密货币钱包 - 通常是具有用于加密货币事务的自定义驱动程序/客户端软件的专有设备。

TPMS和HSMS专为不同的使用场景而不是U2F。 PIV ISPRETTY类似于U2F,但在它使用的情况下大约限制。例如,PIV可以很容易地使用任何协议更改。 Crypto钱包似乎没有便携式或独立化(超越有时是实施Fido协议)。

如果您踏上和眯眼,以上所有硬件设备类型都是相同的 - 它们是防篡改硬件密钥存储。 TheUnify属性是,他们永远不会让私钥将设备留下并扩销签名和加密操作到软件。

我真的像开发人员(和用户)一样,是一个简单,便宜的,普遍的封面作为USB棒。它需要存储多个密钥对和中继原始签名/加密操作(理想情况下不通过PKCS#11模块)。

U2F是关闭的,但不会让您签署任意数据。它无法使用常规磁盘键对。一般来说,FIDO标准将太多的硬件推入硬件,当它可以以软件处理而言。 TPMS在主板上展开,因此它们不便携。像U2F一样,它们也没有签署任意数据。 HSMS靠近,但它们太贵(数十万美元),并专注于基础设施useecases。 PIV是最接近的。但大多数PIV产品都是SmartCardsthat需要一个单独的读者加密狗。有一些USB设备支持PIV(例如,一些Yubikeys和Nitroys),但它们都需要安装自定义驱动程序(PKCS#11模块)。似乎没有标准协议直接抵御设备,如Fido World中的CTAP。此外,UX FORPKCS#11和客户端TLS在浏览器中的证书相当差。

使用此梦想设备,您可以在软件中构建U2F / CTAP / TPM / HSM / PIVLOGIC的其余部分,而不会在安全性方面失败。

您是否知道任何适合上述标准的硬件加密标准?让我知道。

所有FIDO规范都可以在这里找到深潜力,但与“建筑概述”为止

PKCS#11详细信息 - 此API是普遍的,但是自己做了一个忙,找到了使用的烙印器。

TPM详细信息 - 该协议非常复杂,具有许多术语和配置功能突出的功能,用于一些模糊的用例。 来自加密货币世界的任何东西 - 他们倾向于建立只能与加密货币交际的ProprietaryPlatforms。 如果您想尝试在传送中的U2F支持,请阅读我们的用户指南。