基于文本的验证码的优缺点比较外文翻译资料

 2021-12-19 21:48:36

英语原文共 13 页

基于文本的验证码的优缺点比较

摘要

针对现存的使用了的基于扭曲字符(一种反片段分割技术)的可视化验证码,我们进行了系统的研究。我们将此系统评价方法应用于15个当前流行网站的验证码方案,我们发现其中13种容易被破解。基于此评估,我们给验证码设计者和攻击者提出了一系列建议,以及可能的未来发展方向,以便设计更可靠的人/计算机识别器。

分类和主题描述

K.6.5【计算领域】:计算和信息系统管理——安全和保护

通用术语

安全,理论

关键词

验证码,反向图灵测试,机器学习,视觉算法,SVM、KNN分类器

  1. 引言

许多网站使用captchas[25],或者完全自动化的公共图灵测试,区分计算机和人,以试图阻止与其站点的交互。从各种意义来说,这些努力可能对这些网站的成功至关重要。例如,Gmail通过阻止对自动垃圾邮件发送者的访问来改进其服务,eBay通过阻止恶意脚本的洪水攻击来改进其市场。Facebook限制了用于向诚实用户发送垃圾邮件或在游戏中作弊的欺诈性配置文件的创建。现在最广泛使用的验证码方案使用的是扭曲字符和模糊技术组合,人类可以识别它们但这对于自动化脚本来说却可能很困难。

图1:维基百科验证码

captchas有时被称为“反向图灵测试”:因为它们的目的是让计算机确定远程客户是不是人。虽然它们很重要,广泛使用,而且越来越多的相关研究正在开展[7,8,11]。但是,目前还没有系统的方法来指导设计或评估captchas。事实上,正如我们通过深入研究所发现的,许多流行网站仍然依赖于易受攻击的方案。例如,我们的自动脚本工具Decaptcha有大约25%的机率成功破解维基百科的验证码——如图1所示。目前使用最广泛的15个方案中有13个同样容易受到我们工具的自动攻击。因此,我们需要一套复杂的设计和测试原则,指导生成更加健壮的captchas。

虽然之前的研究表明[7],验证码的安全性取决于反分割,但我们在研究中发现,单依赖反分割并不能提供可靠的防御。例如,我们可以利用这一可能的事实:验证码长度是固定的,即使反分割技术不能直接被破解,我们也能有根据地猜测在哪里对验证码进行分割。我们发现这类攻击适用于许多验证码方案,包括eBay和百度。

回顾文献中描述的技术[10,32],已知的机器学习技术[11,20,26]、已知的视觉算法[1,13,14]、以及我们自己对验证码分析的经验[2,4,5],我们将自动验证码识别过程分为五个标准步骤:预处理、分割、后分割,识别和后处理。在分割过程后——将一个字符序列分割成单个字符,然后识别,验证这些字符——字符是直观的,易于理解的,我们有充分的理由认为预处理和后处理步骤应该作为标准过程的一部分的。例如,预处理可以删除背景图案或消除图像中可能干扰分割,而后分割步骤可以通过规范化每个图像的大小或其他方式“清理”分割输出执行与分段不同的所产生的差异。

识别后,后处理可通过以下方式提高精度:例如,对基于实际单词(如slashdot)的验证码应用拼写检查。基于此通用验证码解决方案架构,我们用各种特定的算法在各种流行的网站captchas上测试过。从这些数据库,我们发现了一套防止破解captcha的技术。通过对这些技术进行组合,我们创造了更大的复合数据库,使我们能够更深入的研究这些验证码的特性并改进我们的破解方法。基于我们之前对合理captcha的研究[3,5],我们将注意力集中在一系列、人类可识别的验证码技术上,虽然我们确实考虑过可能对某些人来说很困难的captchas进行研究。

