为什么 CAPTCHA 变得越来越难?因为 AI 更聪明了

by admin on 2020年3月5日

图片 1

文章作者:行者无疆  
原文链接:

摘自:

美国科技媒体 Futurism 援引科技媒体 The Verge
报道称,如果你发现网上使用的各种身份验证码越来越难以识别,你肯定不是个例,这都是因为人工智能越来越聪明导致的。

验证码的昨天、今天和明天

什么是验证码 ”验证码“( CAPTCHA
)其实并不是各位网友总是在不同网站上看到的难以辨认的字母组合的代名词,而是“全自动区分计算机和人类的图灵测试”的俗称,顾名思义,它的作用是区分计算机和人类。

这种验证码在业界被称作 CAPTCHA(全自动区分计算机和人类的图灵测试),而
The Verge 的最新报道对 CAPTCHA
的历史进行了回顾。结果发现,现在的确越来越难以区分人类和人工智能。甚至人类都开始对其避而远之,因为它实在太难了。

为什么要使用验证码

 

以前,CAPTCHA
可以通过让人识别扭曲的文字来轻易过滤算法。但到2014年,机器人在解决这类问题时已经超过人类。还有很多网站此后转而使用该图片识别,例如谷歌就经常让用户找出图片中的十字路口或交通信号灯。然而,人工智能现在在这类问题的解答能力上也超过人类。

如果没有验证码,攻击者会使用有害程序自动注册大量的 Web 服务帐户,然后攻击者可以使用这些帐户为其他的用户制造麻烦,如发送垃圾邮件或通过同时反复登录多个帐户来延缓服务的速度。
然而,在大多数情况下,自动注册程序是不能很好的识别图片中的字符的。因此,为了防止攻击者编写程序来自动注册或者重复登录暴力破解密码,验证码技术应运而生。

图片 2

机器学习在基础性的文本、图像和语音识别任务上的表现与人类已经不相上下,甚至有过之无不及,以至于增加机器人程序识别难度的
CAPTCHA 对人类也越来越难。新的 CAPTCHA
混入了文化元素和游戏元素,计算机难以理解,但人类也是,人类并非笨而是因为人类之间在语言、文化习俗和经验上也存在巨大差异。图灵测试让人类也越来越难以证明自己是人类了。

当前,很多网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。

在 CAPTCHA
测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答
CAPTCHA 的问题,所以回答出问题的用户就可以被认为是人类。 CAPTCHA
是由计算机来考人类,而不是标准图灵测试中那样由人类来考计算机,因此人们有时称
CAPTCHA 是一种反向图灵测试。

“现阶段的软件导致人类面临的难度越来越大。”伊利诺伊大学芝加哥分校计算机科学尔教授詹森·波拉基斯(Jason
Polakis)说,“我们需要一些替代方案,但目前还没有实质性的计划。”

什么是验证码

验证码是否真的保护了计算机系统

总而言之,现在要区分人类和电脑变得越来越困难。这可能会导致更多机器人在网上传播虚假消息。

“验证码”的英文表示为CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart),翻译过来就是“全自动区分计算机和人类的图灵测试”,顾名思义,它是用来区分计算机和人类的。在 CAPTCHA 测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答 CAPTCHA 的问题,所以回答出问题的用户就可以被认为是人类。 CAPTCHA 是由计算机来考人类,而不是标准图灵测试中那样由人类来考计算机,因此人们有时称 CAPTCHA 是一种反向图灵测试。

一队来自斯坦福大学的研究人员 PALO ALTO
指出很多验证码完全没有发挥应有的作用。这些研究人员甚至设计了一个通用程序,这个程序能够以极高的成功率识别出许多网站上的验证码,包括
Visa 旗下网站 Authorize.net ,暴雪官方网站, eBay ,以及维基百科。

参考:https://tech.sina.com.cn

现在每天有多达上亿的验证码被人类识别出来,因此CAPTCHA的需求量十分巨大,CAPTCHA需要能自动产生并且评估正确性。此外,人类必须要能够快速地识别并输入验证码,否则容易惹恼用户以至于用户流失。对于CAPTCHA,可以引入人工智能领域的难题,来使现有技术短期无法成功破解。如果一种CAPTCHA没有被破解,那么就有一个可以区分人类和计算机的方法。如果CAPTCHA被破解了,那么一个人工智能的问题也就随之解决了。

