如果你經(jīng)常使用一些國(guó)外的網(wǎng)站,就會(huì)發(fā)現(xiàn)它隔三差五地彈出一個(gè)對(duì)話框,要求你點(diǎn)擊“I'mnotarobot(我不是機(jī)器人)”來(lái)“聲明”自己不是機(jī)器人。大多數(shù)情況下,用戶點(diǎn)擊確認(rèn)鍵之后,網(wǎng)頁(yè)就會(huì)放行。這種操作簡(jiǎn)單卻十分怪異的驗(yàn)證形式讓人十分疑惑,它究竟是如何判斷操作者是不是機(jī)器人的呢?
要想了解這一點(diǎn),我們就要回顧驗(yàn)證碼的產(chǎn)生和發(fā)展。
2000年左右,網(wǎng)絡(luò)已經(jīng)拉開(kāi)了互聯(lián)網(wǎng)時(shí)代的序幕。一方面,各類論壇和服務(wù)商的出現(xiàn)為網(wǎng)絡(luò)交流奠定了基礎(chǔ);另一方面,垃圾郵件、惡意信息、評(píng)論等隨著腳本的出現(xiàn)撲面而來(lái),著名的網(wǎng)站雅虎曾深受惡意腳本的威脅。于是,雅虎向卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)系求助,希望能找到一種能分辨網(wǎng)頁(yè)使用者是真人用戶還是惡意機(jī)器腳本的方法。
當(dāng)時(shí)就讀于卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)專業(yè)的21歲學(xué)生路易斯·馮·安恩提出思路:要讓注冊(cè)用戶證明自己是人類,可以要求用戶做一些人類可以輕而易舉做到但機(jī)器人做不到的事情。
相比人工智能極其發(fā)達(dá)的今天,21世紀(jì)初的機(jī)器人并不聰明,識(shí)別圖片就足以難倒它們。如果再將圖片中的字符稍加扭曲,就可以輕易阻擋惡意腳本。在2000年左右,路易斯發(fā)明了驗(yàn)證碼這一概念,他將其命名為CAPTCHA(“全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試”的縮寫(xiě))。也是從這一刻開(kāi)始,一場(chǎng)持續(xù)數(shù)十年的,人與機(jī)器之間,圍繞著圖靈測(cè)試的對(duì)抗開(kāi)始了。
初期的驗(yàn)證碼形式,憑借其極度扭曲的字符和難以識(shí)別的圖案,給大多數(shù)人留下了深刻的印象。在這個(gè)階段,驗(yàn)證碼的難度與機(jī)器人智商的發(fā)展成正比,以至于最后讓許多真人用戶難以辨認(rèn)。比如“U”和“V”由于字符的扭曲變成了孿生兄弟,而數(shù)字“0”和字母“O”看起來(lái)毫無(wú)差別。
這些問(wèn)題無(wú)時(shí)無(wú)刻在困擾著網(wǎng)民們,然而驗(yàn)證碼又對(duì)網(wǎng)絡(luò)環(huán)境而言來(lái)說(shuō)是個(gè)不可或缺的存在。每個(gè)人輸入驗(yàn)證碼,只需要幾秒鐘時(shí)間,但上億人的幾秒鐘疊加起來(lái),就是很大的時(shí)間成本。有什么方法可以把這些時(shí)間利用起來(lái)嗎?路易斯想到了將舊書(shū)上難以辨認(rèn)的詞變成圖片驗(yàn)證碼,利用這些時(shí)間推動(dòng)舊書(shū)數(shù)字化的進(jìn)程。他設(shè)置了兩個(gè)驗(yàn)證碼,一個(gè)是已知單詞,另一個(gè)是摘自舊書(shū)中的單詞。用戶正確輸入前者就可以通過(guò)驗(yàn)證,并且系統(tǒng)會(huì)將用戶輸入的舊書(shū)單詞視為有效答案。如果有十個(gè)用戶輸入的同一舊書(shū)單詞相同,那么該單詞就得到辨識(shí)??窟@種方法,每年能讓230多萬(wàn)本舊書(shū)轉(zhuǎn)化為電子版。
隨著人工智能的飛躍式發(fā)展,由字符或者圖案構(gòu)成的驗(yàn)證碼無(wú)力維持網(wǎng)絡(luò)環(huán)境的和平。2014年,谷歌發(fā)布新的研究成果,一個(gè)專門(mén)用來(lái)解讀扭曲驗(yàn)證碼內(nèi)容的算法。在測(cè)試中,機(jī)器人辨認(rèn)扭曲字符的正確率高達(dá)99.8%,而人類只有33%。
在絕對(duì)的技術(shù)面前,人力再一次落敗。因此,谷歌做出應(yīng)對(duì)之策——“沒(méi)有驗(yàn)證碼的驗(yàn)證碼”,即我們今天常??吹降摹癐'mnotarobot”,這類驗(yàn)證碼為網(wǎng)站用戶提供了便利,其背后機(jī)制卻相當(dāng)復(fù)雜,甚至涉及用戶隱私。當(dāng)用戶點(diǎn)擊“I'mnotarobot”時(shí),谷歌會(huì)分析用戶在網(wǎng)站中的各種行為,收集用戶的鼠標(biāo)移動(dòng)速率、當(dāng)前IP、是否使用插件等信息,以判斷用戶是否為人類。如果你展現(xiàn)出來(lái)的行為,都符合一個(gè)人類的標(biāo)準(zhǔn),那網(wǎng)頁(yè)就會(huì)放行。從某種程度上來(lái)說(shuō),這種便利是用用戶隱私換取的。
近兩年,谷歌又推出了第三代驗(yàn)證碼,用戶無(wú)須再通過(guò)點(diǎn)擊來(lái)證明自己是人類,系統(tǒng)會(huì)自行根據(jù)用戶使用網(wǎng)頁(yè)的情況來(lái)判斷,但同時(shí)也意味著用戶隱私被進(jìn)一步侵犯。這項(xiàng)技術(shù)如今并沒(méi)有被大面積使用,而這場(chǎng)人與機(jī)器之間,圍繞著圖靈測(cè)試的對(duì)抗,仍未有個(gè)明確的局勢(shì)。