當前位置:
首頁 > 最新 > 2.5代指紋追蹤技術—跨瀏覽器指紋識別

2.5代指紋追蹤技術—跨瀏覽器指紋識別

關注默安科技盡享更多乾貨

作者簡介

程進,默安科技影武者實驗室安全工程師。主要參與一些安全產品的安全能力推進,包括幻盾的蜜網、黑客溯源技術,SDL靂鑒的漏洞掃描、代碼審計等。

01.研究背景

02.設備指紋技術介紹

1

第一代

第一代指紋追蹤是cookie這類的服務端在客戶端設置標誌的追蹤技術,evercookie是cookie的加強版。

2

第二代

第二代指紋追蹤是設備指紋技術,發現IP背後的設備。通過js獲取操作系統、解析度、像素比等等一系列信息,傳到後台計算,然後歸併設備。

唯一性可以保證,但準確率很難完全保證。主要原因就是在跨瀏覽器指紋識別上面。跨瀏覽器之後,第二代技術中很重要的canvas指紋、瀏覽器插件指紋都變了,所以很難把跨瀏覽器指紋歸併到同一設備上。

因為設備指紋相同,很大概率上是同一台設備;但是,設備指紋不同時,不一定不是同一台設備。

3

第三代

第三代指紋追蹤技術,則是發現設備後面的人。通過人的習慣、人的行為等等來對人進行歸併,此項技術比較複雜。

總 結

第一代、第二代的指紋追蹤技術是可以直接通過js收集信息的,第三代指紋追蹤技術目前可看到的案例是2017年RSA創新沙盒的冠軍unifyid技術。但是在RSA的答辯現場我們可以看到,unifyid在移動端安裝軟體、收集信息,不僅僅是通過js。至於利用於web上,還任重而道遠。

因此,2.5代指紋識別技術,即跨瀏覽器指紋識別技術。

03.跨瀏覽器指紋識別特徵

這篇paper中的創新點很多,最主要的是深入研究了顯卡的渲染方法,圖片的哪些部分用到硬體渲染,哪些部分只用到軟體渲染,或者跟瀏覽器有關,paper中都有深入研究。

著重講一些比較有意思的特徵

文章中用到的所有特徵如下

其中很多特徵都是在其他設備指紋的paper中出現過的,並且目前被廣泛用於設備指紋項目。比如canvas指紋在單瀏覽器識別中是比較有區分度的特徵。

對比一下已經開源的fp2的指紋列表

fp2中的都是一些常規的追蹤項目,並且如果用過就知道,其中很多項目是沒有什麼區分度的,比如

Has session storage or not

Has local storage or not

Has indexed DB

Has IE specific AddBehavior

Has open DB

Is AdBlock installed or not

Has the user tampered with its languages 1

Has the user tampered with its screen resolution 1

Has the user tampered with its OS 1

Has the user tampered with its browser

這些項只能進行一些大致的區分,並沒有什麼實際的參考價值。

但是這篇paper中去掉了這些區分度低的特徵,用到了另一類特徵,顯卡渲染圖片,就是特徵表中的task(a)-task(r),可以看到這些task的跨瀏覽器穩定性都非常高,也就是說受瀏覽器的影響不是很大。

這裡,我們抽一些任務介紹一下。

首先,paper中對圖片渲染進行了簡單的介紹

在此之前,首先介紹下面的基本畫布設置。畫布的大小為256×256。畫布的軸定義如下:[0,0,0]是畫布的中心,其中x軸是向右延伸的水平線,y軸是向下延伸的垂直線,z軸朝遠離屏幕方向延伸。存在功率為[R:0.3,G:0.3,B:0.3]的環境光,相機位於[0,0,-7]的位置。這兩個組件必需,否則模型完全是黑色的。在本文的其餘部分,除非指定,例如具有2D特徵的任務(d)和其他帶有附加燈的任務,所有任務均使用相同的基本設置。

這裡列舉幾個典型的task

1

task(a):紋理

圖(a)中的任務是測試片段著色器中的常規紋理特徵。

具體來說,Suzanne模型在隨機生成紋理的畫布上呈現。紋理大小為256×256的正方形,通過隨機選擇每個像素的顏色來創建。也就是說,我們在一個像素的三個基色(紅色,綠色和藍色)之間產生0~255的三個隨機值,將三個基色混合在一起,並將其用作像素的顏色。

