キャンバスフィンガープリンティングとは何か
ブラウザ・デバイス

キャンバスフィンガープリンティングとは何か

キャンバスフィンガープリンティングはHTML5 Canvas APIで非表示画像を描画し、GPUやOSの差異からデバイス固有の識別子を生成します。Cookieも保存も不要な追跡技術です。

7分で読める·

キャンバスフィンガープリンティングは、HTML5 Canvas APIを使って非表示の画像を描画し、 そのピクセルデータを読み取ることでデバイスの固有識別子を生成するブラウザ追跡技術です。 Cookieも、保存データも、削除できるものも何も必要ありません。あなたのブラウザが キャンバスフィンガープリントを公開しているかどうかは、今すぐ whatsmy.fyiでテストできます。

TL;DR

キャンバスフィンガープリンティングは、ブラウザに非表示の画像を描かせてからピクセルデータを 読み取ることでデバイスを識別する追跡手法です。GPU、オペレーティングシステム、フォント レンダラーがそれぞれ画像の描画に微妙な差異をもたらすため、人間の目には見えなくても ハードウェアとソフトウェアの組み合わせに固有のパターンが生成されます。

キャンバスフィンガープリンティングとは何か

キャンバスフィンガープリンティングは、HTML5 Canvas APIを悪用します。これはブラウザウィンドウ内で直接グラフィックを描画するために設計された機能で、 すべての主要なブラウザがサポートしています。フィンガープリンティングスクリプトが実行されると、 完全に非表示のオフスクリーンキャンバス要素を作成し、テキストや図形を描画してから、canvas.toDataURL()を呼び出してピクセルデータをBase64文字列として読み取ります。 その文字列がコンパクトで安定したフィンガープリントにハッシュ化されます。

キャンバスフィンガープリンティングが強力なのは、ピクセル出力がデバイス間で完全に一致しない からです。同じ描画コマンドでも、GPUメーカー、グラフィックスドライバーのバージョン、 オペレーティングシステム、インストールされたフォント、アンチエイリアシング設定によって わずかに異なる結果が生成されます。同じOSと同じブラウザバージョンを持つ2台のマシンでも、 GPUドライバーが異なれば異なるキャンバスハッシュが生成される可能性があります。 Electronic Frontier FoundationのCover Your Tracks ツールは、キャンバス出力をブラウザフィンガープリンティングツールキットの中で最も エントロピーの高いシグナルの一つとして一貫して評価しています。

キャンバスフィンガープリンティングは、より広範な ブラウザフィンガープリンティング 技術ファミリーの一つです。Cookieとは異なり、デバイスへの保存を必要とせず、 閲覧履歴のクリア、プライベートモードの有効化、ネットワークの切り替えによる影響を まったく受けません。

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

このプロセスは4つのステップで行われ、それぞれ数ミリ秒で完了し、ユーザーには完全に 見えません。

ステップ1 — キャンバスの描画

JavaScriptのスニペットがオフスクリーンキャンバス要素を作成し、特定のフォント、色、 ブレンドモードを使用してテキスト、図形、グラデーションの組み合わせを描画します。 描画の複雑さが重要です。単純な幾何学的図形はバリエーションが少なく、シャドウと グラデーションを伴うフォントが多いテキストはより多くのバリエーションを生成します。

ステップ2 — GPUとOSによるレンダリング

ブラウザが描画命令をオペレーティングシステムのグラフィックススタックに渡します。 WindowsではClearTypeがサブピクセルフォントレンダリングを処理します。macOSでは Core Textが独自のヒンティングアルゴリズムを適用します。LinuxではFreeTypeが さらに異なるレンダリングを行います。GPUはアンチエイリアシングと色補間を処理します。 各レイヤーがピクセルレベルで一貫したがデバイス固有の変化をもたらします。

ステップ3 — ピクセルの抽出

スクリプトがcanvas.toDataURL()を呼び出して、完成した画像を Base64エンコードされたPNGとして読み取ります。この文字列はすべてのピクセル値を エンコードしています。レンダリング中に生じたサブピクセルの変化も含まれています。 代わりに、スクリプトがcanvas.getImageData()を使用して生のピクセル バッファに直接アクセスすることもあります。

ステップ4 — ハッシュ化

Base64文字列または生のピクセルバッファがハッシュ化されます。一般的にMurmurHashや MD5を使用して、コンパクトで安定したフィンガープリント値が生成されます。このハッシュが 追跡サーバーに送信され、デバイス識別子として保存されます。

// Minimal canvas fingerprinting example
function getCanvasFingerprint() {
  const canvas = document.createElement('canvas');
  canvas.width = 280;
  canvas.height = 60;

  const ctx = canvas.getContext('2d');

  // Background — color blending varies by GPU
  ctx.fillStyle = 'rgb(255, 102, 0)';
  ctx.fillRect(10, 10, 100, 30);

  // Text — font rendering varies by OS (ClearType / Core Text / FreeType)
  ctx.fillStyle = '#069';
  ctx.font = '18px Arial';
  ctx.fillText('Canvas fingerprint', 2, 45);

  // Shadow — shadow rendering varies by graphics driver
  ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
  ctx.shadowBlur = 6;
  ctx.shadowOffsetX = 2;
  ctx.shadowOffsetY = 3;

  // Returns a Base64 string that differs subtly across devices
  // even with identical browser and OS versions
  return canvas.toDataURL();
}

