什么是Captcha
CAPTCHA项目是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称,已由卡内基梅隆大学注册商标。
CAPTCHA的目的是区分计算机和人类的一种程序算法,这种程序必须能生成并评价人类能很容易通过但计算机却通不过的测试。这个要求本身就是悖论,因为这意味着一个CAPTCHA必须能生成一个它自己不能通过的测试。
大家可以看看CAPTCHA的一个例子:
人类能够比较容易识别图片中的字母,但如果编写计算机程序,难度就非常大了。
按照Lenore Blum的说法,任何的图片中的内容都能被识别,不存在一种计算程序生成的图片不能被计算机程序识别出来。
于是,比赛开始了,有人站到Captcha一方,有人站到破译Captcha的一方…….
如今,GZUG的两位牛人已经开始了这个游戏:
CYT(Coremail的主要设计者)加入了Captcha一方。
灵感之源 (Guardio/Definio的Designer)加入了破译Captcha的一方。
游戏规则是:Captcha方公布一系列的图片,破译Captcha的一方提供程序能够分析这些图片中的内容,如果破译方提供的应用程序能够以高于10%的识别率识别出图片内容,则判定破译方获胜。获胜方将得到BEA UG礼品一份!
关于Captcha的信息,参考下面的链接
Captcha方:
Captcha项目:http://www.captcha.net/
jCaptcha项目:http://jcaptcha.sourceforge.net/
破译Captcha方:
http://www.cs.sfu.ca/~mori/research/gimpy/
http://sam.zoy.org/pwntcha/
http://www.brains-n-brawn.com/default.aspx?vDir=aicaptcha
复杂的Captcha对文字识别,图形图像处理以及人工智能专家来说都是一个很大的挑战,但是这并不能阻止互联网上那些Bot创造者们的脚步,一些新兴的破解Captcha的办法也就应运而生,最常用的包括两种方法:
1. 利用现成的网站(很多是吸引眼球的不正当网站)的高流量,让那些过路者免费帮忙输入验证码。
2. 直接付费利用人力资源输入验证码,比如http://google27.com/bypass-captcha/ 就是一个专门进行此类勾当的网站。
当然Captcha并不是唯一的解决互联网垃圾的手段,相信以后会有更多的更方便更安全的技术出现在人们的眼前。
验证字(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 方式比较多,当然,更为精准。这就是技术的”马奇诺防线“啊!