什麼是媒體設備?
媒體設備指紋是一種透過偵測和分析使用者設備上媒體設備屬性來生成唯一識別符的技術。這些媒體設備包括攝影機、麥克風、揚聲器等輸入輸出設備。該技術利用不同設備之間的細微差異來識別和追蹤使用者,常用於使用者身分識別和定向廣告投放等場景。
網站取得使用者音訊視訊設備資訊並生成瀏覽器指紋的過程通常包含以下步驟:
第一步:請求使用者授權
在使用音訊視訊設備之前,網站需要取得使用者的明確授權。這通常透過呼叫瀏覽器的 JavaScript API 來實現。
第二步:取得媒體設備資訊
使用者授權後,網站便可透過 WebRTC API 存取設備資訊。出於隱私保護的考量,媒體設備資訊只有在使用者授予網頁存取權限時才能被取得。如果使用者拒絕授權,設備資訊將返回空值。
設備資訊主要包括以下幾類:
設備類型:如音訊輸入設備(麥克風)、音訊輸出設備(揚聲器或耳機)以及視訊輸入設備(攝影機)。
設備標籤:設備的可讀名稱。例如,攝影機的標籤可能是“Logitech HD Webcam C270”,麥克風的標籤可能是“Built-in Microphone”。
設備 ID:設備的唯一識別符,是一個用於唯一識別設備的字串。
第三步:生成瀏覽器指紋
透過處理收集到的設備資訊來生成瀏覽器指紋。處理方式多種多樣,例如將設備資訊字串透過雜湊演算法轉換為一個雜湊值。
需要注意的是,媒體設備指紋可能因使用者行為而發生變化——更換設備、更新設備驅動程式或修改系統設定都可能導致指紋改變,因此它並非永久不變。
什麼是音訊指紋?
音訊指紋是一種相對較新的指紋追蹤技術。其基本原理是:由於硬體和軟體配置的細微差異,不同設備在播放同一段音訊時會產生微小的差異。這些差異可以被捕獲並用於生成設備的唯一識別符,即“音訊指紋”。
音訊指紋技術涉及的技術原理主要包括音訊處理和訊號分析,具體操作通常需要使用瀏覽器的 Web API,例如 AudioContext 介面。
當使用者造訪一個網站時,網站可以透過以下步驟取得使用者設備的音訊指紋:
第一步:建立虛擬音訊環境
網站首先需要搭建一個瀏覽器的音訊環境,用於播放和分析音訊。從技術上講,這是透過建立一個 AudioContext 物件來實現的。AudioContext 是 Web Audio API 的一部分,提供了一系列用於音訊處理的介面。
第二步:生成並播放音訊
在這個虛擬音訊環境中,網站建立一個 OscillatorNode——一個虛擬音訊訊號源。這個訊號源可以播放特定頻率和波形的音訊訊號(如正弦波、方波等),但使用者是聽不到這些聲音的。網站播放音訊的目的是在設備的音訊硬體上產生一些微小的差異,這些差異可以用來區分不同的設備。
第三步:捕獲音訊資料
音訊播放時,網站需要捕獲音訊資料。這是透過建立一個 AnalyserNode 物件來實現的。AnalyserNode 是一個虛擬音訊分析器,可以捕獲並分析音訊訊號。
第四步:分析音訊資料
網站對捕獲的音訊資料進行分析,提取反映設備特徵的資訊。這一步驟可能涉及一些複雜的訊號處理和統計計算,例如計算音訊資料的平均值、變異數、峰值等。
第五步:生成音訊指紋
最後,網站將提取到的資訊轉換為一個唯一識別符。這個識別符反映了使用者設備處理音訊的特徵,可以被視為設備的音訊指紋。這一過程通常透過雜湊函式實現,該函式可以將任意長度的資料映射為固定長度的輸出。
第六步:使用音訊指紋
透過以上步驟,網站可以在使用者造訪網頁期間取得其設備的音訊指紋,而使用者對此過程毫無察覺。網站隨後可以利用音訊指紋來追蹤使用者,例如將音訊指紋與其他使用者行為資料關聯,用於個人化廣告投放、防範網路詐欺等目的。
如何防範媒體設備與音訊指紋追蹤?
媒體設備指紋技術透過捕獲設備上的屬性(如類型、標籤、ID)來生成指紋。音訊指紋技術則透過設備播放音訊時的特徵來生成指紋。
要防範這類指紋追蹤,最佳的解決方案是採用“替代法”——使用專門的工具生成一個新的指紋來替換真實設備的原始指紋。如果你正在使用指紋瀏覽器,請注意檢查工具中是否提供了針對這類指紋的配置選項。
