自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Web安全驗(yàn)證碼

安全 應(yīng)用安全
圍繞驗(yàn)證碼展開的攻防技術(shù)在Web安全中有著重要地位,本文將從驗(yàn)證碼的工作原理出發(fā),介紹驗(yàn)證碼實(shí)現(xiàn)上容易產(chǎn)生的問題,并對其攻防技術(shù)現(xiàn)狀和未來做一個簡要介紹。

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

[[214068]]

為防止服務(wù)器端的資源被客戶端的計(jì)算機(jī)程序?yàn)E用或攻擊,服務(wù)器需要區(qū)分當(dāng)前用戶是計(jì)算機(jī)還是人類,一般在網(wǎng)站的關(guān)鍵操作位置都會采用驗(yàn)證碼技術(shù)來區(qū)分。圍繞驗(yàn)證碼展開的攻防技術(shù)在Web安全中有著重要地位,本文將從驗(yàn)證碼的工作原理出發(fā),介紹驗(yàn)證碼實(shí)現(xiàn)上容易產(chǎn)生的問題,并對其攻防技術(shù)現(xiàn)狀和未來做一個簡要介紹。

一、前言

全自動區(qū)分計(jì)算機(jī)和人類的圖靈測試(Completely Automated Public Turing test to tell Computers and Humans Apart,簡稱CAPTCHA),俗稱驗(yàn)證碼,是一種區(qū)分用戶是計(jì)算機(jī)或人的全自動化程序。在CAPTCHA測試中,作為服務(wù)器端的計(jì)算機(jī)會自動生成一個問題由用戶來解答。這個問題可以由計(jì)算機(jī)生成并評判,但是必須只有人類才能解答。由于計(jì)算機(jī)無法解答CAPTCHA的問題,所以回答出問題的用戶就可以被認(rèn)為是人類。

在以前的網(wǎng)絡(luò)訪問中,還不存在驗(yàn)證碼的用法,但由于網(wǎng)絡(luò)更加深入地融合到人們的生產(chǎn)生活中,暴力猜測登陸,垃圾廣告貼等在網(wǎng)絡(luò)中泛濫,消耗了大量的服務(wù)器資源同時也可能威脅到服務(wù)器的安全,驗(yàn)證碼作為一種實(shí)用高效技術(shù)被大量使用起來。

Web安全的攻擊與防護(hù)技術(shù)一直是互相促進(jìn)的,驗(yàn)證碼識別技術(shù)的不斷發(fā)展推動著驗(yàn)證碼生成技術(shù)的提高。本文將從驗(yàn)證碼技術(shù)的原理出發(fā),介紹驗(yàn)證碼容易出現(xiàn)的問題以及相關(guān)識別技術(shù),以使讀者對驗(yàn)證碼攻防技術(shù)有一個了解。

二、工作原理

常見的圖形驗(yàn)證碼是與web中的會話相關(guān)聯(lián)的,在一個會話開始時,在需要使用驗(yàn)證碼的地方會生成一個與當(dāng)前會話相關(guān)的驗(yàn)證碼,用戶識別出驗(yàn)證碼后通過填寫表單將數(shù)據(jù)提交給服務(wù)器,服務(wù)器端會驗(yàn)證此次會話中的驗(yàn)證碼是否正確。具體來說,其工作流程如圖1所示:

圖1 驗(yàn)證碼技術(shù)工作原理

對用戶方來說,用戶訪問起始頁面,識別返回頁面中的驗(yàn)證碼,在輸入驗(yàn)證碼和其他信息后提交表單,在服務(wù)器處理后可查看到當(dāng)前操作是否成功。

服務(wù)器在接收到用戶對初始頁面的請求后,會自動創(chuàng)建一個新的會話,同時生成驗(yàn)證碼來關(guān)聯(lián)這個會話,并且生成用戶可見到的驗(yàn)證碼圖片,最后這些頁面返回到用戶的瀏覽器上,用戶此時可看到完整的頁面;在接到用戶提交的表單請求時,服務(wù)器會比較用戶提交的驗(yàn)證碼值并與之前存儲在此會話下的驗(yàn)證碼值做比較,如果一致判斷驗(yàn)證碼是正確,否則認(rèn)為提交的驗(yàn)證碼是錯誤的,可能是客戶端是計(jì)算機(jī)或者用戶識別錯誤。服務(wù)器端進(jìn)行這些處理后將處理結(jié)果反饋給用戶。如果提交的驗(yàn)證碼是正確的,則按照預(yù)定流程進(jìn)行下一步驟,否則回到需要用戶輸入的那個界面上。

三、存在的問題

驗(yàn)證碼作為區(qū)分人與機(jī)器的一道重要屏障,與之相關(guān)的對抗技術(shù)一直在WEB安全研究上有著重要意義。圖片驗(yàn)證碼生成算法以及程序?qū)崿F(xiàn)流程上都有可能帶來問題,容易被攻擊者突破。

1. 圖片驗(yàn)證碼的生成可能存在如下問題

(1) 圖片驗(yàn)證碼的字符空間小

如果選取的字符空間較小,則讓驗(yàn)證碼識別變得相對簡單。字母數(shù)字組合的字符集比單純?yōu)閿?shù)字的字符集效果要好。

(2) 圖片中的字符規(guī)則

字符進(jìn)行變形,扭曲不利于程序的識別,而對人眼識別是無障礙的,但此方法對生成程序來說有一定的難度。

(3) 圖片中缺少干擾圖案

干擾圖案能有效增加驗(yàn)證碼的識別難度,并且對生成程序來說代價小。

2. 在驗(yàn)證碼的程序?qū)崿F(xiàn)流程方面可能存在如下問題

(1) 驗(yàn)證碼固定

一般地,用戶在開始訪問初始頁面時,瀏覽器會向服務(wù)器發(fā)起頁面請求,服務(wù)器此時創(chuàng)建會話,同時返回的頁面里會嵌入驗(yàn)證碼圖片地址,瀏覽器在加載響應(yīng)頁面后,會自動加載驗(yàn)證碼圖片地址。服務(wù)器在接收到驗(yàn)證碼圖片地址的請求時,會對當(dāng)前會話生成一個對應(yīng)的驗(yàn)證碼并且返回驗(yàn)證碼圖片。用戶此時根據(jù)就可根據(jù)驗(yàn)證碼圖片信息填寫表單數(shù)據(jù)來進(jìn)行后面的操作,這時,服務(wù)器如果檢驗(yàn)出提交的驗(yàn)證碼是錯誤的,服務(wù)器會返回頁面提示錯誤然后跳轉(zhuǎn)到初始頁面,因初始頁面內(nèi)嵌了驗(yàn)證碼圖片地址,瀏覽器再次自動刷新驗(yàn)證碼頁面。

如果驗(yàn)證碼輸入錯誤,會在上面的流程里自動刷新驗(yàn)證碼,正常情況下,這個過程看起來是沒有問題的。但是,由于HTTP請求響應(yīng)式的工作原理,使得攻擊者有可能控制驗(yàn)證碼生成頁面請求不被觸發(fā),使得在服務(wù)器上同一會話內(nèi),服務(wù)器端保存的此會話下的驗(yàn)證碼一直有效。

基于此,服務(wù)器端的正確處理應(yīng)該是在驗(yàn)證碼檢驗(yàn)失敗時,就需要設(shè)置此驗(yàn)證碼失效,同時對生成的每一個驗(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àn)證碼在展示的時候直接就是文本方式,這樣就完全失去了使用驗(yàn)證碼的價值了。

(3) 驗(yàn)證碼長度可指定

在頁面上存在參數(shù)可指定驗(yàn)證碼的位數(shù),這可簡化識別工作。此問題的出現(xiàn)也可能是調(diào)試的需要,并發(fā)布時忘記注釋掉相關(guān)代碼而導(dǎo)致。

四、對抗現(xiàn)狀

自驗(yàn)證碼技術(shù)問世以來,其成為自動化程序運(yùn)行的第一大敵人。在利益的驅(qū)動下,突破封鎖技術(shù)自然也會產(chǎn)生。一般來說,驗(yàn)證碼的對抗技術(shù)有如下幾個方面:

1. 避免觸發(fā)驗(yàn)證碼

驗(yàn)證碼的引入會帶來用戶友好度的下降,增加驗(yàn)證碼輸入以及人眼對驗(yàn)證碼識別的可能錯誤等都會帶來不好的使用體驗(yàn)。這對追求用戶體驗(yàn)的網(wǎng)站來說,在沒遇到可疑行為時,其采取的策略是默認(rèn)不開啟驗(yàn)證碼功能,當(dāng)觸發(fā)可疑行為識別規(guī)則時,才會出現(xiàn)驗(yàn)證碼?;诖嗽?,對攻擊方來說,就是盡量避免觸發(fā)可能出現(xiàn)驗(yàn)證碼的規(guī)則。一般可疑行為識別是通過檢查頻繁嘗試并且出錯這個行為來進(jìn)行,基于此的對抗措施則是使用不同的IP來進(jìn)行嘗試,或者等待足夠的時間再次嘗試,這樣讓目標(biāo)網(wǎng)站程序認(rèn)為這些嘗試都是正常的訪問請求,從而在自動化程序端連續(xù)作業(yè)時不會出現(xiàn)驗(yàn)證碼而達(dá)到繞過的目的。

