網站對你了解多少

所謂訊號,就是網站無需徵求許可就能讀取的關於訪客的任何資訊:瀏覽器在正常瀏覽中主動交出的值、連線本身的屬性,或者你很久以前設定好就忘了的偏好。單個訊號叫不出你的名字,但合在一起,它們構成一幅足夠細緻的画像,能認出你、大致定位你,並猜出你喜歡怎樣瀏覽。瀏覽器指紋測試把這幅画像寫成一段話,讓你在造訪的最初一秒裡,以網站看你的方式讀一遍自己。本文逐層走過這段話——連線、裝置、瀏覽器與安靜的偏好——並以網站仍然看不到的東西收尾。它與VPN 洩漏與偽裝檢查相配,後者追問的是:這幅画像是否與你的 VPN 想講的故事相符。

段落先行

打開任何現代網站,在你點擊、捲動或敲下任何字元之前,頁面已經拼好了一幅關於你的工作画像。它大致知道你似乎身在世界何處、你大概讀什麼語言、你手裡拿的是哪類裝置、螢幕有多大,以及你的設定看起來普通還是罕見。這一切都不需要許可彈窗、登入或 Cookie 橫幅。它來自每個瀏覽器為抓取和算繪頁面而進行的普通協商:連線本身、每個請求附帶的標頭,以及為讓頁面適應你的裝置而存在的 JavaScript API。

指紋測試頂部的那段話,正是為了讓這種拼裝變得可見。它不展示一堆原始技術數值,而是寫出一句你會認作對一個人的描述的話:某個人在某個城市、在某個網路上、用某類機器上的某個瀏覽器、偏好某種語言和外觀。那句話中每個填好的值,都能向下追溯到它的訊號來源,所以你不僅能核對結論是什麼,還能核對它是怎樣得出的。當某個值缺失時,段落會誠實地說明——而那種缺席,正如最後一節所解釋的,本身就是資訊。

如果沒有哪個值是秘密,這為什麼重要?因為關鍵在於組合。單是螢幕尺寸就描述了數百萬人。螢幕尺寸加上 GPU 型號、時區、語言順序、支援的編解碼器清單和網路類型,人群就會急劇縮小。網站把這種組合用於正當工作——詐欺檢查、防濫用、認出一次登入是否眼熟——廣告商則用它在 Cookie 被清除後仍能認出回訪者。在你能看到自己的組合之前,你無法評判任何一種用途,而這正是這個測試的目的。

你的連線說了什麼

第一層是你的連線,它的標題是你的 IP 位址。你聯絡的每個伺服器都能看到它,因為它需要知道把回覆發到哪裡。僅憑這一個位址,網站就能查出不少東西:來自商業資料庫的近似地理位置、擁有該位址區段的自治系統號(ASN)和組織,以及該位址屬於家庭寬頻、行動營運商、企業還是託管公司。最後這一區別本身就是訊號——從資料中心網段來的訪客,與從居民街道來的訪客,讀起來非常不同,詐欺系統會注意到。

對地理位置要謹慎看待:顯示的城市是你網路出口的城市,不一定是你的城市。資料庫把位址對映到營運商註冊和路由它們的地方,所以行動網路、企業閘道和鄉村營運商常把人定位到幾十甚至幾百公里外,偶爾還會定位到錯誤的國家。測試透過詢問不止一個追蹤端點來改善這幅圖,因為不同網路看到的出口可能不同——例如 CDN 的追蹤可能揭示那個邊緣網路實際觀察到的位址,當代理、中繼或分流隧道介入時,它可能不同。這些讀數之間的差異不是錯誤;它們是你流量實際所走路徑的地圖。

連線還會報告自己的機制:保護它的 TLS 版本和通訊協定,以及它走的是 IPv4 還是 IPv6。這一層正是 VPN 所移動的——也只有這一層。VPN 用它的出口位址取代網站看到的 IP 位址,於是城市、國家、ASN 和組織都變為 VPN 服務商的。它不會改變你的螢幕、字型、時區或語言清單。那種不匹配——連線聲稱在一個國家,而瀏覽器設定屬於另一個——正是偽裝檢查要找的東西,也是為什麼只改位址是比感覺上更弱的偽裝。

你的裝置與瀏覽器說了什麼

第二層是裝置和瀏覽器本身。最古老的訊號是 user agent 字串,即瀏覽器宣布其家族、版本和作業系統的橫幅;現代 Chromium 瀏覽器正日益凍結該字串,並把細節移入 User-Agent Client Hints,即網站可請求的型號、平台版本和架構等結構化值。它周圍還有平台名稱、報告為硬體並行數的邏輯處理器數量、近似的裝置記憶體數值和最大觸控點數——單獨看都平凡,合起來就是一幅關於你的機器類別與年代的素描。

圖形與顯示增加了長尾。你的螢幕幾何——總尺寸、可用尺寸、色深和裝置像素比——描述了你的顯示器和縮放選擇。WebGL 探測可以讀出 GPU 廠商和算繪器字串,它常直接點名具體的圖形晶片或驅動家族。Canvas 算繪、音訊處理和字型測量也類似:讓瀏覽器畫一個形狀、算繪一段文字或列舉它能顯示什麼,硬體、驅動和已安裝字型的微小差異就會產生可測量的不同結果。測試還會間接探測已安裝字型、彙總媒體裝置,以及瀏覽器能播放哪些音視訊編解碼器——每項都是一個小事實,合起來是一個幾乎沒有其他訪客能完全共享的組合。