之所以選擇這個隨機生成的紋理,是因為這個紋理比常規紋理具有更多的指紋特徵。原因如下,當片段著色器將紋理映射到模型時,片段著色器需要在紋理中插入點,以便將紋理映射到模型上的每個點。插入值演算法在不同的顯卡中是不同的,當紋理變化很大時,差異就被放大。因此,我們需要生成在每對相鄰像素之間顏色變化很大的這種紋理。

2

task(d):線和曲線

圖(d)中的任務是測試線和曲線。 在畫布上繪製一條曲線和三條不同角度的直線。具體來說,曲線遵循以下功能:y = 256-100cos(2.0πx/ 100.0)+ 30cos(4.0πx/ 100.0)+ 6cos(6.0πx/ 100.0),其中[0,0]為畫布的左上角,x軸向右增加,y軸增加到底部。 三行的起點和終點是{[38.4,115.2],[89.6,204.8]},{[89.6,89.6],[153.6,204.8]}和{[166.4,89.6],[217.6,204.8]}。 選擇這些特定的線條和曲線,以便測試不同的漸變和形狀。

3

task(f):光

圖(f)中的任務是測試漫射點光和Suzanne模型的相互作用。 漫射點光在照亮物體時會引起漫反射。 具體地說,該光是在RGB上具有相同值的白色,對於每種原色,光的功率為2,光源位於[3.0,-4.0,-2.0]。

在這個任務中選擇一個白光源,因為紋理是各種顏色的,單色光可能會減少紋理上的一些微妙差異。 光線的強度需要精心設計。非常弱的光線不會照亮Suzanne模型,模型就會不可見;非常強的光會使一切變白,減少指紋特徵。 在6台機器的小規模實驗中,功率從0增加到255,我們發現當光功率為2時,這些機器之間的像素差異最大。光照位置可隨機選擇,不會影響特徵指紋識別結果。

可以看出

這些任務深入研究了圖片渲染引擎的特徵,js沒辦法直接獲取到顯卡的設置和驅動,但是通過這種方法,當不同的顯卡渲染同一張圖片時,因設置不同,渲染出來的圖片hash也不同。用這種圖片hash作為特徵,其實是從側面得到機器顯卡的特徵,同一台機器在不同的瀏覽器上用到同一個顯卡,所以可以看到這些task的跨瀏覽器穩定性都很高,總共10餘種 task。

Paper中除了這些task,還有一些其他新穎的東西

1

CPU內核數量

這個在之前的設備指紋方案中都是沒有使用到的,現代瀏覽器可以用navigator .hardware Concurrency來獲取。如果不支持這個方法,則可以利用另一種方式獲取,具體來說是,當增加Web Worker的數量時,可以監視payload的完成時間。當計算量達到一定的程度,Web Woker完成payload的時間顯著增加,達到硬體並發的限制,從而判斷核心的數量。一些瀏覽器(如Safari)會將Web Workers的可用內核數量減少一半,所以在獲取跨瀏覽器指紋時,我們需要將獲取到的核心數量加倍。

此處內容,有興趣的同學可以看看這篇文章

https://eligrey.com/blog/cpu-core-estimation-with-javascript/

2

writing script(language)

這個其實可以理解為語言,但不是當前瀏覽器所使用的語言,而是系統支持的所有語言,比如中文簡體、中文繁體、英語,js中並沒有介面直接獲取這種語言,但是這裡作者想到了另一種方法,就是在頁面中用所有的語言寫兩個字,如果系統支持該語言,那麼就能正常寫出來;如果不支持,顯示出來的就是方框。通過這種方法獲取系統支持的語言。

3

AudioContext

能熟悉設備指紋的同學都知道,AudioContext在很多設備指紋項目上都用到了。具體來說,現有的指紋識別工作使用OscillatorNode產生一個三角波,然後將波傳Dynamics Compressor Node,一個調節聲音的信號處理模塊,產生壓縮效果。 然後,經處理的音頻信號通過Analyser Node轉換為頻率域。

該paper指出,頻域在不同的瀏覽器中是不同的,這個特徵受瀏覽器的影響,不能完全反應出音效卡的特徵。也就是說,現有的方案只能識別單瀏覽器。但是他們發現,頻率和峰值的比,在瀏覽器之間是相對穩定的。

