極驗驗證:傳統驗證碼破解演算法淺析

極客小蝸牛發表於2016-08-03

大家都知道,極驗驗證首創了行為式的驗證技術,以滑動的驗證形式取代了傳統驗證碼識別的驗證形式。極驗首席磚家也一直告訴大家,傳統的驗證碼很容易被破解,形同虛設。

我想大家肯定有疑問,為什麼說傳統驗證碼容易被破解呢?今天就跟隨極驗破解磚家的腳步,帶大家一起了解下傳統驗證碼的破解原理。

enter image description here

為了進行驗證安全的防護,傳統驗證碼有很多的處理方式,包括新增干擾線,新增文理背景,增加噪音,以及扭曲字元,粘連字元和使用空心字元。這些變換都是建立在影像識別技術的基礎之上的,主要是增加破解的難度,當然顯而易見的是,這樣的變換同樣也增加了人類的識別難度。說到這裡,忍不住吐槽了,這種驗證碼簡直是違揹人性啊。擋住的都是普通使用者,擋不了破解高手啊。

傳統驗證碼破解演算法有很多,不同的處理形式有相對應的破解演算法。但是主要的破解步驟卻是一樣,包括驗證碼預處理,字元分割以及字元識別。

極驗破解磚家潛心研習破解大法已有時日,下面就來了解下常用的破解大法有哪些吧! enter image description here

一、破解大法第一式:驗證碼圖片預處理

預處理的主要方法包括:影像灰度化,閾值處理演算法,迭代法和大律法。 去噪聲的方法主要包括:基於空間域濾波,基於形態學去噪,基於連通域去噪。 這些破解招式這麼學術,都是什麼鬼,且聽極驗磚家娓娓道來。

a.破解大法第一式第一招:影像灰度化

灰度化是指在RGB模型中,如果R=G=B時,彩色則會被表示成一種灰度顏色,其中R=G=B的值叫灰度值。因此,灰度影像每個畫素只需一個位元組存放灰度值(又稱強度值、亮度值),灰度範圍為0-255。 灰度化方法:分量法、最大值法、平均值法、加權平均法

b.破解大法第一式第二招:閾值處理演算法

將影像進行灰度化之後仍然會有噪聲和干擾線等,那麼可以設定一個閾值T,我們需要的目標的閾值可以設定成為大於T,而噪音,干擾的閾值小於T,就可以對目標和干擾進行區分了。極驗破解磚家友情提示,閾值處理演算法至關重要,具體破解演算法,後續極驗磚家會分享例子給大家。 主要的閾值處理方法:迭代法、大律法、基於HSL色彩空間閾值處理法

b.破解大法第一式第三招:去除噪聲

傳統的驗證碼多會增加噪聲,那麼圖片的預處理過程中還需要進行去噪,目前去噪也是相當的容易的了,主要的方法有:基於空間域濾波、基於形態學去噪、基於連通域去噪 各種方法中,基於連通域的去噪方法會比較好一點,能夠儘量保證字元資訊的完整性。

二、破解大法第二式:驗證碼字元分割

大部分的識別演算法都需要驗證碼字元的分割這一步驟。對破解大法研究頗深的極驗磚家透露,只要能將驗證碼上的字元分割出來, 用現有的機器學習演算法一般都可以取得比較好的識別效果。機器學習演算法可以有效地解決字元識別問題, 所以有效分割對傳統驗證碼的識別是很有必要的。目前還沒有比較通用的字元分割演算法。 當然,如果說能夠應用深度學習的方法,進行大量的影像識別訓練,將不再需要進行字元分割。一個大的神經網路可以自己學習認知一隻貓,識別字母肯定已經不是難事了,但這並不普遍,目前也是像Google,百度,Facebook等公司取得了比較大的進展。

a.破解大法第二式第一招:非粘連字元分割

投影分割演算法

直通域分割演算法

b.破解大法第二式第二招:粘連字元分割演算法

基於直方圖的分割演算法

基於最大連通域的分割演算法

基於背景的細化分割演算法

三、破解大法第三式:驗證碼字元識別

驗證碼字元的識別一般就是使用機器學習的演算法,使用比較簡單的卷積神經網路就可以進行比較有效的識別。

enter image description here

在影像識別技術發達的今天,傳統的字元驗證碼已經無安全性可言,但是驗證安全對於我們來說又是那麼的重要。驗證碼肩負著我們每個企業保護使用者賬戶安全,保護網站資源不被惡意薅取,保護網站介面不被盜用。

極驗驗證採用行為式驗證技術,通過200多種維度對使用者的“行為特徵”進行人機區分,並且每30分鐘全網動態更新的安全模型庫進一步保障網站安全。這種360度保護網站安全的驗證技術,讓破解的難度和成本大大提高,即使有黑客破解了,但是也會被立即被拉入黑名單。

既然傳統驗證碼充滿著被破解的隱患,已經不再安全了,所以我們應該重視這一塊,用最新的驗證碼技術進行網站安全的防護。 enter image description here

相關文章