新聞中心
2018年春運(yùn)即將拉開(kāi)帷幕。春運(yùn)又稱“年度全球最大規(guī)模的人口流動(dòng)”,是一部“人民的斗爭(zhēng)史”,起初只是與黃牛斗智斗勇,后來(lái)為了整治黃牛12306不斷升級(jí)驗(yàn)證碼,于是大家開(kāi)始了與驗(yàn)證碼斗智斗勇。那么這種驗(yàn)證碼是否是必須的?且看小編對(duì)Web安全之驗(yàn)證碼的解讀。

環(huán)江網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
為防止服務(wù)器端的資源被客戶端的計(jì)算機(jī)程序?yàn)E用或攻擊,服務(wù)器需要區(qū)分當(dāng)前用戶是計(jì)算機(jī)還是人類,一般在網(wǎng)站的關(guān)鍵操作位置都會(huì)采用驗(yàn)證碼技術(shù)來(lái)區(qū)分。圍繞驗(yàn)證碼展開(kāi)的攻防技術(shù)在Web安全中有著重要地位,本文將從驗(yàn)證碼的工作原理出發(fā),介紹驗(yàn)證碼實(shí)現(xiàn)上容易產(chǎn)生的問(wèn)題,并對(duì)其攻防技術(shù)現(xiàn)狀和未來(lái)做一個(gè)簡(jiǎn)要介紹。
一、前言
全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試(Completely Automated Public Turing test to tell Computers and Humans Apart,簡(jiǎn)稱CAPTCHA),俗稱驗(yàn)證碼,是一種區(qū)分用戶是計(jì)算機(jī)或人的全自動(dòng)化程序。在CAPTCHA測(cè)試中,作為服務(wù)器端的計(jì)算機(jī)會(huì)自動(dòng)生成一個(gè)問(wèn)題由用戶來(lái)解答。這個(gè)問(wèn)題可以由計(jì)算機(jī)生成并評(píng)判,但是必須只有人類才能解答。由于計(jì)算機(jī)無(wú)法解答CAPTCHA的問(wèn)題,所以回答出問(wèn)題的用戶就可以被認(rèn)為是人類。
在以前的網(wǎng)絡(luò)訪問(wèn)中,還不存在驗(yàn)證碼的用法,但由于網(wǎng)絡(luò)更加深入地融合到人們的生產(chǎn)生活中,暴力猜測(cè)登陸,垃圾廣告貼等在網(wǎng)絡(luò)中泛濫,消耗了大量的服務(wù)器資源同時(shí)也可能威脅到服務(wù)器的安全,驗(yàn)證碼作為一種實(shí)用高效技術(shù)被大量使用起來(lái)。
Web安全的攻擊與防護(hù)技術(shù)一直是互相促進(jìn)的,驗(yàn)證碼識(shí)別技術(shù)的不斷發(fā)展推動(dòng)著驗(yàn)證碼生成技術(shù)的提高。本文將從驗(yàn)證碼技術(shù)的原理出發(fā),介紹驗(yàn)證碼容易出現(xiàn)的問(wèn)題以及相關(guān)識(shí)別技術(shù),以使讀者對(duì)驗(yàn)證碼攻防技術(shù)有一個(gè)了解。
二、工作原理
常見(jiàn)的圖形驗(yàn)證碼是與web中的會(huì)話相關(guān)聯(lián)的,在一個(gè)會(huì)話開(kāi)始時(shí),在需要使用驗(yàn)證碼的地方會(huì)生成一個(gè)與當(dāng)前會(huì)話相關(guān)的驗(yàn)證碼,用戶識(shí)別出驗(yàn)證碼后通過(guò)填寫表單將數(shù)據(jù)提交給服務(wù)器,服務(wù)器端會(huì)驗(yàn)證此次會(huì)話中的驗(yàn)證碼是否正確。具體來(lái)說(shuō),其工作流程如圖1所示:
圖1 驗(yàn)證碼技術(shù)工作原理
對(duì)用戶方來(lái)說(shuō),用戶訪問(wèn)起始頁(yè)面,識(shí)別返回頁(yè)面中的驗(yàn)證碼,在輸入驗(yàn)證碼和其他信息后提交表單,在服務(wù)器處理后可查看到當(dāng)前操作是否成功。
服務(wù)器在接收到用戶對(duì)初始頁(yè)面的請(qǐng)求后,會(huì)自動(dòng)創(chuàng)建一個(gè)新的會(huì)話,同時(shí)生成驗(yàn)證碼來(lái)關(guān)聯(lián)這個(gè)會(huì)話,并且生成用戶可見(jiàn)到的驗(yàn)證碼圖片,最后這些頁(yè)面返回到用戶的瀏覽器上,用戶此時(shí)可看到完整的頁(yè)面;在接到用戶提交的表單請(qǐng)求時(shí),服務(wù)器會(huì)比較用戶提交的驗(yàn)證碼值并與之前存儲(chǔ)在此會(huì)話下的驗(yàn)證碼值做比較,如果一致判斷驗(yàn)證碼是正確,否則認(rèn)為提交的驗(yàn)證碼是錯(cuò)誤的,可能是客戶端是計(jì)算機(jī)或者用戶識(shí)別錯(cuò)誤。服務(wù)器端進(jìn)行這些處理后將處理結(jié)果反饋給用戶。如果提交的驗(yàn)證碼是正確的,則按照預(yù)定流程進(jìn)行下一步驟,否則回到需要用戶輸入的那個(gè)界面上。
三、存在的問(wèn)題
驗(yàn)證碼作為區(qū)分人與機(jī)器的一道重要屏障,與之相關(guān)的對(duì)抗技術(shù)一直在WEB安全研究上有著重要意義。圖片驗(yàn)證碼生成算法以及程序?qū)崿F(xiàn)流程上都有可能帶來(lái)問(wèn)題,容易被攻擊者突破。
1. 圖片驗(yàn)證碼的生成可能存在如下問(wèn)題
(1) 圖片驗(yàn)證碼的字符空間小
如果選取的字符空間較小,則讓驗(yàn)證碼識(shí)別變得相對(duì)簡(jiǎn)單。字母數(shù)字組合的字符集比單純?yōu)閿?shù)字的字符集效果要好。
(2) 圖片中的字符規(guī)則
字符進(jìn)行變形,扭曲不利于程序的識(shí)別,而對(duì)人眼識(shí)別是無(wú)障礙的,但此方法對(duì)生成程序來(lái)說(shuō)有一定的難度。
(3) 圖片中缺少干擾圖案
干擾圖案能有效增加驗(yàn)證碼的識(shí)別難度,并且對(duì)生成程序來(lái)說(shuō)代價(jià)小。
2. 在驗(yàn)證碼的程序?qū)崿F(xiàn)流程方面可能存在如下問(wèn)題
(1) 驗(yàn)證碼固定
一般地,用戶在開(kāi)始訪問(wèn)初始頁(yè)面時(shí),瀏覽器會(huì)向服務(wù)器發(fā)起頁(yè)面請(qǐng)求,服務(wù)器此時(shí)創(chuàng)建會(huì)話,同時(shí)返回的頁(yè)面里會(huì)嵌入驗(yàn)證碼圖片地址,瀏覽器在加載響應(yīng)頁(yè)面后,會(huì)自動(dòng)加載驗(yàn)證碼圖片地址。服務(wù)器在接收到驗(yàn)證碼圖片地址的請(qǐng)求時(shí),會(huì)對(duì)當(dāng)前會(huì)話生成一個(gè)對(duì)應(yīng)的驗(yàn)證碼并且返回驗(yàn)證碼圖片。用戶此時(shí)根據(jù)就可根據(jù)驗(yàn)證碼圖片信息填寫表單數(shù)據(jù)來(lái)進(jìn)行后面的操作,這時(shí),服務(wù)器如果檢驗(yàn)出提交的驗(yàn)證碼是錯(cuò)誤的,服務(wù)器會(huì)返回頁(yè)面提示錯(cuò)誤然后跳轉(zhuǎn)到初始頁(yè)面,因初始頁(yè)面內(nèi)嵌了驗(yàn)證碼圖片地址,瀏覽器再次自動(dòng)刷新驗(yàn)證碼頁(yè)面。
如果驗(yàn)證碼輸入錯(cuò)誤,會(huì)在上面的流程里自動(dòng)刷新驗(yàn)證碼,正常情況下,這個(gè)過(guò)程看起來(lái)是沒(méi)有問(wèn)題的。但是,由于HTTP請(qǐng)求響應(yīng)式的工作原理,使得攻擊者有可能控制驗(yàn)證碼生成頁(yè)面請(qǐng)求不被觸發(fā),使得在服務(wù)器上同一會(huì)話內(nèi),服務(wù)器端保存的此會(huì)話下的驗(yàn)證碼一直有效。
基于此,服務(wù)器端的正確處理應(yīng)該是在驗(yàn)證碼檢驗(yàn)失敗時(shí),就需要設(shè)置此驗(yàn)證碼失效,同時(shí)對(duì)生成的每一個(gè)驗(yàn)證碼也需要設(shè)置有效期。
(2) 驗(yàn)證碼的字符串值出現(xiàn)在返回的響應(yīng)中
這是屬于程序編碼考慮不當(dāng)導(dǎo)致,比如忘記注釋掉調(diào)試信息導(dǎo)致。驗(yàn)證碼可能出現(xiàn)在響應(yīng)包中的Cookie, URL, 頁(yè)面注釋,甚至驗(yàn)證碼在展示的時(shí)候直接就是文本方式,這樣就完全失去了使用驗(yàn)證碼的價(jià)值了。
(3) 驗(yàn)證碼長(zhǎng)度可指定
在頁(yè)面上存在參數(shù)可指定驗(yàn)證碼的位數(shù),這可簡(jiǎn)化識(shí)別工作。此問(wèn)題的出現(xiàn)也可能是調(diào)試的需要,并發(fā)布時(shí)忘記注釋掉相關(guān)代碼而導(dǎo)致。
四、對(duì)抗現(xiàn)狀
自驗(yàn)證碼技術(shù)問(wèn)世以來(lái),其成為自動(dòng)化程序運(yùn)行的第一大敵人。在利益的驅(qū)動(dòng)下,突破封鎖技術(shù)自然也會(huì)產(chǎn)生。一般來(lái)說(shuō),驗(yàn)證碼的對(duì)抗技術(shù)有如下幾個(gè)方面:
1. 避免觸發(fā)驗(yàn)證碼
驗(yàn)證碼的引入會(huì)帶來(lái)用戶友好度的下降,增加驗(yàn)證碼輸入以及人眼對(duì)驗(yàn)證碼識(shí)別的可能錯(cuò)誤等都會(huì)帶來(lái)不好的使用體驗(yàn)。這對(duì)追求用戶體驗(yàn)的網(wǎng)站來(lái)說(shuō),在沒(méi)遇到可疑行為時(shí),其采取的策略是默認(rèn)不開(kāi)啟驗(yàn)證碼功能,當(dāng)觸發(fā)可疑行為識(shí)別規(guī)則時(shí),才會(huì)出現(xiàn)驗(yàn)證碼。基于此原理,對(duì)攻擊方來(lái)說(shuō),就是盡量避免觸發(fā)可能出現(xiàn)驗(yàn)證碼的規(guī)則。一般可疑行為識(shí)別是通過(guò)檢查頻繁嘗試并且出錯(cuò)這個(gè)行為來(lái)進(jìn)行,基于此的對(duì)抗措施則是使用不同的IP來(lái)進(jìn)行嘗試,或者等待足夠的時(shí)間再次嘗試,這樣讓目標(biāo)網(wǎng)站程序認(rèn)為這些嘗試都是正常的訪問(wèn)請(qǐng)求,從而在自動(dòng)化程序端連續(xù)作業(yè)時(shí)不會(huì)出現(xiàn)驗(yàn)證碼而達(dá)到繞過(guò)的目的。
2. 驗(yàn)證碼固定
從前面的驗(yàn)證碼固定問(wèn)題描述可看出,攻擊者可以在同一個(gè)會(huì)話下,在獲得第一個(gè)驗(yàn)證碼后,后面不再主動(dòng)觸發(fā)驗(yàn)證碼生成頁(yè)面,并且一直使用第一個(gè)驗(yàn)證碼就可循環(huán)進(jìn)行后面的表單操作,從而繞過(guò)了驗(yàn)證碼的屏障作用。
3. 驗(yàn)證碼機(jī)器自動(dòng)識(shí)別
計(jì)算機(jī)自動(dòng)識(shí)別驗(yàn)證碼,主要原理是通過(guò)一定的算法預(yù)先建立驗(yàn)證碼范圍內(nèi)的字體特征庫(kù),再將要識(shí)別的驗(yàn)證碼通過(guò)同樣的算法生成特征,與之前保存的特征庫(kù)進(jìn)行比較,進(jìn)而得到圖片驗(yàn)證碼的值。
一般地,其識(shí)別過(guò)程有如下圖所示的處理流程:
圖2 驗(yàn)證碼計(jì)算機(jī)識(shí)別過(guò)程
(1) 去噪處理
主要是去掉圖像里的所有干擾信息,比如背景的點(diǎn),線等。
(2) 圖像二值化
圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出黑白效果。圖像二值化主要是為了將圖像與空白區(qū)分開(kāi)來(lái),方便后續(xù)步驟的進(jìn)行。
(3) 切片處理
圖片的切片處理是將每個(gè)字符所在區(qū)域分離成一個(gè)個(gè)的圖片,確保一個(gè)圖片內(nèi)只有一個(gè)文字。
(4) 文字圖片標(biāo)準(zhǔn)化
對(duì)切片后的每個(gè)字符圖片,還需要進(jìn)行變形修復(fù)處理,比如旋轉(zhuǎn),縮放等操作盡量將每一個(gè)字符圖片都調(diào)整到標(biāo)準(zhǔn)格式,減小隨機(jī)度。
(5) 字符模板識(shí)別
在最后的字符識(shí)別階段,常用是通過(guò)模板對(duì)比的方法。模板的生成就是通過(guò)上述處理過(guò)程后,對(duì)給定圖片處理后把生成的特征保存下來(lái),并且人工識(shí)別輸入其對(duì)應(yīng)的字符。在用作識(shí)別階段時(shí),就與保存的每個(gè)字符特征模板進(jìn)行比較,從中找出最相近的一個(gè)字符來(lái)。
4. 人工分布式識(shí)別
機(jī)器自動(dòng)識(shí)別圖片驗(yàn)證碼,對(duì)簡(jiǎn)單的情況能有較高的準(zhǔn)確率,但對(duì)干擾多,變形復(fù)雜的圖片驗(yàn)證碼,其準(zhǔn)確率會(huì)很差。由于圖片驗(yàn)證碼重要度增加,復(fù)雜的圖片驗(yàn)證碼被大量使用,導(dǎo)致近年來(lái)出現(xiàn)了利用眾包力量實(shí)現(xiàn)的人工驗(yàn)證碼識(shí)別平臺(tái)。
其工作原理圖下所示:
圖3 人工分布式識(shí)別
自動(dòng)化程序?qū)⒁R(shí)別的驗(yàn)證碼發(fā)送到打碼平臺(tái),打碼平臺(tái)再將驗(yàn)證碼發(fā)放給從事驗(yàn)證碼識(shí)別工作的人員(俗稱打碼工作),在人工識(shí)別后再將值依次返回到自動(dòng)化程序。由于是人直接參與了驗(yàn)證碼的識(shí)別,此方法就讓驗(yàn)證碼完全失去了屏障功能。
五、驗(yàn)證碼未來(lái)可能的主要形式
隨著驗(yàn)證碼攻防技術(shù)的對(duì)抗升級(jí),驗(yàn)證碼技術(shù)也出現(xiàn)了一些新的發(fā)展動(dòng)向。
1. 從圖片驗(yàn)證碼自身的發(fā)展來(lái)看,主要是圍繞增強(qiáng)人腦交互性來(lái)展開(kāi)的,具體來(lái)說(shuō)有如下幾個(gè)方向:
(1) 增強(qiáng)干擾和字符變形
從驗(yàn)證碼的機(jī)器識(shí)別可以看出來(lái),增強(qiáng)干擾和字符變形能極大地提高識(shí)別難度。像下面的生成的圖片驗(yàn)證碼,對(duì)人眼識(shí)別來(lái)說(shuō)都存在著一些難度。
(2) 拓展字符空間
常見(jiàn)的圖片驗(yàn)證碼都是數(shù)字或者字母,近年來(lái)出現(xiàn)了中文字符作為驗(yàn)證碼,這樣字符空間就增大了很多。
如果字符空間足夠大,試圖通過(guò)制作字符模板庫(kù)方式來(lái)實(shí)現(xiàn)識(shí)別的難度就變得很大了。
(3) 增強(qiáng)與用戶的互動(dòng)性
通過(guò)增加與用戶的互動(dòng)也可增加難度,但因?yàn)檫@類互動(dòng)都是通過(guò)問(wèn)答題方式來(lái)實(shí)現(xiàn),其題庫(kù)數(shù)量是否足夠以及是否具有足夠的隨機(jī)性則成為了關(guān)鍵所在。
如下圖所示的問(wèn)答型驗(yàn)證碼:
2. 從驗(yàn)證碼的信息傳遞途徑和方式來(lái)看,有如下幾個(gè)方式
(1) 增加信息傳遞途徑也
在原來(lái)只通過(guò)網(wǎng)頁(yè)來(lái)傳遞信息的基礎(chǔ)上增加了其他傳遞方式,比如手機(jī)短信等。對(duì)于使用手機(jī)短信驗(yàn)證碼,需要確保其關(guān)聯(lián)的手機(jī)號(hào)不為攻擊者所控制,否則也將失去保護(hù)意義。因?yàn)橥ㄟ^(guò)在手機(jī)里安裝特定app軟件就可以獲得短信內(nèi)容,這對(duì)于手機(jī)號(hào)碼攻擊者可控的情況下,驗(yàn)證碼可輕松繞過(guò);但如果其攻擊場(chǎng)景是賬號(hào)登陸類的,由于手機(jī)號(hào)碼不可控,則使得暴力猜測(cè)變得不可能實(shí)施。擴(kuò)展驗(yàn)證碼的傳遞途徑需要結(jié)合應(yīng)用場(chǎng)景來(lái)使用,確保此途徑不容易被攻擊者獲得。
(2) 利用動(dòng)態(tài)令牌進(jìn)行一次一密
通過(guò)動(dòng)態(tài)令牌實(shí)現(xiàn)的一次一密方式,就必須通過(guò)人工交互才能實(shí)現(xiàn),但此方式也增加了使用成本,只適用于密級(jí)要求很高的場(chǎng)合。
(3) 語(yǔ)音方式
語(yǔ)音方式在當(dāng)前網(wǎng)絡(luò)也有出現(xiàn),但主要只是作為方便盲人使用的一個(gè)備用方案,但由于智能手機(jī)終端的廣泛普及,以后也有可能成為一個(gè)主要的驗(yàn)證碼發(fā)展場(chǎng)景。
隨著技術(shù)的不斷發(fā)展,以后還會(huì)出現(xiàn)其他方式的驗(yàn)證碼,但可以肯定的是基于人腦的思維特性來(lái)區(qū)別于程序的預(yù)設(shè)特性,至于以后會(huì)如何發(fā)展,還是讓我們拭目以待吧。
六、小結(jié)
本文從驗(yàn)證碼概念、工作原理入手,介紹了當(dāng)前驗(yàn)證碼的攻防情況,并且簡(jiǎn)要介紹了驗(yàn)證碼的發(fā)展趨勢(shì)。
可以肯定的是,不管使用何種方式的驗(yàn)證碼,都會(huì)影響用戶體驗(yàn),機(jī)器難以識(shí)別的驗(yàn)證碼最后也會(huì)影響人眼的識(shí)別,驗(yàn)證碼的設(shè)計(jì)者們需要在用戶體驗(yàn)和安全性方面做一個(gè)折衷選擇。寄希望于通過(guò)驗(yàn)證碼來(lái)作為對(duì)抗機(jī)器自動(dòng)化行為的唯一途徑是不可取的,在識(shí)別自動(dòng)化程序發(fā)起的遠(yuǎn)程Web掃描,登陸猜測(cè)等方面,推薦架設(shè)WAF類的專業(yè)防護(hù)產(chǎn)品。目前,綠盟科技的WAF產(chǎn)品能對(duì)此類問(wèn)題提供完整的解決方案,有效阻擋即將發(fā)生的安全事件。
【本文是專欄作者“綠盟科技博客”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)聯(lián)系原作者獲取授權(quán)】
戳這里,看該作者更多好文
分享題目:淺談Web安全驗(yàn)證碼
轉(zhuǎn)載源于:http://www.5511xx.com/article/dhepgoc.html


咨詢
建站咨詢
