用語集 · フィンガープリント
Canvasフィンガープリント
HTMLキャンバスの描画方法のわずかな違いからデバイスを特定すること。
定義
Canvasフィンガープリント作成は、ページがHTML Canvas APIを使用してテキストや図形を描画し、その結果得られるピクセルを読み取る技術です。レンダリングはGPU、グラフィックスドライバー、フォント、アンチエイリアシングに依存するため、出力はデバイス間でわずかに異なる可能性があり、そのハッシュ値が1つのフィンガープリント信号となります。
仕組み
- スクリプトがキャンバス要素(多くの場合、不可視)を作成し、2Dコンテキストを使用してテキスト、絵文字、グラデーション、または図形を描画します。
- toDataURL()(画像をデータURLとして返す)やgetImageData()などのメソッドを使用して、その結果を読み取ります。
- ピクセルデータがハッシュ化されます。同一のセットアップでは同一のハッシュが生成される傾向がありますが、異なるハードウェアやフォントスタックでは異なる結果になることがよくあります。
なぜ重要なのか
- 許可のプロンプトを必要とせず、クッキーなしでも動作するため、トラッキングスクリプトや不正防止スクリプトによって広く利用されています。
- これは、出力を一貫させるか、あるいはノイズを加えることによって、アンチディテクトブラウザやプライバシー重視のブラウザが制御しようとしている信号の一つです。
制限とよくある誤解
- "Canvasだけで私が特定される。" それは一つの信号に過ぎません。通常、WebGL、フォント、スクリーンデータなどの他の信号と組み合わされます。
- "ランダムなノイズを加えるのは目に見えない。" 読み取りのたびに変化するノイズは、同じ画像を2回描画して比較することで、それ自体が検出される可能性があります。
例: 内蔵グラフィックスを搭載したノートPCと、独立したGPUを搭載したデスクトップで、同じフォントを使って同じ文章を描画すると、目には見えないものの、ハッシュ化すると異なるピクセルの差が生じることがあります。
いかなるブラウザやプロキシも、アカウントが制限されないことを保証することはできません。各プラットフォームのルールに従ってください。
関連用語
- ブラウザ・フィンガープリント — クッキーなしでブラウザを特定できる、ブラウザとデバイスの特性の組み合わせ。
- WebGLフィンガープリント — WebGLのグラフィックス情報とレンダリング出力を使用してデバイスを識別すること。
ソース
- MDN: Canvas API (ブラウザドキュメント)
- MDN: HTMLCanvasElement.toDataURL() (ブラウザドキュメント)
- W3C: Web仕様におけるブラウザフィンガープリントの軽減 (標準)
確認済み 2026-11-07。