透過分析瀏覽器中的外部協議處理程序進行識別

Fingerprintjs 庫允許您根據螢幕解析度、WebGL 功能、已安裝插件和字體清單等間接特徵以被動模式生成瀏覽器標識符,該程式庫的開發人員基於對已安裝的典型應用程式的評估提出了一種新的識別方法使用者並透過檢查瀏覽器中附加協議處理程序的支援來運作。 實作該方法的腳本程式碼是在 MIT 許可證下發布的。

該檢查是基於對處理程序與 32 個流行應用程式的綁定的分析進行的。 例如,透過確定瀏覽器中是否存在 URL 方案處理程序 telegram://、slack:// 和 skype://,可以斷定係統存在 telegram、slack 和 skype 應用程序,並使用此資訊作為標誌來產生系統標識符時。 由於系統中所有瀏覽器的處理程序清單都是相同的,因此當更改瀏覽器時識別碼不會改變,並且可以在 Chrome、Firefox、Safari、Brave、Yandex 瀏覽器、Edge 甚至 Tor 瀏覽器中使用。

此方法可讓您產生 32 位元標識符,即單獨使用並不能實現很高的精度,但與其他參數結合作為附加功能是有意義的。 該方法的一個明顯缺點是用戶識別嘗試的可見性 - 當在建議的演示頁面上生成標識符時,右下角會打開一個小但清晰可見的窗口,其中處理程序滾動相當長的時間。 這個缺點在 Tor 瀏覽器中不會出現,在 Tor 瀏覽器中可以在不被注意的情況下計算標識符。

為了確定應用程式是否存在,腳本會嘗試在彈出視窗中開啟與外部處理程序關聯的鏈接,之後瀏覽器會顯示一個對話框,要求您打開關聯應用程式中的內容(如果正在檢查的應用程式是)存在,或者如果該應用程式不在系統上,則顯示錯誤頁面。 透過對典型外部處理程序的順序搜尋和對錯誤回傳的分析,可以得出結論:系統包含正在測試的程式。

在適用於 Linux 的 Chrome 90 中,此方法不起作用,瀏覽器會為所有檢查處理程序的嘗試顯示標準操作確認對話方塊(在適用於 Windows 和 macOS 的 Chrome 中,此方法有效)。 在Firefox 88 for Linux 中,無論是在正常模式還是在隱身模式下,該腳本都會檢測到列表中是否存在已安裝的其他應用程序,識別準確度估計為99.87%(執行的35 次測試中有26次類似匹配)。 在同一系統上執行的 Tor 瀏覽器中,產生了與 Firefox 中的測試相符的識別碼。

有趣的是,Tor 瀏覽器中的額外保護開了一個殘酷的玩笑,並成為在用戶不注意的情況下進行識別的機會。 由於在 Tor 瀏覽器中禁用了使用外部處理程序的確認對話框,結果證明驗證請求可以在 iframe 中打開,而不是在彈出視窗中打開(為了區分處理程序的存在和不存在,同源規則阻止訪問有錯誤的頁面並允許訪問about:blank 頁面)。 由於防洪保護,檢查 Tor 瀏覽器所需的時間明顯更長(每個應用程式 10 秒)。

來源: opennet.ru

添加評論