一種圖形驗(yàn)證碼的識(shí)別_第1頁(yè)
一種圖形驗(yàn)證碼的識(shí)別_第2頁(yè)
一種圖形驗(yàn)證碼的識(shí)別_第3頁(yè)
一種圖形驗(yàn)證碼的識(shí)別_第4頁(yè)
全文預(yù)覽已結(jié)束

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一種圖形驗(yàn)證碼的識(shí)別

0圖形驗(yàn)證碼解析驗(yàn)證碼是一種通用的自動(dòng)應(yīng)用程序,用于區(qū)分用戶是計(jì)算機(jī)還是個(gè)人。最早是在2002年由卡內(nèi)基梅隆大學(xué)的LuisvonAhn、ManuelBlum、NicholasJ.Hopper以及IBM的JohnLangford所提出的惡意程序或真實(shí)用戶登錄具有圖像驗(yàn)證碼的網(wǎng)站系統(tǒng)時(shí),應(yīng)用服務(wù)器通常會(huì)提供一幅具有驗(yàn)證碼字符串的圖片供用戶識(shí)別其中的驗(yàn)證碼信息,并將這些驗(yàn)證碼字符保存在Session中。真實(shí)用戶在驗(yàn)證碼信息輸入框中輸入驗(yàn)證碼字符串并通過(guò)Web應(yīng)用系統(tǒng)提交給應(yīng)用服務(wù)器,然后應(yīng)用服務(wù)器會(huì)自動(dòng)驗(yàn)證用戶提交的驗(yàn)證碼和Session中保存的驗(yàn)證碼是否相同。若相同,應(yīng)用服務(wù)器就會(huì)響應(yīng)用戶的請(qǐng)求,否則會(huì)提示驗(yàn)證碼輸入錯(cuò)誤并提供新的圖形驗(yàn)證碼以供用戶再次輸入驗(yàn)證碼信息。然而,惡意程序一般利用圖像處理技術(shù)提取圖形驗(yàn)證碼中驗(yàn)證碼信息或者字符串遍歷的方法生成隨機(jī)字符串作為驗(yàn)證碼信息,然后偽造表單和識(shí)別的驗(yàn)證碼一起提交給服務(wù)器,其攻擊過(guò)程如圖1所示。網(wǎng)站系統(tǒng)中的圖形驗(yàn)證碼一般是一幅以圖片形式呈現(xiàn)的彩色圖像,惡意程序抓取圖形驗(yàn)證碼圖像之后,首先進(jìn)行圖像灰度變換,然后對(duì)其進(jìn)行二值化處理以去除干擾字符信息,最后通過(guò)圖像分割技術(shù)去除噪聲,把每個(gè)字符分割開(kāi)來(lái),識(shí)別驗(yàn)證碼中的驗(yàn)證碼信息并提交網(wǎng)站系統(tǒng)1擾圖層的生成基于多圖層的圖形驗(yàn)證碼由前景圖層和干擾圖層構(gòu)成。其中,前景層用于向用戶呈現(xiàn)系統(tǒng)產(chǎn)生的隨機(jī)長(zhǎng)度和隨機(jī)位置的驗(yàn)證字符串,而干擾圖層用于混淆圖形驗(yàn)證碼中的驗(yàn)證字符串,其呈現(xiàn)的信息是系統(tǒng)隨機(jī)生成的隨機(jī)長(zhǎng)度、隨機(jī)字體、隨機(jī)字符顏色、隨機(jī)字符大小的字符串,并且前景層和背景層的字符串取自于同一個(gè)候選數(shù)組,這樣更增加了前景層和背景層的相似度。為使背景圖層中的干擾信息呈現(xiàn)出來(lái),需要對(duì)前景圖層設(shè)置一定的透明度,一般將其透明度設(shè)置為50%左右,以使惡意程序難以自動(dòng)識(shí)別圖形驗(yàn)證碼中的驗(yàn)證字符串信息。1.1生成的圖形驗(yàn)證碼前景圖層中的驗(yàn)證碼字符串通過(guò)隨機(jī)函數(shù)生成一個(gè)字符個(gè)數(shù)隨機(jī)的驗(yàn)證字符串,而且其中的每個(gè)字符的位置隨機(jī)。對(duì)于采用由0~9的數(shù)字和26個(gè)字母組成的字符串遍歷方式強(qiáng)行破解圖形驗(yàn)證碼的惡意程序而言,與固定驗(yàn)證碼字符個(gè)數(shù)的圖形驗(yàn)證碼相比,基于多圖層的圖形驗(yàn)證碼有效降低了其成功破解的概率,提高了圖形驗(yàn)證碼的安全性。同時(shí),由于驗(yàn)證字符串中字符的字體隨機(jī)、傾斜度隨機(jī)、位置隨機(jī),當(dāng)采用圖像識(shí)別的方法提取圖形驗(yàn)證碼中的驗(yàn)證字符串時(shí),不僅需要正確識(shí)別每個(gè)字符,而且要將識(shí)別的字符正確排序,才能獲得正確的驗(yàn)證碼信息,從而有效防止某些惡意程序的攻擊。同時(shí),由于本方法生成的驗(yàn)證碼字符串之間沒(méi)有粘連,因此很容易被真實(shí)用戶所識(shí)別,提高了圖形驗(yàn)證碼的易用性。由于前景圖層位于干擾圖層的上面,為使干擾圖層的干擾信息能夠正確顯示,需要根據(jù)實(shí)際需求設(shè)置前景圖層的透明度。為了增加圖形驗(yàn)證碼被惡意程序自動(dòng)識(shí)別的難度,前景圖層的透明度同樣采用區(qū)域隨機(jī)的方法實(shí)現(xiàn),這樣就會(huì)使圖形驗(yàn)證碼前景圖層中不同區(qū)域的透明度不一樣,基于多圖層的圖形驗(yàn)證碼中干擾圖層的顏色深度也會(huì)隨之也各異。1.2生成的層次串碼干擾圖層中的干擾信息同樣由一個(gè)隨機(jī)長(zhǎng)度的位置隨機(jī)、顏色隨機(jī)、字體隨機(jī)、傾斜度隨機(jī)的字符串組成,并且取自于同樣候選字符數(shù)組,增加了干擾字符串與驗(yàn)證字符串的相似性,使其更不易被惡意程序所區(qū)別,降低了網(wǎng)絡(luò)應(yīng)用系統(tǒng)被成功攻擊的可能性。同時(shí),由于前景圖層不同區(qū)域的透明度是隨機(jī)的,干擾圖層中的干擾字符串在圖形驗(yàn)證碼中顯示的顏色深度也會(huì)不同,與傳統(tǒng)采用點(diǎn)噪聲圖像、網(wǎng)格圖像、隨機(jī)線條紋理圖像等作為干擾信息的圖像驗(yàn)證碼相比,該干擾圖層不僅能夠達(dá)到同樣的鑒別真實(shí)用戶與惡意程序的功能,而且更有利于真實(shí)用戶區(qū)別驗(yàn)證碼字符串和干擾字符串,并快速識(shí)別正確的驗(yàn)證碼信息。2應(yīng)用程序顯示設(shè)備ASP.NET提供了應(yīng)用程序編程接口GDI+,程序開(kāi)發(fā)人員可以利用GDI+提供的API接口在計(jì)算機(jī)屏幕或打印機(jī)上顯示信息,不需要考慮具體的顯示設(shè)備,從而實(shí)現(xiàn)應(yīng)用程序與設(shè)備相互獨(dú)立。本文利用ASP.NET中的GDI+實(shí)現(xiàn)了上述基于多圖層的圖形驗(yàn)證碼生成算法。2.1創(chuàng)建存儲(chǔ)圖形的ghGDI+中的Graphics類(lèi)和Bitmap類(lèi)提供了實(shí)現(xiàn)圖形驗(yàn)證碼圖片的方法,首先利用Bitmap創(chuàng)建一個(gè)內(nèi)存中的位圖myPlate,其寬和高分別為weight和high。其中,weight的值是字符寬度乘以字符數(shù),high的值由字體的高度決定。然后,使用Graphics類(lèi)創(chuàng)建一個(gè)存儲(chǔ)圖形驗(yàn)證碼的Graphics對(duì)象gh,并將它與myPlate關(guān)聯(lián),這樣gh的所有圖形都存儲(chǔ)在內(nèi)存位圖bmp中。最后,用gh繪制一個(gè)矩形框,以便圖形驗(yàn)證碼中的驗(yàn)證字符串和干擾字符串顯示在該矩形框所在區(qū)域范圍內(nèi)。2.2)urce中生成的范疇字符的個(gè)數(shù)、位置、傾斜度和顏色是利用.NET-Framework提供的隨機(jī)函數(shù)Random()來(lái)控制的。干擾字符取自于候選字符數(shù)組source中,這個(gè)source數(shù)組由字母和數(shù)字組成。首先,由一個(gè)隨機(jī)對(duì)象rbacknum來(lái)生成干擾圖層的字符個(gè)數(shù)num,num的值由驗(yàn)證碼圖片的大小及其每個(gè)字符的大小決定。然后運(yùn)用循環(huán)結(jié)構(gòu),設(shè)置在候選字符數(shù)組source中隨機(jī)生成的每個(gè)字符的隨機(jī)位置、隨機(jī)顏色和隨機(jī)傾斜度。并且需要設(shè)置一個(gè)標(biāo)記值sign,來(lái)標(biāo)記num個(gè)字符中是否位置重合。最后將生成的這些干擾字符串保存為一個(gè)圖層對(duì)象,其生成的主要代碼如下:2.3選擇背景圖層前景圖層中的圖形驗(yàn)證碼字符串同樣取自于候選字符數(shù)組source,其長(zhǎng)度由隨機(jī)函數(shù)Random()來(lái)生成。為方便用戶輸入,Random()的取值范圍為1~3個(gè)。這樣,就可生成一個(gè)隨機(jī)長(zhǎng)度的隨機(jī)驗(yàn)證碼字符串:code={si|si∈source}。為增加惡意程序的識(shí)別難度,需要設(shè)置前景圖層的透明度。前景圖層的透明度通過(guò)重繪并且對(duì)顏色進(jìn)行調(diào)整來(lái)實(shí)現(xiàn),如表1所示的ColorMatrix單位矩陣可對(duì)前景圖層的透明度進(jìn)行線性變換,達(dá)到調(diào)整前景圖層透明度的效果具有線性變換透明度的前景圖層生成的主要代碼如下:2.4紋理畫(huà)刷類(lèi)數(shù)字圖像識(shí)別在分別生成干擾圖層和前景圖層之后,使用紋理畫(huà)刷類(lèi)TextBrush實(shí)現(xiàn)具有一定透明度的背景圖層與干擾圖層的合成,從而生成完整的圖形驗(yàn)證碼圖片,其主要代碼如下:3結(jié)果分析3.1個(gè)數(shù)的驗(yàn)證字符前景圖層顯示的信息是需要用戶輸入的驗(yàn)證字符串。隨機(jī)個(gè)數(shù)的驗(yàn)證字符串與傳統(tǒng)中固定個(gè)數(shù)的字符驗(yàn)證字符串相比,提高了圖形驗(yàn)證碼的安全性。同時(shí)用戶只需要輸入幾個(gè)簡(jiǎn)單的字符便可提交驗(yàn)證碼信息。其效果如圖2所示。3.2生成惡意程序圖形驗(yàn)證碼由隨機(jī)順序、隨機(jī)大小和隨機(jī)傾斜度的字符串構(gòu)成的干擾圖層增加了惡意程序自動(dòng)識(shí)別圖形驗(yàn)證碼的難度。同時(shí),由于前景圖層具有一定的透明度,使得干擾圖層的干擾字符串顏色較淺,真實(shí)用戶可以很方便地區(qū)別干擾字符串和驗(yàn)證字符串。如圖3所示。3.3證碼的生成基于前景圖層和干擾圖層合成的圖形驗(yàn)證碼,如圖4所示。其中,前景圖層中顯示需要用戶輸入的驗(yàn)證字符串,比較模糊的隨機(jī)字符串是干擾信息。3.4不同形驗(yàn)證碼識(shí)別概率的比較為了分析基于多圖層的圖形驗(yàn)證碼的安全性,采用開(kāi)源驗(yàn)證碼識(shí)別工具PWNtcha對(duì)以下幾種圖形驗(yàn)證碼進(jìn)行識(shí)別概率的比較如表2所示,本文所研究的圖形驗(yàn)證碼被PWNtcha識(shí)別的概率僅為72%,是被測(cè)試的圖形驗(yàn)證碼中最不容易識(shí)別的一種。同時(shí),人眼也很容易識(shí)別這種圖形驗(yàn)證碼中的驗(yàn)證字符串信息。實(shí)驗(yàn)證明,基于多圖層的圖形驗(yàn)證碼具有更高的安全性,且便于用戶使用。4計(jì)算機(jī)應(yīng)用程序廣告營(yíng)銷(xiāo)的方式圖形驗(yàn)證碼作為各大網(wǎng)站和應(yīng)用系統(tǒng)辨別惡意程序和真實(shí)用戶的重要方法,基于多圖層的圖形驗(yàn)證碼生成技術(shù)不僅可以有效防

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論