亚洲国产精品乱码一区二区,美景房屋2免费观看,哎呀哎呀在线观看视频高清国语,从镜子里看我是怎么C哭你

Article / 文章中心

驗證碼的前世今生(前世篇)

發(fā)布時間:2020-04-07 點擊數(shù):3856

來源:FreeBuf(黑客與極客)

編輯:劉光昕

常在網(wǎng)上晃悠的人,對上面這張圖都不會陌生。特別是在注冊新賬號、確認交易時,它們都會頻繁出現(xiàn),要求我們輸入正確的驗證碼,那這些看上去跟我們要做的事情完全無關(guān)的驗證碼到底有何作用呢?

0×1誕生

首先,先介紹下驗證碼程序的提出者,路易斯·馮·安(Luis von Ahn)。2002年,路易斯和他的小伙伴在卡內(nèi)基梅隆第一次提出了CAPTCHA(驗證碼)這樣一個程序概念。該程序是指,向請求的發(fā)起方提出問題,能正確回答的即是人類,反之則為機器。這個程序基于這樣一個重要假設(shè):提出的問題要容易被人類解答,并且讓機器無法解答。

在當(dāng)時的條件下,識別扭曲的圖形,對于機器來說還是一個很艱難的任務(wù),而對于人來說,則相對可以接受。yahoo在當(dāng)時第一個應(yīng)用了圖形化驗證碼這個產(chǎn)品,很快解決了yahoo郵箱上的垃圾郵件問題,因此圖形類驗證碼開始了大發(fā)展時期。

0×2發(fā)展與問題

圖形化驗證碼在被證明有效后,在互聯(lián)網(wǎng)上迅速得到了推廣。國內(nèi)外各大網(wǎng)站,在關(guān)鍵的業(yè)務(wù)點上都加入了這一類型的驗證碼。

首先,由于開發(fā)者水平的良莠不齊,導(dǎo)致驗證碼本身的實現(xiàn)存在問題,從而導(dǎo)致漏洞可以繞過,常見的有以下幾種類型:

[1] 驗證碼的生成邏輯、答案用戶可見

如將驗證碼答案輸出到頁面中、寫在cookie里。打比方就是說,在發(fā)卷的時候,把答案寫在了卷子背面。(老師再也不用擔(dān)心我的成績)

[2] 驗證碼的生命周期未控制好

如驗證碼可以重復(fù)使用、不設(shè)超時。驗證一次,永久使用。

[3] 業(yè)務(wù)邏輯與驗證碼結(jié)合點存在問題

如修改業(yè)務(wù)參數(shù)可導(dǎo)致不用校驗驗證碼也可通過、甚至驗證碼就是擺設(shè)。結(jié)合到具體的業(yè)務(wù)點上有什么危害呢?

a. 驗證碼寫在cookie中。此處可導(dǎo)致旅客信息泄露。

?

b. 驗證碼與圖片存在對應(yīng)關(guān)系,因此直接訪問html即可得到答案。此處可導(dǎo)致撞庫與暴力破解密碼。

?
(上述兩例轉(zhuǎn)自烏云)

0×3圖片驗證碼對抗與攻擊升級

在開篇我們提到了一個重要的假設(shè):

CAPTCHA提出的問題要容易被人類解答,并且讓機器無法解答。

實際上,CAPTCHA所要處理的問題是:將普通人與惡意的用戶(黑客、垃圾消息發(fā)送者)區(qū)分開來。那當(dāng)時間點到達2016年時,黑客們與普通用戶之間的差距已經(jīng)很大了(想象下中國足球隊對巴西足球隊,而且此時留給中國隊的時間已經(jīng)不多了)。

因此,CAPTCHA在圖片驗證碼這一應(yīng)用點上已經(jīng)無法滿足這一假設(shè)了。在這段時間內(nèi),出現(xiàn)了很多的加強和識別圖形驗證碼的方法(每一種方法的詳細原理和解釋,可以參見wooyun drops,在此不做詳述):

?

附上部分名詞解釋:

 

?

如上圖所示,原始的圖像使用了字體旋轉(zhuǎn)、背景色混淆等手段,在專業(yè)的驗證碼工具面前,也就是幾個命令拼接即可完成識別

?

如上圖所示,是一個驗證碼識別軟件自建字庫的過程,通過回車確認驗證碼識別正確,如有錯誤,稍帶修改繼續(xù)。當(dāng)保存了上千個正確識別的字庫后,該程序便可達到一個可用的可用的準確率。(其實若不不做其他限制,此時準確率在30%以上時,即可造成很大的危害,畢竟對于攻擊者來說,發(fā)3個包與發(fā)1個包的成本差別不大)

看到這里,客戶們大概可以回答這個問題了:

