瀏覽器指紋介紹

 

 

一、什麼是瀏覽器指紋

       瀏覽器指紋是指通過收集您設備的特徵標識,用來對您進行唯一性識別、跟蹤、分析行爲、所生成的摘要ID
        網站通過收集大量的信息,然後對所有的特徵標識進行並集匹配,可以十分精確的對您進行標記。     
        Hubstudio,允許您自定義所有可能用戶網站跟蹤的標識。
標識內容:
         UA,語言,時區,地理位置,分辨率,webRTC,Cookie,字體指紋,Canvas,WebGL,WebGL Info,AudioContext,SpeechVoices,媒體設備,CPU參數,內存參數,OS,索引數據庫,Resolution等等
 

二、這些指紋含義以及作用是什麼呢?

  • User-Agent:瀏覽器和操作系統的信息
  • 語言,時區,地理位置,分辨率,字體指紋,這幾個是用戶根據IP和電腦的使用場景進行設置,來模仿真實環境。
  • Cookie:主要是用於方便快速登錄一些網站,主要承載登錄信息和網站相關信息的文檔。
  • webRTC指紋:是可以讓瀏覽器有音視頻實時通信的能力,它提供了三個主要的API來讓JS可以實時獲取和交換音視頻數據,MediaStream、RTCPeerConnection和RTCDataChannel。當然如果要使用WebRTC獲得通信能力,用戶的真實ip就得暴露出來(NAT穿透),所以RTCPeerConnection就提供了這樣的API,直接使用JS就可以拿到用戶的IP地址。
  • canvas指紋:是HTML5中的動態繪圖標籤,也可以用它生成圖片或者處理圖片。即便使用Canvas繪製相同的元素,但是由於系統的差別,字體渲染引擎不同,對抗鋸齒、次像素渲染等算法也不同,canvas將同樣的文字轉成圖片,得到的結果也是不同的。
  • WebGL指紋:是一種JavaScript瀏覽器API,用於在網頁上呈現3D圖像。網站可利用WebGL來識別您的設備指紋。通常網站可以用兩種方法做到這一點:
               1、WebGL報告:完整的WebGL瀏覽器報告表是可獲取、可被檢測的。在一些情況下,它會被轉換成爲哈希值以便更快地進行分析。
               2、WebGL圖像:渲染和轉換爲哈希值的隱藏3D圖像。由於最終結果取決於進行計算的硬件設備,因此此方法會爲設備及其驅動程序的不同組合生成唯一值。這種方式爲不同的設備組合和驅動程序生成了唯一值。
  • AudioContex指紋:和Canvas類似也是基於硬件設備或者軟件的差別,來產生不同的音頻輸出,然後計算得到不同的hash來作爲標誌,當然這裏的音頻並沒有直接在瀏覽器中播放出來,只需要拿到播放前的處理數據就行,音頻指紋測試地址
  • Do Not Track:在http頭部可以聲明這樣一個標誌“DNT”意味“Do Not Track”,如果值爲1表示爲不要追蹤我的網頁行爲,0則爲可以追蹤。即便沒有cookie也可以通過這個標誌符告訴服務器我不想被追蹤到,不要記錄我的行爲。
  • CPU內核數量:這個在之前的設備指紋方案中都是沒有使用到的,現代瀏覽器可以用 navigator .hardware Concurrency 來獲取。如果不支持這個方法,則可以利用另一種方式獲取,具體來說是,當增加 Web Worker 的數量時,可以監視 payload 的完成時間。當計算量達到一定的程度,Web Woker 完成 payload 的時間顯著增加,達到硬件併發的限制,從而判斷核心的數量。一些瀏覽器(如Safari)會將 Web Workers 的可用內核數量減少一半,所以在獲取跨瀏覽器指紋時,我們需要將獲取到的核心數量加倍。
  • 媒體設備,內存參數這些參數是電腦和瀏覽期相關指紋。大家比較瞭解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章