ブラウザーフィンガープリンティングとは
ブラウザーフィンガープリンティングとは、ウェブブラウザーに関する情報を幅広く収集して、その独自性や特性について知識に基づいた推測を行うことです。
各ブラウザーの設定や機能に基づいて「ブラウザーフィンガープリント」が作り出されます。
ほとんどのブラウザーは、各ユーザーごとに固有のフィンガープリントを意図せず作成してしまい、インターネット上で追跡される可能性があります。
ブラウザーフィンガープリンティングの詳細につきましては、Tor Blog の記事ブラウザーフィンガープリンティング:導入と今後の課題とTor Browser:プライベートブラウジング革新の遺産をご覧ください。
なぜブラウザーフィンガープリンティングがオンラインプライバシーを脅かすのですか?
第一に、この情報を収集するためにユーザーに許可を求める必要はありません。
ブラウザーで実行されるスクリプトは、ユーザーに気づかれることなく、デバイスのフィンガープリントを密かに作成できます。
第二に、ブラウザーフィンガープリントの一つの属性、または複数の属性の組み合わせが固有である場合、デバイスを特定し、オンラインで追跡することができます。
これは、Cookie がなくても、フィンガープリントを用いてデバイスを追跡できることを意味します。
Tor Browser がフィンガープリンティングを軽減する方法
Tor Browser は、さまざまなメトリクスにおいて各ユーザーのフィンガープリントの独自性を最小限に抑えるように特別に設計されています。
すべての Tor Browser ユーザーを同一にすることは現実的に不可能ですが、目標は各メトリクスの区別可能な「バケット」の数を減らすことです。
このアプローチでは、個々のユーザーを効果的に追跡することが難しくなります。
オペレーティングシステムや言語など、特定の属性は機能上必要であり、完全に隠したり偽装したりすることはできません。
代わりに、Tor Browser はこれらの属性内の多様性を制限して、独自性を減らします。
例えば、フォントの列挙を制限して文字フォールバックを適用したり、Letterboxing を使って画面やウィンドウのサイズを標準化したり、要求される言語の種類をあらかじめ定義された小さなセットに制限したりします。
Tor Browser のフィンガープリンティング対策の主な目的は、ユーザーを一意に識別するのに十分な情報を収集することを著しく困難にし、それによって必要な機能を損なうことなくプライバシーを強化することです。
Tor Browser のフィンガープリンティング対策機能
Letterboxing
画面サイズに基づくフィンガープリンティングを防ぐため、Tor Browser はコンテンツウィンドウを 200px x 100px の倍数に丸めた状態で起動します。
ここでの戦略は、すべてのユーザーをいくつかのバケットに分けて、特定しにくくすることです。
これは、ユーザーがウィンドウのサイズを変更し始める (例えば、ウィンドウを最大化したり、フルスクリーンモードにする) まではうまく機能します。
Tor Browser には、このようなシナリオのためのフィンガープリンティング防御機能である Letterboxing が搭載されています。これは Mozilla が開発し、2019年に発表された技術です。
これは、ブラウザーウィンドウに余白を追加することによって機能します。これにより、ウィンドウが目的のサイズにできるだけ近くなる一方で、ユーザーは画面サイズのバケットをいくつか使用しているため、画面サイズを使ってユーザーを識別することはできません。
簡単に言うと、この手法では、特定の画面サイズのユーザーのグループが作成され、多くのユーザーが同じ画面サイズを使用するため、画面サイズに基づいてユーザーを特定することが困難になります。

ユーザーエージェントおよびオペレーティングシステムの偽装
ユーザーエージェント文字列は、ウェブサイトがブラウザー、オペレーティングシステム (OS) 、CPU アーキテクチャ、ベンダー、バージョンに関する詳細を識別するために使用できる値です。
この情報は、ユーザーが使用している OS やデバイスを推測するために利用できるため、ブラウザーフィンガープリンティングの手段として利用され、ウェブサイトやトラッカーがユーザーを特定する可能性があります。
Tor Browser はユーザーエージェントを偽装することでこれに対処します。ユーザーは特定のオペレーティングシステムを選択したり、利用可能なすべてのプラットフォームを模倣したりすることはできません。
代わりに、Tor Browser はユーザーエージェント値を標準化して一意性を減らし、誤ったプライバシー感覚を作らないようにしています。
- すべての Windows は Windows 10 として表示されます。
- すべての macOS は OS X 10.15 として表示されます。
- すべての Android は Android 10 として表示されます。
- その他のシステム (すべての Linux ディストリビューション (Tails・Qubes を含む)、*BSD、および他のオペレーティングシステム) はグループ化され、"X11 が動作する Linux" として表示されます。
- その他の詳細 (アーキテクチャなど) もプラットフォームごとに標準化されます。
この場合、Tor Browser のフィンガープリント対策は、ユーザーエージェントの実際の値を偽装することで保護するとともに、十分なユーザーセットを確保することです。
ユーザーエージェントは HTTP ヘッダーとしてウェブサイトに送信され、JavaScript では navigator.userAgent
として使用できます。
これらの値に一貫性がないと、ボット対策システムや不正対策システムが Tor ユーザーをボットとして分類し、そのリクエストを拒否して、Tor Browser ユーザーのユーザビリティに影響を与える可能性があります。
一部のプライバシーツールやユーザーは、すべてのユーザーを Windows として表示することが最も効果的なカモフラージュになると主張しています。
しかし、すべてのブラウザー環境で完全に偽装することは不可能であり、積極的なフィンガープリント手法 (フォント、機能、動作、JavaScript の有無など) を利用して、ハードウェアやオペレーティングシステムの情報を推測することができます。
Tor Browser では、ユーザーはどの OS として表示するかを選択できません。
これは意図的なものです。選択するオプションがあれば、ユーザーはより固有になり、フィンガープリントが容易になるだけです。
標準化されたオプションの小さなセットは、ユーザーを融合させ、すべてのユーザーのプライバシーを最大化するための鍵なのです。
その他のフィンガープリンティング対策機能
Letterboxing に加えて、Tor Browser は、ブラウザーのフィンガープリントを軽減し、ユーザーのプライバシーを保護するために、他の多くの機能を導入しています。
これらの機能には、Canvas の画像抽出ブロック、NoScript の統合、ファーストパーティの分離などが含まれます。
機能の完全なリストにつきましては、Tor Browser の設計と実装に関するドキュメントをご覧ください。