為什么我用了驗證碼還是會被刷?

那普通驗證碼難道沒用了嗎?

那倒也不是,安全是一個博弈的過程。綜合使用之前提到的驗證碼技術(shù)(特別是字體粘連等),并且保持關(guān)注和變化,攻擊者的識別率也比較低。當(dāng)攻擊的成本大于可獲得的利益時,自然就沒人來攻擊了。(普通用戶在此應(yīng)強烈要求存在感)

此時,雖然兩方大小上略有差距,但是總體戰(zhàn)斗力還算是勉強打個平手,互相出招而已。只是隨著戰(zhàn)火的升級,個人輪番上陣后,驗證碼已經(jīng)違背了他最初設(shè)計時的初衷:對普通用戶的友好性逐漸消失。而普通用戶的體驗也就成了這場戰(zhàn)爭中的犧牲品,這也就造就了一批有一批被用戶吐槽的無法辨認的驗證碼。



?

正當(dāng)普通用戶們不斷吐槽的時候,程序員表示這個鍋不想背但是也得背。因為業(yè)務(wù)總是要做的,而攻擊者們也是要吃飯的,升級了驗證碼的成本,也就限制了風(fēng)險的等級,于是就變成了這樣一個模式╮(╯_╰)╭:

程序員:熬一晚上升級
攻擊者:熬一晚上破解
程序員:熬兩晚上升級
攻擊者:熬兩晚上破解
....(心疼)...

大家就在這種你方唱罷我登臺的情況下看似和睦的度過了一段時間。

0×4 圖片驗證碼的沒落

在日日夜夜的對抗中,攻擊者想到了一個辦法,可以一勞永逸的解決圖片驗證碼的問題。在我對這些搞灰產(chǎn)的人們表示憧憬之前,先說點題外話。

2009年,google買下了CMU的一個項目:recaptcha。這個項目是CAPTCHA的進階版本。它所基于的假設(shè)與CAPTCHA一致,但是它同時讓用戶識別兩張圖片,一張用于驗證用戶身份,而另一張用于幫助難以用機器識別的電子文檔。

?

恩,如果讀者有從事此類灰產(chǎn)相關(guān)工作的人,請注意recaptcha右下角的小字(stop spam.read books看看這情懷)。

而recaptcha的作者,當(dāng)然又是:路易斯·馮·安。在recaptcha的基礎(chǔ)上,路易斯進一步提出了一個概念:人類計算(Human Computation) 。

簡單來說,他希望借由計算機和網(wǎng)絡(luò)平臺,發(fā)揮人類技能,去解決大規(guī)模、復(fù)雜的問題,具體到recaptcha項目來說,就是借助大家的力量去幫助數(shù)字化書籍。(該思想的具體應(yīng)用還包括一個叫ESP GAME的游戲以及后面會提到的no recaptcha)

但是,在2004年(我能搜到這個新聞的最早時間),就有人已經(jīng)完美的實現(xiàn)了這個概念:人工打碼,并且起源地:中國(此處我應(yīng)該感到自豪嗎)。

?

所謂的人工打碼就是,將驗證碼的請求轉(zhuǎn)發(fā)給某平臺,該平臺會將這個信息發(fā)送給平臺上的打碼工,然后打碼工人識別后,將答案反送回請求者。通過打碼平臺的api,攻擊者可以寫程序?qū)崿F(xiàn)對目標的自動化操作,而驗證碼的部分只要交給打碼平臺就可以了。

?

打碼平臺在國內(nèi)市場上的火爆,有幾個原因:

[1].從2006年開始,國內(nèi)互聯(lián)網(wǎng)的迅猛發(fā)展,使得流量變現(xiàn)成為了可能。各種郵件營銷、SEO、IM工具等都迫切的需要穩(wěn)定的可以繞過圖形驗證碼的方法。而近些年興起的基于數(shù)據(jù)的詐騙、賬號盜取等更進一步加劇了這個趨勢。

[2].打碼平臺的爆發(fā)式發(fā)展也同時得益于中國經(jīng)濟蓬勃發(fā)展的原因之一:人口多并且人力成本低。網(wǎng)絡(luò)上一種常見的網(wǎng)賺模式,就是打碼工模式,一個只要會上網(wǎng),能識別驗證碼的人就可以參與。PS:難道你沒有看見過下面這些廣告嗎?大學(xué)生、大媽,無需學(xué)歷,只要會上網(wǎng)、會打字,一天包賺XXXXX。當(dāng)然其中除了打碼平臺,還有很多騙子。

可以打碼的類型包括:
1. 普通字母驗證碼
2. 中文驗證碼
3. 鼠標類型類驗證碼
4. 選擇題類型(比如某些網(wǎng)游中做任何會遇到的驗證碼)
5. 旋轉(zhuǎn)類驗證碼
6. 知識常識問答型驗證碼

