文章插圖

文章插圖
摘要
“在互聯網上,沒人知道你是一條狗 。”——網絡諺語
“我會回來的 ?!薄娪啊督K結者》系列
隨著春運的臨近,購買火車票又成了不少人關注的事情 。由于近年來中國鐵路把重點放在了網絡售票上,中國鐵路總公司的售票網站12306.cn是多數人首選的購票網站,它也成為了“黃牛黨”試圖破解的關鍵網站 。
因此,不難理解,當12306網站提高網站驗證碼的難度之后,許多人開始抱怨 。就在這幾天,關于12306網站的“奇葩”驗證碼的新聞傳遍了整個網上,甚至已經被外媒報道 。
12306網站的驗證碼真的是奇葩嗎?有評論認為,12306設置這樣的驗證碼是為了為難用戶而不是服務用戶 。這樣的指責真的成立嗎?
要回答這個問題,我們首先要弄清楚設置驗證碼究竟是為了什么 。
有一句網絡諺語“在互聯網上,沒人知道你是一條狗” 。這句諺語通常被理解為強調用戶在互聯網上的匿名性——沒人知道在網絡另一端坐著的究竟是什么人 。把這句諺語延伸一點,就變成了“在互聯網上,沒人知道你是一個計算機程序” 。事實上,自動化的計算機程序(它們被稱為bot)是互聯網的組成部分 。例如,各大搜索引擎都有各自的自動化程序在網上收集各種信息,這種自動化節省了大量的人力 。
但是自動化程序帶來的也未必都是便利 。有人也會用自動化程序做壞事 。例如,別有用心的人可以編寫自動化程序偽裝成網絡用戶,在各大交互式網絡上濫發廣告 。具體到12306的例子,我們知道,“黃牛黨”的目的是比你更快地搶購到車票,如果他們編寫了自動化的程序登錄12306網站購票,那么你是根本無法和高速運轉的計算機程序對抗的——它們實在太快了 。如果徹底取消驗證碼,那么對于一般用戶,可能更難購買到車票 。
你可能已經意識到了這個問題的關鍵:有沒有一種方法能把網絡那一端的人類用戶和自動化的程序區分開來?是的,這就是驗證碼的作用 。這類驗證機制有一個名字:CAPTCHA,即“區分計算機與人類的完全自動化大眾圖靈測試” 。
圖靈測試是20世紀50年代由英國數學家阿蘭?圖靈提出的 。這個測試是讓人測試一個不可見的相對者,從行為上判斷對方是人還是機器,目的是檢驗一臺機器是否具有等同于人類的智能 。簡單地說,圖靈測試就是“人類判斷對方是人還是機器” 。
而CAPTCHA的本質是一種逆向的圖靈測試,在這種測試中,是讓機器判斷一個不可見的相對者(例如,一個互聯網上的用戶)是人類還是自動化的程序 。當90年代互聯網開始走向大眾的時候,對互聯網的濫用也變得越來越多 。如何制止不友好的網絡自動程序的行為,成為了一個需要解決的問題 ?!膀炞C碼”就是CAPTCHA的具體化的產物:當你需要登錄某個網站的時候,你首先需要輸入登錄頁面上顯示的一個圖片上的字符 。如果輸入正確,系統就認為你是人類而不是程序,于是允許你進行下一步的操作 。
軍備競賽
驗證碼能起作用的大前提是人類可以輕松地識別驗證碼,而機器卻不能 。然而,實際情況要比這復雜得多 。很顯然,一個只能解讀網頁的HTML編碼的程序對圖片方式顯示的驗證碼束手無策 。但是簡單的驗證碼也只能擋住簡單的程序 。光學字符識別(OCR)技術在很早以前就出現了,而且性能越來越好(如果80年代的時候OCR技術已經成熟,在《回到未來第二部》里可能就不會出現條形碼號牌的汽車) 。如果一個攻擊者使用OCR程序自動識別驗證碼,那么這種CAPTCHA就被攻破了 。
事實上,當最早的發明者研究驗證碼技術的時候,他們已經考慮到了這種情況 。有趣的是,他們從掃描儀的說明書中“逆向”獲得了靈感:如果說明書指出了應該避免哪些妨礙OCR識別的低劣圖像,他們就如法炮制把驗證碼圖像劣化 。
這樣有效嗎?有效 。但是這就像一場軍備競賽 。驗證碼的攻擊者也在提高識別技術的能力 。于是,我們在這些年看到字符型驗證碼不斷復雜化,從最早的規矩的字符,到不斷復雜的圖像底紋,字符變得更加扭曲、粘連 。這導致了人類識別驗證碼所需的時間也在增加 。根據不同的估計,如今每天人類花在識別網頁驗證碼上的時間已經超過了幾十萬小時 。
這是多么驚人的浪費 。在網絡機器人橫行的背景下,在進行圖靈測試的同時,還能堅持自由和人道主義的原則嗎?這真是一件可悲的事情 。為了回收利用這種被浪費的時間,卡內基?梅隆大學的Luis von Ahn等人幾年前提出了一個稱為reCAPTCHA的系統 。2008年,他們在《科學》雜志上發表了這一成功,2009年,該發明被谷歌收購 。
reCAPTCHA的運作方式是非常巧妙的,它被設計成既用于區分人類和機器,又用于幫助文獻的數字化 。首先,對那些信息時代之前出版的需要數字化的文獻進行OCR處理,用兩種OCR程序識別同一篇文獻,挑出那些兩種OCR程序識別存在差異的疑難詞作為reCAPTCHA的測試詞 。然后,還要附加一個已知的對照詞 。用戶需要同時輸入測試詞和對照詞才能完成reCAPTCHA 。如果用戶輸入對了對照詞,那么系統就認為用戶也有很大可能性輸入對了測試詞(用戶不知道網頁上顯示的哪個詞是對照詞) 。當多個用戶對同一個測試詞的輸入都一致的情況下,系統就認為這個疑難的測試詞被用戶“校對”了 。下一步,這個被校對過的測試詞會被用于reCAPTCHA測試的對照詞 。
reCAPTCHA的巧妙之處就在于,首先,被用于該測試的詞都是OCR程序不太擅長識別的,這樣就給攻擊者帶來了一定的麻煩 。其次,該測試并沒有減少用戶花在驗證碼上的時間,而是借用了用戶的力量用于校對OCR處理過的文獻 。谷歌就是使用reCAPTCHA對紐約時報報紙數字化工程進行了校對 。
但是即使是reCAPTCHA也避免不了被破解的命運 。自從reCAPTCHA上線以來,已經有研究人員多次報告實現了對谷歌的reCAPTCHA的攻擊,其成功率各不相同 。谷歌也“與時俱進”地多次升級reCAPTCHA,讓它的字符變得更加難以辨認——對人類和機器都是如此 。事實上,早就有人抱怨谷歌的驗證碼讓人類用戶也難以識別 。
驗證碼變得人類也難以識別,這其實是很正常的現象,因為這說明了人工智能技術在不斷進步,當你在識別一個驗證碼的時候感到困難,你實際上已經游走在了人工智能與人類智能較量的戰場前沿上 。
除了字符型驗證碼,研究人員還提出了其他類型的驗證碼 。例如,一種驗證碼是在字符型驗證碼的基礎上附加了問題 。但是,這只不過是給攻擊者暫時增加了難度 。例如,一個過于簡單的問題(驗證碼:2+4=?)只要簡單升級攻擊算法就能破解(12306網站也采用過這種驗證碼) 。而過于困難的問題卻又不符合“大眾測試”的目的 。很顯然,一個類似于“方舟子博士的座右銘是什么”的驗證問題能阻擋大多數程序,但是由于這個問題比較小眾,也會讓許多人類用戶感到困惑 。而且,隨著人工智能技術的不斷進步,機器可能會比人類更擅長回答諸如此類的自然語言問題——還記得參加美國知識競賽Jeopardy!(國內通常譯為《危險邊緣》)的計算機系統“沃森”嗎?
另一種類型的驗證碼是讓用戶識圖 。這種驗證碼是建立在圖像識別比字符識別更困難的前提上的 。有多個研究組提出過類似的方案,例如,幾年前微軟的研究人員提出的一種方案是,為用戶隨機提供一組動物的照片,讓用戶在其中選出所有的貓或者所有的狗(其前提是假定機器不擅長區分貓狗) 。你可能已經意識到了,這恰恰類似于12306的圖形驗證碼的 。其實,12306的圖形驗證碼大致是可行的,它遭人垢病的方面主要有兩個,一個是可能超出了用戶的知識范圍(讓用戶選出沒有接觸過的物品,例如,調色板),另一個是它的圖像過于模糊,以至于人類用戶也無法識別 。其實第二個問題是很微妙的:如果圖像太清晰,人工智能程序也可能輕易地識別 。
終極的方法是“人肉”識別 。既然CAPTCHA的目的是區分人類和機器 。如果組織一大批人,讓他們專門負責識別驗證碼,這樣就從根本上繞過了CAPTCHA 。在特定情況下,這確實是可以實現的 。
【人工智能 驗證碼 什么是驗證碼人臉識別】可以這樣說,設計一種CAPTCHA就是提出一個人工智能領域的難題 。而CAPTCHA的攻擊者就是在解決一個人工智能領域的難題 。隨著人工智能研究的不斷進步,在神經網絡、機器學習等技術的幫助下,計算機肯定會更加擅長識別驗證碼,或許,有朝一日它們會比你更擅長 。這聽上去似乎是矛盾的:你究竟應當期待驗證碼有效,還是應當期待驗證碼被攻破(也就意味著人工智能研究的突破)?
- 條形碼在線快速生成器 條形碼 在線生成
- word密碼破解方法 怎么解word密碼
- win7正版系統激活步驟 如何獲得正版win7激活碼
- 萬能條形碼生成器下載 自動生成條形碼的軟件
- python爬蟲程序代碼html python爬蟲程序代碼加注釋
- 密碼星號查看器 密碼星號怎么查看
- 破解無線網密碼的軟件是什么 下什么軟件破解無線網密碼
- 自動生成條形碼的軟件 條形碼生成器軟件
- php excel導入數據庫更新數據 phpexcel導入數據庫亂碼
- 破譯wifi密碼最強軟件 wifi密碼破解工具大全
