PowerScan
TC

瀏覽器指紋:網站實際讀取了什麼

瀏覽器指紋 · 閱讀約 10 分鐘 · 作者:PowerOps

圖片:Unsplash

逐一檢視網站蒐集的各項數值,從 canvas、WebGL 到音訊、字型、螢幕和時區,以及為什麼連貫的身分勝過隨機化的身分。

瀏覽器指紋辨識,是靠瀏覽器回報的數值,而不是它儲存的任何東西,來識別一個瀏覽器的做法。完全不需要 Cookie。瀏覽器只是回答任何網頁都被允許提出的問題,而這些答案合在一起,就足以獨特到能被再次認出。

會被蒐集的數值

大多數指紋辨識指令碼都是從同樣幾個面向讀取。

顯而易見的

與繪圖相關的

人們說到指紋辨識時指的就是這些數值,因為它們是間接的。網頁要求瀏覽器畫出某些東西,然後精確讀回實際畫出的結果。

與網路相關的

為什麼把每個欄位都隨機化是錯誤的直覺

直覺的防禦方式是每次造訪都改變所有東西。這會適得其反,原因有二。

第一是矛盾。隨機化的欄位彼此並不知道對方的存在。User-Agent 宣稱是 Windows,旁邊的 WebGL 轉譯器字串卻是只有 Apple 硬體才有的,這比任何單一數值本身都是更強的訊號。真實的機器內部是一致的;只有人造的機器才會自相矛盾。

第二是不穩定。每次造訪都回報不同裝置的帳號,描述的是任何真人都不可能擁有的東西。隨時間保持一致,才是一般使用者的樣子。

設定檔的身分涵蓋哪些面向

面向處理方式
User-Agent 與平台一起產生,使宣稱的平台與周邊數值相符
螢幕與像素比依設定檔固定,取自真實顯示器實際回報的尺寸
時區與地區設定依設定檔設定,並與它使用的網路路徑相符
Canvas、WebGL 與音訊給予穩定的設定檔專屬處理,每次開啟都完全相同
字型依設定檔配置,與設定檔宣稱的平台一致
WebRTC受到限制,不會與設定檔的網路路徑相互矛盾

檢查你自己的成果

開啟一個設定檔,造訪指紋測試頁面。有幾個網站會免費公布它們讀到的數值。值得檢查的兩件事,也許和你預期的不同:

  1. 各項數值彼此一致嗎?平台、字型、顯示卡字串和時區,應該描述的是同一台合理的機器。
  2. 和上次一樣嗎?關閉設定檔,再開啟一次,重新載入測試。數值會在兩次開啟之間變動的設定檔並不穩定,而穩定性才是重點所在。

測試頁面上的稀有度分數是其中最沒用的數字。它是拿你與該頁面的訪客比較,而這些訪客絕大多數都是正在測試防偵測瀏覽器的人。

所有文章 · 開始掃描