斯嘉
這天,準備考研許久的你,躊躇滿志地打開了考研報名網(wǎng)站。
然而,還沒來得及一展才學,你就被卡在了網(wǎng)站登錄的驗證碼上。重疊在一起的字體,布滿馬賽克的背景,讓你輸了幾次驗證碼都沒有輸對。
你屢敗屢戰(zhàn),但驗證碼上出現(xiàn)的“骉叕犇羴”,又瞬間讓你懷疑自己的學識水平。
你再一次自我激勵,決定這一次一定要輸對,卻見刷新出來的驗證碼上,寫著大大的兩個字:別考。
逼瘋你的驗證碼,為什么變得越來越復雜?
每一次輸驗證碼時,你都會忍不住發(fā)出這樣的疑問。它那扭曲的形狀,粘連在一起的字符,雪花狀的背景,常讓你陷入自己是不是眼瞎的懷疑。
然而,這種字符驗證,還只是日常的基礎題,高難度的題目,往往出現(xiàn)在春節(jié)這樣的特殊時刻。登錄12306時要選擇的圖片驗證碼,就曾是每個在春節(jié)搶過火車票的人的噩夢。
有些驗證碼更是不滿足只考你的眼力,還要測一下你的智商。在購票網(wǎng)站搶演唱會門票時,不僅要懂點文學典故,讀過四大名著,末了,還要附帶讓你算一道數(shù)學題。
甚至有些驗證碼,還成了你和朋友間友誼的試煉場。在登錄Facebook驗證時,系統(tǒng)會隨機挑出幾張好友發(fā)布過的照片,讓你辨認照片中的人是誰。本就臉盲的你,再碰上你朋友修煉多年的P圖技術,驗證碼的難度系數(shù)也因此倍增。
美國斯坦福大學的研究指出,驗證碼已經(jīng)過難。
研究者們搜集了8500個多種形式的驗證碼讓受試者辨認,發(fā)現(xiàn)他們在判斷驗證碼時,平均要花9.8秒,且同時讓三個人辨別同一個驗證碼,三人間的一致率只有71%。如果是聽聲音辨識的驗證碼,準確率會更低,只有31.2%。
其實,驗證碼也不是一開始就這么復雜。
在驗證碼被發(fā)明前,許多免費的郵箱網(wǎng)站常遭受惡性外掛軟件的攻擊。例如在2000年,雅虎郵箱中曾有大量用機器注冊的馬甲賬號,他們會給用戶發(fā)大量的垃圾、詐騙郵件。
為了解決這個問題,程序開發(fā)人員試圖找到一種登錄驗證方式,能判斷出正在操作的究竟是人還是機器。
AltaVista的工程師們便找到了有效的方式。他們發(fā)現(xiàn),當時,即使是配備了最先進的光學字符識別系統(tǒng)的電腦,也很難正確識別出印在紙本上的字,尤其當字符被拉伸、扭曲時,電腦就更難辨認。
然而,這對人類來說卻很容易。我們從小就一直在接受閱讀訓練,即使紙上的字歪歪斜斜,部分被遮擋,也不影響我們對整體的判讀。扭曲的字符,便成了最常用的登錄驗證方式,并有了“驗證碼”這個正式名字。程序員們會預先設定一個字符庫,庫中的字符會排列組合成字符串,再根據(jù)隨機變量被扭曲、涂抹,定位在隨機背景上,從而成了我們所見的驗證碼。
這些字符謎題,確實有效減少了網(wǎng)站中的垃圾郵件,到2001年,“ADD-URL”郵箱中的垃圾郵件便減少了95%。
但隨著電腦光學字符識別技術的不斷發(fā)展,這種形式的驗證碼已經(jīng)越來越難將外掛機器擋在門外。在2014年Google工程師的測試中,即使是最難的扭曲字符類驗證碼,電腦識別的準確率也高達99.8%。為了擋住越來越聰明的機器,驗證碼因此被迫進化,出現(xiàn)了圖形驗證碼、邏輯驗證碼、語音驗證碼……
不過,你受的每一次苦,也不是白費功夫。你在十秒內(nèi)減少的腦細胞,其實都轉(zhuǎn)移到了一個AI身上。
我們辨識的一些驗證碼字符,來自那些年代久遠的報紙、典籍,這些手寫、帶有污點的字跡,難以被電腦辨識,程序員便將這些字符加入驗證碼中。
這樣的驗證碼通常由兩段組成,前一段是已經(jīng)成功數(shù)字化的單詞,后一段則是不知道正確答案的典籍字符。只要用戶答對第一段,第二段的判讀結果也會被記錄下,再比對多個用戶的辨識結果,得出結論。
在全世界人的判讀下,每天有超過2億個單詞被破譯、轉(zhuǎn)錄,《紐約時報》便借由這種方式,實現(xiàn)了數(shù)字化。你現(xiàn)在看到的百年前的《紐約時報》,可能就是你曾經(jīng)用愛發(fā)電的成果。
不只是字符類驗證碼,Google讓用戶辨認驗證碼圖片中的“斑馬線”“紅綠燈”,也是在加強機器人的圖片辨識能力,并將機器學習成果運用在自動駕駛上。
我們就陷入了這樣一個循環(huán)怪圈:輸入越多驗證碼,AI的學習能力就越強,技術的進步讓更多驗證碼被破解,而我們就要被迫再次設計出更復雜的驗證碼……
驗證碼似乎已背離了初衷,成了一個難住了人類,卻難不住機器的擺設。
越來越多的科技公司也意識到了這個問題,開始試圖簡化繁雜的驗證碼。
比如,你現(xiàn)在登錄12306時,就只用拖動滑塊。這樣的驗證碼不僅是在評判你操作的結果,更多的是記錄并分析你操作時的行為。電腦觀察你移動滑塊的速度變化,就能認出你是人類。另一種隱性的驗證碼,也按照這個原理。當你勾選“我不是機器人”時,程序就能判斷你是否在說謊。
并不是它真的有讀心術,而是在你勾選后,它會自動分析你在瀏覽該網(wǎng)頁時的行為,包括鼠標的移動軌跡、瀏覽的速率等,借此分析出這些行為是否屬于正常人類的操作。
至此,在這場人類與機器的比賽中,我們已不再試圖證明自己更聰明,而是轉(zhuǎn)向另一種策略:那不統(tǒng)一的行為軌跡,不精確的答案,笨手笨腳的操作,才是我們生而為人的特征啊。
不過,這樣的隱性驗證碼也不是萬靈丹藥。在它出現(xiàn)后不久,加拿大多倫多大學的學者便發(fā)表了論文,聲稱他們的機器人可以模仿人類的操作行為,順利通過隱性驗證碼的測試。
1950年,著名計算機科學家圖靈提出了一個思想實驗:人類提出一系列問題,機器給出答案,再由人類判斷對方是否為機器。如果有超過30%的人將機器誤判成人類,那么這個機器就被認為具有人類智能。但70年過去了,人類陷入了完全相反的境地——一個個驗證碼,正是機器拋給人類的問題:“你是人類嗎?”
這一次,審判權握在機器手中,而被驗證碼難住的人類,仍在用力吶喊:我不是機器人。