CAPTCHA 從一個簡單的想法——「出一道只有人能解答的題目」——在過去二十多年間演化成多種形式,跟上 AI 與網路安全技術的快速發展。本文依時間序梳理這段歷史,以及每個階段的技術突破與局限。
1990 年代末,網際網路快速普及,電子郵件、討論區、留言板大量出現。隨之而來的是自動化濫用行為:機器人程式批量申請電子郵件帳號、發送垃圾郵件、在投票頁面刷票。
當時沒有有效的自動化解決方案,網站管理員只能依靠手動審核或 IP 封鎖來對抗,效果有限且耗費人力。一個能「自動辨別真人與機器人」的機制,成為迫切需求。
AltaVista 搜尋引擎為防止自動化程式大量提交 URL,開發了最早期的視覺測試機制——在扭曲的背景上顯示一組文字,要求使用者輸入。這是文字型 CAPTCHA 的原型,但尚未有正式名稱與系統化定義。
卡內基梅隆大學研究員 Luis von Ahn 等人正式提出「CAPTCHA」這個術語,並系統化定義了其設計原則:必須是自動生成的、基於人類能解決而機器難以解決的問題。Yahoo! 率先在帳號申請頁面大規模部署,有效阻止了自動化帳號濫用。
各種文字扭曲技術(噪點、干擾線、字型扭曲)被大量研究與部署,形成了今天我們熟悉的傳統驗證碼外觀。微軟、Google、Yahoo! 等大型網站都廣泛採用。這個時期的設計思路是:扭曲程度越強,就越難被 OCR 破解。
Luis von Ahn 推出 reCAPTCHA,同樣是文字辨識,但有一個創新:圖片來自真實的書籍掃描。一個詞已知答案(用於驗證),另一個詞是書籍中模糊難辨的掃描文字(用於 OCR 修正)。使用者在完成驗證的同時,也在幫助數位化圖書館館藏,是一個雙贏的設計。
Google 收購 reCAPTCHA 後,將其應用擴大至 Google Books、Google Street View 地址辨識等大規模數位化專案。同時,Google 開始收集使用者行為資料,為下一代 CAPTCHA 奠定基礎。
多項學術研究和商業服務陸續展示,傳統文字型 CAPTCHA 的破解準確率已能達到 90% 以上。即使是高扭曲程度的設計,配合深度學習演算法也難以抵抗。文字型 CAPTCHA 的安全性開始受到嚴重質疑,行業開始尋找替代方案。
Google 推出劃時代的 reCAPTCHA v2。表面上只是一個勾選框,背後卻在分析滑鼠移動軌跡、點擊位置的精確度、IP 信譽、瀏覽器 cookies 等數十個行為特徵。真人的行為模式(略帶不規則的滑鼠移動、人類反應時間的隨機性)與機器人有統計上的顯著差異。只有當判斷有疑問時,才會彈出圖片選擇題。這大幅降低了一般使用者的操作負擔。
reCAPTCHA v3 完全移除了使用者操作,改為持續在背景監測整個瀏覽 session 的行為,最終給出 0 到 1 的風險評分。網站管理員自行設定閾值決定是否要求額外驗證。這實現了真正的「零摩擦」體驗,但也引發了隱私方面的討論,因為它需要大範圍收集使用者行為資料。
hCaptcha、Cloudflare Turnstile 等替代方案興起,強調在不依賴 Google 服務的情況下提供同等防護。部分方案更著重隱私保護,不收集個人行為資料。與此同時,傳統文字型 CAPTCHA 仍在特定場景(如低流量網站、高競爭操作如票務)中持續被使用,因為其直觀性和不依賴外部 JavaScript 的特性仍有其優勢。
在行為分析型驗證已相當成熟的今天,傳統的文字型 CAPTCHA 仍然存在,原因包括:
另一個值得關注的趨勢是設備指紋(Device Fingerprinting):透過收集瀏覽器版本、螢幕解析度、字型清單、硬體加速能力等資訊,建立每台設備的唯一特徵,搭配行為分析共同判斷風險。這讓重複使用相同機器的自動化程式更難偽裝成新使用者。