瀏覽器設定檔與隔離:分開帳號到底是什麼意思

「隔離」是大家用來描述讓瀏覽器身分彼此分開的詞,而它涵蓋了好幾件不同的事。本文把它們分開談,因為容易做到的那一件,並不是真正重要的那一件。
儲存隔離
瀏覽器設定檔有自己的 Cookie、本機儲存空間、快取、歷史紀錄、已儲存的密碼與擴充功能。兩個設定檔看不到彼此的 Cookie,所以網站無法透過儲存把它們連起來。每個主流瀏覽器都支援多個設定檔,這一層級的隔離已經解決了。如果網站能看到的只有這些,要把帳號分開,只需要點一下「新增設定檔」。
網路隔離
使用同一個位址的兩個設定檔,會從同一個地方連入。當網站看到兩個帳號同時從同一個住宅位址連入,它就得知了某些事;如果時區和語言也一致,它得知的就更多。網路隔離意味著每個設定檔都有自己的路由,通常是代理,而且這條路由承載一切:HTTP、WebRTC,以及在可能的情況下還有 DNS。代理只涵蓋 HTTP 的設定檔,帳面上是隔離的,實際上卻是相連的。
指紋隔離
這是困難的部分。同一台機器上、使用相同瀏覽器版本的兩個設定檔,會產生相同的 Canvas 雜湊值、相同的音訊雜湊值、相同的渲染器字串、相同的執行緒數量、相同的螢幕幾何與相同的字型清單。從網站的角度來看,它們是一台機器配上兩個 Cookie 罐。要讓它們看起來像兩台機器,瀏覽器必須針對每個設定檔,一致地為這些屬性回報不同的值。
失敗通常出在一致性上。這些值必須描述一台真實存在的機器:一個作業系統、隨它出貨的 GPU、彼此搭配的螢幕大小與像素比、User-Agent,以及彼此吻合的 Client Hints 與 navigator.platform,還有屬於該作業系統的字型。它們必須在多次造訪之間保持不變,因為每天都在變的指紋本身就是一種訊號。而且它們必須經得起網站在不同來源之間所做的比對:User-Agent 對渲染器、時區對位址、WebRTC 候選項對請求。
「隱藏」錯在哪裡
封鎖一切不是隔離,而是另一種指紋。對 Canvas、音訊、WebGL 與 WebRTC 全都回傳「無法使用」的瀏覽器,看起來就像隱私工具,那是一個小而容易辨認的群體。運作良好的設定檔,目標恰恰相反:看起來像一台普通、無聊、完全可讀取、所有訊號都彼此吻合的機器。成功的條件不是診斷結果什麼都沒顯示,而是它顯示出一台合理的機器,且沒有任何不一致。
如何檢查設定檔
在設定檔中開啟診斷頁面,用網站的角度來讀它。渲染器與作業系統相符嗎?時區與位址相符嗎?WebRTC 只暴露代理的位址,還是什麼都沒暴露?重新載入:雜湊值保持不變嗎?接著開啟第二個設定檔,確認其數值與第一個不同。像 PowerScan 這樣的頁面會並排顯示這些資訊、標出不同的比對項目,而且什麼都不儲存,所以檢查可以重複進行,也不留任何痕跡。
關於本站不做哪些宣稱的說明
PowerScan 不會替真實性打分數、不偵測代理,也不判定瀏覽器是否為機器人。這些判斷需要網頁腳本沒有的資料,而為它們顯示一個數字只是猜測。它做的是讀取網站所讀的同樣訊號,並指出它們不一致的地方。這才是你能採取行動的部分。

