大家都知道,極驗驗證首創了行為式的驗證技術,以滑動的驗證形式取代了傳統驗證碼識別的驗證形式。極驗首席磚家也一直告訴大家,傳統的驗證碼很容易被破解,形同虛設。
我想大家肯定有疑問,為什么說傳統驗證碼容易被破解呢?今天就跟隨極驗破解磚家的腳步,帶大家一起了解下傳統驗證碼的破解原理。
為了進行驗證安全的防護,傳統驗證碼有很多的處理方式,包括添加干擾線,添加文理背景,增加噪音,以及扭曲字符,粘連字符和使用空心字符。這些變換都是建立在圖像識別技術的基礎之上的,主要是增加破解的難度,當然顯而易見的是,這樣的變換同樣也增加了人類的識別難度。說到這里,忍不住吐槽了,這種驗證碼簡直是違背人性啊。擋住的都是普通用戶,擋不了破解高手啊。
傳統驗證碼破解算法有很多,不同的處理形式有相對應的破解算法。但是主要的破解步驟卻是一樣,包括驗證碼預處理,字符分割以及字符識別。
極驗破解磚家潛心研習破解大法已有時日,下面就來了解下常用的破解大法有哪些吧!
一、破解大法第一式:驗證碼圖片預處理
預處理的主要方法包括:圖像灰度化,閾值處理算法,迭代法和大律法。
去噪聲的方法主要包括:基於空間域濾波,基於形態學去噪,基於連通域去噪。
這些破解招式這么學術,都是什么鬼,且聽極驗磚家娓娓道來。
a.破解大法第一式第一招:圖像灰度化
灰度化是指在RGB模型中,如果R=G=B時,彩色則會被表示成一種灰度顏色,其中R=G=B的值叫灰度值。因此,灰度圖像每個像素只需一個字節存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。
灰度化方法:分量法、最大值法、平均值法、加權平均法
b.破解大法第一式第二招:閾值處理算法
將圖像進行灰度化之后仍然會有噪聲和干擾線等,那么可以設置一個閾值T,我們需要的目標的閾值可以設置成為大於T,而噪音,干擾的閾值小於T,就可以對目標和干擾進行區分了。極驗破解磚家友情提示,閾值處理算法至關重要,具體破解算法,后續極驗磚家會分享例子給大家。
主要的閾值處理方法:迭代法、大律法、基於HSL色彩空間閾值處理法
c.破解大法第一式第三招:去除噪聲
傳統的驗證碼多會增加噪聲,那么圖片的預處理過程中還需要進行去噪,目前去噪也是相當的容易的了,主要的方法有:基於空間域濾波、基於形態學去噪、基於連通域去噪
各種方法中,基於連通域的去噪方法會比較好一點,能夠盡量保證字符信息的完整性。
二、破解大法第二式:驗證碼字符分割
大部分的識別算法都需要驗證碼字符的分割這一步驟。對破解大法研究頗深的極驗磚家透露,只要能將驗證碼上的字符分割出來, 用現有的機器學習算法一般都可以取得比較好的識別效果。機器學習算法可以有效地解決字符識別問題, 所以有效分割對傳統驗證碼的識別是很有必要的。目前還沒有比較通用的字符分割算法。
當然,如果說能夠應用深度學習的方法,進行大量的圖像識別訓練,將不再需要進行字符分割。一個大的神經網絡可以自己學習認知一只貓,識別字母肯定已經不是難事了,但這並不普遍,目前也是像Google,百度,Facebook等公司取得了比較大的進展。
a.破解大法第二式第一招:非粘連字符分割
投影分割算法
直通域分割算法
b.破解大法第二式第二招:粘連字符分割算法
基於直方圖的分割算法
基於最大連通域的分割算法
基於背景的細化分割算法
c.破解大法第三式:驗證碼字符識別
驗證碼字符的識別一般就是使用機器學習的算法,使用比較簡單的卷積神經網絡就可以進行比較有效的識別。卷積神經網絡的介紹大家可以參考文章《淺析深度學習的模型與應用》,后面極驗磚家會專門再和大家更加細致的探討關於卷積神經網絡的。
在圖像識別技術發達的今天,傳統的字符驗證碼已經無安全性可言,但是驗證安全對於我們來說又是那么的重要。驗證碼肩負着我們每個企業保護用戶賬戶安全,保護網站資源不被惡意薅取,保護網站接口不被盜用。
極驗驗證采用行為式驗證技術,通過200多種維度對用戶的“行為特征”進行人機區分,並且每30分鍾全網動態更新的安全模型庫進一步保障網站安全。這種360度保護網站安全的驗證技術,讓破解的難度和成本大大提高,即使有黑客破解了,但是也會被立即被拉入黑名單。
既然傳統驗證碼充滿着被破解的隱患,已經不再安全了,所以我們應該重視這一塊,用最新的驗證碼技術進行網站安全的防護。