我们测试了我们的工具Decaptcha的实际captcha破解效果。包括authorize,百度,暴雪,captcha.net,CNN,Digg,eBay,谷歌、Megaupload、NIH、Recaptcha、Reddit、Skyrock、Slashdot和维基百科。据我们所知,在这项项目之前,没有报告证明其中的验证码已经被破解了。这15个captchas中,我们取得1%-10%的成功率的有2个(百度,Skyrock),10-24%的成功率有2个(CNN,Digg),25-49%的成功率有4个(eBay,Reddit、Slashdot、维基百科)和50%或更高的成功率有5个(authorize、暴雪、captcha.net、Megaupload、NIH)。为实现这样一个高成功率我们成功开发了第一个针对使用折叠字符的验证码方案(eBay、MegaUpload、百度)的攻击程序。只有谷歌和Recaptcha抵挡住了我们的攻击,我们对为什么我们无法破解它们得到了一些有用的信息。由于Decaptcha的特性,我们能够破解这15个方案中的7个(authorize,百度,cnn,megaupload,nih,reddit,维基百科),而无需编写新的算法。

根据我们对真实世界和合成验证码的评估,我们提出了一些我们相信对验证码设计者和攻击者都很有用的指导方针和建议。例如,随机化验证码长度和单个相对字符大小,虽然对人类来说无关痛痒,但却是抵抗攻击的重要手段。同样,如果所有字符的大小相同,那么部分分割位置就可以很好地估计,进而帮助分割。相反,创建波浪形状和折叠或叠加线是有效的。

我们还发现,复杂的字符集对人类来说可能是易于混淆的,并不是特别有效,我们比较了反识别技术的相对重要性、实现错误、为发现漏洞而准备替代的“备份”方案。这项工作的主要贡献包括:

bull;一个通用的评估工具,Decaptcha,旨在快速评估captcha安全性。

bull;最先进的反识别技术和反分割技术评估,以及流行网站使用的验证码。

bull;通过单一工具成功攻击流行网站的15个真实验证码方案中的13个,并首次成功攻击 使用折叠字符的验证码(如eBay和百度)。

bull;一个公开可用的合成数据库,设计用于实现现实世界Captcha的安全特性,范围可 为人类所接受,以便设计者可以对其测试新的攻击算法。

bull;防御分类法和通过自动化工具评估反识别技术对Captchas可学习性的影响

2.相关背景

衡量攻击效果.评估攻击有效性的第一步是测量其准确性,即验证码解码器正确回答的验证码分数。但是,特定的攻击者可能会选择响应一些captcha而不是其他captcha,这取决于他们对web服务的猜测的信心。通常网站会限制每个IP[2]的尝试次数。因此,评估攻击有效性的精确方法是更多是通过次数和精度指标。

次数是使用者尝试回答captchas次数的分数。精度是captchas正确回答的分数[2]。验证码的设计目标是“自动脚本不应该成功率超过1/10000”(即精度为0.01%)[18]。然而,我们认为这个安全目标过高,因为随机猜测有时也可能会成功,所以我们认为当攻击者能够达到至少1%的精度时,验证码方案被破坏。

另一个重要的考虑因素是如何选择对程序进行评估的测试集。我们认为交叉验证对于初始实验是有用的,但不足以将验证码方案视为不安全的,因为它不反映真实情况,攻击网站的程序会显示以前未知的验证码。相反,我们采用了机器学习社区的最新成果。我们使用与训练集完全不同的测试集来评估程序的有效性。我们必须避免由于测试集中于一些简单的验证码而影响精度评估。当程序的精度接近1%标记时,这一时间点尤为重要。因此,我们主张使用至少1000个captcha的大型测试集。现在,解码器必须在达到认为方案不安全所需的1%精度标记之前,解码至少10个不同于训练集的captchas。本工作中执行的每个评估都遵循这些最佳实践标准。

攻击验证码.在这项工作之前,最先进的自动解码器使用了一种三阶段的方法,包括预处理分割分类阶段[9]。以前的实验已经证明,将自定义分割与机器学习相结合的系统在破解captchas方面要比现成的OCR系统好得多。例如[2],在eBay音频验证码上,最先进的语音识别器的准确度不超过1%,而自定义分类器的准确度可以超过75%。这三个阶段的方法工作如下:首先,解码器预先处理验证码,使其更容易分析,例如通过去除颜色或应用降噪技术。接下来,解码器尝试将验证码分割成只包含一个字符的块,例如通过对图像使用聚类算法。最后,使用支持向量机(SVM)或神经网络等分类器来识别每个块中包含哪些字符。因此,我们将参考反识别技术来描述旨在防止识别单个字符的图像/文本操作,以及反分割技术来描述旨在防止解码器将验证码拆分为单个字符的图像/文本操作。我们将参考这些核心特性来描述验证码的基本设计特性,包括它的字符集、字体、长度、这个长度是否是随机的等等。

