一种基于对抗学习的图像对抗验证码生成方法和系统与流程

文档序号:15776483发布日期:2018-10-30 15:25阅读:451来源:国知局
一种基于对抗学习的图像对抗验证码生成方法和系统与流程

本发明涉及机器学习模型安全和图像验证码安全领域,尤其涉及一种基于对抗学习的图像对抗验证码生成方法和系统。



背景技术:

验证码是一种人类很容易解决但当前程序很难解决的图灵测试。它被广泛部署在web网页上,可以有效地阻止一些恶意行为,如批量注册僵尸帐号、黑产撞库等。

验证码有很多种类型,其中一种常用的验证码是基于图像识别的验证码,简称图像验证码。图像验证码要求用户在一组图像中正确地选择所有符合特定语义的图像。相较于其他类型的验证码,图像验证码在安全性和可用性两方面有着更好的平衡:图像拥有非常丰富的信息,同一张图像在不同背景下可以有不同的含义,计算机很难自动破解,所以图像验证码的安全性很高;同时人类天生对图像信息敏感,可以很容易识别图像中的语义,因此图像验证码的可用性也很高。在实际中,很多网站已经部署了图像验证码,如12306火车购票网站就是采用图像验证码来阻止黄牛刷票。

然而,近些年来随着机器学习算法尤其是深度学习算法的进步,计算机的图像识别能力突飞猛进,单纯的图像识别对机器而言已经不是难题。在这种情况下,图像验证码的安全性受到了很大的挑战。攻击者可以事先爬取验证码中的图像,然后人工标注这些图像,最后利用这些标注好的图像,通过深度学习算法训练出一个深度图像识别模型来破解图像验证码。同时由于现在无法通过程序自动产生特定语义的图片,图像验证码中使用的图像素材是通过人工在互联网上抓取图片。事实上,由于经济性的考量,图像验证码中使用的图片素材会在一段时间内重复使用,周期性替换。这个事实使得图像验证码更容易被基于深度学习的方法破解。虽然现在也有一些增强手段:如减小图像的分辨率、增加候选图像的数量、频繁更换图像素材等。但这些手段不仅只能略微提升图像验证码的安全性,反而会大幅破坏验证码的可用性或增大经济成本。因此现在迫切需要一种能够兼顾安全性、可用性和经济性的新型图像验证码策略。

事实上,最近的研究发现,深度学习算法本身有致命的缺点。只需要在图像中添加少量特殊的噪音(甚至这些噪音人眼都无法察觉),深度图像识别模型都会将这张修改后的图片的分类错误。而这些特殊的噪音可以通过多种基于对抗学习的方法来产生。不仅如此,大量的研究显示,这一漏洞是深度学习算法的底层缺陷,虽然已经提出了很多的防御方法,但这些方法都只能缓解缺陷。

现有的对抗学习方法是为了探索深度学习算法的漏洞,在产生对抗噪音时,假定的情况是攻击者最优,即攻击者知道目标模型的所有参数且被攻击者不会采用任何防御手段。在这种攻击者最优的设定下,目前基于对抗学习的噪音生成算法期望添加尽可能少的噪音来达到欺骗深度图像识别模型的效果。然而在验证码攻防的环境下,我们作为防御方,却无法提前了解验证码破解者使用的模型参数;甚至破解者在识别图像前会使用图像预处理手段对图像进行处理,去除噪音。这样在图像中添加噪音便不能达到欺骗破解者分类器的效果,现有基于对抗学习的噪音生成方法不能满足对抗验证码防御的需要。



技术实现要素:

本发明提供一种基于对抗学习的图像对抗验证码生成方法,通过对抗学习在图像验证码中添加少量特殊噪音来攻击深度图像识别模型,以削弱验证码破解者攻击能力的方式来保护图像验证码的安全性,和以往被动防御的方法不同,本发明提供了一种主动防御的策略。

本发明提供了如下技术方案:

一种基于对抗学习的图像对抗验证码生成方法,包括以下步骤:

(1)选择一个图像识别神经网络a和攻击算法a,将验证码素材库中的验证码图像作为训练样本,对选择的图像识别神经网络a进行训练;

