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

2020-12-05 雷鋒網

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

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

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

為什麼需要驗證碼?

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

到底怎樣才能有效地區分網際網路的另一端是機器還是人呢?我們計算機領域給出的方案就是驗證碼。這個小小的驗證碼是所有人最熟悉卻又最為陌生的事物,幾乎所有人都使用過驗證碼,但是驗證碼背後的機制與原理卻並不為人所熟知。為什麼在登錄系統的時候系統會讓人輸入驗證碼?事實上就是為了做人機區分,系統需要知道是真實的人還是機器在獲取我們的數據,是真實的人在購買還是機器在刷單,是真實的人在購票還是機器在搶票。所以驗證不單單是一件事關乎整個人類身份和尊嚴的事情,同時也是具有重大安全意義的問題,而且已經在保證網站安全、數據安全、運營安全和交易安全等方面發揮了巨大的作用。

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

數據安全:數據爬取、數據破壞

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

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

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

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

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

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

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

這個技術趨勢的直接結果是什麼呢?就是大家最為熟悉的圖片驗證方式已經徹徹底底失效。這些結果不是來自什麼頂尖的實驗室,而是來自某大學的碩士生課程作業。對於ComplexImage這種相對複雜的驗證碼,機器識別的準確率高達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第一的城市是誰?」答案應該是「東京」,回答這類問題本質上是在考驗機器的常識理解能力。常識理解問題可以說是人工智慧皇冠上的問題。

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

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

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

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

