反人類的驗證碼,早應該被幹掉
「我不是機器人」,本應是不言自明的事情。
但在計算機承認你是人類之前,你可能會被要求點擊包含紅綠燈或人行道的圖像。
當你靠近屏幕眯起眼睛,思考一個微乎其微的邊角算不算時,你就會知道,沒那麼簡單。
這種難以自證的感覺,2015 年在 12306 搶票的春運人應該就有領略。
多年過去了,不斷翻新花樣的驗證碼,依然迫使你思考古老的哲學問題——我是誰?
微笑的狗,雲做的馬,自證是人更難了
「請點擊每張包含微笑的狗的圖片。」
某創意營銷機構創始人 Jared Bauman 最近被驗證碼難住了。他疑惑的是,狗真的會笑嗎?大多數狗看起來既不高興也不難過,有些在做鬼臉,有些只是張着嘴。
8 月 2 日,他又被要求找出 「用雲做成的馬」,9 張圖裏有 2 張用雲做成的大象,他第一次點擊時不幸敗北。
Jared Bauman 意識到了一個嚴重的問題——找出紅綠燈、公交車或煙囱已經過時了,驗證碼系統開始設置下一個級別的挑戰了。
這些驗證碼出自 hCaptcha,開發者稱,它比 Google 的驗證碼系統 reCAPTCHA 更注重隱私,只收集最低限度的必要個人數據。
而驗證碼為什麼會越來越難,還是要從驗證碼是什麼,以及 Google 的驗證碼系統 reCAPTCHA 是什麼説起。
驗證碼(CAPTCHA),全稱是「全自動區分計算機和人類的公開圖靈測試」。
由於它是用計算機來考人類,而不是標準圖靈測試中那樣由人類來考計算機,所以驗證碼也被視為一種反向圖靈測試。
驗證碼的設計初衷是,保護網站免受有害機器人的侵害,包括傳播惡意軟件、散佈虛假賬户、執行 DDoS 攻擊、發送大量垃圾郵件、竊取用户信息等。這些機器人本質上是一行行自動運行的計算機代碼。
驗證碼創建於 2000 年代初,最早由卡內基梅隆大學的幾位計算機科學家開發。
最初的驗證碼採用了扭曲的文本形式,避免被光學字符識別等計算機程序自動識別,超過了當時計算機可以破譯的程度,但對大多數人類可讀。
很快,研究人員意識到這項技術具有區分人類和機器人之外的潛力,他們開發了 reCAPTCHA 技術,讓用户在填寫驗證碼的過程中將紙質檔案數字化,因為人類可以比計算機更好地破譯老舊文獻中扭曲的字母。
這一階段,用户必須輸入兩個詞,一個是答案明確的真正測試,另一個是尚未轉錄的新詞。通過向世界各地用户多次顯示相同單詞,reCAPTCHA 便可以自動驗證單詞是否被正確轉錄。
這就像互聯網的一次眾籌,求得你的時間而非金錢。互聯網的神奇之處便在此,在技術支持下,再創造一些樂趣,你可以利用所有人的一點精力,自然而然聚沙成塔。
2009 年,Google 收購了 reCAPTCHA,並將其用於數字化 Google 圖書和紐約時報檔案。 2011 年,Recaptcha 已經完成了整個 Google 圖書檔案、1300 萬篇紐約時報文章的數字化。2012 年,它每天翻譯大約 1.5 億個單詞。
驗證碼為什麼越來越難?
人類沉浸在知識的海洋,機器人也沒有停下學習的腳步。
2014 年,Google 發佈了一個專門解讀扭曲文本驗證碼的算法,人工智能技術已經能以 99.8% 的準確率解決最困難的扭曲文本,而人類的成功率是 33%。
扭曲的字母失去了它最初的用處,該讓下一代驗證碼登場了。
2012 年,Google 推出了 reCAPTCHA 的圖像識別版本,其中包括來自 Google 街景的照片,從而讓用户轉錄門牌號碼和其他標誌。
類似當初將舊書數字化,在這個過程中,Google 一舉多得,既防禦了惡意腳本,自己的人工智能也在進步。
2014 年,Google 稱:「街景和 reCAPTCHA 團隊密切合作,兩者都將繼續改進,使地圖更加精確和有用,reCAPTCHA 更安全、更有效。」讓地圖更加精確和有用,意味着 Google 需要訓練人工智能更好地識別圖像中的物體。
那怎麼訓練人工智能?reCAPTCHA。數以億計的用户為了證明自己是人類,為科技公司建立起了機器學習數據集。
進步的不止 Google。2017 年,開發人員 Francis Kim 進行了一項實驗,用 40 行 Javascript 構建了一個系統,使用 Google 競爭對手 Clarifai 的圖像識別 API,嘗試通過 reCAPTCHA 的圖像驗證碼。結果,這個腳本成功找出了圖中的商店。
理論上,這也可以使用 Google 自己的圖像識別技術來實現。
Google 的驗證碼系統其實有兩個目的:在用文本、圖像等訓練人工智能的同時,抑制惡性腳本的行為。但事實是,Google 的人工智能是越來越厲害了,但惡性腳本也在鬥智鬥勇中進步,只有用户證明自己是人越來越難了。
2014 年,Google 的 「No CAPTCHA reCAPTCHA」登台,即「沒有驗證碼的驗證碼」,界面簡潔友好,只需要你堅信「我不是機器人」。
Google 稱,它推出了一個新的 API,可觀察用户行為,收集指針移動速率、當前 IP、是否使用插件、頁面使用時間、進行過多少次點擊等數據,從根本上簡化了 reCAPTCHA 體驗。大多數情況下,只需單擊一下,就能確認用户是不是機器人。
但是,驗證碼沒有消失。甚至可以説,最討人厭的驗證碼出現了。
在風險分析引擎無法預測用户是不是人的情況下,Google 會讓驗證碼再次出山,並且給出了更多新玩法,比如基於經典計算機視覺圖像標記問題,讓你選出所有包括貓或火雞的照片。
此外,還有類似遊戲的驗證碼,要求用户將物體旋轉到特定角度,或將拼圖移動到適當的位置。
人類能夠理解謎題的邏輯,但缺乏明確指令的機器人會被難住。但以後會不會掌握就難説了。
機器學習得越多,人類擁有的優勢就越少,這是一個道高一尺魔高一百丈的過程。
驗證碼可以被替代嗎?
伊利諾伊大學芝加哥分校計算機科學教授 Jason Polakis 指出,機器學習現在在基本的文本、圖像和語音識別任務上與人類差不多,「我們需要一些替代方案」。
更重要的是,在驗證碼系統前,用户體驗和可訪問性大大降低。驗證碼對很多人來説不容易,特別是老人等有學習障礙的羣體。
為老年客户提供技術建議的 Eileen Ridge 表示,她經常接到客户的電話,老人很難辨別油漆磨損的人行道和正常的人行橫道,並且十分擔心自己因為錯誤答案被鎖定帳户,就像許多國內老年人對互聯網的態度一樣。
微笑的狗、雲做的馬,對他們來説可能更難。
而代替驗證碼的方案,也在不斷開發中。
一些網站使用一種人類用户不可見的驗證碼形式,將字段插入到僅對機器人可見的屏幕上,誘騙它們填寫表格並證明它們不是人類。
近兩年,Google 推出了新驗證碼系統 reCaptcha v3,它採用逆向思維,自動記錄使用者在網站中瀏覽的行為特徵,根據這些記錄來給用户打分,若用户分數過低則會被判定為機器人。否則不會打擾到用户,上網體驗很絲滑。但它可能涉及隱私問題。
FastCompany 報道,用户是否使用 Google Cookies 是決定評分的一個重要因素。如果用户選擇讓 Google 記住登錄信息的話,會得到更高的分數,沒有登錄 Google 帳號,或者使用 VPN 或者洋葱瀏覽器通常會被提示高風險。
機器人檢測公司 Shape Security 的首席技術官 Ghosemajumder 則認為,遊戲驗證碼、視頻驗證碼等驗證碼測試,最終都會被破解。與測試相比,他更喜歡「持續身份驗證」,本質是觀察用户的行為,從中尋找自動化的跡象:
「一個真正的人類不能很好地控制自己的運動功能,因此即使他們非常努力地嘗試,他們也不能在多次交互中多次以相同的方式移動鼠標。」
今年 6 月,蘋果在全球開發者大會宣佈將用私人訪問令牌(Private Access Tokens)取代驗證碼。
密碼或生物識別解鎖手機、打開瀏覽器、精準輸入網站……一系列操作足以「驗明正身」。當蘋果系統驗證該設備和 Apple ID 帳户是正常狀態,再向需要驗證碼的 app 或網站提供「私人訪問令牌」即可。
提供網站安全管理的 Cloudflare、Ffast 等公司已支持私人訪問令牌,用 iOS 16 設備登錄這兩家公司的 app 或網站,不再需要驗證碼。目前,這項技術還在推廣之中,需要更多的支持者加入,才能更好用。
蘋果工程師 Tommy Pauly 指出:「這將為很多人節省大量時間,並且用户喜歡被信任的感覺。」
但只要有虛假賬户、垃圾郵件、騷擾信息等,我們仍然需要將人類用户與機器人分開的技術,某種形式的驗證碼技術將始終存在,與人工智能並行發展。
未來,驗證碼系統識別人類,很可能不是通過我們超越機器人的能力,而是通過我們犯錯誤的可能。也就是説設置更多挑戰性的測試,我們往往會失敗,而機器人給出正確答案。或許,在我們抓耳撓腮地尋找圖中所有的信號燈時,就是在進行以人類一敗塗地為結局的鬥爭。
引用參考資料:
1.https://auth0.com/blog/captcha-can-ruin-your-ux-here-s-how-to-use-it-right/
2.https://www.wired.com/story/smiling-dogs-horses-made-of-clouds-captcha-has-gone-too-far/
3.https://www.techradar.com/news/captcha-if-you-can-how-youve-been-training-ai-for-years-without-realising-it
4.https://www.theverge.com/2019/2/1/18205610/google-captcha-ai-robot-human-difficult-artificial-intelligence
資料來源:愛範兒(ifanr)