■本報見習記者袁一雪
3月15日,2015年春運終於落下帷幕。 在今年的人口大遷徙裡,12306依然成為被關注的焦點。 這次被詬病的不是令人崩潰的網站,而是網站上的驗證碼。
「日防夜防,黃牛難防」,為了防止黃牛倒票,12306不斷更新驗證碼形式,最新的一版驗證碼顯示方式被網友戲稱為「史上最奇葩」:使用者需要根據提示,從8張圖片中找到提示中提到的相關物品,比如賀卡、雕像、貝殼、玻璃瓶、擀麵杖、 熱氣球等,看不清或者沒把握的可以刷新更換。 如此確認無誤後,才能登陸或者提交訂單。 然而該驗證碼面世不到一天,市面上多個常見的搶票軟體就已經破解該驗證碼。
縱觀其他網站的驗證碼,形式各不相同,有字母或數位的組合,背景有的是純色,有的則是雜亂無章地密佈網底;有的驗證碼是公式,需要算對結果才能正確驗證;還有的則是文字和圖片結合,輸入其中的某些特定文字,方可通過。
或許有些老線民們還記得,剛開始上網的時候是不存在驗證碼的。 那麼,半途殺出的驗證碼是幹什麼用的呢,黃牛党們為何要頻頻破解它?
區分電腦還是人類
在那個沒有驗證碼的時代,並非人人上網的目的都那麼單純,伴隨網路而來的「駭客」,利用一些小程式掠奪網路資源。 這一點從線民們郵箱中日益增多的垃圾郵件中可窺一斑。 如果不加以制止,那麼垃圾評論和垃圾郵件就可以輕鬆通過任何一個網站的註冊程式,通過各種方式轟炸人民群眾的眼球。
於是,互聯網時代的「先驅」之一——雅虎,開始尋求解決辦法。 一方面要解決使用者們每天遇到的數以百計的垃圾郵件轟炸,另一方面,他們自己的免費郵箱,恰恰又是垃圾郵件的最愛——耗費無數資源所阻止的垃圾郵件,都來自于自己的伺服器。 怎麼辦? 2000年,卡內基梅隆的luisvonahn使用gimpy機制來防範雅虎的垃圾廣告資訊,並首次提出了captcha驗證碼的概念。
「驗證碼」其實並不是網友在不同網站上看到的難以辨認的字母組合的代名詞,而是「全自動區分電腦和人類的圖靈測試」的俗稱,顧名思義,它的作用是區分電腦和人類。
「驗證碼對於人來說很簡單識別,但是對於電腦程式來說卻很難自動識別,這樣就阻止了那些意圖通過電腦程式來自動申請更多郵箱發送垃圾短信或者刷票的人。 」西安電子科技大學軟體學院副教授高海昌告訴《中國科學報》記者。
魔高一尺,道高一丈
然而,互聯網的安全護衛者與駭客是伴生在互聯網平臺上的兩股勢力,它們在互聯網上互相拉扯。 道高一尺,魔高一丈。 此時,有人做出驗證碼,彼時,便有高手破解驗證碼。 於是,驗證碼由最初的一些簡單的字母,慢慢加入了數位、圖案,字母也分出大小寫,在國內,驗證碼中還會出現漢字。 背景也不再是單純的顏色,而是加入了形狀各異的網底。 高海昌解釋說,破解驗證碼的軟體會通過影像處理、模式分類等方法自動識別出驗證碼的內容,如果驗證碼過於簡單則很容易被猜出。
「其實12306剛剛推出的圖案驗證碼,是比較容易破解的。 根本都用不到前面提到的電腦技術。 最簡單的方法,從所給的8張圖片中隨機選出兩個圖案作為答案進行嘗試,直到成功為止。 從數學角度看,這種隨機的方法就大概有4%的成功幾率。 在電腦上,用這種猜測的方法,成功猜對一次所需要的時間連1秒鐘都不到。 」高海昌說,「為了增加電腦識別的難度,現在大部分主流網站的驗證碼都進行了扭曲、黏連、加干擾線等設計。 那些數位加字母的組合,特別是字母中還要區分大小寫的,字元集就會大很多,也會加大程式計算的難度。 在這方面,中文字元有先天優勢,常用的漢字就有3000多個。 所以,國內的網站使用中文驗證碼相對還是更安全一些。 」
安全性與便捷性無法兼得?
不過,這場無聲的較量暫時不會畫上句點,驗證碼大戰依然如火如荼。 或許有人會想,既然驗證碼總是被破解,那麼為何不設計一個複雜難認的驗證碼一了百了呢?
驗證碼的推出是保護互聯網資源不被濫用,但是驗證碼本身也佔據著網路資源。 而驗證碼的安全性與便捷性,更專業的說法是可用性和魯棒性,是天生的矛與盾。
「目前,驗證碼主要包括文本驗證碼、語音驗證碼、圖形驗證碼。 其中,由於生成的便利性,文本驗證碼應用最廣泛,也是12306等各大網站正在使用的驗證碼。 語音驗證碼和圖形驗證碼對資料庫和網路頻寬要求比較高,所以應用不是很廣泛。 另一方面,語音和圖形驗證碼的驗證時間較長,可用性比較差,也是不被廣泛採用的另一個原因。 」高海昌解釋道,「全球相關的研究團隊都在尋找替代驗證碼的方法,目前有些網站已經不使用驗證碼進行人類和電腦程式的區分,而是使用sms短信驗證的方式,這可以說是一種很好的替代方式。 但是這種也不是無懈可擊,黃牛同樣可以通過註冊一堆的手機號來實現破解。 所以驗證碼還會在較長一段時間記憶體在,而圍繞驗證碼的設計和破解的較量也會繼續下去。 」
《中國科學報》(2015-03-27第8版新知)