验证码的设计与破解探讨

总第247期2010年第5期
计算机与数字工程
Computer&Digital Engineering
Vol.38No.5
116
验证码的设计与破解探讨3
唐娅琴
(重庆医科大学基础医学院 重庆 400016)
摘 要 验证码属于人机区分测试的一种,已经被广泛用于网络来阻止恶意程序对网络服务的使用。文章论述了验证码的设计原理,分析了其设计中可能存在的容易被破解的缺陷,提出了一种自动识别验证码的流程,描述了识别的详细过程,利用实际网络中使用的验证码进行了测试,实验结果证明识别率达到了99%。
关键词 去噪;验证码;自动识别
中图分类号 TP391.43
A Discussion about CAP TCHA Design a nd Defeating
Tang Yaqin
(Chongqing Medical University,Chongqing 400016)
Abs t rac t CAPTCHA has been designed to block the malicious program using the Internet Service.First introduced the prin2 ciple of CAPTHA design,then analyzed the defect may be used by attacker.The flow of CAPTCHA defeat proposed,described the detail defeat steps.We test our method with a real CAPTCHA system on the Internet,the success rate reach99%.
Ke y Words noise remove,CA PTCHA,automatic recognition
Class Nu m ber TP391.43
微计算机信息
1 引言
CA P TCHA(Completely Automated Public Turing test to tell Comp uters and Humans Apart)全自动区分计算机和人类的图灵测试,是用来区分对方到底是人还是计算机程序而设置的一种验证措施。常见的是网站中广泛使用的验证码校验技术,它主要用于以下方面[1]:
1)阻止垃圾广告信息。许多博客留言都被人使用程序发布一些不相关的垃圾广告信息,使用验证码可以使得只有人能够留言而阻止程序的自动留言;
2)保护网站注册。一个自动注册的程序可以自动批量注册上千个免费邮箱,用作病毒发布。使用验证码可以保护网站注册;
3)在线投票系统。防止某些人为了达到自己期望的投票结果,使用程序来刷票。
通过使用验证码,用户必须通过验证码测试验证后才能进行后面的操作。从而可以达到阻止恶意程序对网络服务的滥用。
2 相关研究
国内外已经有许多机构对验证码的设计和识别进行了研究,文献[2]对验证码的设计提出了一些建议,并提供re2CA P TC HA R项目的动态连接库和代码的下载;文献[3]主要研究了如何对微软验证码的分割,成功的分割率达到了90%;文献[4]提出了利用外形上下文来进行匹配,提出了复杂的识别算法,
并对具有纹理背景和杂波干扰的验证码进行识别测试,对具有纹理背景的验证码识别率可以达到92%,对杂波干扰的验证码识别率达到33%;文献[5]通过凹凸分析来识别手写体的数字字符;文献[6]利用数字的外部轮廓来识别数字验证码;文献[7]设计了高效的验证码自动识别算
3收稿日期:2009年12月13日,修回日期:2010年1月20日作者简介:唐娅琴,女,硕士研究生,讲师,研究方向:图像处理。
2010年第5期计算机与数字工程117
 法,分析了算法中影响识别率的重要参数以及算法优化,并对国内的论坛验证码类型进行了实验和分析,达到30%~93%的识别率。
3 验证码的设计原理
由于验证码系统是用来区分人与机器的程序,所以许多难以解决的人工智能问题都可以用来作为验证码。目前使用最广泛的是提供一张图片,要求用户输入图片上的文字。如果输入的文字在服务器验证通过,则认为有效的请求,否则请求被拒绝。为了阻止程序对图片上的文字识别成功,通常
会对文字做以下处理:1)添加干扰点,干扰线,或添加图片背景,如图1所示;2)使得文字相互连接甚至部分重叠,人眼可以很容易分辨出文字,但是计算机却难以分割各个字符,如图2所示;3)扭曲图片上
的文字,增加识别难度,如图3所示
良好的验证码生成必须满足以下条件:
1)生成算法要足够强,至少要包括噪音,字符扭曲旋转,字符连接。还可以添加3D 字符,重叠字符等等;
2)可用性与安全性,人可以容易识别但当前技术水平下计算机难以识别;
3)验证过程要正确。一般来说,验证过程需要先产生一个Session 并获得一个随机数,然后用1)的算法生成随机数的字符,之后显示回来。用户输入验证码后,对这个随机数进行验证。如果验证码的显示用户看不清,则可以在Seesion 内重新生成随机数,重新返回验证图像。
4 验证码的破解
根据验证码的设计原理,我们提出破解的流程。首先对待破解的验证码的特点进行分析,出其设计上的特点。其次,对图片进行去噪处理,去除干扰点,干扰线和背景,对图片二值化,然后使用分割算法分割出独立的字符。最后,将分割出的字符与模版匹配得出结论,判别是什么字符。下面我们以图2为例详细说明识别步骤:4.1 验证码特点分析
分析图2验证码,我们发现它具有以下特点:
论文下载1)验证码只使用了英文字母和数字,只使用了一种字体,每个验证码使用了5个字符。
2)验证码背景与文本的亮度差别较大,这使
得我们很容易去除背景。
3)验证码具有干扰线,其位置随机,但大致方向水平。4.2 去噪
分析图2可知,由于其背景的亮度与文字的亮度差别较大,这样我们就可以通过设定亮度域值的方法来对它进行二值化处理:对大于域值的像素点以白点代替,而小于该域值的点以黑点代替。域值的设定可以通过实验得知,我们采取50个样本,取能够去除背景同时保留文本效果最好的值。二值化后得到只有黑白两的图片,背景图片得到有效去除,但是仍然存在不是文本的干扰线。对于干扰线的去除,我们通过对水平方向长度超过图片二分之一的线直接去除,因为图片文字本身宽度不可能超过二分之一的图片大小。对图2验证码2去
噪后,我们得到图4结果。
4.3 分割
先在x 轴方向进行分割,对x 轴上每一点,统计y 坐标方向上黑点数目。当黑点数目少于设定的域值时候,认为是字符间的空白间隔区,而黑点数目大于设定的阈值时候则认为是字符区。
红杏枝头春意浓txt由于有时候存在字符相连的情况,为了避免将两个相连的字符分割失败,我们对字符的最大宽度和最小宽度也作了设定:当宽度大于最大宽度时候,即认为是两个字符,此时需要将分割得到的字符继续进行分割;如果分割得到的字符宽度小于我们设定的最小宽度,则需要进行合并邻近的两个分割。利用同样的方法可以进行y 轴方向上的分割。
由于验证码文字的随机性,我们对分割得到的单个字符进行进一步的边框确定。即通过对水平和垂直方向扫描,确定出单个字符的边框。
对图2验证码分割后得到的结果如图5所示。4.4 识别
我们识别的最后步骤是用分割得到的字符与模版进行匹配,匹配程度最高模版库中的字符被认为是识别的结果。
李培根记忆模版库的建立,先从网络上获得验证码的样本,建立验证码字符样本空间。比如为字母A ~Z 和数字0~9。对于每一个样本,我们提取特征,建立模版。模版的建立算法我们采用了文献[8]中采
118 唐娅琴:验证码的设计与破解探讨第38卷
用的方法。
首先使用双线性插值算法将切割得到的图片插值到固定的长宽。将字符从水平方向进行扫描,那么每条扫描线都是由黑点或者白点构成的序列。如果将白点表示为0,黑点表示为1,则每条水平扫描线可以用一个向量表示[8]。将向量分类为23种模式,比如模式0表示长的空白段,而模式1代表长的黑点段。模式2表示一段相对长的白点之后跟着一段黑点。如图6所示。
将得到的每个向量对应23种类型中的一种,如果我们对每个字符垂直方向等间距水平扫描12次,那么每个字符的特征表示为12个编码类型码的序列。如图7所示,数字7的编码为128888699979。
用上述的编码方法分别对模版与待识别的字符进行编码,然后计算模版与待识别字符的编码的相似度。取相似度最高的模版字符为识别的结果
5 结语
利用我们提出的识别方法对实际网站上下载的
600张验证码进行识别,识别结果超过97%。识别
速度上,利用Intel Core Duo CPU RAM 达到每分钟识别250张,平均识别一张需要60/250=0.24s 。
可见,该网站使用的这一类型的验证码并不能有效的阻止程序的自动识别。
参考文献
[1]Per 2Ola Kristiansson.Defeating a simple CA PTCHA
using Optical Character Recognition[EB/OL ].http ://www.cs.chalmers.se ,2007
[2][EB/OL ].http ://www.captcha/
[3]J.Yan ,A.S.EI Ahmad.A Low 2cost Attack on a Mi 2
crosoft CA PTCHA[M ].School of Computing Science Technical Report ,Newcastle University ,England ,2008
[4]G.Mori ,J.malik.Recognizing Objects in Adversarial
Clutter :Breaking a Visual CA PTCHA [C ]//Proceed 2ings of the IEEE Conference on Computer Vision and Pattern Recognition (CV PR ),2003
[5]龚才春,刘荣兴.基于整体特征的快速手写体数字字符
识别[J ].计算机工程与应用,2004,40(19):82~83
[6]潘大夫,汪渤.一种基于外部轮廓的数字验证码识别方
法[J ].微计算机信息,2007,23(9):256~258
[7]文晓阳,高能,夏鲁宁,等.高效的验证码识别技术与验
证码分类思想[J ].计算机工程,2009,35(8):186~188
[8]N.vazquez ,M.Na Kano ,H.perez_Meaza.Automatic
System Localization and Recognition of vehicle plate Numbers[J ].Journal of Applied Research and Tech 2nology ,2003,1(1):63~77
(上接第91页)
软件运行WinCE5.0操作系统的高准确度电力参数测量系统。本测量系统的软硬件平台具有方便的可扩展能力,和强大的运算处理能力,能够达到较高测量精度。如果在其硬件和软件的基础上扩展不同的功能,则可以完成诸如电能表校验、电能质量监测等任务。此测量系统可以作为对电力系统中电网信号分析和电能表校验的一个便携式通用平台。
参考文献
[1]肖湘宁.电能质量分析与控制[M ]北京:中国电力出版
社,2004
[2]王绍辉,肜瑶,李海霞,等.DSP +ARM 在电能质量监
测系统中的应用[J ].信阳师范学院学报(自然科学版),2008(1):15~17
[3]李圣清.电网谐波检测方法的综述[J ].高电压技术,
律师执业管理办法2004(3):39~42
氢的同位素
[4]于庆广,付之宝.电能质量指标及其算法的研究[J ].电
力电子技术,2007,41(1):12~14
[5]Samsung Semiconductor.S3C2440A 322bit CMOS Mi 2
crocontroller User πs Manual ,Revision[Z].2004[6]何宗键.Windows CE 嵌入式系统[M ].北京:北京航空
航天大学出版社,2007
[7]周立功,等.ARM &WinCE 实验与实践—基于S3C2410
[M ].北京:北京航空航天大学出版社,2007
[8]汪兵,等.Windows CE 嵌入式高级编程及其实例详解
(使用C ++实现)[M ].北京:水利水电出版社,2008[9]张勇,曾炽祥,许波.Windows CE 应用程序设计[M ].
西安:西安电子科技大学出版社,2008
[10]费业泰.误差理论与数据处理[M ].北京.机械工业出
版社,2000

本文发布于:2024-09-20 15:21:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/698062.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:验证码   字符   进行   识别   使用   分割   得到
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议