張硯楓,寇玉龍,金玉
(遼寧科技學(xué)院 電氣與信息工程學(xué)院,遼寧 本溪117004)
基于自然圖像混合的驗證碼
張硯楓,寇玉龍,金玉
(遼寧科技學(xué)院 電氣與信息工程學(xué)院,遼寧 本溪117004)
文章提出了一種基于自然圖像混合技術(shù)的驗證碼方案,將前景圖像與自然場景背景圖像深度融合,防止惡意程序自動地將前景圖像從整幅圖像中分離出來并進(jìn)行識別,可有效區(qū)分操作者是人還是計算機,有效保障網(wǎng)絡(luò)應(yīng)用系統(tǒng)的安全。
驗證碼;圖像驗證碼;圖像混合
在目前的網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,有效區(qū)分操作者是人還是計算機是一個重要任務(wù),而完成這項任務(wù)幾乎只有一種手段,那就是驗證碼。優(yōu)秀的驗證碼可以有效防止刷票、搶票、刷頁、灌水、暴力破解口令等惡意行為。
到目前為止,已經(jīng)出現(xiàn)了眾多的驗證碼方案,如文本圖像驗證碼、動畫驗證碼、視頻驗證碼等。應(yīng)用最多的文本圖像驗證碼方案〔1-3〕基本上都是在帶噪聲背景上隨機排列扭曲、變形、粘連的數(shù)字、字母、中文字符串,如果回答正確,則認(rèn)為操作者是人而不是計算機。但是這樣的驗證碼方案都很難抵抗基于字符識別技術(shù)的攻擊手段〔4〕。動畫驗證碼和視頻驗證碼由于畫面的快速變換而大大加大了人類識別的難度,在可用性上大打折扣,在實際應(yīng)用中很少使用。
12306鐵路購票網(wǎng)站采用過多種驗證碼方案,但都無法阻止搶票軟件的橫行,因此,12306采用了一種比較新型的驗證碼〔5-6〕,驗證頁面給出若干實物圖片,要求操作者從中選擇符合要求的圖片,例如選出所有的“燈籠”。但是,12306的有些實物圖片的辨識度低,具有高智能的人類都可能選錯,這是12306驗證碼方案遭非議的最主要原因。另外,12306驗證碼方案采用的實物圖片屬于靜態(tài)樣本,且樣本總數(shù)是有限的,該方案在降低了可用性的情況下,安全性并沒有大幅度提高,目前,12306驗證碼方案已經(jīng)有了很有效的破解方法。
本文研究并設(shè)計了一種新的圖像驗證碼方案,以多幅自然場景圖像混合而成的新圖像作為背景圖像,將待驗證圖像進(jìn)行隨機的變形、旋轉(zhuǎn)等處理后與背景圖像相融合,大大提高不確定性,可有效區(qū)分操作者是人還是計算機,具有很強的可用性和安全性。
本圖像驗證碼方案的背景圖像可選擇草原、山水、園林、森林等自然場景圖像,前景圖像可選擇花草、樹木、動物等自然圖像元素,前景圖像與自然場景背景圖像具有很高的可融合度。
首先,驗證碼生成程序采用圖像處理技術(shù)將隨機選擇的多幅自然場景圖像進(jìn)行混合,混合算法也是隨機選擇的,還可以進(jìn)行添加隨機噪聲的處理,混合后的圖像作為驗證碼背景圖像,大大增加了不確定性。
然后,驗證碼生成程序?qū)﹄S機選擇的多幅前景圖像進(jìn)行變形、旋轉(zhuǎn)、縮放、加噪等處理,前景圖像的有效元素(如老虎、獅子等的身體部分)具有一定的透明度,其外圍則完全透明,并與背景圖像進(jìn)行融合,使前景、背景充分融為一體,大大提高了不確定性,使計算機程序難以自動地將前景圖像從自然場景背景中分離出來并進(jìn)行識別。
在驗證時,操作者只要按照要求在融合后的單幅圖像中選擇出符合要求的前景圖像(比如選出所有的“老虎”)即可通過驗證。
另外,自然場景圖像和前景圖像樣本庫不是靜態(tài)、有限的,而是動態(tài)、可維護的,進(jìn)一步提高不確定性,增大攻擊的難度。
2.1 程序模塊與算法
本驗證碼方案包含兩大程序模塊:驗證碼生成模塊、操作者驗證模塊、樣本庫維護模塊,其中前兩個模塊面向用戶提供服務(wù),后者僅用于系統(tǒng)管理維護人員進(jìn)行自然場景圖像樣本和前景圖像樣本的管理維護。
驗證碼生成模塊的功能是生成用于驗證的圖像,運行在服務(wù)器端,其處理過程如下:
(1)在自然場景圖像樣本庫中隨機選擇多幅圖像;
(2)對選出的多幅自然場景圖像進(jìn)行混合,混合算法是隨機選擇的,混合后的圖像作為背景圖像;
(3)對背景圖像添加隨機噪聲;
(4)在多種前景類別中隨機選擇一種作為合法類別,前景類別可以設(shè)置很多種,比如老虎、獅子、猴子、狼、鹿、馬、豬等等,隨機選擇出的合法類別即為驗證時對操作者提出的選擇要求,比如要求操作者選擇出所有的“老虎”;
(5)在前景圖像樣本庫中隨機選擇至少1個屬于合法類別的樣本和多個(可以是0個)不屬于合法類別的樣本,比如隨機選擇2個不同的“老虎”圖像、1個“獅子”圖像和2個“猴子”圖像;
(6)對選出的多幅前景圖像分別進(jìn)行隨機的變形、旋轉(zhuǎn)、縮放、加噪處理;
(7)將處理后的多幅前景圖像隨機排列并融合到背景圖像上,形成一幅融為一體的圖像,返回到驗證客戶端。
在步驟(7)中,要將合法類別的前景圖像在背景圖像上的位置和大小寫入Session,待將來進(jìn)行操作者驗證時使用。
操作者驗證模塊和客戶端腳本相配合,完成操作者驗證,驗證操作者是人還是計算機程序。驗證碼生成模塊生成的圖像呈現(xiàn)在客戶端,操作者在客戶端通過鼠標(biāo)“點擊”選擇符合驗證要求的前景元素,由客戶端腳本記錄“點擊”位置,并傳送給服務(wù)器端的操作者驗證模塊進(jìn)行驗證。操作者驗證模塊的處理過程如下:
(1)接收客戶端傳送來的鼠標(biāo)“點擊”位置參數(shù);
(2)將這些位置參數(shù)與Session中保存的合法前景位置和大小進(jìn)行比較,判斷操作者的選擇是否正確,如果全部正確則通過驗證,否則不通過驗證,驗證無效。
樣本庫維護模塊用于對自然場景圖像樣本庫和前景圖像樣本庫中的樣本進(jìn)行增、刪、改等操作,使樣本更加豐富,同時實現(xiàn)樣本的動態(tài)更新,提高不確定性,增大攻擊的難度。
2.2 背景圖像處理
自然場景圖像的相關(guān)信息存儲于數(shù)據(jù)庫中的BgImgs表中,表結(jié)構(gòu)如下:
表1 BgImgs表結(jié)構(gòu)
在生成驗證碼時,需要隨機選擇多幅自然場景圖像進(jìn)行混合和添加隨機噪聲,混合算法是隨機選擇的。當(dāng)進(jìn)行兩個圖像的混合處理時,假設(shè)上層圖像像素的色彩值為A(A=像素值/255),不透明度為d,下層圖像的對應(yīng)像素的色彩值為B(B=像素值/255),混合后像素的色彩值為C(實際像素值=C*255),每個像素的RGB三原色像素值分別進(jìn)行處理,則可選的混合算法的名稱和計算公式如下(按照公式進(jìn)行計算時,如果結(jié)果小于0則修正結(jié)果為0,如果結(jié)果大于1則修正結(jié)果為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 前景圖像處理
前景圖像的相關(guān)信息存儲于數(shù)據(jù)庫中的FgImgs表中,表結(jié)構(gòu)如下:
表2 FgImgs表結(jié)構(gòu)
在生成驗證碼時,隨機選擇的前景圖像需經(jīng)過變形、旋轉(zhuǎn)、縮放、加噪等處理,增大其不確定性。在前景圖像與背景圖像融合時,前景的有效元素(如老虎的身體部分)采用“不透明度模式”與背景混合,外圍部分呈現(xiàn)全透明效果,邊緣部分呈現(xiàn)平滑的過渡效果。
本文設(shè)計的驗證碼方案簡單易行,可用性強,安全性高,非常適合于網(wǎng)絡(luò)應(yīng)用程序的驗證碼部分,能夠有效防止計算機程序自動識別驗證碼,從而有效防止刷票、搶票、刷頁、灌水、暴力破解口令等惡意行為。
〔1〕 葉振.一種新型圖像驗證碼系統(tǒng)〔J〕.數(shù)字技術(shù)與應(yīng)用,2014,(8):185-187.
〔2〕 李歡,高嶺,劉琳,田斌.基于隨機順序的圖形驗證碼改進(jìn)算法設(shè)計〔J〕.計算機應(yīng)用,2010,(6):1501-1504.
〔3〕 張濤.基于BMP圖片漢字驗證碼的設(shè)計與實現(xiàn)〔J〕.電腦開發(fā)與應(yīng)用,2008,(12):49-51.
〔4〕 尹龍,尹東,張榮,王德建.一種扭曲粘連字符驗證碼識別方法〔J〕.模式識別與人工智能,2014,(3):235-241.
〔5〕 王雪峰,王明哲,朱建軍,祝捷.如何防范針對12306網(wǎng)站的惡意搶票插件〔J〕.鐵路計算機應(yīng)用,2015,(3):26-28.
〔6〕 陳思茹.基于電子商務(wù)視角下的交通運輸訂票網(wǎng)站管理研究——以12306網(wǎng)站驗證碼為例〔J〕.信息化建設(shè),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
項目來源:國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201611430025).
張硯楓(1995-)男,貴州貴陽人,遼寧科技學(xué)院電氣與信息工程學(xué)院計算機科學(xué)與技術(shù)專業(yè)2013級學(xué)生.
TP391.41
A