ブログに戻る

Canvasフィンガープリントとは?仕組み・確認方法・対策を解説

Canvasフィンガープリントは、代表的なブラウザフィンガープリント技術の一つです。Webサイトは端末の識別やユーザー追跡に利用できます。本記事では、その仕組み、他のフィンガープリントとの違い、確認方法、一般ユーザー向けのプライバシー対策を解説します。

Webサイトを閲覧するときのクリック、マウスの動き、端末モデル、OSのバージョンなどは、Webサイト側で組み合わせられ、固有の識別情報になることがあります。これがブラウザフィンガープリントです。数あるフィンガープリント技術の中でも、Canvasフィンガープリントは特に一般的で安定した手法の一つです。目に見えるものではありませんが、Webサイトでは訪問者を識別するために長く利用されてきました。

Canvasとは?

CanvasはHTML5で提供される描画要素で、Webページ内に置かれた空白のキャンバスのようなものです。開発者はJavaScriptを使って図形、文字、画像を描画し、グラフ、ゲーム、画像処理など多様な視覚表現を実現できます。普段目にするWebサイトのインタラクティブな演出にも、Canvasが多く使われています。

Canvasフィンガープリントはどのように生成される?

異なる端末に「同じ図形を描画させる」場合でも、結果が完全に同じになるとは限りません。描画処理がハードウェアとソフトウェアの両方に依存するためです。

  • グラフィックカードとドライバー:グラフィック描画はGPUが担当し、GPUやドライバーの違いによってアンチエイリアス、グラデーション、色の処理にわずかな差が生じます;
  • OS:Windows、macOS、Linuxでは、フォント描画やグラフィックスインターフェースの実装が異なります;
  • ブラウザとエンジン:ブラウザごとにCanvas APIの実装に差があります;
  • ディスプレイとカラー設定:色域、ガンマ値なども最終的な出力に影響する場合があります。

Webサイトは通常、スクリプトを使って訪問者のブラウザに同じ内容(多くの場合は図形と文字の組み合わせ)をCanvas上へ描画させます。その後、Canvasの内容を画像データに変換し、hashを計算します。描画結果が端末によって異なるため、このhashが比較的安定した「端末フィンガープリント」になります。

Canvas描画のピクセル差から端末hash信号が生成されるまでの流れ

差は非常に小さいことがあります。同じ図形でも、端末によってアンチエイリアスされた輪郭の数ピクセルだけが異なる場合がありますが、計算されるhashはまったく別の値になり、端末を区別するには十分なことがあります。

Canvasフィンガープリントは何に使われる?

  • 識別と追跡:ログインしていなくても、WebサイトがCanvasフィンガープリントを使って端末を記憶し、ページ間、場合によってはサイト間で行動を関連付けることがあります;
  • 不正対策とリスク管理:EC、決済、ソーシャルプラットフォームでは、一括登録やアカウント共有などの異常行動を見つけるためのリスク信号の一つとしてCanvasフィンガープリントを利用する場合があります;
  • 広告ターゲティング:一部の広告ネットワークでは、サイトをまたいだ行動プロファイルの作成に利用されます。

ただし、Canvasフィンガープリントだけで「あなたが誰か」を特定できるケースは通常多くありません。これは数多くの信号の一つです。IPアドレス、User-Agent、タイムゾーン、フォントなどの情報と組み合わせることで、識別能力は大きく高まります。

Canvas・WebGL・フォントフィンガープリントの違い

3つはいずれも「端末の描画差」を利用するタイプですが、情報源が異なります。

  • Canvasフィンガープリント:2D Canvasの描画結果の違いから生成されます;
  • WebGLフィンガープリント:3Dグラフィックス描画の違いを利用します。WebサイトがWebGL vendorやrenderer stringなどのGPU描画パラメータを読み取り、端末識別に使う場合があります;
  • フォントフィンガープリント:システムにインストールされているフォント一覧を検出し、OSや端末を推定します。

これらは組み合わせて使われることが多く、Webサイトのリスク管理システムにおける「端末環境の特徴」を構成します。

自分のCanvasフィンガープリントを確認する方法

BrowserScanやPixelScanなどの公開フィンガープリント確認サイトを利用できます。「browser fingerprint test」などで検索すると類似サービスも見つかります。こうしたサイトでは、Canvas、WebGL、フォント、タイムゾーンなど複数のフィンガープリント情報が表示されます。結果にCanvasフィンガープリントの存在が示されたり、安定したhashが表示されたりする場合、その端末はこの方法で識別可能であることを意味します。ただし、第三者のテストサイトによる結果はあくまで参考であり、特定のプラットフォームによる公式判定を示すものではありません。

一般ユーザーができる対策

Canvasはブラウザの通常機能の一部であるため、Canvasフィンガープリントを完全になくすことは簡単ではありません。ただし、追跡される度合いを下げることはできます。

  • プライバシー重視のブラウザを使う、またはブラウザのプライバシー保護/厳格なトラッキング防止モードを有効にする;
  • フィンガープリント対策拡張機能を導入することで、Canvas読み取りをブロックしたりノイズを加えたりする;
  • Cookieやサイトデータを定期的に削除することで、フィンガープリントとアカウント行動の長期的な結び付きを減らす;
  • OSとブラウザを最新の状態に保つ。新しいブラウザにはフィンガープリント追跡に対する組み込み制限が増えています。

複数のビジネス環境を管理する場合は?

越境ビジネスや複数アカウントの管理では、考えるべきポイントが異なります。目的は「自分を隠す」ことではなく、各ビジネスアカウントを安定して管理可能な環境で運用し、端末特性が互いに干渉して誤判定につながるリスクを減らすことです。

PurpleMarkでは、ブラウザ環境を作成する際にCanvas、WebGL、フォントなどのフィンガープリントパラメータを設定できます。異なる環境に異なる端末特性を持たせながら、各環境内ではパラメータを一貫させることができます。これにより、店舗やアカウントごとに長期運用時の「端末プロファイル」を安定させ、起動するたびに変わる状態を避けられます。なお、フィンガープリントパラメータはあくまで環境設定機能です。実際のビジネス上のコンプライアンスは、利用するプラットフォームのポリシーを守っているかどうかに左右されます。環境管理ツールを身元の偽装やプラットフォーム規則の回避に利用することはできず、また行うべきではありません。

よくある質問

Canvasフィンガープリントだけで個人を一意に識別できますか? 単独ではまれです。通常は複数の信号の一つであり、IP、システム情報、行動データなどと組み合わせることで識別能力が高まります。

JavaScriptを無効にすればCanvasフィンガープリントを防げますか? 多くのサイトで収集を止められる可能性がありますが、その代わり多くのWebサイトが正常に動作しなくなります。プライバシー重視のブラウザやフィンガープリント対策拡張機能の方が、よりバランスのよい方法です。

Canvasフィンガープリントはウイルスですか? いいえ。Webサイト上の通常のスクリプト処理であり、マルウェアではありません。ただしプライバシー追跡に関係するため、議論の対象になっています。

フィンガープリント確認サイトで異常表示が出たら、端末に問題があるということですか? 必ずしもそうではありません。テストツールごとにアルゴリズムや参照データベースが異なるため、結果は参考情報です。本当に重要なのは、実際に利用しているプラットフォーム上でのアカウント状態です。