CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart,全自動區分電腦和人類的公開圖靈測試;是 Alan Turing 提出,如果一台電腦能和人類對話而不被識別出是機器人即被認為通過圖靈測試。
CAPTCHA是一種用來區分人類訪客和自動化程式的網頁安全機制。它透過要求使用者完成電腦生成的測驗,來證明自己是真人,以防止惡意機器人進行例如垃圾評論、帳號註冊或搶票等行為。
CAPTCHA 的作用
防止垃圾內容:在網頁上,它能阻止機器人自動發送垃圾訊息或在評論區留下大量廣告。
保護帳戶:用於防止機器人大量註冊虛假帳號,提高使用者註冊的安全性。
維護公平性:在線上購票、投票等場景中,它有助於阻止機器人程式一次性購買大量票券,維護公平競爭。
Google reCAPTCHA 和 Cloudflare Turnstile 都可以稱為人機驗證技術,這類技術也可稱為:人機識別、機器人防護(Bot Protection)、自動化攻擊防護或驗證碼(較傳統的說法,但仍常用)
主要用途是防止:爬蟲、暴力破解、垃圾訊息、票券搶購機器人、DDoS 攻擊等自動化濫用行為。
政府網站服務管理規範部分條文修正對照表 - 附錄六、網頁設計參考 有提到 :
9.全自動區分電腦和人類的圖靈測試(Completely Automated PublicTuring test to tell Computers and Humans Apart,簡稱CAPTCHA)之視覺類驗證碼,建議採用具備隱私保護的CAPTCHA替代解決方案,例如 Turnstile 人機驗證。
CPTCHA常會跟MFA/2FA一起出現,所以就很容易搞混;MFA/2FA (Multi-Factor Authentication) 指的多因子認證(多因素認證 - 翻譯不同):
MFA目的:通過多個「因素」確認身份,M是多個, 2是兩個,2FA是MFA的子集。
MFA有三大因素類型:
知識因素 (Something you know):密碼、PIN
持有因素 (Something you have):手機、硬體金鑰
生物因素 (Something you are):指紋、臉部
我們在台灣目前常見的MFA實作多以TOTP為主(可能大家都有手機吧),而TOTP又以
Google Authenticator
Microsoft Authenticator
最常使用的APP.
如果您看到這裡,就一定要知道,還有一個號稱要取代 CAPTCHA 的技術 Cloudflare 的 Turnstile。
Turnstile 不像傳統 CAPTCHA 那樣依賴於視覺或聽覺謎題。它主要透過一系列非入侵式(non-intrusive)的 JavaScript 挑戰在背景運行,來驗證訪客是否為人類。這些挑戰可以根據個別訪客或瀏覽器環境進行調整;它可以在背景自動完成驗證,使用者甚至不會意識到它正在運行,或者只需要點擊一個簡單的核取方塊。
我們在推廣時的回饋是,大多數時候使用者無感(不受干擾);且Cloudflare 一貫注重隱私(不追蹤使用者數據用於廣告目的)、免費且開放使用;我們覺得更重要的一點是 - 符合 WCAG 2.1 AA 級標準。
更高的可訪問性 (Accessibility),避免了傳統 CAPTCHA 對於殘障人士的使用障礙。