淘新聞

復旦大學肖仰華:12306的驗證碼已不再安全,未來屬於智慧驗證碼

4月13日,中國科學院科技戰略諮詢研究院與騰訊研究院在北京聯合舉辦了“2017人工智慧:技術、倫理與法律研討會”,會議邀請了中國科學院科技戰略諮詢研究院院長潘教峰、騰訊研究院院長司曉、中國科學院學部科學規範與倫理研究與支撐中心李真真、復旦大學電腦學院肖仰華等數十位人工智慧領域專家和學者,共同探討當前人工智慧技術發展中面臨的和帶來的倫理、法律、社會經濟影響等問題。

期間,肖仰華教授做了主題為“未來人機區分——基於語言認知的智慧驗證碼”的分享,雷鋒網根據現場錄音、PPT、以及採訪內容整理成文。

雷鋒網按:肖仰華,復旦大學電腦科學技術學院,副教授,博士生導師,上海市互聯網大資料工程技術中心副主任。主要從事大資料管理與挖掘、知識庫等方向的研究工作。

為什麼需要驗證碼?

首先,非常高興有機會跟大家來分享我在人機區分方面一些思考和工作。我主要從事電腦研究,近幾年關注的比較多的是人工智慧領域的相關研究。在研究不斷開展的過程中我們越來越強烈地意識到一個問題,那就是我們現在已經很難區分電腦背後到底是人還是機器,這就很容易造成一個非常尷尬的局面,我們到底是在跟人交互還是在跟機器交互?我最近聽到一個笑話,有一個人在婚戀網站上談朋友,最後發現是一個機器人在跟他聊天。所以人機區已經成了非常重要的一個議題。

到底怎樣才能有效地區分互聯網的另一端是機器還是人呢?我們電腦領域給出的方案就是驗證碼。這個小小的驗證碼是所有人最熟悉卻又最為陌生的事物,幾乎所有人都使用過驗證碼,但是驗證碼背後的機制與原理卻並不為人所熟知。

為什麼在登錄系統的時候需要輸入驗證碼?事實上就是為了做人機區分,系統需要知道是真實的人還是機器在獲取我們的資料,是真實的人在購買還是機器在刷單,是真實的人在購票還是機器在搶票。

所以驗證不單單是一件事關乎整個人類身份和尊嚴的事情,同時也是具有重大安全意義的問題,而且已經在保證網站安全、資料安全、運營安全和交易安全等方面發揮了巨大的作用。

網站安全:垃圾註冊、惡意登錄、帳號盜用

資料安全:資料爬取、資料破壞

運營安全:惡意刷單、虛假秒殺、虛假評論

交易安全:虛假交易、惡意套現、盜卡支付

為什麼傳統的驗證碼已經不安全了?

但是最近幾年人工智慧技術的發展,特別是大資料推動下的人工智慧技術的發展,已經使得機器的感知能力達到甚至超越了人類的水準,這個技術趨勢的直接結果是什麼呢?就是基於感知能力的人機驗證的方式已然失效。

先簡單回顧一下近幾年人工智慧發展的趨勢。如果想尋求一個簡單原因來解釋為什麼最近幾年人工智慧風風火火,或者人工智慧為何這麼興旺,那麼這個原因應該是大資料時代的到來,沒有大資料不可能有人工智慧如今的發展。我們現在有著越來越龐大的資料規模,越來越完整的資料生態,這是人工智慧跨越式發展的前提和基礎。此外,大資料時代我們的硬體水準呈現出指數級增長的趨勢。現在我們擁有前所未有的計算能力,而這個計算能力仍然在飛速增長。正是計算能力的飛速增長以及大資料的迅速積累為人工智慧的跨越式發展奠定了基礎。大資料時代為人工智慧的發展可以說帶來前所未有的資料紅利。

人工智慧近期的發展,尤其體現在以深度學習為代表的機器學習方面,近幾年我們看到深度學習在很多領域取得了前所未有的突破。深度學習之所以能夠迅猛發展,其實就是因為有了海量的標注資料,所以大家看到最近很多深度學習方面突破大都來自像Google、Facebook這樣的大公司,為什麼?因為他們有海量的資料。

以深度學習為代表的人工智慧技術快速發展的一個直接結果就是:機器在某些方面的感知能力方面已經達到甚至超越了人類水準。比如微軟在圖像識別方面的準確率達到96.43%,人類只有94.9%。也就是說人去看一個圖像都不一定有機器看得准。百度的DeepSpeech平臺的語音辨識錯誤率已經降到3.7%-5.7%之間,而人類的錯誤率仍有4%-9.7%,所以在語音辨識方面機器已經超越人類。以深度學習為代表的人工智慧技術已經讓機器在視覺、聽覺方面的感知能力大幅進步,在視聽這些基本的感知能力層面人類已經沒有什麼好值得驕傲的。現在我們身邊的機器,其感知能力事實上比我們強。

