淺談反瀏覽器指紋追蹤
瀏覽器指紋追蹤是在過去五年中出現的一種在網絡上追蹤用戶的方法,為了反制瀏覽器指紋追蹤行為,反瀏覽器追蹤技術也在不斷發展。
一、反瀏覽器指紋追蹤技術概述
瀏覽器指紋識別的原理是根據不同瀏覽平臺所使用的硬件類型、操作系統、瀏覽器類型、瀏覽器配置的不同,能夠構建出獨特的瀏覽器指紋。這個指紋有三個特性可以用來追蹤用戶:一、指紋的確定性,具有極低的碰撞率,至少能夠從數千臺設備中標識某一設備;二、指紋的易獲取性,在用戶在瀏覽網頁時,Web服務器可以很容易獲取指紋。隨著瀏覽器中引入更新更強大的API,指紋追蹤將變得更容易;三、指紋的穩定性,用戶***次瀏覽網頁與第N次瀏覽網頁產生的指紋是一樣的。
本文簡要介紹反瀏覽器指紋追蹤技術。反瀏覽器指紋追蹤只要打破上述指紋追蹤的三個特性即可:
- 指紋的確定性。要使兩個瀏覽平臺產生完全一樣的指紋,目前暫未發現有效方法;
- 指紋的易獲性。可以使用瀏覽器的各種設置或插件來減緩追蹤 [1],但這種方法可能會影響用戶體驗,例如無法使用Cookie和JavaScript;
- 指紋的穩定性。來自法國 INRIA Rennes大學的研究人員皮埃爾·拉普里克斯博士提出了一個解決思路[2],可以組建一個動態的瀏覽平臺,使用戶每次瀏覽網頁都產生不一樣的指紋。
并且皮埃爾通過兩種方法來打破了指紋的穩定性:
a) 利用虛擬化和模塊化架構自動組合和重新配置多個級別的軟件組件,隨機生成瀏覽環境,為每個瀏覽會話產生隨機的指紋,從而來模糊實際設備的指紋。作者開發了一個叫做Blink的原型系統[3];
b) 第二種是通過在指紋識別過程中引入足夠的噪音,打破非常特定的指紋技術(Canvas,Audio,JavaScript引擎)的穩定性,使追蹤者不能將新鮮的指紋與舊的指紋綁定在一起,從而使得跨越多個會話的跟蹤變得不可能。作者基于Firefox開發了FPRandom[4]。
本文下面來重點介紹下Blink。
二、Blink工作原理
每兩個瀏覽平臺之間或多或少都存在一些差異,追蹤者可以根據這個差異來定位追蹤用戶,所以瀏覽平臺的多樣性是瀏覽器指紋追蹤問題的根源,但同時這也是解決瀏覽器指紋追蹤問題的方案。平臺間眾多的差異部分為動態的瀏覽平臺提供了的基礎。
Blink利用虛擬化和模塊化架構自動組合和重新配置瀏覽平臺的組件,使得每次運行產生不同的指紋,追蹤者不能輕易地找到彼此的聯系[5]。圖1顯示了影響瀏覽平臺指紋的元素:配置參數,例如語言,屏幕分辨率;軟件組件,例如,瀏覽器,操作系統;硬件組件,如顯卡,麥克風;跨級動態屬性只能在運行時收集,例如canvas,,AudioContext。
一旦用戶開始瀏覽網頁,這些數據就用于創建指紋。這就是一般所認為的瀏覽器指紋。研究人員發現對指紋影響最顯著的因素是字體、插件和用戶代理。因此,選擇專注于重新配置以下因素就可以達到改變指紋的目的:字體,插件,瀏覽器和操作系統。
Blink通過在運行時自動重新配置瀏覽平臺的各個組件,來達到動態目標防御的能力。動態目標防御需要瀏覽平臺使用模塊化架構,以達到自動隨機組裝配置各個組件,而不是事先構建好它們。Blink屬于一種動態平臺,特點為:
- 組裝的平臺總是表現出與真實瀏覽器一致的指紋,不是偽造的,因為平臺是真實的;
- 自動選擇正確的配置,即由兼容組件組成并正確運行的平臺;
- 每次重新配置都會導致指紋的改變。
三、Blink實現
Blink在不同的層次組裝多個組件,形成如圖2所示的瀏覽平臺。
Blink使用Docker作為背后的基礎技術,因為Docker能夠在運行時快速組裝組件,同時將主機系統與平臺隔離開來。Blink組裝的組件有:
- 操作系統:由于DockerHub的官方映像,許多操作系統都可以開箱即用。
- 瀏覽器:直接從網絡下載或從官方軟件包存儲庫中下載,眾多的瀏覽器用于產生多種指紋。
- 字體和插件:皮埃爾創建了一個多樣性的字體和插件庫,Blink可以在創建瀏覽平臺時選擇其字體和插件。當前版本的Blink,包含超過2700種字體和超過30個插件。
只需要幾秒鐘,Blink就能產生一個全新的指紋,用戶可以像本地瀏覽器一樣使用它。為了避免產生明顯另類于普通Web客戶端的指紋,皮埃爾從https://amiunique.org收集指紋數據,優化Blink的配置文件,使Blink產生的指紋更接近于普通瀏覽器產生的指紋。結果顯示Blink產生的指紋足以以假亂真。皮埃爾運行了Blink上千次,結果它們的指紋都各不相同,而且商業指紋解決方案無法知道這些指紋實際上來于自單個用戶[6]。
四、總結
Blink通過生成隨機瀏覽環境,每次會話都產生不一樣的指紋,打破了指紋的穩定性,來減緩指紋追蹤。Blink還實現了其他的反追蹤方法,如:
- 為了防止cookie追蹤,當用戶完成瀏覽時,所有生成的臨時數據都被刪除。
- 為了防止IP追蹤,Blink與Tor網絡完全兼容。通過點擊一個簡單的按鈕,所有具有Blink的Internet流量可以通過Tor網絡重定向。
這些新方法允許用戶在使用Blink時能有效的躲避追蹤。