在上網(wǎng)過程中,你肯定會(huì)遇到過類似這樣的東西:
猛一看:為什么我得向計(jì)算機(jī)證明我是人類?
細(xì)一想:即使我勾選了那個(gè)框,就能證明我是人類嗎?那些AI機(jī)器人難道不能勾選同樣的框嗎?
計(jì)算機(jī)為什么要問這個(gè)問題?它在背后又是如何測(cè)試是真人在點(diǎn)擊的?
想回答這個(gè)問題,我們得看看驗(yàn)證碼的發(fā)展過程。
01
精妙的發(fā)明
在互聯(lián)網(wǎng)的上古時(shí)期,雅虎發(fā)現(xiàn)自家的聊天室經(jīng)常出現(xiàn)“機(jī)器人”,這些機(jī)器人注冊(cè)進(jìn)入聊天室,瘋狂地發(fā)送垃圾廣告,讓人不勝其煩。
“抓狂”的雅虎向卡內(nèi)基梅隆大學(xué)求助,路易斯·馮·安(Luis von Ahn)和他的同事們接了這個(gè)活兒。
路易斯出生在貧窮的危地馬拉,位于中美洲。
他的母親非常重視教育,花了很多錢讓他進(jìn)入教英語的私立學(xué)校,8歲時(shí)就給他買了Commodore 64 計(jì)算機(jī),從此路易斯對(duì)計(jì)算機(jī)產(chǎn)生了濃厚的興趣,18歲時(shí)申請(qǐng)到了美國杜克大學(xué),2000年進(jìn)入卡內(nèi)基梅隆讀博士。
路易斯仔細(xì)研究了這個(gè)問題以后,開發(fā)了一個(gè)叫做GIMPY的系統(tǒng)。
GIMPY會(huì)從字典中選擇一組單詞,將它們以損壞/扭曲的方式,顯示在特定背景的圖像中,然后要求用戶輸入該圖像中顯示的單詞。
人類用戶能夠識(shí)別出這些單詞,但當(dāng)時(shí)的機(jī)器人卻不行,于是它們就無法進(jìn)入聊天室了。
這種方式簡(jiǎn)單有效,又很容易集成到現(xiàn)有網(wǎng)站中去,郵箱系統(tǒng)、論壇、電商、游戲等系統(tǒng)紛紛采用,驗(yàn)證碼很快便流行開來。
GIMPY就是第一代驗(yàn)證碼,路易斯給它起了一個(gè)長(zhǎng)長(zhǎng)的名稱:"Completely Automated Public Turing test to tell Computers and Humans Apart",中文意思是 "完全自動(dòng)化的公共圖靈測(cè)試,用于區(qū)分計(jì)算機(jī)和人類", 簡(jiǎn)稱CAPTCHA,中文一般說“驗(yàn)證碼”。
有了驗(yàn)證碼以后,受到最大影響的還是用戶,我們不得不瞇起眼睛,小心翼翼地輸入這些單詞,輸錯(cuò)了就得重來一遍。
路易斯看到這種情況,又開始琢磨了,既然用戶費(fèi)了這么大勁,為什么不把“識(shí)別單詞”這個(gè)事兒給利用起來,讓它產(chǎn)生價(jià)值呢?
比如有很多書籍,想數(shù)字化進(jìn)入電腦得時(shí)候,就得用OCR技術(shù)掃描。
但是對(duì)老舊書籍,字體模糊,OCR也識(shí)別不了,那能不能讓人來識(shí)別呢?
比如有個(gè)單詞是fox,在書中模糊看不清了,那就形成圖片,當(dāng)作驗(yàn)證碼讓用戶來識(shí)別。
用戶A看到了,識(shí)別成了"fxx"
用戶B看到了,識(shí)別成了"fox"
用戶C看到了,識(shí)別成了"foc"
用戶D看到了,識(shí)別成了"foo"
每個(gè)用戶都有自己的識(shí)別結(jié)果,系統(tǒng)可以在后臺(tái)做交叉驗(yàn)證,如果發(fā)現(xiàn)大多數(shù)用戶都輸入了fox,那fox就可以認(rèn)為是是正確的詞。
這樣用戶付出的勞動(dòng)變成了有價(jià)值的“人肉OCR”。
可是,這么弄驗(yàn)證碼的話有個(gè)巨大的漏洞:因?yàn)橄到y(tǒng)也不知道正確答案,機(jī)器人就可以隨意輸入了!
路易斯就想了另外一招,每次展示兩個(gè)詞。
一個(gè)詞是系統(tǒng)已知的,當(dāng)作真正的驗(yàn)證碼。
另外一個(gè)詞是系統(tǒng)不確定的單詞,讓用戶做人肉OCR。
舉個(gè)例子,下圖中的morning這個(gè)詞OCR識(shí)別不了,就把它當(dāng)成不確定的詞,讓用戶識(shí)別。
與此同時(shí),再提供一個(gè)系統(tǒng)已經(jīng)知道的詞“overlooks”,當(dāng)作驗(yàn)證碼。
只有那些正確地輸入了overlooks的用戶,系統(tǒng)才認(rèn)為這是一個(gè)真人,才會(huì)對(duì)他輸入的另外一個(gè)詞做進(jìn)一步處理(例如交叉驗(yàn)證)。
2007年,路易斯發(fā)表了一篇論文,把這種驗(yàn)證碼稱為reCAPTCHA。
reCAPTCHA 不僅提升了網(wǎng)絡(luò)安全,還充分利用了廣大網(wǎng)民的勞動(dòng),確實(shí)是一個(gè)精妙的發(fā)明。
2009年,Google看到reCAPTCHA在大規(guī)模數(shù)字化項(xiàng)目(如圖書數(shù)字化、檔案整理等)上的潛力,把它收購了,開始了一個(gè)雄心勃勃的Google圖書館項(xiàng)目,計(jì)劃將世界上的每一本書都數(shù)字化,創(chuàng)建一個(gè)供所有人訪問的數(shù)字圖書館。
截至2019年,Google利用掃描技術(shù)和reCAPTCHA,一共錄入了4000萬種書籍,非常驚人。
02
全新升級(jí)
由于文本驗(yàn)證碼容易被機(jī)器人破解,為了增加難度,還出現(xiàn)了圖片驗(yàn)證碼和數(shù)學(xué)驗(yàn)證碼。
驗(yàn)證碼越來越復(fù)雜,經(jīng)常是輸入了幾次都不對(duì),把人都快逼瘋了。
但是無論是文本驗(yàn)證碼還是圖片驗(yàn)證碼,在AI能力飛速提升的時(shí)候,都力不從心了。
研究發(fā)現(xiàn),當(dāng)今的人工智能技術(shù)可以識(shí)別最困難的扭曲文本變體,準(zhǔn)確率達(dá)到99.8%。
一些攻擊者還找到了另類的辦法,例如把驗(yàn)證碼圖片發(fā)送到低工資的地方,由人工快速破解。
更極端的例子,攻擊者創(chuàng)建色情網(wǎng)站,要求用戶輸入驗(yàn)證碼作為解鎖內(nèi)容的條件,而這些驗(yàn)證碼實(shí)際上來自其他網(wǎng)站。
用視覺驗(yàn)證的方式已經(jīng)不再是一種安全的選項(xiàng)。
2013年,Google開始部署新的驗(yàn)證碼,名字很長(zhǎng),no CAPTCHA reCAPTCHA,簡(jiǎn)稱noCAPTCHA吧。
noCAPTCHA只需要用戶去點(diǎn)擊一個(gè)“我不是機(jī)器人”復(fù)選框即可,非常簡(jiǎn)單。
系統(tǒng)會(huì)在你點(diǎn)擊的過程中,監(jiān)測(cè)和分析你的行為。
人類行為:正常人類用戶點(diǎn)擊復(fù)選框時(shí),表現(xiàn)出自然的頁面停留時(shí)間,鼠標(biāo)移動(dòng)軌跡和點(diǎn)擊速度。
機(jī)器人行為:自動(dòng)化程序可能會(huì)立即點(diǎn)擊復(fù)選框,沒有鼠標(biāo)移動(dòng)或鼠標(biāo)移動(dòng)路徑異常。
除了用戶行為以外,noCAPTCHA還會(huì)收集設(shè)備信息和瀏覽器的指紋,一并發(fā)給后臺(tái)做驗(yàn)證。
如果系統(tǒng)懷疑你是機(jī)器人(沒有鼠標(biāo)移動(dòng),或者移動(dòng)太快),它可能會(huì)要求你完成額外的任務(wù),用舊式的驗(yàn)證碼來進(jìn)行驗(yàn)證。
03
展望未來
驗(yàn)證碼被機(jī)器人痛恨,也被大部分人類厭煩,順暢的上網(wǎng)過程不斷地被它打斷。
但是如果沒有驗(yàn)證碼,我們的網(wǎng)絡(luò)世界肯定會(huì)是一團(tuán)糟。
從最初的GIMPY到reCAPTCHA,再到no CAPTCHA reCAPTCHA,驗(yàn)證碼在不斷進(jìn)化。
然而,道高一尺魔高一丈,無論驗(yàn)證碼如何進(jìn)化,攻擊者總是能找到破解之法。
希望將來能找到一個(gè)兼顧安全性和便捷性的辦法,讓我們拭目以待吧。
全文完,覺得不錯(cuò)的話點(diǎn)個(gè)贊或者在看吧!
近期爆文:
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.