因此,在頻率和值的坐標繫上創建一個間距很小的列表,並將峰值頻率和峰值映射到相應的格子。 如果一個格子包含一個頻率或值,我們將格子標記為1,否則為0,這樣的格子列表用作跨瀏覽器特徵。

除了波形處理外,還能從音頻設備上獲取以下信息:採樣率、最大通道數、輸入數、輸出數、通道數、通道數模式和通道解釋。

這是現有的設備指紋工作沒有用到的又一個跨瀏覽特徵。

在demo站中,從我電腦上收集到的信息如下

我跨瀏覽器測試的結果,的確能夠跨瀏覽器識別,看到這裡,由衷的佩服該項目。

04.查看代碼

在我看來,十多個task,AudioContext,CPU core number,writing script,跨瀏覽器穩定性都如此之高,做一些機器學習的分析工作,算一算相似性,真的非常容易達到跨瀏覽器識別的目的。

但我們來看看後端分析代碼,如下:.

這是代碼中獲取到的從前端傳來的特徵,然後就該通過這些特徵計算跨瀏覽器指紋了。

但是,他只是簡單的把這些項目加到一起hash了一下,就作為跨瀏覽器指紋。

雖然demo站說明了跨瀏覽器指紋還在開發中,並沒有什麼複雜的計算,跟paper中提到的分析方式完全不同,跟我預期的什麼機器學習的方式也不同。

但是,跨瀏覽器的特徵倒是選用了一些穩定性極高的特徵,所以直接hash也能進行跨瀏覽器識別。

Paper中的思路真的很好,所以沿著這個思路,我們還有很多工作要做。

05.最後說一句

該paper中一直提到的IP不可信的問題,既然是黑客溯源,對面是黑客,提出這個觀點也無可厚非,畢竟大家都會掛VPN或者用肉雞。但是IP作為一個重要信息,在設備指紋項目中,還是有用武之地的。

我個人的觀點:IP雖然不可信,但是短時間的IP是可信的。

各位可以自己去試試 IP+設備指紋的區分度還是很好的,而且很大程度上能解決一部分跨瀏覽器識別的問題。

本文僅是自己的一些心得分享,歡迎大家在評論區留言,也可關注我的個人微博@chengable。淺知拙見,拋磚引玉,期待與大家的交流。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 默安科技 的精彩文章:

高考落榜?聽聽過來人怎麼說!

TAG:默安科技 |

您可能感興趣

專家發現谷歌瀏覽器會秘密掃描電腦文件;劍橋分析公司獲得8700萬用戶的數據,而不是5000萬;韓研究「殺手機器人」
手機瀏覽器v1.1核心功能邏輯描述
BUF早餐鋪 | 華碩、技嘉多款硬體驅動被爆代碼執行漏洞;商業公司以製作病毒為主業;微軟發布KB4483235/4483234等更新修復IE瀏覽器漏洞
助力國產系統研發創新 360瀏覽器將於年底實現跨平台技術支持
ES文件瀏覽器CVE-2019-6447漏洞分析
高防360瀏覽器的音樂導航
新版Firefox 63瀏覽器將加入指紋識別和加密貨幣保護功能
火狐VR瀏覽器1.1上線,添加7種新語言、支持書籤和360°視頻播放
30億條隱私數據被竊取,360瀏覽器新增警告提示功能
夸克瀏覽器發布全新3.0版,AI技術創新智能化信息服務
超強無廣告瀏覽器:2 倍速看視頻,還能翻譯 14 種外語
SSL數字證書提升瀏覽器安全級別
一套瀏覽器內核代碼多達2400萬行,微軟Edge已失敗
Win10 RS5預覽版17677推送:瀏覽器/講述人等獲改進
主流瀏覽器新版本將不再支持TLS 1.0/1.1
UC瀏覽器12.0版本上線 全新體驗如約而至
三星Note9現身HTML5瀏覽器性能測試網站;522分,18.5:9比例全面屏
火狐推VR瀏覽器1.1,添加7種新語言、支持360°視頻播放
紅芯首創內核瀏覽器,2.5億教你做人
360安全瀏覽器被忽視的設置