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