为什么CloudFlare的CAPTCHA用Fido2 / WebAuth替换是一个坏主意

2021-05-14 20:56:29

最近CloudFlare发布了基于Fido的CAPTCHA更换。您可以了解更多有关IT HTTPS://blog.CloudFlare.com/Introdute-cryptographic-attestation-of-personhood/,并在此处尝试https://cloudflarechalrenge.com/。在坚果壳中的工作方式:

5. CloudFlare接收设备认证,并使用设备中的元数据,其中包含位于证明中的批处理证书的根证书,它能够验证设备证明。

证明是一个fido协议内置机制,允许依赖派对(网站)获取有关认证器模型和制造商的信息。

这是完成的方式,是设备已烘焙到IT批处理证书和批处理私钥。在注册期间,验证者响应与批处理私钥签名,并且网站可以使用位于批处理证书中的公钥验证。

响应将包含某种模型标识符,如fido2的GUID / UUID和U2F的主题密钥标识符。然后,该网站CloudFlare,然后具有由ModelID(GUID或SKID)标识的信任根证书,并且通过使该根证书能够验证响应批处理证书,并使用批处理证书验证签名响应签名。只是一个正常的pki,没有魔法。

CAPTCHA测试旨在确定在线用户是否真的是人类而不是机器人。 CAPTCHA是一种代表“完全自动化的公共图灵测试,以告诉计算机和人类分开”的首字母缩写。这个想法是,诸如机器人的计算机程序将无法解释扭曲的字母,而人类则用于在各种上下文中看到和解释字母 - 不同的字体,不同的手写等 - 通常能够识别它们。

所以这个想法是:计算机有很难的任务,如图像识别,逻辑任务等,但对于人类而言,(大多数)。

CAPTCHA的想法是您无法轻易自动化任务。好好迎接5美元,哦,上帝,电线!

而且我不会告诉实施自动诊所注入的容易是多么容易。

如果您认为这将是艰难的,因为用户需要批准弹出窗口,请将浏览器请求修改为“none”,以及一个小型浏览器修改,以禁用eraseattationstatement https://source.chromium.org/chromium/chromium.org/chromium/chromium.ing/chromium/chromium. SRC / + / MAIN:设备/ FIDO / ATTESTATION_OBJECT.CC; BPV = 1; BPT = 1?Q = NONEATTONATION& SS = CHOMIUM%2FCHROMIUM%2FSRC,你得到弹出旁路。

UPD:作为Eric Lawrence指出的是,您可以设置企业策略,该策略将禁用WebAuthn弹出窗口https://chromeenterprise.google/policies/#security permitattation

低级安全钥匙需要大约700毫秒到1700ms,从我的经验中进行所有交换。这是一分钟大约30个潜在的要求。你用HID点击农场有效地使它超级!

这个想法是您对具有虚拟HID设备的VM。 VHID假装是安全密钥,但它实际上它的代理在网络上请求,到有数百个密钥插入它的农用控制器。几个优质的USB控制器,以及具有足够PCI车道的十二核心ryzen将一次轻松处理几百个HID设备。

关于设备,您可以获得超过18美元或yubikey安全密钥的Feian U2F设备,每个设备为20美元。

浏览器将向VHID设备发送请求,将其代理到农用控制器。该农场将选择任何随机的免费安全密钥,并调用Arduino进行物理点击。设备将返回响应并将其发送回VM的Virtual Hid,这将返回浏览器。

25k $将为您提供大约1000个安全钥匙,以及几个好机器来管理它们。软件开发是微不足道的,可以在很短的时间内在Python中完成,这将产生每分钟20,000-40,000的证明。

最后,你可以简单地购买很多NFC读者,如ACS122U,并使用PCSC,你甚至不需要一个Arduino,你可以告诉读者魔术scard_unpower_card命令电源循环设备。

证明不是一个完美的机制,我会深深阻止人们使用它。它的原因是这样的:

证明并不证明任何东西,除了设备模型 - 没有魔法证明。它不能证明用户的活力,因为CloudFlare只是证明检查。就是这样。 Fido真的很好地反对网络钓鱼和机器人,因为我们知道用户拥有该设备,并且它使用Fido将攻击移动到远程BruteForce,直接,个人攻击真正的人类攻击。 CloudFlare CAPTCHA不会实现这一目标,因为它没有验证用户。简单验证设备模型。就是这样。

Privacy - FIDO规定,证明批处理证书用法至少为每100,000个设备至少一个批处理证书。因此,如果您知道Alice与此证书有安全密钥,并且您在另一个站点上看到此证书,则会有1/100,000的机会,这是Alice。这听起来不像很多,但是当你与所有其他跟踪信息组合起来的网站可能会保持你的话,这成为另一个可以用于你的另一个信息,并且随着我们都知道,今天一切都是由CloudFlare经营的。现在这并不意味着证明是完全没用的。这是高度合规环境中的一个非常重要的机制。银行,政府确实需要它,最近捷克政府宣布,FIDO认证的FIDO2身份员可以使用EIDAS的国家ID,L2认证设备可作为高保证证明。这就是你需要证明的。当您需要认证时的1%的情况。

用户体验 - 弹出窗口是痛苦的,很多人只是在他们身上禁用它们,因为只有太多的弹出窗口。证明对UX不好,你应该避免它。

证明很难管理 - 您需要收集设备的元数据(MDS的某种解决)。您需要知道您需要哪些字段。您需要信任元数据。这是一个非常艰难的问题,需要对你在做什么的良好理解。

我个人认为,在一个非常短的术语中,CloudFlare的解决方案将有助于一些机器人。但了解Fido Market,并了解安全键是首先是企业和备份认证解决方案,而且FIDO的未来符合平台验证者的广泛部署,导致我相信当前解决方案将广泛滥用更广泛的部署,由于它明确地定位了那些需要的人,并且能够负担安全钥匙的企业。

我不是在这里只是对某人解决方案。我客观地相信CloudFlare团队,真正酷的事情,有真正酷炫的项目,确实尝试做一些好事。但在这个具体情况下,他们正在创造潜在的甚至更大的问题,同时没有解决验证码正在解决的问题,一天中的更好的一天,直到Skynet杀死我们所有人。