どのシグナルがブラウザ更新を生き延びるのか:安定性の分析
Chrome、Firefox、Safariの50回の更新にわたってシグナルの安定性を分析しました。最も安定した、そして最も安定しないフィンガープリンティングシグナルを紹介します。
ブラウザの更新はデバイスフィンガープリンティングの天敵です。4〜6週間ごとに、Chrome、Firefox、Safariはシグナルの値を変えうる新バージョンを配信します。ユーザーエージェント文字列の変更、レンダリング挙動の修正、APIの追加や削除などです。W3C Fingerprinting Guidanceで述べられているように、ブラウザはフィンガープリント可能な表面積を制限しようと積極的に取り組んでいます。すべてのシグナルを等しく扱うフィンガープリンティングシステムにとって、各更新は数百万人の訪問者のアイデンティティが断絶しうる潜在的なリスクです。
私たちは50回のブラウザ更新にわたる包括的な安定性分析を実施し、根本的な問いに答えることを目指しました。どのシグナルは信頼でき、どのシグナルはあなたを裏切るのか?
方法論
私たちは5つのオペレーティングシステム(Windows 10、Windows 11、macOS Ventura、macOS Sonoma、Ubuntu 22.04)と3つのブラウザ(Chrome、Firefox、Safari)にわたって200台の物理デバイスを計測環境に組み込みました。各デバイスは14か月間、毎日自動でシグナル収集を実行し、50回のメジャーブラウザバージョン更新をカバーしました。内訳はChromeが24リリース、Firefoxが16リリース、Safariが10リリースです。
各シグナルについて、私たちは次の点を追跡しました。値がどれくらいの頻度で変化したか、その変化がブラウザ更新や外部要因(ドライバ更新、OSパッチ)と相関していたか、そして変化の大きさ(値の完全な置き換えか、軽微な変動か)です。
安定性のティア
Tier 1:盤石(99.5%以上の安定性)
これらのシグナルは、物理ハードウェアが変わったときやドライバが更新されたときにのみ変化し、ブラウザ更新だけで変化することはありませんでした。
ハードウェア同時実行数(navigator.hardwareConcurrency):99.97%安定。ハイパースレッディングに影響するBIOS更新を受けた1台のデバイスでのみ変化しました。デバイスメモリ(navigator.deviceMemory):99.98%安定。調査期間中に1台のデバイスが8GBから16GBへアップグレードされました。画面解像度と色深度:99.92%安定。変化はモニタの交換やドッキングステーションのイベントと相関していました。WebGLの最大テクスチャサイズ:99.99%安定。ブラウザ関連の変化はゼロでした。NVIDIAのドライバ更新を受けた1台のデバイスで一度だけ変化しました。オーディオのサンプルレート:100%安定。200台すべてのデバイスと50回の更新にわたって変化はゼロでした。これは私たちが追跡する中で最も安定した単一のシグナルです。
Tier 2:おおむね安定(95〜99.5%)
これらのシグナルはブラウザ更新に伴い時折変化しますが、大半のリリースをまたいでも安定を保ちます。
Canvas 2Dフィンガープリント:97.8%安定。変化はChrome 118(フォントレンダリングエンジンの更新)、Chrome 122(サブピクセルアンチエイリアシングの変更)、Firefox 121(テキストシェイピングの更新)で発生しました。各変化はそのブラウザ上のすべてのデバイスに同時に影響しました。これは検出可能なパターンであり、私たちはブラウザバージョンを考慮したマッチングで対処します。WebGLレンダラー文字列:98.1%安定。Chromeは時折ANGLEのラッパー文字列を再フォーマットします。基盤となるGPU情報は変わりませんが、文字列表現が変化します。私たちは文字列を直接ハッシュ化するのではなく、文字列からGPUモデルをパースします。フォントリスト:96.4%安定。OSの更新は時折システムフォントを追加または削除します。ブラウザ更新がフォント列挙に影響することはまれですが、Chrome 120はフォントが報告される順序を変更し、それがハッシュベースのフォントフィンガープリンティングを壊しました。私たちは順序付きハッシュではなく、集合ベースの比較(集合の類似度)を用います。
Tier 3:中程度の安定性(80〜95%)
これらのシグナルは無視できない頻度で変化しますが、変化と変化の間では依然として有用な識別価値を提供します。
インストール済みプラグイン:89.2%安定。Chromeによるプラグイン配列(navigator.plugins)の継続的な削減により、一部のコンテキストではプラグインの可視性が完全に失われました。Firefoxはプラグイン列挙を維持しました。Safariはそれを標準的なセットに制限しました。CSS機能検出:91.7%安定。ブラウザのリリースごとに新しいCSS機能が追加され、私たちのCSSプローブが検出する機能のセットが変化します。私たちは影響を抑えるため、新しい機能を既存の機能より低く重み付けします。タッチサポート:93.1%安定。デスクトップブラウザは、Chromeがデバイスエミュレーション検出を調整する際に、報告するタッチサポートを時折変更します。
Tier 4:変動が大きい(<80%)
これらのシグナルは頻繁に変化するため、主要な識別の拠り所には決してすべきではありません。
ユーザーエージェント文字列:42.3%安定。ChromeのUser-Agent削減の取り組みは、文字列フォーマットを複数回変更しました。Firefoxはリリースごとにバージョン番号を更新します。SafariはWebKitのバージョン文字列を定期的に変更します。これはかつて単純なフィンガープリンティングシステムの柱でしたが、そうしたシステムは今や機能しなくなっています。接続タイプ(navigator.connection):68.4%安定。ネットワークの切り替え(WiFiからセルラー、異なるWiFiネットワーク)で変化します。Battery API:71.2%安定。充電状態やブラウザのAPI提供状況によって変わります。Chromeは一部のコンテキストでBattery APIへのアクセスを制限しました。利用可能な画面領域:76.8%安定。タスクバーの表示状態、ウィンドウ管理、ディスプレイのスケーリング調整によって変化します。
ブラウザ間の比較
Chromeはフィンガープリンティングの安定性において最も変動の大きいブラウザです。Googleはフィンガープリント可能性を積極的に低減しようとしており、そのためChromeの更新はFirefoxやSafariの更新よりも多くのシグナルを壊します。私たちの調査期間を通して:
Chromeは収集セッションの3.2%でシグナルの変化を引き起こしました。Firefoxは収集セッションの1.8%で、Safariは収集セッションの1.1%でシグナルの変化を引き起こしました。
Safariの変動が小さいのは、一つにはAppleが年間のリリース数が少ないためであり、もう一つにはSafariのフィンガープリンティング対策(Intelligent Tracking Prevention)がAPIの戻り値を変えるのではなくネットワークレベルで動作するためです。
実践的な推奨事項
この分析に基づき、私たちは本番環境のフィンガープリンティングシステムに向けて5つの推奨事項を示します。
ユーザーエージェントを識別の拠り所として決して使わないこと。それは最も安定しない識別性の高いシグナルです。ブラウザ検知とTier 3の信頼度スコアリングにのみ使用してください。
ハードウェアシグナルとソフトウェアシグナルを分けること。ハードウェアシグナル(GPU、画面、オーディオ)はソフトウェアシグナル(ユーザーエージェント、プラグイン、CSS機能)より40倍安定しています。それに応じて重み付けしてください。
列挙可能なシグナルには集合ベースの比較を使うこと。フォントリスト、プラグインリスト、機能検出の結果は、順序付きハッシュではなく集合の類似度や類似の集合距離メトリクスを用いて比較すべきです。順序の変化はよくありますが、内容の変化はまれです。
ブラウザバージョンを考慮したマッチングを実装すること。Chrome 118がすべてのChromeユーザーのcanvasレンダリングを同時に変更したとき、システムはそれを大規模なアイデンティティの断絶ではなくブラウザ更新として認識すべきです。ブラウザバージョンを追跡し、バージョン固有のマッチング許容度を適用してください。
シグナルの安定性を継続的に監視すること。私たちの安定性の割合は過去のデータに基づいています。将来のブラウザ更新は、あらゆるシグナルの安定性プロファイルを変えうるものです。私たちは継続的な監視を実行し、安定性が変化したときにシグナルのウェイトを自動的に調整します。
tracio.aiへの影響
私たちのV3マルチティア識別アーキテクチャは、この安定性分析を直接反映しています。Tier 1シグナル(ハードウェア)は60%のウェイトを持ちます。Tier 2シグナル(レンダリング、フォント)は30%のウェイトを持ちます。Tier 3シグナル(ブラウザメタデータ、接続)は10%のウェイトを持ちます。この重み付けにより、最も安定したシグナルが識別を主導する一方で、変動の大きいシグナルはアイデンティティの断絶を引き起こすことなく信頼度スコアリングに寄与します。
その結果、50回のブラウザ更新にわたって99.5%の識別安定性を実現しました。フラットなハッシュベースのフィンガープリンティングを用いるシステムの69%と対照的です。この差はアルゴリズムの巧妙さによるものではなく、アーキテクチャ上の決定に適用された実証的なシグナル分析によるものです。