如果你用過Google的一些服務,在提交請求和確認信息時一定遇到過驗證頁面。一般來講,Google旗下服務的驗證頁面使用ReCapcha,就是讓你在指定的框框里點個勾。目的很明確,就是要確認你是活生生的人,不是機器人bot。
簡單吧?鼠標一按,簡直輕松加愉快。但問題來了,在圖像識別AI技術日新月異的現在,文字驗證碼幾乎已被攻克,最先進的AI識別程序能夠在1秒內輕松識別出足以“看瞎人眼”的、字體扭曲至極“驗證碼”文字,但是對于這個小小的勾選框,機器程序卻似乎無能為力。
為什么對人來說簡單之極的操作,對機器人程序而言卻如此困難?
近日,“美國版知乎”Quora上的這個問題在HN論壇上引發熱議。
目前排名第一的答案,獲得4K點贊。
看似簡單,背后是基于虛擬機的雙重動態驗證
回答者表示,就這么一個其貌不揚的勾選框,到底是有多復雜?是你想象不到的那種復雜。簡單講,就是Google搞了整個一套“虛擬機“來執行這個勾選框的驗證任務。
這個虛擬機使用的是自己的語言,而且經過兩次加密。
而且加密還不是一般意義上的簡單加密,一般說用密碼加密,實際上密碼就是針對該加密的密鑰。Google自己發明的語言中,用來解密的密鑰會隨著對語言的讀取過程而變化,就連語言本身也會發生變化。
Google會將這個密鑰與你訪問的網址結合起來,所以不可能使用一個網站的驗證來繞過另一個網站。而且會將驗證其與瀏覽器中的“指紋”相結合,捕捉您的計算機中的微觀變化,機器人很難重現這種變化(比如CSS規則)。
以上所有這些做法,目的就是為了讓你很難理解Google的驗證機制。你需要編寫工具進行分析它。(實際上人們就是這么做的)。
結果發現,Google會記錄和分析以下信息:
你的電腦所在的時區和當前時間
你的IP地址和大概的地理位置
電腦屏幕尺寸和分辨率
你在使用什么瀏覽器
你在使用什么插件
頁面顯示了多長時間
進行了多少次按鍵操作、鼠標點擊和滾輪操作
還有其他一些我們不太了解的東西
谷歌收集詳細個人信息作為驗證的基礎
系統會將所有這些數據與Google掌握的計算機用戶的知識結合起來。現在的互聯網,幾乎每個人都使用谷歌旗下的產品和服務(搜索,郵件,廣告,地圖等等),谷歌會跟蹤所有你的信息。所以,當你點擊鼠標,在這個復選框上打勾的時候,Google會檢查瀏覽器歷史記錄,看看這個點擊行為是否符合“真人“的標準。
這對Google來說很容易,因為他們一直在暗中觀察數十億“真人“的行為。
那么為什么對機器人來說這個任務這么困難?因為現在存在大量凌亂的人類行為信息來模擬,而且這種模擬行為幾乎是不可知的,并且在不斷變化。
一個機器人可能必須要注冊Google服務并在一臺計算機上用上一段時間,才能讓驗證系統認為“這是個真人“,讓自己的行為看上去與其他機器人不同。在按鍵,滾動鼠標和點擊時可能需要做出適當的間隔和誤操作等等。
這一切都非常難以破解,也很難教計算機學會這么做。驗證系統的復雜性對垃圾郵件發送者來說是一筆經濟成本。他們可能會在短時間內有過成功嘗試,但如果每次成功都需要付出額外成本,(比方說)1美元,那這個買賣也就不值得做了。
“以真亂假”?鼠標移動過于順滑,也會被當成機器人
下面還有一個更早的答案,點贊高達2.8w,回答明顯更精煉一些。
其實這個勾選框是一種低安全性的雙重檢查,系統一般傾向于相信操作者是真人,問題是,驗證機制是圖像,而不是文本。如果是機器人,必須考察驗證屏幕上的每個像素點,然后執行OCR操作,這是一個費時費力的過程。
定位勾選框的位置后,驗證系統考察的實際鼠標移動的方式。如果是機器人往往是快速和平穩的,而人類的鼠標移動就相對生澀,此外,對整個屏幕進行OCR的機器人在開始做出動作之前,會出現明顯的處理延遲。
目前來看,這種驗證的效果非常好,但是如果你使用鼠標的動作非常流暢,并且期待驗證碼,你有時可以騙過這個檢測,讓系統把你錯認成機器人。一旦如此,你就要處理更難以識別的驗證碼,需要對圖像的場景有著更清晰的了解。
這樣來看,比起瞇起眼睛認驗證碼,我們偶爾皮一下,裝一波機器人也是挺有意思的一件事呢
-
機器人
+關注
關注
211文章
28578瀏覽量
207767 -
谷歌
+關注
關注
27文章
6179瀏覽量
105719 -
虛擬機
+關注
關注
1文章
919瀏覽量
28332
原文標題:Quora熱議:谷歌機器人驗證只是點個勾,為什么機器人就是做不到?
文章出處:【微信號:aicapital,微信公眾號:全球人工智能】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論