驗證碼機器(CAPTCHA)是非常流程的人機驗證機制,
也稱為圖靈測試,用以區分操作背後是人類或是機制,
透過驗證碼機制,可防止詐騙者和垃圾郵件出於惡意使用機器人填寫 Web 表單。
傳統的驗證碼會要求使用者輸入光學字元辨識 (OCR) 無法解釋的扭曲文字,
而較新的驗證碼技術則會根據活動來挑戰驗證人類用戶的身份。
許多網站要求用戶在登入帳戶個人資料,
或是提交註冊表單、發表評論或可能事機器人操作時進行驗證碼挑戰,
當通過測試挑戰則確認他們是人類,如失敗,則無法繼續網站/系統活動。
網際網路蓬勃發展後,各式的網站與應用服務,
開始面臨大量機器人、惡意的註冊活動,例如電子郵件、帳號等,
或是避免搜尋引擎遭植入惡意的網址連結(URL),
因此技術人員開始研究如何透過驗證碼機制來降低這類惡意活動。
透過產生隨機文字,以及光學辨識(OCR)無法識別的扭曲程度,
要求使用者在輸入框輸入識別的文字、同時點擊「我不是機器人」,
透過只有人類能夠察覺與識別的結果,降低自動化程式或機器重複行為。
reCAPTCHA v1 約於 2007 年推出,
除了使基於文字的驗證碼挑戰更難被機器人破解外,
也提高當時用於數位化紙本文字的 OCR 準確性。
隨著時間的推移,認證碼機制也同步幫助改善人工智慧和機器學習演算法,
因為透過群眾的大規模訓練,協助 AI 在監督式學習下獲得改善與反饋。
2014 年 Google 發布了 reCAPTCHA v2,
它用簡單的複選框取代文字和圖像的挑戰,
而是當使用者勾選該方塊時,reCAPTCHA v2 會分析使用者行為,
包括打字速度、cookie、裝置歷史記錄和 IP 位址等因素,
或是透過拖曳方框到指定位置的方式驗證,
因為人類的動作往往更加混亂,而機器操作的動作則可能更加精確,
藉此綜合確定使用者是否可能是人類的挑戰,
reCAPTCHA v3 於 2018 年首次推出,
取消了傳統的核取方框,採用人工智慧為主的無驗證碼 reCAPTCHA,
透過綜合的交互互動行為分析,賦予機器或人類的分數評級,
如果分數太偏向機器,則降低操作行為被執行的優先序,
或可能要求進一步完成多因子認證挑戰等等。
透過 reCAPTCHA v3 採用人工智慧的身份驗證方法,
希望能降低駭客從已完成挑戰的識別碼資料庫當中破解驗證碼題目。
驗證碼作為防止機器大量自動化存取系統服務,
可以透過偵測和預防措施提供多種常見防護用途,包括:
雖然驗證碼技術被廣泛防止機器存取,但同時也帶來顯著的缺點,包括: