Bot 保護的隱私代價:Cloudflare Turnstile 與 WebGL 指紋辨識

機器人緩解與使用者隱私之間的鬥爭因 Cloudflare Turnstile 而進入了新的衝突點。雖然 Turnstile 的設計初衷是取代繁瑣的 CAPTCHA,但其「驗證您是人類」的挑戰往往依賴瀏覽器指紋辨識——特別是透過 WebGL——來判斷訪客是真人還是自動化腳本。對於使用強化隱私瀏覽器或小眾 WebKit 引擎的使用者而言,這導致了無止盡的驗證失敗循環,實際上將他們拒於網頁世界的大部分內容之外。

WebGL 指紋辨識機制

最近的報告指出,Cloudflare Turnstile 已開始要求提供可供指紋辨識的 WebGL 數據以通過其人類驗證。WebGL (Web Graphics Library) 提供了大量關於使用者 GPU、驅動程式版本和硬體能力的資訊。由於這些細節通常是唯一的或針對特定硬體配置高度特定的,因此它們成為跨會話和網站追蹤使用者的理想指紋。

當瀏覽器為了保護使用者隱私而封鎖或隨機化這些數據時,Turnstile 經常會將該會話標記為可疑。Cloudflare 對此做法的自述非常直白:

Turnstile 使用瀏覽器指紋辨識來驗證您是人類。封鎖或隨機化指紋辨識的隱私工具會讓您的瀏覽器看起來像是一個試圖隱藏身份的機器人。暫時允許此網站進行指紋辨識將可解決此問題。

這造成了一個矛盾的局面:使用者採取越多步驟來保護其瀏覽器並減少其攻擊面,在機器人檢測演算法眼中就顯得越「可疑」。

對替代瀏覽器的影響

這種趨勢對使用非主流瀏覽器的人有特別影響。例如,基於 WebKitGTK 的瀏覽器使用者回報,他們在 Turnstile 挑戰中陷入了無限循環。由於 WebKit 預設會封鎖某些指紋辨識向量,這些瀏覽器基本上被 Turnstile 的嚴格要求給禁用了。

有趣的是,情況在不同主流瀏覽器之間有所不同:

  • Safari: 通常可以通過,因為 Cloudflare 可能提供了例外情況,或與 Safari 的特定緩解策略配合運作。
  • Firefox: 預設安裝通常可以通過,但手動啟用 privacy.resistfingerprinting(主要為 Tor Browser 設計的設定)的使用者經常發現自己被封鎖或標記。
  • Chromium Forks: 專注於隱私的 Chromium 分支,例如 Cromite,在面對 Turnstile 時一直面臨掙扎,通常需要停用特定的安全旗標才能通過挑戰。

技術辯論:安全性 vs. 隱私

社群討論凸顯了對於如何解決此問題的深刻分歧。有些人認為,在 AI 驅動的機器人時代,指紋辨識是一種必要的惡,並指出像 Proof-of-Work (PoW) 之類的替代方案在生態上成本過高,或者 IP 信譽度甚至更具侵入性。

然而,批評者認為,這種做法強迫使用者為了證明自己的身分而增加其攻擊面。正如一位使用者所指出的,Cloudflare 的實作方式阻止了使用者在「任何地方,甚至是他們不打算保護的網站上」獲得安全性。

建議的替代方案與緩解措施

目前已出現幾種技術建議,旨在不犧牲隱私的情況下繞過這些限制:

  • 更聰明的隨機化: 與其拒絕 WebGL 存取或回傳虛假數據,瀏覽器可以回應與常見且可重複的硬體模式相似的數據(例如,模擬熱門的低階 GPU)。
  • Canvas Blocking: 一些使用者發現使用 CanvasBlocker 等擴充功能可以取得成功,這可能比瀏覽器內建的 resistfingerprinting 模式使用更細微的隨機化技術。
  • Fallbacks: 有人呼籲 Cloudflare 實作更具彈性的後備方案,例如 PoW 挑戰,而不是僅僅因為缺乏指紋辨識而封鎖網站存取。

結論

向強制性指紋辨識進行轉向以進行機器人檢測,標誌著向「驗證身分」網路的邁進,這也意味著使用者只能透過被主要服務提供商識別來存取內容。對於注重隱私的使用者而言,進入現代網路的世界的入場券,正日益演變成交出其裝置的唯一硬體身分。

Sources