新聞中心
看完《驗(yàn)證碼的前世今生(前世篇)》也許第一感覺就是Winter is coming,互聯(lián)網(wǎng)的人機(jī)對抗到了最黑暗的時刻。柳暗花明又一村,最黑暗的時刻也是光明即將來臨的時刻——在傳統(tǒng)驗(yàn)證碼的末日新的反向圖靈測試機(jī)制浴火重生。

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、婁星網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為婁星等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
0×1 驗(yàn)證碼的劃代標(biāo)準(zhǔn)
在介紹新的反向圖靈測試機(jī)制前,首先我們對驗(yàn)證碼進(jìn)行劃代對比。通過驗(yàn)證碼的劃代對比我們能更清楚新型驗(yàn)證碼的特性。
驗(yàn)證碼劃代的標(biāo)準(zhǔn)是人機(jī)識別過程中基于對人類知識的應(yīng)用。
第一代:標(biāo)準(zhǔn)驗(yàn)證碼
這一代驗(yàn)證碼是即是我們常見的圖形驗(yàn)證碼、語音驗(yàn)證碼,基于機(jī)器難以處理復(fù)雜的計(jì)算機(jī)視覺及語音識別問題,而人類卻可以輕松的識別來區(qū)分人類及機(jī)器。這一代驗(yàn)證碼初步利用了人類知識容易解答,而計(jì)算機(jī)難以解答的機(jī)制進(jìn)行人機(jī)判斷。
第二代:創(chuàng)新驗(yàn)證碼
第二代驗(yàn)證碼是基于第一代驗(yàn)證碼的核心思想(通過人類知識可以解答,而計(jì)算機(jī)難以解答的問題進(jìn)行人機(jī)判斷)而產(chǎn)生的創(chuàng)新的交互優(yōu)化型驗(yàn)證碼。第二代驗(yàn)證碼基于第一代驗(yàn)證碼的核心原理--“人機(jī)之間知識的差異”,拓展出大量創(chuàng)新型驗(yàn)證碼。
如12306的驗(yàn)證碼也是對于傳統(tǒng)驗(yàn)證碼的一種創(chuàng)新:
第三代:無知識型驗(yàn)證碼
第三代驗(yàn)證碼最大的特點(diǎn)是不再基于知識進(jìn)行人機(jī)判斷,而是基于人類固有的生物特征以及操作的環(huán)境信息綜合決策,來判斷是人類還是機(jī)器。無知識型驗(yàn)證碼最大特點(diǎn)即無需人類思考,從而不會打斷用戶操作,進(jìn)而提供更好的用戶體驗(yàn)。
如Google的新版ReCaptcha:
阿里巴巴的滑動驗(yàn)證:
0×2 無知識型驗(yàn)證碼的原理
Step 1:在Web前端周期性的對Javascript代碼進(jìn)行混淆和并更新加密算法,將不可信的Web前端打造成可信的客戶端。在用戶進(jìn)行滑動操作時,基于可信的客戶端采集用戶操作的行為信息以及環(huán)境信息,將其加密后提交給后端的風(fēng)控引擎;
Web前端因?yàn)榇a都是明文形式的腳本語言,服務(wù)端想要從客戶端獲取可信的數(shù)據(jù)一直面臨“源碼面前,了無秘密”的困擾。給一個前端工程師充足的時間,似乎Web前端真的是了無秘密,如下圖:
而隨著攻防對抗的持續(xù),安全的補(bǔ)鍋匠們總能找到猥瑣的方法來進(jìn)行防御。Web前端雖然沒有客戶端防止逆向和調(diào)試的安全強(qiáng)度,但是卻具備客戶端所不具有的hotpatch能力。
參考Map-Reduce的原理,單臺機(jī)器性能不行,把任務(wù)分派到多臺機(jī)器并發(fā)執(zhí)行。如果單份Javascript混淆的強(qiáng)度不可行,那么周期性的對Javascript代碼自動混淆。即便攻擊者能夠短時間的對Web前端進(jìn)行逆向,但逆向出來的功能短期之后就會在服務(wù)端失效,那么也能極大的消耗攻擊者的成本。
更可怕的是喪心病狂的Google基于Javascript完全的實(shí)現(xiàn)一套虛擬機(jī),核心代碼使用字節(jié)碼實(shí)現(xiàn)。周期性的對字節(jié)碼格式更新逆向的成本成幾何級數(shù)遞增。
如果代碼邏輯不更新,僅僅重復(fù)的混淆原有邏輯,那么仍然沒有意義。而對于一個Web的驗(yàn)證碼應(yīng)用,核心功能只有兩部分:
1、事件采集模塊,采集用戶的行為信息,此部分邏輯簡單,也無法自動化更新代碼邏輯;2、行為數(shù)據(jù)加密模塊,該部分的核心是加密算法,似乎代碼邏輯自動化更新變化有足夠空間。
為了保障前端的可信,需要對加密算法進(jìn)行自動化更新,必須要有一個巨大的對稱加密算法可選集合才能保證代碼的自動化更新。而所有對稱加密算法都基于Feistel分組密碼結(jié)構(gòu),基于Feistel分組密碼結(jié)構(gòu)可以派生出無數(shù)的對稱加密算法,從而可以派生出無數(shù)的的對稱加密算法。
如下圖,F(xiàn)estel分組結(jié)構(gòu)的可逆性不要求加密的核心函數(shù)F可逆,故可以自動的生成任意的F函數(shù)進(jìn)而派生出無數(shù)對稱加密算法。
基于自動化的代碼更新及混淆機(jī)制從而保障整個Web代碼對抗逆向分析和調(diào)試的強(qiáng)度,進(jìn)而將不可信的Web前端打造成可信的端。
Step 2:后續(xù)風(fēng)控引擎會基于用戶操作的行為特征、用戶環(huán)境信息、用戶對應(yīng)的設(shè)備指紋及其設(shè)備信譽(yù)綜合進(jìn)行決策,判斷是否需要對該次操作進(jìn)行二次判斷或者是直接阻斷。
0×3 無知識型驗(yàn)證碼的優(yōu)點(diǎn)
無知識型驗(yàn)證碼有三大核心優(yōu)點(diǎn),分別是用戶體驗(yàn),風(fēng)險識別,風(fēng)險攔截。
用戶體驗(yàn):
無知識型驗(yàn)證碼針對大多數(shù)的用戶能夠無需思考,直接通過。不存在業(yè)務(wù)和流程的打斷,體驗(yàn)流暢,對用戶體驗(yàn)的提升毋庸質(zhì)疑。
風(fēng)險識別:
因?yàn)殡S著機(jī)器學(xué)習(xí)的發(fā)展讓機(jī)器掌握人類具有的知識也不再是難點(diǎn),無知識型驗(yàn)證碼不再基于知識來挑戰(zhàn)機(jī)器,而是基于人類的固有行為特征以及操作的環(huán)境信息綜合進(jìn)行風(fēng)控決策,攻擊者難以批量的模擬出可以欺騙風(fēng)控引擎的正常人類的的操作。
風(fēng)險攔截:
普通的驗(yàn)證碼基于知識對機(jī)器發(fā)起挑戰(zhàn),無法做到對機(jī)器進(jìn)行阻斷。因?yàn)橹R的挑戰(zhàn)還需要兼顧人類的體驗(yàn),機(jī)器通過的概率只能做到無限的降低而無法消除。而無知識型驗(yàn)證碼基于后端的風(fēng)控決策,可以對不同風(fēng)險的操作提出更高難度的驗(yàn)證碼乃至阻斷,有更大空間對風(fēng)險進(jìn)行消除和攔截。
0×4 總結(jié)
目前阿里聚安全提供的滑動驗(yàn)證產(chǎn)品,目前對外提供免費(fèi)試用,歡迎申請免費(fèi)試用
最后,希望新型的驗(yàn)證碼能夠建設(shè)更簡單和安全的互聯(lián)網(wǎng): )
分享題目:驗(yàn)證碼的前世今生(今生篇)
地址分享:http://m.fisionsoft.com.cn/article/cooohge.html


咨詢
建站咨詢
