オーディオフィンガープリンティング

ブラウザのオーディオフィンガープリンティングは、Web Audio API を使用して合成信号を処理し、数値結果を読み取ります。 Web サイトはこれらの値を AudioContext ハッシュに変換できます。 その後、より広範な ブラウザー フィンガープリント の一部として、ハッシュを Canvas、WebGL、およびその他の信号と組み合わせることがあります。

通常、このプロセスではマイクにアクセスしたり、マイク入力を録音したりすることはありません。 また、曲の認識に使用される音響フィンガープリンティングとも異なります。 対象となるのはブラウザ環境であり、音声コンテンツや話者ではありません。

簡単に言うと、ページはブラウザーに同じ音声処理タスクを与え、その答えを比較します。

ブラウザのオーディオフィンガープリンティングと音響フィンガープリンティングの比較

この用語には 2 つの確立された意味があります。 ブラウザのオーディオフィンガープリンティングは、オーディオ処理環境を測定します。 音響フィンガープリンティングは録音から特徴を抽出するため、Shazam などのサービスがコンテンツを識別できるようになります。

エリアブラウザのオーディオフィンガープリンティング音響指紋採取
ターゲットブラウザと処理環境曲、クリップ、または録音
典型的な入力合成信号または API プロパティ録音された音声コンテンツ
共用ブラウザ認識、リスク分析、追跡音楽認識、著作権照合
マイクロフォン通常は必要ありませんサンプルの採取方法により異なります
結果ブラウザシグナルまたはツール固有のハッシュデータベースと照合されたコンテンツ署名

声紋も違います。 話者認識のために人の声の特徴を分析します。

AudioContext フィンガープリンティングはどのように機能しますか?

一般的なテストでは、ブラウザーに同じ予測可能なオーディオ グラフが提供されます。 出力の小さな違いによって、処理環境の詳細が明らかになる可能性があります。

基本的なプロセスには 5 つのステップがあります。

  1. このページは、OfflineAudioContext または AudioContext を作成します。
  2. OscillatorNode または別のソースを使用して波形を生成します。
  3. DynamicsCompressorNode や AnalyserNode などのノードを介して信号を渡します。
  4. レンダリングされたサンプル、周波数データ、プロパティ、またはタイミング値を読み取ります。
  5. 選択した値を合計またはハッシュし、他のブラウザ信号と組み合わせます。

AudioBuffer へのオフライン レンダリング

多くのテストでは OfflineAudioContext を使用します。 MDN によると、オーディオ グラフをメモリ内の AudioBuffer にレンダリングします。 結果は物理的なオーディオ ハードウェアに送信されません。 スクリプトはバッファを直接読み取ります。 その値は、ブラウザ、オペレーティング システム、CPU アーキテクチャ、数学ライブラリ、デジタル信号処理の実装によって異なる場合があります。

プロパティとタイミング信号

ページでは、サンプル レート、チャネル数、レイテンシー、アナライザーのタイミング、またはレンダリング量子サイズを検査することもできます。 Web オーディオ仕様 には、フィンガープリンティングの対象となる可能性のあるフィールドのいくつかがリストされています。 ブラウザはそれらを丸めたり、制限したり、標準化したりする場合があります。

Web サイトはどのような音声信号を読み取ることができますか?

信号それが示すもの重要な制限
バッファサンプルブラウザ、OS、CPU、DSPの違いハードウェアのシリアル番号ではありません
FFT値選択したグラフからの周波数出力グラフとアナライザーの設定に依存します
サンプルレートオーディオコンテキストの設定通常は、よく使われる少数のサンプリング周波数の中から決まります
チャンネル数出力構成ブラウザによって制限または標準化される場合があります
レイテンシーとタイミング実装またはハードウェア関連の動作システム負荷とブラウザのポリシーによって異なる場合があります
ハッシュまたはサンプル合計選択した値の概要すべてのサイトで使用されるユニバーサル ID ではありません

ハッシュは、それを作成したテストに属します。 1 つのツールでバッファ全体をハッシュすることができます。 別の方法では、短い範囲のサンプルを追加したり、FFT ビンを使用したりする場合があります。 それらの結果が一致する必要はありません。 通常、これらの出力では、人の名前、マイクの内容、サウンド カードのシリアル番号は明らかになりません。

オーディオ フィンガープリントは固有ですか、それとも安定していますか?

音声フィンガープリントは、有用な情報を追加できるほど安定している可能性があります。 一意であるか永続的であるかは保証されません。

2022 年の ウェブ オーディオ ブラウザのフィンガープリントに関する 調査 では、2,093 人のユーザーをテストし、95 個の異なるオーディオ フィンガープリントが観察されました。 音声の結果は、そのサンプルの他のいくつかの指紋表面ほど多様性がありませんでした。 他の信号と組み合わせると、さらに情報が追加されます。

これは、AudioContext データを判断するための実用的な方法です。 一致すると可能性は狭まりますが、2 つの訪問が 1 つのデバイスから行われたことは証明されません。 変更された結果は、新しいデバイスが登場したことを証明するものではありません。

