想讓你少看「驗證碼」的 WEI API,為什麼被瀏覽器廠商公開反對?

2023-08-21     少數派

原標題:想讓你少看「驗證碼」的 WEI API,為什麼被瀏覽器廠商公開反對?

你在上網的時候,有沒有因為網絡環境不穩定,連著被問過好幾次是不是真人?

從數字到字母、拖動拼圖旋轉角度、選完所有包含消防栓的圖片、按順序點擊了「麻辣香鍋」,最後還要手動框選「我不是機器人」,網頁加載的圖標轉了兩圈,它邀請你再選一遍所有帶公交車的圖片。

圖 / YouTube

究其原因,其實和網站保護自己不被機器人的湧入衝垮,以及防止網站內容被機器垃圾灌滿有關,背後是一個共同的問題——網站並不能直接知道新來的訪客是人是鬼。

2023 年 4 月 25 日,Google 的幾位員工在 Github 公開了一份文檔,主題是「對網絡環境完整性的解釋」。這份文檔介紹了他們的新設計:網絡環境完整性 API(Web Environment Integrity, WEI)。該 API 將允許網站通過第三方檢測用戶的瀏覽器是否「可信」,以檢測訪問網站的是否是機器人,也可以檢測瀏覽器是否被修改過。

和之前 Google 討論推出的 Topics API、FLoC 一樣,WEI API 引發了廣泛的討論,瀏覽器廠商 Mozilla、Vivaldi、Brave 以及自由軟體基金會直接公開反對這個 API,認為它破壞了網際網路的開放性和公平性。另一些瀏覽器插件開發者認為,這個功能可以被用來阻止廣告攔截插件。

面相省事又和善的 WEI API 為什麼能激起如此激烈的拒絕?它到底做錯了什麼?

WEI 的目標是什麼?可以解決什麼問題?

根據 Google 官方的說法,WEI 有 4 個目標:允許網站評估訪問者設備、軟體和流量的真實性;提供一種兼具對抗性、可持續性的反濫用解決方案;與此同時,無需啟用新的跨站用戶跟蹤技術;並繼續允許瀏覽器在沒有證明的情況下正常瀏覽網絡。

可以認為,前 2 個目標是 WEI 的主要業務目標,而後 2 個目標則表達了 Google 針對 WEI 可能導致的新問題,提前表達的立場。

Google 表示 WEI 可以解決很多具體的問題,比如檢測社交媒體操縱和虛假參與,即刷票、刷贊;檢測廣告中的非人類流量,避免廣告主的廣告曝光給了機器人;檢測網絡釣魚;檢測批量帳戶創建和批量帳戶劫持;檢測網絡遊戲中的大規模作弊行為;檢測用戶的數據是否因為設備被感染而面臨風險;檢測通過密碼猜測的帳戶接管嘗試,即暴力窮舉密碼。

一言以蔽之,WEI 最主要的功能,就是可以幫助網站檢測用戶的設備是否安全、瀏覽器是否可信、使用瀏覽器的是否是真人。

WEI 如何工作?

在 2023 年 8 月,Android 版的 Chrome 就已經支持了 WEI。WEI 包含在 Chromium 之中——這是 Google 主導開發的開源瀏覽器,常見的瀏覽器比如 Google Chrome、Microsoft Edge,以及上文提到的持反對態度的 Brave,都是基於 Chromium 開發的。

WEI 的工作流程,如下圖所示:

WEI 的工作流程

假設,用戶在 Android 手機上使用 Chrome 瀏覽器,訪問一個已經使用了 WEI API 的網頁。那麼當瀏覽器開始加載網頁的時候,網頁就可以調用 WEI API,向第三方證明者(也就是 Google Play)驗證當前環境是否可信,然後根據驗證結果來對用戶展示不同的網頁內容。

從網站開發者的角度,調用 WEI API 需要客戶端和伺服器的共同參與。先在客戶端請求環境完整性證明,將其發送到自己的伺服器。然後在伺服器上,使用證明者的公鑰驗證證明信息是否有效,再根據有效的證明信息做出決策。

現在的網站是怎麼做驗證的?

既然 WEI 解釋了自己的目的,要看它是否合理,就要看看它提出的這些問題,現在都是如何處理的,我們就能知道它的誕生能不能帶來些實際的改善。

一、設備是否安全?

