← ブログに戻る

ブラウザフィンガープリントとは?一つひとつの項目は平凡でも、組み合わせればあなたを特定できる

サイトがあなたを特定するのに、ログインは必要ありませんし、あなたの端末に何かを入れる必要もありません。ブラウザはページを開くたびに、自ら一定の情報を差し出しています。

こうした情報は寄せ集めると十分に安定しています。閲覧履歴を消しても残ります。見知らぬサイトでも、同じ端末だと分かってしまいます。これがブラウザフィンガープリントです。

MostMate は、複数アカウント運用に向けたフィンガープリントブラウザです。扱っているのは、まさにこの話の裏側にあたる部分です。同じ1台のパソコン上で、アカウントごとに独立し、かつそれぞれが矛盾のないブラウザアイデンティティを与える。

以下では4つの問いに沿って進めます。指紋は何でできているのか。サイトはどの経路から取得するのか。スクリプトを切れば逃れられるのか。そして自分で一度試すにはどうすればよいのか。

一つひとつは珍しくない、組み合わせて初めて人を特定できる

一つずつ見れば、どれも人を特定するには使えないほど平凡です。1366×768の画面はどこにでもあります。Chromeの識別文字列も掃いて捨てるほどあります。東八区には何億人も住んでいます。

実際に効いてくるのは積集合です。画面サイズが一つのふるい。OSが一つ。グラフィックボードの型番が一つ。フォント一覧・タイムゾーン・言語設定がそれぞれ一つ。重ねるたびに残る人が減っていき、七、八層まで重ねると、たいてい一人だけになります。

EFFは2010年に公開実験を行い、約47万件のブラウザ情報を集めました。そのうち83.6%は、このふるいの組み合わせですでにオンリーワンでした。

研究者は結果を情報量に換算しました。1台のブラウザは平均して少なくとも18.1ビットの識別力を持ちます。無作為に1台選んでも、およそ28万台に1台しかぶつかりません。実験の完全な結論はEFFの公開レポートに書かれています。この数字はその後、繰り返し引用されてきました。繰り返し誤読されてもきました。

この数字は「誰もが丸裸だ」と読まれがちです。しかしむしろ、こう受け取るべきでしょう。指紋の強さは、ある項目がどれだけ珍しいかから来るのではなく、どれだけ多くの項目が同時に一致するかから来る。 特に珍しい値が一つあると、かえってその端末は統計的に浮いた存在になります。

項目数よりも重要なことがもう一つあります。それは安定性です。指紋が役に立つのは、明日も来月も同じ場所にあるからです。起動のたびに別のパラメータ一式を差し出すブラウザもあります。それは毎日新しい識別手がかりを自ら提供しているのと同じです。

3つの研究が3つの数字を示す、違いはサンプリング方法に隠れている

一つの数字だけ覚えていると、誤った結論を導きやすくなります。同種の研究は一度きりではなく、条件が違えば結果も大きく異なります。

研究サンプル規模一意な指紋の割合サンプルの出どころ
EFF、2010年約47万件83.6%自ら進んで検査を受けた訪問者
INRIA、2016年約11.9万件89.4%自ら進んで検査を受けた訪問者
フランスのサイト、2018年約207万件33.6%一般ニュースサイトの自然な訪問者

上2行のデータは、検査専門のサイトから得たものです。進んで検査を受けようとする人は、もともとプライバシーへの関心が高く、端末や設定も一般のネット利用者より揃っています。

3行目はシチュエーションが違います。計測スクリプトは、アクセス数上位15位に入るフランスのニュースサイトに設置されました。2つのページの自然な訪問者からデータを集めています。天気予報と政治ニュースです。使われた属性は、同じ十数項目でした。

同じ属性でも、相手が変われば九割近くから三分の一に。

つまり一意性は端末に備わった固有の性質ではありません。それは、三つのことが同時に成り立つかどうかで決まります。何項目を取得したか、誰を対象に取得したか、どんな方法で取得したか。 2021年になると、研究者は属性の範囲を十数項目から二百数十項目に広げました。そのうえで再測定しています。一意な割合は再び81%に戻りました。項目数が増えれば、人は分かれていきます。

