ブラウザはあなたのデータを漏洩している——その止め方

· 2026-03-31 更新 · nologin.tools
privacy browser guide analysis

Hero image

新しいシークレットタブを開きます。Cookie なし、履歴なし、ログインなし。匿名のように感じられます。

しかし実際は、まったく匿名ではありません。

EFF の Panopticlick 研究によると、83.6% のブラウザは一意のフィンガープリントを持っています。Cookie を一切使わずに、あなたが訪問するすべてのサイトで個人を特定できるほどの情報量です。ブラウザ拡張機能を加えると、その数字は 94.2% まで上昇します。シークレットモードはこの問題に対して無力であり、Cookie を削除しても同様です。

では、実際に何が漏洩しており、どう対処できるのかを見ていきましょう。

ブラウザが実際に送信しているもの

ページを読み込むたびに、ブラウザは自分自身についての大量の情報を自動的に送信しています。JavaScript が実行される前の段階で、HTTP リクエストヘッダーにはすでにブラウザ名とバージョン、オペレーティングシステム、優先言語、エンコーディングのサポート情報が含まれています。これはすべて自動的に行われ、確認を求めるプロンプトも同意も必要ありません。

JavaScript によってさらに多くの情報が収集されます。サイトはスクリーン解像度(タスクバーによる余白も含む)、正確なタイムゾーン、CPU コア数、デバイスのメモリ容量(2 の累乗に丸められますが、それでも有用です)、好みの配色テーマを読み取れます。これらはいずれも許可ダイアログを必要としません。

FingerprintJS のような現代のフィンガープリント収集ライブラリは、ブラウザごとに 100 以上の個別属性を収集します。これらをハッシュ値にまとめると、セッションをまたいでも、同じマシンの異なるブラウザでも、シークレットモードでも持続する識別子が生成されます。FingerprintJS は、Cookie が削除された後でも訪問者を再識別する精度が 99.5% に達すると主張しています。

不快な真実として、多くの人が「プライバシー保護」と考えているもの——Cookie の削除、VPN の使用、シークレットモードの利用——は、フィンガープリントに対してまったく効果がありません。それらは別の問題への対処法なのです。

WebRTC の問題(VPN が助けにならない理由)

WebRTC は、ブラウザ内ビデオ通話を実現する API です。Google Meet、Discord、Zoom のウェブ版などがこれを使用しています。ブラウザ間で直接ピアツーピア接続を確立するため、実際のネットワークアドレスを把握する必要があります。

問題はここにあります。ウェブサイトは数行の JavaScript だけで WebRTC 接続を開始できます。ユーザーの操作も許可も不要です。ピア間の最速経路を見つけるため、WebRTC は ICE(Interactive Connectivity Establishment)というプロトコルを使い、公開 STUN サーバーに問い合わせます。そして STUN サーバーの応答には、あなたの実際のパブリック IP アドレスが含まれています。

VPN はこれを遮断できません。WebRTC トラフィックは UDP を使用しており、ブラウザの HTTP トラフィックとは異なる方法で OS のネットワーク層で処理されます。ほとんどの VPN 実装は単純にこれを傍受しません。つまり VPN を使用していても、ウェブサイトは以下のコードを実行することで 1 秒以内に実際の IP アドレスを取得できます。

const pc = new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"}]});
pc.createDataChannel("");
pc.createOffer().then(o => pc.setLocalDescription(o));
pc.onicecandidate = e => { /* your real IP is in e.candidate.candidate */ };

これが WebRTC 漏洩と呼ばれるものです。商業的なフィンガープリント SDK、広告技術プラットフォーム、不正防止システムでも広く使われています。

ブロックする方法: Firefox では about:configmedia.peerconnection.enabledfalse に設定することで WebRTC を完全に無効化できます。ただしブラウザ内ビデオ通話が使えなくなるので、トレードオフです。uBlock Origin の詳細設定には「WebRTC がローカル IP アドレスを漏洩するのを防ぐ」というオプションがあり、より副作用が少ない方法です——WebRTC の動作を維持しながらローカル IP の露出をブロックします。Brave はシールドパネルでデフォルトからローカル IP 漏洩をブロックしています。

IPLeak で現在のブラウザが公開している WebRTC ICE 候補を確認することで、漏洩しているかどうかを検証できます。

DNS 漏洩:VPN のもう一つの穴

ブラウザにドメイン名を入力すると、DNS リゾルバーがそれを IP アドレスに変換します。VPN を使用している場合、そのクエリは VPN トンネルを通じて VPN プロバイダーのリゾルバーに送られるべきです——ISP のリゾルバーではなく。

DNS 漏洩とは、VPN にもかかわらずクエリが ISP に送られてしまうことです。これにより、訪問したすべてのドメインが ISP に筒抜けになります。トラフィックの内容は暗号化されたままですが、ISP は「火曜日の午後 9 時 14 分に example.com にアクセスした」ことを把握できます。これだけで詳細な行動プロファイルを作成するには十分です。

DNS 漏洩はいくつかの技術的な理由で発生します。Windows にはスマートマルチホーム名前解決という機能があり、利用可能なすべてのネットワークアダプターに対して同時に DNS クエリを送信し、最初の応答を使用します。つまりクエリは VPN リゾルバーと ISP リゾルバーの両方に同時に送られます。多くの VPN クライアントはこの動作を正しく上書きしません。

IPv6 も一般的な原因です。多くの VPN は IPv4 トラフィックしかトンネリングしません。ルーターと OS が IPv6 をサポートしている場合、その経路の DNS クエリは VPN トンネルを完全にバイパスします。

ISP によっては透過的 DNS プロキシを使って悪化させる場合もあります。ポート 53 の UDP トラフィックをすべて傍受し、たとえ 1.1.1.1 や 8.8.8.8 を使うよう設定していても、自分たちのリゾルバーにリダイレクトするのです。

漏洩の確認方法: DNS Leak Test で拡張テストを実行します。一意のサブドメインへの DNS クエリを送信し、どのリゾルバーが応答するかを確認します。結果に VPN プロバイダーではなく ISP のサーバーが表示された場合、漏洩が確認されています。

修正方法はセットアップによって異なりますが、ブラウザで DNS over HTTPS(DoH)を有効にするのが妥当な出発点です。システムリゾルバーを完全にバイパスできます。Firefox では「設定→プライバシーとセキュリティ→HTTPS による DNS」から設定できます。「最大限の保護」に設定して、システムリゾルバーへのフォールバックを防ぎましょう。

Canvas と音声フィンガープリント(より不気味な手法)

WebRTC をブロックし DNS を保護した後でも、ネットワークにまったく依存しないフィンガープリント技術が存在します。これはハードウェアがグラフィックをレンダリングする際の微細な差異を利用するものです。

Canvas フィンガープリントの仕組みはこうです。スクリプトが非表示の <canvas> 要素にテキストと図形を描画し、ピクセルデータを読み取ります。出力は GPU モデル、GPU ドライバーのバージョン、OS、フォントレンダリングエンジンによって微妙ながらも測定可能な差異が生じます。macOS は CoreText、Windows は DirectWrite、Linux は FreeType を使用し、それぞれ異なるサブピクセルアンチエイリアス処理を行います。2014 年の学術論文「The Web Never Forgets」は、当時上位 10 万サイトの 5% で Canvas フィンガープリントが使われていることを発見しました。それから 10 年以上が経過した現在、普及率はさらに高まっています。

音声フィンガープリントも同様です。スクリプトが AudioContext を作成し、オシレーターをアナライザーに通して出力値を読み取ります。ハードウェアが音声を処理する際の微細な浮動小数点の差異は、セッションをまたいで個人を特定するのに十分なほど安定しています。マイクへのアクセスは一切不要です。

Canvas と WebGL フィンガープリントを組み合わせると、それぞれ約 15 ビット以上のエントロピーを持ちます。つまり約 32,768 ブラウザのうち 1 つしか同じ Canvas フィンガープリントを持ちません。スクリーン解像度、タイムゾーン、CPU コア数、User-Agent と組み合わせると、サンプルサイズは 1 になります。

皮肉なことに、プライバシー拡張機能を入れるとより識別しやすくなることがあります。「中程度のモード」で uBlock Origin を特定の拡張機能セットと組み合わせて使っている少数のユーザーであれば、その構成自体が識別シグナルになってしまいます。

今すぐ自分をテストする

何かを変更する前に、実際に何を公開しているかを確認する価値があります。

EFF の Cover Your Tracks が最良の出発点です。数百万の実際のフィンガープリントデータベースと照合し、あなたのブラウザがどれだけ独自性を持っているかを属性ごとのエントロピースコアとともに教えてくれます。「あなたのブラウザは一意のフィンガープリントを持っています」は識別可能を意味し、「強力な保護」はあなたのブラウザが多くの他のブラウザと同じに見えることを意味します——これが実際の目標です。

BrowserLeaks はさらに詳細です。WebRTC 漏洩、Canvas フィンガープリント、WebGL 詳細、インストール済みフォント、TLS フィンガープリントなどの個別テストページがあります。WebRTC テストから始めることをお勧めします——最も意外な結果が出る可能性が高いです。

PrivacyTests は元 Firefox プライバシーエンジニアが運営しており、20 以上のプライバシーテストでブラウザを相互比較しています。特定のブラウザをテストするというより、Chrome、Firefox、Brave、Safari、Tor Browser を標準化されたシナリオで比較するものです。ブラウザの乗り換えを検討する前に読む価値があります。

実際に効果がある対策

正直なところ、すべての問題を解決できる単一の設定は存在しません。ただし以下の変更には、測定可能で文書化された効果があります。

ブラウザを変える。 これが最もインパクトの大きな変更です。Brave はデフォルトで WebRTC ローカル IP 漏洩と Canvas フィンガープリントをブロックします——各セッションで Canvas・音声出力にランダムなノイズを加えることで、サイトをまたいだ関連付けを不可能にしつつ、ウェブの利便性を損ないません。Firefox の privacy.resistFingerprinting = true は異なるアプローチを取り、すべてを汎用ブラウザのように見せます(固定スクリーンサイズ 1000×900、UTC タイムゾーン、汎用 UA 文字列)。これにより同設定を有効にしているすべての Firefox ユーザーと同じように見えます——これが正しいモデルです。

ブラウザCanvas FPWebRTC IPDNS-over-HTTPSサードパーティ Cookie
Chromeなし漏洩オプション部分的にブロック
Firefox(デフォルト)なし漏洩オプション厳格(ETP)
Firefox(RFP)ランダム化無効化オプション厳格
Braveランダム化ブロック済みオプションブロック済み
Tor Browser統一化無効化非対応(Tor 使用)ブロック済み

uBlock Origin をインストールする。 Firefox では中程度のモードを使用します(デフォルトですべてのサードパーティスクリプトをブロックし、必要に応じてホワイトリストに追加)。詳細設定で「WebRTC がローカル IP アドレスを漏洩するのを防ぐ」を有効にします。これによりほとんどのフィンガープリントスクリプトが実行前にブロックされます。Chrome では、Google の Manifest V3 変更が拡張機能の機能をさらに制限する前に導入しておきましょう。

DNS over HTTPS を有効にする。 Firefox と Chrome の両方がネイティブサポートしています。Cloudflare(1.1.1.1)または NextDNS を使用しましょう。特に NextDNS はブラウザが解決しているドメインを正確に把握できるので、ページ上で何が動いているかを監査するのに役立ちます。

User-Agent を固定する。 元の Panopticlick 研究によれば、UA 文字列だけで約 10.5 ビットのエントロピーを持ちます。Firefox の privacy.resistFingerprinting はこれを自動的に処理します。Chrome では、UA-CH API(User-Agent Client Hints)が従来の UA 文字列に置き換わりつつありますが、エントロピーを減らすという意図に反して展開は一貫していません。

Tor Browser はフィンガープリント耐性のゴールドスタンダードです。フィンガープリントに使われるすべての属性を、すべての Tor ユーザーで同一になるよう標準化します——同じ UA、同じスクリーンサイズ、同じフォント、同じタイムゾーン。目標はブロックではなく均一性です。すべての Tor Browser ユーザーは同じに見えます。フィンガープリントのコストを上げるだけでなく、真に打ち負かす唯一のアプローチです。

ほとんどの人にとって、Brave または uBlock Origin を入れた Firefox で 80% の保護が達成でき、日常使いのサイトを壊すこともありません。これは合理的なトレードオフです。

自分だけでは完全に解決できないのが TLS フィンガープリントです——HTTPS ハンドシェイク中にブラウザが送信する暗号スイートの順序と TLS 拡張値は、HTTP より前のネットワークレベルでブラウザを特定するのに十分です。Cloudflare などの CDN はすでに JA3 ハッシュ(標準化された TLS フィンガープリント)をボット検出に使用しています。ブラウザ拡張機能ではこの層に触れることができません。解決可能な問題ですが、ブラウザ自体が修正する必要があります。

ウェブには多くのユーザーが気づいていない監視インフラが組み込まれています。良い知らせは、いくつかの具体的な変更——より良いブラウザ、1 つの拡張機能、DNS over HTTPS の有効化——で漏洩を大幅に減らせることです。Cover Your Tracks から始めて、結果を確認し、何を許容できるか判断してみてください。

最後に一つ付け加えると、プライバシーを最も尊重するツールは、自分を識別する必要がないものです。登録不要で使えるプライバシーフレンドリーなツールは、プロファイルが存在しないため、セッションデータをプロファイルに紐付けることができません。どれだけ多くの優秀なログイン不要ツールが存在するか知りたい方には、nologin.tools がキュレーションされたリストを維持しています——画像編集からファイル共有、開発者向けツールまで、すべてアカウント作成不要で使えます。効率を落とさずにオンラインフットプリントを減らす実践的な方法です。