多年來,我們一直在撰寫相關文章,表明 CAPTCHA 讓我們抓狂。人類大約有 15% 的時間會放棄 CAPTCHA 拼圖,而且令人惱火的是,CAPTCHA 對機器人而言比對人類而言更容易解決。在過去三年半的時間裡,我們一直致力於為人類打造更好的體驗,這與阻止機器人一樣有效。截至本月,我們已將 Cloudflare 發佈的所有 CAPTCHA 替換為 Turnstile,這是我們新的 CAPTCHA 替代方案(如下圖所示)。Cloudflare 絕對不會出於任何理由再向任何人發出視覺拼圖。
現在我們已經在 Cloudflare 中消除了 CAPTCHA,我們希望所有人都可以輕鬆地執行相同的操作,即使他們不使用其他 Cloudflare 服務。我們已將 Turnstile 與我們的平台解耦,以便任何平台上的任何網站營運商只需新增幾行程式碼即可使用它。我們很高興地宣佈 Turnstile 現已全面推出,而 Turnstile 的「受管理」模式現已完全免費供所有人無限使用。
對人類來說容易,對機器人來說困難,對每個人來說都私密
Turnstile 的簡單複選框包含大量內容,以確保每個人都可以輕鬆使用、保護使用者隱私並阻止機器人。為每個人創造更好的驗證意味著,無論使用什麼瀏覽器,每個人都能獲得同樣出色的體驗。由於我們不採用視覺拼圖,因此視力不佳或失明的使用者也可以像其他人一樣獲得易於使用的驗證流程。
對於我們來說,避免退回到音訊 CAPTCHA 來提供每個人都可以存取的體驗尤其重要。對於人類來說,音訊 CAPTCHA 通常比視覺 CAPTCHA 要糟糕得多,只有 31.2% 的音訊驗證能夠讓三人就正確的解決方案達成一致。免費語音轉文字服務的盛行也使得機器人能夠輕鬆解決音訊 CAPTCHA,最近的一項研究表明,機器人可以在超過 85% 的嘗試中準確解決音訊 CAPTCHA。我們很自豪地宣佈,Turnstile 符合 WCAG 2.1 AA 級標準,同時消除了對音訊 CAPTCHA 和視覺 CAPTCHA 的需求。
我們還使 Turnstile 注重隱私。Turnstile 符合電子隱私指令、GDPR 和 CCPA 合規要求,以及我們自己的隱私承諾的嚴格要求。此外,Cloudflare 的 FedRAMP Moderate 授權包「Cloudflare for Government」現在包含 Turnstile。我們不依賴追蹤使用者資料(例如某人造訪過的其他網站)來確定使用者是人類還是機器人。我們的業務是保護網站,而不是銷售廣告,因此營運商可以在知道使用者資料安全的情況下部署 Turnstile。
我們一直在強調通過 Turnstile 驗證有多_容易_,所以您可能會問它如何阻止機器人。如果機器人能夠比我們更快找到顆粒狀相片中所有帶有人行橫道的影像,那麼它當然也可以選中一個複選框。機器人絕對可以選中一個方塊,而且它們甚至可以在這樣做時模仿人類滑鼠移動的不穩定路徑。對於 Turnstile 來說,選取某個方塊的實際行為並不重要,重要的是我們在訪客選取該方塊時分析的背景資料。我們透過執行一系列瀏覽器內測試、檢查瀏覽器特性、原生瀏覽器 API 並要求瀏覽器通過輕量級測試(例如:工作量證明測試、空間證明測試)來證明它是一個真正的瀏覽器,從而發現並阻止機器人。目前的 Turnstile 部署每天都會檢查數十億訪客,我們能夠識別機器人在嘗試通過這些測試時表現出的瀏覽器異常情況。
一年多來,我們使用我們的 Managed Challenge 在 CAPTCHA 和我們自己的 Turnstile 驗證之間輪換,以比較我們的有效性。我們發現,即使根本不要求使用者進行任何互動,Turnstile 也與 CAPTCHA 一樣有效。在我們確定結果在應對機器人製造商的回應方面卓有成效後,我們就用我們自己的核取方塊解決方案取代了 CAPTCHA 驗證。當我們看到潛在的可疑訊號時,我們會進行這項額外的測試,它可以幫助我們提供更高的安全層。
Turnstile 非常適合打擊欺詐
與所有免費提供服務的網站一樣,Cloudflare 也看到了相當一部分的自動帳戶註冊,其中可能包含「新帳戶欺詐」,即不良行為者自動建立許多不同的帳戶來濫用我們的平台。為了幫助打擊這種濫用行為,我們推出了 Turnstile 隱形模式來保護我們自己的註冊頁面。本月,我們使用 Turnstile 封鎖了超過 100 萬次自動註冊嘗試,沒有報告誤判,也沒有看到依賴此註冊流程的自助服務帳單發生任何變化。
Turnstile 測試版的經驗教訓
在過去的十二個月裡,我們很高興看到有許多人渴望嘗試、依賴 Turnstile 並將其整合到他們的 Web 應用程式中。看到開發人員社群也接受 Turnstile,我們感到非常高興。我們在此處列出了一些社群建立的 Turnstile 整合,包括與 WordPress、Angular、Vue 和 Cloudflare 推薦的 React 庫的整合。我們聽取了客戶的意見反應,並新增了對 17 種新語言、新回呼和新錯誤代碼的支援。
已有 76,000 多名使用者註冊,但迄今為止我們最大的單一測試是歐洲歌唱大賽的最終投票。Turnstile 在超過 2500 萬個 Cloudflare 網站的驗證頁面上執行。在歐洲歌唱大賽的最終投票之前,Cloudflare 一直都是最大的 Turnstile 消費者。而在投票的那一小時內,歐洲歌唱大賽投票網站的驗證流量超過了 2,500 萬個網站上驗證頁面的使用量總和!Turnstile 順利地應對了巨大的流量高峰。
雖然 Turnstile 測試期間進展順利,但我們也遇到了一些學習的機會。我們最初拒絕透露 Turnstile 驗證失敗的原因。畢竟,如果壞人知道我們在尋求什麼功能,那麼在我們引入新的偵測手段之前,機器人就更容易欺騙我們的驗證。然而,在 Turnstile 測試期間,我們看到了一些合法使用者無法通過驗證的場景。這些場景讓我們清楚地認識到,我們需要公開說明為什麼驗證無法幫助因修改瀏覽器而導致被 Turnstile 捕獲的個人。我們現在發佈詳細的用戶端錯誤代碼,以揭示驗證失敗的原因。兩種情況多次出現,這出乎我們的意料:
首先,我們看到使用時間至少 10 年的桌上型電腦經常出現主機板電池過期的情況,而主機板電池不良的電腦經常會出現時間不準確的情況。這是因為如果沒有主機板電池,桌上型電腦的時鐘將在電腦關閉時停止運作。Turnstile 會檢查電腦的系統時間,以偵測網站營運商何時意外設定了要快取的驗證頁面,因為快取驗證頁面將導致其無法通過。不幸的是,同樣的檢查無意中發現了那些只需要更新時間的人。當我們看到此問題時,我們現在會向終端使用者顯示一條明確的錯誤訊息,以更新他們的系統時間。我們希望從一開始就不必暴露錯誤,因此我們正在努力開發新方法來檢查不會影響真實人員的快取內容。
其次,我們發現一些注重隱私的使用者經常要求他們的瀏覽器超越標準做法來保護他們的匿名性。這包括變更其使用者代理程式(機器人也會這麼做來逃避偵測),並完全阻止第三方指令碼執行。由這種行為引起的問題現在可以在 Turnstile 小工具中清楚地顯示,因此這些使用者可以立即瞭解問題並認真選擇是否允許其瀏覽器通過驗證。
儘管我們在 Cloudflare 擁有一些最敏感、最完善的監控系統,但我們自己並沒有發現這兩個問題。我們需要與受該問題影響的使用者交談,以幫助我們瞭解問題所在。展望未來,我們希望確保我們始終保持直接的通訊管道。我們正在 Turnstile 小工具中推出新的意見反應表單,以確保快速緊急地解決未來的任何極端情況。
Turnstile:所有人普遍免費使用
宣佈 Turnstile 全面上市意味著 Turnstile 現已完全投入生產,可以透過我們在受管理模式下的可見小工具免費無限制地使用。Turnstile 企業方案包括 SaaS 平台支援和不含 Cloudflare 標誌的可見模式。對於自助服務客戶,預計將於 2024 年初推出按使用量付費的進階功能選項。使用者可以繼續存取 Turnstile 的進階功能,限制為低於 100 萬個網站驗證請求,就像測試期間的情況一樣。如果您一直在等待嘗試 Turnstile,請前往我們的註冊頁面並建立帳戶!