◆李波 整理
“驗證碼不匹配,請重新輸入。”這是一句令很多人十分苦惱的話。文字、算術(shù)題、字母、圖片……花樣百出的驗證碼雖然給我們帶來了諸多不便,但是它維護了網(wǎng)絡安全,甚至有時候,我們填寫驗證碼是在為人類文明和技術(shù)進步作貢獻。
提到驗證碼,有的同學可能會問:“短信驗證碼和圖片、字母、文字等類型的驗證碼有什么不同?”其實,它們雖然都叫作驗證碼,但有很大差別。
當我們點擊獲取短信驗證碼后,網(wǎng)站或App 后臺會生成驗證碼內(nèi)容,將它和我們的手機號等數(shù)據(jù)發(fā)給短信服務商和運營商,最后以短信形式發(fā)至手機。短信驗證碼不僅可以作為用戶的身份憑證,還能夠保證賬戶安全,防止惡意注冊。而包含圖片、字母、文字等的驗證碼系統(tǒng)更復雜。
在驗證碼系統(tǒng)出現(xiàn)之前,還沒有微信、QQ 等社交軟件,人們都用電子郵件溝通。當時,一個問題深深困擾著大家:黑客開發(fā)出一種程序,能夠批量注冊賬號,并用這些賬號進行違規(guī)操作。想象一下,如果網(wǎng)站上滿是垃圾評論和廣告,支付寶密碼被輕松破解,成千上萬的垃圾賬號操縱網(wǎng)絡投票……那多么令人抓狂!更崩潰的是,就連互聯(lián)網(wǎng)公司也無法分辨注冊賬號的到底是人還是機器。
解決這一問題的計算機天才名叫路易斯·馮·安,來自危地馬拉。2000 年,年僅21 歲的他提出了一個革命性解決方案:在注冊賬號的過程中設(shè)置一個判定環(huán)節(jié),讓用戶識別一串扭曲、重疊、不完整的字母或者數(shù)字,然后輸入。這項工作在人類看來相當簡單,但對那時候的機器來說,根本無法完成。這個系統(tǒng)叫作全自動區(qū)分計算機和人類的公開圖靈測試(Completely Automated Public Turing test to tell Computers and Humans Apart),簡稱CAPTCHA,就是我們現(xiàn)在常用的驗證碼。
阻止黑客惡意注冊賬號的問題暫時得到解決,但又產(chǎn)生了一個新問題:填寫驗證碼太耗費時間。假設(shè)一天中每人只需花10 秒填寫驗證碼,2000 年全球互聯(lián)網(wǎng)用戶約4 億人,所有用戶每天要耗費的時間加起來約127 年,路易斯·馮·安心想:能不能把這些時間利用起來呢?
路易斯·馮·安把目光投向了需要被電子化的紙質(zhì)圖書。如果讓人工錄入這些圖書需要耗費很大精力,而電子掃描又很難保證質(zhì)量,為了解決這一問題,他重新設(shè)計了驗證碼系統(tǒng),并將其命名為reCAPTCHA。這套系統(tǒng)分為兩個部分:第一部分和之前的相似,是自動生成的內(nèi)容,用來判定被測試者是否為人類;第二部分是機器無法識別的文本。如果第一部分輸入正確,reCAPTCHA 就會假設(shè)第二部分同樣能輸入正確,通過驗證,然后把錄入結(jié)果返回給主機。為了確保不出錯,主機會把第二部分內(nèi)容發(fā)給多個用戶進行交叉驗證。2007 年,reCAPTCHA 系統(tǒng)成功數(shù)字化了《紐約時報》20 年的報紙。
隨著技術(shù)進一步發(fā)展,驗證碼系統(tǒng)也參與到人工智能的優(yōu)化當中。谷歌公司把用戶識別的圖片變成標注好的數(shù)據(jù),用來優(yōu)化人工智能算法模型,如標注車輛邊框的驗證碼是為了訓練智能攝像頭的識別能力。這些數(shù)據(jù)越準確,數(shù)量越多,模型效果就越好。
圖片驗證碼
在驗證碼進階之路上,黑客也想出了各種辦法對付驗證碼,比如聘用工人填寫驗證碼、使用人工智能破解。在與黑客斗智斗勇的過程中,驗證碼系統(tǒng)也不斷升級更新。
2009 年,谷歌收購了reCAPTCHA系統(tǒng)。5 年之后,谷歌推出了一種不需要驗證碼的驗證方法:讓用戶點擊“I'm not a robot”的按鈕。這種驗證方法看起來簡單,但是背后離不開強大的人工智能。它會監(jiān)測用戶的操作習慣如移動鼠標的速度和軌跡、反應時間等,收集大量信息,以此來進行判斷。
了解驗證碼背后的故事后,我們在填寫驗證碼時,是不是心情沒那么糟糕了?驗證碼的發(fā)明離不開人類非凡的創(chuàng)造力。也許以后會出現(xiàn)更厲害的破解驗證碼的方法,但人類一定能想到方法來應對,將網(wǎng)絡秩序拉回正軌!