為何指紋式訪客 ID 能撐過清除 Cookie、無痕模式與 VPN——哪些訊號才是真正讓它揮之不去的關鍵。
清除 Cookie、開啟隱私視窗、打開 VPN——許多網站依然認得出你。這並不是 Bug。持久訪客 ID 通常根本不是儲存在你裝置上的檔案;而是每次造訪時,根據你瀏覽器與硬體的特徵重新計算出來的數值,所以根本沒有東西可以刪除。
重點整理
- 持久訪客 ID 通常是從穩定的裝置/瀏覽器訊號(Canvas、WebGL、字型、硬體)衍生而來,而不是儲存在 Cookie 裡——所以「清除瀏覽資料」根本沒有東西可以移除。
- 隱私與無痕視窗會清空本機儲存空間,卻不會動到你的算繪指紋,因此網站依然能認出同一台底層裝置。
- VPN 改變的是你的 IP 位址,而不是你的瀏覽器或硬體——支撐這個 ID 的指紋並不會跟著 IP 一起改變。
- 有些追蹤指令碼會刻意把同一組 ID 複製到 Cookie、localStorage、IndexedDB 與基於快取的儲存空間中,讓刪除其中任何一份副本都無法重置它——這種手法稱為復生(respawning)。
- 你可以測試自己的抗性:在清除資料、切換到隱私模式或連上 VPN 的前後分別執行指紋檢測,比較兩次的 ID 是否相同。
兩種截然不同的「訪客 ID」
並非所有訪客 ID 的建構方式都相同,而這個差異正好解釋了為什麼清除瀏覽器資料有時能重置追蹤、有時卻不能。
儲存式 ID 是伺服器產生一次、寫入 Cookie、localStorage 或類似用戶端儲存空間的隨機值。它的存活期完全取決於該儲存空間——刪掉 Cookie,ID 就跟著消失。這正是大多數隱私工具設計來對付的類型,也是為什麼「清除 Cookie」過去曾是相當有效的建議。
指紋衍生式 ID 則不同:網站不會把數值寫進你的裝置,而是根據你的瀏覽器與硬體本來就會透露的資訊——Canvas 算繪、WebGL 算繪器字串、已安裝字型、螢幕與硬體並行數值、音訊處理的細微差異等——計算出一個雜湊值。完整的訊號清單,以及為什麼組合足夠多訊號就能讓多數瀏覽器幾乎獨一無二,請參見我們的瀏覽器指紋技術指南。由於這一切都不會寫入任何儲存空間,你的裝置上根本沒有東西是「清除瀏覽資料」碰得到的。這個 ID 不是被儲存下來的——而是在你下次造訪時,根據相同的輸入再次被辨認出來。
商業身分識別與反詐騙服務供應商(Fingerprint 的 visitorId 就是這種模式知名的例子)正是仰賴這項特性:一個穩定的識別碼之所以能跨工作階段持續比對同一裝置,正是因為它從未待在某個 Cookie 罐裡等著被清空。
哪些訊號真的能撐過清除動作
並非每一項指紋輸入的持久性都相同。一個實用的區分方式是:你能用設定切換的東西 對比 來自硬體與驅動程式的東西:
| 訊號 | 能撐過 Cookie/儲存空間清除嗎? | 原因 |
|---|---|---|
| Canvas 與 WebGL 雜湊值 | 能 | 源自 GPU/驅動程式的算繪結果,而非儲存的資料 |
| 已安裝字型清單 | 能 | 來自作業系統,而非瀏覽器的儲存空間 |
| 音訊指紋 | 能 | 源自音訊處理堆疊的訊號處理 |
| 硬體並行數、螢幕規格 | 能 | 每次都即時從裝置讀取 |
| Cookie、localStorage、IndexedDB | 不能(預設情況下) | 會被「清除瀏覽資料」明確清空 |
| 基於快取的超級 Cookie | 通常能,除非快取也一併清除 | 搭便車於快取行為之上,而非「清除資料」按鈕鎖定的儲存 API |
算繪與硬體訊號正是讓指紋衍生式 ID 得以持久存在的原因,因為它們是從裝置本身重新運算出來的,而非從某個檔案讀回。這也是為什麼它們最難防範——你無法像刪除 Cookie 一樣,「刪掉」你 GPU 的算繪特性。
超級 Cookie:刻意讓儲存式 ID 陰魂不散
有些追蹤指令碼做得更絕,會刻意對抗清除動作。這種手法常被稱為復生(respawning):同時把同一組 ID 寫進好幾個各自獨立的儲存空間——Cookie、localStorage、IndexedDB,甚至是像 ETag 這類 HTTP 快取機制,伺服器可以透過回傳 ETag 值來悄悄確認這是回頭客。如果你只清除了 Cookie 卻沒動到快取,指令碼就會讀取倖存的副本,再把它重新寫回你剛剛清空的那些儲存空間。
由資安研究者 Samy Kamkar 打造、知名的概念驗證專案 evercookie 正是示範了這個概念:把識別碼重複儲存在盡可能多的瀏覽器儲存機制中,就是為了讓清除其中任何單一一種,都還能從其他機制復原這組 ID。這是理解「光清除 Cookie」從來就不是完整防禦手段的一個很好的參考案例——甚至早在指紋技術讓儲存本身變得不再必要之前就是如此。
瀏覽器也做出了反制,設計出能一次清除某網站全部儲存資料的機制——參見 MDN 的 Clear-Site-Data 標頭,它讓網站(或注重隱私的瀏覽器設定)能指示瀏覽器一併清空該來源網站的 Cookie、快取與儲存空間,藉此堵住復生手法所利用的漏洞。然而,這對前面提到的指紋衍生式 ID 完全無效——當識別碼從一開始就沒被儲存過,也就沒有「網站資料」可以清除。
為什麼隱私模式無法重置它
隱私瀏覽模式的設計目標,是解決一個本機層面的問題:視窗關閉後,不要在這台裝置上留下痕跡。它們會把 Cookie 與儲存空間隔離進一個關閉後即丟棄的暫用容器,這正是為什麼儲存式 ID 在全新的隱私視窗裡會被重置。
但你的 Canvas 算繪、WebGL 算繪器字串、字型清單與硬體特徵,並不會因為你開了一個隱私分頁就改變——不管怎樣,它們都來自同一顆 GPU、同一套作業系統與同一批已安裝軟體。一個依賴指紋衍生式 ID 的網站,在隱私視窗裡看到的訊號跟你平常視窗裡的一模一樣,因此能把兩個工作階段連結成同一位訪客。有些網站甚至更進一步,直接偵測出你正處於隱私模式——通常是利用儲存配額 API 的怪異行為——具體機制請參見網站如何偵測無痕與隱私瀏覽模式。
為什麼 VPN 同樣無法重置它
VPN 純粹在網路層運作:它改變的是伺服器看到的 IP 位址,通常也會改變表面上的地理位置。這對抵擋以 IP 為基礎的追蹤與地理定位確實有用,但對瀏覽器或裝置自己回報的任何資訊都毫無影響。你的 Canvas 雜湊值、WebGL 算繪器、字型與螢幕規格,會原封不動地穿過 VPN 通道,因為 VPN 從來不會碰到產生這些數值的瀏覽器行程。
所以換伺服器或換供應商,並不會讓你得到一組「全新」的指紋衍生式 ID——你得到的只是綁定在同一套底層裝置訊號上的新 IP。甚至可以說,如果 IP 每隔幾分鐘就在不同國家之間跳來跳去、而指紋的其餘部分卻紋絲不動,這種模式本身就會被某些反詐騙系統標記為可疑。
隱私上的取捨
持久訪客 ID 並非全然是敵對性的技術——讓它難以清除的那些特性,同樣也讓它在防詐騙與帳號濫用偵測上派得上用場,畢竟服務方希望即使裝置謊報了自己的 Cookie,仍能認出這是同一個回頭裝置。但代價是,同一套機制一旦對準的是一般訪客而非詐騙者,就變成了一種一般隱私控制手段(清除 Cookie、開啟隱私模式、使用 VPN)都碰不到的跨工作階段追蹤。
這種不對稱性,正是為什麼「我清過歷史紀錄了」並不能證明你真的重新開始,也是為什麼真正有意義的防禦,是去改變訊號本身——像 Tor 這種指紋一致化的瀏覽器,或像 Brave 這種隨機化的瀏覽器——而不是去動那些訊號被寫入的儲存空間。我們的瀏覽器指紋技術指南對這兩種做法都有更深入的介紹;瀏覽器擴充功能也值得仔細檢視,因為一個粗心的擴充功能本身就可能增加額外的追蹤面——安裝任何新擴充功能之前,請先參閱瀏覽器擴展的隱私風險。
如何測試自己的抗性
要知道你目前的設定是否真的能抵擋持久 ID,最快的方法就是拿它跟自己比較:
- 在你平常使用的瀏覽器中執行 BrowserInsight 的指紋檢測,記下 Canvas/WebGL/音訊數值,以及整體的匿名性評分。
- 清除所有網站資料後,重新載入檢測。如果同樣的雜湊值再度出現,那就代表它們從一開始就沒有被儲存過——而是從你的裝置重新運算出來的。
- 在隱私/無痕視窗中重複一次,再連上 VPN 重複一次。如果數值依然與第一次相符,就代表底層指紋——以及任何建立在它之上的 ID——都沒有改變。
由於一切都在你自己的瀏覽器中於用戶端執行,測試過程中這些資料完全不會離開你的裝置。
常見問題
清除 Cookie 能移除指紋式訪客 ID 嗎?
不能。指紋衍生式 ID 並沒有儲存在你裝置上的任何地方——它是每次你被偵測到時,根據你瀏覽器與硬體特徵重新計算出來的。清除 Cookie、快取或網站資料,並沒有任何東西可以刪除。
VPN 能給我一組全新的訪客 ID 嗎?
不能。VPN 改變的是你的 IP 位址,而不是你的瀏覽器或裝置。指紋衍生式 ID 是由算繪、字型與硬體訊號建構而成的,這些訊號穿過 VPN 通道時完全不會改變。
隱私模式對指紋辨識完全沒用嗎?
並非完全沒用,但作用有限。視窗關閉時,它確實能可靠地清除本機儲存式 ID,但它不會改變指紋衍生式 ID 所仰賴的算繪與硬體訊號,因此這些訊號仍能把你的隱私工作階段跟平常的工作階段連結起來。
到底什麼才能真正阻止持久訪客 ID?
改變的必須是底層訊號,而不是儲存空間。一款會把指紋標準化的瀏覽器(如 Tor),或是每個工作階段都隨機化指紋的瀏覽器(如 Brave),能移除 ID 所仰賴的穩定輸入。光清除 Cookie 做不到這件事。
總結
一個能撐過清除 Cookie、隱私模式與 VPN 的持久訪客 ID,並不是繞過了你的隱私控制手段——它只是建立在這些控制手段觸及不到的另一個層次上。儲存式 ID 活在 Cookie 裡,會回應「清除瀏覽資料」;指紋衍生式 ID 則活在你裝置的算繪與硬體特徵裡,每次造訪都會重新運算一次。搞清楚你面對的是哪一種,是防禦它的第一步——而在每次採取防禦措施前後檢查自己的指紋,是唯一能確認防禦是否真的奏效的方法。
推薦閱讀:


