春節(jié)還有兩個(gè)月,很多人要在寒冷的冬天練習(xí)手速。

沒錯(cuò),我說的就是在12306網(wǎng)站上搶火車票。你們想的也是這件事吧?

和上網(wǎng)購物一樣,登錄時(shí)依次填寫用戶名、密碼,接下來是圖形驗(yàn)證碼……等等,這是什么鬼?“請(qǐng)點(diǎn)擊下圖中所有的美男子”、“請(qǐng)點(diǎn)擊下圖中所有的非智能眼鏡”……在這個(gè)分秒必爭(zhēng)的時(shí)刻,12306上的購票驗(yàn)證碼讓搶票者瞬間“抓瞎”。而且還他喵的是多選!有統(tǒng)計(jì)說,每輸錯(cuò)一次驗(yàn)證碼,就意味著當(dāng)次購票成功率下降80%。

那些軟妹幣啊老虎獅子還算是“送分題”,碰上了七星瓢蟲、武林門派之類的,還不如直接刷新。其實(shí),網(wǎng)站驗(yàn)證碼的出現(xiàn),是為了讓機(jī)器不容易識(shí)別的。結(jié)果這一道對(duì)人來說有些多余的安全防護(hù),生生地被一些網(wǎng)站弄成了“反人類”。

今天,壹讀君(微信:yiduiread)就和你聊聊驗(yàn)證碼到底有啥用。

其實(shí)很紳士的值班壹讀君 | 國賀33

本質(zhì)上是圖靈測(cè)試

估計(jì)沒有網(wǎng)民沒遇到過驗(yàn)證碼,在一家論壇上面對(duì)提示,緊盯著屏幕上的幾個(gè)數(shù)字、一串字符或者奇異的波浪線,小心翼翼地把它輸?shù)娇瞻卓蚶铩@纤緳C(jī)們可能有印象,在2000年前是沒有驗(yàn)證碼這東西的。

輸入驗(yàn)證碼的過程,其實(shí)是讓機(jī)器判斷你到底是真人還是軟件?!膀?yàn)證碼”的英文名字很拗口,叫CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart),翻譯過來是“全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試”。

△掛上“圖靈”二字,瞬間覺得填個(gè)驗(yàn)證碼也高大了許多

驗(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)證碼的發(fā)明人Luis von Ahn

說到底,驗(yàn)證碼的初衷是為了限制機(jī)器。這個(gè)對(duì)用戶來說稍顯多余的步驟,很快就遍布了互聯(lián)網(wǎng)的各個(gè)角落,Luis von Ahn在2008年時(shí)預(yù)計(jì),全世界每天有2億個(gè)驗(yàn)證碼被用戶填寫,想必在7年之后,這個(gè)數(shù)字又翻了幾番。所以說,當(dāng)你填寫一個(gè)驗(yàn)證碼的時(shí)候,背后正是垃圾郵件發(fā)送者和程序員之間的一場(chǎng)熱戰(zhà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)證碼被輕易破解,十幾年間驗(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)證碼,確實(shí)在一定程度上阻止了惡意的機(jī)器人程序,比如遏制了垃圾評(píng)論,保證在線投票的真實(shí)性,也保護(hù)網(wǎng)站不被批量注冊(cè)。不過,即便是個(gè)門外漢,你也能看到這些行為仍在網(wǎng)絡(luò)上橫行,可見驗(yàn)證碼并不是絕對(duì)安全的防護(hù)屏障,它所針對(duì)的也只是大量的普通用戶而已。

驗(yàn)證碼誕生之初,就可以通過人力暴力破解的方式繞過測(cè)試,但代價(jià)太過高昂。在一些招工網(wǎng)站上,可以搜到一些公司發(fā)布的廣告,專門雇人全天人工閱讀、輸入驗(yàn)證碼。紐約時(shí)報(bào)在2010年曾報(bào)道說,一些發(fā)送垃圾郵件的公司將填寫驗(yàn)證碼的工作外包給發(fā)展中國家(中國、印度等國)的工人,每填寫1000個(gè)驗(yàn)證碼可獲得0.8-1.2美元的報(bào)酬,還有專門的經(jīng)紀(jì)人和中間人。一位孟加拉的驗(yàn)證碼經(jīng)紀(jì)人在自己的簡(jiǎn)介網(wǎng)頁上稱,公司擁有30臺(tái)電腦,實(shí)行三班倒,可以每周7天、每天24小時(shí)地開展工作。

