一种基于通用对抗扰动的图像验证码生成方法及系统
文献发布时间:2023-06-19 09:40:06
技术领域
本发明涉及图像验证码领域,特别是涉及一种基于通用对抗扰动的图像验证码生成方法及系统。
背景技术
验证码,又称为全自动区分计算机和人类的图灵测试(Completely AutomatedPublic Turing Test to Tell Computers and Humans Apart,CAPTCHA),是一种区分用户是计算机或人的计算程序。这种程序能生成一种测试,人类能很容易通过这种测试但计算机却很难通过。验证码的目的是防止采用计算机系统的自动攻击行为,例如用户经常在用户登录或留言系统中使用验证码,当输入用户名和口令或者输入留言以后,还需要进一步输入验证码,这可以有效避免利用计算机自动暴力破解口令、自动刷票、自动发帖等恶意行为。
图像验证码是一种应用广泛的验证码,原来的图像验证码主要通过对验证码图像进行旋转变形、对验证码图像添加背景噪声以及对验证码图像添加对抗扰动等方法来阻止计算机的自动识别。但是随着深度学习的发展和应用,卷积神经网络模型识别图像的能力大大提升甚至已经超越了人类,这使得基于深度学习的计算机程序的自动识别攻击成为可能,能够攻击现阶段的验证码保护方法,因而传统的图像验证码已不再安全,无法防止通过计算机程序自动进行的攻击行为例如暴力破解口令、自动刷票、自动发帖,从而对网站和用户的安全造成严重的威胁。
发明内容
本发明的目的是提供一种基于通用对抗扰动的图像验证码生成方法及系统,通过在验证码的图像上添加通用对抗扰动,可以抵御卷积神经网络的自动识别攻击,提高图像验证码的安全性。
为实现上述目的,本发明提供了如下方案:
一种基于通用对抗扰动的图像验证码生成方法,包括:
获取验证码的图像合集;所述图像合集包括不同类型的图像;
根据所述图像合集中的所有图像生成一个通用对抗扰动;
根据所述图像合集随机选择一个图像类型,作为待验证的图像;
根据所述待验证的图像确定提问信息;所述提问信息包括文字、未添加通用对抗扰动的图像、添加通用对抗扰动的图像或图像与文字组合;
根据所述提问信息从所述图像合集中筛选出候选图像合集;所述候选图像合集包括第一设定数目的符合所述提问信息的图像和第二设定数目的不符合所述提问信息的图像;
将所述的通用对抗扰动分别添加到所述候选图像合集中每一图像;
根据添加通用对抗扰动后的候选图像集合以及所述提问信息确定验证码测试用例;所述验证码测试用例用于进行客户端计算机用户的测试。
可选的,所述根据所述图像合集中所有图像生成一个通用对抗扰动,具体包括:
基于deepfool的方法,根据所述图像合集中的每一个图像,分别迭代计算获得在卷积神经网络中每一图像产生错误分类所需要的扰动向量;所述扰动向量包括模最小的扰动向量或者跟当前叠加结果方向最相近的扰动向量;
将所有的扰动向量进行叠加确定所述图像合集的通用对抗扰动。
可选的,所述将通用对抗扰动添加到所述候选图像合集中的每一图像,具体包括:
将所述的通用对抗扰动的每一个像素值都分别与所述候选图像合集中的每一图像的对应像素值进行相加,确定新像素值;
判断所述新像素值是否大于255;
若大于,则将所述新像素值确定为255;
若不大于,则对所述新像素值不做处理。
可选的,所述根据添加通用对抗扰动后的候选图像集合以及所述提问信息确定验证码测试用例,具体包括:
将所述提问信息放入所述验证码测试用例的提问信息区域;
将所述添加通用对抗扰动后的候选图像集合放入所述验证码测试用例的候选图像区域。
一种基于通用对抗扰动的图像验证码生成系统,包括:
验证码的图像合集获取模块,用于获取验证码的图像合集;所述图像合集包括不同类型的图像;
通用对抗扰动生成模块,用于根据所述图像合集中的所有图像生成对应的通用对抗扰动;
待验证的图像确定模块,用于根据所述图像合集随机选择一个图像类型,作为待验证的图像;
提问信息确定模块,用于根据所述待验证的图像确定提问信息;所述提问信息包括文字、未添加通用对抗扰动的图像、添加通用对抗扰动的图像或图像与文字组合;
候选图像合集确定模块,用于根据所述提问信息从所述图像合集中筛选出候选图像合集;所述候选图像合集包括第一设定数目的符合所述提问信息的图像和第二设定数目的不符合所述提问信息的图像;
添加通用对抗扰动后的候选图像集合确定模块,用于将所述的通用对抗扰动分别添加到所述候选图像合集中每一图像;
验证码测试用例确定模块,用于根据添加通用对抗扰动后的候选图像集合以及所述提问信息确定验证码测试用例;所述验证码测试用例用于进行客户端计算机用户的测试。
可选的,所述通用对抗扰动生成模块具体包括:
扰动向量获取单元,用于基于deepfool的方法,根据所述图像合集中的每一个图像,分别迭代计算获得在卷积神经网络中每一图像产生错误分类所需要的扰动向量;所述扰动向量包括模最小的扰动向量或者跟当前叠加结果方向最相近的扰动向量;
通用对抗扰动确定单元,用于将所有的扰动向量进行叠加确定所述图像合集的通用对抗扰动。
可选的,所述添加通用对抗扰动后的候选图像集合确定模块具体包括:
新像素值确定单元,用于将所述的通用对抗扰动的每一个像素值都分别与所述候选图像合集中的每一图像的对应像素值进行相加,确定新像素值;
判断单元,用于判断所述新像素值是否大于255;
判断结果第一处理单元,用于若大于,则将所述新像素值确定为255;
判断结果第二处理单元,用于若不大于,则对所述新像素值不做处理。
可选的,验证码测试用例确定模块具体包括:
验证码测试用例的提问信息区域确定单元,用于将所述提问信息放入所述验证码测试用例的提问信息区域;
验证码测试用例的候选图像区域确定单元,用于将所述添加通用对抗扰动后的候选图像集合放入所述验证码测试用例的候选图像区域。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种基于通用对抗扰动的图像验证码生成方法及系统,在验证码的图像上添加通用对抗扰动,添加通用对抗扰动后图像质量几乎不会发生变化,不影响人类的识别,因而不会影响用户的体验,但是却能使卷积神经网络识别精度大大降低,避免了通过计算机程序自动进行的攻击行为例如暴力破解口令、自动刷票、自动发帖的现象,即通过在验证码的图像上添加通用对抗扰动,可以抵御卷积神经网络的自动识别攻击,提高图像验证码的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种基于通用对抗扰动的图像验证码生成方法流程示意图;
图2为图像验证码的组成结构;
图3为本发明所提供的一种基于通用对抗扰动的图像验证码生成系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于通用对抗扰动的图像验证码生成方法及系统,通过在验证码的图像上添加通用对抗扰动,可以抵御卷积神经网络的自动识别攻击,提高图像验证码的安全性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图像验证码的组成结构如图2所示,图像验证码包括提问信息区域和候选图像区域。提问信息区域显示有关的提问信息,候选图像区域包含若干幅图像,其中既包含符合上述提问信息的图像(称为属于答案类别的图像),又包含其他不符合上述提问信息的图像(称为不属于答案类别的图像)。每一次产生的验证码称为验证码测试用例。
测试者需要从每一个验证码测试用例中的候选图像集合中选出所有属于答案类别的一个或多个图像。测试者的选择只有同时满足下面两种情况才能通过验证码测试:首先,正确选出全部属于答案类别的图像;其次,没有错误选择其他不属于答案类别图像。
图1为本发明所提供的一种基于通用对抗扰动的图像验证码生成方法流程示意图,如图1所示,本发明所提供的一种基于通用对抗扰动的图像验证码生成方法,包括:
S101,获取验证码的图像合集S={x
S102,根据所述图像合集中所有图像生成对应的通用对抗扰动。
S102具体包括:
基于deepfool的方法,根据所述图像合集中的每一个图像,分别迭代计算获得在卷积神经网络中每一图像产生错误分类所需要的扰动向量;所述扰动向量包括模最小的扰动向量或者跟当前叠加结果方向最相近的扰动向量;
将所有的扰动向量进行叠加确定所述图像合集的通用对抗扰动。
S103,根据所述图像合集随机选择一个图像类型,作为待验证的图像。
S104,根据所述待验证的图像确定提问信息;所述提问信息包括文字、未添加通用对抗扰动的图像、添加通用对抗扰动的图像或图像与文字组合。
作为一个具体的实施例,待验证的图像为猫,那么提问信息为:(1)利用猫的信息生成提问信息,如“请从下列候选图中选出含有猫的图像”;(2)利用猫的图像本身作为提问信息或者再补充添加文字信息,如“请从下列候选图中选出包含与右图相似物品的图像”;(3)把猫的图像添加通用对抗扰动,利用添加通用对抗扰动后的猫的图像本身生成提问信息或者再补充添加文字信息,如“请从下列候选图中选出包含与右图相似物品的图像”。
S105,根据所述提问信息从所述图像合集中筛选出候选图像合集;所述候选图像合集包括第一设定数目的符合所述提问信息的图像和第二设定数目的不符合所述提问信息的图像。
作为具体的一个实施例,图像集合A={a
根据图像集合A={a
S106,将所述通用对抗扰动分别添加到所述候选图像合集中每一图像。
S106具体包括:
将所述的通用对抗扰动的每一个像素值分别与所述候选图像合集中的每一图像的对应像素值进行相加,确定新像素值;
为了保证上述新像素值在[0,255]的合理区间,判断所述新像素值是否大于255。
若大于,则将所述新像素值确定为255。
若不大于,则对所述新像素值不做处理。
S107,根据添加通用对抗扰动后的候选图像集合以及所述提问信息确定验证码测试用例;所述验证码测试用例用于进行客户端计算机用户的测试。
S107具体包括:
将所述提问信息放入所述验证码测试用例的提问信息区域。
将所述添加通用对抗扰动后的候选图像集合放入所述验证码测试用例的候选图像区域。
图3为本发明所提供的一种基于通用对抗扰动的图像验证码生成系统结构示意图,如图3所示,本发明所提供的一种基于通用对抗扰动的图像验证码生成系统,包括:验证码的图像合集获取模块301、通用对抗扰动生成模块302、待验证的图像确定模块303、提问信息确定模块304、候选图像合集确定模块305、添加通用对抗扰动后的候选图像集合确定模块306以及验证码测试用例确定模块307。
验证码的图像合集获取模块301用于获取验证码的图像合集;所述图像合集包括不同类型的图像。
通用对抗扰动生成模块302用于根据所述图像合集中的所有图像生成对应的通用对抗扰动。
待验证的图像确定模块303用于根据所述图像合集随机选择一个图像类型,作为待验证的图像。
提问信息确定模块304用于根据所述待验证的图像确定提问信息;所述提问信息包括文字、未添加通用对抗扰动的图像、添加通用对抗扰动的图像或图像与文字组合。
候选图像合集确定模块305用于根据所述提问信息从所述图像合集中筛选出候选图像合集;所述候选图像合集包括第一设定数目的符合所述提问信息的图像和第二设定数目的不符合所述提问信息的图像。
添加通用对抗扰动后的候选图像集合确定模块306用于将所述通用对抗扰动分别添加到所述候选图像合集中每一图像。
验证码测试用例确定模块307用于根据添加通用对抗扰动后的候选图像集合以及所述提问信息确定验证码测试用例;所述验证码测试用例用于进行客户端计算机用户的测试。
所述通用对抗扰动生成模块302具体包括:扰动向量获取单元和通用对抗扰动确定单元。
扰动向量获取单元基于deepfool的方法,根据所述图像合集中的每一个图像,分别迭代计算获得在卷积神经网络中每一图像产生错误分类所需要的扰动向量;所述扰动向量包括模最小的扰动向量或者跟当前叠加结果方向最相近的扰动向量。
通用对抗扰动确定单元用于将所有的扰动向量进行叠加确定所述图像合集的通用对抗扰动。
所述添加通用对抗扰动后的候选图像集合确定模块306具体包括:新像素值确定单元、判断单元、判断结果第一处理单元以及判断结果第二处理单元。
新像素值确定单元用于将所述的通用对抗扰动的每一个像素值都分别与所述候选图像合集中的每一图像的对应像素值进行相加,确定新像素值;
判断单元用于判断所述新像素值是否大于255。
判断结果第一处理单元用于若大于,则将所述新像素值确定为255。
判断结果第二处理单元用于若不大于,则对所述新像素值不做处理。
验证码测试用例确定模块307具体包括:验证码测试用例的提问信息区域确定单元和验证码测试用例的候选图像区域确定单元。
验证码测试用例的提问信息区域确定单元用于将所述提问信息放入所述验证码测试用例的提问信息区域。
验证码测试用例的候选图像区域确定单元用于将所述添加通用对抗扰动后的候选图像集合放入所述验证码测试用例的候选图像区域。
本发明提供的一种基于通用对抗扰动的图像验证码生成方法及系统具有以下优点:
(1)不影响用户使用验证码的体验:在验证码图像上添加通用对抗扰动后图像质量几乎不会发生变化,不影响人类的识别,因而不会影响用户的体验,但是却能使卷积神经网络识别精度大大降低。
(2)有效保护图像验证码的安全:通用对抗扰动具有迁移性,也就是说由一个卷积神经网络模型结构产生的通用对抗扰动,不仅可以破坏这个卷积神经网络模型的识别精度,而且也可以使其他卷积神经网络模型的识别精度大大降低。根据这个特性,由一个卷积神经网络模型结构产生的通用对抗扰动,添加到验证码的图像中后,可以避免被包括自身在内的所有卷积神经网络模型准确识别出来,因此可以对抗任一种卷积神经网络模型的自动识别攻击,从而有效保护图像验证码的安全。
(3)提高图像验证码的生成效率:通用对抗扰动可以事先生成,然后直接添加到图像中,不需要实时计算,因此提高了图像验证码的生成效率。
(4)易于维护:产生通用对抗扰动时,它的内容与输入的图像内容及其排列顺序有关,可以采用不同的图像集合或者相同的图像集合不同的排列顺序来产生不同的通用对抗扰动,因此易于更换以保证安全性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
- 一种基于通用对抗扰动的图像验证码生成方法及系统
- 一种基于对抗学习的图像对抗验证码生成方法和系统