验证码的种类,以及每种验证码的属性和功能 验证代码是什么?完全自动化的公共图灵测试告诉计算机和人自动是一个自动程序,区分用户和个人。灌溉等,可以有效防止一些恶意用户对某些用户或网站使用暴力破解等手段不断进行非法攻击。验证码设计的最初目的是由计算机生成和判断。但是只有合法用户才能回答问题,如果答案不能被回答,如果用户被裁定为非法的话,验证码的功能是什么?CAPTCA的出现并不是一种功能要求,它不能带来业务能力的提高,更不用说任何价值了。2002年路易斯安那·冯·安首次提出了一个名为“验证码”的程序概念,它只解决了一种恶意计算机攻击。这是一个指向请求的发起者并提出问题的程序,正确的答案是人。 这个程序是基于一个重要的假设,即所提出的问题很容易被人类回答,而机器无法回答它们。这对机器来说是一项艰巨的任务,但对人类来说相对来说是可以接受的。Yaho迅速使用图形验证代码来解决长期困扰雅虎的垃圾邮件问题。从那时起,图形化和其他类似的验证代码开始增长。 随着互联网的发展,几乎所有的计算机系统都在使用验证码机制,而验证码也已经因此经过了无数次的进化,如今已经演变出了各种类型 1、图片验证码:图片验证码是人们第一次使用的标准型的验证码,它基于当时机器难以处理复杂的计算机视觉识别问题,而人类却可以轻松的识别来区分人类及机器。这种验证码主要是利用人类知识容易解答,而计算机难以解答的机制进行人机判断。目前为了增加验证码对抗效果,图片验证码采用方式有添加干扰线、文字粘连、背景色混淆、字体扭曲、空心字体等。 2、知识型问题验证码虽然图片验证码采用了很多种方式来防止机器识别,但是很遗憾无论是那一种都有相当成熟的对抗办法了,所以图片验证码基本要退出历史舞台了。这一类的验证码通常采用普通人都熟知的问题,如1+1等于几、今天是星期几等。 3、动作型验证码(无知识型验证码)动作型验证码主要有“勾选验证”“滑动验证”等,目前这种验证码已经不是新事物了,这种验证码对于用户体验是非常好的,采用了行为的方式,淘宝和 google都曾今使用过这种验证吗,曾在一段时间内也是很多大型网站采用的一种验证方 4、短信验证码:短信验证码是通过发送验证码到手机,用户在网站填写收到的验证码,验证用户的正确性。在大型网站尤其是购物网站甚至是银行网站,都提供有短信验证码功能,可以比较准确和安全地保证购物的安全性,短信验证码是目前最有效的验证码系统之当然这种验证码也并不是牢不可破的,这种验证方式刚开始的确是一个最有效最直接的办法,但是最近几年,随着某些地方开始大规模的使用猫池和特殊的零月租手机卡,这种方法的实用性也大打折扣。 5、用户信息型验证码:此类验证码比较不容易破解,它是将用户注册时填写的信息和其他非本用户的同类型的信息放在一起让用户选择,通过比对结果判断是否是该用户的。例如,验证码是判断下列邮寄地址哪一个是你的,然后列出6个,其中一个是用户真实的地址,其他都不是本用户的地址,这样用户体验也极佳,同时也能很好的区分用户和机器。 图片验证码破解:图片验证码是最容易破解的,主要分为数字型、字符型、符号型、综合型这几种,下面介绍数字和字符型验证码破解方法,主要以下几个步骤。 获取验证码:通过查看源码将图片验证码下载到本地。去背景及干扰线等把图片中某种颜色数量最多替换为白色,相当于去除背景,如果某个像素和周围四个像素点中的两点或三点颜色差别较大,就使用滤波算法去掉该噪点。 取出字模:接下来就是建立这类验证码的特征库。通过下载多张验证码图片,将里面的0-9字符和A-Z大小写的分割保存。 二值化:要二值话就要设置一个阀值,如果某一个像素大于这个阀值就将该像素替换称1,否则用0表示。 计算特征:把要识别的图片,进行二值化,然后分割为一个个小图片得到图片特征码。 对照样本识别:把图片特征码和验证码的字模进行对比,得到验证图片上的数字或字母,如果识别错误,同时某字母或数字具有特殊性,就将该字母或数字制作称字模存如特征库,那么再出现类似的就可以正确识别了使用目前这种方法,对验证码的识别基本上可以做到 100% 知识型问题验证码破解:这种知识验证码通常都是使用题库来做的,而且数量有限,它的破解方式相对简单。编写机器代码通过批量刷新从而建立题库答案对照表,然后使用正则表达式从网页里抓取问题主体,最后在题库中匹配相应的答案即可,现在基本淘汰了这样的验证码。 动作型验证码破解:动作型的验证码的原理是需要用户使用某种动作如滑动点击等等,所以破解此类验证码的主要思路就是模拟用户动作,其实生成一个不被机器判定为作弊的滑动动作要比识别图片之类的难度小很多,特别是hml5支持 canvas后。例如滑块这个动作其实很容易模拟,首先判断验证码在什么时候出现,然后判断验证码何时加载完成,通过x轴和Y轴确定验证码的位置,之后使用程序模拟拖动验证码当然对于此类验证码也有相应时间滑动的速度和阈值等需要考虑,这个需要大量的测试,尽量模拟人的滑动动作即可 短信验证码的破解:短信验证码破解有两种,当然都是基于不同的目的,一种是针对用户,在用户的手机植入木马来获取短信内容,这一类是主要用于盗取用户的资料或其他东西,这种的比较少且定向性强。另一种主要是针对网站,使用猫池和特殊的手机卡来大量注册需要用手机号注册的网站和平台,然后通过这些耍赖的账号来刷单或者做其他违规的事情 用户信息型验证码:这种验证码只能使用撞库的方式。撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户 无论什么验证码都必须考虑安全性和用户体验。但如果真的做好在安全性和良好体验之间的平衡,需要同时在两个方面都下功夫,才能保证整体的安全水位。当然希望不要再出现“程序员:熬一晚上升级,攻击者熬一晚上破解,程序员:熬两晚上升级,攻击者;熬两晚上破解”这样的心疼场景。 |