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

驗(yàn)證碼的前世今生(今生篇)

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

[[175672]]

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

0×1 驗(yàn)證碼的劃代標(biāo)準(zhǔn)

在介紹新的反向圖靈測(cè)試機(jī)制前,首先我們對(duì)驗(yàn)證碼進(jìn)行劃代對(duì)比。通過(guò)驗(yàn)證碼的劃代對(duì)比我們能更清楚新型驗(yàn)證碼的特性。

驗(yàn)證碼劃代的標(biāo)準(zhǔn)是人機(jī)識(shí)別過(guò)程中基于對(duì)人類(lèi)知識(shí)的應(yīng)用。

第一代:標(biāo)準(zhǔn)驗(yàn)證碼

這一代驗(yàn)證碼是即是我們常見(jiàn)的圖形驗(yàn)證碼、語(yǔ)音驗(yàn)證碼,基于機(jī)器難以處理復(fù)雜的計(jì)算機(jī)視覺(jué)及語(yǔ)音識(shí)別問(wèn)題,而人類(lèi)卻可以輕松的識(shí)別來(lái)區(qū)分人類(lèi)及機(jī)器。這一代驗(yàn)證碼初步利用了人類(lèi)知識(shí)容易解答,而計(jì)算機(jī)難以解答的機(jī)制進(jìn)行人機(jī)判斷。 

 

 

第二代:創(chuàng)新驗(yàn)證碼

第二代驗(yàn)證碼是基于第一代驗(yàn)證碼的核心思想(通過(guò)人類(lèi)知識(shí)可以解答,而計(jì)算機(jī)難以解答的問(wèn)題進(jìn)行人機(jī)判斷)而產(chǎn)生的創(chuàng)新的交互優(yōu)化型驗(yàn)證碼。第二代驗(yàn)證碼基于第一代驗(yàn)證碼的核心原理--“人機(jī)之間知識(shí)的差異”,拓展出大量創(chuàng)新型驗(yàn)證碼。

如12306的驗(yàn)證碼也是對(duì)于傳統(tǒng)驗(yàn)證碼的一種創(chuàng)新: 

 

 

第三代:無(wú)知識(shí)型驗(yàn)證碼

第三代驗(yàn)證碼最大的特點(diǎn)是不再基于知識(shí)進(jìn)行人機(jī)判斷,而是基于人類(lèi)固有的生物特征以及操作的環(huán)境信息綜合決策,來(lái)判斷是人類(lèi)還是機(jī)器。無(wú)知識(shí)型驗(yàn)證碼最大特點(diǎn)即無(wú)需人類(lèi)思考,從而不會(huì)打斷用戶(hù)操作,進(jìn)而提供更好的用戶(hù)體驗(yàn)。

如Google的新版ReCaptcha: 

 

 

阿里巴巴的滑動(dòng)驗(yàn)證: 

 

 

0×2 無(wú)知識(shí)型驗(yàn)證碼的原理

Step 1:在Web前端周期性的對(duì)Javascript代碼進(jìn)行混淆和并更新加密算法,將不可信的Web前端打造成可信的客戶(hù)端。在用戶(hù)進(jìn)行滑動(dòng)操作時(shí),基于可信的客戶(hù)端采集用戶(hù)操作的行為信息以及環(huán)境信息,將其加密后提交給后端的風(fēng)控引擎;

Web前端因?yàn)榇a都是明文形式的腳本語(yǔ)言,服務(wù)端想要從客戶(hù)端獲取可信的數(shù)據(jù)一直面臨“源碼面前,了無(wú)秘密”的困擾。給一個(gè)前端工程師充足的時(shí)間,似乎Web前端真的是了無(wú)秘密,如下圖: 

 

 

 

而隨著攻防對(duì)抗的持續(xù),安全的補(bǔ)鍋匠們總能找到猥瑣的方法來(lái)進(jìn)行防御。Web前端雖然沒(méi)有客戶(hù)端防止逆向和調(diào)試的安全強(qiáng)度,但是卻具備客戶(hù)端所不具有的hotpatch能力。

參考Map-Reduce的原理,單臺(tái)機(jī)器性能不行,把任務(wù)分派到多臺(tái)機(jī)器并發(fā)執(zhí)行。如果單份Javascript混淆的強(qiáng)度不可行,那么周期性的對(duì)Javascript代碼自動(dòng)混淆。即便攻擊者能夠短時(shí)間的對(duì)Web前端進(jìn)行逆向,但逆向出來(lái)的功能短期之后就會(huì)在服務(wù)端失效,那么也能極大的消耗攻擊者的成本。

更可怕的是喪心病狂的Google基于Javascript完全的實(shí)現(xiàn)一套虛擬機(jī),核心代碼使用字節(jié)碼實(shí)現(xiàn)。周期性的對(duì)字節(jié)碼格式更新逆向的成本成幾何級(jí)數(shù)遞增。

如果代碼邏輯不更新,僅僅重復(fù)的混淆原有邏輯,那么仍然沒(méi)有意義。而對(duì)于一個(gè)Web的驗(yàn)證碼應(yīng)用,核心功能只有兩部分:

1、事件采集模塊,采集用戶(hù)的行為信息,此部分邏輯簡(jiǎn)單,也無(wú)法自動(dòng)化更新代碼邏輯;2、行為數(shù)據(jù)加密模塊,該部分的核心是加密算法,似乎代碼邏輯自動(dòng)化更新變化有足夠空間。

