验证码(CAPTCHA)

2012年5月3日 | 分类: 【商业】

Google收购了CAPTCHA(自动区分计算机和人类的图灵测试)技术开发商ReCaptcha,以帮助它进行书籍扫描。

ReCaptcha是卡内基梅隆大学计算机科学院研究人员创办的一家反Spam公司,它开发了名为reCAPTCHA的验证系统,利用CAPTCHA技来帮助古典书籍的数字化,将从书本扫描下来无法准确被OCR技术识别的字符显示在CAPTCHA问题中,让人在回答CAPTCHA问题的同时帮助识别扭曲文字。无疑这项技术对雄心勃勃扫描图书建立全球数字图书馆的Google有很大的吸引力。

老网民们大概都记得,刚开始上网的时候,是不存在验证码(capcha)这么一种东西的。这造成的结果是,垃圾评论和垃圾邮件可以轻松通过任何一个网站的注册程序,通过各种方式轰炸人民群众的眼球。

最先想要解决这一问题的是雅虎——作为互联网时代早期最重要的免费邮件提供商,他们一方面要解决用户们每天遇到的数以百计的垃圾邮件轰炸,另一方面,他们自己的免费邮箱,恰恰又是垃圾邮件的最爱——耗费无数资源所阻止的垃圾邮件,都来自于自己的服务器。这让雅虎开始认真考虑如何解决人机辨识问题。

互联网最早出现的capthca

他们找到一位当时刚刚21岁的天才——Luis von Ahn。 而Luis Von Ahn给出的方案,就是这个让人民群众微微皱眉,但是让计算机耸肩挠头的验证码 Capcha。计算机辨识技术还很落后,对于经过扭曲、污染的文字,无法辨识。而人类却可以轻松认出这些文字。这是一个简单而巧妙的设计,计算机先是产生一个随机的字符串,然后用程序把这个字符串的图像进行随机的污染,扭曲,再显示给显示器前的人或者机器。凡是能够辨识这些字符的,即为人类。

故事还没完,Luis Von Ahn是那种追求完美的科学家。当全世界数以十亿计的人每天都会浪费几秒钟的时间参与辨认文字这一简单活动的时候,他开始思考,其中浪费的人脑智力是否能得到更好的应用呢?

Luis Von Ahn的最终设计是,让人们用这些脑力解决一些计算机无法解决的图书数字化。

在计算机时代以前,印刷术已经存在了数百年,但这些印刷术所产生的书本和报纸等等,对于计算机来说都是模拟信号,仅以图像的形式存在,而非以数字化 的形式存在。但是,早期的印刷术并不精确,文字大小不一,形象有差别。而且因为印刷品年代久远,拥有各种细微的缺损和污染。这对人眼来说不是什么大问题, 但对计算机来说就麻烦了。

目前在google、yahoo、youtube等各个网站都能看到的双capcha,一个是需要辨认的文档图像,一个是计算机生成的capcha

因此,2002年,luis Von Ahn开始让capcha引用各种无法被计算机辨识的文字图像,目前,已经有上万网站采用他的新一代capcha。每天帮助辨识数以百万计的古老文档。

问题在于,对于最初的capcha来说,计算机实际上是知道答案的。而Luis希望人们辨识的文字,计算机实际上是不知道答案的,那如何能验证返回的答案到底是不是真的呢?

解决这个问题的方法依然体现了Luis一贯的简洁和优美,他让人们每次辨识两个,而非一个capcha,其中一个来自于计算机随机生成的字符串,而 另一个则是从文档中选取的计算机不认识的字符图像。只要人们对前一个字符串给出的答案是正确的,那么就判定,人们对后一个capcha的辨识是正确的。

用这一方法,luis的capcha2.0 已经帮助完成了整个纽约时报130年的报纸存档数字化——这一本可能花费无数时间和资源的工程,在几个月之内就由各位网友们完成了。

当然,这是美国人在capcha中找到的人肉商机。而相对的,知道中国人和印度人怎么从capcha中寻找人肉商机吗?

