一种新型图像验证码系统

2014-12-13 00:24叶振
数字技术与应用 2014年8期

叶振

摘要:验证码是一种防止自动化脚本程序对网站进行攻击的重要技术。当前主流网站采用的验证码多是基于文本模式的,这种模式的验证码将一系列文本字符通过旋转扭曲叠加的方式进行变形,然后再添加复杂干扰背景图片等方式使自动化程序难以辨识。然而,这种文本验证码要么过于简单,很容易被脚本采用光学字符识别(OCR)或者机器学习的方式所识别,要么由于过于复杂甚至连真正的用户都难以正确的识别。观察到文本验证码的这种安全性和可用性方面存在的矛盾,本文提出了一种基于物体识别的新型图像验证码系统。该系统通过将若干物体图片附加到随机的背景图片中并让用户识别的方式来辨别自动脚本和真正的用户。

关键词:验证码 物体识别 图像验证码 验证码设计

中图分类号:TP3 文献标识码:A 文章编号:1007-9416(2014)08-0185-02

1 简介

为了提高系统的安全性以及区分客户端请求是来自真实的用户还是恶意的自动脚本,越来越多的网站和应用程序开始采用验证码技术。当前主流网站大多使用的都是文本验证码,文本验证码的主要思路是随机产生一些文本或从字典中选取一个单词,经过扭曲,旋转,粘连等变换,之后再添加噪音线和噪点的方式来产生一副保护验证码字符的图片,通过让用户识别该图片中的文字的方式来区分真实用户和自动化的程序[1]。然而,使用该类验证码的系统往往在安全性和可用性方面存在矛盾。如果验证码设计的过于简单,自动化程序可以利用各种光学字符识别或者机器学习算法来识别相应的文本[2]。相反,如果生成的验证码扭曲程度非常高或者背景特别复杂,则真实用户往往也很难识别出正确的文本。

近期也有研究提出了一些基于图像的验证码系统,这类系统通常都是通过让用户识别某张图片中的特定元素或者不同图片中物体之间的某种特定关系来区分真实用户和自动脚本程序。[3]提出一种基于背景图像和物体图像叠加方式产生的验证码系统。在该验证码系统中,一张背景图片上会叠加若干张背景透明的物体图片,通过让用户回答图片中各物体之间的关系问题来验证用户,为了增加安全性,每张物体图像本身可以进行一系列的扭曲色彩等变化,同时背景图片也可以进行进一步的变换及添加噪声等处理。该验证码系统中物体之间的关系问题主要包括3大类:(1)相对位置关系的问题;(2)物体数量问题;(3)对象之间关联度的问题。该验证码系统存在的主要缺点一是可用性及安全性依赖所问的问题,如果问题设计不合理正常用户也难以正确回答,如:请选择所有物体中与其它物体最不像的。二是如果物体图像不够多或者问题设计不合理,容易被随机猜测所攻击,如:选择图像中出现最多次数的物体名字,如果物体名字只有4个,那么随机猜测有25%的概率猜对。相反,如果物体图像太多则会影响验证码的生成速度以及用户的识别准确率及速度。

观察到文本验证码以及当前图像验证码研究存在的这些不足,本文提出了一种新型的基于物体识别的图像验证码系统。该系统通过将多张随机选出的物体图片附加到一张背景图片中的不同位置,并让用户根据图片中物体名字出现的顺序输出其对应物体标签的方式来辨别请求是否来自真实的用户。

2 新型图像验证码系统

本文提出了一种新型的基于物体识别的图像验证码系统。在该系统中,一张图片中包含若干个物体,每个物体上有对应的字符标签,如图1所示。用户在识别时,需要根据文字上显示的顺序,按照相同顺序将名字对应的物体上的标签依次输入。用户只有同时识别出验证码图片中的物体,物体上的标签以及物体名字和物体图片语义上的对应关系才能得到正确的验证码信息,因此具有很高的安全性。同时,对于用户来说,由于物体和其名字对应关系非常明显,区分度和辨识度都很高,因此识别过程简单直接迅速,无需很高的知识背景,因此也具有很好的可用性。

本文的验证码系统由两部分组成:1.图片数据库;2.生产验证码图片的算法。其中图片数据库包含背景图片数据库以及物体图片数据库。

背景图片数据库的作用是为验证码系统提供一系列的背景图片,以提高利用自动脚本进行物体识别和文本识别的难度,因此需要选取的每张图片内容要丰富多样,不能太过单一,由只是作为背景,其数量可以相对较少。物体图片数据库中的图片要便于用户辨识,因此要选取特点鲜明,日常生活能接触或了解到的人人都能识别的物体作为候选。

验证码的生成过程并不复杂,首先从物体图像数据库中随机选出n张物体图片。接着,选择n个合适的标签字符用以标识不同的物体。然后,从背景图像数据库中随机选取一张图片作为背景。最后,算法将标签字符附加到物体图片中,并将物体图片,物体名字添加到背景图片中生成一张验证码图片。

对于用户来说,使用该验证码非常容易。首先,找到各个物体名称对应的物体;然后,识别出各物体上的标签字符;最后按顺序在验证码输入框内输入各个字符。图1所示的验证码的正确输入应为:BDCA。

3 安全性分析

对于基于图像的验证码系统来说,自动脚本程序主要有2种方式进行自动识别。一是通过随机猜测需要输入的字符的方式进行自动识别;二是利用机器学习和计算机视觉等算法进行在线自动识别。

3.1 随机猜测识别

由于本文的验证码是以比较输入的标签字符是否和生成的一致来区分用户和自动脚本,因此理论上是可以通过随机猜测输入的标签字符来进行自动识别。物体上的标签并非固定不变的,例如本次可以使用英文字母,下次可以换为使用阿拉伯数字,因此随机猜测攻击的前提是自动脚本程序能识别物体上的标签字符,然而这在复杂背景图像上并非易事。即使程序识别正确所有的物体标签,由于这些标签得按顺序输入,所以随机猜测攻击的正确率为1/(1*2*…*n),其中n为物体的个数。也即,当物体数量n为4时,正确率为1/24约为4.17%,而n为5时,正确率为1/120。由此可见,对于采用随机猜测的方式进行自动识别,本文的验证码具有很强的抵抗能力。endprint

3.2 利用机器学习和计算机视觉进行自动识别

通过机器学习和计算机视觉技术进行自动识别的原理是通过相应的技术在线识别出验证码图片中的物体及文字。对于本文的验证码,需要识别的对象包括所有的物体以及物体上的标签字符。复杂场景中的物体识别以及字符识别一直以来都是研究难点[4],其正确率并不是很高,而在本文中,只有同时能正确识别出所有的对象,才有可能识别出验证码的内容,因此难度非常高。

更为重要的是,即使脚本能正确识别出所有的对象,如何将物体的名字和物体本身进行关联对应在本文中更是自动脚本无法完成的任务。然而这种对应关系在人类眼中却非常自然,比如只受过非常基础教育的小孩也能将图1中的文字“雪人”和标签“D”所在的物体关联起来,而现有程序根本无法进行这种语义级别的自动关联。

4 结语

本文提出了一种基于物体识别的新型图像验证码系统,系统中的验证码图像由物体图片,标识物体的标签字符合成到背景图片上而成,只有同时识别出物体及上面的标签并且理解物体名字和物体图像的语义对应关系才能破解此验证码,因此安全性非常高。同时,由于此识别过程和语义对应关系对于真实用户来说非常直观,因此对于不同年龄和文化程度的用户来说其可用性都非常高。

参考文献

[1]Luis A.,Benjamin M.,et al.reCAPTCHA: Human-Based Character Recognition via Web Security Measures.Science Magazine.2008.321(5895):1465-1468

[2]Ahmad A.,Jeff Y.,and Mohamad T. The Robustness of Google CAPTCHAs.Computing Science Technical Report CS-TR-1278. 2011.

[3]Peter M.,CliffZ.Scene tagging:image-based CAPTCHA using image composition and object relationships.?ACM Conference on Computer and Communications Security.2010.

[4]Pawar N.,Sanjay T.An Investigation of Significant Object Recognition Techniques. S International Journal of Computer Science and Network Security.2009.9(5).endprint

3.2 利用机器学习和计算机视觉进行自动识别

通过机器学习和计算机视觉技术进行自动识别的原理是通过相应的技术在线识别出验证码图片中的物体及文字。对于本文的验证码,需要识别的对象包括所有的物体以及物体上的标签字符。复杂场景中的物体识别以及字符识别一直以来都是研究难点[4],其正确率并不是很高,而在本文中,只有同时能正确识别出所有的对象,才有可能识别出验证码的内容,因此难度非常高。

更为重要的是,即使脚本能正确识别出所有的对象,如何将物体的名字和物体本身进行关联对应在本文中更是自动脚本无法完成的任务。然而这种对应关系在人类眼中却非常自然,比如只受过非常基础教育的小孩也能将图1中的文字“雪人”和标签“D”所在的物体关联起来,而现有程序根本无法进行这种语义级别的自动关联。

4 结语

本文提出了一种基于物体识别的新型图像验证码系统,系统中的验证码图像由物体图片,标识物体的标签字符合成到背景图片上而成,只有同时识别出物体及上面的标签并且理解物体名字和物体图像的语义对应关系才能破解此验证码,因此安全性非常高。同时,由于此识别过程和语义对应关系对于真实用户来说非常直观,因此对于不同年龄和文化程度的用户来说其可用性都非常高。

参考文献

[1]Luis A.,Benjamin M.,et al.reCAPTCHA: Human-Based Character Recognition via Web Security Measures.Science Magazine.2008.321(5895):1465-1468

[2]Ahmad A.,Jeff Y.,and Mohamad T. The Robustness of Google CAPTCHAs.Computing Science Technical Report CS-TR-1278. 2011.

[3]Peter M.,CliffZ.Scene tagging:image-based CAPTCHA using image composition and object relationships.?ACM Conference on Computer and Communications Security.2010.

[4]Pawar N.,Sanjay T.An Investigation of Significant Object Recognition Techniques. S International Journal of Computer Science and Network Security.2009.9(5).endprint

3.2 利用机器学习和计算机视觉进行自动识别

通过机器学习和计算机视觉技术进行自动识别的原理是通过相应的技术在线识别出验证码图片中的物体及文字。对于本文的验证码,需要识别的对象包括所有的物体以及物体上的标签字符。复杂场景中的物体识别以及字符识别一直以来都是研究难点[4],其正确率并不是很高,而在本文中,只有同时能正确识别出所有的对象,才有可能识别出验证码的内容,因此难度非常高。

更为重要的是,即使脚本能正确识别出所有的对象,如何将物体的名字和物体本身进行关联对应在本文中更是自动脚本无法完成的任务。然而这种对应关系在人类眼中却非常自然,比如只受过非常基础教育的小孩也能将图1中的文字“雪人”和标签“D”所在的物体关联起来,而现有程序根本无法进行这种语义级别的自动关联。

4 结语

本文提出了一种基于物体识别的新型图像验证码系统,系统中的验证码图像由物体图片,标识物体的标签字符合成到背景图片上而成,只有同时识别出物体及上面的标签并且理解物体名字和物体图像的语义对应关系才能破解此验证码,因此安全性非常高。同时,由于此识别过程和语义对应关系对于真实用户来说非常直观,因此对于不同年龄和文化程度的用户来说其可用性都非常高。

参考文献

[1]Luis A.,Benjamin M.,et al.reCAPTCHA: Human-Based Character Recognition via Web Security Measures.Science Magazine.2008.321(5895):1465-1468

[2]Ahmad A.,Jeff Y.,and Mohamad T. The Robustness of Google CAPTCHAs.Computing Science Technical Report CS-TR-1278. 2011.

[3]Peter M.,CliffZ.Scene tagging:image-based CAPTCHA using image composition and object relationships.?ACM Conference on Computer and Communications Security.2010.

[4]Pawar N.,Sanjay T.An Investigation of Significant Object Recognition Techniques. S International Journal of Computer Science and Network Security.2009.9(5).endprint