為了保障前端的可信,需要對(duì)加密算法進(jìn)行自動(dòng)化更新,必須要有一個(gè)巨大的對(duì)稱(chēng)加密算法可選集合才能保證代碼的自動(dòng)化更新。而所有對(duì)稱(chēng)加密算法都基于Feistel分組密碼結(jié)構(gòu),基于Feistel分組密碼結(jié)構(gòu)可以派生出無(wú)數(shù)的對(duì)稱(chēng)加密算法,從而可以派生出無(wú)數(shù)的的對(duì)稱(chēng)加密算法。

如下圖,F(xiàn)estel分組結(jié)構(gòu)的可逆性不要求加密的核心函數(shù)F可逆,故可以自動(dòng)的生成任意的F函數(shù)進(jìn)而派生出無(wú)數(shù)對(duì)稱(chēng)加密算法。 

 

 

 

基于自動(dòng)化的代碼更新及混淆機(jī)制從而保障整個(gè)Web代碼對(duì)抗逆向分析和調(diào)試的強(qiáng)度,進(jìn)而將不可信的Web前端打造成可信的端。

Step 2:后續(xù)風(fēng)控引擎會(huì)基于用戶(hù)操作的行為特征、用戶(hù)環(huán)境信息、用戶(hù)對(duì)應(yīng)的設(shè)備指紋及其設(shè)備信譽(yù)綜合進(jìn)行決策,判斷是否需要對(duì)該次操作進(jìn)行二次判斷或者是直接阻斷。 

 

 

0×3 無(wú)知識(shí)型驗(yàn)證碼的優(yōu)點(diǎn)

無(wú)知識(shí)型驗(yàn)證碼有三大核心優(yōu)點(diǎn),分別是用戶(hù)體驗(yàn),風(fēng)險(xiǎn)識(shí)別,風(fēng)險(xiǎn)攔截。

用戶(hù)體驗(yàn):

無(wú)知識(shí)型驗(yàn)證碼針對(duì)大多數(shù)的用戶(hù)能夠無(wú)需思考,直接通過(guò)。不存在業(yè)務(wù)和流程的打斷,體驗(yàn)流暢,對(duì)用戶(hù)體驗(yàn)的提升毋庸質(zhì)疑。

風(fēng)險(xiǎn)識(shí)別:

因?yàn)殡S著機(jī)器學(xué)習(xí)的發(fā)展讓機(jī)器掌握人類(lèi)具有的知識(shí)也不再是難點(diǎn),無(wú)知識(shí)型驗(yàn)證碼不再基于知識(shí)來(lái)挑戰(zhàn)機(jī)器,而是基于人類(lèi)的固有行為特征以及操作的環(huán)境信息綜合進(jìn)行風(fēng)控決策,攻擊者難以批量的模擬出可以欺騙風(fēng)控引擎的正常人類(lèi)的的操作。

風(fēng)險(xiǎn)攔截:

普通的驗(yàn)證碼基于知識(shí)對(duì)機(jī)器發(fā)起挑戰(zhàn),無(wú)法做到對(duì)機(jī)器進(jìn)行阻斷。因?yàn)橹R(shí)的挑戰(zhàn)還需要兼顧人類(lèi)的體驗(yàn),機(jī)器通過(guò)的概率只能做到無(wú)限的降低而無(wú)法消除。而無(wú)知識(shí)型驗(yàn)證碼基于后端的風(fēng)控決策,可以對(duì)不同風(fēng)險(xiǎn)的操作提出更高難度的驗(yàn)證碼乃至阻斷,有更大空間對(duì)風(fēng)險(xiǎn)進(jìn)行消除和攔截。

0×4 總結(jié)

目前阿里聚安全提供的滑動(dòng)驗(yàn)證產(chǎn)品,目前對(duì)外提供免費(fèi)試用,歡迎申請(qǐng)免費(fèi)試用

最后,希望新型的驗(yàn)證碼能夠建設(shè)更簡(jiǎn)單和安全的互聯(lián)網(wǎng): )

責(zé)任編輯:龐桂玉 來(lái)源: segmentfault
相關(guān)推薦

2016-11-03 13:33:31

2022-02-11 07:10:15

驗(yàn)證碼

2011-08-23 09:52:31

CSS

2015-11-18 14:14:11

OPNFVNFV

2014-07-30 10:55:27

2025-02-12 11:25:39

2016-12-29 13:34:04

阿爾法狗圍棋計(jì)算機(jī)

2013-05-23 16:23:42

Windows Azu微軟公有云

2014-07-15 10:31:07

asyncawait

2021-06-17 07:08:19

Tapablewebpack JavaScript

2012-05-18 16:54:21

FedoraFedora 17

2014-07-21 12:57:25

諾基亞微軟裁員

2016-12-29 18:21:01

2019-06-04 09:00:07

Jenkins X開(kāi)源開(kāi)發(fā)人員

2013-11-14 16:03:23

Android設(shè)計(jì)Android Des

2011-05-13 09:43:27

產(chǎn)品經(jīng)理PM

2019-08-05 10:08:25

軟件操作系統(tǒng)程序員

2019-04-28 09:34:06

2015-06-11 11:10:09

對(duì)象存儲(chǔ)云存儲(chǔ)

2021-04-15 07:01:28

區(qū)塊鏈分布式DLT
點(diǎn)贊
收藏

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