结束CAPTCHAS:介绍一个人格的加密证明

2021-05-13 21:25:56

选择所有的总线。点击自行车。这张照片有红绿灯吗?像这些问题一样荒谬,你几乎保证最近见过一个。他们是在线服务将人类与机器人分开的方式,它们被称为CAPTCHA。 CAPTCHA加强在线服务的安全性。但是,虽然他们这样做,但是有一个非常真实的成本与他们相关。

基于我们的数据,用户平均需要32秒才能完成CAPTCHA挑战。有46亿互联网用户。我们假设典型的互联网用户每10天看到大约一个CAPTCHA。

这种非常简单的背面的信封数学在每一天浪费500万人的某个地方 - 只是为了我们来证明我们的人性。

今天,我们正在推出一个实验来结束这种疯狂。我们希望完全摆脱CAPTCHAS。这个想法相当简单:真正的人应该能够触摸或看他们的设备,证明他们是人类的,而不揭示他们的身份。我们希望您能够证明您是人类而不会透露哪个人类!你可能会问这是可能的吗?答案是:是的!我们从已经存在一段时间的信任USB键(如yubikey)开始,但越来越多的手机和计算机默认配备了这种能力。

今天标志着互联网上的消防栓,人行横道和交通灯的开始。

在许多情况下,企业需要一种方法来判断在线用户是否是人类。通常,这些原因与安全或滥用在线服务有关。回到世纪之交,CaptChas创造了这样做。第一个是在1997年开发的,这个词("完全自动化的公共图灵测试,告诉计算机和人类分开")由Luis von Ahn,Manuel Blum,Nicholas J. Hopper,以及约翰兰福德。

通过他们的本性,CAPTCHA的挑战 - 反应性质必须自动化:因此他们可以跨越人类和他们需要捕获的机器人。

我们迄今为止最好的做到最好的是最小化它们。例如,在CloudFlare,我们不断改进了BOT管理解决方案,尽可能聪明地何时向用户提供CAPTCHA。然而,多年来,网络从简单的CAPTCHAS从文本识别转移到Occring旧书以识别来自图片的旧书,因为AI改进了(参见街头数字上的Google Paper)。这为互联网的人类用户创造了一些真正的问题:

生产力:时间丢失 - 正如专注于手头的任务 - 而且经常换取一些挫折感。

可访问性:假设用户有解决测试所需的物理和认知功能,可能不是这种情况。例如,视觉残疾可能使得无法执行CAPTCHA求解任务。

文化知识:在少数群体中看到美国消防栓的地球上的人民,也是说英语的数字。纽约城市是黄色的,黑色在伦敦 - 赫克,“驾驶室”只有几个地方的出租车,而且其他地方的出租车!

移动设备上的互动:手机和移动设备是主要的 - 最常见的是世界上互联网接入的方式。 CAPTCHAS对他们的数据计划和电池使用量进行了压力,除了在小屏幕上更加困难。

事实上,全球网络联盟(W3C)在多个草稿上工作 - 早在2003年 - 指出了CAPTCHA的不可思议。

这只是来自用户方面。造成所有这些对用户的成本也具有非常实际的企业成本。企业花了这么多时间优化其网站和应用程序的性能和布局的原因。当您希望它们注册时,该工作会阻止用户弹跳。当您希望它们结束时,它会停止购物车被遗弃。一般来说,你想阻止客户感到沮丧,根本不会回来。

CAPTCHAS有效地将业务放在用户面前的摩擦,并且作为任何管理高性能的在线业务的人会告诉您,除非您别无选择,除非您别无选择。

当我们从谷歌recaptcha转移到HCAPTCHA时,我们开始解决这些问题。今天,我们正在进一步。

用户将设备插入计算机或将其点击其手机进行无线签名(使用NFC)。

将加密证明发送到CloudFlare,这允许用户在验证用户存在测试时进行。

完成此流量需要五秒钟。更重要的是,这一挑战保护用户'由于证明并不与用户设备唯一链接的隐私。 CloudFlare信赖的所有设备制造商都是Fido Alliance的一部分。因此,每个硬件密钥都以相同批处理中制造的其他键共享其标识符(请参阅通用第二因子概述,第8节)。从CloudFlare的角度来看,您的钥匙看起来像批次中的所有其他键。

最多三次点击需要完成对人格的加密证明。没有循环,要求用户连续10次单击公共汽车。

