验证码研究入门必读(验证码是什么,有什么用,分类,设计,破解,未来发展)

       和实验室师姐们共同完成了一篇关于验证码的英文综述,在写综述的过程中看了很多验证码方面的论文,在本博客中我将以偏科普的方式介绍一下验证码,希望能够使对该领域有兴趣的同学对于验证码有进一步的了解。由于毕设也是和验证码相关,所以本文中的部分段落直接复制自我的毕设论文。感谢师姐们,感谢小组,感谢实验室,感谢导师~~

(5和6待更,如果这篇博客反响不错,可以考虑再写几篇细说一下各类验证码,部分破解可以出教程,再把相关的文献资料放到CSDN资源下载区里面。希望大家看后多多评论,催我更博呀,嘿嘿~~~)

大纲:

1.验证码是什么?         2.验证码有什么用?

3.验证码的分类?         4.验证码的设计?

5.验证码的破解?         6.验证码的未来发展方向?

1.验证码是什么?

       人们日常生活中使用的如在线订票系统、收发电子邮件、注册或登录账号、在论坛上发帖评论等等网络服务,经常被怀有不良企图的人利用计算机程序滥用,例如注册免费email账户大量发送垃圾邮件,往各种博客上贴垃圾广告信息,黄牛党购买大量紧缺票等。这些滥用行为使用户的网络体验受到影响,造成了网络资源的占用,威胁到网络服务的安全。在这样的情况下,一种能够降低自动攻击风险却又不影响合法用户正常使用的安全机制被迫切需要。

       验证码,简称CAPTCHA,就是这样一种能自动区分计算机和人类用户的公开图灵测试(Completely AutomatedPublic Turing test to tell Computers and Humans Apart, CAPTCHA)[1]。它的生成和评测都不需要人的干预,底层数据库和算法公开,人类很容易通过但计算机程序几乎不能通过。    

2.验证码有什么用?

    验证码作为人机区分的手段,在计算机安全领域发挥着不可小觑的作用。

    在网站安全方面,它防止程序进行垃圾注册滥用资源,防止恶意登录和账号盗用,为用户的账号安全提供保障。

    在数据安全方面,验证码作为阻挡数据爬取、防止数据被破坏的一道屏障起了重要作用。

    在运营安全方面,它阻碍恶意刷单现象、防止虚假秒杀、虚假评论,保障投票结果的真实性。

    在交易安全方面,它阻挡虚假交易、恶意套现、盗卡支付等行为,为交易支付保驾护航。

    从设计者的研究角度讲,对于验证码设计机制的研究是一种防御性研究,通过机制的设计增强验证码的抗攻击能力从而提升它保护网络安全的能力。从破解者的研究角度讲,对于验证码的破解研究是一种攻击性研究,通过攻击验证码,寻找安全漏洞,来寻求验证码的改进,进而提升验证码的安全性。设计与破解是验证码机制的盾和矛,验证码机制在相互的攻防之中,不断升级。无论是研究验证码的设计机制还是破解方法,都将促进验证码的发展,提升网络安全。因此,验证码的研究是极其必要的。

3.验证码的分类?

    1996年M Naor等人第一次提出使用图灵测试来做人机区分的想法[3],此时他们还未给出一个具体的形式。许多研究者纷纷将目光聚焦于此。随后不久, Alta Vista提出的基于随机字符的人机交互验证机制在抵御恶意程序滥用URL时达到显著的成效[4],至Luis von Ahn等人设计了Gimpy机制用于防范雅虎聊天室的垃圾广告信息,这才首次提出了验证码概念[1]

    目前主流的验证码分为三类:文本验证码、图像验证码、音视频验证码。

3.1文本验证码

    文本验证码是一种使用最广泛,历史最悠久的验证码,它展示一张含有多个字符的图片,要求用户正确识别并在输入框中输入对应的字符,输入全部正确即认证成功。这些字符多为大小写英文字母、数字或它们的组合,伴随着噪线、扭曲、多字体、空心、复杂背景等机制来提升安全性。目前也已经有大量中文文本验证码投入了线上使用。

    早期的文本验证码字符集小,虽然简单明了但很容易被破解。为了提升文本验证码的安全性,设计者们向验证码中加入了一些安全机制来抵抗程序攻击,这些安全机制多是对抗分割和对抗识别的。对抗分割的安全机制增加了程序分割出单个字符的难度,比如用字符粘连(Crowding Characters Together , CCT)抵抗分割,用空心线来描绘字符轮廓(由于粘连机制使得可用性较差,因此许多网站引入空心机制增加用户友好性,使得字符在粘连的情况下仍能被较好的被用户所识别),用复杂背景隐藏嵌入的字符位置信息,增加噪线干扰,字符变长,双层字符等。对抗识别的机制增加程序识别字符的难度,比如在同一验证码字符中运用多字体并设置不同的字符大小,将字符旋转到某个随机的角度,或者将字符进行拉伸扭曲变形等。部分使用了相应安全机制的验证码如图1.1所示。即使文本验证码中加入了各种各样的安全机制,但仍然无法逃脱逐一被破解的命运。

                                                     

    Jeff Yan用字符分割手段攻击了一大批带有噪线的文本验证码[6],其中Micorosoft验证码破解率达61%,雅虎验证码破解率达到60%。Ahmad分别以46.75%和33%的成功率破解了Google验证码和reCAPTCHA验证码[7],这两个验证码中都带有扭曲和字符粘连。Gao将分割识别技术结合破解了一系列的空心验证码,成功率在36%到89%之间[8]。在论文[9]中,Gao破解了Microsoft的双层验证码达到了44.6%的成功率。除了单独破解某一机制,还有一些端到端的方法破解了多种安全机制相结合的验证码,Gao用基于高通滤波器的方法破解多安全机制的文本验证码,成功率在5%到77%之间[10],此外用深度学习的技术破解文本验证码成功率在10.1%到90.0%之间[11]。

3.2图像验证码

    图像验证码非常受研究者们的喜爱,各种有关图像验证码的研究层出不穷。相比于需要键盘输入的文本验证码,图像验证码往往只需用户用鼠标进行点击、拖拽等简单操作。它要求用户理解图片内容,然后根据提示给出反馈。常见的图像验证码可分为选择类、拖拽类和拼图类

                

    选择类图像验证码通常利用人的图像理解分类能力,要求用户从多个候选图像中选出所有的某类图像。Elson等人提出了Asirra验证码,要求用户从12张猫狗的图片中选出所有的猫[12]。随后,Golle提出SVM分类器对猫狗进行分类,分类准确率达82.7%,破解了该机制[13]。Avatar验证码要求用户从12张脸的图像中选出阿凡达的脸而非真实人脸[14],Cheung训练的CNN网络在该验证码的数据集上达到了99%的分类准确率[15]破解了该验证码。12306验证码要求用户从6张图中选出所有是提示词(衣架、灯笼等)内容的图像。该验证码中的小图分辨率较低,由于形式新颖,在中国掀起了一度热议,但仍旧很快被破解。Heqing Ya等人在破解12306验证码时达到77%的成功率,平均破解时间为2s[16]。此外,一大批基于人脸识别的图像验证码涌现[17][18][19],但也纷纷被破解,其中FaceD验证码要求用户从所有脸的图像中选出真实的人脸而非卡通动漫人物头像[20],但是Gao用边缘检测算法和SVM分类器破解该验证码成功率达48%[21]。

    拖拽类图像验证码要求用户将滑块拖动到指定位置或按照固定的轨迹拖拽鼠标进行运动。图像验证码中的拖拽滑动类,比如极验验证码需要用户将滑块滑动到指定位置,该验证码也已经有相关的破解方法出现[22],京东的手势验证码要求用户根据图像上的随机轨迹完成手指的触屏操作,这类验证码目前有较大发展潜力。对于近来新兴的手势验证码VAPTCHA,组里已经实现了破解且成功率在87%以上,之后如果有时间可以整理一个破解教程出来。给一个VAPTCHA的体验链接:https://www.vaptcha.com/demo

    拼图类图像验证码十分新颖,比如要求用户将两块错置的拼图交换回原位或将某块拼图拼到图片中的对应位置等,提升了验证码的趣味性。拼图类验证码如Capy,要求用户将拼图块拼回图中,该验证码也已被破解,且成功率达61%[23]。想体验拼图类验证码的话可能得翻墙去搜Capy或者是Key  CAPTCHA,这里链接就不给了。

    以上所提到的大部分图像验证码如图1.2所示。本篇列举的验证码有限,其它未列举的图像类验证码比如谷歌的What’s up验证码等仍值得关注[24][25][26]。由于图像类验证码操作简单,验证时间短,易于部署到移动端设备上,所以该类验证码很受欢迎。当然,国内使用的还是以文本验证码居多。

3.3音视频验证码

    音视频验证码的使用较少,且受验证时间长的限制。音频验证码起初是作为视觉类验证码的补充品出现,面向具有视觉障碍的用户[2]。它可分为倾听者机制话语者机制,倾听者机制要求用户听一段内容可能是一个词或几个随机数的音频,正确键入音频内容即可验证成功,话语者机制利用的是人声与合成声之间的差异性,它要求用户读一段给定的文字来判定该用户是否合法。而视频验证码往往给用户提供一个视频文件,要求用户根据视频内容选择最合适视频的选项。

                         

    2012年Jonathan Lazar等人提出了SoundRight验证码[27],要求用户听一段音频比如鸟鸣声或者钢琴声,让用户分辨后提交选项,这属于音频验证码中倾听者模式的设计,如图1.3(a)所示。Gao等人提出的基于音频的验证码[28]如图1.3(b)所示,要求用户念一句话,进行录音提交,这是属于话语者模式的设计。现已有一些针对倾听者模式验证码的破解方法,在Google,Recaptcha等音频验证码上达到了较高的成功率[29][30][31]。还有一些视频验证码被提出[32][33][34],均是要求用户看一段视频回答或选择相关问题。一篇关于reCAPTCHA视频验证码破解的论文破解成功率达到31.75%[35]。

4.验证码的设计?

        验证码的设计需要在验证码的安全性和易用性之间取得平衡。然而这并不是一件容易的事情。

        CAPTCHA 设计需遵循一些通用准则[38,39]:1) CAPTCHA 测试能被自动生成并评估,这是CAPTCHA 设计的基本准则;2) 人类用户能快速通过测试,且成功率较高。为避免CAPTCHA 过难而使网站损失用户,通常要求人类用户通过测试的时间小于30 秒,用户通过率大于90%[36]。3) 测试能抵御机器攻击。通过引入AI 领域较难解决的问题,使用现有技术的计算机程序很难通过测试。要求通过率应小于0.01%[37](Bursztein 认为这个条件太苛刻,机器通过率<1%即可[4])。

        验证码设计基于人工智能 (Artificial Intelligence, AI) 领域的开放性问题,有效利用人和机器在解决此类问题上的差异,避免恶意计算机程序滥用网络服务。Ahn 在《Science》上撰文提出每个CAPTCHA 机制的本质都是基于一个AI 问题[5],一种CAPTCHA 机制的破解意味着相对应的AI 问题得到了解决,CAPTCHA 机制的研究是一个双赢的局面。CAPTCHA 的设计和破解研究呈现出“设计-识别-再设计-再识别”的互相攀升现象,促使CAPTCHA 研究不断向前发展,从而带来CAPTCHA 机制的鲁棒性和可用性的不断提升。

5.验证码的破解?

6.验证码的未来发展方向?

参考文献:

[1]Ahn L V, Blum M, Hopper N J, etal. CAPTCHA: Using Hard AI Problems for Security[C]// EUROCRYPT 2003,International Conference on the Theory and Applications of CryptographicTechniques. 2003:294-311.

[2] Shirali-Shahreza, S.,Abolhassani, H., Sameti, H., & Hassan, M. (2009, August). Spoken captcha: Acaptcha system for blind users. In Computing, Communication, Control, andManagement, 2009. CCCM 2009. ISECS International Colloquium on (Vol. 1, pp.221-224). IEEE.

[3] Naor, M. (1996). Verification ofa human in the loop or Identification via the Turing Test. Unpublished draftfrom http://www.wisdom.weizmann.ac.il/~ naor/PAPERS/human abs.html.

