什么是瀏覽器指紋?
瀏覽器指紋識(shí)別是一種通過(guò)瀏覽器可以在網(wǎng)站上看到的配置和設(shè)置信息來(lái)跟蹤Web瀏覽器的方法。
瀏覽器指紋和我們的手指紋一樣,都具有識(shí)別個(gè)人的能力。
瀏覽器指紋識(shí)別也是如此。獲取可以識(shí)別瀏覽器的信息,做一些計(jì)算得到值,該值就是瀏覽器指紋。
可感知的信息包括語(yǔ)言、時(shí)區(qū)、用戶代理、地理位置等,您選擇的信息決定了瀏覽器指紋的準(zhǔn)確性。
獲取指紋對(duì)網(wǎng)站沒(méi)有實(shí)際意義,更重要的是指紋對(duì)應(yīng)的用戶信息。
作為一個(gè)網(wǎng)站,收集用戶瀏覽器指紋和記錄用戶操作是很重要的,尤其是在沒(méi)有用戶ID的情況下。
例如,在內(nèi)容分發(fā)網(wǎng)站上,用戶a喜歡看軍事內(nèi)容,瀏覽器指紋可以記錄這種興趣。這樣,用戶下次無(wú)需登錄網(wǎng)站,即可向用戶推送軍事信息。
這也是個(gè)人電腦非常普及的時(shí)代的內(nèi)容分發(fā)方式。
對(duì)于用戶來(lái)說(shuō),在他們的個(gè)人在線行為和他們的瀏覽器指紋之間建立聯(lián)系或多或少地侵犯了他們的隱私。
幸運(yùn)的是,這種方法對(duì)用戶隱私的侵犯有限。此外,濫用用戶行為會(huì)削弱用戶對(duì)網(wǎng)站的好感。
有哪些類型的瀏覽器指紋?
1.Canvas指紋
Canvas是HTML5動(dòng)態(tài)繪圖標(biāo)記,也可用于生成和處理圖像。
在不同操作系統(tǒng)或不同瀏覽器上對(duì)同一個(gè)htmlcanvaseElement元素進(jìn)行繪圖操作不會(huì)產(chǎn)生完全相同的圖像內(nèi)容。
在圖像格式方面,不同的瀏覽器使用不同的圖形引擎、圖像導(dǎo)出選項(xiàng)和默認(rèn)壓縮級(jí)別。
在像素級(jí)別,不同的操作系統(tǒng)使用不同的設(shè)置和算法來(lái)進(jìn)行抗鋸齒和子像素渲染操作。
即使是一樣的生成的圖像數(shù)據(jù)的繪圖操作和CRC校驗(yàn)也不同。
幾乎所有主流瀏覽器都支持Canvas,并且可以通過(guò)大多數(shù)pc、平板電腦和智能手機(jī)訪問(wèn)Canvas使用工具查詢。
2.WebGL指紋
通過(guò)htmlCanvaseElement元素可以得到一個(gè)WebGL對(duì)象(canvas.getContext("WebGL")),通過(guò)這個(gè)對(duì)象也可以得到用戶的硬件信息。
顯卡名稱、顯卡型號(hào)、顯卡廠商等。
一般硬件是不能隨便更換的,即使有些電腦報(bào)廢了也沒(méi)有更換。
計(jì)算機(jī)硬件有很高的碰撞率,但它仍然可以作為用戶指紋的一部分。
從一個(gè)用戶身上收集到的信息越多,它就越代表一個(gè)用戶不可忽視的獨(dú)特指紋。
3.AudioContext指紋
用于JavaScript編程的HTML5音頻API允許開(kāi)發(fā)人員在其操作代碼中直接處理原始音頻流數(shù)據(jù)。
它可以隨機(jī)生成、處理、回收、調(diào)整、改變音調(diào)、音頻分段等。
AudioContext指紋背后的原理是:
方法一:生成音頻流(三角波),F(xiàn)FT變換,計(jì)算SHA值作為指紋。
方法二:生成動(dòng)態(tài)壓縮音頻流(正弦波)并計(jì)算MD5值。
音頻上下文指紋識(shí)別的原理:
主機(jī)或?yàn)g覽器硬件或軟件的細(xì)微差異會(huì)導(dǎo)致音頻信號(hào)處理的差異。
同一設(shè)備上的同一類型的瀏覽器將產(chǎn)生相同的音頻輸出。
不同的機(jī)器或不同的瀏覽器產(chǎn)生不同的音頻輸出。
AudioContext和canvasfingerprinting的原理非常相似。
兩者都有硬件或軟件差異。前者生成音頻,后者生成圖像,每個(gè)圖像計(jì)算不同的哈希值作為標(biāo)識(shí)。
4.WebRTC指紋
WebRTC(Web實(shí)時(shí)通信)是瀏覽器的實(shí)時(shí)音視頻通信能力。
它提供了MediaStream、RTCPeerConnection和RTCDataChannel三個(gè)主要的API,可以讓JS實(shí)時(shí)獲取和交換音視頻數(shù)據(jù)。
當(dāng)然,如果想獲得使用WebRTC的通信能力,就需要暴露用戶的真實(shí)IP(NAT穿透),所以RTCPeerConnection提供了這樣的API。
使用JS可以直接獲取用戶的IP地址。
市面上有很多指紋瀏覽器,對(duì)于指紋瀏覽器行業(yè)的知識(shí)也有很多推薦。
比特指紋瀏覽器支持用戶自定義修改瀏覽器指紋參數(shù)。比特指紋瀏覽器可以虛擬生成多個(gè)瀏覽器,您還可以使用強(qiáng)大的指紋庫(kù)支持的瀏覽器指紋對(duì)每個(gè)瀏覽器進(jìn)行個(gè)性化設(shè)置,每個(gè)生成的瀏覽器都會(huì)獲得一個(gè)全新的指紋。
如何檢測(cè)瀏覽器指紋?
如果你想檢測(cè)你的瀏覽器指紋,你可以打開(kāi)比特指紋瀏覽器生成的瀏覽器文件,直接打開(kāi)檢測(cè)網(wǎng)站的網(wǎng)址。等待一兩分鐘后,第三方測(cè)試網(wǎng)站就可以調(diào)取新生成的瀏覽器指紋相關(guān)數(shù)據(jù),查看每一項(xiàng)測(cè)試是否通過(guò)。