自從個人電腦在消費性電子市場獲得發展勢頭以來,區分電腦和人類的全自動公共圖靈測試 (CAPTCHA) 已在網路瀏覽中根深蒂固。幾乎自從人們上網以來,網路開發人員就一直在尋找阻止垃圾郵件機器人的方法。 CAPTCHA 服務區分人類活動和機器人活動,以將機器人拒之門外。不幸的是,它的方法不夠精確。為了保護人類,開發人員讓殘疾人無法存取大部分網路。
驗證碼等身份驗證方法通常使用影像分類、謎題、音訊樣本或基於點擊的測試來確定使用者是否是人類。雖然挑戰的類型有詳細記錄,但其邏輯並非公眾所知。人們只能猜測如何「證明」他們是人類。
什麼是驗證碼? 驗證碼是一種反向圖靈測試,採用挑戰-反應測試的形式。例如,如果它指示用戶“選擇所有帶有樓梯的圖像”,他們必須從欄桿、車道和人行道中挑選出樓梯。或者,他們可能會被要求輸入他們看到的文本,添加骰子麵的總和,或完成滑動拼圖。 基於圖像的驗證碼造成了網路使用者最令人沮喪的共享體驗——當其中只有一小部分有問題的物件時,決定是否選擇一個正方形。
無論採用哪種方法,計算機或演算法最終都會確定考生是人還是機器。這種身分驗證服務已經衍生出許多分支,包括 reCAPTCHA 和 hCAPTCHA。它甚至導致了整個公司的創建,例如 GeeTest 和 Arkose Labs。 Google擁有的自動化系統 reCAPTCHA 要求用戶點擊標有「我不是機器人」的複選框進行身份驗證。它在背景運行自適應分析來分配風險評分。 hCAPTCHA 是一種基於影像分類的替代方案。 其他身份驗證方法包括多重身份驗證 (MFA)、QR 碼、臨時個人識別碼 (PIN) 和生物識別。它們不遵循挑戰-響應公式,但具有基本相似的目的。 這些分支的目的是比原來的更好,但它們往往無法滿足現代的可訪問性標準。以 hCaptcha 為例,它使用 cookie 讓您完全繞過質詢回應測試。理論上這是一個好主意,但在實踐中行不通。 您應該透過電子郵件收到一次性代碼,並透過簡訊發送到特定號碼。用戶報告收到無窮無盡的錯誤訊息,迫使他們完成標準文字驗證碼。僅當網站在配置期間明確啟用它時,此功能才可用。如果未設置,您必須完成無法識別螢幕閱讀器的圖像挑戰。 即使初始過程有效,後續身份驗證也依賴第三方跨站點 cookie,而大多數瀏覽器會自動封鎖該 cookie。此外,程式碼會在短時間內過期,因此如果您需要很長時間才能進入下一步,則必須重做整個過程。 為什麼團隊使用驗證碼和類似的身份驗證方法? 驗證碼很常見,因為它很容易設定。開發人員可以對其進行編程使其出現,並且它會自動進行測試。這樣,他們可以專注於更重要的事情,同時仍然防止垃圾郵件、詐欺和濫用。這些工具本應讓人類更容易安全地使用互聯網,但它們常常阻止真實的人登入。 這些測試總體上導致用戶體驗很差。一項研究發現,截至 2023 年,用戶在超過 5,120 億次 reCAPTCHA v2 會話上浪費了超過 8.19 億個小時。儘管如此,機器人仍然盛行。機器學習模型可以在幾分之一秒內解決基於文字的驗證碼,準確率超過 97%。 2024 年對 Google reCAPTCHA v2 的一項研究(儘管推出了 reCAPTCHA v3,但仍被廣泛使用)發現,機器人可以以高達 100% 的準確率解決圖像分類驗證碼,具體取決於它們負責識別的對象。研究人員使用了免費的開源模型,這意味著不良行為者可以輕鬆複製他們的工作。 為什麼 Web 開發人員應該停止使用驗證碼? 像 CAPTCHA 這樣的身份驗證方法存在可訪問性問題。機器學習的進步迫使這些服務變得越來越複雜。即便如此,它們並非萬無一失。機器人得到它比人們做的更正確。研究表明,他們可以在 17.5 秒內完成 reCAPTCHA,準確率達到 85%。人類需要更長的時間並且不太準確。 許多人未能通過驗證碼測試,並且不知道自己做錯了什麼。例如,提示使用者「選擇所有有交通燈的方塊」看起來很簡單,但如果一根桿子在另一個方塊中,事情就會變得複雜。他們應該選擇該框,還是演算法會這樣做? 儘管機器人的能力已經大幅成長,但人類的能力卻保持不變。隨著測試變得越來越困難,他們不太願意嘗試。一項調查顯示,近 59% 的人在經歷過幾次糟糕的體驗後會停止使用某種產品。如果身份驗證過於麻煩或複雜,他們可能會完全停止使用該網站。 人們可能會因為各種原因(包括技術原因)而未能通過這些測試。如果他們封鎖第三方 cookie、執行本機代理程式或有一段時間沒有更新瀏覽器,則無論嘗試多少次,他們都可能會不斷失敗。 CAPTCHA 的驗證問題 由於上述原因,大多數類型的驗證碼本質上是無法存取的。對於殘疾人來說尤其如此,因為這些挑戰反應測試的設計並未考慮到他們的需求。一些常見問題包括: 與視覺效果和螢幕閱讀器使用相關的問題 螢幕閱讀器無法讀取標準的視覺驗證碼,例如扭曲的文字測試,因為混亂、扭曲的單字不是機器可讀的。影像分類和滑動拼圖方法同樣難以存取。 在 2023 年至 2024 年進行的一項 WebAIM 調查中,螢幕閱讀器使用者認為驗證碼是最有問題的項目,將其排在不明確的連結、意外的螢幕變更、缺少替代文字、無法存取的搜尋和缺乏鍵盤可訪問性之上。十多年來,它的榜首位置基本上保持不變,說明了它難以進入的歷史。 與聽力和音頻處理相關的問題 音訊驗證碼相對不常見,因為 Web 開發最佳實踐建議不要自動播放音訊並強調使用者控制項的重要性。但是,音訊驗證碼仍然存在。聽力困難或耳聾的人在嘗試這些測試時可能會遇到障礙。即使使用輔助技術,故意的音訊失真和背景噪音也使得這些樣本對於患有聽覺處理障礙的個人來說難以理解。 與運動和靈活性相關的問題 對於運動障礙或身體殘疾的人來說,需要運動和敏捷技能的測試可能具有挑戰性。例如,手顫抖的人可能會覺得滑動拼圖很困難。此外,圖像分類測試會載入更多圖像,直到沒有符合標準的圖像被留下,這可能會帶來挑戰。 與認知和語言相關的問題 隨著驗證碼變得越來越複雜,一些開發人員開始轉向需要創造性和批判性思維相結合的測試。那些要求使用者解決數學問題或完成拼圖的遊戲對於患有閱讀障礙、計算障礙、視覺處理障礙或認知障礙的人來說可能具有挑戰性。 為什麼輔助科技無法彌補這一差距 驗證碼是專門為人類解釋和解決而設計的,因此螢幕閱讀器和免持控制等輔助技術可能沒有什麼幫助。 ReCAPTCHA 尤其會帶來問題,因為它會分析後台活動。如果它將輔助設備標記為機器人,它將提供可能無法存取的驗證碼。 即使這項技術可以彌補這一差距,網頁開發人員也不應該指望它能做到這一點。行業標準規定他們應該遵循通用設計原則,以使他們的網站盡可能易於訪問和實用。 如果驗證碼是一種有效的安全工具,它的可訪問性問題是可以原諒的,但它遠非萬無一失,因為機器人比人類更能正確識別。為什麼要繼續使用一種有效且對殘疾人造成障礙的方法? 有更好的選擇。 可存取身份驗證的原則 人類應該始終勝過演算法的想法已經過時了。有更好的身份驗證方法,例如多重身份驗證 (MFA)。到 2027 年,雙重認證市場的價值預計將達到 267 億美元,凸顯了其受歡迎程度。這個工具比驗證碼更有效,因為它可以防止未經授權的訪問,即使使用合法憑證也是如此。
確保您的 MFA 技術易於使用。您應該發送推播通知或短信,而不是讓網站訪客轉錄複雜的程式碼。依靠驗證碼自動填充來自動捕獲並輸入代碼。或者,您可以引入「記住此裝置」功能來跳過受信任裝置上的身份驗證。 蘋果的雙重認證方法就是這樣設計的。受信任的裝置會自動顯示六位數的驗證碼,因此他們無需搜尋它。出現提示時,iPhone 使用者可以點擊移動鍵盤上方顯示的建議進行自動填入。
單一登入是另一種選擇。這種會話和使用者身份驗證服務允許人們使用一組登入憑證登入多個網站或應用程序,從而最大限度地減少重複身份驗證的需要。 一次性「魔術連結」是 reCAPTCHA 和臨時 PIN 碼的絕佳替代品。用戶無需記住程式碼或解決難題,而是點擊按鈕。避免強加最後期限,因為根據 WCAG 成功標準 2.2.3,使用者不應面臨時間限制,因為殘障人士可能需要更多時間來完成特定操作。 或者,您可以使用 Cloudflare Turnstile。它無需顯示驗證碼即可進行身份驗證,大多數人甚至不需要選中復選框或點擊按鈕。該軟體的工作原理是在幕後發出一個小的 JavaScript 挑戰,以自動區分機器人和人類。 Cloudflare Turnstile 可以嵌入到任何網站中,使其成為標準分類任務的絕佳替代方案。 可存取的身份驗證設計的測試和評估 測試和評估可存取的替代身份驗證方法至關重要。許多設計在紙面上看起來不錯,但在實踐中卻行不通。如果可能,收集實際使用者的回饋。公開測試版可能是最大化可見度的有效方法。 請記住,一般的無障礙注意事項不僅適用於殘疾人。他們也包括那些神經分化、無法使用行動裝置或使用輔助科技的人。確保您的替代設計考慮到這些人。
實際上,你不可能創造一個完美的系統,因為每個人都是獨一無二的。許多人很難遵循多步驟流程、解方程式、處理複雜指令或記住密碼。雖然通用的網頁設計原則可以提高靈活性,但沒有單一的解決方案可以滿足每個人的需求。 無論您使用哪種身份驗證技術,您都應該預先向使用者提供多個身份驗證選項。他們最了解自己的能力,因此讓他們決定使用什麼,而不是試圖過度設計適用於每種邊緣情況的解決方案。 透過設計變更解決可訪問性問題 手部顫抖的人可能無法完成滑動拼圖,而患有音訊處理障礙的人可能無法處理失真的音訊樣本。但是,您不能簡單地用替代方案替換驗證碼,因為它們通常同樣難以存取。 例如,對於那些精細運動控制能力較差的人來說,QR 碼可能很難掃描。視障人士可能很難在螢幕上找到它。同樣,生物辨識技術可能會對臉部畸形或運動範圍有限的人造成問題。解決可訪問性問題需要創造性思維。 您可以先存取 Web Accessibility Initiative 的輔助功能教程,以便開發人員更能理解通用設計。儘管這些教程更專注於內容而不是身份驗證,但您仍然可以利用它們來發揮自己的優勢。 W3C 集團關於驗證碼無法存取的註釋草案提供了更多相關指引。 入門就像研究最佳實踐一樣簡單。了解基礎知識至關重要,因為無障礙網頁設計沒有通用的解決方案。如果您想優化可訪問性,請考慮從實際訪問您網站的人那裡獲取回饋。 進一步閱讀
“驗證碼:前景與挑戰”,Darko Brodić 和 Alessia Amelio “在圖像上設計可訪問的文本:最佳實踐、技術和資源”,Hannah Milan “尋找最好的驗證碼”,David Bushell 「WCAG 3.0 提議的評分模型:轉變無障礙評估”,米哈伊爾·普羅米茨基 (Mikhail Prosmitskiy)