値は次の後に変更される可能性があります。

  • ブラウザ、オペレーティング システム、または数学ライブラリの更新
  • オーディオ構成または CPU アーキテクチャの変更
  • プライバシー設定または指紋保護
  • 別のグラフ、サンプル範囲、タイミング方法、またはハッシュ アルゴリズム

安定性をチェックするときは、同じプロファイルで同じテストを使用します。

オーディオフィンガープリンティングはマイクを使用しますか、それともサウンドを再生しますか?

通常の AudioContext フィンガープリントにはマイクの許可は必要ありません。 部屋からの音を録音するのではなく、独自の合成信号を作成します。

オフライン テストでは音声再生も必要ありません。 データをメモリにレンダリングし、結果のバッファを読み取ります。 通常、タブをミュートしたり、スピーカーの音量を下げても、その計算は変わりません。

マイク キャプチャでは、通常は getUserMedia を介して別のブラウザ パスを使用し、通常は許可が必要です。 ライブオーディオグラフは、ページがマイクを録音していることを証明するものではありません。

オーディオ、キャンバス、WebGL フィンガープリンティング

オーディオ、Canvas、WebGL のテストも同様のパターンに従います。 ページは固定タスクを割り当て、出力を読み取り、他の結果と比較します。 API とバリエーションのソースは異なります。

表面メインAPI典型的な結果主な影響
オーディオウェブオーディオサンプル、FFT値、プロパティ、ハッシュブラウザ、OSオーディオ実装、CPU、演算、DSP
キャンバスキャンバス 2Dピクセルバッファまたは画像ハッシュフォント、ブラウザ、OS、2Dレンダリング
WebGLWebGLGPU メタデータ、機能、レンダリングされたピクセルGPU、ドライバー、グラフィックス スタック、ブラウザー

WebGL フィンガープリント により、グラフィック ベンダー情報とレンダリング動作が明らかになる可能性があります。 AudioContext は、オーディオ処理出力と関連プロパティに重点を置いています。 Canvas はフォントや 2D レンダリングを反映することがよくあります。

リスク システムは、ヘッダー、ネットワーク データ、アカウント履歴、および行動と並んで 3 つすべてを収集する場合があります。 ボットの検出 では、信号間の関係は 1 つの音声ハッシュよりも役立ちます。

ブラウザのオーディオフィンガープリンティングは何に使用されますか?

セキュリティ システムは、不正チェック、アカウント乗っ取りの検出、ブラウザ認識、自動分析に AudioContext データを使用できます。 馴染みのある組み合わせが、復帰セッションをサポートする可能性があります。 突然の変更により、別の検証ステップが必要になる場合があります。

追跡システムは、Cookie だけに依存せずに同じ信号を使用できます。 クッキーの分離 は、ページが再計算できる値ではなく、保存されたデータを制御します。

AudioContext コードだけではフィンガープリンティングを証明できません。 ゲーム、音楽ツール、ビジュアライザー、会議ソフトウェア、効果音などでも API が使用されます。 バッファを読み取り、ハッシュを作成し、それを比較のために送信するスクリプトは、フィンガープリントの強力な証拠となります。

オーディオフィンガープリントをテストする方法

Princeton AudioContext フィンガープリント テストでは、AudioContext プロパティ、コンプレッサー出力、オシレーターの結果、サンプル合計、およびハッシュが表示されます。 これは、1 つのブラウザー設定で何が安定しているかを確認するのに役立ちます。

制御された比較を使用します。

  1. 同じブラウザ プロファイルでテストを 2 回実行します。
  2. プロパティ、サンプル合計、およびハッシュを記録します。
  3. ブラウザを完全に閉じ、プロファイルを再度開き、再度テストします。
  4. 更新またはプライバシー設定の変更後に同じページで繰り返します。

ブラウザのバージョン、オペレーティング システム、プロファイル、テスト ツールをメモとして保管してください。 無関係なサイトのハッシュを、あたかも 1 つの標準に従っているかのように比較しないでください。

結果通常それが意味するもの証明されないこと
繰り返しテストでも同じハッシュ選択した出力はそのセットアップで安定していましたデバイスは世界的にユニークです
再起動後のハッシュの違い保護または環境により出力が変化した追跡は不可能です
プロファイル間で同じハッシュテストでは同じ選択値が確認されましたプロフィールは確かにリンクされています
AudioContext が使用できませんAPI がブロックされているか、無効になっているか、サポートされていません他の指紋の表面は消えています

テスト ページは、可視性と再現性をチェックするものです。 これは、匿名性スコアやブラウザが認識できないことの証明ではありません。

ブラウザでオーディオフィンガープリンティングを減らすにはどうすればよいですか?

  • 標準化により、より多くのユーザーが同様の値を返すようになります。
  • 決定的なランダム化により、サイトまたはセッション全体で選択された出力が変更されます。
  • トラッカーのブロックにより、既知のフィンガープリンティング サービスからのリクエストが停止されます。
  • Web オーディオを制限すると、表面の一部が削除されますが、有用なアプリケーションが破損する可能性があります。

