舒 樂,戴佳筑
上海大學(xué) 計(jì)算機(jī)工程與科學(xué)學(xué)院,上海200444
驗(yàn)證碼(Completely Automated Public Turing test to tell Computers and Humans Apart,CAPTCHA)是一種反向圖靈測試,它的作用是保證網(wǎng)站的訪問者確實(shí)是人而不是計(jì)算機(jī)程序,能有效防止計(jì)算機(jī)程序進(jìn)行的破解密碼、自動刷票、自動發(fā)帖等惡意行為。驗(yàn)證碼通常會設(shè)置一類問題,這種問題很容易被人解決,但是對計(jì)算機(jī)程序來說卻是難題[1],比如基于文字/數(shù)字識別的文本驗(yàn)證碼、基于圖像識別的圖像驗(yàn)證碼等。然而深度學(xué)習(xí)的發(fā)展使得這些問題對于計(jì)算機(jī)來說已經(jīng)不算難題,比如性能優(yōu)異的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)模型識別圖像的能力甚至已經(jīng)超越了人類。已經(jīng)有很多通過深度學(xué)習(xí)模型成功破解驗(yàn)證碼的研究[2-5],傳統(tǒng)的驗(yàn)證碼已經(jīng)不再安全。
針對上述問題,有許多研究者致力于研究更加安全的驗(yàn)證碼。其中,針對圖像驗(yàn)證碼的安全性研究分為兩類:第一類是在驗(yàn)證碼中添加背景噪聲或者對驗(yàn)證碼進(jìn)行扭曲變形[6-7];第二類是在驗(yàn)證碼中添加對抗擾動(Adversarial Perturbation)[8]。然而,第一類方法在對驗(yàn)證碼添加背景噪聲或者對驗(yàn)證碼進(jìn)行扭曲變形后,雖然可以在一定程度上保證驗(yàn)證碼中的圖像不被CNN模型識別,但同時對驗(yàn)證碼本身的改變過大,會對人眼的識別造成一定的影響。對抗擾動不同于背景噪聲,它是一種人為生成的、能使得CNN模型以很高的概率輸出錯誤分類結(jié)果的微小擾動向量,對抗擾動通??梢宰龅饺搜鄄灰撞煊X,即不會影響人眼對原圖像的正常識別。在驗(yàn)證碼中添加對抗擾動可以達(dá)到既很難讓機(jī)器識別,又不影響人眼識別的目的。Osadchy等人[8]提出基于不可變對抗噪聲(Immutable Adversarial Noise,IAN)的DeepCAPTCHA,是目前唯一將對抗擾動應(yīng)用到保護(hù)圖像驗(yàn)證碼上的方案。DeepCAPTCHA將IAN添加到驗(yàn)證碼的圖像中使驗(yàn)證碼被CNN模型破解的概率降低。IAN是一種樣本相關(guān)的對抗擾動,該對抗擾動只能對單個樣本產(chǎn)生很好的攻擊效果。圖1是一個DeepCAPTCHA的例子。圖中位于最上方的圖像是提示信息,用于提示候選類別。其余圖像為候選圖像,其中包含屬于候選類別的圖像和不屬于候選類別的圖像,用戶需要從候選圖像中準(zhǔn)確選出所有屬于候選類別的圖像才能通過該驗(yàn)證碼測試。
圖1 DeepCAPTCHA示例Fig.1 Example of DeepCAPTCHA
IAN是和樣本相關(guān)的,DeepCAPTCHA出于對生成驗(yàn)證碼的效率考慮只在提示信息中添加IAN,而所有候選圖像都是未添加對抗擾動的原始圖像。但是這會導(dǎo)致DeepCAPTCHA的安全性不夠高。并且文獻(xiàn)[8]僅僅在結(jié)構(gòu)相對簡單的CNN模型下測試了DeepCAPTCHA的安全性,并未在當(dāng)前主流的CNN模型下進(jìn)行測試。
本文基于通用對抗擾動(Universal Adversarial Perturbation,UAP)[9]提出了一種更加安全的圖像驗(yàn)證碼方案。通用對抗擾動是CNN中一種樣本無關(guān)的對抗擾動,在一組輸入的圖像樣本中添加同一個通用對抗擾動后,能夠使得CNN模型以很高的概率輸出錯誤的分類結(jié)果。本文首先提出了一種快速生成通用對抗擾動的算法FUAP,將方向相似的對抗擾動向量進(jìn)行疊加,加快通用對抗擾動的生成速度并提升通用對抗擾動在白盒攻擊和黑盒攻擊條件下的平均欺騙率。然后基于FUAP算法設(shè)計(jì)了圖像驗(yàn)證碼的保護(hù)方案FEI-CAPTCHA,將通用對抗擾動加入到驗(yàn)證碼的所有圖像(包括提示信息和候選圖像)中,有效降低CNN模型識別的成功率,從而提高圖像驗(yàn)證碼的安全性。通過在ImageNet數(shù)據(jù)集[10]上使用當(dāng)前主流的CNN模型進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明,F(xiàn)EI-CAPTCHA比DeepCAPTCHA更能抵抗基于CNN的識別攻擊。
對于已經(jīng)訓(xùn)練好的CNN模型f,用k?(x)代表其輸入樣本x在最高置信度下的預(yù)測分類結(jié)果,在x中添加人為生成的對抗擾動r,就可以使得模型的預(yù)測分類結(jié)果改變:k?(x+r)≠k?(x)。如圖2所示,以GoogLeNet模型[11]中的對抗擾動為例,原本被該模型以最高置信度分類為espresso(濃咖啡)的樣本,在添加對抗擾動后,卻以最高置信度被分類為pillow(枕頭)。圖中疊加了對抗擾動的樣本被稱為對抗樣本。
圖2 對抗擾動Fig.2 Adversarial perturbation
大多數(shù)對抗擾動是樣本相關(guān)的,即對抗擾動由某個樣本構(gòu)造得來,并只會對該樣本產(chǎn)生很好的攻擊效果,比如由文獻(xiàn)[8,12-14]所提出的算法生成的對抗擾動都是樣本相關(guān)的。而Moosavi-Dezfooli等人[9]提出了一種生成通用對抗擾動(Universal Adversarial Perturbation,UAP)的算法(以下簡稱UAP算法)。通用對抗擾動是樣本無關(guān)的,憑單個通用對抗擾動就能夠?qū)斎隒NN模型的大部分輸入樣本產(chǎn)生很好的攻擊效果,即使其中的大部分樣本并未參與通用對抗擾動的生成。對抗擾動的攻擊效果通常由欺騙率來衡量,欺騙率是指在輸入樣本添加對抗擾動前后模型預(yù)測分類結(jié)果發(fā)生改變的概率,因此對抗擾動的欺騙率越高會導(dǎo)致模型的分類性能下降越多。
UAP算法是一種迭代算法,基于文獻(xiàn)[12]中提出的Deepfool算法來生成通用對抗擾動。Deepfool算法的思想是首先在樣本點(diǎn)x附近的特征空間中找到若干從該樣本點(diǎn)到目標(biāo)CNN模型f決策邊界的向量:
Deepfool算法能生成樣本x的最小對抗擾動。UAP算法通過將由Deepfool算法所生成的各個樣本的最小對抗擾動進(jìn)行疊加來生成通用對抗擾動。但是將各個樣本的最小對抗擾動進(jìn)行疊加并不是生成通用對抗擾動的最好方法。因?yàn)樗B加的最小對抗擾動向量的方向是隨機(jī)的,向量的方向會影響向量疊加后疊加結(jié)果的模的大小。根據(jù)線性代數(shù)的知識,給定向量a和向量b,它們之和的模可以表示為:
其中,cosa,b表示a和b之間夾角的余弦值。從上式可以看出a和b之和的模的大小與cosa,b有關(guān),也即和a和b的之間的夾角有關(guān)。比如當(dāng)a和b具有最小的夾角即方向相同時,它們的疊加結(jié)果具有最大的模;而當(dāng)它們具有最大的夾角即方向相反時,它們的疊加結(jié)果具有最小的模。UAP算法沒有考慮所疊加對抗擾動向量的方向?qū)ΟB加結(jié)果的模的大小的影響,這會導(dǎo)致通用對抗擾動的生成過程變慢。
針對上述UAP算法中存在的不足,本文提出一種改進(jìn)的快速生成通用對抗擾動的算法,稱為FUAP(Fast Universal Adversarial Perturbation)算法,該算法將余弦相似度引入到迭代生成通用對抗擾動的過程中。從公式(3)可見,為了使向量a和向量b之和的模更大,a和b的夾角的余弦值要越大,即a和b的夾角要越小。這說明在迭代生成通用對抗擾動的過程中,如果每一次疊加的對抗擾動向量能和當(dāng)前通用對抗擾動向量具有相似的方向,就可以加快通用對抗擾動的模增長,從而加快生成通用對抗擾動的速度?;谏鲜龇治?,將Deepfool算法的優(yōu)化目標(biāo)做修改,將對抗擾動向量的方向作為優(yōu)化目標(biāo)之一。具體的做法是,在通過公式(1)找到若干從樣本點(diǎn)x到?jīng)Q策邊界的向量之后,從中選擇與當(dāng)前通用對抗擾動vˉ具有最相似方向的對抗擾動向量:
這樣就可以使得通用對抗擾動的模在迭代中得到有效增長從而達(dá)到快速生成的目的。
不同于樣本相關(guān)的對抗擾動,通用對抗擾動的生成需要若干樣本。為了使得最終生成的通用對抗擾動滿足人眼不可察覺的特性,每一次迭代過后需要對當(dāng)前通用對抗擾動進(jìn)行元素值裁剪。具體地,將會限制通用對抗擾動元素值絕對值的L∞范數(shù)上限為ξ。算法的終止條件是當(dāng)?shù)晁袠颖竞?,通用對抗擾動的欺騙率,其中l(wèi)代表測試通用對抗擾動欺騙率的樣本數(shù)。如果F<δ,則在原樣本集上開始新的一輪迭代。為了保證通用對抗擾動的質(zhì)量在每一輪迭代中得到實(shí)質(zhì)性的提升,新一輪迭代開始前會打亂樣本集中樣本的順序。算法的具體流程如下:
算法1FUAP算法
輸入:樣本集X={x1,x2,…,xn},目標(biāo)CNN模型f,預(yù)定的欺騙率δ和L∞范數(shù)的上限值ξ。
輸出:通用對抗擾動v。
步驟1初始化v為零向量,初始化欺騙率F為0。
步驟2打亂樣本集X中樣本的順序,并對其進(jìn)行順序遍歷。
步驟3如果v無法在目標(biāo)模型f上使得樣本xi的分類結(jié)果改變且v為零向量,則生成xi的最小對抗擾動v*(xi)。
步驟4如果v無法在目標(biāo)模型f上使得樣本xi的分類結(jié)果改變且v不為零向量,則生成xi的與v具有最相似方向的對抗擾動v(xi)。
步驟5如果步驟3或步驟4成立,則將v*(xi)或v(xi)疊加到v上并對v進(jìn)行元素值裁剪使其元素值絕對值的L∞范數(shù)小于等于ξ。
步驟6如果X中的樣本遍歷完畢,則重新計(jì)算F,否則遍歷X中的下一個樣本并回到步驟3。
步驟7如果欺騙率F小于預(yù)定值δ,則回到步驟2,否則結(jié)束算法并返回v。
實(shí)驗(yàn)證明,F(xiàn)UAP算法能有效提升通用對抗擾動的生成速度,除此之外,F(xiàn)UAP算法還能提升通用對抗擾動在白盒攻擊和黑盒攻擊條件下的平均欺騙率。
實(shí)驗(yàn)分為兩部分,第一部分對FUAP算法和UAP算法生成通用對抗擾動所需的時間進(jìn)行對比,證明FUAP算法能加速通用對抗擾動的生成;第二部分對由FUAP算法和UAP算法生成的通用對抗擾動在白盒攻擊和黑盒攻擊條件下所能達(dá)到的欺騙率進(jìn)行對比,證明FUAP算法能提升通用對抗擾動在白盒攻擊和黑盒攻擊條件下的平均欺騙率。實(shí)驗(yàn)所用到的卷積神經(jīng)網(wǎng)絡(luò)模型為DenseNet-121、GoogLeNet、Vgg-16和ResNet-50。用于生成通用對抗擾動的樣本集為從ILSVRC2012訓(xùn)練集中隨機(jī)選取的10 000個樣本,其中每個類別固定10個樣本,測試集為ILSVRC2012驗(yàn)證集,一共包含50 000個樣本,用來測試通用對抗擾動的欺騙率。
首先比較FUAP算法和UAP算法在生成通用對抗擾動所需時間上的差異。將上述4個模型分別作為目標(biāo)模型,用FUAP算法和UAP算法生成通用對抗擾動,并將所生成的通用對抗擾動在目標(biāo)模型上達(dá)到預(yù)定欺騙率的時間點(diǎn)記錄下來。實(shí)驗(yàn)所用的GPU為NVIDIA GeForce GTX 1050Ti,CPU為AMD Ryzen 5 2600X 3.6 GHz。因?yàn)樵谄垓_率低于50%時,兩種算法的生成速度都很快,所以選取欺騙率在50%以上,每隔5%節(jié)點(diǎn)做記錄。每迭代500個樣本測試一次通用對抗擾動的欺騙率。通用對抗擾動的范數(shù)越大雖然會使得其攻擊效果越好,但是也會增加通用對抗擾動的人眼可見度,為了保證所添加的通用對抗擾動人眼不易察覺,設(shè)定所有通用對抗擾動元素值絕對值的L∞范數(shù)上限為10。兩種算法的生成時間對比見圖3。
圖3 兩種算法的生成時間對比Fig.3 Comparison of computation time for FUAP algorithm and UAP algorithm
實(shí)驗(yàn)結(jié)果表明,在所有測試模型上,F(xiàn)UAP算法只需要更少的時間就能生成達(dá)到預(yù)定欺騙率的通用對抗擾動,證明了FUAP算法能加速通用對抗擾動的生成。
下面比較由FUAP算法和UAP算法生成的通用對抗擾動在白盒攻擊和黑盒攻擊條件下的欺騙率。其中,白盒攻擊即攻擊方具有充分的知識,包括目標(biāo)模型的結(jié)構(gòu)、參數(shù)以及訓(xùn)練數(shù)據(jù)集等;黑盒攻擊即攻擊方具有十分有限的知識,比如目標(biāo)模型的結(jié)構(gòu)或者部分訓(xùn)練數(shù)據(jù)集,但對模型的參數(shù)一無所知。具體地,針對目標(biāo)模型(比如GoogLeNet)生成的通用對抗擾動,其白盒攻擊效果在目標(biāo)模型(GoogLeNet)上進(jìn)行測試得來,而黑盒攻擊效果則在非目標(biāo)模型(比如ResNet-50)上進(jìn)行測試得來。通用對抗擾動的黑盒攻擊效果也代表了其遷移性的強(qiáng)弱。實(shí)驗(yàn)所用的CNN模型為上述4個模型。為了獲得未知的欺騙率上限,將兩個算法的預(yù)定欺騙率均設(shè)置為100%,當(dāng)欺騙率不再上升時結(jié)束算法。設(shè)定所有通用對抗擾動元素值絕對值的L∞范數(shù)上限為10。由FUAP算法和UAP算法所生成的通用對抗擾動在白盒攻擊和黑盒攻擊條件下的欺騙率對比見表1。表中處于對角線的黑體數(shù)據(jù)表示白盒攻擊的實(shí)驗(yàn)結(jié)果,其他數(shù)據(jù)表示黑盒攻擊的實(shí)驗(yàn)結(jié)果,其中FUAP算法相比于UAP算法所生成的通用對抗擾動的欺騙率增量在括號中給出。
表1 兩種算法所生成的通用對抗擾動的欺騙率對比Table 1 Comparison of fooling rates for universal adversarial perturbations generated using FUAP algorithm and UAP algorithm %
實(shí)驗(yàn)結(jié)果表明。由FUAP算法生成的通用對抗擾動在白盒攻擊和黑盒攻擊條件下均能達(dá)到更高的欺騙率。其中白盒攻擊條件下的平均欺騙率增量為8.08%;黑盒攻擊條件下的平均欺騙率增量為9.93%,這表示由FUAP算法生成的通用對抗擾動具有更強(qiáng)的遷移性;總的欺騙率增量為9.46%。證明了FUAP算法能提升通用對抗擾動在白盒攻擊和黑盒攻擊條件下的平均欺騙率。
為了便于學(xué)習(xí)交流,F(xiàn)UAP算法的源代碼見https://github.com/shucsAISL/fast-universal。下面詳細(xì)介紹本文提出的基于由FUAP算法生成的通用對抗擾動的圖像驗(yàn)證碼方案。
為了使得圖像驗(yàn)證碼能抵抗基于CNN的識別攻擊,本文基于由FUAP算法生成的通用對抗擾動,提出FEI-CAPTCHA(FUAP Enhanced Image-based CAPTCHA)驗(yàn)證碼方案,在驗(yàn)證碼的圖像中添加通用對抗擾動以降低驗(yàn)證碼被CNN模型破解的概率。圖4展示了一個FEI-CAPTCHA的例子。圖中的所有圖像都添加了通用對抗擾動。
FEI-CAPTCHA中的圖像可以分為以下兩類:
(1)提示信息。即位于最上方的那幅圖像,該圖像不能被選擇,僅用作提示候選的類別。例如圖4中的候選類別為狗。
(2)候選圖像。即除提示信息外的所有圖像,這些圖像包含屬于候選類別的圖像和不屬于候選類別的圖像。測試者只有在準(zhǔn)確無誤地選出所有屬于候選類別的圖像后才能通過測試。例如圖4中候選圖像中屬于候選類別狗的圖像一共有3幅,在本次測試中,測試者需要將這3幅圖像全部選中(而且不能多選)才能通過測試。
圖4 FEI-CAPTCHA示例Fig.4 Example of FEI-CAPTCHA
FEI-CAPTCHA需要一個類別數(shù)至少為1 000的圖像數(shù)據(jù)庫以保證其基于大規(guī)模圖像識別任務(wù)的特性。使用圖像而不是文字展示提示信息。一方面,圖像相比于文字更難被機(jī)器識別,這可以進(jìn)一步增強(qiáng)驗(yàn)證碼的安全性;另一方面,圖像往往比文字更加直觀易懂,而且不會有語言不通的問題。為了安全性考慮,候選圖像中屬于候選類別的圖像數(shù)目要大于1,但是也不宜過多,因?yàn)闀绊懹脩粲押眯?。?yàn)證碼中的所有圖像需要添加通用對抗擾動并且通用對抗擾動需要定期更換。
為了驗(yàn)證FEI-CAPTCHA在抵抗基于CNN的識別攻擊上的優(yōu)勢,將FEI-CAPTCHA和DeepCAPTCHA兩種方案在基于CNN的識別攻擊下的安全性進(jìn)行對比。
驗(yàn)證碼的安全性通過破解率(即攻擊者成功破解驗(yàn)證碼的概率)來衡量。要通過圖像驗(yàn)證碼的一次測試,需要同時識別1幅代表提示信息的圖像和候選圖像中的m幅屬于候選類別的圖像。而分別識別這些圖像為相互獨(dú)立的事件,所以在基于CNN的識別攻擊下圖像驗(yàn)證碼的破解率即為CNN模型對這些圖像的識別率(即CNN模型在最高置信度下的預(yù)測分類類別為樣本真實(shí)標(biāo)簽的概率)的乘積。為了更好地將兩種方案進(jìn)行對比,本文對兩種方案在基于CNN的識別攻擊下的破解率分別進(jìn)行測試,并對實(shí)驗(yàn)結(jié)果進(jìn)行分析。實(shí)驗(yàn)所使用的目前主流的CNN模型為DenseNet-121[15]、GoogLeNet[11]、Vgg-16[16]和ResNet-50[17]。實(shí)驗(yàn)環(huán)境配置:GPU為GeForce GTX 1050Ti,CPU為AMD Ryzen 5 2600X 3.6 GHz,操作系統(tǒng)為Windows 10 64位,內(nèi)存16 GB。深度學(xué)習(xí)框架為TensorFlow,實(shí)驗(yàn)所采用的數(shù)據(jù)集從ILSVRC2012數(shù)據(jù)集中選取。實(shí)驗(yàn)所用的CNN模型經(jīng)過預(yù)訓(xùn)練,在ILSVRC2012驗(yàn)證集下的識別率如表2所示,表中的數(shù)據(jù)代表了各CNN模型對未添加對抗擾動的干凈樣本的分類性能。
表2 各模型在干凈樣本下的分類性能Table 2 Classification accuracyof each model on clean examples
要通過DeepCAPTCHA的一次測試,需要同時識別DeepCAPTCHA的提示信息和候選圖像中屬于候選類別的圖像,其中,DeepCAPTCHA的提示信息為添加了IAN的對抗樣本,候選圖像中屬于候選類別的圖像為干凈樣本。在基于CNN的識別攻擊下DeepCAPTCHA的破解率即為CNN模型對上述所有圖像的識別率的乘積。CNN模型對干凈樣本的識別率參見表2。下面通過實(shí)驗(yàn)測試各CNN模型對添加了IAN的對抗樣本的識別率,并進(jìn)一步對DeepCAPTCHA在基于CNN的識別攻擊下的破解率進(jìn)行估算。
在ILSVRC2012的訓(xùn)練集中隨機(jī)選擇100個樣本作為實(shí)驗(yàn)樣本,并使用DenseNet-121作為目標(biāo)模型生成對應(yīng)的100個IAN。然后測試上述4個模型在對抗樣本下的分類性能,其結(jié)果見表3。由表可見,IAN能使得目標(biāo)模型的識別率降至0%,但是非目標(biāo)模型的識別率仍接近15%。要通過CNN模型成功破解DeepCAPTCHA需要同時識別一個帶有IAN的對抗樣本和m個干凈樣本。若由DenseNet-121作為目標(biāo)模型生成DeepCAPTCHA所用的IAN,結(jié)合表2各模型在干凈樣本下的識別率,將CNN模型對上述m+1個樣本的識別率進(jìn)行相乘即可以求得DeepCAPTCHA在基于CNN的識別攻擊下的破解率。DenseNet-121、GoogLeNet、Vgg-16和ResNet-50這4個CNN模型對DeepCAPTCHA的破解率隨m的變化情況見表3。
表3 各模型的分類性能及其對DeepCAPTCHA的破解率Table 3 Each model’s classification accuracy and its cracking rate on DeepCAPTCHA %
要通過FEI-CAPTCHA的一次測試,同樣需要同時識別提示信息以及候選圖像中的m幅屬于候選類別的圖像。在基于CNN的識別攻擊下FEI-CAPTCHA的破解率為CNN模型對上述m+1幅圖像的識別率的乘積。因?yàn)镕EI-CAPTCHA中所有圖像都添加了由FUAP算法生成的通用對抗擾動,下面首先測試實(shí)驗(yàn)所用各CNN模型對添加了通用對抗擾動之后的樣本的識別率,然后對FEI-CAPTCHA在基于CNN的識別攻擊下的破解率進(jìn)行估算。
為了更好地和DeepCAPTCHA的破解率測試實(shí)驗(yàn)進(jìn)行對比,同樣使用DenseNet-121作為目標(biāo)模型生成通用對抗擾動。實(shí)驗(yàn)所用的生成通用對抗擾動的樣本集為從ILSVRC2012的訓(xùn)練集中隨機(jī)選取的10 000個樣本,其中每個類別選取10個樣本。將ILSVRC2012的驗(yàn)證集作為測試模型性能的測試集,一共50 000個樣本。按照FUAP算法的步驟使用DenseNet-121作為目標(biāo)模型生成通用對抗擾動。設(shè)定預(yù)定欺騙率δ的值為100%并在欺騙率不再上升時結(jié)束算法。設(shè)定L∞范數(shù)上限值為10。各模型在輸入樣本添加通用對抗擾動后的分類性能見表4。當(dāng)CNN模型對添加通用對抗擾動的樣本的識別率為p,該CNN模型對FEI-CAPTCHA的破解率為pm+1。若由DenseNet-121作為目標(biāo)模型生成FEI-CAPTCHA所用的通用對抗擾動,DenseNet-121、GoogLeNet、Vgg-16和ResNet-50這4個CNN模型對FEI-CAPTCHA的破解率隨m的變化情況見表4。
表4 各模型的分類性能及其對FEI-CAPTCHA的破解率Table 4 Each model’s classification accuracy and its cracking rate on FEI-CAPTCHA %
由表3可見,IAN不僅干擾目標(biāo)CNN模型正確識別圖像的能力,并且能使得非目標(biāo)CNN模型的識別率顯著降低,這表示IAN具有很強(qiáng)的遷移性。但是考慮到生成驗(yàn)證碼的效率,IAN的樣本相關(guān)特性使其無法添加到DeepCAPTCHA的每一幅圖像中。因?yàn)樵趫D像驗(yàn)證碼的實(shí)際使用中,為了安全考慮,所使用的圖像數(shù)據(jù)庫是一直處于更新狀態(tài)的,而已經(jīng)生成的IAN無法對數(shù)據(jù)庫中新增的圖像起到保護(hù)作用,所以在生成DeepCAPTCHA時需要同時生成IAN。表5列出了各模型生成IAN的平均時間。由表5可見,在需要生成一個IAN的情況下,生成一次DeepCAPTCHA測試至少需要接近2 s的時間。若要生成一個以上的IAN,那么DeepCAPTCHA的生成效率將變得很低下。
表5 各模型生成IAN的時間Table 5 Time for each model to generate IAN
由表4可見,通用對抗擾動能使得目標(biāo)模型的識別率顯著降低,并且在非目標(biāo)模型上具有較強(qiáng)的遷移性。通用對抗擾動的樣本無關(guān)特性可以使得其在生成之后,不僅可以保護(hù)FEI-CAPTCHA的所有圖像不易被CNN模型識別,而且對驗(yàn)證碼圖像數(shù)據(jù)庫中新增的圖像同樣可以起到保護(hù)作用。這樣在生成FEI-CAPTCHA時省去了生成通用對抗擾動的時間。這樣在預(yù)先生成了通用對抗擾動的條件下,F(xiàn)EI-CAPTCHA的生成速度將會快于DeepCAPTCHA。各模型生成通用對抗擾動所需的時間詳見第3章。本文的實(shí)驗(yàn)結(jié)果表明,在基于CNN的識別攻擊下,當(dāng)圖像驗(yàn)證碼的候選圖像中屬于候選類別的圖像數(shù)目等于1時,DeepCAPTCHA與FEI-CAPTCHA具有相當(dāng)?shù)钠骄平饴?,而?dāng)圖像驗(yàn)證碼的候選圖像中屬于候選類別的圖像數(shù)目大于1時,F(xiàn)EI-CAPTCHA具有更低的平均破解率,將會更加安全。而且在圖像驗(yàn)證碼的實(shí)際使用中,候選圖像中屬于候選類別的圖像數(shù)目一般會大于1,但是也不宜過多,否則會影響用戶友好性。這也證明了FEI-CAPTCHA相比于DeepCAPTCHA更能抵抗基于CNN的識別攻擊。
本文提出了一種快速生成通用對抗擾動的FUAP算法,該算法不僅生成速度快,而且所生成的通用對抗擾動遷移性強(qiáng)。在FUAP算法的基礎(chǔ)上提出了能有效抵抗基于CNN的識別攻擊的FEI-CAPTCHA——一種基于通用對抗擾動的圖像驗(yàn)證碼方案,并詳細(xì)闡述了方案的設(shè)計(jì)細(xì)節(jié)。將FEI-CAPTCHA與現(xiàn)有工作DeepCAPTCHA進(jìn)行對比,通過實(shí)驗(yàn)與分析證明了FEICAPTCHA在基于CNN的識別攻擊下具有更低的破解率。下一步的研究方向是將通用對抗擾動推廣到語音識別領(lǐng)域。