雖然費(fèi)用低廉,但規(guī)模有限,人力填寫驗(yàn)證碼并不是十分賺錢。不過,計(jì)算機(jī)不能完成的任務(wù)已經(jīng)越來越少,許多技術(shù)博客都會(huì)定期宣布對(duì)Gmail、雅虎等知名網(wǎng)站的驗(yàn)證碼破解成功。因?yàn)樵谝粋€(gè)驗(yàn)證碼中,每個(gè)字母都是由一定數(shù)量的像素組成,惡意軟件如果能數(shù)出像素?cái)?shù),就可以知道它“看”到了什么字母。而互聯(lián)網(wǎng)公司通常不會(huì)做出回應(yīng),因?yàn)檫@很容易鼓勵(lì)那些人更“走火入魔”地破解驗(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)證碼,比如聽一段音頻(類似英語聽力?),或者要求用戶起興作首詩。好吧,12306上那些區(qū)分動(dòng)物、人物的圖片,也不失為一種嘗試。

但另一方面,驗(yàn)證碼的識(shí)別技術(shù)十分必要,除了增強(qiáng)自身的安全性,驗(yàn)證碼本身作為一種圖靈測(cè)試,也綜合了圖像處理、機(jī)器識(shí)別、模式識(shí)別、人工智能等多個(gè)領(lǐng)域的研究,這些成果可以被應(yīng)用到多個(gè)領(lǐng)域,最直觀的便是手寫文字識(shí)別技術(shù)(OCR)。更為直接的用途,比如說生活中常見的攝像頭識(shí)別車牌。驗(yàn)證碼識(shí)別在國外已經(jīng)有了專門的對(duì)抗賽,也形成了相關(guān)的產(chǎn)業(yè)和理論體系。在國內(nèi),2010年就有人用KKN算法破解了四家銀行的驗(yàn)證碼,識(shí)別率超過80%。

其實(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萬個(gè)單詞需要400年,而加入到驗(yàn)證碼中,每天可以校對(duì)160本書,精度超過99%。2009年9月,Google專門購買了這項(xiàng)技術(shù),作為書籍掃描中難以辨認(rèn)字符的識(shí)別工作。

Louis von Ahn的辦法,堪稱利用群體智慧進(jìn)行大數(shù)據(jù)計(jì)算的典范。順便提一句,她當(dāng)年的博士論文,就是人力計(jì)算機(jī)(Human Computation)。

最后回到被大量吐槽的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)?2306上使用的581種圖片(哪怕是5810種圖片),只要有足夠的耐心,把所有圖片都刷出來并加上備注,就能實(shí)現(xiàn)破解。

其實(shí)吧,壹讀君(微信:yiduiread)隱隱覺得,12306可能在下一盤很大的棋:把驗(yàn)證碼變成廣告位,簡(jiǎn)直是喪心病狂的商機(jī)啊啊啊?。?/p>

參考資料:

段永朝:《社會(huì)計(jì)算實(shí)例:10秒鐘驗(yàn)證碼能干什么?》,財(cái)經(jīng)網(wǎng),2011年6月3日

孫宏超:《12306奇葩驗(yàn)證碼防得住黃牛嗎?》,騰訊科技,2015年12月8日

王璐:《驗(yàn)證碼識(shí)別技術(shù)研究》,中國科學(xué)技術(shù)大學(xué),2011年5月

許明:《驗(yàn)證碼的識(shí)別與反識(shí)別》,南京理工大學(xué),2007年6月

維基百科:reCAPTCHA

Lev Grossman,《Computer Literacy Tests: Are You Human?》,Time,2008年6月5日

VIKAS BAJAJ,《Spammers Paying Others to Solve Captchas》,NYTimes,2010年4月6日

1.《12306的驗(yàn)證碼怎么回事?總結(jié)很全面速看!為什么12306會(huì)出那么奇葩的驗(yàn)證碼?丨壹讀百科》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。

2.《12306的驗(yàn)證碼怎么回事?總結(jié)很全面速看!為什么12306會(huì)出那么奇葩的驗(yàn)證碼?丨壹讀百科》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/gl/3087872.html