了解瀏覽器數位指紋識別

瀏覽器數位指紋識別是透過有系統地收集有關網頁瀏覽器的資訊,從而對使用者身份或特徵進行有根據的猜測。 每個瀏覽器的設定和功能都會建立「瀏覽器數位指紋」。 大多數瀏覽器都會無意中為每個用戶建立一個獨特的數位指紋,這可在整個網路上作追蹤。 有關瀏覽器數位指紋識別的更多詳細信息,請參閱Tor 部落格的以下文章:瀏覽器數位指紋識別:簡介和未來的挑戰Tor 瀏覽器 :提升瀏覽體驗的革新

為什麼瀏覽器數位指紋識別會威脅到線上私隱?

首先,無需得到用戶允許來收集此資訊。 瀏覽器中執行的任何腳本都能在用戶不知情的情況下悄悄建立數位指紋。

其次,如果瀏覽器數位指紋的某個屬性是獨特的,或者幾個屬性的組合是獨特的,那麼就可以在線上識別和追蹤設備。 這表示即使沒有cookies,也能通過數位指紋識別來追蹤設備。

Tor 瀏覽器如何緩解數位指紋識別

Tor瀏覽器專門技術設計,以盡量減少每個用戶在多種指標上的的數位指紋獨特性。 雖然實際上無法令所有 Tor 瀏覽器用戶都相同,但目標是減少每個可辨識「組別」指標的數量。 這個措施有效增加追蹤個別用戶的難度。

某些屬性在功能運作上是必需的,如作業系統和語言,故此不能完全隱藏或偽裝。 反之,Tor 瀏覽器限制這些屬性的變化,來降低獨特性。 例如,它限制字體枚舉並採用字元後備,利用letterboxing來標準化螢幕和視窗大小,並把要求的語言種類限制在較小的預設範圍。

Tor 瀏覽器反數位指紋識別保護,旨在令收集足夠資訊來識辨個別用戶變得更為艱鉅,從而能夠在不損害必要功能的情況下加強私隱。

Tor 瀏覽器中防數位指紋識別功能

Letterboxing

為了避免因屏幕尺寸引致的數位指紋識別,Tor瀏覽器的內容視窗會以200px × 100px 的倍數啟動。 這策略就是將所有用戶分為數組,令其更難把個別用戶分辨出來。 只要使用者不調整視窗大小(例如視窗最大化或進入全螢幕模式),這方法一直有效。 Tor 瀏覽器還針對這些情況配備了防禦數位指紋識別技術,稱為Letterboxing,這是Mozilla開發的一種技術,並 於2019 年推出。 它的原理是藉著在瀏覽器視窗添加邊距,讓視窗盡可能接近所需的尺寸,同時用戶仍然處於數個螢幕尺寸分類中,從而無法透過螢幕尺寸把他們識別出來。

簡而言之,這種技術將用戶分為特定螢幕尺寸的組別,這就更難根據螢幕尺寸來識別用戶,因為許多用戶使用相同的螢幕尺寸。

letterboxing

用戶代理和作業系統偽裝為

用戶代理字元是一個值,讓網站可以識別出不同的詳情,包括您的瀏覽器、作業系統 ( OS)、CPU 架構、供應商和版本。 由於這些資訊會暴露用戶的作業系統或裝置,因此這會成為瀏覽器數位指紋識別的攻擊向量,透過網站或追蹤器識別用戶。

為了應對這問題,Tor 瀏覽器對用戶代理進行偽裝。用戶不能選擇某個既定的作業系統,或嘗試模仿每個可能的平台。 相反,Tor 瀏覽器對用戶代理值進行標準化處理 ,降低其獨特性,避免產生虛假的私隱安全感:

  • 所有 Windows 均為 Windows 10 。
  • 所有 macOS 均為 OS X 10.15。
  • 所有 Android 均為 Android 10。
  • 所有其它系統如各種 Linux 發佈版本 (包括 Tails 與 Qubes), *BSD 和其他作業系統都歸納一起並視為 「Linux running X11」。
  • 所有其他細節(例如系統架構)也按每個平台進行標準化處理。

這種情況下,Tor 瀏覽器的數位指紋識別抵禦策略,是透過偽裝來保護用戶代理的真實值,同時確保擁有一個足夠龐大的用戶集。

用戶代理會以 HTTP 標頭的形式傳送到網站,同時也可透過 JavaScript 的 navigator.userAgent 獲取。 當這些數值不一致,就可能觸發反機器人和防欺詐系統,將 Tor 用戶視為機器人,並拒絕其請求,這就會影響 Tor 瀏覽器對於用戶的可用性。

一些私隱工具或用戶建議,把所有使用者均顯示為 Windows ,將可以提供最佳掩護。 然而,無法在所有瀏覽器環境下做到完美偽裝,往往積極數位指紋識別技術(利用字體、功能、行為、有否JavaScript等),可用來推斷硬體或作業系統的詳細情況。

Tor 瀏覽器不允許用戶選擇以哪個作業系統呈現。 這是刻意設定的:任何可供選擇的選項都只會讓使用者更加獨特,從而更易被數位指紋識別。 有限的標準化選項,可確保各用戶身份融於其中,這就是把每個人的私隱作最大保護的關鍵。

其他防數位指紋識別功能

除了letterboxing 外,Tor 瀏覽器還採用了許多其他功能來減緩瀏覽器數位指紋識別並保護用戶的私隱。 這些功能包括阻止提取Canvas圖片、NoScript 整合以及第一方隔離。 有關功能的完整列表,請參閱Tor 瀏覽器的設計與執行文件