(2)根据训练的图像识别模型a和攻击算法a,基于对抗学习方法生成图像对抗验证码;

(3)选择一个或多个图像识别模型b,选择一个或多个攻击算法b,根据图像识别模型b和攻击算法b,对步骤(2)中生成的图像对抗验证码进行破解;根据破解结果,调整图像对抗验证码的生成策略;

(4)根据调整好的图像对抗验证码生成策略生成图像对抗验证码。

其中,图像识别模型b可以使用网上已训练好的通用模型,也可以通过验证码素材库中的验证码图像构建的训练集重新训练得到。

对图像验证码的攻击算法一般包括3个环节:验证码分割、图像预处理和图像识别。由于图像验证码作为一个整体,其中包含多张图片,不能直接输入图像识别模型进行识别,因此,首先要分割图像验证码,得到多个只包含单张图片的区域;然后,为了得到更好的识别效果,会对分割得到的图片进行预处理(如图像的归一化和图像滤波);最后将预处理后的图片输出图像识别模型,并根据图像识别模型的识别结果来选择相应的图片。

步骤(1)中,使用的图像识别模型和攻击算法不同,使得步骤(2)中产生的图像对抗验证码的对抗效果也不同。

优选的,所述的图像识别模型a为神经网络分类器;进一步优选的,所述的图像识别模型a为googlenet神经网络、vgg神经网络、alexnet神经网络或resnet神经网络。

以这几种图像识别模型作为攻击模型生成的图像对抗验证码的迁移性较强,对大部分图像识别模型的对抗效果较好。

步骤(2)中,基于对抗学习方法生成图像对抗验证码,包括以下步骤:

(2-i)根据预设条件从图像库中提取相应的图片;

(2-ii)预设人眼可忍受噪音量系数,利用对抗学习方法为提取的图片添加对抗噪音;

(2-iii)将添加对抗噪音后的图片拼接,得到完整的图像对抗验证码。

所述的预设条件包括图像验证码中候选图片的数量、答案图片的数量和答案图片的类别等。

基于对抗学习的噪音生成一般都是迭代过程,每个迭代过程都在逐步增加图像中添加的噪音量。而现有的方法都是希望添加人眼不可见的噪音,迭代的次数很少。但在图像对抗验证码的生成过程中,为了满足安全性的需求,引入了人眼可忍受噪音量系数,该系数代表在产生对抗噪音过程中的迭代次数。

用户可以根据不同的需求对人眼可忍受噪音量系数进行设置,一般而言该系数愈大,产生的图像对抗验证码效果越好,但同时也会更难识别。人眼可忍受噪音量系数的值可以通过实际的观察来设置。这样,就可以在人眼可忍受的范围内,尽可能多地为图片添加对抗噪音,以此获得安全性和可用性高的图像对抗验证码。

由于图像验证码生产有实时性的要求,优选的,步骤(2-ii)中,从提取的图片中随机选择部分图片添加对抗噪音。

进一步优选的,步骤(2-i)包括:根据图像对抗验证码中候选图片的数量m、答案图片的类别t和答案图片数量n,从图形库中随机采样n张属于类别t的图片y1,y2,...,yn,随机采样m-n张不属于类别t的图片x1,x2,...,xm-n。

进一步优选的,步骤(2-ii)中,利用对抗学习方法为提取的图片添加对抗噪音,包括:

从m张候选图片中随机采样d张图片作为需要添加对抗噪音的图片,d小于等于m;

若需要添加对抗噪音的图片属于类型t,则采用untarget方式对其添加噪音;以减少图片被分类为t的置信度;

否则,则采用target方式对其添加噪音;以增加图片被分类为t的置信度。

采用untarget方式对图片添加噪音是指:令原图为x,添加了对抗噪音后的图片为x′,图像识别模型对x′识别的类别不为t,即f(x′)≠t。

采用target方式对图片添加噪音是指:令原图为x,添加了对抗噪音后的图片为x′,图像识别模型对x′识别的类别为t,即f(x′)=t。

步骤(3)中,所述的图像识别模型b可以与图像识别模型a相同也可以不同;所述的攻击算法b可以与攻击算法a相同也可以不同;优选的,所述的图像识别模型b与图像识别模型a不同;所述的攻击算法b与攻击算法a不同。

