《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 解決方案 > 谷歌最新驗(yàn)證系統(tǒng)又雙叒被「破解」了,這次是強(qiáng)化學(xué)習(xí)

谷歌最新驗(yàn)證系統(tǒng)又雙叒被「破解」了,這次是強(qiáng)化學(xué)習(xí)

2019-03-29
關(guān)鍵詞: 谷歌 reCaptcha OCR

自推出以來(lái),谷歌reCaptcha 驗(yàn)證系統(tǒng)就被頻繁破解,因此谷歌不得不一次又一次地迭代升級(jí)?,F(xiàn)在,reCaptcha 已經(jīng)升級(jí)到了 v3,由原來(lái)的用戶交互直接升級(jí)成了給用戶打分。但再?gòu)?qiáng)的系統(tǒng)也會(huì)有漏洞,來(lái)自加拿大和法國(guó)的研究者另辟蹊徑,用強(qiáng)化學(xué)習(xí)「破解」了這個(gè)最新的驗(yàn)證系統(tǒng)。

微信圖片_20190329143950.jpg

谷歌的 reCAPTCHA 驗(yàn)證系統(tǒng)



對(duì)于谷歌瀏覽器的用戶來(lái)說,上面這幅畫面想必并不陌生。這是谷歌開發(fā)的驗(yàn)證碼系統(tǒng) reCaptcha,旨在確認(rèn)訪問者是人還是程序,并防止惡意程序的入侵。


reCAPTCHA 項(xiàng)目是由卡內(nèi)基梅隆大學(xué)創(chuàng)建的系統(tǒng),于 2009 年 9 月被谷歌收購(gòu)。reCAPTCHA v1 將從書本上掃描下來(lái)、無(wú)法被 OCR 準(zhǔn)確識(shí)別的文字顯示在 CAPTCHA 問題中,從而判斷訪問者到底是程序還是人類。該版本被 Bursztein 等人破解,他們使用基于機(jī)器學(xué)習(xí)的系統(tǒng)對(duì)文本進(jìn)行分割和識(shí)別,準(zhǔn)確率達(dá) 98%。


為了反破解,谷歌引入了基于音頻和圖像的 reCAPTCHA v2。該系統(tǒng)使用了一些高級(jí)的分析工具來(lái)判斷一個(gè)用戶到底是人還是機(jī)器人。


他們使用了多種元素,包括 cookie、解題的速度、鼠標(biāo)的移動(dòng)以及解題的成功率。但盡管如此,還是有研究人員宣稱自己破解了 ReCAPTCHA,其中比較有名的就是美國(guó)馬里蘭大學(xué)四位研究人員開發(fā)的 unCapture。


用 unCaptcha 攻破 reCAPTCHA


unCaptcha 項(xiàng)目最早創(chuàng)建于 2017 年 4 月,并在當(dāng)時(shí)實(shí)現(xiàn)了 85% 的 ReCaptcha 對(duì)抗率。后來(lái),谷歌發(fā)布了新的 ReCaptcha,實(shí)現(xiàn)了更好的瀏覽器自動(dòng)檢測(cè),而且開始使用短語(yǔ)語(yǔ)音進(jìn)行驗(yàn)證。這些改進(jìn)最開始成功地防御了第一版 unCaptcha 的攻擊,但這一改進(jìn)版很快又被第二版 unCaptcha 破解了。

微信圖片_20190329144018.jpg


由于 ReCaptcha 添加了語(yǔ)音形式的驗(yàn)證碼識(shí)別,破解 ReCaptcha 變得比以前更加容易。破解者表示,「因?yàn)槲覀冎恍枰{(diào)用一個(gè)免費(fèi)的語(yǔ)音識(shí)別 API,對(duì)所有驗(yàn)證碼的識(shí)別準(zhǔn)確率就能達(dá)到 90% 左右?!菇衲暌辉路荩平庹哌€開源了 ReCaptcha 的破解代碼。


用強(qiáng)化學(xué)習(xí)「攻破」reCAPTCHA v3


當(dāng)然,谷歌也沒有閑著,一直在迭代自己的驗(yàn)證系統(tǒng)。2018 年 10 月,谷歌正式發(fā)布 reCAPTCHA v3。谷歌這次放出的大招是:移除所有用戶界面。


前兩個(gè)版本的 reCAPTCHA 有可利用的文本、圖像或音頻,可以將其用作訓(xùn)練神經(jīng)網(wǎng)絡(luò)的輸入。但 reCAPTCHA v3 移除了所有用戶界面,沒有拆開亂碼文本或街道標(biāo)志,甚至也沒有勾選「我不是機(jī)器人」的方框。


它會(huì)分析一系列信號(hào),使用機(jī)器學(xué)習(xí)技術(shù)返回一個(gè) 0 到 1 之間的風(fēng)險(xiǎn)評(píng)估分?jǐn)?shù)(這個(gè)分?jǐn)?shù)表征了用戶的可信任度,越接近 1 越有可能是人類)。與前兩個(gè)版本相比,這種打分完全是在后臺(tái)進(jìn)行的,根本沒有人類交互,因此破解難度更大。


破解從哪兒入手?


這么高難度的項(xiàng)目當(dāng)然會(huì)引得各路「黑客」躍躍欲試。近日,來(lái)自法國(guó)和加拿大的研究人員聲稱自己破解了谷歌的 reCAPTCHA v3,并根據(jù)自己的研究成果發(fā)表了一篇名為《Hacking Google reCAPTCHA v3 using Reinforcement Learning》(使用強(qiáng)化學(xué)習(xí)破解谷歌的 reCAPTCHA v3)的論文。與之前研究的不同之處在于,他們使用的是強(qiáng)化學(xué)習(xí)方法,測(cè)試準(zhǔn)確率達(dá)到了 97.4%。


實(shí)際上,這項(xiàng)強(qiáng)化學(xué)習(xí)技術(shù)并非針對(duì) reCAPTCHA v3 中不可見的分?jǐn)?shù),而是 reCAPTCHA v2 中首次引入的鼠標(biāo)移動(dòng)分析。也就是說,這項(xiàng)研究并非真正攻破 reCAPTCHA v3,而是用機(jī)器學(xué)習(xí)欺騙二級(jí)系統(tǒng)(即舊版的「我不是機(jī)器人」打勾操作),以繞過 reCAPTCHA v3。


等等,「我不是機(jī)器人」這種界面不是已經(jīng)在 v3 中被移除了嗎?理論上是該這么做,但在實(shí)際操作中并沒有。


論文一作 Akrout 表示,在 reCAPTCHA v3 中,網(wǎng)站設(shè)置其分?jǐn)?shù)閾值以判定用戶是否為機(jī)器人。如果訪客在某個(gè)設(shè)定點(diǎn)低于閾值(比如當(dāng)他們輸入評(píng)論或登錄細(xì)節(jié)時(shí)),網(wǎng)站可以選擇立即譴責(zé)該訪客是機(jī)器人,不過真這么做的話,如果訪客是真人就會(huì)很尷尬了。


想象一下在網(wǎng)購(gòu)的時(shí)候,你正在查看的頁(yè)面突然消失,隨之而來(lái)的是滿屏的「你是機(jī)器人」譴責(zé)。就問你糟不糟心?從用戶體驗(yàn)的角度來(lái)看這種做法實(shí)在太……emmm…


因此,Akrout 表示,很多網(wǎng)站會(huì)選擇更友好地緩和這個(gè)過程。如果網(wǎng)站訪客低于分?jǐn)?shù)閾值,網(wǎng)站會(huì)顯示舊版的「我不是機(jī)器人」復(fù)選框頁(yè)面,這個(gè)復(fù)選框用來(lái)發(fā)現(xiàn)機(jī)器人的分析行為,包括鼠標(biāo)移動(dòng)等。


這樣可以讓用戶更好地理解為什么他們的網(wǎng)購(gòu)或其它正在干的事會(huì)被打斷,而且會(huì)給他們一個(gè)證明自己人類身份的機(jī)會(huì)。


「我認(rèn)識(shí)的大部分程序員會(huì)添加復(fù)選框,因?yàn)樗麄儾恢廊绾芜x擇恰當(dāng)?shù)臅r(shí)機(jī)來(lái)詢問 v3 系統(tǒng)的判斷?!?/p>


正是這個(gè)復(fù)選框的存在讓 Akrout 和他的同事們發(fā)現(xiàn)了繞過 reCAPTCHA v3 的可能。


怎么破解?


Akrout 及其同事利用強(qiáng)化學(xué)習(xí)來(lái)欺騙部分 reCAPTCHA v3 系統(tǒng),其中軟件智能體試圖找到最佳的可能途徑,并通過正確方向上每一步的獎(jiǎng)勵(lì)受到鼓勵(lì)。