[4] Lillibridge, M. D., Abadi, M.,Bharat, K., & Broder, A. Z. (2001). U.S. Patent No. 6,195,698. Washington,DC: U.S. Patent and Trademark Office.

[5]. L. von Ahn, B. Maurer, C. McMillen, D. Abraham, and M. Blum, reCAPTCHA: Human-Based Character Recognition via Web Security Measures, Science, Sep 12, 2008, 321, 1465-1468.

[6] Yan, J., & El Ahmad, A. S.(2008, October). A Low-cost Attack on a Microsoft CAPTCHA. In Proceedings ofthe 15th ACM conference on Computer and communications security (pp. 543-554).ACM.

[7] A. S. E. Ahmad, J. Yan, and M.Tayara. The robustness of google captchas. Technical report, NewcastleUniversity, 2011.

[8] Gao, H., Wang, W., Qi, J., Wang,X., Liu, X., & Yan, J. (2013, November). The robustness of hollow CAPTCHAs.In Proceedings of the 2013 ACM SIGSAC conference on Computer &communications security (pp. 1075-1086). ACM.

[9] Gao, H., Tang, M., Liu, Y.,Zhang, P., & Liu, X. (2017). Research on the Security of Microsoft’sTwo-Layer Captcha. IEEE Transactions on Information Forensics and Security,12(7), 1671-1685.

[10] Gao, H., Yan, J., Cao, F.,Zhang, Z., Lei, L., Tang, M., ... & Li, J. (2016). A Simple Generic Attackon Text Captchas. In NDSS.

[11] Tang, M., Gao, H., Zhang,Y.,Liu,Y., Zhang, P., & Wang,P. (2018).Research on Deep Learning Techniques inBreaking Text-based Captchas and Designing Image-based Captcha.IEEETransactions on Information Forensics and Security.,PP(99),1556-6013.

[12] Elson, J., Douceur, J. J.,Howell, J., & Saul, J. (2007). Asirra: a CAPTCHA that exploitsinterest-aligned manual image categorization.

[13] Golle, P. (2008, October).Machine learning attacks against the Asirra CAPTCHA. In Proceedings of the 15thACM conference on Computer and communications security (pp. 535-542). ACM.

[14] D'Souza D, Polina P C,Yampolskiy R V. Avatar CAPTCHA: Telling computers and humans apart via faceclassification[C]// IEEE International Conference on Electro/informationTechnology. IEEE, 2012:1-6.

[15] Cheung B. Convolutional NeuralNetworks Applied to Human Face Classification[C]// International Conference onMachine Learning and Applications. IEEE Computer Society, 2012:580-583.

[16] Ya H, Sun H, Helt J, et al.Learning to Associate Words and Images Using a Large-scale Graph[J]. 2017.

[17] Rui Y, Liu Z. ARTiFACIAL:Automated Reverse Turing test using FACIAL features[C]// Springer-Verlag,2003:295-298.

[18] Powell B M, Goswami G, Vatsa M,et al. fgCAPTCHA: Genetically Optimized Face Image CAPTCHA 5[J]. IEEE Access,2014, 2:473-484.

[19] Goswami G, Powell B M, Vatsa M,et al. FR-CAPTCHA: CAPTCHA Based on Recognizing Human Faces[J]. Plos One, 2014,9(4):e91708.

[20] Goswami G, Powell B M, Vatsa M,et al. FaceDCAPTCHA: Face detection based color image CAPTCHA[J]. FutureGeneration Computer Systems, 2014, 31(1):59-68.

[21] Gao, H., Lei, L., Zhou, X., Li,J., & Liu, X. (2015, October). The robustness of face-based CAPTCHAs. InComputer and Information Technology; Ubiquitous Computing and Communications;Dependable, Autonomic and Secure Computing; Pervasive Intelligence andComputing (CIT/IUCC/DASC/PICOM), 2015 IEEE International Conference on (pp.2248-2255). IEEE.

[22] CrackGeetest. Website:https://github.com/Python3WebSpider/CrackGeetest

[23] Hernandezcastro C J, Rmoreno MD, Barrero D F. Side-Channel Attack against the Capy HIP[C]// InternationalConference on Emerging Security Technologies. IEEE, 2014:99-104.

[24] Gossweiler R, Kamvar M, BalujaS. What's up CAPTCHA?:a CAPTCHA based on image orientation[C]// InternationalConference on World Wide Web, WWW 2009, Madrid, Spain, April. DBLP,2009:841-850.

[25] Datta R, Li J, Wang J Z.IMAGINATION:a robust image-based CAPTCHA generation system[C]// ACMInternational Conference on Multimedia, Singapore, November. DBLP,2005:331-334.

[26] Vikram S, Fan Y, Gu G. SEMAGE:anew image-based two-factor CAPTCHA[C]// Twenty-Seventh Computer SecurityApplications Conference, ACSAC 2011, Orlando, Fl, Usa, 5-9 December. DBLP,2011:237-246.

[27] Lazar, J., Feng, J., Brooks, T.,Melamed, G., Wentz, B., Holman, J., ... & Ekedebe, N. (2012, May). TheSoundsRight CAPTCHA: an improved approach to audio human interaction proofs forblind users. In Proceedings of the SIGCHI conference on human factors incomputing systems (pp. 2267-2276). ACM.

[28] Gao, H., Liu, H., Yao, D., Liu,X., & Aickelin, U. (2010, July). An audio CAPTCHA to distinguish humansfrom computers. In Electronic Commerce and Security (ISECS), 2010 ThirdInternational Symposium on (pp. 265-269). IEEE.

[29] Tam, J., Simsa, J., Hyde, S.,& Ahn, L. V. (2009). Breaking audio captchas. In Advances in NeuralInformation Processing Systems (pp. 1625-1632).

[30] Bursztein, E., Beauxis, R.,Paskov, H., Perito, D., Fabry, C., & Mitchell, J. (2011, May). The failureof noise-based non-continuous audio captchas. In Security and Privacy (SP),2011 IEEE Symposium on (pp. 19-31). IEEE.

[31] Sano, S., Otsuka, T., &Okuno, H. G. (2013, November). Solving Google’s continuous audio CAPTCHA withHMM-based automatic speech recognition. In International Workshop on Security(pp. 36-52). Springer, Berlin, Heidelberg.

[32] Shirali-Shahreza, M., &Shirali-Shahreza, S. (2008, May). Motion captcha. In Human System Interactions,2008 Conference on (pp. 1042-1044). IEEE.

[33] Rao, K., Sri, K., & Sai, G.(2016). A Novel Video CAPTCHA Technique To Prevent BOT Attacks. ProcediaComputer Science, 85, 236-240.

[34] Kluever, K. A., & Zanibbi,R. (2009). Balancing usability and security in a video CAPTCHA. Symposium onUsable Privacy and Security, SOUPS 2009, Mountain View, California, Usa, July(pp.1-11). DBLP.

[35] Sano, S., Otsuka, T., Itoyama,K., & Okuno, H. G. (2015). HMM-based Attacks on Google's ReCAPTCHA withContinuous Visual and Audio Symbols. Journal of Information Processing, 23(6),814-826.

[36]. E. Bursztein, M. Martin, and J. Mitchell. Text-based captcha strengths and weaknesses. Proc. of the 18th ACM conference on Computer and Communications Security (ACM CCS). 2011, 125-138.

[37]. K. Chellapilla, K. Larson, P. Simard, et.al, Designing human friendly human interaction proofs. Proc. of the SIGCHI Conf. on Human Factors in Computing Systems. New York, ACM, 2005:711-720.

[38]. L. von Ahn, M. Blum, and J. Langford. Telling Humans and Computer Apart Automatically.Communications of the ACM, 2004, 47(2), 57-60.

[39]. H. Baird, K. Popat, Human interactive proofs and document image analysis, Proc of the 5th Workshop on Document Analysis System V. Berlin, Springer, 2002:507-518.

[39]. H. Baird, K. Popat, Human interactive proofs and document image analysis, Proc of the 5th Workshop on Document Analysis System V. Berlin, Springer, 2002:507-518.
展开阅读全文

没有更多推荐了,返回首页