这种识别技术用到了机器人视觉领域的一种概念模型,它有助于机器人不受图像噪点的干扰正确识别物体的外形。斯坦福这个名为
Decaptcha
的工具使用上述指导思想编写的算法能够将扭曲变形且充满噪点的图片分割成可以通过光学识别技术(
OCR )辨别的字母和数字。

验证码的类型

”大多数验证码投入使用之前都没有经过必需的验证,也缺少可靠性测试。“
来自斯坦福大学安全实验室的研究人员 Elie
Bursztein 博士后说:”我希望我们的研究能够让人们更为慎重的对待验证码的设计和使用。“

文本验证码

Decaptcha 能够成功识别 66% Visa 支付网站 Authorize.net
上的验证码图片,并可以顺利攻陷暴雪娱乐网站上 70%
的验证码。而维基百科有四分之一的验证码可以辨识,在 CNET 以及 Digg.com
上这个数字降低到了五分之一。百度的验证码虽然仅有 5%
的辨识率,但是在测试过程中同样的验证码出现的频率竟高达 98%
,非常容易被攻击者用穷举法攻破。来自斯坦福的这个研究团队随后指出,任何可辨识率超过
1% 的验证码系统都不应该被继续使用下去。

文本验证码方便计算机自动地大量产生,是目前应用最多的最广泛的技术。文本验证码主要靠图像变形和添加噪声。

各大网站的验证码识别率:

文本验证码破解难点主要在于字符的分割和识别。其中字符分割是破解文本验证码的关键。主要步骤是:第一步,分割字符,第二步,单个字符识别,其中单个字符的识别在现有的机器学习算法下可以很容易的识别。

图片 3

所以防范对文本验证码的攻击的关键在于加大字符分割的难度。像Google等公司的验证码都是粘连在一起,分割难度大。 

随后暴雪发表声明说,他们明确的知道验证码技术并不具有足够高的安全性。”我们仅在初级安全层使用验证码技术抵挡一些特定的攻击,比如注册环节。我们使用一些更为安全可靠的技术来保护我们的客户与骨干服务器。“来自暴雪的
Shon Damron 这么说。

图像验证码

如今的验证码

图像验证码基于图像分类、目标识别、场景理解等问题,一般情况下比文本验证码更加难以破解,但是现有的图像验证码需要庞大的图像数据库,而且无法大规模产生,更糟糕的是,一旦数据库被公布,算法不攻自破。

验证码技术在目前的网络世界中仍然十分重要,它有助于阻止自动机器人批量注册网络邮箱并发送垃圾邮件,还能防止留言板被自动程序填塞广告,甚至使投票系统更能反映真实情况。

声音验证码

各大网站所使用的验证码范例:

声音验证码以随机间隔播放随机选择的一个或多个人播报的数字字母,再添加背景噪声。声音验证码容易受到机器学习算法的攻击,而且相对于视觉上的验证码,用户友好性更低。对于字母的声音,可能农村地区的少部分群体会因为对于字母发音不熟悉而导致无法理解,而无法通过测试。

图片 4

验证码的使用

新浪微博所使用的中文验证码范例——似乎没有考虑到国际化的情形:

服务器端随机生成验证码字符串,保存在内存中,并写入图片,发送给浏览器端显示,浏览器端输入验证码图片上字符,然后提交服务器端,提交的字符和服务器端保存的该字符比较是否一致,一致就继续,否则返回提示。攻击者编写的robot程序,很难识别验证码字符,顺利的完成自动注册,登录;而用户可以识别填写,所以这就实现了阻挡攻击的作用。而图片的字符识别,就是看图片上的干扰强度了。就实际的效果来说,验证码只是增加攻击者的难度,而不可能完全的防止。

图片 5

验证码的困境

到目前为止,只有 Google 的验证码完全阻挡了 Decaptcha 的辨识, Google 在
2009 年从卡耐基梅隆大学收购的 ReCaptcha
项目也
表现出了极其高的可靠性。目前 ReCaptcha 已经被广泛地使用在了近 10
万网站上,这些网站包括 Twitter 、Facebook、Craigslist、TicketMaster
(一个出售各类演唱会、体育比赛、歌剧以及艺术展览门票的网站)以及微软(
Microsoft )。