虽然有各种硬件安全键,但我们的初始推出仅限于一些设备:Yubikeys,我们有机会使用和测试; Hyperfido键;和Thetis Fido U2F键。

“驾驶开放式认证标准,如Webauthn长期以来一直处于yubiCo的使命,以通过令人愉快的用户体验提供强大的安全性,”YubiCo首席技术官Christopher Harrell表示。 “通过通过yubikey硬件和公钥加密支持的单一触摸提供CAPTCHA替代方案,CloudFlare对人格实验的加密证明可以帮助进一步降低用户在应变或攻击下与位点相互作用的认知负荷。我希望这个实验能够使人们能够以极少的摩擦力和强大的隐私实现他们的目标,并且结果将表明其他网站对于使用硬件安全性的其他网站来说是值得的,而不是仅仅是身份验证。“

密码证明的人格依赖于Web认证(WebAuthn)认证。这是在W3C中标准化的API,并且已经在大多数现代Web浏览器和操作系统中实现。它旨在提供标准接口来验证Web上的用户并使用其设备的密码功能。

随着对具有更高的可用性的安全性的需要增加,我们设想WebAuthn的部署实例上升。

假设您正在使用具有兼容配置的硬件设备,您可能会想知道幕后发生的情况。

简短的版本是您的设备具有嵌入式安全模块,其中包含由您的制造商密封的独特秘密。安全模块能够证明它拥有这样的秘密而不揭示它。 CloudFlare要求您证明您的制造商是合法的证明和检查。

公钥加密提供了一种方法来产生不可持续的数字签名。用户生成签名密钥,可以签署消息和可以由任何人使用以验证消息是真实的验证密钥的验证密钥。这类似于标志圈,其中环的压印是签名和戒指本身签名键。

签名方案广泛用于证明真实性。现在,您的浏览器已验证声称是“Blog.CloudFlare.com”的服务器通过验证具有与“Blog.CloudFlare.com”相关的签名密钥的人进行的签名来合法。为了显示验证密钥是合法的,服务器提供了一个证书,将验证密钥链接到“blog.cloudflare.com”,本身由另一证书中的另一个验证密钥签名。此链一直从您的浏览器中内置的证书颁发机构到根本证书。

让&#39拿另一个例子。 Alice拥有一台带有安全模块的笔记本电脑。该模块保存签名键SK_A。爱丽丝说,她昨天发了一封情书给鲍勃。然而,鲍勃是可疑的。尽管是陈述"嗨鲍勃,它' s爱丽丝"鲍勃想确保这封信来自爱丽丝。为此,Bob要求Alice为以下消息和#34提供她的签名;音乐实验室 - 地面"由于鲍勃选择了消息,如果Alice可以提供与她的验证密钥(PK_A)相关联的签名,因此Bob将使情书来自爱丽丝。 Alice确实提供了签名,SK_A(“音乐实验室 - 地”)。鲍勃确认SK_A(“音乐实验室 - 地”)与PK_A相关联。他现在可以安全地从事密码师关系。

思考思考人​​格的密码证明,您现在知道您的硬件密钥嵌入签名键。但是,CloudFlare并不是不知道互联网所有用户的签名键。为了缓解这个问题,CloudFlare要求不同的证据。当被问及您是否是人类,我们要求您证明您可以控制由可信制造商签署的公钥。当带安全模块的运输设备时,制造商用数字证书签署相关的证明公钥。

数字证书通常包含一个公钥,有关其被配置的组织的信息,有效期,允许的使用情况和证书颁发机构的签名确保证书是合法的。它们允许元数据与公钥相关联,因此提供有关签名发行人的信息。

因此,当CloudFlare要求您提供签名时,它会验证您的公钥已由制造商的公钥签署。由于制造商有多个级别的证书,因此您的设备提供了一系列CloudFlare能够验证的证书。链中的每个链接由其前任签署并签署其继任者。 CloudFlare信任制造商的根本证书。因为他们的数字有限,我们有能力手动验证它们。

设计挑战要求用户证明他们控制着某个制造商的关键,附带隐私和安全挑战。

在下表中总结了个性化密码证明的隐私权。

*每批次必须有100,000或更多键(Fido UAF协议规范#4.1.2.1.1)。但是,已发现来自某些制造商的自签名钥匙和钥匙不符合此要求。

**这将要求我们设置一个单独的和不同的cookie来跟踪您的密钥。这是对互联网上的隐私以及这个项目的目标是对立的。您可以了解更多关于我们如何在此处删除__cfduid的cookie。

这个项目的目的:我们想知道你是人。但我们对你的人不感兴趣。

愉快地,WebAuthn API有很长的路要照顾我们。不是我们想要的,但WebAuthn API可以防止生物识别性的集合,例如指纹。当您的设备要求生物识别身份验证 - 例如通过指纹传感器 - 这一切都会在本地发生。验证意味着解锁设备的安全模块,该模块提供与平台关联的签名。

对于我们的挑战,我们利用WebAuthn注册过程。它旨在执行多种认证,我们没有使用它。因此,我们确认对所需的用户名字段相同的常量值。它保护用户免受Deanynymization。

CAPTCHA的常见使用是标记AI难以识别的数据集。这可能是书籍,街头数字或消防栓。虽然这对科学有用,但它也被用作公司在没有用户知识的情况下利用人类认可能力的方式。

随着密码证明的人文,这不会发生这种情况。我们有更多的灵活性设计用户流程,因为我们不再受Captcha挑战模型的限制。

虽然密码证明的人格术语在隐私方面有很多上行期,但它并不完美。 CloudFlare仍然需要了解您的制造商让您进入。作为WebAuthn与任何证书一起工作,我们需要确保CloudFlare从未拒绝的硬件密钥接收证书。我们宁愿没有这些信息,进一步保留您的隐私。

我们过去致力于隐私标准,导致隐私通行证的努力。隐私通行证允许您解决一次挑战并提供您通过它的证据,这意味着您不必解决多个CAPTCHA。它大大提高了VPN用户的用户体验,他们面临的挑战比其他互联网用户更具挑战。

对于个人的加密证明,我们挖掘了称为零知识证据(ZK证明)的加密中的新兴领域。它允许我们的用户证明他们的制造商是CloudFlare信赖的一套制造商的一部分。使用ZK证明,来自单个制造商的设备彼此无法区分,以及从其他制造商的设备中无法区分。这个新系统需要更多的技术细节,值得一篇专用博客文章。敬请关注。

设计旨在保护数百万互联网属性的挑战并不容易。在目前的设置中,与传统的CAPTCHA挑战相比,我们相信密码证明提供强大的安全性和可用性保证。在初步用户学习期间,用户表示强烈偏好,用于在单击图片时触摸其硬件键。尽管如此,我们知道这是一个具有改进空间的新系统。

该实验将在英语区域的有限基础上提供。这使我们可以在用户池中具有多样性并在各种位置测试此过程。但是,我们认识到这一点不足,我们打算进一步测试。如果您有特定的需求,请随时伸出援手。

我们保持密切关注的另一个问题是安全。这一挑战的安全取决于可信制造商提供的底层硬件。我们有信心得到保护。如果发生了任何违规行为,我们将能够在各种粒度水平迅速宣告制造商的公共钥匙。

我们还必须考虑面向自动按钮按下系统的可能性。能够按压电容式触摸传感器的饮用鸟可以通过个人的加密证明。最多,鸟类解决速率与硬件生成证明所需的时间匹配。凭借我们目前的信任制造商,这将比专业CAPTCHA-解决方案的解决率慢,同时允许合法用户通过确定。此外,现有的CloudFlare缓解将保持到位,有效地保护互联网属性。

对于CloudFlare,它总是回到:帮助建立更好的互联网。我们在互联网上每天浪费500岁的原因 - 没有人重新审视了CAPTCHAS自世纪之后的根本假设 - 似乎对我们荒谬。

我们为我们这里完成的工作感到非常自豪,以释放个人的加密证明。 这一挑战是通过用户 - 第一方法构建的,同时维持高水平的安全性,用于访问坐在CloudFlare的全球网络后面的Internet属性。 我们现在正在加强我们现有的人性挑战,并通过密码证明的人性。 您应该期望随着时间的推移更频繁地看到它。 您今天可以在CloudFlarechallenge.com上尝试。 我们希望在CloudFlare承认其他团队的工作。 虽然这项工作由研究团队领导,但我们非常荣幸能够得到全民支持的支持。 如果您想帮助我们建立更好的互联网,我们正在招聘。 最后:我们很高兴能够在互联网上带来消防栓的消亡。 它不再需要。 产品新闻安全研究可访问性CAPTCHA