他們的系統(tǒng)在頁(yè)面中放置一個(gè)正方形網(wǎng)格,鼠標(biāo)沿對(duì)角線穿過網(wǎng)格到達(dá)「我不是機(jī)器人」按鈕。如果成功,則給予正面強(qiáng)化;如果失敗,則給予負(fù)面強(qiáng)化。該系統(tǒng)學(xué)會(huì)了控制正確的移動(dòng)方法以欺騙 reCAPTCHA 系統(tǒng)。該論文中稱其準(zhǔn)確率達(dá)到了 97.4%。在論文發(fā)表后,谷歌未對(duì)該論文置評(píng)。

微信圖片_20190329144209.png


這樣破解真的可以嗎?


這種做法并沒有讓伯恩茅斯大學(xué)的 Nan Jiang 信服,他沒有參與這次研究?!咐碚撋蟻?lái)說,任何僅依賴于檢查用戶行為的驗(yàn)證碼方法都可以用定制的機(jī)器學(xué)習(xí)算法破解,比如那種可以輕易地模擬用戶在頁(yè)面上交互的算法。


但是,谷歌的 ReCAPTCHA 結(jié)合了其它技術(shù)來(lái)預(yù)測(cè)用戶的可信程度,然后嘗試把該用戶納入白名單。一旦你被納入白名單,無(wú)論你做什么都可以通過測(cè)試?!顾硎?。


破解 reCAPTCHA 版本 2 的伊利諾伊大學(xué)計(jì)算機(jī)科學(xué)助理教授 Jason Polakis 指出,reCAPTCHA 版本 3 的工作要比論文中描述的更多。


他說道:「本文試圖展示的攻擊僅僅是從頁(yè)面中的隨機(jī)起點(diǎn)移至復(fù)選框。這是用戶在實(shí)踐中與實(shí)際頁(yè)面產(chǎn)生交互的非常具體和有限的子集(如填寫表格、與多頁(yè)面元素交互以及跨越更復(fù)雜模式等)。」


他還補(bǔ)充:「如果谷歌也已經(jīng)改善瀏覽器/設(shè)備指紋等更先進(jìn)技術(shù)的利用(我們?cè)谶M(jìn)行廣泛深入分析和破解 ReCaptcha 版本 2 時(shí)已經(jīng)發(fā)現(xiàn)了這些跡象),實(shí)際上展開攻擊將會(huì)變得更為復(fù)雜?!?/p>


Akrout 同意基于鼠標(biāo)移動(dòng)的攻擊存在局限,但這些也揭露了一點(diǎn)關(guān)于 reCAPTCHA 版本 3 工作的信息。他表示,「如果你通過一個(gè)常規(guī) IP 連接谷歌賬戶,則系統(tǒng)大部分時(shí)間都會(huì)認(rèn)為你是人類?!谷绻阃ㄟ^ TOR 或者代理服務(wù)器連接谷歌賬戶,則系統(tǒng)通常會(huì)認(rèn)為你是機(jī)器人。


如果測(cè)試的網(wǎng)站已經(jīng)具有這種默認(rèn)設(shè)置,了解這些則更容易迫使 reCAPTCHA 系統(tǒng)顯示「我不是機(jī)器人」按鈕。


Akrout 表示攻擊需要對(duì)谷歌表現(xiàn)出中立性—所以沒有登錄賬戶,也沒有通過代理服務(wù)器或使用 Selenium 等瀏覽器控制工具進(jìn)入。他說道:「這就好像是我在要求該系統(tǒng)直接進(jìn)入第二個(gè)頁(yè)面,其目的僅是為了獲得大量移動(dòng)檢測(cè)。」


Akrout 認(rèn)為谷歌可以通過這項(xiàng)技術(shù)(特別是根據(jù)用戶點(diǎn)擊按鈕花費(fèi)的時(shí)間),使用更簡(jiǎn)單的方法來(lái)保護(hù) reCAPTCHA。Akrout 表示,「該智能體點(diǎn)擊復(fù)選框花費(fèi)的時(shí)間比人類更多。在沒有任何交互的情況下,任何用戶通常都不會(huì)影響 reCaptcha 在后臺(tái)的工作?!?/p>


肯特大學(xué)的網(wǎng)絡(luò)安全教授 Shujun Li 先前已經(jīng)設(shè)計(jì)了自己用于破解 reCAPTCHA 早期版本的系統(tǒng),但并沒有參與這個(gè)項(xiàng)目。他表示這項(xiàng)工作從技術(shù)層面看似可行,但也認(rèn)為谷歌可輕易更新其系統(tǒng)以避免此類攻擊。


他說道:「尚未清楚的是,該攻擊方法被重新訓(xùn)練至何種程度才能趕上谷歌系統(tǒng)。可能更加穩(wěn)健的一種方法是收集真正人類用戶對(duì) reCAPTCHA 的響應(yīng),并構(gòu)建機(jī)器學(xué)習(xí)模型來(lái)模擬此類響應(yīng)。這些模型很容易被重復(fù)訓(xùn)練,而且能夠保證有用,除非 reCAPTCHA 對(duì)常規(guī)人類用戶不可用?!?/p>


