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

HarmonyOS5云服務(wù)技術(shù)分享--登錄郵件功能整理
HarmonyOS5云服務(wù)技術(shù)分享--手機號登錄教程
硬件輔助驗證(HAV) 對軟件驗證的價值
芯華章以AI+EDA重塑芯片驗證效率

秒驗:重構(gòu)APP用戶體驗與運營效率
新思科技推出基于AMD芯片的新一代原型驗證系統(tǒng)
解鎖SoC “調(diào)試”挑戰(zhàn),開啟高效原型驗證之路

快速部署原型驗證:從子卡到調(diào)試的全方位優(yōu)化

調(diào)用云服務(wù)認證體系
我們需要怎樣的硬件驗證產(chǎn)品

評論