论文部分内容阅读
验证码(Completely Automated Public Turing test to tell Computers and Humans Apart,CAPTCHA)是设计用于区分计算机与人类用户的安全机制,它被广泛应用于网银登录、账号注册、密码找回等验证环节,以防止网站受到恶意程序的自动攻击。现有验证码机制可以划分为三类:文本验证码、图像验证码和语音验证码,其中文本验证码是使用最广泛的验证码机制。当前针对验证码的研究还存在诸多的问题和不足:首先,一些新型文本验证码机制的安全性还有待验证,比如微软首次使用的双层验证码;其次,随着深度学习技术逐渐成为验证码破解的主要工具,文本验证码是否仍然安全存在质疑;最后,深度学习技术在验证码设计中的应用同样需要探索。针对这些问题,本文主要进行了以下三方面工作:(1)以微软的双层验证码机制为代表讨论了双层验证码的安全性,提出了一种基于深度学习的方法来破解微软的双层验证码机制。该方法针对双层验证码的特征提出了一种新的二维分割算法,并且设计实现了一个模拟器来模拟微软验证码的生成过程,自动生成模拟的验证码图片作为训练集用于训练神经网络(Convolutional Neural Network,CNN)模型,然后使用训练后的模型去识别真实双层验证码中的字符。文中的方法在早期的微软双层验证码机制上获得了44.6%的成功率和9.05秒/张的平均破解速度,表明双层验证码并不像其设计者所期许的那样安全。本文也讨论了方法中其他可供选择的设计方案以及新版微软双层验证码机制的安全性,分析了方法的适用性和新颖性,提出了针对双层验证码设计的改进建议。(2)提出了一种简单、通用、实时的破解方法来全面评估文本验证码的安全性。在深度学习技术的辅助下,该方法成功破解了Alexa排名中最受欢迎的前50个网站所部署的文本验证码机制和三种中文验证码机制。这些机制覆盖了所有常用的文本验证码抵抗策略,揭露了现有的文本验证码存在严重的安全隐患,不仅包括常用的基于英文字符和阿拉伯数字的文本验证码机制,还包括使用大字符集的验证码机制。该方法反驳了验证码设计中的“抵抗分割”原则,建议验证码设计者在以后的验证码设计中应该多从“抵抗识别”的角度来设计验证码,特别是抵抗基于深度学习技术的识别算法。(3)设计了一种名为SACaptcha(Style Area CAPTCHA)的基于风格迁移的新型图像验证码机制,尝试将深度学习技术应用到验证码设计中。这种验证码机制要求用户根据提示信息点击指定形状的前景区域来通过验证,生成代价低,具有较好的可用性和安全性。由于风格迁移技术的使用,任意图片均可以作为输入来生成SACaptcha,无需手动选择图片或添加标签。这是将深度学习技术应用于验证码设计的一次积极尝试,表明了深度学习是一把双刃剑,既可以作为攻击方法中的组件来破解验证码,也可以巧妙运用来提升验证码的安全性。