简单来说,通过一系列程序转换,亚洲劳动密集型产业把各种垃圾邮件注册、电子游戏金币农民所需要解决的capcha辨认问题,集中给几个专门负责辨 认capcha的人手里,这些人的工作就是,替垃圾邮件注册软件辨认capcha,一遍他们能冒充人类,每辨认一个获得半个卢比,每天需要辨认成千上万个 capcha。

劳动密集型经济体和资本密集型经济体对人类脑力就是如此区别定价的。

Captcha

CAPTCHA项目是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称,卡内基梅隆大学试图将其注册为商标,但2008年请求被驳回。 CAPTCHA的目的是区分计算机和人类的一种程序算法,是一种区分用户是计算机和人的计算程序,这种程序必须能生成并评价人类能很容易通过但计算机却通不过的测试。这个要求本身就是悖论,因为这意味着一个CAPTCHA必须能生成一个它自己不能通过的测试。

大家可以看看CAPTCHA的一个例子:人类能够比较容易识别图片中的字母,但如果编写计算机程序,难度就非常大了。按照Lenore Blum的说法,任何的图片中的内容都能被识别,不存在一种计算程序生成的图片不能被计算机程序识别出来。于是,比赛开始了,有人站到Captcha一方,有人站到破译Captcha的一方…….如今,GZUG的两位牛人已经开始了这个游戏:CYT(Coremail的主要设计者)加入了Captcha一方。灵感之源 (Guardio/Definio的Designer)加入了破译Captcha的一方。

Captcha方公布一系列的图片,破译Captcha的一方提供程序能够分析这些图片中的内容,如果破译方提供的应用程序能够以高于10%的识别率识别出图片内容,则判定破译方获胜。获胜方将得到BEA UG礼品一份!

复杂的Captcha对文字识别,图形图像处理以及人工智能专家来说都是一个很大的挑战,但是这并不能阻止互联网上那些Bot创造者们的脚步,一些新兴的破解Captcha的办法也就应运而生,最常用的包括两种方法:
1. 利用现成的网站(很多是吸引眼球的不正当网站)的高流量,让那些过路者免费帮忙输入验证码。
2. 直接付费利用人力资源输入验证码,就是一个专门进行此类勾当的网站。
当然Captcha并不是唯一的解决互联网垃圾的手段,相信以后会有更多的更方便更安全的技术出现在人们的眼前。

验证字/验证码(CAPTCHA) 最早作为 Carnegie Mellon 大学的一个科研项目,Yahoo! 是CAPTCHA 的第一个用户。 CAPTCHA 这个缩写来自 “Completely Automated Public Turing test to Tell Computers and Humans Apart” ,其目的就是通过用来区分机器与人,其安全性与 SPAM 数量息息相关,一直以来,是此消彼长。
验证字是每一个网站不可回避的一个东西。前几天 Slashdot 上一则题为: Yahoo CAPTCHA Hacked 的消息引起了不少人的震惊。乖乖,精确度能达到 35%!要知道,一直研究 CAPTCHA 有效性的 PWNtcha 项目的评测中,Yahoo! 的验证字几乎是最安全的那种, “A very good captcha, but not always human-solvable”,之前也有 专门针对 Yahoo ! 所用验证字进行破解研究项目,比如 Gimpy。

肯定没有 100% 安全的验证字–除非你根本不想让人看明白,在用户可识别性与机器识别之间的平衡是最大的问题,”挑战–响应”,两个环节之间的问题其实也挺微妙。在注册微软的一些服务的时候,验证字很难让人看明白,要多刷新几次才能有个好认的;而一些电子商务的网站,比如 Paypal ,验证字被 PWNtcha 破解的概率是 88% ,这么做应该也是有苦衷的,毕竟要考虑用户体验。
中文网站所使用的验证字机制,个人觉得还没有引起足够的重视。唯一值得一提的是腾讯的 “中文” 验证字算是一个创新(估计是申请专利了),估计能够抵挡住国外 SPAM 的攻击(谁让老外不认识中文呢). 而从我个人的体验上来看,通过机器人发送 SPAM 的大部分来自国外,国内目前处于”手工“ Spam 方式比较多,当然,更为精准。这就是技术的”马奇诺防线“啊!