相關焦點

  • 12306驗證碼已不再安全 機器準確率99.8%
    會議邀請了中國科學院科技戰略諮詢研究院院長潘教峰、騰訊研究院院長司曉、中國科學院學部科學規範與倫理研究與支撐中心李真真、復旦大學計算機學院肖仰華等數十位人工智慧領域專家和學者,共同探討當前人工智慧技術發展中面臨的和帶來的倫理、法律、社會經濟影響等問題。
  • 12306網站驗證碼遭拍磚 「驗證碼」本意是安全不是麻煩
    近日,購票網站12306再次被拋向輿論的風口浪尖。這一次,其飽受詬病的不是令人崩潰的網站,而是驗證碼。一方面人們紛紛吐槽12306網站的圖形驗證碼不易辨認,另一方面,人們也開始對驗證碼本身產生了質疑,究竟驗證碼有沒有存在的必要,是不是有些多此一舉呢?
  • 12306將剔除辨識率低圖形驗證碼
    對此,12306相關負責人昨日向記者表示,為防止搶票軟體自動識別,相關圖形做了技術處理,但未來將會剔除一些辨識度低的圖片。  圖片技術處理為防搶票軟體  「12306的驗證碼,已經擊敗了全國99%的購票者,我已經找不到回家的路了。」近日,春運購買火車票期間,不少網友發帖吐槽12306的圖形驗證碼。
  • 12306圖形驗證碼讓人"吐槽" 驗證碼到底有什麼用
    在年底的網絡購票高峰中,中國鐵路客戶服務中心的12306圖形驗證碼系統被很多購票者「吐槽」。人們不禁要問,複雜的驗證碼系統,到底有什麼用?其實,驗證碼存在的最大意義,就是區分在頁面上進行輸入操作的是人還是自動化的軟體。
  • 12306驗證碼圖片刷不出來不顯示怎麼辦
    12306網站太不靠譜了,驗證碼半天也顯示不出來,12306驗證碼不顯示怎麼辦?不少旅客在12306網站訂票都碰見過這個問題,這個問題怎麼破呢?小編馬上為您支招。  小編分析了一下12306驗證碼不顯示的原因,主要有兩個原因。
  • 12306網購火車票驗證碼全靠猜 圖形碼已達581種
    12306驗證碼大數據。  581種圖形碼 七星瓢蟲、噴霧器最難認  360瀏覽器公布的12306驗證碼大數據顯示,12306目前已經放出了581種圖形驗證碼。目前情況下,按照要輸入兩個關鍵詞的規則,用戶將有機會嘗試336980道不同驗證碼題目。  581種驗證碼都有什麼呢?
  • 「12306奇葩驗證碼」反例背後的產品觀
    每到春運搶票時刻,吐槽12306成為每年必火的一個話題。我過去在某瀏覽器廠商做過搶票大戰的營銷,對12306這套體系算是研究過很多,順著今年奇葩驗證碼這條熱門新聞來聊一聊我的一些產品思考。2.「12306奇葩驗證碼」的出現是結果,而不是原因這套奇葩驗證碼的出現,其實12306也是滿滿都是淚。原因嘛,就是我們之前那批做搶票營銷的人給逼的。今年的槽點集中在「奇葩的驗證碼」上,比如下面這張圖,白崎作為一個臉盲症輕度患者,看著全部都像白百合。幸好放的都是國產明星,如果放幾個韓國的誰特麼認識?當然如果放幾個日本的,男性用戶肯定會認識。
  • 要選對12306購票圖形驗證碼 比高考還難
    近日就有不少網友吐槽,這些五花八門的火車票圖形驗證碼讓人大傷腦筋:圖片小且像素低,讓人很難看清楚。原來,為了防止搶票軟體的幹擾,今年3月16日,12306網站進行了再次升級,用戶登錄帳號,需要從8幅彩圖中選出符合要求的圖片。而本周已進入節前搶票高峰期,要想成功「秒殺」到一張春運火車票,靠的不僅是網速,還有眼力,成功率比高考還低。
  • 12306驗證碼難死學霸 鐵總:這樣才防黃牛
    日前,不少在12306網站「刷票」的網友曝圖形驗證碼「拖後腿」,大數據表明,一次就選對的成功率僅有8%,最難分別的圖形驗證碼為七星瓢蟲、經筒、噴霧器等。
  • 圖形驗證碼難防黃牛 今年網購車票超8成無驗證碼
    圖形驗證碼難防黃牛 今年網購車票超8成無驗證碼 原標題: 中國鐵路總公司表示,今年春運網絡購票需要驗證碼的比例將被壓縮到15%以下。昨天,老牌搶票軟體360瀏覽器表示通過大數據分析,今年春運搶票初期,12306的圖形驗證碼並沒有比去年增加難度,他們發現圖形驗證碼已經不是鐵路防止黃牛倒票的主要技術手段,鐵路正在通過更加嚴格的實名認證等其他方式來防黃牛,提高了用戶的購票體驗。
  • 網購火車票驗證碼被指難辨認 圖形碼已達581種
    昨天,360瀏覽器宣布他們攻破了12306的圖形驗證碼,並首次公布了一組12306驗證碼大數據。數據顯示,圖形碼的數量已經多達581種,按照要輸入兩個關鍵詞的登錄規則,用戶將有機會嘗試336980道不同驗證碼題目的機會,而一次性輸入正確的僅為8%。
  • 網購火車票超八成無需驗證碼 只隨機出現
    中國鐵路總公司表示,今年春運網絡購票需要驗證碼的比例將被壓縮到15%以下。昨天,老牌搶票軟體360瀏覽器表示通過大數據分析,今年春運搶票初期,12306的圖形驗證碼並沒有比去年增加難度,他們發現圖形驗證碼已經不是鐵路防止黃牛倒票的主要技術手段,鐵路正在通過更加嚴格的實名認證等其他方式來防黃牛,提高了用戶的購票體驗。
  • 路易斯·馮·安 驗證碼之父
    我們在使用網際網路的過程中,可以看到網站往往會通過驗證碼來辨別用戶是否是機器人,驗證碼實際上就是人類和計算機的一場戰爭。但有時候你會發現,驗證碼也是讓人感到十分無奈。驗證碼嚴重扭曲到不能通過人眼來識別,有的太過於花樣,驗證碼隱藏太深,看起來卻十分的吃力。
  • 驗證碼的重要性,簡訊驗證碼接收和語音接碼平臺優劣的判斷依據
    簡訊驗證碼服務不是今天才有的,根據數據統計,在2013年中國的簡訊驗證服務費用為13億人民幣,而到了2018年,這一數據為69億,根據專家的預計,到2020年這一項費用將高達83億人民幣,龐大數據的背後是眾多商家和客戶對安全和隱私的渴望,市場很龐大,簡訊驗證碼接收平臺優劣的判斷依據是什麼呢?
  • 什麼是簡訊驗證碼?
    什麼是簡訊驗證碼?一般是企業商家為用戶提供的一個用於註冊、驗證等的安全憑證,通常以數字或字母形式發送到用戶手機上,如在銀行網站、訂票網站、學習網站、電商網站、app等行業都有使用。簡訊驗證碼應用場景1、安全登錄【xx淘寶】驗證碼:991475,有效期15分鐘。
  • 利用機器學習破解網站驗證碼 只需15分鐘
    【IT168 編譯】網站登錄驗證碼的存在一直讓人感到不爽,因為輸錯一個字往往就意味著帳號密碼什麼的就得重新再輸一遍。更有甚者(如12306網站),僅僅驗證碼一道工序就把人整到懷疑人生。不過看了國外一位大神的分享,小編我算是知道為什麼12306網站要把驗證碼設置的這麼變態了!  願世間少一些套路,多一些真誠。
  • 被破譯的驗證碼:新算法破譯驗證碼的成功率已達99%,Google不得不...
    對於用街景車採集地圖信息的Google來說,怎麼讓機器看懂每家風格和字體都不同的門牌號是個問題,因此衍生出了Google的圖像識別算法——據Google在近幾天的ICL上更新的paper來看,Google在這方面的識別精確率已達到
  • 驗證之痛 12306再遭吐槽
    這次難倒他的是驗證碼輸入這個環節——每次他都按照12306提示的搶票時間打開電腦、手機,用4G、寬帶、刷票軟體緊盯餘票的數量變化並準備出手時,卻總是發現眼前的圖形驗證碼讓自己「傻傻分不清楚」,結果只能眼睜睜看著餘票不翼而飛。然而,當他選擇請黃牛來幫忙的時候,這個問題輕而易舉地解決了。為什麼12306號稱能夠狙擊黃牛的「新發明」最終刺痛的卻是小吳那顆要回家過年的心呢?
  • 天天輸驗證碼,你知道它是用來幹什麼的嗎?
    不好意思這個字符我真的看不懂 比如,鐵道部購票官網 12306 的購票圖形驗證碼,在 2015 驗證碼你好,你已成功打敗全國 99% 的用戶 網友們也忍不住自己製作一套高難度驗證碼。
  • 靠譜的簡訊驗證碼平臺如何選擇
    目前各種網際網路產品都需要簡訊驗證碼,無論是移動app還是pc端網際網路產品,都有發送簡訊驗證碼的功能應用場景需求,選擇一個靠譜的簡訊驗證碼平臺是保證簡訊驗證碼發送速度以及到達率的前提,那麼如何選擇一個靠譜的簡訊驗證碼平臺呢?