ブラウザフィンガープリントとは
Cookieは、Webサイトがブラウザに貼るラベルのようなものです。フィンガープリントはその逆で、デバイスには何も保存されません。代わりにスクリプトが、ありふれた事実を何十個も読み取ります。画面の解像度、ブラウザがWebGLを通じて伝えるグラフィックカード、隠れたcanvasに文字や図形を描いたときの仕上がり、短い音声信号の処理のされ方、インストールされているフォント、タイムゾーン、言語の一覧などです。そしてそれらを1つの識別子にまとめます。1つひとつの事実は何百万人もの人と共通していますが、組み合わせると、ほんの数個のブラウザ、あるいはたった1つにまで絞り込めることがよくあります。
デバイスに何も保存しないので、Cookieを消しても、プライベートモードを使っても、VPNをオンにしてもリセットされません。だからこそ広告業界にとって魅力があり、正当な用途としては、盗まれたパスワードが見慣れないデバイスから使われたときに気づきたい不正防止システムにも使われています。
使い方
- ページを開きます。フィンガープリントIDはブラウザの中ですぐに計算され、値を返した情報の数も表示されます。
- 「IDをコピー」を押して、あとで見返せる場所に貼っておきます。これが比べるときの基準になります。
- グループごとのカードを読みます。グループは「画面」「ハードウェア」「描画」「言語・地域」「ブラウザ」、そしてChromium系ブラウザでは「クライアントヒント」です。各行のラベルは、その値を変えられるか、一部だけか、まったく変えられないかを示します。「不明」は、ブラウザが答えを返さなかったという意味です。
- 「検出したフォント」を開くと、テストしたフォントのうちシステムに入っているものがわかります。
- プライベートウィンドウ、別のプロファイル、プライバシー設定、拡張機能など、1つだけ変えてからページを読み込み直し、新しいIDを基準と比べます。
- IDが変わっていたら、カードを見て、値が動いた行を探します。
1回に変えるのは1つだけにしましょう。2つ同時に変えると、どちらが効いたのかわからなくなります。「画面サイズ」はディスプレイの値なので、ウィンドウの大きさを変えても変わりません。ただし、ブラウザを別のモニターに移すと変わることがあります。
こんなときに
- Cookieを消すだけで十分か試す。IDをコピーし、Cookieとサイトデータを消してから再読み込みします。IDが変わらなければ、Cookieを消すだけではこの種の識別を止められないことがわかります。
- ブラウザのプロファイルの分け方を確かめる。仕事用と個人用でプロファイルを分けているなら、それぞれのIDを比べます。IDが同じなら、これらの情報を読むサイトは2つを結びつけられます。
- プライバシー設定の効果を測る。ブラウザのフィンガープリント対策をオンにして再読み込みし、どの行が変わり、どの行がそのままだったかを見ます。
- 自動操作やヘッドレスのブラウザを点検する。QAエンジニアは、自動操作のフラグが立っていないか、「グラフィックス(WebGL)」の行に実際のGPUではなくSwiftShaderやllvmpipeのようなソフトウェアレンダラーが出ていないかを確認できます。どちらもボット検出のスクリプトがよく調べる点です。
- 新しいソフトが何を加えるか見る。オフィスソフトや言語パックを入れるとフォントの数が増えることがあり、ブラウザがそれだけ目立つようになります。
- VPNでは変わらないものを同僚に見せる。VPNありとなしでページを開くと、IDは同じままです。どの情報もネットワークから来ていないからです。
各情報の説明
- ディスプレイ:画面サイズ、利用可能な領域(画面からタスクバーなどを除いた部分)、ピクセル比、色深度です。表示を拡大縮小しているノートPCでは、珍しい組み合わせになります。
- ハードウェア:CPUのスレッド数、丸めたメモリ量、タッチ対応、グラフィックレンダラーの文字列です。レンダラーの文字列からは、GPUの正確な型番までわかることがあります。
- 描画:canvasとオーディオのハッシュです。同じ絵や音でも、GPU、ドライバー、OS、フォントによって出てくるバイト列がわずかに違うため、ハッシュは同じマシンでは安定し、マシンが違えば変わります。
- フォント:文字の幅を測って、よく使われる40種類のフォントがあるかを調べます。オフィスソフト、デザインツール、言語パックが入れるフォントは、ほかの人との違いになります。
- 言語と地域:タイムゾーン、ロケール、言語の一覧です。これらは設定ですが、サイトがIPアドレスと比べてVPNを見抜くときに使う情報でもあります。
- ブラウザ:プラットフォーム、Cookieとストレージへの対応、内蔵のPDFビューア、Do Not Track、Global Privacy Control、そしてSeleniumやPlaywrightが立てる自動操作のフラグです。
- クライアントヒント:Chromium系ブラウザでの、プラットフォームのバージョン、CPUのアーキテクチャ、ブラウザのフルバージョンの一覧です。
「一意性スコア」を出さずにIDだけを示す理由
AmIUniqueやEFFのCover Your Tracksのようなサイトは、過去の訪問者から集めたフィンガープリントと比べて、あなたのフィンガープリントがどのくらい珍しいかを示します。そのためには集めたフィンガープリントを蓄えるデータベースが必要ですが、iseeu.ccは個々の訪問者についてのデータを一切持っていません。そこでスコアの代わりに、あなたにとって本当に大事なことを試す方法を用意しました。別のブラウザプロファイルやプライベートウィンドウで、あるいは設定を変えてからこのページを開き、IDが変わるかを見てください。変わらなければ、その変更ではあなたを守れていません。
フィンガープリントを目立たなくするには
- 目立つより、人混みに紛れる。珍しい設定、珍しいフォント、たくさんの拡張機能は、あなたを目立たなくするどころか、かえって目立たせます。
- 保護機能が組み込まれたブラウザを使う。Tor Browserはすべての利用者を同じに見せます。Braveはcanvasやオーディオなどの値をサイトごとにランダム化します。Firefoxでは強化型トラッキング防止機能を「厳格」にすると既知のフィンガープリント用スクリプトがブロックされ、
privacy.resistFingerprintingの設定は多くの値を標準的なものにそろえます。 - ブラウザを最新に保つ。新しいバージョンほど、外に出す情報が粗くなっています。ChromeのUser-Agent文字列が固定されたのもその一例です。
- ブラウザのプロファイルで使い分ける。プロファイルを分けてもハードウェアの情報は共通ですが、拡張機能、ストレージ、設定は別々になります。
- この目的でVPNに頼らない。VPNが隠すのはIPアドレスで、それは別の問題です。
あなたを見えなくしてくれるブラウザはありません。保護されたブラウザでも、そのブラウザだということは見分けられます。目指すのは、大勢の中の1人に見えることです。
よくある質問
ブラウザフィンガープリントとは何ですか?
画面サイズ、グラフィックカード、インストールされているフォント、言語、タイムゾーンなど、デバイスとブラウザについての情報の組み合わせです。デバイスに何も保存しなくても、これらを合わせるとサイトや訪問をまたいで同じブラウザを見分けられることがあります。
このブラウザのフィンガープリントは、ほかと重ならない一意のものですか?
当サイトにはわかりませんし、あえて調べてもいません。どのくらい珍しいかを伝えるには、サイトを訪れた人全員分のフィンガープリントをためておかなければならないからです。研究用のデータセットでは、デスクトップのブラウザのかなりの割合が一意で、モバイル端末はそれより少ないという結果が出ています。
プライベートブラウズやシークレットモードにすると、フィンガープリントは変わりますか?
たいていは変わりません。プライベートモードは閉じたときにCookieと履歴を消しますが、ハードウェア、フォント、設定はそのままです。通常のウィンドウとプライベートウィンドウでフィンガープリントIDを比べれば、自分で確かめられます。
VPNを使えばフィンガープリントによる識別を防げますか?
防げません。VPNが変えるのはIPアドレスです。このページの情報はどれもブラウザとデバイスから来ていて、VPNはそこには手を出しません。
フィンガープリント対策が組み込まれたブラウザはありますか?
Tor Browserは、すべての利用者が同じに見えるようにしています。Braveは、いくつかの情報をサイトごとにランダム化します。FirefoxにはresistFingerprintingという設定があり、強化型トラッキング防止機能を厳格にすると既知のフィンガープリント用スクリプトをブロックします。Safariは初期設定でいくつかの情報を減らしています。
フィンガープリントで利用者を識別するのは合法ですか?
どこで、何のために使うかによります。ヨーロッパの規制当局は、追跡を目的としたフィンガープリントをCookieと同じように扱っており、同意が必要です。不正防止やセキュリティのための利用は、一般に別の扱いになります。
このページのフィンガープリントIDは当サイト独自のスクリプトで計算したもので、別の情報を使う商用のフィンガープリント製品が出すIDとは一致しません。あくまで実演のためのもので、特定のサイトでどのくらい追跡されやすいかを測るものではありません。