人機身份驗證AI測試


AI破解了人機身份驗證測試,成功率還不低

 

 

你應該有過這種經歷:登錄某個網站時,手速稍微快點,網站就會彈出一個窗口,讓你輸入一些東西,或者點擊人機身份驗證,以證明你是個人類。

這種測試名叫“CAPTCHA”,全稱是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自動區分計算機和人類的圖靈測試)。CAPTCHA測試可以把計算機和人類區分開來,以保護網站不受機器攻擊,是現代網絡安全的必要組成部分,已使用了20多年。

然而現在,機器學習有可能要撼動CAPTCHA測試在網絡安全中的霸主地位了。

人工智能公司Vicarious開發了一種新型生成式組成模型,稱為Recursive Cortical Network(RCN),並將神經科學的一些見解引入生成式組成模型框架中,以模擬人類的“常識”。近日,該公司將他們的研究論文發表在《科學》雜志上,詳細介紹了他們是如何訓練出RCN來戰勝CAPTCHA測試的。

圖片來源:Vicarious

那么,RCN的成績如何呢?

Vicarious公司發表在《科學》雜志上的論文表示,RCN在谷歌推出的網絡機器人識別工具reCAPTAs上的准確率達到66.6%(字符級准確率可達94.3%);在CAPTCHA生成器BotDetect上的准確率為64.4%;在Yahoo上是57.4%;在PayPal上是57.1%;均高於CAPTCHA測試曾被證實的1%通過率(關於1%通過率可參考George, D., Lehrach, W.等人今年發表在《科學》雜志的一篇論文《A generative vision model that trains with high data-efficiency and breaks text-based CAPTCHAs》)。要知道,由於CAPTCHA測試的難度,人類的准確率也只是接近87%。

Vicarious公司的研究人員表示,雖然RCN使用了很少的訓練示例達到了很高的精度,但機器學習模型還需要更多地向人類視覺智能學習。

不過,該模型的應用范圍仍然很窄,它無法對其識別的字符進行任何操作,比如將字符翻譯成其他語言等。

研究人員認為,該模型是有一定深遠意義的,“從少數例子中學習和擴展的能力是人類智慧的標志”,“在前往通用人工智能的道路上可能很重要”。

同時,研究人員補充道:“網站應該采取更有力的機制來阻止機器入侵

 

國內使用reCaptcha驗證碼的完整教程

reCaptcha是Google公司的驗證碼服務,方便快捷,改變了傳統驗證碼需要輸入n位失真字符的特點。reCaptcha在使用的時候是這樣的:


只需要點一下復選框,Google會收集一些鼠標軌跡、網絡信息、瀏覽器信息等等,依靠后端的神經網絡判斷是機器還是人,絕大多數驗證會一鍵通過,無需像傳統驗證碼一樣。個人感覺比Geetest要好一些。

但是reCaptcha使用了google.com的域名,這個域名在國內是被牆的,如果使用可以用Nginx配置反向代理,本文的教程無需自行配置,我們直接使用Google官方的反向代理。

 

獲取代碼():首先要有Google賬號,登錄賬號並進入這里:https://www.google.com/recaptcha/admin

在register a new site表單里填寫驗證名(隨便命名)、域名(你要使用reCaptcha 的域),type選擇v2,下面的鈎鈎打上,然后Register即可注冊。

接着打開你剛剛創建的驗證,找到Keys,記住你的site-key和select

接着可以在客戶端和服務端部署了。

 

客戶端部署代碼:

在你要添加reCaptcha的頁面添加script標簽:

<script src=’//recaptcha.net/recaptcha/api.js’></script>

 

接着在你要顯示reCaptcha驗證框的地方添加div容器:

<div class=”g-recaptcha” data-sitekey=”【此處添加你的site-key】”></div>

這樣就完成了客戶端的部署。

 

服務端部署代碼:

服務端只需要將客戶端點擊驗證碼后傳回的g-recaptcha-response值和ip以及secret傳給Google的API:https://recaptcha.net/recaptcha/api/siteverify  即可

對應的參數如下表(使用GET方式傳參):

secret (必須) 你的secret
response (必須) 客戶端獲取到的 g-recaptcha-response
remoteip 客戶端的ip

 

接口返回的是json數據,其中success字段為true時,表示驗證通過。如果驗證未通過,error-codes字段會以數組的形式給出錯誤說明。

 

 阿里智能驗證控件

極驗 3.0 驗證安全系統

https://www.geetest.com/first_page/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM