驗證碼的演進史:如何證明自己是人類?
瀏覽網頁或登入網站時,常需要使用者輸入驗證碼,以獲得進一步瀏覽的權限。這種機制雖妨礙瀏覽網頁的順暢,但對於防止網站遭受大量垃圾資訊等問題卻十分有效。早期因為字元辨識技術尚不發達,基於文字類型的驗證碼是市場上的主流方法。然而,越來越進步的機械學習與演算法模型陸續被發展出來,文字驗證碼容易被破解,促使文字驗證碼的形式越趨複雜。此外,也出現了其他類型的驗證碼,如圖片、數學題與邏輯測試等。然而越來越複雜的驗證方式,反而容易導致使用者判讀出現錯誤。近年,網頁的驗證方式逐漸朝向簡易且快速的方向發展。
撰文|穿山甲
相信每個人都有輸入過驗證碼的經驗,為了瀏覽網頁你需要判別文字或圖片,有時還會看不懂內容遲遲無法進入,折磨到懷疑人生。其實它們真正目的是保護網站,確保使用者是人類而不是電腦。驗證碼誕生於 2000 年左右,當時駭客在各網站註冊大量帳號,對Yahoo和其他網站發送廣告、惡意內容,以及垃圾信件攻擊。為了對抗這種自動化攻擊,研究人員設計一道題目,這道題目對人類來說容易解答,電腦卻難以理解,以此區分使用者是人類抑或電腦,確保只有真正的使用者能夠通過。很快地因為驗證碼的設計,各網站的惡意攻擊事件逐漸減少。
文字驗證 數位轉變
早期驗證碼是文字與數字組合,在字元辨識並不發達的年代,這無疑是非常有效的方法,對視障使用者文字類型更出現語音播放功能。隨著影像處理、模式識別和機器學習的發展,單純的字元組合很快就被破解。因此,開始產生扭曲文字,或在文字前後添加線條與色塊來增加背景雜訊,也出現讓文字相黏或重疊的方法,以干擾攻擊方電腦的解讀。
隨著驗證碼的普及,開發者突然靈機一動,琢磨著也許可以借助每位使用者輸入驗證碼的舉動,將大量的紙本資料數位化。於是出現了兩組文字組合的驗證碼類型,一組為已知答案的文字,另一組為需要數位化的文字,如圖1所示。為了確保數位化的正確性,可以驗證已知答案的文字是否正確,再透過多位使用者回答需數位化的文字,以確認答案的一致性。後來Google買進這項技術讓全球的驗證碼使用者為其免費工作,成功將許多的紙本資料典籍數位化,也因此賺取了大把的鈔票。

圖片驗證 模型開發
在驗證碼不斷演進的同時,機械學習的發展也沒有停下腳步,據Google在2014年的資料顯示,電腦已經可以準確辨識99.8%的文字驗證碼,而使用者的通過率卻只有33%左右,顯示該種驗證碼已經失去辨別人類與電腦的初衷,因此圖片驗證碼逐漸崛起。這類驗證碼主要是讓使用者選出含有特定物體的圖片,如車輛、紅綠燈、郵箱等,這種類型的驗證碼比起文字會讓電腦更加難以辨識,如圖2所示。Google也將這種類型的驗證碼運用於訓練自己的街景程式,讓使用者識別街景的門牌或路上標示,再一次讓使用者免費訓練自己的人工智慧模型。數學問題與邏輯測試也可以是一種驗證碼型式,雖然這不像文字與圖片般使用廣泛,但這類問題對於人類來說也是相對簡單,對早期的人工智慧程式卻是要花費額外的運算能力才能理解。

驗證困難 解答不易
輸入過驗證碼的人就會知道,後來的文字驗證碼有如走火入魔般難以辨識,文字嚴重扭曲,遇到相似字符合併在一起更加難以判斷。圖片驗證碼抑是如此,遇到模糊或經過合成的圖片會讓人摸不著頭緒,圖片的選擇範圍也會讓人困惑。這陷入了身為人類卻無法證明自己是人類的窘境,這些驗證碼對於長者也不太友善。此外,駭客們也會基於「打不過就加入」的想法,雇用大量人力來輸入驗證碼,一來直接了當地破解,二來可順便協助訓練人工智慧模型。這種驗證碼農場在當時如雨後春筍般遍地出現,雖然在網上輸入驗證碼就可以賺錢,但其實時間成本過高收益過小,所以這些工作通常外包至國外執行。
驗證流程 化繁為簡
近期這些難以理解的文字與圖片驗證碼逐漸減少,取而代之的是滑動驗證碼,操作上使用者只須拖曳滑塊到指定位置即可,或是只要點選我不是機器人的方框,大幅簡化以往令人困惑且燒腦的驗證碼。這些驗證碼看似簡單但背後的原理可不是那麼容易,網站會識別你使用滑鼠的過程,依據停留時間、滑鼠移動路徑、點擊次數等,給這個過程一項分數。低於這個分數,則會再開啟第二階段的認證,以傳統的文字或圖形驗證碼認證,如圖3所示。如果電腦屏幕前的使用者是人類,則滑鼠的移動可能會出現不規則的軌跡,移動滑塊或點選方框的反應時間,也會落在一個正常區間。這類的驗證碼若交由電腦程式執行,其效果可能會又快又準,造成分數下降。網站不再判斷誰又快又準確,反而在判斷誰的行為出現些微的錯誤、反應稍慢或軌跡較為不規則,藉此來判斷誰比較像人類。Google近年推出的驗證碼甚至可以讓使用者不需要輸入任何驗證碼,記錄使用者上網時的反應作為區分,開發者認為若是真實的使用者,網上的軌跡動作不會有完美的移動,也難以有重疊的紀錄,這種持續性的監控可能會是擺脫自動化電腦程式的突破口。然而這類方法因為會追蹤使用者的操作模式,也遭受可能侵犯隱私的質疑,未來可能逐漸朝向生物辨識或網頁憑證方向進行。
無論驗證碼如何變化,它的本質始終沒有改變,這是一場人類與人工智慧的鬥智遊戲。隨著技術進步,未來的驗證碼會越趨無形,人類與電腦之間的競賽,仍將持續下去。

參考文獻
- N. T. Dinha and V. T. Hoang, “Recent advances of captcha security analysis: a short literature review,” Procedia Computer Science, vol. 218, pp. 2550–2562, 2023.
- Shivani and R. K. Challa, "Captcha: a systematic review", 2020 IEEE International Conference on Advent Trends in Multidisciplinary Research and Innovation, Dec. 2020.
- M. Guerar et al., “Gotta captcha 'em all: a survey of 20 years of the human-or-computer dilemma,” ACM Computing Surveys, vol. 54, pp. 1–33, 2021.