文本CAPTCHA传统的CAPTCHA构造方法采用文本识别的方法,通过显示进行了一定变异和模糊的图片,要求用户对其中的文字进行识别和输入。文本识别CAPTCHA首开随机取向和变形字母表示为一个图片的先河。用户识别字母和数字,并输入它们以验证是一个人。传统的文本CAPTCHA可以归为以下三类:
1)基于标准字型库的文本CAPTCHA。第一个文本CAPTCHA由AltaVista网站设计,字符仅存在字体、大小和扭曲角度三种变形[4],易被破解。Paypal网站为解决在线支付安全问题设计了一种简单的文本CAPTCHA,测试图像未引入字符变形,仅添加了网格噪声[4],Xu等人针对电子商务中的安全漏洞提出MandatoryHumanParticipatio[5],参数化控制字体、尺寸、旋转角度、噪声等。同时期还有CMU的Gimpy系列以及简化版本EZ-Gimpy和Gimpy-r。25375
2)基于印刷体的文本CAPTCHA。PARC和UCB的学者提出基于较差分辨率印刷体识别的文本CAPTCHA,利用降质模型生成低质量的印刷字体,使得机器无法正确识别,此类CAPTCHA有PessimalPrint[6],BaffleText[7],ScatterType[8]。论文网
3)基于手写体的文本CAPTCHA。Rush等人利用手写体文本难以识别这一特点,提出基于手写体识别的文本CAPTCHA[9]。与基于标准字型库以及基于印刷体的文本CAPTCHA相比,手写体更难为机器识别,但同时也提高了人类用户的识别难度。
不过,OCR(Optical Character Recognition,光学字符识别)技术以及字符分割技术的发展使得从图像中自动识别字符更为容易。对于设计简单的文本CAPTCHA,都可以通过模式识别和自然语言理解的方法,采用像素点计数、垂直水平投影等图像预处理手段来破解。[10,11]对于一些复杂的CAPTCHA,结合先验知识,利用匹配算法、学习算法也可破解。[12]
当然,文本CAPTCHA系统也具有低带宽的优势,因此它已进一步改善成为更加成熟的技术,如3D CAPTCHA。但是3D CAPTCHA仍可被检索均匀的颜色的像素而形成的框架所破解。像3Layer动态CAPTCHA、散射型和手写CAPTCHA不能够给出一个满意的区分人机的成功率,其效用也因此而降低。一些耐用CAPTCHA像3D动画,由于运动效果而消耗大量的带宽。图1给出了文本CAPTCHA的实例。
2.1 文本识别——散射型和3D CAPTCHA
2.1.2 图像CAPTCHA
图像识别CAPTCHA比传统的文字识别验证码更先进一步。最早的可记载工作是已破坏的微软Asirra。图像CAPTCHA基于图像分类、目标识别、场景理解等计算机视觉领域较难的人工智能问题,大多与语言独立,无需文本输入,使用便捷。然而,现有图像CAPTCHA大多需要庞大的图像数据库支持,“CAPTCHA怎么回事?”技术需要细致的数据库定制[8]。因此图像CAPTCHA无法大规模生成,只能应用在一些小规模服务中,暂时无法代替文本CAPTCHA。
按照不同的图像生成方式,可将图像CAPTCHA分为如下2类:
1)基于图像数据库的图像CAPTCHA。验证图像来自一个带有标注的图像数据库,其致命弱点是一旦自动程序攻破了这个数据库,算法便立刻失效。Chew等人提出了三种解决方案:增大数据库规模;动态更新数据库;对图像进行降质处理。[13]
2)基于图像模型的图像CAPTCHA。为解决基于图像数据库的图像CAPTCHA的缺陷,研究者们参考基于字体模型的文本CAPTCHA设计,将巨大的图像数据库削减为一个或多个2D/3D模型,通过调整变形参数获得大量的测试图像。
四个小组的卡通CAPTCHA[9]需要明确的用户关注和时间,这让可用性更加复杂。像文献[10,11,12,13]中的技术,固然对真人用户有困难,因为他们不一定理解所需要的数据。图2.2描绘了化身CAPTCHA。场景标记[14]从背景和一些更小的物体组成图像,再利用失真,这进一步降低了自动化子对象识别的机会,但为抵抗攻击而设计的的重失真也可能减少真人用户的直接识别。3D模型中的2D CAPTCHA [15]是一种新型的利用人和机器人差距的方法。然而,CAPTCHA生成的3D图像处理是昂贵的。 CAPTCHA技术国内外研究现状:http://www.youerw.com/yanjiu/lunwen_19126.html