Li 表示破解這些系統(tǒng)的確還有很多其他方法。雖然這種特定攻擊受到限制,但 reCAPTCHA 將繼續(xù)淪為人工智能系統(tǒng)犧牲品的事實(shí)并不意外。


Li 表示:「破解驗(yàn)證碼并不是什么新聞了。最近的 AI 進(jìn)展已經(jīng)大大提高了自動(dòng)攻擊的成功率。原則上,驗(yàn)證碼技術(shù)已證明無(wú)法抵制先進(jìn)的攻擊?!贡疚牡难芯炕蛟S無(wú)法破解第 3 版 reCAPTCHA,但這是一個(gè)開始。


論文:Hacking Google reCAPTCHA v3 using Reinforcement Learning

微信圖片_20190329144233.jpg


論文鏈接:https://arxiv.org/pdf/1903.01003.pdf


摘要:本文提出了一種可以欺騙谷歌 reCAPTCHA v3 的強(qiáng)化學(xué)習(xí)方法。我們將 reCAPTCHA v3 視為一個(gè)網(wǎng)格世界,智能體在這個(gè)世界里學(xué)習(xí)如何移動(dòng)鼠標(biāo)并點(diǎn)擊 reCAPTCHA 按鈕獲得高分。


我們研究了在改變網(wǎng)格中格子大小時(shí)智能體的性能,結(jié)果顯示,當(dāng)智能體向目標(biāo)大步前進(jìn)時(shí),其性能會(huì)大大降低。最后,我們用了一個(gè)分治策略來(lái)應(yīng)對(duì)任意網(wǎng)格分辨率,以攻破 reCAPTCHA 系統(tǒng)。我們提出的方法在 100 × 100 的網(wǎng)格中實(shí)現(xiàn)了 97.4% 的勝率,在 1000 × 1000 的屏幕分辨率上實(shí)現(xiàn)了 96.7% 的勝率。


實(shí)驗(yàn)結(jié)果


研究人員在一個(gè)特定尺寸的網(wǎng)格上訓(xùn)練了一個(gè)強(qiáng)化學(xué)習(xí)智能體。他們的方法是將訓(xùn)練得到的策略用于在 reCAPTCHA 環(huán)境中選擇最佳行動(dòng)。實(shí)驗(yàn)結(jié)果是在訓(xùn)練 1000 輪之后得到的。


如果智能體得到 0.9 分,他們就認(rèn)為該智能體成功攻破了 reCAPTCHA。策略網(wǎng)絡(luò)是一個(gè)全新的雙層全連接層網(wǎng)絡(luò)。參數(shù)是以 10^(-3) 的學(xué)習(xí)率訓(xùn)練得到的,批大小為 2000。


下圖顯示了智能體在 100 × 100 的網(wǎng)格上得到的結(jié)果。該方法以 97.4% 的勝率成功攻破了 reCAPTCHA 測(cè)試。


接下來(lái)考慮在更大的網(wǎng)格上測(cè)試該方法。如果增加網(wǎng)格的大小,狀態(tài)空間的維數(shù)就會(huì)指數(shù)級(jí)增加,在這種情況下訓(xùn)練強(qiáng)化算法并不可行。這是本研究解決的另一個(gè)難題:如果不為每個(gè)分辨率的網(wǎng)格重新訓(xùn)練智能體,該如何攻破 reCAPTCHA 系統(tǒng)?


為此,研究人員提出了一種分治方法,可以攻破任意網(wǎng)格大小的 reCAPTCHA 系統(tǒng)而無(wú)需重新訓(xùn)練強(qiáng)化學(xué)習(xí)智能體。中心思想是將網(wǎng)格進(jìn)一步切分為子網(wǎng)格,然后將訓(xùn)練得到的智能體應(yīng)用到這些子網(wǎng)格上,以為更大的屏幕尋找最優(yōu)策略(見圖 2)。圖 3 顯示了該方法的有效性,在不同大小的網(wǎng)格上勝率超過了 90%。

微信圖片_20190329144255.jpg

圖 2:分治方法圖示:智能體在紫色的對(duì)角網(wǎng)格世界上運(yùn)行。紅色網(wǎng)格世界還沒有被探索。

微信圖片_20190329144310.png

圖 3:強(qiáng)化學(xué)習(xí)智能體在不同網(wǎng)格分辨率上的勝率。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。