人人都討厭驗證碼,但我們為什麼離不開它?_風聞
造就-造就官方账号-发现创造力2019-05-07 09:03
很多人可能都聽過圖靈測試。它的目的,是讓一個人弄清楚自己的交流對象究竟是人還是機器。計算機在模仿人類方面已經變得更加出色,而它們也越來越善於破解圖靈測試,讓驗證系統誤以為它們是人類。
在本世紀頭十年裏,當自動化的軟件機器人橫行網絡時,最終出現的解決方案是圖靈測試的一個變種:全自動區分計算機和人類的公開圖靈測試(Completely Automated Public Turing test to tell Computers and Humans Apart,簡稱Captcha,俗稱驗證碼)。
驗證碼系統讓網站得以對人類和機器的行為加以區分。或者説,它的初衷是如此。
“易用性和安全性之間始終存在着鬥爭。” 英國伯恩茅斯大學的人機交互學講師蔣楠(音)説道。早期驗證碼的開發成員包括語言學習平台多鄰國(Dulingo)的創始人,當時,驗證碼就是識別圖像中的字母和數字。2009年,谷歌買下了該系統,並將之改造為reCaptcha,以對書籍的數字化工作提供幫助。
通過識別非人類行為,網站得以在一定程度上阻止自動化機器的襲擾。不過,早期的驗證碼非常糟糕,不為用户所喜。2013年,票務公司特瑪捷(Ticketmaster)棄用了“令人深惡痛絕的”驗證碼,反對這項技術的潮流開始湧現。
計算機視覺技術的進步讓計算機得以識別圖像,這也讓驗證碼失去了當初的意義,不再能發揮作用。正如過氣的Captcha官網所解釋的那樣,“情況要麼是驗證碼沒有被破解,我們有辦法區分人和計算機;要麼是驗證碼已經被破解,我們解決了一個人工智能問題。”
破解驗證碼
早在2013年,人工智能初創公司Vicarious就宣佈,他們已利用自己的人工智能技術破解了Captcha。四年後,該公司在同行評議的學術期刊《科學》上公佈了這種方法。
Vicarious聯合創始人迪利普·喬治(Dileep George)表示,在破解Captcha和reCaptcha時,其算法使用的方法,數據密集度並不高。喬治説,通過使用遞歸皮層網絡,他們用於訓練算法的圖像數量比其他方法少了5,000倍,同時仍然能夠識別驗證碼系統的文本、手寫的數字以及真實環境中的文字。
“你真的需要理解那個字母是什麼。”喬治説。他解釋稱,Vicarious的系統能夠創建字母的模型,從而得以瞭解它們的構成方式。這樣一來,研究人員就不需要用之前的驗證碼樣例對人工智能系統進行訓練了。“如果你建立了那個模型,那麼即便人們改變了背景,你仍然可以使用模型來識別字母。”他解釋道。喬治表示,之所以等到現在才公佈這項研究成果,是因為他們在等待這些驗證碼系統被淘汰;此外,他的團隊是在2015年底才開始撰寫這篇研究論文的。
這不是驗證碼系統第一次遭到破解了。2011年,斯坦福大學的計算機科學家破解了Audio Captcha(音頻驗證碼),該技術會把驗證碼讀出來讓用户進行辨識,微軟、Digg和eBay等公司都曾應用過這種技術。
此外,還有人試圖使用人力來暴力破解驗證碼系統。2008年,人們發現印度一些公司在僱人填寫MySpace和谷歌的驗證碼。那時,你只需花2美元就能完成1,000次驗證。不過,2010年的一項研究發現,人類填寫驗證碼的正確率只有71%。
現在,甚至連一些複雜的驗證碼技術也已遭到破解。Snapchat的點擊式驗證碼被自動化技術斬落馬下。2014年,谷歌正式拋棄了基於文字的驗證碼系統,代之以“我不是機器人”按鈕。這套基於人工智能的系統還包含了二次測試,用户有時需要從圖集中點選所有包含貓或其他事物的圖像。
哥倫比亞大學的三位研究人員使用深度學習技術去自動識別谷歌的reCaptcha,成功率達到了70%。“我們還用這種方法去破解Facebook的圖像驗證碼,取得了83.5%的準確率。”這些研究人員在一篇論文中寫道。在驗證碼系統遭到全面破解的情況下,我們顯然需要做點什麼了。
重置驗證碼
一邊是要保護網站免遭垃圾製造者的襲擾,一邊是要創造出安全的驗證碼系統,這兩者之間的鬥爭已經隱於幕後。2016年底,谷歌公佈了Invisible reCaptcha,它用到了所謂的高級風險分析技術。
這套系統利用谷歌的人工智能技術來尋找人類行為的跡象。它從網頁上移除了“我不是機器人”的選項框,轉入幕後運行,對鼠標的移動以及點擊操作花費的時間進行檢測。該公司的安全博客表示,這套於2017年3月上線的隱形系統已經“讓數百萬人類用户每天無需任何點擊就通過了驗證”。谷歌沒有透露有關該系統工作原理的更多細節。
其他正在開發中的驗證方法仍然需要用到一些人類知識。伯恩茅斯大學的蔣楠開發了一套名為Tapcha的移動驗證碼系統。他説,在一個機器變得越來越無足輕重的世界裏,我們需要複雜的新方法來超越人工智能技術。按照設計初衷,這套Tapcha系統將在移動端運行,它基於舊式的扭曲文本方法。
“我們使用這種方法來創建指令。”他説。舉例來説,Tapcha用扭曲的文本描述了一項任務,用户必須讀完,並按照指令採取行動。系統會要求用户把一個星星從屏幕一側移動到另一側,並把它放在另一個形狀的上面。“這裏面內置了一個語境。”蔣楠説。他認為,要破解這種驗證方法,機器不僅需要理解所寫的文字,還要理解背後的語境以及所需要完成的任務。
再把視線投向亞馬遜。該公司為一套驗證碼系統申請了專利,它反其道而行之:在驗證過程中表現糟糕的那個才是人類。根據該專利的説法,人類有可能會在一些基本的邏輯測試中出錯(比如,數出一句話中某個特定字母的數量),而機器卻能輕鬆給出正確答案。
亞馬遜另外還申請了一份專利,它可以對你的物理學知識進行測試。正如蔣楠給出的例子,在這樣的驗證碼系統中,機器必須理解圖像中發生了什麼事情,並自主得出結論。即便人工智能技術取得了諸多進步,但目前還很難達到那樣的水平。
那麼,這些系統可靠嗎?蔣楠預測,如果人工智能足夠接近人類,那麼所有的驗證碼系統都有可能被破解。“如果我們開發出頂尖的人工智能技術,那麼這些驗證操作有可能被一些我們尚不知道的人工智能算法模擬完成。如何在維持安全性的同時,又能保留驗證碼方案的易用性,這是一道難題。”
對於驗證碼,大家或許都討厭它,但它需要保留一些人類互動元素,來應對越來越聰明的人工智能系統。相比起在暗地裏辨別人與機器的黑箱,驗證碼也許更招人喜歡。
互動話題:
你有遇到過什麼好玩的驗證碼嗎?