2. 驗(yàn)證碼固定

從前面的驗(yàn)證碼固定問題描述可看出,攻擊者可以在同一個會話下,在獲得第一個驗(yàn)證碼后,后面不再主動觸發(fā)驗(yàn)證碼生成頁面,并且一直使用第一個驗(yàn)證碼就可循環(huán)進(jìn)行后面的表單操作,從而繞過了驗(yàn)證碼的屏障作用。

3. 驗(yàn)證碼機(jī)器自動識別

計(jì)算機(jī)自動識別驗(yàn)證碼,主要原理是通過一定的算法預(yù)先建立驗(yàn)證碼范圍內(nèi)的字體特征庫,再將要識別的驗(yàn)證碼通過同樣的算法生成特征,與之前保存的特征庫進(jìn)行比較,進(jìn)而得到圖片驗(yàn)證碼的值。

一般地,其識別過程有如下圖所示的處理流程:

圖2 驗(yàn)證碼計(jì)算機(jī)識別過程

(1) 去噪處理

主要是去掉圖像里的所有干擾信息,比如背景的點(diǎn),線等。

(2) 圖像二值化

圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出黑白效果。圖像二值化主要是為了將圖像與空白區(qū)分開來,方便后續(xù)步驟的進(jìn)行。

(3) 切片處理

圖片的切片處理是將每個字符所在區(qū)域分離成一個個的圖片,確保一個圖片內(nèi)只有一個文字。

(4) 文字圖片標(biāo)準(zhǔn)化

對切片后的每個字符圖片,還需要進(jìn)行變形修復(fù)處理,比如旋轉(zhuǎn),縮放等操作盡量將每一個字符圖片都調(diào)整到標(biāo)準(zhǔn)格式,減小隨機(jī)度。

(5) 字符模板識別

在最后的字符識別階段,常用是通過模板對比的方法。模板的生成就是通過上述處理過程后,對給定圖片處理后把生成的特征保存下來,并且人工識別輸入其對應(yīng)的字符。在用作識別階段時,就與保存的每個字符特征模板進(jìn)行比較,從中找出最相近的一個字符來。

4. 人工分布式識別

機(jī)器自動識別圖片驗(yàn)證碼,對簡單的情況能有較高的準(zhǔn)確率,但對干擾多,變形復(fù)雜的圖片驗(yàn)證碼,其準(zhǔn)確率會很差。由于圖片驗(yàn)證碼重要度增加,復(fù)雜的圖片驗(yàn)證碼被大量使用,導(dǎo)致近年來出現(xiàn)了利用眾包力量實(shí)現(xiàn)的人工驗(yàn)證碼識別平臺。

其工作原理圖下所示:

圖3 人工分布式識別

自動化程序?qū)⒁R別的驗(yàn)證碼發(fā)送到打碼平臺,打碼平臺再將驗(yàn)證碼發(fā)放給從事驗(yàn)證碼識別工作的人員(俗稱打碼工作),在人工識別后再將值依次返回到自動化程序。由于是人直接參與了驗(yàn)證碼的識別,此方法就讓驗(yàn)證碼完全失去了屏障功能。

五、驗(yàn)證碼未來可能的主要形式

隨著驗(yàn)證碼攻防技術(shù)的對抗升級,驗(yàn)證碼技術(shù)也出現(xiàn)了一些新的發(fā)展動向。

1. 從圖片驗(yàn)證碼自身的發(fā)展來看,主要是圍繞增強(qiáng)人腦交互性來展開的,具體來說有如下幾個方向:

(1) 增強(qiáng)干擾和字符變形

從驗(yàn)證碼的機(jī)器識別可以看出來,增強(qiáng)干擾和字符變形能極大地提高識別難度。像下面的生成的圖片驗(yàn)證碼,對人眼識別來說都存在著一些難度。

(2) 拓展字符空間

常見的圖片驗(yàn)證碼都是數(shù)字或者字母,近年來出現(xiàn)了中文字符作為驗(yàn)證碼,這樣字符空間就增大了很多。

如果字符空間足夠大,試圖通過制作字符模板庫方式來實(shí)現(xiàn)識別的難度就變得很大了。

(3) 增強(qiáng)與用戶的互動性

通過增加與用戶的互動也可增加難度,但因?yàn)檫@類互動都是通過問答題方式來實(shí)現(xiàn),其題庫數(shù)量是否足夠以及是否具有足夠的隨機(jī)性則成為了關(guān)鍵所在。

如下圖所示的問答型驗(yàn)證碼:

2. 從驗(yàn)證碼的信息傳遞途徑和方式來看,有如下幾個方式

(1) 增加信息傳遞途徑也

在原來只通過網(wǎng)頁來傳遞信息的基礎(chǔ)上增加了其他傳遞方式,比如手機(jī)短信等。對于使用手機(jī)短信驗(yàn)證碼,需要確保其關(guān)聯(lián)的手機(jī)號不為攻擊者所控制,否則也將失去保護(hù)意義。因?yàn)橥ㄟ^在手機(jī)里安裝特定app軟件就可以獲得短信內(nèi)容,這對于手機(jī)號碼攻擊者可控的情況下,驗(yàn)證碼可輕松繞過;但如果其攻擊場景是賬號登陸類的,由于手機(jī)號碼不可控,則使得暴力猜測變得不可能實(shí)施。擴(kuò)展驗(yàn)證碼的傳遞途徑需要結(jié)合應(yīng)用場景來使用,確保此途徑不容易被攻擊者獲得。

(2) 利用動態(tài)令牌進(jìn)行一次一密

通過動態(tài)令牌實(shí)現(xiàn)的一次一密方式,就必須通過人工交互才能實(shí)現(xiàn),但此方式也增加了使用成本,只適用于密級要求很高的場合。

(3) 語音方式

語音方式在當(dāng)前網(wǎng)絡(luò)也有出現(xiàn),但主要只是作為方便盲人使用的一個備用方案,但由于智能手機(jī)終端的廣泛普及,以后也有可能成為一個主要的驗(yàn)證碼發(fā)展場景。

隨著技術(shù)的不斷發(fā)展,以后還會出現(xiàn)其他方式的驗(yàn)證碼,但可以肯定的是基于人腦的思維特性來區(qū)別于程序的預(yù)設(shè)特性,至于以后會如何發(fā)展,還是讓我們拭目以待吧。

六、小結(jié)

本文從驗(yàn)證碼概念、工作原理入手,介紹了當(dāng)前驗(yàn)證碼的攻防情況,并且簡要介紹了驗(yàn)證碼的發(fā)展趨勢。

可以肯定的是,不管使用何種方式的驗(yàn)證碼,都會影響用戶體驗(yàn),機(jī)器難以識別的驗(yàn)證碼最后也會影響人眼的識別,驗(yàn)證碼的設(shè)計(jì)者們需要在用戶體驗(yàn)和安全性方面做一個折衷選擇。寄希望于通過驗(yàn)證碼來作為對抗機(jī)器自動化行為的唯一途徑是不可取的,在識別自動化程序發(fā)起的遠(yuǎn)程Web掃描,登陸猜測等方面,推薦架設(shè)WAF類的專業(yè)防護(hù)產(chǎn)品。目前,綠盟科技的WAF產(chǎn)品能對此類問題提供完整的解決方案,有效阻擋即將發(fā)生的安全事件。

【本文是51CTO專欄作者“綠盟科技博客”的原創(chuàng)稿件,轉(zhuǎn)載請通過51CTO聯(lián)系原作者獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2009-06-26 15:17:27

jQuery

2015-03-17 09:28:04

2022-01-20 10:54:23

移動手機(jī)短信驗(yàn)證碼隱患

2020-07-30 09:34:10

安全信息安全Web

2016-10-09 13:33:12

2013-06-19 10:19:59

2020-11-16 07:28:53

驗(yàn)證碼

2009-08-11 14:05:28

JSP驗(yàn)證碼

2009-02-09 14:17:36

2021-01-19 10:29:34

短信驗(yàn)證碼密碼

2015-03-23 17:58:04

驗(yàn)證碼倒計(jì)時并行

2015-09-21 15:31:05

php實(shí)現(xiàn)驗(yàn)證碼

2022-02-11 07:10:15

驗(yàn)證碼

2017-05-16 14:18:08

2018-08-08 09:47:29

短信驗(yàn)證碼APP

2011-11-02 12:43:33

2011-11-02 16:46:41

2019-06-18 07:12:25

驗(yàn)證碼漏洞加密
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號