來源:三易生活
如果經(jīng)常在互聯(lián)網(wǎng)上沖浪,想必各種稀奇古怪的驗證碼多多少少都會給你留下深刻的印象。無論是谷歌在九宮格圖片里讓你識別斑馬線、還是在 12306 讓你在 " 一模一樣 " 的圖片里找不同,驗證碼就是這樣一個讓人又愛又恨的存在,愛的是其確實讓垃圾郵件、機器人變少了,而恨的則是實在是太不人性化。
在諸多奇葩的驗證碼里填寫出正確答案,如今也越來越成為用戶上網(wǎng)時的煩惱。正所謂用戶有需求,就會有人拿出解決方案。繼 WWDC22 上蘋果方面推出 iOS 16 后,日前來自 XDA 開發(fā)者論壇的相關(guān)消息顯示,在 iOS 16 的開發(fā)者預(yù)覽版中,官方悄然提供了一個名為 Automatic Verification(自動驗證)的功能,可以讓 iCloud 代替用戶處理 APP 或網(wǎng)站中的驗證碼(CAPTCHA)。
簡單來說,蘋果在 iOS 16 中帶來的這個功能,等于說是用機器來幫人驗證自己不是機器。為什么會這么說呢?其實這就要從驗證碼的起源說起。早期的互聯(lián)網(wǎng)其實是自由開放以及混亂無序的,作為當(dāng)時全球最為知名的產(chǎn)品,雅虎郵箱也是上世紀末絕大多數(shù)用戶連接網(wǎng)絡(luò)世界的窗口,因此自然也成為了黑產(chǎn)眼中的香餑餑,他們編寫腳本自動注冊了大量的雅虎郵箱、用于發(fā)送垃圾郵件。
彼時,這一問題被雅虎的研究人員寫到了《我們無法解決的十大問題》這篇文章中,而在 2001 年卡耐基梅隆大學(xué)學(xué)生 Luis von Ahn 參加雅虎的主題講座時,聽到垃圾郵件泛濫一事后設(shè)計出了 "CAPTCHA"(全自動公共圖靈測試),也就是如今大家熟知的 " 驗證碼 " 體系。而驗證碼技術(shù)的核心理論,就是區(qū)分正常人與機器,所提出的問題要容易被人解答、并且讓機器無法解答。
最終,Luis von Ahn 發(fā)現(xiàn)人類可以用肉眼,輕易地識別出在圖片中、被扭曲過、污染過的文字信息,而當(dāng)年電腦并不能做到這一點。隨即在 Luis von Ahn 這一方案的基礎(chǔ)上,雅虎方面推出了 EZ-Gimpy 字符驗證碼機制。早期驗證碼中往往會出現(xiàn)一條不規(guī)則橫線覆蓋在需要識別的詞匯上,這其實就是在借助早期計算機視覺技術(shù)不發(fā)達的缺陷,讓機器識別不出被 " 污染 " 的詞匯。
作為一個反向的 " 圖靈測試 ",在 PC 互聯(lián)網(wǎng)時代早期其確實起到了不小的作用,遏制了黑產(chǎn)利用自動化程序?qū)崿F(xiàn)暴力破解、惡意注冊、刷票、批量操作的目的。畢竟黑產(chǎn)是一個典型講究成本收益的 " 生意 ",只要收益不能覆蓋成本就自然會知難而退。彼時,黑產(chǎn)粗糙的自動化腳本面對字符驗證碼確實是一籌莫展,例如當(dāng)時百度貼吧使用的反 " 爆吧 " 工具就有發(fā)貼需要驗證碼的步驟。
但隨著 OCR(光學(xué)字符識別)與計算機視覺技術(shù)的發(fā)展,機器在圖像識別上的能力升級,使得單純基于字符的驗證碼逐漸失效。特別是在二十一世紀的第二個十年,機器學(xué)習(xí)技術(shù)上了一個臺階后,卷積神經(jīng)網(wǎng)絡(luò)(CNN)以及生成對抗網(wǎng)絡(luò)(GAN)在業(yè)界大規(guī)模應(yīng)用后,在海量的數(shù)據(jù)樣本的 " 喂養(yǎng) " 下,讓圖片驗證碼也已經(jīng)落伍了。
無論字符的變形程度再高、再厲害,只需用圖像分割技術(shù)切到一定的顆粒度,再用卷積神經(jīng)網(wǎng)絡(luò)算法就能準確地識別出來。甚至根據(jù)一項騰訊安全在多年前的爆料信息表明,國內(nèi)當(dāng)時就已有黑產(chǎn)團隊實現(xiàn)了對字符驗證碼 98% 的 " 爆破 " 幾率。
為此,互聯(lián)網(wǎng)廠商也紛紛升級了驗證碼相關(guān)技術(shù)。既然純粹的字符、圖片已被攻克,而其核心又是區(qū)分人類與機器,那么驗證碼與相關(guān)知識的結(jié)合,也使得 " 做題家 " 模式開始出現(xiàn),讓用戶需要根據(jù)問題去尋找驗證碼的正確答案。
這一時期,想必有些玩家可能聽過 EA 旗下 Origin 平臺骰子驗證碼的大名。這個驗證碼要求用戶從六張骰子圖中,找到一張結(jié)果相加等于特定數(shù)字的圖片,而且要求在限定時間里連續(xù)答對 15 次。此外,最 " 經(jīng)典 " 的則莫過于 12306 的驗證碼識圖了,其不僅讓機器束手無策、更是難倒了許多用戶。而這些,也使得好好的驗證碼變成了考驗用戶知識積累、觀察能力,以及手速的玩意。
顯然,驗證碼技術(shù)的問題就出現(xiàn)在了這里,隨著攻防雙方不斷在技術(shù)端的升級,使得其對用戶的友好性已經(jīng)逐漸消失,并變得極為 " 反人類 "。同時,也有部分廠商借助驗證碼技術(shù)來實現(xiàn)商業(yè)目的,許多朋友可能遇到過谷歌、Meta、Twitter 的九宮格圖片驗證方式,即 " 選出下圖中的 xxx" 類型的的驗證碼,雖然表面上是讓用戶標識出特定物品,但背地里是卻借助用戶積累數(shù)據(jù)來訓(xùn)練自己的 AI 模型。
因此在相當(dāng)長的一段時間里,許多用戶對于驗證碼可謂是厭煩透頂。為此,驗證碼技術(shù)再次升級為行為驗證模式或者說無知識型驗證,如今各平臺常用的滑塊驗證就是其中的典型,其特色就是采集用戶數(shù)據(jù),并借助基于人類固有的生物特征以及操作環(huán)境信息,來綜合決策判斷屏幕前到底是人還是機器。
比如說看起來簡單的滑塊驗證,盡管看似就是將拼圖拼完整,但是這其中的原理是人類拖動滑塊通常是先快后慢,需要先快速拖到缺口附近、再在缺口附近進行精準校驗,而機器則往往是勻速拖動這一滑塊。
那么問題來了,既然行為驗證更為先進,為什么目前還有許多 APP 和網(wǎng)站依然在使用傳統(tǒng)的圖文驗證碼呢?原因其實很簡單,Web 前端因為代碼都是明文形式的腳本語言,行為驗證模式的核心就是將不可信的 Web 前端打造成可信的客戶端,這就需要代碼混淆與行為數(shù)據(jù)加密的支持。然而遺憾的是,很多基于 Web 的 APP 或網(wǎng)站并沒有這樣的技術(shù)能力。
無論如何,過去的二十年間互聯(lián)網(wǎng)行業(yè)關(guān)于驗證碼的攻防,就一直都帶有非常明顯的身份特征,黑產(chǎn)方面希望攻破驗證碼系統(tǒng)來實現(xiàn)批量化的推送垃圾廣告、機器人等等行為,而互聯(lián)網(wǎng)廠商則希望用驗證碼技術(shù)來保護賬號體系的安全和穩(wěn)定。盡管蘋果方面目前并未公開 Automatic Verification 這一功能的原理,但其無外乎還是生成對抗網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等人工智能技術(shù)的應(yīng)用。
誠然,這一自動驗證功能確實能夠在一定程度上,幫助用戶從絞盡腦汁填寫驗證碼的苦海中脫離,但從技術(shù)倫理的角度出發(fā),這可能是一個非常危險的舉措。畢竟在第三方開發(fā)者的視角,自動驗證功能與黑產(chǎn)的自動化腳本其實并沒有本質(zhì)的區(qū)別,同樣違反了驗證碼技術(shù)是用于區(qū)分人和機器行為的宗旨。