這都不需要什麼奇異的存取權限。這些正是正當網站用來提供正確視訊格式、挑選適合你視窗的版面、或避免提供你的系統無法運行的下載的同一批 API。這種雙重用途正是讓指紋難以靠立法消除的原因:你無法在不破壞普通適配的前提下移除這種能力。你能做的是了解自己的暴露程度。罕見的組合不是過錯,但它確實意味著,清除 Cookie 對你的匿名性的幫助比你希望的要小——裝置層無需任何儲存狀態,就能在下一次造訪時重新認出同一台機器。

安靜的偏好

第三層更安靜:你的瀏覽器攜帶的偏好與設定。它報告你偏好淺色還是深色配色、你是否要求減少動態效果、你是否偏好減少資料用量或對比度調整,以及透過作業系統或瀏覽器設定作出的類似無障礙與外觀選擇。這些存在的目的是讓網站尊重它們,而大多數人設定一次就再也不想它們——這正是它們足夠穩定、能為指紋作貢獻的原因。

語言與時間更響亮。瀏覽器傳送一個有序的語言清單——不只是你的主語言,還有後備語言及其優先順序——並暴露你的系統所設的時區,以及你的地區設定中日期和數字的格式。一個只有一個常見條目的語言清單並不起眼;而一個以罕見順序排列的三種語言清單,再配上時區和日期格式,就接近簽名了。它還會交叉核對連線層:瀏覽器設在一個地區、而 IP 位址聲稱在另一個,是旅行、遠端辦公,或 VPN 出口選在與機器本身不同的國家的經典跡象。

有些偏好本是作為隱私請求設計的。Do Not Track 及其繼任者 Global Privacy Control 讓瀏覽器表明你反對追蹤或反對出售你的資料——而且 GPC 在某些司法轄區具有法律效力,這是 Do Not Track 從未有過的。實務中兩者被遵守的程度參差不齊,而傳送它們本身就是一種區分性訊號,因為這樣做的訪客相對很少。同樣的悖論貫穿這一層:Cookie 與儲存的可用性、是否提供電池 API、隱含的鍵盤配置——設定與缺席同樣在描述你,包括那些本意為保護你的設定。測試報告你的瀏覽器所說的,並對它保留的值保持沉默,所以你能看到兩面。

網站仍然看不到什麼

儘管有以上種種,界限與觸及範圍同樣重要。沒有許可彈窗,網站無法讀取你的姓名、確切地址、年齡、聯絡人、檔案、精確 GPS 位置、麥克風或攝影機。地理位置、裝置存取和通知位於明確的瀏覽器許可之後是有原因的,而一個行為良好的測試——比如這個——只讀取自由提供的內容,什麼都不索求。如果某個隨機頁面聲稱僅憑你的指紋就知道你的名字,它要麼在虛張聲勢,要麼從別處買來了那條關聯。

那個“別處”正是誠實的提醒。廣告業對你的年齡、性別、收入和興趣的自信猜測並不來自這些讀數;它們來自在許多網站和應用之間拼接起來的行為——你搜尋、觀看、購買和停留的東西——被組裝成画像並隨時間附著到識別符上。指紋在那套經濟中的角色更窄、更技術性:它幫助再次認出同一個瀏覽器,好讓行為紀錄得以延續。把這兩件事分開很重要,因為防禦方法不同:行為受帳戶、同意和追蹤規則管轄,而訊號受你的瀏覽器選擇揭示什麼管轄。

這就是為什麼缺失的訊號值得尊重。當測試說“這個瀏覽器沒有說”時,那是一項隱私功能在按預期工作,而瀏覽器在這裡是故意有所不同的:基於 Chromium 的瀏覽器通常提供更多細節,而 Safari 和 Firefox 保留、粗化或隨機化更多值,注重隱私的瀏覽器走得更遠。縮短你的段落是可能的——下面的常見問題給出了實用步驟——但目標應該是知情的選擇,而不是隱身,因為沒有任何主流設定能誠實地交付隱身。至於配套測試本身如何處理它讀取的資料,見隱私測試如何不保留資料:簡短的版本是,你的画像是在你的瀏覽器中、為你而寫的,讀取它不應要求你信任我們保留一份副本。

來源與延伸閱讀

常見問題

無痕瀏覽會改變這些值嗎?

幾乎不會。無痕視窗主要改變的是儲存內容:歷史、Cookie 和站點資料在視窗關閉時被丟棄,而且你以未登入狀態開始。你的 IP 位址、裝置訊號、螢幕、字型、時區和語言與普通視窗相同,因為它們描述的是機器和連線,而不是儲存狀態。無痕瀏覽是防備別人事後拿起你的裝置、以及隨意帳戶串擾的好工具——它不是對你所造訪網站的偽裝。

為什麼開 VPN 時城市會變?

因為那個城市從來都不是你的——它屬於網路出口。網站定位的是它們看到的 IP 位址,而用 VPN 時,那個位址屬於 VPN 伺服器,所以地理位置資料庫報告的是伺服器的城市、ASN 和組織。關掉 VPN,讀數就會彈回你營運商的出口。這也是發現不完整設定的最容易方法:如果連線層指向一個國家,而你的時區和語言清單指向另一個,偽裝就只覆蓋了 VPN 碰到的那一層。

我能讓段落更短——訊號更少嗎?

你可以縮小它,但無法抹除它。實用步驟:使用主流瀏覽器並保持預設視窗大小,而不是罕見設定;讓瀏覽器管理指紋保護(Firefox 和 Safari 預設啟用了多項,Chromium 也在增加更多);打開 Global Privacy Control;避免安裝你不需要的罕見字型和擴充功能;並用一個瀏覽器處理敏感瀏覽,好讓它的画像保持普通。要警惕激進的反指紋調整——一個高度客製化的瀏覽器往往更顯眼,而不是更不顯眼,因為幾乎沒有別人共享它那確切的組合。