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