貓頭鷹
在登錄大多數(shù)國外網(wǎng)站時,系統(tǒng)會要求用戶做一個奇怪的保證——“I'm not a robot(我不是機器人)”。大多數(shù)情況下,用戶點擊確認鍵之后,網(wǎng)頁就會放行。這種操作簡單卻十分怪異的驗證形式讓人十分疑惑,它究竟是如何判斷操作者是不是機器人的呢?
要想了解這一點,我們就要回顧驗證碼的產(chǎn)生和發(fā)展。
2000年左右,網(wǎng)絡(luò)已經(jīng)拉開了互聯(lián)網(wǎng)時代的序幕。一方面,各類論壇和服務(wù)商的出現(xiàn)為網(wǎng)絡(luò)交流奠定了基礎(chǔ);另一方面,垃圾郵件、惡意信息、評論等隨著腳本的出現(xiàn)撲面而來,著名的網(wǎng)站雅虎曾深受惡意腳本的威脅。于是,雅虎向卡內(nèi)基梅隆大學(xué)計算機系求助,希望能找到一種能分辨網(wǎng)頁使用者是真人用戶還是惡意機器腳本的方法。
當(dāng)時就讀于卡內(nèi)基梅隆大學(xué)計算機專業(yè)的21歲學(xué)生路易斯·馮·安恩提出思路:要讓注冊用戶證明自己是人類,比如要求用戶做一些人類可以輕而易舉做到但機器人做不到的事情。
相比人工智能極其發(fā)達的今天,21世紀(jì)初的機器人并不聰明,識別圖片就足以難倒它們。如果再將圖片中的字符稍加扭曲,就可以輕易阻擋惡意腳本。在2000年左右,路易斯·馮·安恩發(fā)現(xiàn)了一個方法,并將其命名為“全自動區(qū)分計算機和人類的圖靈測試”。
初期的驗證碼形式,憑借其極度扭曲的字符和難以識別的圖案,給大多數(shù)人留下了深刻的印象。在這個階段,驗證碼的難度與機器人智商的發(fā)展成正比,以至于最后讓許多真人用戶難以辨認。比如“U”和“V”由于字符的扭曲變成了孿生兄弟,而數(shù)字“0”和字母“o”看起來毫無差別。
所幸第一代驗證碼并沒有存在多久,中文驗證碼取代其成為主流。相比起扭曲字符帶給人們的疑惑,中文驗證碼帶給人們更多的是心理傷害。如2017年,成都一名大四女生在網(wǎng)上進行考研報名時,中文驗證碼竟然是“別考”。事后官方表明,此事件純屬巧合。
每個人輸入驗證碼,只需要幾秒鐘時間,但上億人的幾秒鐘疊加起來,就是很大的時間成本。路易斯·馮·安恩便將古籍上難以辨認的詞變成驗證碼,利用這些時間推動古籍辨認的進程。他設(shè)置了兩個驗證碼,一個是已知單詞,另一個是摘自古籍中的單詞。用戶正確輸入前者就可以通過驗證,并且系統(tǒng)會將用戶輸入的古籍單詞視為有效答案。如果有三個用戶輸入的同一古籍單詞相同,那么該單詞就得到辨識。據(jù)統(tǒng)計,每天大約有4萬個古籍單詞被廣大網(wǎng)友所辨認。
人工智能的飛躍式發(fā)展,讓由字符或者圖案構(gòu)成的驗證碼無力維持網(wǎng)絡(luò)環(huán)境的和平。2014年,谷歌通過研究得出:機器人辨認扭曲字符的正確率高達99.8%,而人類只有33%。因此,谷歌做出應(yīng)對之策——“沒有驗證碼的驗證碼”,即我們今天常常看到的“I'm not a robot”,這類驗證碼為網(wǎng)站用戶提供了便利,其背后機制卻相當(dāng)復(fù)雜,甚至涉及用戶隱私。當(dāng)用戶點擊“I'm not a robot”時,谷歌會分析用戶在網(wǎng)站中的各種行為,收集用戶的指針移動速率、當(dāng)前IP、是否使用插件等信息,以判斷用戶是否為人類。從某種程度上來說,這種便利是用用戶隱私換取的。
近兩年,谷歌又推出了第三代驗證碼,用戶無須證明自己是人類,系統(tǒng)會自行根據(jù)用戶使用網(wǎng)頁的情況來判斷,但同時也意味著用戶隱私被進一步侵犯。