采用不同的图像识别模型和攻击算法对生成的图像对抗验证码进行模拟破解时,通过调整生成策略得到的图像对抗验证码的迁移性更强,即对不同图像识别模型和攻击算法的适应性更强。

步骤(3)中,所述的调整图像对抗验证码的生成策略是指:调整选择的图像识别模型a、攻击算法a和人眼可忍受噪音量系数等。

本发明基于对抗学习的图像对抗验证码生成方法,以“以子之矛攻子之盾”作为思路,通过对抗学习在图像验证码中添加少量特殊噪音来攻击图像识别模型,从而削弱验证码破解者攻击能力的方式来保护图像验证码的安全性。

本发明还提供了所述的图像对抗验证码生成方法所依据的图像对抗验证码生成系统,包括:

攻击模块,具有图像识别模型库和攻击算法库,为生成模块和评估模块提供图像识别模型和攻击算法;

生成模块,从所述的攻击模块中选择图像识别模型a和攻击算法a,基于对抗学习方法生成图像对抗验证码;

评估模块,从所述的攻击模块中选择图像识别模型b和攻击算法b,对生成的图像对抗验证码进行破解,输出破解结果。

与现有技术相比,本发明的有益效果为:

(1)本发明基于对抗学习的图像对抗验证码生成方法,针对验证码破解常用工具——深度图像识别模型,通过削弱攻击者破解能力的方式来提升图像验证码的安全性;

(2)在不改变原图像验证码形式的基础上,本发明基于对抗学习的图像对抗验证码生成方法可以兼容多种现有的图像验证码;

(3)通过引入人眼可忍受噪音系数,突破原有对抗学习方法的限制,可以在人眼可忍受范围内对图像验证码尽可能多的添加对抗噪音,在不大幅伤害验证码可用性的前提下,大大增强了图像验证码的安全性。

附图说明

图1为基于对抗学习的图像对抗验证码生成系统的架构示意图;

图2为攻击图像验证码的流程示意图;

图3为生成模块的工作流程示意图;

图4为评估模块的工作流程示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。

如图1所示,基于对抗学习的图像对抗验证码生成系统工包括3个模块:攻击模块、生成模块和评估模块。攻击模块用于向生成模块和评估模块提供图像识别模型和攻击方式;生成模块的功能是根据用户请求产生图像对抗验证码;评估模块的功能是利用攻击模块提供的攻击手段模拟生产模块产生的对抗验证码,最后通过模拟破解的结果来评估对抗验证码的安全性。该系统的工作流程如下:

(1)攻击模块的设置:

攻击模块具有图像识别模型库和攻击算法库,在生成图像对抗验证码时所使用的图像识别模型不同,生成的图像对验证码的对抗效果和迁移性也不同,攻击模块图像识别模型库中存储有当前最先进的图像识别模型,例如:googlenet神经网络、vgg神经网络、alexnet神经网络或resnet神经网络。

现有对图像验证码的攻击方法一般包括3个环节:验证码分割、图像预处理和图像识别。

由于图像验证码作为一个整体,其中包含多张图片,不能直接输入图像识别模型。因此,首先要分割图像验证码,得到多个只包含单张图片的区域;然后,为了得到更好的识别效果,需要对分割后的图片进行预处理(如图像的归一化和图像滤波);最后,将预处理后的图片输入图像识别模型,并根据图像识别模型的结果来选择相应的图片。

攻击者的常用攻击方式和图像识别模型有很多,所以在生成图像对抗验证码前需要预先将攻击者的攻击方式和图像识别模型设定好。

(2)图像对抗验证码的生成:

该部分使用攻击模块和生成模块共同完成图像对抗验证码的生成。由于验证码请求是实时的,这对验证码的生成速度有着很高的要求。但是在图像验证码中包含多张图片(一般8-12张),在所有的图片中添加对抗噪音会大大降低验证码的生成速度。因此,为了满足实时性的要求,本发明在产生对抗噪音前,会先确定在哪些图片中添加对抗噪音来加快生成速度。

