ツール

Evercookie トラッキングデモ

複数のブラウザストレージメカニズムを悪用して削除試行をかいくぐる「ゾンビ Cookie」の永続化の仕組みを理解します。

教育目的のデモンストレーションのみ

このページは教育目的で Evercookie の概念をデモンストレーションしています。実際にあなたを追跡することはありません。デモは永続性の仕組みを示すためにランダム ID を保存し、いつでも完全にクリアできます。

Evercookie とは?

Evercookie(「ゾンビ Cookie」や「スーパー Cookie」とも呼ばれる)は、同じトラッキング ID を多くの異なるブラウザストレージメカニズムに同時に保存することで、極めて永続的な Cookie を作成する JavaScript API です。

ユーザーが Cookie を削除すると、Evercookie は残りのストレージ場所から自身を再作成します。Evercookie を本当に削除するには、すべてのストレージメカニズムを一度にクリアする必要があります - ほとんどのユーザーはその方法を知りません。

オリジナルの Evercookie は、オンラインでプライバシーを維持することがいかに困難かを示すために、2010年に セキュリティ研究者で Evercookie の作成者 Samy Kamkar によって作成されました。

インタラクティブデモ

デモ用トラッキング ID

生成中...

Cookie だけをクリアしてから「全ストレージを確認」をクリックして、ID が他の場所に残っているか確認してみてください

ストレージメカニズム

Evercookie は17以上の異なるストレージメカニズムを悪用します。以下にブラウザで利用可能なものとその現在のステータスを示します:

各メカニズムの仕組み

標準 HTTP Cookie 一般的

従来の方法 - ブラウザに保存される小さなテキストファイル。ブラウザ設定から簡単にクリアできます。

document.cookie = "tracking_id=abc123; expires=Fri, 31 Dec 9999 23:59:59 GMT";
HTML5 Local Storage 一般的

ドメインあたり最大5〜10MB を保存。明示的にクリアするまで永続化します。「Cookie」をクリアする際に見落とされることがよくあります。

localStorage.setItem('tracking_id', 'abc123');
// Survives browser restart, never expires
HTML5 Session Storage 一般的

localStorage に似ていますが、タブを閉じるとクリアされます。セッション中に他の Cookie を復活させるためにデータを渡すのに使用できます。

sessionStorage.setItem('tracking_id', 'abc123');
IndexedDB 一般的

ブラウザ内の完全な NoSQL データベース。大量の構造化データを保存できます。ユーザーがクリアすることはまれです。

const request = indexedDB.open('evercookie_db', 1);
request.onsuccess = (e) => {
  const db = e.target.result;
  // Store tracking ID in database
};
Canvas フィンガープリント PNG 巧妙

Cookie の値を PNG 画像の RGB ピクセルカラーとしてエンコードし、強制的にキャッシュします。キャッシュされた画像を Canvas に描画しピクセル値を読み取ることで Cookie を読み戻します。

// Encode "abc" as RGB: R=97, G=98, B=99
ctx.fillStyle = 'rgb(97, 98, 99)';
ctx.fillRect(0, 0, 1, 1);
// Later, read it back from cached image
HTTP ETag 巧妙

ETag はキャッシュ検証用ですが、トラッキング ID を保存できます。サーバーが一意の ETag を送信し、ブラウザは後続のリクエストでそれを返します。

// Server response:
HTTP/1.1 200 OK
ETag: "tracking_id_abc123"

// Browser's next request:
If-None-Match: "tracking_id_abc123"
HSTS スーパー Cookie 高度

サブドメインの HSTS ポリシーにビットをエンコードすることで HSTS(HTTP Strict Transport Security)を悪用します。各ビットは HSTS が設定されているかどうかのサブドメインです。

// Encoding "5" (binary: 101) across subdomains:
// bit0.tracker.com → HSTS ON  (1)
// bit1.tracker.com → HSTS OFF (0)
// bit2.tracker.com → HSTS ON  (1)
// Reading: check if browser upgrades each subdomain to HTTPS
Web キャッシュ 巧妙

キャッシュされた JavaScript または HTML ファイル内にトラッキング ID を保存します。ブラウザがキャッシュバージョンを読み込むと、ID が含まれています。

// Server sends with far-future cache headers:
Cache-Control: max-age=31536000
// File contents:
var cached_tracking_id = "abc123";
window.name 巧妙

window.name プロパティは、異なるドメインへのナビゲーションを含め、同じタブ内でのページナビゲーションにわたって永続化します。最大2MB を保存できます。

window.name = "tracking_id=abc123";
// Survives navigation to other sites in same tab!
Flash Cookie (LSO) 非推奨

Flash Local Shared Objects はブラウザの制御外にデータを保存していました。クリアするには Adobe のウェブサイトにアクセスする必要がありました。Flash は現在廃止されていますが、非常に効果的でした。

// ActionScript:
var so:SharedObject = SharedObject.getLocal("evercookie");
so.data.tracking_id = "abc123";
so.flush();
Silverlight Isolated Storage 非推奨

Microsoft の Silverlight プラグインには、ブラウザストレージとは別の独自のストレージメカニズムがありました。Silverlight は現在廃止されています。

履歴盗用 修正済み

ID を含む URL にアクセスすることでブラウザ履歴にデータをエンコードしていました。リンクの :visited スタイルを確認することで読み戻すことができました。ブラウザはこれを修正済みです。

// Create history entries:
location = "http://tracker.com/id/a";
location = "http://tracker.com/id/b";
// Read via CSS :visited (now blocked)

Brave の Evercookie 対策

  • ストレージパーティショニング:サイトごとにストレージを分離し、クロスサイトトラッキングを防止
  • Ephemeral Storage: Third-party storage is cleared when you close the site
  • Canvas Fingerprint Randomization: Defeats PNG-based cookie storage
  • Blocked HSTS Supercookies: Clears HSTS state for tracking domains
  • ETag Stripping: Removes tracking ETags from known trackers
  • Flash/Silverlight なし:レガシープラグインを完全にブロック

プライバシーへの影響

Evercookie は Web プライバシーの根本的な問題を示しています:ブラウザにはデータを保存する場所が多すぎるということです。新しい API(IndexedDB、Service Workers、Cache API)が登場するたびに、トラッカーの新たな隠れ場所が生まれます。

Evercookie はもともと概念実証でしたが、そのバリエーションは以下の目的で実際に使用されています:

  • クロスサイトトラッキングのための広告ネットワーク
  • 不正検出システム
  • ペイウォールの施行
  • 政府の監視ツール

最善の防御策は、ストレージパーティショニングを実装し、既知のトラッキング技術を積極的にブロックする Brave のようなプライバシー重視のブラウザを使用することです。

関連ブラウザプライバシーツール