计算机程序可以一天24小时不间断运行,即使是在较低的识别率也可以在较短的时间内大量穿越CAPTCHA系统。所以CAPACHA的识别率需要低于0.01%才可以有效地阻挡自动化的恶意程序的攻击。
当然,也可以通过IP辅助来限制一台机器的尝试次数。

Bursztein 希望开发者能够更加系统的设计和使用验证码技术,他举了一个例子:
20 世纪 80
年代人们通常埋头设计的自己的计算机程序算法,但随着时间的推移,大家发现对等测试和专业安全性评估也是非常重要的。

验证码的破解之道

展望验证码的未来

道高一尺魔高一丈,只有了解验证码是怎么破解的,才能设计出更好的验证码。

较早前有报道指出, Google
正在测试一种新的验证码技术,这种验证码技术不像传统验证码系统要求输入文字,而是要求用户将图形旋转到正确的方向:

破解主要流程

图片 6

1 图像采集:直接通过HTTP抓起HTML,分析出图片的url,然后下载保存。

另一种基于图像的验证码:

2 预处理: 检测是正确的图像格式,转换到合适的格式,压缩,剪切出ROI,去除噪音,灰度化,转换色彩空间等这些动作。

图片 7

3 检测:主要是找出文字所在的主要区域。

类似的验证码还有要求用户输入当前时间,所访问的网站域名,自己所在的时区,甚至美国总统姓名,人类第一颗登陆的地外星球等。这类验证码主要考虑到
通常自动计算机程序没有足够的逻辑思考能力,不能辨识并解答逻辑问题。拼图验证码,找不同验证码(比如从几张猫的图片中找出一张狗的图片)的验证码从本质
上来说也非常类似,但目前没有大规模部署这类验证码的主要原因是没有足够的资源,难以抵挡穷举攻击(攻击者多次刷新验证码后可能出现相同的问题)。

4 前处理:做文字的切割。

要求用户绘制图形的验证码:

5 训练:通过各种模式识别,机器学习算法,来挑选和训练合适数量的训练集。

图片 8

6 识别:输入待识别的处理后的图片,转换成分类器需要的输入格式,然后通过输出的类和置信度,来判断大概可能是哪个字母。识别本质上就是分类。

要求用户完成复杂算术题的验证码——显然过于复杂而显得不友好:

对验证码设计的一些建议

图片 9

1 在噪音等类型的使用上,尽力让字符和用来混淆的前景和背景不容易区分,尽力让坏人(噪音)长得和好人(字母)一样。

验证码也带来了更多的可能性,比如通过广告盈利的机遇,下面这则验证码示范了利用验证码展示广告:

2 特别好的验证码的设计,要尽力发挥人类擅长而人工智能算法不擅长的。 比如粘连字符的分割和手写体(通过印刷体做特别的变形也可以),而不要一味的去加一些看起来比较复杂的噪音或者其他的花哨的东西,即使你做的足够复杂,但如果人也难识别,这样的验证码等于没有用。

图片 10

3 从专业的机器视觉的角度说,验证码的设计,一定要让破解者在识别阶段,反复在低阶视觉和高阶视觉之间多反复几次才能识别出来,这样可以大大降低破解难度和破解的准确率。

但遗憾的是由于其同样不具有规模性,仍受到穷举攻击的威胁。

这些未来的验证码技术同时还应该考虑到辅助功能。假如用户有视力障碍,他应该可以选择通过聆听验证码音频的方式完成验证,这也是基于字符的验证码技术迟迟未能被取代的主要原因之一。

总结

验证码技术是一种计算机技术发展下的矛盾产物,人类渴望计算机能够通过自动化的过程完成更多的任务,却同样要防止计算机被利用在破坏与恶意的用途当中。随着人工智能领域的研究成果越来越先进,计算机将变得越来越通情达理(想想 Siri ,想想
IBM
最新的超级智能计算机 Watson)。

图灵当年设计图灵测试时,旨在推动人工智能的发展,并从哲学与计算机科学的角度上论证制造类人类机器人的可行性,但他恐怕永远也想象不到有一天,人类将如此迫切的需要一种技术来将自己与计算机系统严格地区分开来。

如果有一天,计算机能够通过验证码验证,我们又该如何区分人类和计算机呢?

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图