深度: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):閾下知覺是低於閾限的刺激所引起的行為反應。雖我們感覺不到,但卻能在潛意識中形成記憶,引導之後決策。
眾包數據標註: 驗證碼是用戶登陸的必經之路,谷歌已經對接了圖片分類問題實現圖片樣本的自動標註、物體識別等。
訪問許可權控制:類似於門衛,在加入某些小眾群體的時候,能起到區分作用,只有知道特定群體知識的人才能回答驗證進入系統。
雷鋒網原創文章,網站轉載請至雷鋒網官網申請授權。但,歡迎轉發分享~
※分析:日本2020前完成高精度地圖採集 你可知個中戰略細節?
※翻新三星 Note 7將於6月在韓國7折出售 電池有所調整
※FAIR 實驗室的 ICLR 2017:理解對話是一場漫長的博弈
※龍芯推出新一代處理器,離 Intel 還有多大差距?
※福利 | 和雷鋒網一起,去清華 x-lab 傾聽科技和資本的聲音
TAG:雷鋒網 |
※12306 春運購票,9 成無需驗證碼
※如果12306的驗證碼都和垃圾分類有關,我可能買不到票了……
※基於GAN的驗證碼識別工具,0.5秒宣告驗證碼死刑!
※12306驗證碼要是改成這樣,肯定打敗全國99%用戶!
※iOS 12驗證碼自動填充:體驗很蘋果
※當12306遇到英雄聯盟驗證碼,會有多少人能順利回家?
※12306將優化驗證碼策略 出現率壓縮至5%-10%
※iOS 12 貼心小功能:自動填充驗證碼
※2018世界機器人大會/9月PT展前瞻/給簡訊驗證碼加把安全鎖
※CCS 2018論文解讀:使用少量樣本破解文本驗證碼
※iOS 12 驗證碼自動填充很方便 但它安全嗎?
※iOS 12驗證碼自動填充很方便 但它安全嗎?
※12306驗證碼到底有多坑爹?騷男遇到這個問題簡直被秀暈了
※深夜恐怖事件:100 多條驗證碼簡訊轟炸,一覺醒來錢都沒了
※iOS 12 自動提取驗證碼,是便捷還是「威脅」?
※好用到爆!iOS 12自動複製簡訊驗證碼
※iOS 12新功能「驗證碼自動填充」引爭議!它安全嗎?
※英語4,6級成績查詢,沒有驗證碼神操作,網友:果然是這樣
※iPhone iOS 12功能新亮點,可以自動讀取並輸入簡訊驗證碼
※簡訊驗證碼如此不安全!蘋果雙重驗證好太多