キャンバスフィンガープリントはどれほど固有か

キャンバスフィンガープリンティングは、全体的なブラウザフィンガープリントに大きな エントロピーをもたらします。研究結果はデータセットと手法によって異なりますが、 方向性は一貫しています。キャンバス出力は特に他のブラウザ属性と組み合わせた場合に 高シグナルの識別子となります。

調査結果出典
キャンバス単体のエントロピー8〜10ビットEFF Cover Your Tracks
キャンバスのみで一意に識別できるブラウザ83.6%BrowserLeaks
上位2万サイトでキャンバスフィンガープリンティングを使用している割合12.7%ACM Internet Measurement Conference, 2025
実世界での全体的な固有性(800万フィンガープリント)33.6%学術フィールドスタディ、2018年
モバイルデバイスでのキャンバス固有性62%ACM Internet Measurement Conference, 2025

実験室での結果(80〜90%の固有性)と実世界のデータ(33.6%)のギャップは、多くの 一般的な設定が同一のキャンバス出力を生成するためです。例えば、同じmacOSと同じ Safariバージョンを実行しているすべてのMacBook Proは同じキャンバスハッシュを共有します。 固有性は珍しいGPUとドライバーの組み合わせを持つデバイスで最も高くなります。 ハードウェアの断片化がより大きいモバイルデバイスはスコアが高くなります。

実世界でのキャンバスフィンガープリンティングの利用者

広告ネットワーク

広告テック企業は行動ターゲティングとフリークエンシーキャッピングのために、ウェブサイト 間でユーザーを追跡するためにキャンバスフィンガープリンティングを使用しています。 主要なブラウザでサードパーティCookieが廃止されるにつれて特に価値が高まりました。 キャンバスフィンガープリンティングは、現在の多くの実装でCookieやユーザーの同意を 必要とせずに同じ識別の役割を果たします。

不正検出プラットフォーム

Fingerprint(旧FingerprintJS) やCastle.ioなどのセキュリティ企業は、アカウント乗っ取り、クレデンシャルスタッフィング、 ボット活動を検出するためにキャンバスフィンガープリンティングを使用しています。 デバイスのキャンバスフィンガープリントがアカウントに記録されているものと一致しない場合、 レビューのためのリスクシグナルがトリガーされます。このユースケースは通常、明示的な 同意を必要とせずGDPRの正当な利益の根拠の下で適格とされます。

ペイウォールと従量制アクセスの施行

ニュースパブリッシャーやサブスクリプションサービスは、Cookieをクリアして従量制の アクセスカウンターをリセットするユーザーへの記事制限を施行するためにキャンバス フィンガープリンティングを使用しています。フィンガープリントは保存データではなく ハードウェアから導出されるため、Cookieの削除やプライベートブラウジングを通じても 持続します。

キャンバスフィンガープリンティングは合法か

ヨーロッパのGDPRの下では、生成されたハッシュが個人に合理的にリンクできる場合(通常 可能です)、キャンバスフィンガープリンティングは個人データの処理を構成します。 フランスのデータ保護機関(CNIL)は、ブラウザフィンガープリンティングを、狭い正当な 利益の免除が適用されない限り、インフォームドコンセントを必要とするものとして明示的に 名指ししています。米国のCCPAおよびCPRAの下では、フィンガープリンティングデータは オプトアウト権の対象となる個人情報として扱われ、フィンガープリンティングの開示なしに 使用する広告テック企業に対して複数の集団訴訟が提起されています。

W3Cフィンガープリンティングガイダンス はキャンバスを「高精度フィンガープリンティングベクター」と認め、新しいブラウザAPIを 設計する際にフィンガープリンティングリスクを考慮するようウェブ仕様の著者に助言しています。 法域を超えた施行は依然として一貫していません。

キャンバスフィンガープリンティングから身を守る方法

完全な防止は困難です。効果的な防御策はウェブ互換性とのトレードオフを伴います。 これらのオプションは最も強力なものから日常使用に最も実用的なものの順に並べています。

  • Torブラウザ(最強の保護):Torはすべてのユーザーが同一のキャンバス ハッシュを返すようにキャンバス出力を正規化し、個人識別を不可能にします。 トレードオフはTorネットワークによる閲覧速度の低下です。
  • Braveブラウザ(日常使用に推奨):Braveは Farbling と呼ばれる技術を使用します。セッションごと、サイトごとにキャンバスピクセル出力に 小さくランダム化されたノイズ値を注入します。フィンガープリントはセッションごとに変化し サイトごとに異なるため、サイト間の追跡が信頼できなくなりますが、視覚的には区別できません。
  • Firefoxとprivacy.resistFingerprintingこのフラグをabout:configtrueに設定すると、FirefoxがTorブラウザに 似た均一なキャンバス出力を返すようになります。デフォルトでは無効です。 キャンバスベースのグラフィックスに依存するサイトが予期しない動作をする場合があります。
  • CanvasBlocker拡張機能(FirefoxとChrome):この拡張機能はcanvas.toDataURL()getImageData()の呼び出しをインター セプトして、完全にブロックするかランダム化されたデータを返すかのどちらかを行います。 ブラウザを切り替えずにフィンガープリント保護が必要なユーザーに役立ちます。
  • 珍しいフォントや特殊なGPUドライバーを避ける:ドライバーを最新の状態に 保ち、標準的なハードウェアを使用することでキャンバス出力の固有性が下がります。 珍しいドライバーバージョンはより独特なレンダリングアーティファクトを生成します。
  • VPNを使用する(ただし限界を理解した上で):VPNはIPアドレスをマスクしますが キャンバス出力には影響しません。追跡の一つの層を排除しますが、フィンガープリンティングには 対処しません。VPNが機能しているかどうかは whatsmy.fyiで確認してください。

よくある質問

キャンバスフィンガープリンティングはシークレット/プライベートモードでも機能しますか?

はい。プライベートブラウジングモードはブラウザが履歴、Cookie、フォームデータを ディスクにローカル保存するのを防ぎますが、GPU、グラフィックスドライバー、OSフォント レンダラーを変更しません。シークレットモードでも通常のウィンドウと同一のキャンバス フィンガープリントが生成されます。BraveやTorブラウザなどアクティブなフィンガープリント ランダム化を持つブラウザのみが異なる動作をします。

VPNでキャンバスフィンガープリンティングを防げますか?

いいえ。VPNはIPアドレスを変更し、暗号化されたトンネルを通じてトラフィックをルーティング しますが、ブラウザのレンダリングスタックには触れません。キャンバスフィンガープリンティングは GPUとOSレベルのレンダリングデータを読み取りますが、これはトラフィックがどのサーバーを 通るかには完全に影響を受けません。キャンバスフィンガープリンティングから保護するには、 Braveブラウザ、privacy.resistFingerprintingを有効にしたFirefox、または Torブラウザを使用してください。

キャンバスフィンガープリンティングはCookie追跡と同じですか?

いいえ。Cookie追跡はデバイスに識別子ファイルを保存し、表示・削除・ブロックできます。 キャンバスフィンガープリンティングは何も保存しません。訪問するたびにデバイスのハードウェアと ソフトウェアの特性から識別子を再構築します。Cookieのクリア、ローカルストレージの削除、 サードパーティCookieのブロックはキャンバスフィンガープリンティングには効果がありません。

JavaScriptを無効にするとキャンバスフィンガープリンティングは止まりますか?

はい。キャンバスフィンガープリンティングの実行にはJavaScriptが必要です。JavaScriptを 完全に無効にすると、フィンガープリンティングスクリプトが実行できません。ただし、 JavaScriptを無効にすると現代のほとんどのウェブサイトが機能しなくなります。より実用的な アプローチはBraveのFarblingやCanvasBlocker拡張機能を使用することで、JavaScript全般の 機能を無効にせずにCanvas API呼び出しを具体的にインターセプトします。

キャンバスフィンガープリンティングとWebGLフィンガープリンティングの違いは何ですか?

どちらもブラウザのグラフィックスレンダリングパイプラインを悪用しますが、異なるAPIを ターゲットにしています。キャンバスフィンガープリンティングは2D Canvas APIを使用し、 フォントレンダリングとサブピクセルテキストの違いに敏感です。WebGLフィンガープリンティングは 3Dグラフィックスを使用し、GPUベンダー名、GPUモデル、ドライバーバージョンを直接公開します。 デバイスの固有性の補完的な次元を捉えるため、しばしば一緒に展開されます。詳細については WebGLフィンガープリンティングガイド をご覧ください。

キャンバスフィンガープリンティングだけでCookieを完全に置き換えられますか?

単独では不十分です。大規模なデータセットでの実世界の固有性は約33.6%です。しかし、 WebGLレンダラーデータ、オーディオフィンガープリンティング、画面寸法、タイムゾーン、 ハードウェア並行性と組み合わせると、複合フィンガープリントはCookieレベルの精度に 近づきます。商業的なフィンガープリンティングプラットフォームは通常30以上のシグナルを 重ね合わせており、キャンバスはその中で最も高い貢献をする個別コンポーネントの一つです。

関連記事

IPアドレス・位置情報・プライバシースコアを今すぐ確認。

ゼロログ・ゼロトラッキング・外部API不使用。

今すぐ確認する →

関連記事

キャンバスフィンガープリンティングとは何か | whatsmy.fyi