當前位置: 華文世界 > 科技

變態驗證碼,為啥還沒淘汰?

2024-10-20科技

如果你用過多鄰國學語言,可能從沒有想過這個軟件,還能和 (萬惡的) 驗證碼有關系。

它的創始人,路易斯·馮·安,還有一個響亮的名號:那就是驗證碼之父。

01 反向圖靈測試

驗證碼這東西,看起來不起眼,但背後有一個很終極的問題:在互聯網上,如何證明你是一個人。

在這個問題上,最有發言權的必然是電腦科學之父阿蘭·圖靈。他老人家在 1950 年提出的「圖靈測試」,即使到了大語言模型時代,依然被 AI 研究者們視為評估機器智能的重要方式之一。總之,把AI做得越來越像人類,一直是電腦科學家們的目標。

但反過來,如何把人類和電腦區分開來,一直是個少有人研究的問題。 尤其是上個世紀,人工智障水準還差太遠,這基本上屬於一個不成問題的問題。

直到2000年前後,互聯網浪潮來襲,人們工作生活中很多部份都被搬上互聯網,於是灰黑產應運而生。

早年最常見的灰黑產就是指令碼機器人,攻擊者們用它來海量註冊賬號,郵箱賬號可以用來發垃圾郵件,PayPal賬號可以用來盜刷信用卡,以及擾亂各種網絡民調、幫助黃牛攻破線上購票平台。

指令碼機器人雖然壓根算不上人工智能,但怎麽攔住它,並且不影響活人使用者,成了個問題。

2001年,PayPal的聯合創始人兼CTO麥克斯·拉夫琴 (Max Levchin) 發現, 機器無法辨識經過一定扭曲的字元文本。 於是,他們在註冊流程裏,加入了辨識扭曲字元的要求,成功降低了詐騙賬號的數量。

這是驗證碼在商業社會的第一次亮相,首戰告捷。

它的底層邏輯,就是人類與電腦在認知能力上存在差距。尤其是在復雜扭曲的圖形環境裏辨識字母和物體,在嘈雜的場景辨識語音,在影片動畫裏辨識特定圖案,以及對自然語言和邏輯的認知,很長時間裏機器都做不到。

但我們現在通用的驗證碼方案並不來自PayPal。而是來自卡內基·梅隆大學的一個研究團隊,路易斯·馮·安正好是這個團隊的一員。

1995年,馮老師去了美國杜克大學學習數學,然後又跑去了電腦強校卡內基·梅隆大學,拜入圖靈獎得主,有密碼學之父稱號的曼紐爾·布林門下。

馮老師和驗證碼的緣分,源自系裏舉行的一次活動。2003年,雅虎的首席科學家來學校做了一場名為【我們無法解決的十大問題】的講座,他提到,很多不法分子會用機器人自動註冊郵箱賬戶,來發送垃圾郵件。

馮老師聽了講座,覺得這事兒用密碼學可以解決啊,於是他回去和導師說了這事兒。幾個人在一起,鼓搗出一篇論文。

在論文中,他們提出了一個全新的概念:分辨人類與電腦的全自動公共圖靈測試 (Completely Automated Public Turing test to tell Computers and Humans Apart) ,就是讓電腦自主生成一些測試方案,比如在隨機生成的文本上添加一些失真的效果,或者將一些動物的圖片進行扭曲。

這些測試裏,人類可以輕松辨識出正確的文本和動物的種類,但電腦卻搞不定。這樣一來,這個測試就可以作為一種自動化辨識人類和電腦的方案。 某種程度來說,它是一種「反向圖靈測試」。

這個概念縮寫為「CAPTCHA」,也就是我們現在說的驗證碼。

馮老師也不藏著掖著,把這套方案免費送給了雅虎,雅虎一看,如獲至寶,我先用為敬。

隨著雅虎率先在自家郵箱產品裏套用了CAPTCHA,很快就解決了垃圾郵箱的問題。此後越來越多的開發者們開始使用這套方案去辨識機器人和真實使用者。

02 人類可以給機器打工嗎?

