基于自然图像混合的验证码
2017-03-23张砚枫寇玉龙金玉
张砚枫,寇玉龙,金玉
(辽宁科技学院 电气与信息工程学院,辽宁 本溪117004)
基于自然图像混合的验证码
张砚枫,寇玉龙,金玉
(辽宁科技学院 电气与信息工程学院,辽宁 本溪117004)
文章提出了一种基于自然图像混合技术的验证码方案,将前景图像与自然场景背景图像深度融合,防止恶意程序自动地将前景图像从整幅图像中分离出来并进行识别,可有效区分操作者是人还是计算机,有效保障网络应用系统的安全。
验证码;图像验证码;图像混合
在目前的网络应用系统中,有效区分操作者是人还是计算机是一个重要任务,而完成这项任务几乎只有一种手段,那就是验证码。优秀的验证码可以有效防止刷票、抢票、刷页、灌水、暴力破解口令等恶意行为。
到目前为止,已经出现了众多的验证码方案,如文本图像验证码、动画验证码、视频验证码等。应用最多的文本图像验证码方案〔1-3〕基本上都是在带噪声背景上随机排列扭曲、变形、粘连的数字、字母、中文字符串,如果回答正确,则认为操作者是人而不是计算机。但是这样的验证码方案都很难抵抗基于字符识别技术的攻击手段〔4〕。动画验证码和视频验证码由于画面的快速变换而大大加大了人类识别的难度,在可用性上大打折扣,在实际应用中很少使用。
12306铁路购票网站采用过多种验证码方案,但都无法阻止抢票软件的横行,因此,12306采用了一种比较新型的验证码〔5-6〕,验证页面给出若干实物图片,要求操作者从中选择符合要求的图片,例如选出所有的“灯笼”。但是,12306的有些实物图片的辨识度低,具有高智能的人类都可能选错,这是12306验证码方案遭非议的最主要原因。另外,12306验证码方案采用的实物图片属于静态样本,且样本总数是有限的,该方案在降低了可用性的情况下,安全性并没有大幅度提高,目前,12306验证码方案已经有了很有效的破解方法。
本文研究并设计了一种新的图像验证码方案,以多幅自然场景图像混合而成的新图像作为背景图像,将待验证图像进行随机的变形、旋转等处理后与背景图像相融合,大大提高不确定性,可有效区分操作者是人还是计算机,具有很强的可用性和安全性。
1 设计思路
本图像验证码方案的背景图像可选择草原、山水、园林、森林等自然场景图像,前景图像可选择花草、树木、动物等自然图像元素,前景图像与自然场景背景图像具有很高的可融合度。
首先,验证码生成程序采用图像处理技术将随机选择的多幅自然场景图像进行混合,混合算法也是随机选择的,还可以进行添加随机噪声的处理,混合后的图像作为验证码背景图像,大大增加了不确定性。
然后,验证码生成程序对随机选择的多幅前景图像进行变形、旋转、缩放、加噪等处理,前景图像的有效元素(如老虎、狮子等的身体部分)具有一定的透明度,其外围则完全透明,并与背景图像进行融合,使前景、背景充分融为一体,大大提高了不确定性,使计算机程序难以自动地将前景图像从自然场景背景中分离出来并进行识别。
在验证时,操作者只要按照要求在融合后的单幅图像中选择出符合要求的前景图像(比如选出所有的“老虎”)即可通过验证。
另外,自然场景图像和前景图像样本库不是静态、有限的,而是动态、可维护的,进一步提高不确定性,增大攻击的难度。
2 设计方案
2.1 程序模块与算法
本验证码方案包含两大程序模块:验证码生成模块、操作者验证模块、样本库维护模块,其中前两个模块面向用户提供服务,后者仅用于系统管理维护人员进行自然场景图像样本和前景图像样本的管理维护。
验证码生成模块的功能是生成用于验证的图像,运行在服务器端,其处理过程如下:
(1)在自然场景图像样本库中随机选择多幅图像;
(2)对选出的多幅自然场景图像进行混合,混合算法是随机选择的,混合后的图像作为背景图像;
(3)对背景图像添加随机噪声;
(4)在多种前景类别中随机选择一种作为合法类别,前景类别可以设置很多种,比如老虎、狮子、猴子、狼、鹿、马、猪等等,随机选择出的合法类别即为验证时对操作者提出的选择要求,比如要求操作者选择出所有的“老虎”;
(5)在前景图像样本库中随机选择至少1个属于合法类别的样本和多个(可以是0个)不属于合法类别的样本,比如随机选择2个不同的“老虎”图像、1个“狮子”图像和2个“猴子”图像;
(6)对选出的多幅前景图像分别进行随机的变形、旋转、缩放、加噪处理;
(7)将处理后的多幅前景图像随机排列并融合到背景图像上,形成一幅融为一体的图像,返回到验证客户端。
在步骤(7)中,要将合法类别的前景图像在背景图像上的位置和大小写入Session,待将来进行操作者验证时使用。
操作者验证模块和客户端脚本相配合,完成操作者验证,验证操作者是人还是计算机程序。验证码生成模块生成的图像呈现在客户端,操作者在客户端通过鼠标“点击”选择符合验证要求的前景元素,由客户端脚本记录“点击”位置,并传送给服务器端的操作者验证模块进行验证。操作者验证模块的处理过程如下:
(1)接收客户端传送来的鼠标“点击”位置参数;
(2)将这些位置参数与Session中保存的合法前景位置和大小进行比较,判断操作者的选择是否正确,如果全部正确则通过验证,否则不通过验证,验证无效。
样本库维护模块用于对自然场景图像样本库和前景图像样本库中的样本进行增、删、改等操作,使样本更加丰富,同时实现样本的动态更新,提高不确定性,增大攻击的难度。
2.2 背景图像处理
自然场景图像的相关信息存储于数据库中的BgImgs表中,表结构如下:
表1 BgImgs表结构
在生成验证码时,需要随机选择多幅自然场景图像进行混合和添加随机噪声,混合算法是随机选择的。当进行两个图像的混合处理时,假设上层图像像素的色彩值为A(A=像素值/255),不透明度为d,下层图像的对应像素的色彩值为B(B=像素值/255),混合后像素的色彩值为C(实际像素值=C*255),每个像素的RGB三原色像素值分别进行处理,则可选的混合算法的名称和计算公式如下(按照公式进行计算时,如果结果小于0则修正结果为0,如果结果大于1则修正结果为1):
(1)不透明度:C=d*A+(1-d)*B
(2)正片叠底:C=A*B
(3)颜色加深:C=1-(1-B)/A
(4)颜色减淡:C=B/(1-A)
(5)线性加深:C=A+B-1
(6)线性减淡:C=A+B
(7)变亮:if B<=A then C=A else C=B
(8)变暗:if B<=A then C=B else C=A
(9)滤色:C=1-(1-A)*(1-B)
(10)叠加:if B<=0.5 then C=2*A*B else C=1-2*(1-A)*(1-B)
(11)柔光:if A<=0.5 then C=(2*A-1)*(B-B*B)+B else C=(2*A-1)*(sqrt(B)-B)+B
(12)强光:if A<=0.5 then C=2*A*B else C=1-2*(1-A)*(1-B)
(13)亮光:if A<=0.5 then C=1-(1-B)/(2*A) else C=B/(2*(1-A))
(14)点光:if A>0.5 then C=max(2*(A-0.5), B) else C=min(2*A,B)
(15)线性光:C=B+2*A-1
(16)实色混合:if A<1-B then C=0 else C=1
(17)差值:C=|A-B|
(18)清除:C=A+B-2*A*B
2.3 前景图像处理
前景图像的相关信息存储于数据库中的FgImgs表中,表结构如下:
表2 FgImgs表结构
在生成验证码时,随机选择的前景图像需经过变形、旋转、缩放、加噪等处理,增大其不确定性。在前景图像与背景图像融合时,前景的有效元素(如老虎的身体部分)采用“不透明度模式”与背景混合,外围部分呈现全透明效果,边缘部分呈现平滑的过渡效果。
3 结束语
本文设计的验证码方案简单易行,可用性强,安全性高,非常适合于网络应用程序的验证码部分,能够有效防止计算机程序自动识别验证码,从而有效防止刷票、抢票、刷页、灌水、暴力破解口令等恶意行为。
〔1〕 叶振.一种新型图像验证码系统〔J〕.数字技术与应用,2014,(8):185-187.
〔2〕 李欢,高岭,刘琳,田斌.基于随机顺序的图形验证码改进算法设计〔J〕.计算机应用,2010,(6):1501-1504.
〔3〕 张涛.基于BMP图片汉字验证码的设计与实现〔J〕.电脑开发与应用,2008,(12):49-51.
〔4〕 尹龙,尹东,张荣,王德建.一种扭曲粘连字符验证码识别方法〔J〕.模式识别与人工智能,2014,(3):235-241.
〔5〕 王雪峰,王明哲,朱建军,祝捷.如何防范针对12306网站的恶意抢票插件〔J〕.铁路计算机应用,2015,(3):26-28.
〔6〕 陈思茹.基于电子商务视角下的交通运输订票网站管理研究——以12306网站验证码为例〔J〕.信息化建设,2016,(4):27.
The CAPTCHA Based on Mixed Natural Image
ZHANG Yan-feng,KOU Yu-long,JIN Yu
(SchoolofElectrical&InformationalEngineering,LiaoningInstituteofScience&Technology,Benxi,Liaoning, 117004)
The paper proposes a CAPTCHA scheme based on the mixed natural background image, and prevents some malwares automatically depart from the whole image and identifies them. So it can distinguish operators between person and machine effectively, and ensure the security of network application.
CAPTCHA; Image CAPTCHA; Mixed image
10.3969/j.issn.1008-3723.2017.01.003
(j)cnki 1008-3723 2017.01.003
2016-12-11
项目来源:国家级大学生创新创业训练计划项目(201611430025).
张砚枫(1995-)男,贵州贵阳人,辽宁科技学院电气与信息工程学院计算机科学与技术专业2013级学生.
TP391.41
A