在文章開頭,老狐先給大家玩一個(gè)驗(yàn)證碼的游戲,猜出圖中驗(yàn)證碼字母。
請(qǐng)計(jì)算出圖中驗(yàn)證碼的結(jié)果。
好了,我們還是回到標(biāo)題上來,聊一聊驗(yàn)證碼是怎么為難我們?nèi)祟惖摹?/p>
驗(yàn)證碼的由來
2000 年,雅虎當(dāng)時(shí)還是全球最大的網(wǎng)絡(luò)郵箱服務(wù)商,雅虎郵箱的用戶經(jīng)常收到許多垃圾和詐騙短信。
這種經(jīng)歷放在今天,就是你下班回到家,發(fā)現(xiàn)自己門口擺滿了快遞。
但注意,其中只有一個(gè)快遞是你自己購買的,其他的快遞都是別人發(fā)的垃圾。
你為了找到自己的快遞,只好拆了全部的快遞。這時(shí),你恐怕只會(huì)后悔自己有這一個(gè)快遞。
當(dāng)時(shí)受到影響的不止雅虎,還有許多互聯(lián)網(wǎng)公司。
黑客們利用腳本機(jī)器人大量注冊(cè)賬戶,進(jìn)行評(píng)論注水、黃牛搶票、撞庫掃號(hào)等影響互聯(lián)網(wǎng)企業(yè)運(yùn)營(yíng)的行為。
現(xiàn)如今,“ 天下苦驗(yàn)證碼久矣 ”,而在二十年前,則是“ 天下苦腳本機(jī)器人久矣 ”。
后來雅虎找到在卡內(nèi)基梅隆大學(xué)的路易斯·馮·安(驗(yàn)證碼之父)等人,與他們合作。
*路易斯·馮·安(驗(yàn)證碼之父)
他們利用當(dāng)時(shí)的人機(jī)驗(yàn)證機(jī)制,為雅虎設(shè)計(jì)了一套防御機(jī)器人的程序,并首次提出了“驗(yàn)證碼”的概念。
驗(yàn)證碼,更專業(yè)的名字是“全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試”,簡(jiǎn)稱 CAPTCHA。
驗(yàn)證碼的作用是讓計(jì)算機(jī)區(qū)分人類和計(jì)算機(jī)。大家熟知的圖靈測(cè)試是讓人區(qū)分人和計(jì)算機(jī),與驗(yàn)證碼作用剛好相反。
因此,有些人也將驗(yàn)證碼叫做“反向圖靈測(cè)試”。
文本類驗(yàn)證碼
然而,一切沒有那么容易。
早期的驗(yàn)證碼非常簡(jiǎn)單,只是普通的字母組合,干擾的信息很少,而文字識(shí)別技術(shù)( OCR )的應(yīng)用甚至要比驗(yàn)證碼早 30 年。
沒過多久,黑客利用 OCR 成功破解了驗(yàn)證碼。
于是,計(jì)算機(jī)科學(xué)家們繼續(xù)尋找更好的防御機(jī)制。
他們?cè)隍?yàn)證碼的字符中加入更多的干擾因素,將字符連接、變形、空心,變成動(dòng)態(tài),加入更復(fù)雜的背景。
總之,一切都是為了降低腳本機(jī)器人的識(shí)別成功率。
然而降低機(jī)器人識(shí)別正確率的效果是暫時(shí)的,降低用戶的識(shí)別成功率卻是永久的。
我經(jīng)常遇到無法識(shí)別的驗(yàn)證碼,要么需要刷新,要么輸入錯(cuò)誤。
此時(shí)計(jì)算機(jī)對(duì)我的判定是:你 不 是 個(gè) 人!
這句話聽起來是不是好像是在罵人。
2008 年,兩位英國(guó)紐卡斯?fàn)柎髮W(xué)的計(jì)算機(jī)研究人員發(fā)布了一篇論文。
在論文中,他們用新的字符分割法來識(shí)別微軟、雅虎和谷歌的驗(yàn)證碼。
微軟和雅虎的驗(yàn)證碼識(shí)別正確率超過 60%,谷歌的驗(yàn)證碼識(shí)別率較低,為 8.7%。
雖然谷歌這個(gè)數(shù)字看起來比雅虎和微軟優(yōu)秀,但腳本機(jī)器人可以發(fā)動(dòng)大量攻擊,100 萬次嘗試就將有 8.7 萬個(gè)驗(yàn)證碼被破解。
因此,這個(gè)結(jié)果仍然是無法令人滿意的。
在這份論文中,研究人員還列出了用戶會(huì)混淆的幾個(gè)驗(yàn)證碼:
比如:
開頭是字母 “ d ” 還是 “ cl ” ?
這是哪幾個(gè)字符?
別問我答案,我也不知道。
雖然變形扭曲的字符能提升攔截腳本機(jī)器人的效率,但真人用戶同樣難以辨別驗(yàn)證碼,也被阻擋在外。
甚至有研究表明,通過卷積神經(jīng)網(wǎng)絡(luò)模型( CNN ),機(jī)器識(shí)別扭曲字體的正確率還要高于人類。
驗(yàn)證碼殺敵一千,自損一萬。
簡(jiǎn)單文本內(nèi)容的驗(yàn)證碼已經(jīng)無法滿足需要,于是,又出現(xiàn)了答題類的驗(yàn)證碼。
驗(yàn)證碼成了考題,用戶輸入正確的答案才能通過驗(yàn)證,這種形式的驗(yàn)證碼雖然能暫時(shí)有效阻擋腳本機(jī)器人,但卻對(duì)用戶不友好,受到許多吐槽。
因此,答題驗(yàn)證碼并不常見。
畢竟,當(dāng)你遇到文章開頭這種驗(yàn)證碼,你可能不會(huì)愿意計(jì)算出答案,而是直接關(guān)閉頁面。
文本類驗(yàn)證碼面對(duì)腳本機(jī)器人的攻擊,漸漸招架不住,研究人員決定調(diào)轉(zhuǎn)方向,開發(fā)采用圖像選擇類的驗(yàn)證碼。
圖像選擇類驗(yàn)證碼
相比于文本類的驗(yàn)證碼,圖像選擇類驗(yàn)證碼對(duì)用戶友好很多,只需點(diǎn)擊圖像,不再依賴鍵盤輸入,而且圖像驗(yàn)證碼趣味性更強(qiáng)。
例如根據(jù)題目要求在幾張照片中找出符合要求的照片即可,體驗(yàn)起來像是玩連連看。
2007 年,研究人員提出了圖像選擇類驗(yàn)證碼,之后迅速受到研究人員和用戶的歡迎。
畢竟,誰會(huì)喜歡答案而不喜歡游戲呢?
2015 年 3 月,12306 為了防止黃牛搶票引入了圖片驗(yàn)證碼,引發(fā)熱議。
搶過火車票的小伙伴對(duì)此肯定不陌生,為了不被 12306 的驗(yàn)證碼難住,不得不調(diào)鬧鐘提早登錄 12306。
剛開始,圖像選擇類驗(yàn)證碼還能起到不錯(cuò)的保護(hù)效果。
然而,隨著圖像識(shí)別技術(shù)的發(fā)展,特別是 AI 技術(shù)的進(jìn)步,人們可以訓(xùn)練機(jī)器學(xué)習(xí)分類圖片,破解圖像。
例如,國(guó)外的研究人員就利用 SVM 分類器和卷積神經(jīng)網(wǎng)絡(luò)模型等方式,來破解部分圖像選擇驗(yàn)證碼。
來自卡內(nèi)基梅隆大學(xué)的一個(gè)團(tuán)隊(duì)在 2017 年發(fā)布論文表示:
他們通過收集 260 萬個(gè)驗(yàn)證碼和短語,以及 2100 萬張圖片,經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,最終可以使機(jī)器在 2 秒內(nèi)以 77% 的正確率通過 12306 的驗(yàn)證碼。
為了阻擋腳本機(jī)器人的攻擊,維護(hù)人員不得不制作更多新的驗(yàn)證碼圖片,利用新的驗(yàn)證碼圖片還未被機(jī)器學(xué)習(xí),以此來降低機(jī)器的識(shí)別正確率。
于是更多奇怪的驗(yàn)證碼被制作出來。
然而,我們普通用戶成了最大的受害者,各種奇葩的圖片驗(yàn)證碼讓人難以區(qū)分,連登錄自己的賬戶,都變成了一件難事。
不過一些研究統(tǒng)計(jì)表明,在圖片驗(yàn)證碼的正確率上,機(jī)器在某些方面的圖像感知能力也已經(jīng)領(lǐng)先人類。
既然圖像選擇驗(yàn)證碼也干不過機(jī)器,研究人員再次使出絕招:調(diào)轉(zhuǎn)方向!
行為軌跡類驗(yàn)證碼
無論文本還是圖像都是以問答的形式來驗(yàn)證人和腳本機(jī)器人,腳本機(jī)器人通過學(xué)習(xí),表現(xiàn)比人類還要穩(wěn)定。
于是,研究人員發(fā)明了行為軌跡類的驗(yàn)證碼,而它的原理就是利用人類在行為軌跡上不如機(jī)器穩(wěn)定。
以我們熟悉的滑動(dòng)驗(yàn)證碼為例:
當(dāng)我們將左邊的滑塊向右拖動(dòng),后臺(tái)服務(wù)器不僅驗(yàn)證用戶能否正確地將滑塊填進(jìn)空缺位置,還要記錄用戶的鼠標(biāo)位置,滑塊的移動(dòng)軌跡等信息。
通常來說,相對(duì)于腳本機(jī)器人,人類的滑動(dòng)軌跡都是非勻速的,不準(zhǔn)確的。
尤其是像我這樣肢體不靈活的人,越接近空缺位置,速度越慢,直到合上滑塊。
這個(gè)過程有很多不穩(wěn)定的因素,正是通過不穩(wěn)定的軌跡,后臺(tái)服務(wù)器才會(huì)識(shí)別該操作來自于人,而不是穩(wěn)定的腳本程序。
雖然滑動(dòng)驗(yàn)證碼相比之前的驗(yàn)證碼是一個(gè)進(jìn)步,但破解驗(yàn)證碼的方式也在跟著進(jìn)步。
2010 年,日本京都大學(xué)的研究人員向外界公布了滑動(dòng)驗(yàn)證碼,并于 2012 年投入商用。
2014 年,馬德里康普斯頓大學(xué)的研究人員就宣布他們破解了滑動(dòng)驗(yàn)證。
如今,加入了學(xué)習(xí)模型的智能腳本機(jī)器人也能通過學(xué)習(xí)人的滑動(dòng)軌跡,通過做出變速,折返、抖動(dòng)等行為軌跡來模仿人類,騙過服務(wù)器。
行為軌跡類的驗(yàn)證碼還有更簡(jiǎn)單無感的方式,點(diǎn)擊驗(yàn)證,直接點(diǎn)擊按鈕,服務(wù)器通過收集檢測(cè)用戶的環(huán)境信息來判斷是真人還是腳本機(jī)器人。
這無疑是目前所有驗(yàn)證碼中用戶體驗(yàn)最好的,但它也并非絕對(duì)安全,而且還存在用戶隱私泄露的風(fēng)險(xiǎn)。
短信驗(yàn)證和掃臉認(rèn)證
現(xiàn)在,短信驗(yàn)證已經(jīng)成為最常見的驗(yàn)證方式之一。
在老狐的手機(jī)短信中,兩類短信最多。
一類是驗(yàn)證碼短信,一類是需要發(fā)送“ TD ”才能退訂,但退訂后又還能收到新短信的垃圾營(yíng)銷短信,而最實(shí)用的快遞簽收短信只能排在第三。
短信驗(yàn)證通過綁定手機(jī)號(hào)碼來確認(rèn)該用戶是否是本人,跳出了網(wǎng)絡(luò)這一維度,調(diào)用了外部設(shè)備,安全程度比以上幾種驗(yàn)證碼有所提升。
但驗(yàn)證碼短信恰恰成了這種驗(yàn)證方式的薄弱環(huán)節(jié)。
不法分子可以通過建立偽基站,截取用戶短信驗(yàn)證碼,獲得登錄甚至交易權(quán)限。
又或者,通過詐騙獲取用戶的驗(yàn)證碼。
另一方面,短信驗(yàn)證碼又是最不友好的驗(yàn)證方式之一,尤其是手機(jī)不在的時(shí)候,還要找手機(jī),解鎖、記住驗(yàn)證碼,再輸入驗(yàn)證碼,這是我最討厭驗(yàn)證碼的時(shí)刻。
如今,一些對(duì)安全要求較高的驗(yàn)證通道已經(jīng)卷向了掃臉驗(yàn)證,需要對(duì)著手機(jī)前后移動(dòng),調(diào)整角度,眨動(dòng)眼睛才能登錄。
然而這種看似安全的方式也不是絕對(duì)安全,百度搜索可看到許多掃臉認(rèn)證被破解的信息。
驗(yàn)證碼的另類敵人
這時(shí)老狐不禁想:我們普通用戶登錄個(gè)賬號(hào)怎么就這么麻煩。
本質(zhì)上而言,驗(yàn)證碼技術(shù)的是網(wǎng)站維護(hù)人員與黑客攻擊者之間的競(jìng)爭(zhēng)。
雙方你追我趕,驗(yàn)證碼的技術(shù)在 20 年里已經(jīng)多次迭代。
從最簡(jiǎn)單的輸入字母到需要調(diào)動(dòng)用戶攝像頭的刷臉驗(yàn)證,破解技術(shù)也從曾經(jīng)的 OCR 發(fā)展到如今的 AI。
然而,最受傷的卻是我們這些普通用戶,驗(yàn)證方式逐漸復(fù)雜,意味著我們要在驗(yàn)證碼上花更多時(shí)間和更多手段。
驗(yàn)證碼要面對(duì)的敵人,并不僅僅是腳本機(jī)器人或技術(shù)頂級(jí)的黑客,還有毫無技術(shù)含量的人類。
一些不法分子建立了驗(yàn)證碼破解平臺(tái),將驗(yàn)證碼打包發(fā)送至平臺(tái),以非常低廉的價(jià)格雇傭一批人。
人工輸入正確驗(yàn)證碼答案,并建立數(shù)據(jù)庫,用來破解驗(yàn)證碼,這個(gè)方法簡(jiǎn)單粗暴卻有效。
AI 也學(xué)會(huì)了這一方式。
據(jù)媒體報(bào)道,一個(gè)測(cè)試 AI 的機(jī)構(gòu)發(fā)現(xiàn) OpenAI 的 GPT4 會(huì)假裝成一個(gè)視障人員,讓人類幫他輸入驗(yàn)證碼。
沒錯(cuò),AI 甚至學(xué)會(huì)了欺騙人類免費(fèi)幫它勞動(dòng)。
面對(duì)越來越接近人類的 AI,區(qū)分人類和機(jī)器人將會(huì)變得越來越困難,驗(yàn)證碼只會(huì)更加復(fù)雜繁瑣。
而作為一個(gè)普通的網(wǎng)絡(luò)用戶,老狐只希望輸入驗(yàn)證碼的方式能簡(jiǎn)單一點(diǎn)。
參考資料:
《復(fù)旦大學(xué)肖仰華:12306 的驗(yàn)證碼已不再安全,未來屬于智能驗(yàn)證碼》雷鋒網(wǎng)
Ya H, Sun H, Helt J, et al.Learning to Associate Words and Images Using a Large-scale Graph[J]. 2017.
Yan, J., & El Ahmad, A. S.(2008, October). A Low-cost Attack on a Microsoft CAPTCHA. In Proceedings ofthe 15th ACM conference on Computer and communications security (pp. 543-554).ACM.
Hernandezcastro C J, Rmoreno MD, Barrero D F. Side-Channel Attack against the Capy HIP[C]// InternationalConference on Emerging Security Technologies. IEEE, 2014:99-104.
編輯:木易