そのフランスのサイトの研究には、もっと実用的な発見もあります。一意でなかった指紋は「壊れやすい」と表現されました。

何万人とも重なっていた端末でも、設定を少し動かすだけでオンリーワンの層に落ちることがあります。ブラウザのアップデート。拡張機能の追加。解像度の変更。どれも該当します。「他人とぶつかった」ことは安全の証明ではなく、まだ分けられていないだけにすぎません。

指紋の取得経路は3つ、うちスクリプトに依存するのは1つだけ

「サイトは結局何を見ているのか」と問うなら、三つの層に分けて見る必要があります。三つのうちスクリプトに依存するのは一番下の層だけで、残り二つはスクリプトが動く前にすでに完了しています。公式サイトで環境分離を説明するときも、端末・ブラウザ・ネットワークの三層という分け方を使っています。

接続層:リクエストを送る前に、アドレスはすでに記録されている

ページを開く前に、ブラウザはまずサーバーと一度ハンドシェイクし、それからリクエストを送ります。この過程で、サーバーはすでにあなたの出口アドレスと、一連のネゴシエーションパラメータを手にしています。

ネゴシエーションパラメータには、双方が対応する暗号化方式、拡張項目、優先順位が含まれます。何を報告するのか。どの順で報告するのか。どちらもブラウザのバージョンと実行環境で決まります。これらの値はページの内容には関わりません。同意を求めることもありません。通信そのものの副産物です。

アドレスにこのパラメータ一式が加われば、すでに一度目の粗いふるい分けが成立します。回線がどの事業者に属するか、相手がどのバージョン・どのブラウザらしいかは、おおよそ見当がつきます。

リクエストヘッダー層:ブラウザが毎回いくつか自ら申告する

リクエストヘッダーは、ブラウザがリクエストに添える説明書きです。ほぼ毎回ある項目もいくつかあります。たとえば、どの言語を受け付けるか。どの圧縮方式に対応するか。自身の識別文字列。どのページから遷移してきたか。そういったものです。

言語の項目はシステムとブラウザの設定で決まります。多くの人が思っているより細かく書かれています。中国語でも簡体字・繁体字や地域で分かれます。これらの特徴は静かです。安定しています。そして毎回必ず与えられます。どのサイトを訪れても変わらず、履歴を消しても変わりません。

ページ層:スクリプトが読める範囲は思っているより広い

ページが読み込まれた後、スクリプトはさらに問い続けることができます。画面とウィンドウのサイズ。タイムゾーンのオフセット。CPUコア数。メモリの段階。どれも読み取り可能な範囲にあります。これらのインターフェースはブラウザ上で公開されています。ブラウザのインターフェース仕様にはっきりと列挙されています。どんなサイトでも直接呼び出せます。

「ブラウザフィンガープリントとは何か」と問われて、多くの人が最初に思いつくのはキャンバスとフォントです。この二つは確かによく名指しされますが、理由はそれらが珍しいからではなく、最も変えにくいからです。

キャンバスとフォント:最もよく名指しされる二項目

キャンバス(Canvas)のやり方はごくあからさまです。ページはあなたに見えない位置に、図形や文字列を描きます。描き上がった画像をピクセル単位で読み戻すのです。

同じ命令でも、グラフィックボードやドライバ、OSが違えば描かれるピクセルは完全には一致しません。違いは肉眼では分からないほど小さいものです。それでも十分に安定しています。壁紙を変えても、拡大率を一度変えても、それは同じ場所にあります。

フォント一覧は別の道を行きます。ページは、あなたが何のフォントを入れているかを尋ねません。よくあるフォント名を一つずつ試します。あるサイズである文字列を描画します。測った幅が期待と合わなければ、そのフォントは端末にないと分かります。試す名前が増えるほど、得られる記録は長くなります。

デザインソフトを入れたときに一緒についてきたフォントも、ここではすべて数えられます。だからフォントの指紋は、画面サイズよりも雄弁なことが多くあります。どんなソフトを入れたか。普段この端末で何をしているか。それらを記録しています。

レンダリングの差異:ピクセルに隠れた一種の値

キャンバスはレンダリング差異の出口の一つにすぎません。音声処理の経路、グラフィックスインターフェース、動画のコーデックはそれぞれ違います。ハードウェアと結びついた細かな違いを残すのです。同じ端末ではそれらがかみ合っており、別の端末では再現しにくいものです。

この種の値には共通点があります。ハードウェアとドライバで決まります。変えることはできません。ブラウザの設定をいじっても、キャッシュを消しても、回線を変えても、それらには触れられません。

項目数よりも注目すべきは安定性です。この種の値は、端末識別子として長期使用できるほど安定しています。それゆえ、一、二項目のパラメータをより珍しくしても、たいていは解決になりません。

ネットワーク・リクエストヘッダー・ページスクリプトの3つの経路が、同じ1つの端末識別子に集まる

JavaScriptを切れば問題は解決するのか

スクリプトを切れば、確かに3つ目の経路はふさがります。ページはフォント一覧も読めません。レンダリング結果も取得できません。

しかし最初の二層はそのままです。リクエストヘッダーは一つも欠けません。出口アドレスも記録されています。接続層のネゴシエーションパラメータも残っています。スクリプトを切って減らせるのは、そのうちの一層であって、全部ではありません。

2010年の実験では、スクリプトを無効にしたブラウザは「比較的フィンガープリント化しにくい」サンプルとして別枠に分類されました。当時、この行動は確かに有効でした。

ただ「比較的困難」と「隠れきれる」は別物です。周りがみなスクリプトを有効にしています。その中であなただけが切っていれば、少数派に属すること自体が特徴になります。珍しい状態は人を消しはしません。むしろ見つけられやすくするだけです。

本当に対処すべきなのはここではありません。指紋がもたらす悩みは、主に同じ身元どうしが結びつけられることであって、ある項目のパラメータが十分に隠れているかどうかではありません。 パラメータをより派手に、より珍しく変えても、たいてい役には立ちません。理由はそこにあります。

同じパソコンでブラウザを変えると、どの項目がついてくるか

ブラウザを何個か入れれば身元も何個か増える、と考える人は少なくありません。実際の変化は想像より小さいものです。ブラウザ変更後の挙動で、これらの項目は二つのグループに分けられます。

  • ついてくるもの:ブラウザの識別文字列、グラフィックスとキャンバスインターフェースのレンダリング結果、拡張機能一覧、ローカルストレージとログイン状態。
  • ついてこないもの:グラフィックボードとドライバの型番、画面の物理パラメータ、CPUコア数、メモリ段階、システムのタイムゾーン、システムレベルのフォント。

一つ目のグループは、ブラウザ自身がもたらすものです。再インストール・アップデート・拡張機能の追加で並び替わります。二つ目のグループはハードウェアとシステム由来です。ブラウザをいくつ変えても同じ値のままです。それこそが、「見た目は違う」複数の端末を結びつける糸なのです。

同じパソコンで三つのブラウザを開いても、サイトから見れば同じ1台の端末です。三つの使い方に近い。三台の端末ではありません。

3ステップの自己診断:複数アカウント管理でこの判断をどう使うか

公開されている検査サイトは登録なしで使えます。結論を聞くより、自分の端末が実際に何を報告しているかを一度見たほうがよいでしょう。複数アカウントの場面に落とし込むなら、順序を先に決めておきましょう。検査結果を読むのは、そのあとで構いません。ゼロから最初の環境までの順序という記事では、プロキシ・フォーム・チェックリストを順番に並べてあります。

テストの順序はこう決められます。

  1. まず一意性がどの項目から来ているかを見る。走らせ終えても総合スコアは見ず、それが示す「最も独特な項目」を見る。それはたいてい、あなたの中で最も変えにくい部分です。
  2. 次に同じ端末上の二つのブラウザをそれぞれ測り、両方で同じだった項目を丸で囲む。重なったものはハードウェアとシステムの層に属し、ブラウザを変えても振り切れません。
  3. 最後にスクリプトを切って再測定し、どんな値がまだ読み取れるかを見る。残ったものが、スクリプトなしでも取得できる部分です。

3ステップを走らせ終えると、たいてい同じ結論に落ち着きます。本当に変えにくい項目は数えるほどしかありません。まさにそれらが、あなたの身元を安定させているのです。

運用担当者が自分のマルチ環境パネルの前でアカウントの身元を照合する

この結論に沿って進めれば、複数アカウントの場面でのやり方は難しくありません。すべきことは、各アカウントの環境を自分自身の一式の中で一貫させることです。パラメータをより奇抜にする必要はありません。

MostMateはこれを環境作成のステップに置いています。言語、UI言語、タイムゾーン、地理位置はデフォルトで出口に追随します。画面・コア数・メモリといったハードウェア項目は、「実値」と「ランダム」の二段階しかありません。デフォルトから外したい場合は、手動で一度選ぶ必要があります。この値の取り方と手動で項目ごとに設定する場合との対比は、公式サイトで並べて確認できます。

MostMateフィンガープリントブラウザの指紋設定

なぜこのような取捨選択をするのかは、4つの設計原則がそれぞれ何を防いでいるかという記事でより詳しく説明しています。どの原則がどの種類の破綻に対応するのか。4つが相反するときにどれを優先すべきか。すべて書かれています。

すぐに始めたい場合は、MostMateをダウンロードしてください。インストール後に、上の3ステップで自分の環境を再測定してみてください。

MostMateがこれらの値をどう一つの環境管理にまとめているか。それを先に知りたいなら、製品説明から始めるとよいでしょう。

よくある質問

Cookieを削除したりシークレットモードにすると、指紋は変わりますか?

変わりません。Cookieやローカルストレージは、ブラウザがサイトのために残す付箋のようなものです。消せばなくなります。指紋は違います。これは端末とブラウザからその場で読み出される値であり、あなたの端末に保存されているわけではありません。シークレットモードが制限するのは、ローカルに何を残すかです。ブラウザが外部に何を報告するかは変えません。

IPを変えれば、身元も変わるのですか?

変わるのはネットワークの層だけです。言語設定、フォント、グラフィックボード、システムのタイムゾーン。こうした項目は、IPを変えても変化しません。新しい回線の地域があなたのタイムゾーンや言語と食い違っていると、かえって筋の通らない組み合わせができあがります。

アンチフィンガープリントの拡張機能を入れれば効果がありますか?

よくある方法は、一部の項目にノイズを加えるか、大衆的な値一式に統一するかです。統一すれば確かに人混みに紛れられます。代償として、同じ集団が同じ特徴を共有することになります。ノイズを加えると、同じ環境が二度報告する値が一致しなくなる可能性があります。それ自体が異常です。どちらの方法も、ハードウェアとシステムの層には届きません。

サイトは本当に指紋を照合するのですか?

不正防止やリスク管理では一般的な手段です。ログイン・登録・支払いといった場面では特によく使われます。ただし多くのサイトは、それを一つのシグナルとして扱います。アカウントの行動や端末履歴と合わせて見るのです。ある項目だけで判断することはまれです。

まったく同じ型番の2台のパソコンなら、指紋は同じですか?

完全には同じになりません。同じ型番の端末でも、OSのバージョン、フォント、ドライバ、タイムゾーン、言語、入れた拡張機能ですぐに分岐します。その違いはすべて指紋に落ちます。一括でセットアップしたクローン端末が最も近いですが、それはごく一部の場面にすぎません。

フィンガープリントブラウザを使えば、もう見つからないのですか?

そうではありません。フィンガープリントブラウザが扱うのは、環境どうしの境界です。各アカウントに独立して矛盾のないブラウザアイデンティティを持たせることです。プラットフォームがアカウントの帰属をどう判定するかは変えません。いかなる結果も約束しません。また、一つ区別しておくべきことがあります。指紋の一貫性は自己点検の手段です。プラットフォームの検知ルールではありません。この二つを同じものと見なすと、ツールに非現実的な期待を抱きやすくなります。

MOSTMATE

安全な複数アカウント管理を、もっと簡単に

最初のアカウントから、MostMate でより安全でスマート、効率的な複数アカウント運用を始めましょう。

  • 独立したプロファイル。一貫した識別情報。
  • AI 自動化 · アカウント健全性 · チーム運用
MostMate をダウンロード