图像对抗验证码的生成流程如图3所示,包括以下步骤:

(2-1)预设图像对抗验证码的候选图片数量m、答案数量n、答案类别t和人眼可忍受系数k。

人眼可忍受系数是向图像中添加噪音的最小等级,它代表在对抗图像生成时所需要的迭代次数。用户可以根据不同的需求进行设置,一般而言系数愈大,产生的对抗验证码效果越好,但同时也会更难识别。这个系数的大小可以由多次实验评估得到。

(2-2):基于预设信息选择图像素材。

在素材库中,随机采样属于答案类别t的图片y1,y2,...,yn;再从素材库中随机采样不属于答案类别t的图片x1,x2,...,xm-n,将采样得到的m张图片作为图像验证码的候选图片。

(2-3)确定需要添加对抗噪音的图片。

在所有的候选图片中,随机采样d张图像作为需要添加对抗噪音的图像,d小于等于m。由于验证码生产有实时性的要求,所以不建议对验证码中所有的图像添加对抗噪音。只需选择少量的图像添加对抗噪音就可以满足安全性的需求。

(2-4)确定产生对抗噪音的方式。

在采样的到的d张图像中,包括答案图片和干扰图片两种类别,对于这两类不同的图像,将采用不同的方式添加噪音。

如果是答案图片(说明图片的类别是t),我们希望这张图片被攻击者识别为干扰图片。因此采用untarget方式来产生对抗噪音。令原图为x,添加了对抗噪音后的图片为x′,我们的目标是使添加噪音后的图片x′被深度识别模型识别的类别不是t,即f(x′)≠t。

如果是干扰图片(说明图片的类别不是t),我们希望这张图片被攻击者识别为答案图片。因此采用target方式来产生对抗噪音。令原图为x,添加了对抗噪音后的图片为x′,我们的目标是使添加噪音后的图片x′被深度识别模型识别的类别为t,即f(x′)=t。

(2-5):基于对抗学习产生对抗噪音。

一个基于对抗学习的噪音生成算法需要有4个输入:第一个是原图像,第二个是目标类别,第三个是图像识别模型,第四个是人眼可忍受噪音系数。原图像、目标类别和人眼可忍受噪音系数通过人工预设,而图像识别模型由攻击模型提供。

基于对抗学习的噪音生成一般都是迭代过程,每个迭代过程都在逐步增加图像中添加的噪音量。而现有的方法都是希望添加人眼不可见的噪音,迭代的次数很少。但在对抗验证码的生成过程中,为了满足安全性的需求,我们引入了人眼可忍受噪音量系数k,该系数代表在产生对抗噪音过程中,最小的迭代次数。人眼可忍受噪音量系数k的值可以通过实际的观察来设置。这样,就可以在人眼可忍受的范围内,尽可能多的添加对抗噪音,以此获得图像对抗验证码的高安全性和高可用性。

(2-6):生成验证码题目,将所以候选图片整合到一起。

其中验证码题目的设置是基于答案类别t,例如可设置为“在下列图像中,选择所有和t有关的图像”;最后将上述所有图片整合到一个图像验证码中,完成图像对抗验证码的生产。

(3)图像对抗验证码的评估:

该部分需要使用攻击模块、生成模块、评估模块三个部分共同完成。评估模块的功能是利用攻击模块提供的攻击手段模拟生产模块产生的对抗验证码,最后通过模拟破解的结果来评估对抗验证码的安全性。在评估过程中,可以使用不同的图像处理方式和图像识别模型组合成不同的验证码破解方式,通过这种方式可以全面的了解验证码的安全性。

图像对抗验证码的评估流程如图4所示,包括以下步骤:

(3-1)利用攻击模块提供的攻击方式破解生成模块产生的n个图像对抗验证码,并输出破解结果;

一般而言n的选值为1000,这个数量的验证码测试既能充足的反映验证码的安全性,又能在相对较少的时间内完成测试。

(3-2)如果破解结果不达标,则可以适当调整生成图像对抗验证码的策略,如改变人眼可忍受噪音量系数、更换目标图像识别模型等,通过多次评估调整,可以获得更适应环境的生成策略。

以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1