驗證碼的出現,的確解決了很多網絡安全問題,但代價也不是沒有。

一個核心問題,如果驗證碼,使用者覺得很容易,那機器人大概率也會覺得它不難。但如果把驗證碼做得非常扭曲,安全性是上來了,那使用者可能就要罵人了。

流暢的使用者體驗和靠譜的安全性是很難共存的。

這個事情讓路易斯·馮·安非常困擾,馮老師很早就對媒體表示過:每天全球幾億人在使用驗證碼,每天輸入驗證碼的時間就要花掉50萬小時,而一個人的一生差不多也只有70萬的小時。可以說,每天驗證碼就要耗掉一條生命。

為此,他開始思考如何讓驗證碼產生更多社會價值,抵消它的浪費。

2005年,馮老師完成了他的博士論文,他的論文內容是一項名叫「ESP Game」的遊戲。

這個遊戲類似於你畫我猜,或者綜藝裏的猜詞遊戲。登入後,系統會隨機匹配兩位玩家,給雙方相同的圖片,要求雙方輸入一些單詞去描述這張圖片。

在不能交流的情況下,兩位玩家只有對同一張圖片輸入了同一個單詞描述才算過關。兩位玩家要在兩分半的時間裏完成15張圖片的匹配。

而在馮老師看來,互聯網公司完全可以利用這樣的遊戲,對數據庫裏的圖片打標簽,實作更準確的圖片搜尋。

這個思路,被他總結為「人類計算 (Human Computation) 」概念。也就是把傳統的,人類用電腦解決問題的流程倒過來,由電腦出題,讓一群人來解決那些電腦搞不定的問題,並且收集、整合他們的解決方案。

這篇論文不僅幫他拿下了學位,「ESP Game」還被谷歌收購,成為馮老師第一個變現的專案。

回到驗證碼,馮老師覺得,同樣是「人類計算」,既然可以用在圖片領域,也可以用在文字領域。

00年代初期,很多公益組織開始嘗試將書籍進行數碼化,把舊書掃描成電子版。但褪色的墨水的褶皺的紙張,都會讓文字扭曲模糊,導致電腦無法辨識文字。

於是,馮老師開發了一個名叫reCAPTCHA的全新驗證碼系統。

和傳統的單一驗證碼不同, reCAPTCHA一次會要求使用者輸入兩個單詞,一個是常規的驗證碼,另一個則是在書籍數碼化的過程中難以辨識的單詞。

只要使用者輸入正確的常規碼,那麽他在第二個單詞裏輸入的答案就會被電腦讀取,和其他使用者對同一個單詞的辨識進行比對,如果同一率高,就會被當成正確的文字,拿去進行書籍的數據化。既讓使用者做了驗證,又幫助文獻數碼化,為知識的傳播做了貢獻,一舉兩得。

這個系統發明出來,立刻吸引了【紐約時報】的註意。當時【紐約時報】正在做一個舊報紙數碼化的專案,想把過去130年的內容全部都數碼化。借助reCAPTCHA的力量,一千多萬篇內容很快完成了辨識。

隨後,各種各樣的組織找上門,都希望用reCAPTCHA來做書籍數碼化。

這套由人類和電腦共同形成的「大規模分布式計算網絡」,在推出的第一年,就正確破譯和轉錄了超過4.4億個單詞,相當於17600本書。

馮老師徹底賺麻了,每隔幾個禮拜就有支票寄到學校請他簽收。

這麽一來,學校不爽了,你在外面接私活也就算了,還這麽高調賺大錢,你讓其他教職員工怎麽想?於是取消了他的職位。眼看著鐵飯碗沒了,馮老師心一橫:老子不奉陪了。

當了兩年人民教師,2007年,路易斯·馮·安下海創業建立了自己的公司。

誰知這次創業只堅持了兩年,馮老師,哦不,馮老板就再次收到谷歌的收購要約,含淚賣掉公司成為千萬富翁,並且加入谷歌成為大廠打工人。

