ブラウザフィンガープリントと Cookie の違い
| Cookie などのストレージ | ブラウザフィンガープリント | |
|---|---|---|
| 保存場所 | あなたのブラウザ内 | 保存されず、ウェブサイトがアクセスのたびに読み取って算出 |
| 消去できるか | 消去可能。シークレットモードも使える | 消去できない。同じデバイスでは通常、長期間変わらない |
| 主な用途 | ログイン状態、ショッピングカート、各種設定の保持 | デバイスの識別、不正防止、リスク管理、広告のアトリビューション |
主なフィンガープリント項目
| 項目 | 読み取られる情報 | よくある不整合 |
|---|---|---|
| User-Agent と Client Hints | ブラウザのブランドとバージョン、OS、アーキテクチャ | UA では Chrome 144 なのに、Client Hints や Worker では別のバージョンになっている |
| 画面 | 解像度、利用可能な高さ、色深度、デバイスピクセル比 | 利用可能な高さが OS のタスクバーと合わない |
| 言語とタイムゾーン | navigator.language、Accept-Language、Intl のタイムゾーン | タイムゾーンが IP の所在地と一致しない |
| フォント | インストール済みフォントの一覧と描画幅 | UA は Windows なのに macOS 専用フォントが検出される |
| Canvas | テキストと図形の描画結果のハッシュ | 読み取るたびに変わる(ランダムノイズ)、または GPU と合わない |
| WebGL / WebGPU | GPU のベンダーとレンダラー、パラメーター、ピクセルの結果 | Windows なのに Apple の GPU が報告される |
| Audio | AudioContext の処理結果のハッシュ | 同じデバイスでも結果が毎回安定しない |
| ClientRects | 要素サイズのわずかな差異 | メインウィンドウと iframe で結果が異なる |
| ハードウェア | CPU コア数、デバイスメモリ | コア数が機種と明らかに合わない |
| WebRTC | ローカルとパブリックの IP 候補アドレス | プロキシを使っていても実際のパブリック IP が漏れる |
| 自動化の痕跡 | navigator.webdriver、ヘッドレスブラウザの識別子 | 自動化ツールが残すプロパティ |
なぜ「ランダム」より「一貫性」が重要なのか
実在するデバイスの特徴は互いに整合しており、長期間変わりません。そのため、検出を行うサイトは、ある値が珍しいかどうかだけでなく、次のように各値が同時に成り立つかどうかを重視します。
- 項目間の一貫性:OS、フォント、GPU、画面、ブラウザのバージョンが同じ種類のデバイスのものであること。
- コンテキスト間の一貫性:メインページ、iframe、Worker で読み取られるアイデンティティが同じであること。
- 時間を通じた安定性:同じデバイスならアクセスのたびに同じフィンガープリントが得られること。毎回変わる「ランダムノイズ」は、それ自体が異常のサインです。
- ネットワークとの一貫性:タイムゾーン、言語、位置情報が出口 IP の所在地と一致していること。
自分のブラウザフィンガープリントをチェックする方法
| ツール | 主なチェック内容 |
|---|---|
| CreepJS | 複数コンテキスト間の一貫性、Canvas、WebGL、Audio、フォント、Intl など。疑わしい値は「嘘(lies)」として表示 |
| Pixelscan | ブラウザ、OS、位置、自動化、フィンガープリント偽装の整合性 |
| BrowserLeaks | Canvas、WebGL、フォント、WebRTC、Client Hints などの生データを項目別に確認 |
| IPhey | ブラウザ、位置、IP、ハードウェア、ソフトウェアの総合評価 |
2 つのプロファイルを同時にテスト
アンチディテクトブラウザの価値はプロファイル同士が区別されることにあり、1 つのプロファイルだけをテストしても問題は見えてきません。
再起動してもう一度テスト
同じプロファイルを閉じて開き直しても、重要な値(Canvas、WebGL、タイムゾーン)は変わらないはずです。
この PC の実際のブラウザと比較
同じ PC の公式 Chrome でも、一部のページでは赤く表示されることがあります。まず、どの警告がチェックサイト独自の判定基準によるものかを確認してください。
色ではなく項目を記録
テスト日時、OS、ブラウザとカーネルのバージョン、プロキシ、具体的に不合格となった項目を記録します。判定ルールは更新されるため、結果はその時点のものにすぎません。
Prism はこれらの項目をどう扱うか
Prism のフィンガープリント設定は、独自にビルドした Chromium カーネルが内部で処理するもので、ウェブページへのスクリプト注入には依存しません。OS、CPU、画面、GPU は同じ 1 つのハードウェアテンプレートから決まり、Canvas、WebGL、Audio などの細部は各プロファイルのフィンガープリントシードで固定されます。項目ごとの説明はフィンガープリント設定とハードウェアテンプレートをご覧ください。
よくある質問
- Cookie を消去したりシークレットモードを使ったりすれば、フィンガープリントは変わりますか?
- 変わりません。フィンガープリントはデバイスとブラウザ自体の特徴から生じるため、ストレージを消去しても変わりません。
- プロキシを使えば、ブラウザフィンガープリントは変わりますか?
- プロキシが変えるのはネットワークの出口だけです。タイムゾーン、言語、WebRTC などから不整合が見えてしまう可能性があるため、フィンガープリントと合わせて設定する必要があります。
- フィンガープリントは独特であるほど識別されやすいのですか?
- 珍しい組み合わせほど見分けられやすくなりますが、より重要なのは矛盾した組み合わせです。ランダムに寄せ集めるよりも、一般的で完全なハードウェアの組み合わせを使うほうが確実です。
- チェックページで赤く表示されたら、必ず問題があるのですか?
- そうとは限りません。まず具体的な項目を確認し、同じ PC の実際のブラウザと比較してください。プロキシの検出、フォントの違い、サイトのルールなども警告の原因になります。