扫码打开虎嗅APP
原文来自Wired,中文版首发于微信公众号:造就(ID: xingshu100),翻译:何无鱼,封面:pandasecurity
很多人可能都听过图灵测试。它的目的,是让一个人弄清楚自己的交流对象究竟是人还是机器。计算机在模仿人类方面已经变得更加出色,而它们也越来越善于破解图灵测试,让验证系统误以为它们是人类。
在本世纪头十年里,当自动化的软件机器人横行网络时,最终出现的解决方案是图灵测试的一个变种:全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,简称Captcha,俗称验证码)。
验证码系统让网站得以对人类和机器的行为加以区分。或者说,它的初衷是如此。
“易用性和安全性之间始终存在着斗争。” 英国伯恩茅斯大学的人机交互学讲师蒋楠(音)说道。早期验证码的开发成员包括语言学习平台多邻国(Dulingo)的创始人,当时验证码就是识别图像中的字母和数字。2009年,谷歌买下了该系统,并将之改造为reCaptcha,以对书籍的数字化工作提供帮助。
通过识别非人类行为,网站得以在一定程度上阻止自动化机器的袭扰。不过,早期的验证码非常糟糕,不为用户所喜。2013年,票务公司特玛捷(Ticketmaster)弃用了“令人深恶痛绝的”验证码,反对这项技术的潮流开始涌现。
计算机视觉技术的进步让计算机得以识别图像,这也让验证码失去了当初的意义,不再能发挥作用。正如过气的Captcha官网所解释的那样:“情况要么是验证码没有被破解,我们有办法区分人和计算机;要么是验证码已经被破解,我们解决了一个人工智能问题。”
破解验证码
早在2013年,人工智能初创公司Vicarious就宣布,他们已利用自己的人工智能技术破解了Captcha。四年后,该公司在同行评议的学术期刊《科学》上公布了这种方法。
Vicarious联合创始人迪利普·乔治(Dileep George)表示,在破解Captcha和reCaptcha时,其算法使用的方法,数据密集度并不高。乔治说,通过使用递归皮层网络,他们用于训练算法的图像数量比其他方法少了5,000倍,同时仍然能够识别验证码系统的文本、手写的数字以及真实环境中的文字。
“你真的需要理解那个字母是什么。”乔治说。他解释称,Vicarious的系统能够创建字母的模型,从而得以了解它们的构成方式。这样一来,研究人员就不需要用之前的验证码样例对人工智能系统进行训练了。“如果你建立了那个模型,那么即便人们改变了背景,你仍然可以使用模型来识别字母。”他解释道。
乔治表示,之所以等到现在才公布这项研究成果,是因为他们在等待这些验证码系统被淘汰;此外,他的团队是在2015年底才开始撰写这篇研究论文的。
这不是验证码系统第一次遭到破解了。2011年,斯坦福大学的计算机科学家破解了Audio Captcha(音频验证码),该技术会把验证码读出来让用户进行辨识,微软、Digg和eBay等公司都曾应用过这种技术。
此外,还有人试图使用人力来暴力破解验证码系统。2008年,人们发现印度一些公司在雇人填写MySpace和谷歌的验证码。那时,你只需花2美元就能完成1,000次验证。不过,2010年的一项研究发现,人类填写验证码的正确率只有71%。
现在,甚至连一些复杂的验证码技术也已遭到破解。Snapchat的点击式验证码被自动化技术斩落马下。2014年,谷歌正式抛弃了基于文字的验证码系统,代之以“我不是机器人”按钮。这套基于人工智能的系统还包含了二次测试,用户有时需要从图集中点选所有包含猫或其他事物的图像。
哥伦比亚大学的三位研究人员使用深度学习技术去自动识别谷歌的reCaptcha,成功率达到了70%。“我们还用这种方法去破解Facebook的图像验证码,取得了83.5%的准确率。”这些研究人员在一篇论文中写道。在验证码系统遭到全面破解的情况下,我们显然需要做点什么了。
重置验证码
一边是要保护网站免遭垃圾制造者的袭扰,一边是要创造出安全的验证码系统,这两者之间的斗争已经隐于幕后。2016年底,谷歌公布了Invisible reCaptcha,它用到了所谓的高级风险分析技术。
这套系统利用谷歌的人工智能技术来寻找人类行为的迹象。它从网页上移除了“我不是机器人”的选项框,转入幕后运行,对鼠标的移动以及点击操作花费的时间进行检测。该公司的安全博客表示,这套于2017年3月上线的隐形系统已经“让数百万人类用户每天无需任何点击就通过了验证”。谷歌没有透露有关该系统工作原理的更多细节。
其他正在开发中的验证方法仍然需要用到一些人类知识。伯恩茅斯大学的蒋楠开发了一套名为Tapcha的移动验证码系统。他说,在一个机器变得越来越无足轻重的世界里,我们需要复杂的新方法来超越人工智能技术。按照设计初衷,这套Tapcha系统将在移动端运行,它基于旧式的扭曲文本方法。
“我们使用这种方法来创建指令。”他说。举例来说,Tapcha用扭曲的文本描述了一项任务,用户必须读完,并按照指令采取行动。系统会要求用户把一个星星从屏幕一侧移动到另一侧,并把它放在另一个形状的上面。“这里面内置了一个语境。”蒋楠说。他认为,要破解这种验证方法,机器不仅需要理解所写的文字,还要理解背后的语境以及所需要完成的任务。
再把视线投向亚马逊。该公司为一套验证码系统申请了专利,它反其道而行之:在验证过程中表现糟糕的那个才是人类。根据该专利的说法,人类有可能会在一些基本的逻辑测试中出错(比如,数出一句话中某个特定字母的数量),而机器却能轻松给出正确答案。
亚马逊另外还申请了一份专利,它可以对你的物理学知识进行测试。正如蒋楠给出的例子,在这样的验证码系统中,机器必须理解图像中发生了什么事情,并自主得出结论。即便人工智能技术取得了诸多进步,但目前还很难达到那样的水平。
那么,这些系统可靠吗?蒋楠预测,如果人工智能足够接近人类,那么所有的验证码系统都有可能被破解。“如果我们开发出顶尖的人工智能技术,那么这些验证操作有可能被一些我们尚不知道的人工智能算法模拟完成。如何在维持安全性的同时,又能保留验证码方案的易用性,这是一道难题。”
对于验证码,大家或许都讨厌它,但它需要保留一些人类互动元素,来应对越来越聪明的人工智能系统。相比起在暗地里辨别人与机器的黑箱,验证码也许更招人喜欢。