オーディオによる識別
- オーディオ識別手法は、ブラウザのオーディオAPIを使ってオーディオ信号を生成し、生成されたオーディオ信号サンプルをすべて加算して単一の数値に変換する方式。
- この数値はフィンガープリント(識別子)として使われ、Cookieを削除したりシークレットモードに切り替えたりしても変化しない安定性を持つ。
- ただし識別子はそれほど強い一意性を持たないため、多くのユーザーが同じ識別子を持つ可能性がある。
Safari 17がオーディオフィンガープリンティングを妨害する方法
- Safari 17は高度なフィンガープリンティング保護機能を導入し、プライベートブラウズモードではデフォルトで有効、通常モードでは無効になっている。
- この保護機能は、各オーディオサンプルにランダムなノイズを追加してフィンガープリントの精度を下げる。
- その結果、オーディオフィンガープリントは計算するたびに変化し、識別には使えなくなる。
Safari 17の高度なフィンガープリンティング保護を回避する方法
- Safariが追加するノイズを除去するためにフィンガープリンティングアルゴリズムを改良する3つの段階: ノイズ分散の低減、ブラウザ識別番号の間隔拡大、残ったノイズを除去するためのフィンガープリントの丸め。
- ノイズ低減のために複数のオーディオフィンガープリントを組み合わせ、ブラウザ間のオーディオサンプル差を広げるために基本信号を変更する。
- 結果を安定化させるため、重要な数字を維持しつつオーディオサンプルを丸める。
性能
- 新しいフィンガープリンティングアルゴリズムは既存アルゴリズムに比べて性能が約1.5〜2倍低下するが、それでも低性能なデバイスでも計算時間は短い。
- ページの応答性を維持するため、OfflineAudioRenderスレッドで一部の処理を行う。
プライバシー重視ブラウザでの動作
- TorやBraveのようなプライバシー重視ブラウザも、オーディオフィンガープリンティングを制限しようとしている。
- TorではWeb Audio APIが完全に無効化されており、オーディオフィンガープリンティングは不可能。
- BraveはSafari 17と似たアプローチを使い、オーディオ信号にノイズを追加する。
FingerprintJSでの利用
- 新しいオーディオフィンガープリンティングアルゴリズムが、FingerprintJSで既存アルゴリズムを置き換える。
- オーディオフィンガープリンティングは、ブラウザフィンガープリントを生成するために使われる多くのシグナルの1つであり、各シグナルの安定性と一意性を個別に分析して、フィンガープリント精度への影響を判断する。
GN⁺の見解
- Safari 17のオーディオフィンガープリンティング妨害機能は、ユーザーのプライバシー保護を強化しようとするAppleの取り組みを示している。これはユーザーにより大きなプライバシーを提供できる可能性がある。
- しかしFingerprintJSのようなサービスは、こうした保護機能を回避してなお識別を可能にしており、プライバシー保護とセキュリティの継続的な緊張関係を浮き彫りにしている。
- この技術がサイバーセキュリティでどのように活用できるかについて、さらなる議論が必要である。たとえば、不正行為の防止やユーザーアカウント保護に利用できる。
- 類似の機能を提供する他のオープンソースプロジェクトとしてPrivacy BadgerやuBlock Originがあり、これらはユーザー追跡のブロックに役立つ可能性がある。
- 技術導入にあたっては、ユーザーのプライバシーとWebサイトのセキュリティ要件の間でバランスを取ることが重要である。この技術の利点はユーザー識別精度の向上だが、プライバシー侵害のリスクも考慮する必要がある。
1件のコメント
Hacker Newsの意見
GPUフィンガープリンティング手法
オーディオフィンガープリンティングの可能性
データ流出防止のためのノイズ付加の非効率性
Web Audio API仕様とオシレーターのアンチエイリアシング処理
ブラウザ内のAudio API実装への批判
サンプリングノイズ付加方式の改善提案
JavaScript無効化を好むユーザーの意見
Audio APIプロトタイプ変更によるフィンガープリンティング妨害
オーディオ処理フィンガープリンティングの基盤
<canvas>を使ってグラフィックデバイス間の違いを露出させる方法があったことにも言及。