以上驗證碼的價格在平臺上都是明碼標價,普通的字母驗證碼1條在1分錢左右,而知識問答類在6分錢左右,相較于利用這些灰產(chǎn)所會產(chǎn)生的利益,真是件美物廉,重點是還非常穩(wěn)定。

同時我注意到國外的價格現(xiàn)在與國內(nèi)的價格已經(jīng)相差不大,現(xiàn)在美國的價錢約為$1.5/1000,美國的打碼工已經(jīng)向東南亞擴展。打碼平臺一出現(xiàn),2.2中提到的加強驗證碼的方法都無用了。因為不管你怎么變化,驗證碼總需要是人類能夠通過的。

0×5 新的征程

打碼平臺的出現(xiàn),雖然沒有從理論上打破CAPTCHA的原則,但是也從事實上擊破了防止程序自動提交的防御,因此我們需要新型的安全的驗證方式。這些探索也帶來了現(xiàn)在各種多樣的驗證碼形式,這些我們將在下篇探討。

最后用一個“富有情懷”的圖片結(jié)束。

?

這張圖不是來自改變世界的極客,也不是來自富有愛心的藝術(shù)家。它來自某知名打碼平臺的官網(wǎng),是不是太有情懷了?(你們的確改變了我們的工作方式)

面對這樣的情懷,我想我現(xiàn)在只能做一件事情。

?

     縱觀驗證碼的發(fā)展進程,不難發(fā)現(xiàn),未來的驗證碼肯定是朝著安全與體驗的平衡的方向發(fā)展。隨著人工智能技術(shù)的發(fā)展,整個驗證領(lǐng)域在兼顧安全與體驗雙要素的同時,將變得更加智能化、無感化,對正常用戶的打擾將逐漸消失。

 新昕科技 www.newxtc.com ,創(chuàng)始團隊來自百度旗下去哪兒、易寶支付、聯(lián)動優(yōu)勢、高陽捷訊(19pay)等支付及航旅知名企業(yè),歷時3年時間,在價值百萬的風(fēng)控引擎基礎(chǔ)上 ,訓(xùn)練出“防短信轟炸”智能模型,徹底解決“安全”與“用戶體驗”的矛盾,產(chǎn)品經(jīng)理只需專注用戶體驗,無需為安全讓步。

  1)無感:去類12306、對缺口拼圖、拖動等所謂人機驗證有感方式。 

 

化繁為簡,簡單到只需輸入手機號,還產(chǎn)品本來面目

  2)保障:攻防對抗大數(shù)據(jù)訓(xùn)練的 AI模型,去前端交互驗證方式,后端防御確保短信安全。

     比如,同一個IP ,即使有1萬個正常用戶同時共同使用,可以確保放行,但常規(guī)的防控大多數(shù)被誤攔。

      反之,攻擊者控制1萬臺主機,1萬個不同IP、手機,也保證攔截,但常規(guī)的防控對此無能為力。

    

    如何做到的, 基于三層AI防御體系,

     報文對抗層 在最外層應(yīng)用加解密及混淆技術(shù),對抗普通的攻擊,

     蜂窩防護層 由時空主體組成蜂窩,確保被攻擊后蜂窩之間互不影響,縮小受影響的范圍,

     安全氣囊   在確保老用戶不受影響下, 根據(jù)攻擊規(guī)模自動啟停并進行動態(tài)控制。

 

  3)高效:價值百萬的風(fēng)控引擎濃縮的10M 短信防火墻安裝包,本地部署運行,毫秒級響應(yīng)。

  避免“云模式”的網(wǎng)絡(luò)延時問題,導(dǎo)致滑動條出不來等情

 

關(guān)鍵技術(shù)說明:

    懸浮式指標引擎加載AI模型,懸浮于磁盤超高速運行,隨輸入的業(yè)務(wù)數(shù)據(jù)生成統(tǒng)計指標,提供給決策引擎做進一步分析處理,

 決策引擎加載“短信防轟炸”AI模型和指標后,和輸入的業(yè)務(wù)數(shù)據(jù)流做邏輯判斷后,輸出風(fēng)險結(jié)果,響應(yīng)速度達到恐怖的1毫秒。

總結(jié):隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,我們每日都離不開與互聯(lián)網(wǎng)的交互。短信驗證碼作為互聯(lián)網(wǎng)交互中的重要環(huán)節(jié),保衛(wèi)著網(wǎng)站的安全以及我們的信息安全。用戶體驗差、毫無安全性可言的圖片驗證碼將退出歷史舞臺,未來將會是安全與體驗雙重保障的驗證碼的時代。