這個技術趨勢的直接結果是什麼呢?就是大家最為熟悉的圖片驗證方式已經徹徹底底失效。這些結果不是來自什麼頂尖的實驗室,而是來自某大學的碩士生課程作業。對於Complex Image這種相對複雜的驗證碼,機器識別的準確率高達98%-99.8%。在人機對比實驗裡,人大概10個裡面要錯3個,機器10個裡面只錯了1個,基本上是機器完敗人類。互聯網上的很多平臺目前還嚴重依賴這類驗證碼,以為能夠防止刷單、刷票等等,但是事實上並不安全。

傳統驗證碼可以說已經十分不安全。比如上圖中拖拽驗證碼,已經可以通過自動化程式來破解。而且這樣的破解程式也不需要什麼高手才能做出來的,這裡演示的是我實驗室同學用來練手的破解專案。先通過影像處理演算法找出方塊的目標位置,由於方塊區位特徵明顯,很容易找到。之後設計一個帶參數剛體運動的軌跡類比模型,參數隨機化之後模擬真人的軌跡拖動,從而實現破解。

12306圖形驗證碼

除了拖拽驗證碼,據說難倒了很多購票者的12306的驗證碼其實也可以被破解。

12306的驗證碼本質上在做圖片中的物件識別,因此可以利用已經相當成熟的ImageNet相關演算法,而ImageNet相關演算法對圖片中的實體識別已經到達很高的準確率。

穀歌圖形驗證碼

此外,就連穀歌圖片驗證碼也可以通過類似的方法被破解。穀歌圖片驗證碼識別的主要難度在其類型多樣:有時是選擇圖片中招牌部分,有時是框出圖上的汽車。但是對於每一類驗證都是有相應的破解方法,特別是對於基於圖片中物體識別的驗證碼,可以用類似ImageNet的相關演算法破解。

如今,幾乎所有的主流的傳統驗證碼都已經被破解,傳統的驗證方式早已不安全。

未來屬於基於語言認知的智慧驗證碼

出路何在?我的觀點很明確,那就是基於語言認知的人機區分,也就是考驗機器語言認知能力的智慧驗證碼,這將會是未來一段時間內的重要選擇。

這類驗證碼的基本思路是,讓機器去讀一段文本,然後回答問題。有點類似語文裡面的閱讀理解。比如說讓人或機器讀這麼一段文本:“某人從復旦大學哲學系畢業,現在是鄭州大學公共學院的導師”,然後問“這個人的在職單位是什麼?”人或機器需要點擊包含答案的文本片段才能通過驗證。這類驗證本質上是在考驗人或機器的文本理解能力。對於人而言極為簡單,但是對於機器而言,這是很有難度的。比如剛才的例子,機器有可能回答復旦大學,也有可能回答鄭州大學,但是我們都知道只有鄭州大學是他的在職單位。機器要回答這個問題必須理解這段話講的是什麼,必須能夠區分鄭州大學和復旦大學一個是學習單位,一個是在職單位。換言之,機器必須具備像我們人一樣的認知能力,才能破解這樣的驗證碼。但是很遺憾,機器畢竟沒有像人一樣受過十幾年的教育,也就無從具備這樣的文本理解能力。當前機器在認知能力方面,尤其在語言認知方面,至少在未來一段時間視窗內還難以企及人類水準,可能再過二十年、三十年或許能達到這個水準,但是這是二、三十年之後的事情了。

我們來看看當前人工智慧到底有什麼問題。當前人工智慧的問題集中表現在理解常識的能力和推理能力非常有限。什麼叫常識?幾乎所有人都知道,以至於大家都不說的知識,叫常識。比如說太陽是從東邊升起的,人是會走但是不會飛的,魚是會遊但是不會走的,雞是有兩條腿,兔子是有四條腿的,類似於這樣的知識,就叫常識。機器普遍缺乏這種常識,因為機器現在所學到的知識都是從文本裡面學習來的,但是常識是人人都知道的,所以文本裡不會被提及,那就意味著資料裡不會存在,因此機器就無從學習。所以機器現在是普遍缺乏常識的。