Brave では、Web オーディオ出力のファーブリングと呼ばれるランダム化方法について説明しています。 Firefox リリース ノート に記載されているように、Firefox 118 では、指紋保護の下での匿名性を向上させるために、Web オーディオの計算がシステム間で同じ数学ライブラリに移動されました。

プライベート ブラウジングは主にストレージとローカル履歴を変更します。 AudioContext の保護はブラウザとその現在の設定によって異なります。

VPN またはプロキシは、オーディオ バッファの計算ではなく、ネットワーク ルートとパブリック IP を変更します。 WebRTC リーク テストを使用して、ネットワークの露出を個別に確認します。

MoreLogin の AudioContext 設定

MoreLogin では、プロファイル レベルで Noise および Authentic オプションを提供します。 現在の プロファイル設定ドキュメント には、ノイズが同じコンピュータ上のプロファイルに対して異なるオーディオ コンテキストを生成すると記載されています。 Authentic は、コンピュータの実際のオーディオ コンテキストを使用します。

オーディオ再生の無効化は別のコントロールです。 これは、Web Audio API が使用できないことを意味するものではなく、AudioContext フィンガープリント防御として扱うべきではありません。

AudioContext の値を、オペレーティング システム、ユーザー エージェント、Canvas、WebGL、およびメディア デバイスとともに確認します。 1 つの設定では、すべてのチェッカーで同じ結果が保証されるわけではありません。

オーディオフィンガープリンティングに関するよくある質問

AudioContext フィンガープリンティングはマイクを録音しますか?

一般的な方法ではそうではありません。 AudioContext 内で合成信号を生成し、出力を読み取ります。 マイクキャプチャは別の API を使用し、通常はユーザーからの許可が必要です。

オーディオ フィンガープリントは 1 つのデバイスに固有のものですか?

必ずしもそうとは限りません。 多くの環境は同じ値を返すことができます。 オーディオ データは、システムが Canvas、WebGL、ブラウザのプロパティ、ネットワークの詳細、動作と組み合わせるとさらに便利になります。

AudioContext のフィンガープリントは変更できますか?

はい。 ブラウザとオペレーティング システムの更新、プライバシー保護、オーディオ設定、CPU または演算の変更、テストの設計はすべて出力に影響を与える可能性があります。

シークレットモードではオーディオフィンガープリンティングは停止しますか?

それ自体ではありません。 シークレットモード では、保存された履歴とサイト ストレージが制限されます。 すべての Web オーディオ結果が自動的に変更されるわけではありません。 結果は、ブラウザに組み込まれているフィンガープリント保護によって異なります。

2 つのオーディオ フィンガープリント テストで異なるハッシュが示されるのはなぜですか?

各テストでは、異なる波形、オーディオ グラフ、ノード設定、サンプル範囲、正規化ルール、またはハッシュ アルゴリズムを使用できます。 無関係なハッシュを照合するのではなく、同じツールから繰り返された結果を比較します。

重要なポイント

オーディオ フィンガープリントはブラウザ信号であり、録音または永続的なハードウェア ID ではありません。 他のブラウザーシグナルと並べて読み取り、ネットワークチェックを分離して、同じ方法で結果を比較してください。 これにより、単一のハッシュ以上のことがわかります。

ランダムユーザーエージェント

ランダムなユーザー エージェントは、実際のブラウザ、OS、クライアント ヒント、または TLS の動作と競合する可能性があります。安定した検証済みのテンプレートの方が一貫性がある理由をご覧ください。

詳しく見る

WebGL フィンガープリント

WebGL フィンガープリントは、GPU およびレンダリング信号を通じてブラウザのグラフィック環境を記述します。テスト、VPN、シークレットモードが実際にどのような変更になるかを確認してください。

詳しく見る

デジタル フットプリント

デジタル フットプリントは、投稿、アカウント、トランザクション、観察されたアクティビティを通じて増加します。何がアクティブかパッシブか、誰がそれを使用するか、何が削除できるかを学びます。

詳しく見る

ユーザーエージェントのスプーフィング

ユーザーエージェントのスプーフィングは、ブラウザ自体ではなく、クライアントの主張を変更します。クライアント ヒント、TLS、レンダリング データがどのように不一致を明らかにするかを確認してください。

詳しく見る

ブラウザのフィンガープリンティング

ブラウザのフィンガープリンティングは、Cookie ではなくデバイス、ソフトウェア、グラフィック信号を通じて訪問をリンクします。テストで何が明らかになり、どのコントロールが役立つかを確認してください。

詳しく見る

キャンバスのフィンガープリンティング

キャンバスのフィンガープリンティングは、ブラウザでレンダリングされた画像の小さな違いをハッシュします。信号がどのように作成、テストされ、プライバシー保護の影響を受けるかを確認します。

詳しく見る

MoreLogin で構築を始める

API リファレンスを確認し、コマンドラインで自動化し、MCP 対応ツールを接続し、再利用可能な RPA ワークフローを作成できます。