春節(jié)還有兩個月,好多人卻要在這寒冷冬日里練習(xí)手速了。沒錯,我說的就是在12306網(wǎng)站上搶火車票。你們想的也是這件事吧?
和上網(wǎng)購物一樣,登錄時依次填寫用戶名、密碼,接下來是圖形驗證碼……等等,這是什么鬼?“請點擊下圖中所有的美男子”、“請點擊下圖中所有的非智能眼鏡”……在這個分秒必爭的時刻,12306上的購票驗證碼讓搶票者瞬間“抓瞎”。而且還他喵的是多選!有統(tǒng)計說,每輸錯一次驗證碼,就意味著當(dāng)次購票成功率下降80%。這些驗證碼也迅速成為朋友圈里吐槽的對象。
那么,為什么12306會出現(xiàn)這么奇葩得驗證碼呢?
本質(zhì)上是圖靈測試
輸入驗證碼的過程,其實是讓機器判斷你到底是真人還是軟件?!膀炞C碼”的英文名字很拗口,叫CAPTCHA,翻譯過來是“全自動區(qū)分計算機和人類的圖靈測試”。
驗證碼的誕生,是為了杜絕通過軟件設(shè)計的“注冊機器人”進行惡意注冊,進而產(chǎn)生大量的垃圾用戶(僵尸用戶)以及垃圾點評信息。這得說到2000年左右,互聯(lián)網(wǎng)仍是一番原生態(tài)景象。雅虎公司最早受到大量通過機器程序注冊的困擾,犯罪者在短時間內(nèi)自動創(chuàng)建上千個電子郵件地址,然后利用這些地址發(fā)送垃圾郵件。
為此,雅虎找到了剛剛進入卡內(nèi)基·梅隆大學(xué)碩博連讀的Luis von Ahn,后者為雅虎研究了一種強制用戶輸入某個適當(dāng)變形的字符串,以檢驗注冊者到底是機器還是人的程序。按照當(dāng)時的技術(shù),沒有電腦能通過這種測試:人為扭曲的驗證碼毫無規(guī)律地以圖形方式呈現(xiàn),必須通過肉眼辨識才能通過驗證。
最暴力的驗證碼破解法——雇人來刷
我們每天在網(wǎng)上付費、登錄論壇或者多次輸錯密碼后,都得面對各式各樣的驗證碼的考驗,而到現(xiàn)在我們也沒有擺脫垃圾郵件或網(wǎng)絡(luò)水軍的騷擾。按照其發(fā)明人Luis von Ahn的表述,如何繞開驗證碼激勵著垃圾郵件發(fā)送者展開一場軍備競賽。
為了防止被輕易破解,十幾年間驗證碼陸續(xù)發(fā)展出了多種形式,但直到今天使用最廣泛的仍是基于字符的圖片類驗證碼。這類驗證碼最易產(chǎn)生,具有標(biāo)準答案,不受背景知識和文化差異的影響。其圖像中包含數(shù)字、字母或其他文字,字符序列既能與背景圖像進行融合,又能做出扭曲、變形之類的處理,所以破解的難度很大。我們平日里常去的網(wǎng)站,大都使用了這種基于字符的圖片驗證碼。
在平面字符的基礎(chǔ)上,還曾誕生過3D驗證碼,它對于機器來說更難破解,但生成難度很高,用戶體驗也不如字符更簡單,所以已被棄用。說到難度,總有道高一尺的存在,比如一些數(shù)學(xué)驗證碼,想通過就得算出答案。結(jié)果是計算機沒法回答,學(xué)渣們哭暈在廁所。這樣一看,各種奇葩驗證碼并沒有廣泛應(yīng)用的可能。
驗證碼誕生之初,就可以通過人力暴力破解的方式繞過測試,但代價太過高昂。在一些招工網(wǎng)站上,可以搜到一些公司發(fā)布的廣告,專門雇人全天人工閱讀、輸入驗證碼。不過,計算機不能完成的任務(wù)已經(jīng)越來越少,許多技術(shù)博客都會定期宣布對Gmail、雅虎等知名網(wǎng)站的驗證碼破解成功。
驗證碼正在拿你當(dāng)苦力
隨著軟件的發(fā)展,人與計算機之間的差別會越來越小,發(fā)明人Luis von Ahn認為,或許3-5年內(nèi),能完全識別驗證碼的軟件就將出現(xiàn)。這就要求更有效的驗證碼,比如聽一段音頻(類似英語聽力?),或者要求用戶起興作首詩。好吧,12306上那些區(qū)分動物、人物的圖片,也不失為一種嘗試。
其實,在你輸入某些驗證碼的同時,也不知不覺做了一回文字的“搬運工”。2005年,Luis von Ahn對驗證方式進行了更改:注冊者輸入驗證碼時,提供給兩個字符串,一個是真正的驗證碼,另一個則來自某個古老文獻中難以辨識的單詞或詞組。注冊者需要自己辨識、輸入這兩個字符串。奧妙就在第二個字符串上,這個通過掃描儀、OCR軟件甚至整理者都難以辨識的字符,可以通過大量注冊者的“舉手之勞”,很快得到確認。如果把互聯(lián)網(wǎng)檔案館的文本都校對一遍,每天處理100萬個單詞需要400年,而加入驗證碼中,每天可以校對160本書,精度超過99%。2009年9月,Google專門購買了這項技術(shù),作為書籍掃描中難以辨認字符的識別工作。
最后回到被大量吐槽的12306。驗證碼是為了防御機器的,現(xiàn)在卻把真人都給難住了。出現(xiàn)這樣的系統(tǒng),是因為舊的驗證碼體系已經(jīng)完全被攻破、起不到防刷的作用,不得不采用新的方案。
一套新規(guī)則出現(xiàn)可能是好事。從實際效果看,這些低像素的圖片著實難住了普通人,理論上也讓機器學(xué)習(xí)更加困難,所以是故意為之。在打擊黃牛和搶票軟件的效果上,仍有待觀察,有科技公司就表示攻破這些圖形驗證碼并不困難,因為對于12306上使用的581種圖片(哪怕是5810種圖片),只要有足夠的耐心,把所有圖片都刷出來并加上備注,就能實現(xiàn)破解。(來源/ 微信公眾號 壹讀)