五分鐘技術(shù)趣談 | 每天填寫的驗(yàn)證碼還能做公益?
Part 01
防范濫用在線服務(wù)的自動(dòng)化程序的“哨兵”
驗(yàn)證碼(CAPTCHA)一詞由全稱 "Completely Automated Public Turing test to tell Computers and Humans Apart" 縮寫而來,意為“全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試”,由卡內(nèi)基梅隆大學(xué)的Luis von Ahn、Manuel Blum、Nicholas Hopper和John Langford在2000年首次提出。它是一種廣泛應(yīng)用于互聯(lián)網(wǎng)上的安全技術(shù),用于區(qū)分計(jì)算機(jī)程序(例如機(jī)器人)和真實(shí)人類用戶。
典型的CAPTCHA是一個(gè)包含多個(gè)扭曲字符的圖像,如圖1,通常出現(xiàn)在網(wǎng)頁(yè)表單的底部。用戶被要求輸入這些波浪形字符以"證明"他們是人類。當(dāng)時(shí)的計(jì)算機(jī)程序不能像人類一樣會(huì)讀取扭曲的文本,因此CAPTCHA作為防范濫用在線服務(wù)的自動(dòng)化程序的哨兵。由于其作為安全措施的有效性,CAPTCHA用于保護(hù)許多類型的網(wǎng)站,包括免費(fèi)電子郵件提供商、售票網(wǎng)站、社交網(wǎng)絡(luò)、維基和博客。例如,CAPTCHA可以用來防止黃牛使用計(jì)算機(jī)程序蓄意購(gòu)買大量音樂會(huì)門票并高價(jià)轉(zhuǎn)售。Gmail和Yahoo Mail等免費(fèi)電子郵件提供商使用CAPTCHA阻止惡意賬戶進(jìn)行惡意注冊(cè)和垃圾郵件濫發(fā)。
圖片
圖1 CAPTCHA示例(圖片來源【1】)
Part 02
1億人的舉手之“勞”
如果你曾經(jīng)填寫過類似圖2的驗(yàn)證碼,那么恭喜你也感謝你,因?yàn)槟阍诓恢榈那闆r下為人類做了一件很有意義的事情。
圖2 reCAPTCHA界面(圖片來源【1】)
故事還要從一個(gè)奇妙的設(shè)想開始講起:據(jù)Luis von Ahn團(tuán)隊(duì)的估計(jì),(2008年)全球每天有超過1億人輸入驗(yàn)證碼。雖然每次識(shí)別和輸入扭曲字符只需幾秒鐘的時(shí)間,但總體而言,這相當(dāng)于每天數(shù)十萬(wàn)小時(shí)的時(shí)間。雖然驗(yàn)證碼在防止大規(guī)模濫用在線服務(wù)方面非常有效,但每個(gè)人在解決驗(yàn)證碼時(shí)所花費(fèi)的精力是被浪費(fèi)的。這樣大數(shù)量級(jí)的時(shí)間浪費(fèi)問題使得Luis von Ahn團(tuán)隊(duì)開始思考,是否有什么方法可以把這些碎片時(shí)間利用起來。面對(duì)如此奇妙的設(shè)想,他們居然找到了答案——舊紙質(zhì)典籍?dāng)?shù)字化。
當(dāng)時(shí),正在大規(guī)模開展的舊紙質(zhì)典籍?dāng)?shù)字化項(xiàng)目(例如,谷歌圖書項(xiàng)目和非營(yíng)利組織互聯(lián)網(wǎng)檔案館)引起了Luis von Ahn團(tuán)隊(duì)的關(guān)注。舊紙質(zhì)典籍電子化意義重大,既有利于人類知識(shí)的保存也使得信息更加易于訪問、檢索和分析。
當(dāng)時(shí)數(shù)字化舊紙質(zhì)典籍的方式是直接掃描書籍生成圖像,然后通過光學(xué)字符識(shí)別(OCR)軟件轉(zhuǎn)換為文本文件。對(duì)于墨跡褪色、紙張發(fā)黃的舊書,OCR只能識(shí)別80%的單詞【1】。相比之下,人類在轉(zhuǎn)錄此類印刷品方面更準(zhǔn)確,可在轉(zhuǎn)錄和校對(duì)的基礎(chǔ)上,達(dá)到單詞級(jí)別99%以上的準(zhǔn)確率【1】。不幸的是,人工轉(zhuǎn)錄的費(fèi)用很高。
由于人工轉(zhuǎn)錄舊書籍費(fèi)用高昂,OCR自動(dòng)識(shí)別效果又不理想,Luis von Ahn團(tuán)隊(duì)想到,為什么不讓用戶去識(shí)別書籍掃描生成的圖像呢?還有一個(gè)問題,如何區(qū)分填寫驗(yàn)證碼的是真人而非惡意的程序呢?帶著這些設(shè)想和目標(biāo),Luis von Ahn團(tuán)隊(duì)在標(biāo)準(zhǔn)CAPTCHA的基礎(chǔ)上,將原先系統(tǒng)自動(dòng)隨機(jī)生成的圖像替換為掃描得到的圖像,并引入了雙單詞驗(yàn)證,開發(fā)了一套新的驗(yàn)證碼系統(tǒng):reCAPTCHA。
Part 03
reCAPTCHA 雙單詞驗(yàn)證法
reCAPTCHA驗(yàn)證碼系統(tǒng)由兩個(gè)單詞組成,均取自舊書籍典籍掃描的圖像。用戶被要求識(shí)別并輸入兩個(gè)單詞,驗(yàn)證通過即可進(jìn)行后續(xù)的操作。
圖3 reCAPTCHA界面(圖片來源【1】)
如上圖,reCAPTCHA會(huì)給用戶兩個(gè)單詞,一個(gè)是計(jì)算機(jī)無法識(shí)別答案的“未知”單詞(“morning”),另一個(gè)是答案已知的“控制”單詞(“overlooks”)。
任何經(jīng)過兩個(gè)不同的OCR程序,分析結(jié)果不一致或者分析結(jié)果在詞典中查不到的單詞被標(biāo)記為“可疑”單詞。“可疑”單詞最初被作為“未知”單詞發(fā)送給用戶,每個(gè)用戶的答案記為一票,OCR識(shí)別結(jié)果記為半票。如果出現(xiàn)三個(gè)相同的答案且與兩個(gè)OCR結(jié)果都不同,則該“未知”單詞成為“控制”單詞隨機(jī)呈現(xiàn)給用戶。如果用戶給出的答案差異很大,則繼續(xù)作為“未知”單詞發(fā)送給更多的用戶。
圖4 reCAPTCHA 工作原理
每個(gè)“未知”單詞與另一個(gè)“控制”單詞一起放置在圖像中以隨機(jī)順序呈現(xiàn),這兩個(gè)單詞進(jìn)一步扭曲,以確保自動(dòng)化程序無法解讀它們。為了降低自動(dòng)化程序隨機(jī)猜測(cè)正確答案的概率,控制單詞的頻率被歸一化,例如,更常見的單詞“today”和較不常見的單詞“abridged”具有相同的提供概率。
當(dāng)用戶輸入“未知”單詞和“控制”單詞的時(shí)候,如果能拼寫正確“控制”單詞,那么就判斷該用戶為真人,同時(shí),對(duì)于“未知”單詞,只要獲得2.5票及以上就認(rèn)為是正確識(shí)別的單詞。
通過大規(guī)模部署該系統(tǒng)并收集、分析識(shí)別結(jié)果,reCAPTCHA系統(tǒng)在單詞級(jí)別上的準(zhǔn)確率達(dá)到了99.1%【1】,而標(biāo)準(zhǔn)OCR的準(zhǔn)確率僅為83.5%【1】。99.1%的準(zhǔn)確率符合行業(yè)標(biāo)準(zhǔn)中轉(zhuǎn)錄技術(shù)的可接受“超過99%”的準(zhǔn)確率保證。
在系統(tǒng)運(yùn)行了一年后,人類已經(jīng)解決了超過12億個(gè)CAPTCHA,相當(dāng)于正確解密了超過4.4億個(gè)可疑單詞。假設(shè)每本書有10萬(wàn)個(gè)單詞(400頁(yè),每頁(yè)250個(gè)單詞),這相當(dāng)于手動(dòng)轉(zhuǎn)錄了超過1.76萬(wàn)本書(每本書中大約有25%的單詞被算法標(biāo)記為可疑)。該系統(tǒng)的受歡迎程度不斷增長(zhǎng):2008年,每天的轉(zhuǎn)錄速度就超過了400萬(wàn)個(gè)可疑單詞,相當(dāng)于每天約有160本書。通過傳統(tǒng)人工轉(zhuǎn)錄,要達(dá)到這樣的速度,需要一個(gè)由1500多人組成的工作團(tuán)隊(duì),每周工作40個(gè)小時(shí)解密單詞(假設(shè)平均每分鐘60個(gè)單詞)【1】。
由于“控制”單詞是兩個(gè)OCR程序都無法識(shí)別的單詞。因此任何能以非常大的概率識(shí)別這些單詞的程序都將是OCR程序的一種改進(jìn),這也代表著OCR技術(shù)的進(jìn)步。
reCAPTCHA于2009年9月被Google收購(gòu)。自從Google收購(gòu)reCAPTCHA以來,這個(gè)驗(yàn)證碼系統(tǒng)得到了進(jìn)一步的發(fā)展和改進(jìn)。Google將其整合到了自己的產(chǎn)品和服務(wù)中,包括Gmail、Google搜索、Google表單等等。reCAPTCHA不僅僅用于驗(yàn)證用戶是否是人類,還用于數(shù)據(jù)訓(xùn)練和機(jī)器學(xué)習(xí),以提高圖像識(shí)別和自動(dòng)化技術(shù)。
Google在reCAPTCHA的發(fā)展過程中,引入了新的算法和技術(shù),提高了對(duì)機(jī)器人和惡意行為的識(shí)別能力。例如,從經(jīng)典的驗(yàn)證碼(輸入難以辨認(rèn)的文字)發(fā)展到了no CAPTCHA reCAPTCHA(不需要用戶手動(dòng)輸入,通過分析用戶行為進(jìn)行驗(yàn)證,核心是不需要輸入驗(yàn)證碼的驗(yàn)證系統(tǒng),用戶只需要點(diǎn)擊一個(gè)「我不是機(jī)器人」的復(fù)選框),并進(jìn)一步演化為invisible reCAPTCHA(當(dāng)用戶被判斷為低風(fēng)險(xiǎn)時(shí),驗(yàn)證過程會(huì)在后臺(tái)進(jìn)行,不會(huì)顯示任何驗(yàn)證碼界面)。這些改進(jìn)旨在提供更好的用戶體驗(yàn)和更強(qiáng)大的反機(jī)器人保護(hù)。
Part 04
未來展望
未來的驗(yàn)證碼技術(shù)將更加智能、無干擾、多因素、安全可靠,以提供更好的用戶體驗(yàn)和保護(hù)網(wǎng)站免受機(jī)器人和惡意行為的侵害。同時(shí),驗(yàn)證碼技術(shù)也需要不斷創(chuàng)新和優(yōu)化,以適應(yīng)快速發(fā)展的網(wǎng)絡(luò)威脅和用戶需求。