網頁可以通過獲取瀏覽器 User-Agent(UA)的方式,獲取宿主設備的作業系統、CPU 架構等有限的信息,比如:

Mozilla/5.0(Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36(KHTML, like Gecko) Chrome/115.0.0.0Safari/537.36

網頁無法獲取瀏覽器的宿主設備的全部信息,比如無法獲取你的設備安裝了哪些程序,也無法知道設備是否安全。

但是,以 Android 平台為例,App 可以調用系統 API 做到以上事情,比如獲取你的 App 列表,判斷你的手機是否由於 Root 而不再安全了。

瀏覽器通過 WEI API 開放了更大的權限給網站,讓網站可以從第三方,也就是其他 App 或服務,比如 Google Play 得知設備是否安全

在 Android 平台上,網站判斷設備是否安全的信息來源

因此,如果沒有 WEI,現在的網站開發人員確實無法單純通過瀏覽器來確認設備是否安全。

二、瀏覽器是否安全?

同樣地,現在的瀏覽器沒有相關的 API 來向網站開發人員報告自己是否安全。而網頁的開發者,只能利用能獲取到的有效信息,來判斷用戶所使用瀏覽器的狀況,比如通過 User-Agent 知道用戶使用的是什麼瀏覽器、版本號是多少。

因此,如果沒有 WEI,網站開發人員無法通過瀏覽器來確認瀏覽器是否安全。

三、使用瀏覽器的是否是真人?

前面我們提到了各種驗證碼。一般來說,簡單的驗證碼有可能是網站自己開發的,比如讓用戶輸入圖片中的字符。而複雜的驗證碼,幾乎都是網站使用了第三方的服務,比如選擇圖片、移動拼圖等。

這些第三方服務可能會先分析用戶的行為,同時使用第三方 Cookie 等可用於跨站跟蹤的信息進行分析,如果覺得用戶的行為比較像真人,則給出較為簡單的驗證碼,甚至直接跳過驗證碼;如果覺得用戶的行為比較像機器人,則會展示驗證碼,如果驗證不通過甚至還會增加驗證碼的難度。

除了驗證碼之外,還有其他輔助手段可以進行真人檢測。比如,一些爬蟲會使用無頭瀏覽器比如 Puppteer,而無頭瀏覽器在不進行配置的情況下,User-Agent 內會有明顯的 HeadlessChrome標識。再比如,網站可以獲取用戶的 IP 地址並做出判斷,如果 IP 地址對應著雲服務廠商的數據中心或者 IDC 機房,那麼用戶是真人的機率就會相對較低了。

因此,與上面的 2 個問題不同,如果沒有 WEI,網站也有大量的方式可以進行真人檢測,只不過需要自己進行檢測方案的設計和實現,或者使用第三方的驗證碼方案。需要注意的是,第三方驗證碼普遍使用可用於跨站跟蹤用戶的 Cookie。

WEI 可能會帶來什麼問題?

好,既然 WEI 看起來確實有用武之地,為什麼它會被業界如此旗幟鮮明地抵制呢?

影響用戶的瀏覽體驗

WEI 宣稱的一些目標,從技術的角度,可能無法對網站開發者形成強有力的約束,更像是建議性質。

網站在瀏覽器內顯示的內容,完全由網站開發者控制,因此網站完全可以做到如果沒有獲取 WEI 證明,就不向用戶展示正常的內容。所以「繼續允許瀏覽器在沒有證明的情況下正常瀏覽網絡」這個目標能否實現,完全取決於網站開發者怎麼做。因此,用戶的瀏覽體驗可能會因為 WEI 而受到損害。

當然,即使沒有 WEI,網站依舊可以通過其他辦法來影響用戶體驗:比如檢測到用戶開啟了廣告屏蔽插件,就不向用戶展示正常的內容,或者展示引導用戶關閉廣告屏蔽插件的橫幅。

產生新的跨站跟蹤問題

Google 坦誠地表示,WEI 面臨著一些需要解決的挑戰和威脅,其中的核心就是用戶識別與跨站跟蹤問題。

根據 WEI 的機制,第三方負責出具瀏覽器環境是否可信的證明。第三方為了出具有效、可靠的證明,就必然會收集、分析用戶的信息。因此,首要的挑戰來自第三方。第三方證明者返回的證明如果包含較高的信息熵,則有可能被用來唯一標識用戶,並被用於大規模跟蹤用戶。

此外,如果不同的網站開發者在站點之間重複使用第三方的證明,那麼就和第三方 Cookie 一樣,可以對用戶進行跨站跟蹤。

Google 正在研究相應的對策,來降低發生以上問題的風險。對於瀏覽器、網站和用戶,Google 建議瀏覽器公開對證明者的資質要求,允許網站評估不同證明者的效用,允許用戶選擇使用哪些證明者。對於第三方證明者,Google 建議應該公開聲明他們所證明的內容。此外,Google 在尋找驗證證明是否具備低信息熵的方法,同時嘗試對所有第三方證明者的證明強制執行頂級分區,讓不同網站無法使用 WEI 來跨站跟蹤用戶。

(類似的討論在隱私沙盒引入歸因報告 API時就出現過。)

對其他瀏覽器或爬蟲不公平

瀏覽器廠商普遍存在這樣的擔憂,由於「第三方證明者」現在還只有一個 Google Play,未來這個證明者的認證可能也有 Google 的參與,Google 完全可以利用 WEI API 干擾其他瀏覽器的運行。除了本文開頭提到的 Vivaldi,其他持反對意見的瀏覽器也發表了自己的觀點。

Firefox 開發方 Mozilla 在 Github表示:任何實現通用標準的瀏覽器都自動成為 Web 的一部分,如果試圖限制這些選擇,不利於 Web 生態系統的開放性,也不利於用戶。與此同時,檢測網絡欺詐和無效流量是一個棘手的問題,Mozilla 有興趣幫助解決。然而針對這個問題,Google 提出的 WEI 有明顯的缺點,可能會阻礙許多現有的機器人網絡訪問,比如自動化測試、網頁存檔、搜尋引擎的內容抓取。針對這些場景,WEI 提出的保障措施不太可能有效。

Vivaldi 瀏覽器在官方 Blog中表示:如果一個實體有權決定哪些瀏覽器值得信任,哪些瀏覽器不值得信任,那麼在默認情況下,任何新的瀏覽器都不會被信任,直到它們以某種方式向證明者證明它們是值得被信任的。最終,任何不支持 WEI API 的瀏覽器都會被排除在網絡之外。

Brave 的 CEO 在社交平台上表示:Brave 瀏覽器雖然基於 Chromium 開發,但是不會附帶 WEI API,就像禁用或取消 Google 放入 Chromium 中的許多其他垃圾一樣。Brave 也在官網發布了一篇文章,解釋為什麼要拒絕 WEI。

Google 也在一開始的文章中就指出,以下絕不是 WEI 的目標:在客戶端驗證簽名;干擾瀏覽器及其插件的正常功能;在不安全的上下文(非 HTTPS 連接)使用 WEI。其中的第 2 條,算是提前回應了瀏覽器與插件開發者的擔憂,但 Google 還是沒能給出真正稱得上「解決方案」的回答。

總結

2022 年全年,Google 廣告業務的營收占總營收的 80% 左右,可以說它就是一家「廣告公司」。Google 自然會希望保護廣告主的利益,WEI 可以檢測訪問廣告的非人類流量,避免廣告主花冤枉錢給機器人看廣告的問題。

對用戶來說,從隱私保護的角度,Google 希望網站不要自己跟蹤、分析用戶,交給瀏覽器去做這件事。但網站和第三方證明者依舊有可能利用新的機制跟蹤用戶。而如果網站通過 WEI 證明的不同結果來展示不同的內容,用戶的瀏覽體驗可能收到損害。更何況即使沒有 WEI,這樣的事已經在發生了。

其他瀏覽器廠商則是擔心 Google 通過 WEI API,形成自己既是運動員(瀏覽器)又是裁判員(第三方證明者)的局面,阻礙其他瀏覽器的正常運作與未來發展。它說自己不會這麼干,可誰能保證它會像自己已經逝去的口號一樣「不作惡」呢?

手握 Chromium 的 Google,可能還要在探索 Cookie 替代方案的路上再多走幾年了。

原文連結:

https://sspai.com/post/81970?utm_source=wechat&utm_medium=social

作者:Shiau & 北鴞

責編:北鴞

/ 更多熱門文章 /

文章來源: https://twgreatdaily.com/zh-sg/ef1c1a0c1d7ee9caa1df17bafafd1af7.html