人類苦驗證碼久矣。

文 | 張成晨

來源:愛範兒

“我不是機器人”,本應是不言自明的事情。

但在計算機承認你是人類之前,你可能會被要求點擊包含紅綠燈或人行道的圖像。

當你靠近屏幕眯起眼睛,思考一個微乎其微的邊角算不算時,你就會知道,這並不像聽起來那麼容易。

這種難以自證的感覺,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 一舉多得,既防禦了惡意腳本,自己的人工智能也在進步。

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 指出:“這將爲很多人節省大量時間,並且用戶喜歡被信任的感覺。”

但只要有虛假賬戶、垃圾郵件、騷擾信息等的存在,我們仍然需要將人類用戶與機器人分開的技術,某種形式的驗證碼技術將始終存在,與人工智能並行發展。

未來,驗證碼系統識別人類,很可能不是通過我們超越機器人的能力,而是通過我們犯錯誤的可能。也就是說設置更多挑戰性的測試,我們往往會失敗,而機器人給出正確答案。或許,在我們抓耳撓腮地尋找圖中所有的信號燈時,就是在進行以人類一敗塗地爲結局的鬥爭。

 
相關文章