轉(zhuǎn)帖|行業(yè)資訊|編輯:龔雪|2017-02-07 14:05:28.000|閱讀 526 次
概述:說(shuō)起“驗(yàn)證碼”,恐怕大部分人都會(huì)流露一臉便秘的表情。在搜索引擎里輸入“驗(yàn)證碼” “發(fā)明”這兩個(gè)關(guān)鍵字,搜索頁(yè)面會(huì)彈出成千上萬(wàn)個(gè)表達(dá)群眾不滿(mǎn)的結(jié)果:“誰(shuí)發(fā)明了萬(wàn)惡的驗(yàn)證碼?”“發(fā)明驗(yàn)證碼的人你出來(lái),我保證不打死你”,當(dāng)然這里面很大程度上是某12**6無(wú)良網(wǎng)站給大家留下的心理陰影。那么目前驗(yàn)證碼機(jī)制究竟發(fā)展如何,相對(duì)的破解手法有有哪些?我們現(xiàn)在就來(lái)一探究竟
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
驗(yàn)證碼的誕生,是為了杜絕通過(guò)軟件設(shè)計(jì)的“注冊(cè)機(jī)器人”進(jìn)行惡意注冊(cè),進(jìn)而產(chǎn)生大量的垃圾用戶(hù)(僵尸用戶(hù))以及垃圾點(diǎn)評(píng)信息。輸入驗(yàn)證碼的過(guò)程,其實(shí)是讓機(jī)器判斷你到底是真人還是軟件。“驗(yàn)證碼”的英文名字很拗口,叫CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart),翻譯過(guò)來(lái)是“全自動(dòng)區(qū)分計(jì)算機(jī)和人類(lèi)的圖靈測(cè)試”。
yahoo郵箱在九幾年的時(shí)候,業(yè)務(wù)深受各種郵箱機(jī)器人的困擾,存在著大量的垃圾郵件,于是他們找到了當(dāng)時(shí)仍在讀大學(xué)的路易斯·馮·安(Luis von Ahn),并設(shè)計(jì)了經(jīng)典的圖形驗(yàn)證碼,即通過(guò)簡(jiǎn)單的扭曲圖形文字進(jìn)行機(jī)器的識(shí)別。通過(guò)這個(gè)簡(jiǎn)單的圖形,他們很快的控制住了垃圾郵件的數(shù)量,并將大量的機(jī)器人據(jù)之門(mén)外。
最開(kāi)始的純數(shù)字驗(yàn)證碼是很有愛(ài)的,后來(lái)數(shù)字和字母混合二維碼成為主流,但這仍然容易被破解,于是各家大法被研究出來(lái),有將數(shù)字和字母各種扭曲的,有在背景設(shè)置圖案和噪點(diǎn)干擾的,從此驗(yàn)證碼的發(fā)展就走上了一條畫(huà)風(fēng)越來(lái)越奇特的不歸路。
從還算能忍的這樣:
變成了這樣:
還有這樣:
至此,我們不得不提出一個(gè)問(wèn)題:驗(yàn)證碼真的是必要的嗎?
驗(yàn)證碼不是一個(gè)功能性的需求,他并不能帶來(lái)業(yè)務(wù)的提升,也不能帶來(lái)任何價(jià)值。驗(yàn)證碼只是為了解決機(jī)器問(wèn)題才誕生的。在設(shè)計(jì)和驗(yàn)證碼演化的過(guò)程中,必須同時(shí)考慮安全性和體驗(yàn)。
讓我們老考慮驗(yàn)證碼的最簡(jiǎn)化模型,關(guān)鍵點(diǎn)在于:生成的問(wèn)題能夠由人來(lái)解答,并且機(jī)器難于解答。于是傳統(tǒng)的圖形驗(yàn)證碼的重點(diǎn)就放在了如何生成讓機(jī)器難于解答的圖片上來(lái)。
從上圖看來(lái),相應(yīng)的各種方法已經(jīng)有了相當(dāng)成熟的一些對(duì)抗辦法,更不用說(shuō)現(xiàn)在已經(jīng)廣泛泛濫的打碼平臺(tái)了。
結(jié)合我們安全性和體驗(yàn)兩方面來(lái)講,傳統(tǒng)驗(yàn)證碼在兩方面來(lái)說(shuō)都已經(jīng)不能滿(mǎn)足要求了。現(xiàn)在驗(yàn)證碼識(shí)別方式千千萬(wàn)萬(wàn)那,再?gòu)?fù)雜的驗(yàn)證碼機(jī)制也禁不住各種野生大神、科班程序員輪番上陣蹂躪。目前來(lái)說(shuō),最基本的簡(jiǎn)單驗(yàn)證碼識(shí)別方式一般按照以下幾個(gè)步驟:
1.去干擾
把不需要的信息去除或削弱,比如干擾線、噪點(diǎn)等。其中一個(gè)原理是利用干擾信息與字符的RGB值的差別來(lái)識(shí)別干擾信息。而去除干擾線的算法一般都是對(duì)圖像進(jìn)行曲線檢測(cè),從而識(shí)別出圖像中的干擾線。畢竟干擾線大部分時(shí)間都是連續(xù)的小角度曲線或者孤立在字母外的曲線。
2. 文字分割與標(biāo)準(zhǔn)化
為了能夠識(shí)別出字符,需要把去除干擾信息后的驗(yàn)證碼圖片進(jìn)行分割,把每個(gè)字符作為單獨(dú)的一個(gè)圖片看待。然后對(duì)圖片進(jìn)行適度偏轉(zhuǎn),提高識(shí)別率。假如字符偏向角度相同的話,也可以先旋轉(zhuǎn)后切割。
首先對(duì)圖片像素進(jìn)行掃描:對(duì)于完全沒(méi)有粘連的驗(yàn)證碼來(lái)說(shuō),分割起來(lái)真是十分容易,直接從左到右掃描,在掃描不到文字像素的橫坐標(biāo)處進(jìn)行分割。
3.識(shí)別
單獨(dú)的字符分離出來(lái)后,就要開(kāi)始訓(xùn)練機(jī)器進(jìn)行識(shí)別了。使用比較廣泛的是谷歌開(kāi)發(fā)的光學(xué)字符識(shí)別引擎(Tesseract-OCR):
利用OCR識(shí)別的結(jié)果,雖然看起來(lái)有點(diǎn)傻,但由于是官方調(diào)教的,沒(méi)有針對(duì)同類(lèi)型(同一網(wǎng)站)的驗(yàn)證碼進(jìn)行學(xué)習(xí)。當(dāng)然也可以自己去實(shí)現(xiàn)這個(gè)過(guò)程。最霸氣側(cè)漏的方法當(dāng)然就是訓(xùn)練神經(jīng)網(wǎng)絡(luò)了,由于這是一種模擬神經(jīng)元工作的一種算法,由于需要經(jīng)過(guò)足夠多的樣本學(xué)習(xí),因此對(duì)扭曲的字符識(shí)別率比較高。
除此之外當(dāng)然還有各種各樣的高端識(shí)別算法,等待你們探究。
看過(guò)了這么多林林總總的外部對(duì)抗,目前驗(yàn)證碼機(jī)制自身存在的問(wèn)題還有:
如果題庫(kù)被遍歷完成,那么其安全性無(wú)法保證。12306為什么后面把問(wèn)題變成了圖片呢? 因?yàn)橛泄粽邔⒚看蔚拇鸢概c出現(xiàn)的可選問(wèn)題進(jìn)行了多次重復(fù)遍歷,當(dāng)這個(gè)遍歷到達(dá)一定次數(shù)后,會(huì)發(fā)現(xiàn)某個(gè)答案與某張圖常常會(huì)關(guān)聯(lián)出現(xiàn)(因?yàn)閱?wèn)題必定會(huì)有正確答案),通過(guò)這個(gè)出現(xiàn)概率即可得到答案。于是,12306才把文字變成了現(xiàn)在扭曲的圖片。 并且還有研究人發(fā)現(xiàn),12306的圖片可能大量來(lái)自某百科,通過(guò)逆向使用該公司的圖像識(shí)別服務(wù),可以得到該圖片的部分標(biāo)簽。
2.體驗(yàn)差
過(guò)年的時(shí)候,正常人平均都要答3、4次才能答對(duì)答案。而且部分圖片因?yàn)榉直媛什桓摺⒃偌由峡s小圖片以后,會(huì)更加的看不清了。
基于人類(lèi)用戶(hù)的行為,具體點(diǎn)就是用戶(hù)在進(jìn)行相應(yīng)操作時(shí),會(huì)產(chǎn)生的操作記錄和環(huán)境信息(詳見(jiàn)設(shè)備指紋一文)等。
基于人類(lèi)用戶(hù)行為這條路是基于以下基礎(chǔ)的:
A機(jī)器人的環(huán)境有別于正常用戶(hù)
B機(jī)器人的動(dòng)作或頻率等有別于正常用戶(hù)
C機(jī)器人的在相應(yīng)關(guān)鍵業(yè)務(wù)點(diǎn)的行為邏輯有別于正常用戶(hù)
但是這個(gè)基礎(chǔ)在技術(shù)對(duì)抗上有個(gè)更關(guān)鍵的點(diǎn),在于如何構(gòu)建一個(gè)安全的信道,將這些數(shù)據(jù)回傳回來(lái)。如果這個(gè)信道的采集機(jī)制、加密機(jī)制和傳輸機(jī)制被攻擊者所探知,那么以上采集的信息將沒(méi)有秘密可言。(換句話說(shuō),攻擊者會(huì)偽裝成正常用戶(hù)的行為發(fā)送數(shù)據(jù))
說(shuō)了這么多,未來(lái)驗(yàn)證碼會(huì)如何發(fā)展呢?學(xué)院君表示我們只能拭目以待啦。
更多行業(yè)資訊,更新鮮的技術(shù)動(dòng)態(tài),盡在。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn