訂閱以接收新文章的通知:

Cloudflare 的 CAPTCHA 終結之路

2022/04/01

閱讀時間:10 分鐘
The end of the road for Cloudflare CAPTCHAs

我們無需再重複強調 CAPTCHA 提供了糟糕的使用者體驗這一事實。之前在這篇部落格中以及其他地方無數次對此進行了詳細討論。CAPTCHA 的建立者之一公開哀嘆說,他「無意中建立了一個系統,該系統以十秒的增量浪費了數百萬小時的最寶貴資源:人類大腦週期。」我們不喜歡 CAPTCHA,您也不會喜歡。

因此我們決定停止使用 CAPTCHA。透過使用反覆平台方法,我們在過去一年中已將選擇提供的 CAPTCHA 數量減少了 91%

在我們討論我們如何做到以及您如何提供幫助之前,讓我們先從一個簡單的問題開始。

為什麼還在使用 CAPTCHA?

如果每個人都認為 CAPTCHA 如此糟糕,如果 15 年來一直有人呼籲廢除它,如果建立者後悔建立它,為什麼它仍然被廣泛使用?

令人沮喪的事實是,儘管存在解決 CAPTCHA 的服務,但 CAPTCHA 仍然是區分真實人類使用者和機器人的有效工具。當然,這在易用性方面帶來了巨大的權衡,但通常 CAPTCHA 的替代方案是封鎖或允許流量,這本質上會增加誤判或漏報。在增加錯誤和糟糕的使用者體驗 (CAPTCHA) 之間進行選擇時,許多網站都會選擇 CAPTCHA。

CAPTCHA 也是一個安全的選擇,因為許多其他網站都使用它們。他們將濫用回應委託給第三方,並透過簡單的整合移除網站的風險。使用最常見的解決方案幾乎不會給您帶來麻煩。隨插即用,一勞永逸。

最後,CAPTCHA 很有用,因為它長久以來一直具有已知且穩定的基線。多年來,我們一直在追蹤一個名為 CAPTCHA(或驗證)解決率的指標。CAPTCHA 解決率是解決的 CAPTCHA 數量除以頁面載入數量。對於此用途而言,嘗試解決 CAPTCHA 失敗或未嘗試都算失敗,因為無論哪種情況,使用者都無法存取他們想要存取的內容。我們發現這個指標對於任何特定網站來說通常都是穩定的。也就是說,如果解決率為 1%,那麼隨著時間的推移,它往往會保持在 1%。我們還發現,解決率的任何變化(上升或下降)都是正在發生攻擊的強大指標。客戶可以掃描記錄以監控解決率變化,然後調查可能發生的情況。

我們已經嘗試了許多 CAPTCHA 替代方案,包括我們自己的 Cryptographic Attestation。然而,迄今為止,任何一種替代方案都未能達到 CAPTCHA 的廣泛採用程度。我們認為,嘗試以單一替代方案取代 CAPTCHA 是主要原因。當您替換 CAPTCHA 時,您將失去解決率的穩定歷程記錄,並且做出決策變得更加困難。如果您從解讀文字轉向選擇影像,您會得到截然不同的結果。您怎麼知道這些結果是好是壞?因此,我們採取了不同的方法。

多個解決方案,而不是一個

我們沒有嘗試單方面棄用 CAPTCHA 並用單一替代方案取代 CAPTCHA,而是建立了一個平台來測試多種替代方案,看看哪種方案最有可能取代 CAPTCHA。我們將此稱為 Cloudflare Managed Challenge。

Managed Challenge 是比 CAPTCHA 更聰明的解決方案。它將是否提供視覺拼圖的決定推遲到流程中從瀏覽器獲得更多資訊後的某個時間點。以前,Cloudflare 客戶只能選擇 CAPTCHA 或 JavaScript 驗證作為安全或防火牆規則的動作。現在,Managed Challenge 選項將根據驗證期間表現出的用戶端行為以及我們從訪客處收到的遙測資料,決定向訪客展示視覺拼圖或其他證明是否為人類的方式。客戶只是告訴我們,「我希望貴方 (Cloudflare) 在認為必要時採取適當的行動來驗證此類流量。

藉助 Managed Challenge,我們可以根據個人訪客/瀏覽器調整實際的驗證結果。因此,我們可以微調驗證本身的難度,避免向超過 90% 的人類請求展示視覺拼圖,同時向表現出非人類行為的訪客提出更困難的驗證。

當訪客遇到 Managed Challenge 時,我們首先執行一系列小型非互動式 JavaScript 驗證,收集有關訪客/瀏覽器環境的更多訊號。這意味著我們在請求發出時部署瀏覽器內偵測和驗證。根據訪客的特徵以及我們掌握的有關訪客的初始資訊來選擇驗證。這些驗證包括但不限於工作量證明、空間證明、Web API 探測以及偵測瀏覽器 Quirks 和人類行為的各種驗證。

它們還包括機器學習模型,可以偵測先前能夠通過 CAPTCHA 的最終訪客的共同特徵。這些初始驗證的計算難度可能因訪客而異,但目標是快速執行。透過使用來自機器人偵測的訊號和資料,Managed Challenge 也整合到 Cloudflare 機器人管理Super Bot Fight Mode 中。

在執行非互動式驗證後,我們評估收集到的訊號。如果透過這些訊號的組合,我們確信訪客可能是人類,則無需採取進一步的動作,並且訪客將被重新導向到目標頁面,無需任何互動。然而,在某些情況下,如果訊號很弱,我們會向訪客呈現一個視覺拼圖,以證明他們為人類。在 Managed Challenge 的背景下,我們也正在嘗試其他證明為人類的隱私保護方法,以繼續減少 Managed Challenge 使用視覺拼圖步驟的時間。

我們去年開始測試 Managed Challenge,最初,我們從一系列驗證中進行選擇,其中之一是 CAPTCHA。一開始,絕大多數情況下仍然使用 CAPTCHA。我們將相關新驗證的解決率與現有的、穩定的 CAPTCHA 解決率進行了比較。因此,我們將 CAPTCHA 解決率作為我們改進 CAPTCHA 替代方案的目標,並隨著時間的推移變得越來越好。該驗證平台讓我們的工程師能夠輕鬆建立、部署和測試新型驗證,而不會影響客戶。當一個驗證被證明沒有用時,我們就簡單地棄用它。當它被證明有用時,我們會增加它的使用頻率。為了保留真實情況,我們還隨機選擇一小部分訪客來始終解決視覺拼圖以驗證我們的訊號。

Managed Challenge 的效能優於 CAPTCHA

該驗證平台現在具有與先前使用的 CAPTCHA 相同的穩定解決率。

使用反覆平台方法,我們將所提供的 CAPTCHA 數量減少了 91%。這只是開始。到今年年底,我們將把 CAPTCHA 作為驗證的使用率減少到不到 1%。透過為幾乎所有訪客跳過視覺拼圖步驟,我們能夠將訪客在驗證中花費的時間從平均 32 秒減少到平均僅 1 秒來執行我們的非互動式驗證。我們也看到了客戶流失率的改善:我們的遙測表明,與傳統 CAPTCHA 操作相比,身為人類的訪客放棄 Managed Challenge 的可能性降低了 31%

如今,Managed Challenge 平台在許多驗證之間輪換。一個 Managed Challenge 執行個體由許多子驗證組成:其中一些是已建立且有效的,而另一些則是我們正在嘗試的新驗證。所有這些對於人類來說都比 CAPTCHA 更快、更容易完成,幾乎總是不需要訪客的互動。

Cloudflare 的 Managed Challenge 取代 CAPTCHA

我們現在已在整個 Cloudflare 網路中部署了 Managed Challenge。任何時候我們向訪客顯示 CAPTCHA 時,都是透過 Managed Challenge 平台進行的,並且僅作為確認我們其他驗證也有效執行的基準。

所有 Cloudflare 客戶現在都可以選擇 Managed Challenge 而不是 CAPTCHA 作為任何防火牆規則的回應選項。我們也更新了儀表板,以鼓勵所有 Cloudflare 客戶做出此選擇。

您會注意到,我們將 CAPTCHA 選項的名稱變更為「舊版 CAPTCHA」。這更準確地描述了 CAPTCHA 是什麼:我們認為人們不應該使用的過時工具。因此,Cloudflare 網路中 CAPTCHA 的使用量大幅下降,而 Managed Challenge 的使用量卻大幅增加。

如上所述,目前 CAPTCHA 佔 Managed Challenge 解決次數的 9%(淺藍色),但到今年年底,這一數字將減少到低於 1%。您還會看到上面的灰色條,它顯示我們的客戶何時選擇顯示 CAPTCHA 作為對防火牆規則觸發的回應。我們希望這個數字為零,但好消息是,63% 的客戶現在在建立具有驗證回應動作的防火牆規則時,選擇 Managed Challenge 而不是 CAPTCHA。

我們預計這個數字會隨著時間的推移而進一步增加。

如果您使用的是 Cloudflare WAF,請立即登入儀表板並查看所有防火牆規則。如果您的任何規則使用「舊版 CAPTCHA」作為回應,請立即變更!請選擇「Managed Challenge」回應選項。您將為使用者提供更好的體驗,同時保持與目前相同的保護層級。如果您目前不是 Cloudflare 客戶,請繼續關注可以減少您自己使用 CAPTCHA 的方法。

我們保護整個企業網路,協助客戶有效地建置網際網路規模的應用程式,加速任何網站或網際網路應用程式抵禦 DDoS 攻擊,阻止駭客入侵,並且可以協助您實現 Zero Trust

從任何裝置造訪 1.1.1.1,即可開始使用我們的免費應用程式,讓您的網際網路更快速、更安全。

若要進一步瞭解我們協助打造更好的網際網路的使命,請從這裡開始。如果您正在尋找新的職業方向,請查看我們的職缺
CAPTCHA (TW)WAF (TW)Security (TW)Bots (TW)Product News (TW)繁體中文

在 X 上進行關注

Reid Tatoris|@reidtatoris
Benedikt Wolters|@worengawins
Cloudflare|@cloudflare

相關貼文

2023年12月18日 下午2:00

將 Turnstile 與 Cloudflare WAF 整合以驗證 fetch 請求

透過編輯或建立啟用「Pre-Clearance」的新 Turnstile 小工具,Cloudflare 客戶現在可以使用 Turnstile 在頁面 HTML 載入時發出驗證,並強制所有有效回應都具有有效的 Turnstile 權杖...

2023年9月29日 下午1:00

Cloudflare 不使用 CAPTCHA;所有人皆可免費使用 Turnstile

現在,Cloudflare 已經不再使用 CAPTCHA,我們希望加速 CAPTCHA 在網際網路上的消亡。我們很高興地宣佈,Turnstile 已正式上市,並且 Turnstile 的「受管理」模式現已完全免費提供,所有人皆可無限使用...