日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

探讨浏览器指纹(科普)

發布時間:2023/12/4 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 探讨浏览器指纹(科普) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是瀏覽器指紋?

我們常說的指紋,都是指人們手指上的指紋,因具有唯一性,所以可以被用來標識一個人的唯一身份。而瀏覽器指紋是指僅通過瀏覽器的各種信息,如CPU核心數、顯卡信息、系統字體、屏幕分辨率、瀏覽器插件等組合成的一個字符串,就能近乎絕對定位一個用戶,就算使用瀏覽器的隱私窗口模式,也無法避免。

這是一個被動的識別方式。也就是說,理論上你訪問了某一個網站,那么這個網站就能識別到你,雖然不知道你是誰,但你有一個唯一的指紋,將來無論是廣告投放、精準推送、安全防范,還是其他一些關于隱私的事情,都非常方便。

二、實現瀏覽器指紋的技術點有哪些?

1、基本指紋

瀏覽器基本指紋是任何瀏覽器都具有的特征標識,比如屏幕分辨率、硬件類型、操作系統、用戶代理(User agent)、系統字體、語言、瀏覽器插件 、瀏覽器擴展、瀏覽器設置 、時區差等眾多信息,這些指紋信息“類似”人類的身高、年齡等,有很大的沖突概率,只能作為輔助識別。可以在該網址進行查看本地瀏覽器的基本特征,https://www.whatismybrowser.com/

2、高級指紋

瀏覽器高級指紋與基本指紋的區別是,基本指紋就像是人的外貌特征,外貌可以用男女、身高、體重區分,然而這些特征不能對某個人進行唯一性標識,僅使用基本指紋也無法對客戶端進行唯一性判定,基于HTML5的諸多高級功能就能生成高級指紋了。

Canvas指紋

說到高級指紋,不得不提Canvas指紋,Canvas(畫布)是HTML5中一種動態繪圖的標簽,可以使用其生成甚至處理高級圖片。

Canvas指紋的原理大致如下:

相同的HTMLCanvasElement元素繪制操作,在不同操作系統、不同瀏覽器上,產生的圖片內容不完全相同。在圖片格式上,不同瀏覽器使用了不同的圖形處理引擎、不同的圖片導出選項、不同的默認壓縮級別等。在像素級別來看,操作系統各自使用了不同的設置和算法來進行抗鋸齒和子像素渲染操作。即使相同的繪圖操作,產生的圖片數據的CRC檢驗也不相同。Canvas幾乎已被所有主流瀏覽器支持,可以通過大部分的PC、平板、智能手機訪問。

在線測試地址:https://www.browserleaks.com/canvas,可查看瀏覽器的Canvas唯一性字符串。

WebGL指紋

通過HTMLCanvasElement元素可以獲取到Webgl對象(canvas.getContext("webgl")),通過此對象可以獲取到用戶的硬件信息,比如顯卡名稱、顯卡型號、顯卡制造商等,比如:ANGLE (NVIDIA GeForce GTX 1050 Ti Direct3D11 vs50 ps50),Google Inc.。

由于硬件一般是不會隨意更換的,有些是電腦買來到電腦報廢就沒更換過硬件,電腦硬件種類也比較多,雖然非常大的碰撞率,但是依然可以被用來當做用戶指紋的一部分,收集用戶的信息也多,就越能代表用戶的唯一指紋,這點不可忽視。

AudioContext指紋

HTML5提供給JavaScript編程用的Audio API則讓開發者有能力在代碼中直接操作原始的音頻流數據,對其進行任意生成、加工、再造,諸如提高音色,改變音調,音頻分割等多種操作,甚至可稱為網頁版的Adobe Audition。

AudioContext指紋原理大致如下:

方法一:生成音頻信息流(三角波),對其進行FFT變換,計算SHA值作為指紋。

方法二:生成音頻信息流(正弦波),進行動態壓縮處理,計算MD5值。

兩種方法都是在音頻輸出到音頻設備之前進行清除,用戶根本就毫無察覺就被獲取了指紋。

AudioContext指紋基本原理:

主機或瀏覽器硬件或軟件的細微差別,導致音頻信號的處理上的差異,相同器上的同款瀏覽器產生相同的音頻輸出,不同機器或不同瀏覽器產生的音頻輸出會存在差異。

從上可以看出AudioContext和Canvas指紋原理很類似,都是利用硬件或軟件的差異,前者生成音頻,后者生成圖片,然后計算得到不同哈希值來作為標識。音頻指紋測試地址:https://audiofingerprint.openwpm.com

WebRTC指紋

WebRTC(網頁實時通信,Web Real Time Communication),是可以讓瀏覽器有音視頻實時通信的能力,它提供了三個主要的API來讓JS可以實時獲取和交換音視頻數據,MediaStream、RTCPeerConnection和RTCDataChannel。當然如果要使用WebRTC獲得通信能力,用戶的真實ip就得暴露出來(NAT穿透),所以RTCPeerConnection就提供了這樣的API,直接使用JS就可以拿到用戶的IP地址。用戶的內網IP地址也是大多數情況下不會改變,所以也是可以用來當做用戶指紋的其中一個因子。

綜合指紋

上面幾點都說了瀏覽器指紋大致有哪些,還沒有完全說完,只是一部分,但是零散的指紋信息并不能真正的定位到唯一用戶,并不能用來代表一個用戶的唯一身份(用戶指紋)。

綜合指紋是指將所有的用戶瀏覽器信息組合起來,就可以近乎99%以上的準確率定位標識用戶,綜合指紋大致有如下:

  • 基本指紋(UserAgent、屏幕分辨率、CPU核心數、內存大小、插件信息、語言等)

  • 高級指紋部分(Canvas指紋、Webgl指紋、AudioContext指紋、WebRTC指紋、字體指紋等)

  • 地理位置、時區、DNS、SSL證書等信息。

將以上幾點組合起來就可以生成綜合指紋(用戶指紋),就可以達到前面說的99%以上可以定位唯一用戶。

如何防止被生成“用戶指紋”?

前面我們說了一大堆網站如何使用各種技術來“生成”用戶指紋,來標識唯一用戶,那么下面我們來說說,如何避免被網站“生成”唯一用戶指紋。

常用的手段是,通過瀏覽器的擴展插件,阻止網站獲取各種信息,或者返回個假的數據,這種方式是在網頁加載前就執行一段JS代碼,更改、重寫、HOOK了js的各個函數來實現的,因為JS的靈活性給這種方式提供的可能。但是這種方式始終是表層的,使用JS修改是能防止大部分網站的生成唯一指紋,但是是有手段可以檢測出來是否“作弊”的。

更好的手段是從瀏覽器底層做處理,從瀏覽器底層修改API使得這些在js層獲取的信息并不唯一,不管如何組合都不能生成一個唯一的代表用戶的指紋。比如:貓頭鷹瀏覽器

貓頭鷹瀏覽器是基于chromium代碼修改編譯的瀏覽器,從底層對各種API做了修改,可以交給用戶自定義返回各種數據,比如Canvas、Webgl、AudioContext、WebRTC、字體、UserAgent、屏幕分辨率、CPU核心數、內存大小、插件信息、語言等信息,這樣就可以完全避免被“生成”唯一用戶指紋了。

5、常用檢測網站

  • BrowserLeaks - Web Browser Fingerprinting - Browsing Privacy

  • 瀏覽器環境校驗

  • AmIUnique

關于本文 作者:@隱心 原文:https://zhuanlan.zhihu.com/p/282922459

END

如果覺得這篇文章還不錯

點擊下面卡片關注我

來個【分享、點贊、在看】三連支持一下吧

???“分享、點贊、在看” 支持一波??

總結

以上是生活随笔為你收集整理的探讨浏览器指纹(科普)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。