许多实验[7]和攻击[32]证明,如果能够可靠地分割,大多数验证码方案都会被破坏。因此,健壮的基于文本的方案必须使解码器难以确定每个字符的位置。然而,即使反识别技术对验证码的安全至关重要,它们也只有在正确设计和实现验证码的核心特性和反识别技术时才有效。我们将在本评估部分中说明,需要在所有层面应用安全设计原则,以创建一个安全方案,以避免“侧通道攻击”,而不是只关注防止分割。最后,我们将引入了一个新的度量,称为可学习性,根据将分类器训练到给定精度级别所需的标记示例数,评估验证码强度。我们的可学习性度量提供了如何正确选择反识别技术和核心特征的能力。

3.数据库

在本节中,我们介绍了我们用来研究设计原则和破解技术,建立的验证码的数据库。一开始,我们收集并标注了15个流行网站使用的实际方案,以评估与顶级captchas方案的decaptcha性能。decaptcha破解了这15个计划中的13个。我们分析了这些captcha,提出了一组相关的安全特性,用于创建我们的合成语料库,旨在详细研究每个特性的效果并改进攻击技术。

3.1流行的现实世界Captchas

为了收集代表性的captchas样本,我们查阅了Alexa使用最多的网站列表,并确定了将captchas作为其帐户注册过程一部分的顶级网站。此外,我们还从向其他(如recaptcha.net和captchas.net)提供captcha的站点收集captcha。对于图2所示的每个网站或验证码方案,我们直接从网站上收集了11000个验证码,这些验证码是我们通过亚马逊众包服务Mechanical Turk[5]标记的。除recaptcha和谷歌外,Decaptcha可以破解所有这些验证码。

3.1.1实际验证码安全功能

如图2所示,现实世界中的captchas在设计上表现出许多变化。通过分析每个方案的构造方式,我们将这些方案中使用的安全防御分为以下十种技术。按照第2节介绍的分类法,这些技术被分配到反识别或反分割类别中。我们将没有直接阻止分割的每一个特征分配到反识别类别。

所考虑的反识别技术有:1.多字体 使用多种字体或多风格的字体。2.字符集 方案使用的字符集。3.字体大小 使用可变字体大小。4.扭曲 利用吸引子场全局扭曲验证码。5.模糊 模糊的字母。6.倾斜 具有不同角度的倾斜旋转字符。7.波浪 以波浪的方式旋转角色。

所考虑的反分割技术有:1.复杂背景 尝试在复杂背景中隐藏文本以“混淆”解码器。2.线条 添加额外的线条,以防止解码器知道什么是真实的字符片段。3.折叠 删除字符之间的空隙以防止分割。

表1:各方案的最高破解率,对比实际验证码与合成数据库的验证码

图3.实际验证码与合成数据库中生成的验证码的对比(左侧为实际验证码,右侧为生成验证码)验证码方案说明:1.Authorize 2.百度 3.eBay 4.谷歌 5.Recaptcha

3.2合成数据库

为了生成我们的合成数据库,我们创建了一个验证码生成器。利用Mechnical Turk,我们实验验证了我们的验证码生成器能够实现真实的验证码。我们的生成器创建的合成验证码与现实世界的验证码具有相似的精度。每一个生成的captcha(图3)都通过人类用Mechanical Turk标注了1000次。然后,我们测量了每个方案的总体精度,并将这些结果与报告的方案级别精度进行了比较[5]。在求解精度时可以精确地测量我们的合成captcha,我们以前的工作中使用的真实captcha是从网络上获取的,因此他们的真实生成方案是未知的。因此,我们只能将我们的结果与我们以前使用的最佳求解精度度量进行比较。表1显示了每个方案中报告的最优解码精度[5](一个用于Mechanical Turk,一个用于人工服务)以及我们在生成的captcha上测量的解算精度。如表1所示,除了Recaptcha,我们的伪cap

资料编号:[4403]

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。