話說回來路易斯·馮·安提出的「人類計算」,聽起來非常性感,但實際上也是一個古老的概念,我們通常稱其為「眾包」,也就是企業把過去由員工完成的工作,外包給不特定的大眾網絡。

每個使用驗證碼的使用者,其實都在不知不覺中,為驗證碼背後的工作充當了免費勞動力。

但路易斯·馮·安覺得,眾包模式還有其他的可能性。

雖然他本人屬於含著金湯匙出身的一批人,但馮老師屬於比較懂事的那種,加上母國危地馬拉又是個窮國家,馮老師很早就註意到,像他這樣從小接受英語教育,長大還能跑到美國上大學的屬於萬中無一,大部份都困在「低收入-低教育水平-低收入」的迴圈裏。

他覺得,也許眾包模式能解決這個問題。

於是2011年,當了幾年大廠高級打工仔的馮老師宣布重回學校,並且和他的學生一起帶來了一個全新的產品:

免費語言學習平台多鄰國 (Duolingo) 。

成立初期的多鄰國和現在那個背單詞打卡完全不是一個物種,它主要的業務是眾包轉譯平台。

也就是它會將需要轉譯的頁面內容拆解出來,給學習者去轉譯,然後將反饋回來的轉譯內容利用後台演算法比對篩選,找出最佳轉譯組合,最後將轉譯內容以遠低於人工轉譯的價格提供給網站客戶。

某種程度上,和reCAPTCHA又異曲同工之妙。

透過眾包轉譯的模式,學習者可以免費在這裏學習語言,客戶付費獲取廉價的轉譯服務,多鄰國作為中介平台實作營收。

但和驗證碼不一樣,馮老師的「眾包教育」之路沒有走通。這套模式並不足以讓多鄰國實作盈利。盡管一口氣融到D輪,但投資人是要看到回報的。

於是在2015年,多鄰國放棄轉譯服務,轉而開發使用者價值,陸續上線了App內購,廣告,會員服務等等等等,也就有了如今我們看到,那個擅長PUA使用者,賤兮兮的綠色貓頭鷹App。

到2021年,多鄰國在納斯達克上市,馮老師再次步入人生巔峰。

如今的多鄰國,是一個靠著6%的付費使用者,貢獻70%營收的公司,看似已經變成一個使用者付費主導的平台了,但事實上我們都知道, 在一個遊戲化的設計裏,免費玩家本身就是付費玩家使用者體驗的一部份。

路易斯·馮·安自己也承認,免費使用者的存在,能幫助公司省下大量的行銷、增長和促活費用。

只要大家還有攀比心,還有收集癖和上進的動力,多鄰國就能用精妙的營運手段,從使用者身上獲取價值。

畢竟他最擅長的事情,就是讓使用者免費為他打工。

03 驗證碼的無盡戰爭

盡管路易斯·馮·安早早地就離開了reCAPTCHA,但此後,這家公司依然是這個市場上最重要的玩家。

誰叫它背後,站著谷歌這麽個巨頭呢?

而且在他走後,驗證碼的江湖更加精彩。

畢竟驗證碼就在那兒,總會有人想方設法去破解它。

技術含量最低的,也是最容易想到的方式,就是人工暴力破解,只要你能找到價格足夠低的人力,雇人填寫驗證碼就是一項劃得來的生意。

你要做的只是做一個API介面,把驗證碼轉發給打碼平台,平台就會把任務分配給身處世界各地的打碼工,打碼工辨識後把答案傳回去,就能實作自動化的操作了。

但人工破解並不完美,2013年,史丹福大學一項研究演示,主流網站上的驗證碼解決準確率大約只有85%,當研究人員給三個不同的人提供相同的驗證碼時,三人同時輸入正確的比例,只有71%。況且,人工破解的速度也並不夠快。

要打敗這套「反向圖靈測試」,還得靠足夠強大的AI。

2014年,谷歌內部專家提出了一套基於強化學習的驗證碼解決演算法,可以用99.8%的準確率解決最困難的扭曲文本變體。

這個準確率有多恐怖,研究人員找來活人,讓他們辨識同樣難度的驗證碼,人類的正確率也只有33% 。

人類一敗塗地啊。

到這個階段,傳統驗證碼對AI來說已經如土雞瓦狗,冢中枯骨了。

谷歌覺得,是時候給破解者們上上強度了。

2012年,reCAPTCHA開始探索圖片驗證碼,它要求使用者從谷歌模組屋的圖片中,辨識人行橫道,路燈和其他物品。延續了reCAPTCHA的作風,使用者的標記會被拿去發揮余熱,為谷歌地圖和搜尋訓練模型。

到2014年,谷歌正式推出了全新的驗證碼解決方案No-CAPTCHA。也就是我們熟悉的「我不是機器人」按鈕。

正如這個方案的名稱,No-CAPTCHA不再使用傳統的驗證碼來考察人類的認知能力,而是對使用者的互動方式展開分析,觀察滑鼠運動軌跡,分析使用者之前存取過的頁面,從而判斷存取者是不是活人。

到2017年,谷歌更是推出了全新的reCAPTCHA v3。

這個版本對使用者來說,幾乎完全取消了驗證碼環節,直接透過後台分析使用者戶行為進行判斷,只有在無法判斷時,才會彈出傳統的圖形驗證碼來輔助進一步驗證。

除了谷歌和reCAPTCHA之外,也有其他的開發者在試圖平衡驗證碼的安全性和易用性。

有人希望用硬件進行安全驗證,登入註冊的時候插一個U槽到電腦裏。

有人希望用面部辨識驗證,讓網絡攝影機證明你生而為人。

至於常見的「拼圖」式驗證碼、旋轉式驗證碼,則是另一個流派。這類遊戲驗證碼並不會給出明確的任務指示,AI很難搞清楚要怎麽做,但人類只要看到這些遊戲,本能的就能理解它的邏輯。

甚至還有更走火入魔的,利用一些高語境問題來做驗證。

比如拿「宮廷玉液酒」做驗證碼,可能只有中國使用者才能填出「一百八一杯」。這就已經違背了驗證碼作為區分人和機器的初心了。

當然,我們也必須承認,如今AI的發展一夜千裏,無論防禦手段如何前進演化,只要透過條件是已知的,那任何反向圖靈測試本質上都是可以被破解的。

但如果我們用另一種方式去解讀,驗證碼的意義,從來不止於網絡安全。

至少路易斯·馮·安和reCAPTCHA,從一開始就沒有單純把它當成一種安全策略。

相反,無論是「反向圖靈測試」還是「人類計算」,reCAPTCHA都認為,驗證碼與人工智能息息相關,他們從一開始就承認,驗證碼是一種非常優雅的人工智能訓練工具,因此任何給定的測試都只能是暫時的。

更重要的是,驗證碼身上還有著諸多限制,為了讓驗證碼能夠適配不同教育水平,不同國族文化,不同生活經驗的使用者,它必須被設計為獨立於一定語境之外的,無需事先訓練或者長期培養才能透過的。比如看圖識字母,比如選擇圖片。

從這個角度看,驗證碼就像一場註定失敗的戰役,它想要分辨人類與機器,但它所考察的,卻是那些最不能體現「生而為人」特質的。

這就是驗證碼的悖論所在,它試圖用一項任務衡量人性含量,但人性恰好是無法透過高效完成任務去驗證的,不確定,不精確,才是人的特征。

谷歌放棄辨識型驗證碼,轉而從使用者行為去做驗證,也必然是看到了這條悖論。

正如谷歌前員工,負責打擊點選欺詐的舒曼所言:真正的人類無法很好地控制自己的運動功能,無法在多次互動中以相同的方式多次移動滑鼠。

他說:「人類行為具有難以欺騙的‘熵’。」

但更終極的問題在於,當人工智能更進一步,學會模仿人類行為上的不精確,不穩定之後,又有什麽能證明人類與機器的差異?

而這一切,都無數次的回應了【紐約客】那個著名的互聯網格言:

「在互聯網上,沒人知道你是一條狗」。