999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于字符特征的文本驗證碼破解

2012-04-23 10:13:14
電子科技 2012年6期
關鍵詞:方法

高 原

(江蘇省邳州市機動車綜合性能檢測站,江蘇邳州 221300)

字符識別技術[1-2]是破解驗證碼過程中的一項關鍵技術,而基于特征的字符識別技術相比其他識別技術具有識別速度快的優勢,在驗證碼識別過程中,速度越快,其價值越高。基于特征的字符識別技術,可通過字符的結構特征,來定義可行的區分方法,這種識別方法可根據字符的特征定義不同的算法。在驗證碼識別過程中,由于驗證碼是被人識別的,為提高驗證碼的可用性,驗證字符大多使用那些特征明顯,不容出現混淆的字符,所以驗證碼中所用的字符是有限制的,字符集較小,利用結構特征的字符識別技術,特征更加容易辨別,識別速率也更快。

驗證碼[3-4]作為一種在網頁上使用的安全機制,可防止惡意程序自行的注冊賬號、發送免費郵件、論壇灌水,有效防止黑客對某一特定注冊用戶使用特定程序暴力破解方式進行不斷的登陸嘗試。驗證碼是現在眾多網站通行的方式如某銀行的網上個人銀行、百度社區等是一種簡單的區分人與機器的方法。對驗證碼進行破解研究,發現其設計過程中的漏洞和弱點,對提高驗證碼的安全性具有重要意義。2004年Dontnod公司的Hocevar S[5]在網絡上發布了其驗證碼識別程序PWNtcha(Pretend We’re Not a Turing Computer but a Human Antagonist),以證明驗證碼不是一種安全的交互驗證手段,現在這個項目已經開源。Hocevar同時還在網站上發布了多個驗證碼的識別結果,識別率從49% ~100%,其中有著名的電子支付公司Paypal的驗證碼。PWNtcha針對的驗證碼主要是背景容易分離和非粘連的驗證碼,網站也給出了一些難以識別的驗證碼樣本,但未能給出識別結果。2003年 Mori G和Malik J利用形狀上下文對Gimpy和EZ—Gimpy驗證碼進行了識別,識別率分別達到33% ~92%[6]。2008年英國紐卡斯爾大學的Yah J,AHMAD A S E等對Microsoft的驗證碼進行了成功分割,并通過多分類器進行識別,識別率達到 60%[7-8]。

文中針對某銀行的驗證碼,首先根據其特點將驗證碼中的干擾色去掉并且提取出目的字符,然后基于字符與數字內部和外部特征,采用顏色填充法,三線條法,全面掃描法對單個字符進行識別,識別率可達到95%以上。相比于模板匹配算法,在時間上也有大的縮減。最壞情況,識別的字符的時間是215 ms,平均識別時間為187 ms。

1 驗證碼機制

網絡中常用的驗證碼是基于文本圖像的驗證碼,基于文本圖像的驗證碼又可分為字符分離和采用粘連機制兩大類。文中所述的破解方法都是針對字符分離的驗證碼。

圖1 某銀行驗證碼

某銀行的驗證碼在字符分離驗證碼中具有代表性。由于無法得知其驗證碼生成的原理和代碼,于是先從其網上銀行中隨機獲取100個驗證碼,通過對這100個樣本驗證碼的觀察和分析,發現其驗證碼具有以下特點。

(1)背景色以淺灰色為主,有大量隨機的某種色彩線條隨機分布在整個驗證碼中,且彩色線條和前景色的字符重疊時像素值是前景色和背景色疊加而成的。

(2)字符均有不同程度的扭曲和變形,字符的扭曲和變形使得商用的一般OCR軟件對字符無法正確識別。

(3)字符位置固定在水平方向上和豎直方向上是隨機分布的,因為驗證碼輸入是有順序限制的,所以在水平方向字符之間是不可交錯的,而豎直方向上的隨機分布影響了字符破解時對字符的準確定位。

(4)每個驗證碼都是由固定數目字母或數字構成的,固定的字符數使破解工作相對容易,在分割字符時可以確切的了解需要提取幾個字符,而驗證碼中都采用了6個字符。

(5)每種驗證碼采用的字符集是相同的,不是所有的字符都會出現在驗證碼中,因為會降低驗證碼的可用性。例如,在有背景色干擾的情況下,肉眼較難分清1和I。驗證碼中共有19個數字和字母出現,8個數字,11個小寫字母。

文中以某銀行驗證碼為例,介紹了破解此類字符分離驗證碼的詳細過程。

2 破解過程

破解驗證碼分為兩個步驟,分割和識別。利用前節分析驗證碼得到的特點,可利用一種簡單有效的方法破解驗證碼。

破解過程可以概括為下面的步驟:

(1)對驗證碼進行預處理,去除背景色和干擾色。

(2)用顏色填充算法提取驗證碼中的字符。

(3)根據每種字符特征對單個字符識別。

破解工作是建立在100個樣本驗證碼基礎上的,為確保研究的正確性和適用性,對另外100個在破解工作中未能用到的驗證碼進行了實驗。

2.1 預處理

該階段主要目的是去除驗證碼中背景色,將字符像素全部置為黑色,其他背景顏色全部置為白色,也可稱為二值化處理。

驗證碼中字符的顏色是灰色與噪音顏色疊加的色彩,而灰色與噪音顏色疊加的色彩與灰色極為相似,只將原本灰色的RGB值進行了微調。所以,本節的目的是將驗證碼中灰色的像素與灰色相近的像素置為黑色,其他顏色置為白色。

通過大量的實驗和觀察,發現RGB值中至少有一個分量值>170的像素必定是背景色和噪音色,以170為閾值對圖片進行處理,當一個像素點的RGB值分量中有一個>170就將其置為白色,相反則置為黑色。部分結果如圖2所示。

用這一方法對100個驗證碼進行二值化,效果表明這種方法對驗證碼有較好的去噪點效果。圖像的二值化,對于這種不粘連的驗證碼,本身就是分割的過程。

圖2 二值化后的驗證碼

2.2 提取字符

在這一階段,可用連通域法提取圖片中的字符。連通域法就是將一個連通域里的所有像素提取出來當作一個字符。具體實現使用了顏色填充算法。這里,用一個寬40,高為字符高度的圖像存儲提取出來的字符。

圖3 被提取的6個字符

2.3 字符識別

常用的識別方法是模板匹配,在模板集合中依次用模板圖片和提取出來的字符進行匹配,選取匹配率最高的字符作為識別結果。模板匹配對扭曲的字符有較大的局限性,字符是隨機扭曲的,若要得到理想的結果,就需要一個較大的模板庫,但模板庫的龐大必然使匹配所用的時間更長。

文中所用的識別方法是基于字符特征的,對單個字符識別的準確率達97%,對100個樣本驗證碼的識別成功率達到82%。

在整個識別過程中,采用了3種方法:顏色填充、三線條和全面掃描法,確保識別結果在準確率和速度上都取得理想的效果。

2.3.1 基于顏色填充的字符識別

在驗證碼中出現的19個字符中,有9個字符有封閉的區域,這里稱為閉環。如圖4所示。通過判斷各自閉環的位置,可以結合使用顏色填充算法來識別這些字符。

圖4 含有閉環的字符

如4的閉環位置相對在中間,閉環的形狀為三角形。6的閉環位置在圖片的下部。b與6相似,閉環位置在圖片的下部,閉環上方無黑色像素。9的閉環位置在圖片的上部。a的閉環位置在圖片的下部,與d類似,不同點在于a的閉環上方有黑色像素。d與a相似,閉環位置在圖片的下部,閉環上方無黑色像素。e的閉環位置在圖片的上部,與p類似,不同點是閉環的下方有黑色像素。p與e相似,閉環位置在圖片的上部,閉環下方無黑色像素。

圖5 顏色填充

根據以上特征,4,6,9,a,b,d,e,p 這 8 個字符被成功地識別。加上已經識別出的8,驗證碼中出現的19個字符中的9個已經被區分出來,經過實驗證明,這種方法的識別正確率在98%以上。

2.3.2 基于三線條法識別字符

三線條法,是針對驗證碼中字符識別提出的新方法,分別在圖片的1/3高度,1/2高度和2/3高度處掃描,記錄遇到的黑色像素位置,通過這些黑色像素的位置識別字符。該方法針對的是驗證碼中的字符m,字符n和字符w。相比于整體掃描得到全部特征的方法,三線條法只通過局部掃描得到局部特征就可識別相應的字符,在速度上具有較大優勢,而準確率依然理想。

在經過顏色填充識別字符后,驗證碼中還有10個字符未被成功識別,分別是 2,3,5,7,k,m,n,s,w,x。在這10個字符中,應用三線條法,m,n,w的特征被明顯的體現出來,詳細描述如下。

m三個線條上的黑色像素都呈三段分布,中間段的黑色像素與兩邊段黑色像素中間的非黑色像素數目接近并>3,三個線條上的像素都符合這一特點。

n三個線條上的黑色像素都呈兩段分布,兩段黑色像素之間的非黑色像素的數目>3,三個線條上的像素都符合這一特點。

w在1/3高度的線條上,黑色像素呈三段分布且中間段黑色像素與兩邊段黑色像素之間的非黑色像素數目>3,在1/2高度的線條上則呈現三段分布,但是黑色像素之間的非黑色像素的數目<1/3高度上的線條,而在2/3高度上的線條,黑色像素可能呈兩段或三段分布,呈兩段分布時可被確認為w,呈三段分布只要黑色像素中間的非黑色像素的數目遠<1/3高度和1/2高度的線條也可被確認為w。

圖6 三線條法

對100個驗證碼樣本中出現的字符m,n和w進行了實驗,其識別正確率達到97%。在算法執行時,如果某種字符已經被識別,在后面識別剩余字符時就不去識別該種字符,顏色填充法和三線條法對字符識別的高準確率,保證了算法可行性。

經過顏色填充法和三線條法的處理之后,驗證碼中的19個字符被識別出來12個,還有7個字符未被識別出來,分別是 2,3,5,7,k,s,x。對于這幾個字符,三線條法可以識別出部分,但準確率不高且不能完全識別,因此采用后面的全面掃描觀察其特征的方法識別這7個字符。

2.3.3 基于全面掃描識別字符

全面掃描是從上往下,對字符的每一行像素進行掃描,通過每行像素點的分布,行與行之間像素點移動的趨勢,判斷其是否屬于某個特定字符的特征。該方法基本可以識別剩下的7個字符。

比如字符7,掃描圖像下半部分的每一行,如果每行的黑色像素都<4,且只有一段連續的黑色像素,符合這一條件的像素被認為是字符7。其他的6個字符也有各自的全局特征,可以通過類似的方法予以識別。

圖7 剩下的7個字符

經過全面掃描方法處理之后,驗證碼中的19個字符已被全部成功識別。對100個樣本驗證碼中的600個字符進行實驗,全面掃描方法對這7個字符的識別成功率達97%。

3 實驗結果

對作為樣本的100個驗證碼的實驗結果進行分析,并且用文中的算法對另外的100個驗證碼進行了測試,主要測試了破解成功率和破解時間,并對破解失敗的原因作出進一步分析和討論。另外,用同樣的方法對同類驗證碼進行破解,結果證明文中的方法具有一般性。

3.1 成功率

驗證碼的破解主要分為分割和識別兩個階段,在100個樣本中,算法的分割成功率是94%。這表明,在這100個驗證碼中,有94個驗證碼的字符都能被提取出來。對另外100個驗證碼用同樣的算法進行了實驗,這100個驗證碼從未在研究過程中用到,算法的分割成功率為96%,這充分說明算法在預處理和提取這一階段具有較好的通用性。對100個樣本驗證碼的最后識別成功率為83%,對另外100個未在研究過程中使用的驗證碼識別成功率為78%,與樣本驗證碼的成功率相比略有降低,但結果仍較為理想。

3.2 速度

對作為樣本的100個某銀行驗證碼破解,破解一個驗證碼的平均速度只有187 ms,破解最快的是170 ms,破解最慢的為215 ms。以平均速度計算,一秒鐘可以破解5個驗證碼,破解成功率為78%,則每秒鐘可正確識別4個驗證碼,遠快于人類輸入驗證碼的時間。

以平均時間計算,一秒鐘破解4個驗證碼,一分鐘就是240個,一天24小時總共可以破解345600個驗證碼,如果使用多個機器同時灌水或者發送免費郵件,將會消耗極大的網站資源,會對其他用戶正常使用造成影響。

3.3 對同類驗證碼的破解效果

用文中的算法對多個字符分離的驗證碼進行破解實驗,破解對象分別為中國農業銀行和交通銀行的驗證碼,如圖8所示。破解結果如表1所示,結果表明,文中的方法對于識別同類驗證碼具有較好的通用性。都采用基于字符特征的識別方法時,驗證碼采用的字符集越大,識別時間越長,并且呈線性增長,某農業銀行的字符集只有9個數字,所以識別速度較快,而某交通銀行的字符集有27個,則識別速度相對較慢。

圖8 某農業銀行和某交通銀行的驗證碼

表1 對同類驗證碼的破解結果

3.4 改進建議

文中對字符分離驗證碼的破解工作及結果表明此類驗證碼在設計過程中存在極大的缺點和漏洞,針對文中的破解方法,可在諸多方面做出改進使這種破解方法無效。

采用與前景色相似甚至相同的顏色作為噪點,在預處理階段的算法會失去作用,尤其當噪點與字符相交時,這些噪點在字符提取階段會與字符同時被提取,將會嚴重的干擾到字符的識別,尤其對于算法所用的基于字符特征的識別方法,對字符的完整性要求較高,筆畫的缺失和多余都將影響到算法的成功率。

使用粘連機制,字符與字符相連,簡單連通域算法是無法將單個字符提取出的,這樣在分割字符時增加了難度,Yahoo和Google的驗證碼均采用粘連機制,現在還未出現有效的方法破解采用該機制的驗證碼。使用連機制時,若字符長度不定,將會取得更為理想的防機器識別能力。

4 結束語

文中分析了字符分離驗證碼的普遍特點,針對這些特點提出了破解方法,并在識別時介紹了一種基于字符特征破解驗證碼的方法,通過進行實驗得出該方法具有較高準確率和較快速度的特點,最終提出了對此類驗證碼的改進方法。

[1] MOIL S,SUEN C Y,YAMAMOTO K.Historical review of OCR research and development[J].Proceedings of IEEE,1992,80(7):1029 -1058.

[2] SIMARD P,STEINKRAUS D,PLATT J.Best practice for convolutional neural networks applied to visual document analysis[C].Los Alamitos:International Conference on Document Analysis and Recognition(ICDAR),IEEE Computer Society,2003:958 -962.

[3] AHN L,BLUM M,HOPPER N J,et al.The CAPTCHA web page[EB/OL].(2011 -03 -26)[2012 -03 -19]www.captcha.net.

[4] AHN L B,HOPPER M N.CAPTCHA:Using hard AI problems for security[J].Lecture Notes in Computer Sconce,2003,26(9):294 -311.

[5] HOCEVAR S.PWNtcha[EB/OL].(2010 -09 -08)[2012-02 -26]http://caca.Zoy.org.

[6] GREG M,JITENDRA M.Recognising objects in adversarial clutter:breaking a visual CAPTCHA[C].IEEE Conference on Computer Vision and Pattern Recognition(CVPR'03),2003,1:134 -141.

[7] HELLAPILLA K,LARSON K,SIMARD P,et a1.Computers beat humans at single character recognition in readingbased human interaction proofs[C].Stanford University,CA,USA:In Proceedings of the second Conference on Email and Anti-Spam,2005.

[8] YAN J,AHMAD A S E.A low - cost attack on a microsoft CAPTCHA[C].New York,USA:Proceedings of the ACM Conference Off Computer and Communications Security,ACM Press,2008:543 -554.

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
可能是方法不對
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 99久久国产综合精品2023| 亚洲天堂福利视频| 久久国产av麻豆| 女同久久精品国产99国| 97久久精品人人做人人爽| AV在线天堂进入| 精品无码专区亚洲| 中国丰满人妻无码束缚啪啪| 亚洲最新在线| 福利视频99| 国产成人无码AV在线播放动漫| 国产另类视频| 综合色区亚洲熟妇在线| 亚洲一区色| 欧美国产日产一区二区| 久久久91人妻无码精品蜜桃HD| 日本三级欧美三级| 精品伊人久久大香线蕉网站| 六月婷婷精品视频在线观看| 亚洲欧美一级一级a| 亚洲av无码成人专区| 欧美国产日韩一区二区三区精品影视| 在线观看热码亚洲av每日更新| 在线观看国产网址你懂的| 在线精品欧美日韩| 第九色区aⅴ天堂久久香| 国产亚洲精品va在线| 亚洲丝袜第一页| 刘亦菲一区二区在线观看| 一级爆乳无码av| 国产在线观看一区精品| 麻豆精品在线播放| 波多野结衣亚洲一区| 亚洲国产天堂久久综合226114| 国产视频自拍一区| 激情成人综合网| 国产精品视频导航| 国产人免费人成免费视频| 青青国产视频| 夜色爽爽影院18禁妓女影院| 国产主播在线一区| 国产黄视频网站| 午夜日b视频| 一本大道无码高清| 精品国产免费观看一区| 成人免费黄色小视频| 无码网站免费观看| 九九久久精品国产av片囯产区| 毛片免费网址| 白浆免费视频国产精品视频| 久久免费观看视频| a级毛片免费播放| 少妇精品在线| 成年人视频一区二区| 免费A级毛片无码免费视频| 亚洲天堂视频在线免费观看| 国产免费一级精品视频| 91美女视频在线| 狠狠亚洲婷婷综合色香| 91色爱欧美精品www| 在线精品亚洲国产| 国内精品自在自线视频香蕉| V一区无码内射国产| 99尹人香蕉国产免费天天拍| 久久综合五月| 无码一区中文字幕| 亚洲性一区| 五月天丁香婷婷综合久久| 亚洲精品午夜天堂网页| 好久久免费视频高清| 国产成人精品午夜视频'| 国产一区在线观看无码| 亚洲欧美天堂网| 国产视频欧美| 99在线观看视频免费| 国产成人亚洲精品蜜芽影院| 天堂网亚洲系列亚洲系列| 无码中文AⅤ在线观看| 欧美伊人色综合久久天天| аv天堂最新中文在线| 国产精品99一区不卡| 亚洲日韩精品欧美中文字幕 |