為什么瀏覽器總問我是不是機(jī)器人?
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
![]() 證明自己不是機(jī)器人,幾乎是每個網(wǎng)絡(luò)沖浪人的日常小考。 有太多這樣的瞬間:你正在網(wǎng)上訂票,準(zhǔn)備支付時,界面出現(xiàn)一個彈窗要求你確認(rèn)你是人類: 為了給程序證明我不是程序 —— 你在5秒內(nèi)找出了所有的十字路口, 在3秒內(nèi)點(diǎn)擊了混在草叢后的自行車, 以超過全民85%的速度把滑塊移到了正確的位置…… 最終,以人類身份光榮地通過了系統(tǒng)的考驗(yàn)! 那么,這個驗(yàn)證是如何判斷區(qū)分真實(shí)人類的?機(jī)器人難道就無法勾選「我不是機(jī)器人」的復(fù)選框嗎? 首先,我們來介紹一下這場人機(jī)戰(zhàn)的關(guān)鍵裁判—— reCAPTCHA。 什么是reCAPTCHA reCAPTCHA是Google開發(fā)的一種安全機(jī)制,核心任務(wù)就是區(qū)分真人用戶和自動化程序(比如“爬蟲”或機(jī)器人等)——— 每當(dāng)你在網(wǎng)上點(diǎn)擊那個“我不是機(jī)器人”的小方框,就是在參與一場人機(jī)較量。 reCAPTCHA就是較量中的裁判,通過用戶的點(diǎn)擊進(jìn)行判斷,把惡意程序擋在門外,確保只有真正的用戶才能通過。 reCAPTCHA的演變歷程 reCAPTCHA最早誕生在20年代初期,隨著互聯(lián)網(wǎng)的興起,網(wǎng)絡(luò)開始面臨越來越多的垃圾信息和惡意程序的威脅。當(dāng)時,卡內(nèi)基梅隆大學(xué)的路易斯·馮·安(Luis von Ahn)在研究惡意程序防御時開發(fā)了reCAPTCHA。 這種技術(shù)最初通過讓用戶識別扭曲的文字或圖像,來驗(yàn)證其是否為人類。 比較典型的驗(yàn)證 偶爾也會遇到特別離譜的…… 研究過程中,馮·安意識到這項(xiàng)技術(shù)還可以應(yīng)用于幫助轉(zhuǎn)錄舊手稿。為此,馮·安進(jìn)一步改進(jìn)了reCAPTCHA:不僅使用驗(yàn)證碼,也同時把老舊文檔文獻(xiàn)中的單詞展示給用戶,借助用戶的驗(yàn)證過程完成標(biāo)注,助力歷史文獻(xiàn)的數(shù)字化。(這些文獻(xiàn)中的字跡僅靠光學(xué)字符識別系統(tǒng)(OCR)無法很好地識別) reCAPTCHA的使用大大減少了人工手動轉(zhuǎn)錄文獻(xiàn)的工作量。目前已有約5萬個網(wǎng)站在使用它進(jìn)行身份驗(yàn)證,每天幫助轉(zhuǎn)錄超過1800萬個單詞。世界頭部互聯(lián)網(wǎng)檔案館(Internet Archive)每天使用reCAPTCHA來數(shù)字化多達(dá)1000本書籍、報紙和其他文檔;《紐約時報》也利用reCAPTCHA來數(shù)字化其自1851年以來的檔案。 和傳統(tǒng)的OCR技術(shù)相比,reCAPTCHA在處理舊文檔時的準(zhǔn)確率高達(dá)99%,遠(yuǎn)遠(yuǎn)優(yōu)于OCR在處理19世紀(jì)前出版書籍時高達(dá)20%的錯誤率。 這個方法一開始效果還不錯,但隨著技術(shù)的進(jìn)步,機(jī)器人也慢慢地學(xué)會了識別這些扭曲的文字。 于是reCAPTCHA也跟著進(jìn)化,從簡單的文字識別變成了我們今天看到的「請點(diǎn)擊所有有交通燈的圖片」之類的圖片識別任務(wù),以及讓用戶勾選「我不是機(jī)器人」的方式來完成驗(yàn)證。 谷歌在2009年收購了reCAPTCHA后,把這種技術(shù)用到了谷歌書籍和Google Maps等項(xiàng)目,用來改進(jìn)文字識別和地理數(shù)據(jù)處理。 頓悟原來我每次嘔心瀝血完成驗(yàn)證,都在充當(dāng)Google的人工標(biāo)注勞動力 那么,reCAPTCHA究竟是如何判斷你是人類還是機(jī)器人的? 驗(yàn)證背后的實(shí)現(xiàn)原理 當(dāng)你點(diǎn)擊這個“我不是機(jī)器人”的方框時,reCAPTCHA就會根據(jù)你的點(diǎn)擊行為判斷你是否是一個真實(shí)的人類。 點(diǎn)擊行為分析背后是非常有趣的領(lǐng)域:人機(jī)交互(HCI)與行為生物識別(Behavioral Biometrics):通過大量的行為數(shù)據(jù)分析,從用戶的日常操作中提取出生物行為特征,與機(jī)器人的行為對比。 識別的關(guān)鍵并不在于你是否能在框中完成點(diǎn)擊,而在于你點(diǎn)擊的動作。 reCAPTCHA通過分析你點(diǎn)擊的速度、鼠標(biāo)的軌跡,以及你在頁面上的一些小動作來判斷你到底是不是人類。 人在操作鼠標(biāo)時,手指總是會有些許抖動的。移動路徑可能會有一些小彎曲或停頓、速度時快時慢、點(diǎn)擊前隨著閱讀思考有小片刻停頓,或是在點(diǎn)擊后追加一些慣性動作。這些微小的變化通常會比機(jī)器人更自然。 而機(jī)器人則趨向于完美的直線和精準(zhǔn)的點(diǎn)擊。 大量行為數(shù)據(jù)分析發(fā)現(xiàn),機(jī)器人雖然能快準(zhǔn)狠地點(diǎn)擊目標(biāo),但它們的動作太“完美”,不像人類的隨意:鼠標(biāo)的移動路徑通常是最短的直線,點(diǎn)擊速度也十分一致。這種差異是用來識別人類和機(jī)器人的關(guān)鍵。 (原來我勝出是因?yàn)椴恕?/p> 人類vs機(jī)器的移動軌跡 Castle(一家專注做賬戶安全和欺詐檢測的公司)的研究員Johan Brissmyr通過記錄鼠標(biāo)在網(wǎng)頁上的位置,展示了人機(jī)兩種截然不同的移動軌跡:包括瞬間跳躍、直線移動和貝塞爾曲線: 可以看出,模擬生成的自動化程序通常會通過直接指定坐標(biāo)的方式移動鼠標(biāo),導(dǎo)致不自然的軌跡,如瞬間跳躍或直線移動(1A)。 通過移動速度和加速度的分析比對,也可以發(fā)現(xiàn)機(jī)器人軌跡中的加速度通常接近于零,這是識別人機(jī)的關(guān)鍵。 人類日常點(diǎn)擊鼠標(biāo)時,隨著手腕手指的發(fā)力,鼠標(biāo)的移動軌跡會產(chǎn)生加速度變化。而自動化程序的鼠標(biāo)移動通常是以恒定速度沿直線完成,加速度接近零。 針對行為分析的結(jié)果,系統(tǒng)會為每個用戶生成一個“信譽(yù)評分”(score)。這個評分從0.1到1不等。分?jǐn)?shù)越高,說明系統(tǒng)越相信你是個真真切切的人類;分?jǐn)?shù)越低,系統(tǒng)就會更加警覺,甚至可能要求你進(jìn)行進(jìn)一步驗(yàn)證。 多模態(tài)驗(yàn)證:運(yùn)動軌跡+圖像識別 當(dāng)用戶點(diǎn)擊太快或軌跡過于“機(jī)器人”時,系統(tǒng)給出的低分會觸發(fā)更復(fù)雜的視覺驗(yàn)證,比如讓用戶選擇含有摩托車或街燈的圖片,或甚至語音、視頻的驗(yàn)證。 系統(tǒng)展示的驗(yàn)證圖片一般會具有一定的模糊性或復(fù)雜性,這種多角度的物體識別對自動程序來說挑戰(zhàn)比較大。因?yàn)槲矬w從不同角度看,輪廓、光影會發(fā)生變化,會導(dǎo)致識別難度大大增加。 而電腦程序主要根據(jù)平面圖像來理解三維物體,如果訓(xùn)練數(shù)據(jù)不夠全面,就可能無法準(zhǔn)確識別在特定角度下的物體。人類的大腦則天然擅長處理這些變化,即使圖片質(zhì)量不高或角度怪異,也能迅速識別出目標(biāo)物體。 道高一尺,魔高一丈。 隨著人工智能技術(shù)的迅猛發(fā)展,機(jī)器人不僅能執(zhí)行點(diǎn)擊任務(wù),也能逐漸通過復(fù)雜的算法模仿人類行為。防御與攻擊相互推動,像一場無休止的貓鼠游戲。每一步都要求防御系統(tǒng)不斷進(jìn)化,以應(yīng)對愈加精巧的對抗性AI。 該文章在 2024/10/8 21:25:13 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |