论文部分内容阅读
验证码现在被广泛应用于互联网上,其被用于抵制黑客的攻击以及恶意破解密码的自动化程序等。验证码的作用在于能够自动区分人类和计算机,从本质上讲验证码就是一种能够生成人类可以轻易通过而计算机却无法通过的测试。目前应用最广泛的验证码依然是文本验证码,所以针对基于文本验证码的破解仍旧是当前该领域最为广泛讨论的话题。截至目前已经提出了许多破解方法,这些先进的研究技术增加了验证码的鲁棒性,但是其中的大多数都有一定的局限性。本文提出了一种简单有效并且通用的方法用于破解大多数文本验证码。本文提出的破解方法只包含两大步骤,分别为提取笔画块和组合识别。首先,在提取笔画块的过程中主要使用Log-Gabor滤波器分别从四方向上对一张验证码图片进行滤波处理。其次,在组合识别的过程中需要先将提取出的笔画块按照最左上的像素进行排序,之后按照已经排序好的笔画块建立相应的图,并对图中冗余节点进行剪枝操作。在删除冗余后将剩余笔画块进行组合识别,在将笔画块识别为当个字符时主要使用到了K最近邻算法,对比了卷积神经网络,该算法在识别过程中性能最好。最后对识别出的字符进行图搜索,这里使用DP算法计算出置信度最大的识别结果,作为最终一张验证码图片的识别答案。在实验的过程中本文分别从图搜索算法、笔画块提取方向、滤波器、分类器以及与先前工作进行了对比,充分证实了文中方法的可行性和优越性。同时,为了强调方法的简单性,区别于传统的验证码破解工作,本文对所有验证码机制均不进行预处理操作。在提取笔画块的过程中本文首次提出将Log-Gabor滤波器用于破解验证码的工作,这是一次创新。而在组合识别的过程中本文最终选择了K最近邻算法,该算法并不需要使用样本集进行训练,能够节约大量的时间消耗,并且在识别过程中其性能最好。为了强调方法的有效性和通用性,本文将该方法运用到破解各种设计风格的文本验证码,包括空心验证码机制、字符分离验证码机制、以及字符粘连验证码机制等。为了获得不同风格的文本验证码,本文选择了破解Alexa排行榜最受欢迎的20个主流网站上部署的验证码,比如谷歌、雅虎、微软以及亚马逊等。对于所有不同种类的验证码机制,本文方法的破解率从5%到77%不等。本文不仅在破解成功率上获得了相对较高的结果,而且还在破解速度上也有所突破,文中破解一个文本验证码的速度均不超过15秒。除了上述验证码机制,为了更加深入的分析和验证文中提出方法的通用性,文中还选择破解了验证码研究领域内公认较难破解的验证码机制,包括较早版本的reCAPTCHA机制、Yandex验证码机制以及较难版本的Yahoo!验证码机制,均获得了一定的成功率。除此之外,通过分析文本验证码的安全性,本文为后续设计更加安全的验证码机制提出了宝贵的建议和意见。