我們再想想人為什麼具有這種常識?人的常識是通過自身與世界的交互而產生的,我們從胚胎開始就在積累常識,就在感受時間的流逝,感受空間的存在。當你是一個很小的小朋友時你就知道調皮會挨打,所以你就在體驗有因必有果。時間感、空間感、因果感,都是通過身體經年累月的體驗而形成的。人類要想在短短幾十年時間內,把這種通過體驗而得到的知識以一種填鴨式地方式灌輸給機器是很困難的。

另外一方面是推理能力有限。

我曾經問過很多線上機器人:“奧巴馬是白人嗎?”,很多機器的回答都不準確。事實上,這些機器背後的知乎庫中都存有“奧巴馬是黑人”這樣的事實,但是從“奧巴馬是黑人”推理出“奧巴馬不是白人”,對機器來說就非常困難。

另一方面人類的推理是能夠容忍很多異常的。比如說“有翅膀的鳥會飛”,大部分情況下是這樣的,但是你也會發現一些特例,比如企鵝有翅膀不會飛,鴕鳥有翅膀也不會飛。機器只能勝任非黑即白的推理,異常容忍的推理對於機器而言仍很困難,但對於人而言確極為簡單。這裡提及的難題目前有一個不成熟的說法,被統稱為AI-Complete問題,也就是說這些問題要等到機器智慧達到人類水準的時候才能解決。這明顯是個悖論,但從這一說法可以看出這類問題有多難。

基於這些認識,我們提出並實現了一種基於知識圖譜的驗證碼。我們有一個目前世界上最大的中文百科知識庫

CN-DBpedia

。利用自有的知識庫,自動生成自然語言問題,自動判定答案。所有的問題全是自動生成的,理論上可以生成數以億計的問題。同時我們平臺可以自動判定答案,但是機器是不知道答案的,機器必須通過理解才能知道答案。我們的驗證碼還具有交互友好的特性,只要輕輕一點就能通過驗證。

那麼我們的系統是如何知道答案的呢?其實在CN-DBpedia裡存儲的是2億多的結構化事實,比如(復旦大學,所在地,上海),基於這些結構化事實,我們通過深度學習模型自動生成自然語言問題,也就是說我們的系統在提問時是已經知道答案的。

如果要破解我們的驗證碼需要以下幾個技術儲備:

識別圖片裡面的文字以獲取問題

理解文本以及問題,進而生成答案

使用一個成熟的涵蓋數億關係知識庫的QA系統

因此,破解這個驗證碼至少比破解目前流行的圖片驗證碼要難(上述第1步)。文本理解以及知識庫上的QA(雷鋒網注:特別是能回答數以億計知識的QA),是目前正在研究和探索的問題,還沒有成熟的解決方案。因此,至少目前,在機器語言認知能力尚未達到人類水準之前,我們的驗證碼是難以破解的。

我們的核心技術是從知識庫裡面結構化知識自動生成自然語言問題。我們提出了基於生成對抗網路(GAN)的從結構化三元組生成自然語言問題的模型,從而實現問題的自動隨機生成。理論上有數以億計的候選問題空間,一個真實的用戶是不會兩次碰到相同的問題的,從而保證了驗證的安全可靠。

同時,為了進一步提高驗證的安全性,降低對於真實用戶的驗證門檻,提高對於機器驗證的門檻,我們也考慮到了分級驗證。如果是首次登錄的普通用戶,就採用簡單的驗證,如果是高頻訪問的帳號就用複雜驗證,比如說像淘寶的刷單,我們就可以通過組合驗證的方式,將機器拒絕於門外。

組合驗證實際上就是通過組合文本理解、圖片識別、軌跡識別等不同驗證碼方式來增加機器破解的難度,從而實現更強的安全驗證。

我們的驗證碼終極形式是常識驗證。比如說:“上海GDP僅次於日本東京,問GDP第一的城市是誰?”答案應該是“東京”,回答這類問題本質上是在考驗機器的常識理解能力。常識理解問題可以說是人工智慧皇冠上的問題。

基於語言認知的智慧驗證碼具有非常多的應用場景,包括電商平臺防搶單、用戶註冊防僵屍、航旅春運防刷票、發表評論防水軍、資訊檢索防爬取、論壇博客防撞庫等等。不僅如此,這種驗證碼還有很多超越人機區分的未來商業應用價值:

閾下知覺廣告(subliminal advertising):閾下知覺是低於閾限的刺激所引起的行為反應。雖我們感覺不到,但卻能在潛意識中形成記憶,引導之後決策。

眾包數據標注: 驗證碼是用戶登陸的必經之路,穀歌已經對接了圖片分類問題實現圖片樣本的自動標注、物體識別等。

存取權限控制:類似于門衛,在加入某些小眾群體的時候,能起到區分作用,只有知道特定群體知識的人才能回答驗證進入系統。