フォントフィンガープリンティングとは?

Advanced Data Extraction Specialist
フォントフィンガープリンティングは、ユーザーデバイスにインストールされているフォントの一意なセットを利用してオンライン追跡に使用される高度な技術です。WebGLやCanvasフィンガープリンティングと同様のデバイスフィンガープリンティングの一種ですが、グラフィックレンダリングやWeb要素に頼るのではなく、フォントフィンガープリンティングは利用可能なフォントとブラウザによるレンダリング方法に焦点を当てています。この技術は、ウェブサイトが、明示的な同意やクッキーなどの従来の追跡方法を使用せずに、デバイスに関する情報を、ひいてはユーザーに関する情報を収集するために使用されます。
この記事では、フォントフィンガープリンティングとは何か、その仕組み、用途、および関連する潜在的なプライバシーリスクについて探ります。また、フォントフィンガープリンティングの漏洩を防ぐ方法や、Webスクレーパーがフォント設定を管理して検出を回避する方法についても説明します。
フォントフィンガープリンティングの仕組み
フォントフィンガープリンティングは、すべてのデバイスにインストールされているフォントの組み合わせがユニークであるという事実を利用しています。これらのフォントは、オペレーティングシステムとブラウザによってウェブサイト上のテキストをレンダリングするために使用されます。ただし、すべてのデバイスに同じフォントがインストールされているわけではありません。オペレーティングシステム、地域設定、さらにはユーザー設定も、フォントのばらつきに寄与しています。ウェブサイトは、ブラウザにクエリを送信し、ウェブページで使用されているフォントを比較することで、このばらつきを検出できます。
以下は、フォントフィンガープリンティングの仕組みをステップバイステップで説明したものです。
-
フォント検出: ユーザーがウェブサイトにアクセスすると、ページに埋め込まれたJavaScriptが、ユーザーのデバイスで利用可能なフォントをチェックするスクリプトを実行します。ウェブサイトは通常、非表示の要素(divやcanvasなど)を作成し、さまざまなフォントを使用してテキストのレンダリングを試みます。テキストの幅とレンダリングスタイルを比較することで、特定のフォントがインストールされているかどうかをチェックします。
-
データ収集: スクリプトは、一般的なフォント(Arial、Times New Roman、Courierなど)と、あまり使用されていないフォントもチェックします。特定のオペレーティングシステムや地域言語設定に基づいてインストールされている、より分かりにくいフォントを検出することもあります。ウェブサイトはこれらの結果を使用して、ユーザーのデバイスのプロファイルを作成できます。
-
フィンガープリントの作成: 検出されたフォントに基づいて、一意の識別子、つまり「フィンガープリント」が生成されます。この識別子は永続的で、複数の訪問やウェブサイトにわたってユーザーを追跡するために使用できます。フィンガープリントは、多くの場合、検出されたフォントとテキストのレンダリング方法などの要素の組み合わせです。
-
ユーザーの追跡: フィンガープリントが作成されると、データベースやクッキーに保存され、時間の経過とともにユーザーを追跡するために使用できます。ユーザーがクッキーをクリアしたり、ブラウザを切り替えたりしても、フォントフィンガープリントは依然として識別できるため、ウェブサイトはユーザーのアクティビティを追跡し続けることができます。
フォントフィンガープリンティングの用途
フォントフィンガープリンティングは、ユーザー追跡などの潜在的に侵入的なアクティビティだけでなく、正当な目的にも幅広い用途があります。以下は、フォントフィンガープリンティングが使用される主な分野です。
用途 | 説明 | 使用例 |
---|---|---|
広告ターゲティング | フォントフィンガープリンティングは、広告主がターゲット広告のためにより詳細なユーザープロファイルを作成するのに役立ちます。 | 広告主は、さまざまなウェブサイトにわたってユーザーを追跡し、フォントフィンガープリントに基づいてパーソナライズされた広告を提供します。 |
分析 | ウェブサイト所有者が、デバイスの特徴を理解することでトラフィックを分析し、ユーザーエクスペリエンスを向上させるために使用されます。 | ウェブサイト所有者は、デバイスのフォントフィンガープリントに基づいてユーザーを追跡し、ターゲット設定とユーザーエクスペリエンスの最適化を改善します。 |
クロスサイト追跡 | フォントデータを収集して永続的な識別子にリンクすることで、さまざまなウェブサイトにわたってユーザーを追跡します。 | データブローカーや広告主は、クッキーを使用せずに、フォントフィンガープリントを使用して、ユーザーのウェブサイト全体のアクティビティを追跡します。 |
不正行為の防止 | デバイスの特徴を比較し、異常をフラグ付けすることで、疑わしいアクティビティを特定します。 | オンラインバンキングシステムは、悪意のある行為者に関連付けられた異常なフォントフィンガープリントに基づいて、不正行為を検出します。 |
デバイスのプロファイリング | インストールされているフォントに基づいて、ユーザーのハードウェアとソフトウェアの設定をプロファイリングすることで、ユーザーを特定するのに役立ちます。 | 企業は、フォントフィンガープリントを使用して、顧客が使用するデバイスを追跡し、ターゲットキャンペーンや不正行為の防止を実施しています。 |
ユーザー行動分析 | デバイスの機能とフォントを分析することで、ユーザーの行動を理解します。 | ウェブ開発者は、フォントフィンガープリントに基づいて、ユーザーの好みを理解し、コンテンツをより適切にカスタマイズします。 |
フォントフィンガープリンティングの手法
フォントフィンガープリンティングは、ウェブサイトがデバイスにインストールされているフォントに関する情報を収集するために使用する手法です。このプロセスには、ブラウザがどのフォントを表示できるかについてデータを収集するスクリプトをバックグラウンドで実行することが含まれます。フォントフィンガープリンティングに使用されるウェブサイト固有のメソッドについて詳しく見ていきましょう。
1. フォント列挙
フォント列挙は、フォントフィンガープリンティングで使用される最も単純で一般的な方法の1つです。この手法は、JavaScriptを使用してユーザーのシステムで利用可能なフォントをチェックします。
仕組みは以下の通りです。
-
ユーザーがウェブサイトにアクセスすると、ウェブサイトのコードがブラウザで実行され、フォント列挙プロセスがトリガーされます。これは、通常、FontFaceSetインターフェースや、最新のブラウザで利用可能な同様のメソッドにアクセスするJavaScript関数を呼び出すことによって行われます。
-
開始されると、ブラウザはレンダリングできるフォントのリストを提供することで応答します。この情報は、フィンガープリントを作成するために重要です。
-
ウェブサイトは、フォントデータを収集して処理し、多くの場合、キャンバスフィンガープリントや**TLSフィンガープリント**などの他のフィンガープリンティング手法と組み合わせます。収集されるデータの種類には以下が含まれます。
- フォントファミリー、例:「Helvetica」
- フォント名、例:「Helvetica Oblique」
- PostScript名、例:「HelveticaOblique」
- スタイル、例:「Regular」
- フォントサイズ
-
このデータを収集した後、ウェブサイトはそれを分析して一意のフィンガープリントを生成します。このフィンガープリントは、システムにインストールされているフォントの特定の組み合わせ、それらの順序、場合によってはフォントがレンダリングされる微妙な方法に基づいている可能性があります。
FontFaceSetの詳細については、関与する基底APIについて理解してください。
2. フォント検出
フォント検出は、フォントフィンガープリンティングで使用されるより高度な手法です。ブラウザにインストールされているフォントのリストを直接要求するフォント列挙とは異なり、フォント検出は、さまざまなフォントでテキストをレンダリングすることで、特定のフォントがインストールされているかどうかをテストします。
仕組みは以下の通りです。
-
ウェブサイトは、ブラウザに特定のフォントを使用してテキストの段落を表示するように指示することで、フォント検出をトリガーします。
-
テキストがレンダリングされると、ウェブサイトはテキストのサイズを測定し、テキスト要素の幅と高さを両方計算します。
-
レンダリングされたテキストサイズは、基準サイズと比較されます。サイズが一致する場合は、フォントがユーザーのシステムにインストールされていることを示唆しています。
-
この方法は、さまざまなフォントや同じフォントの異なるバージョンをテストすることで、システムに存在するフォントに関する貴重なデータを収集する場合があります。
フォント検出は、多くの場合、他のフィンガープリンティング手法と組み合わせて、ユーザーのシステムに関するより包括的な情報を収集するために使用されます。
3. キャンバスフォントフィンガープリンティング
キャンバスフォントフィンガープリントは、より洗練された手法であり、オンラインでユーザーを追跡するために最も広く使用されている方法の1つです。この方法は、非表示のHTMLキャンバス要素でフォントがレンダリングされる方法に基づいて、非常にユニークな識別子を生成します。
仕組みは以下の通りです。
-
ウェブサイトは、ブラウザに特定のフォントを使用して非表示のキャンバス要素にテキストを描画するように指示します。これは、裏側で行われ、ユーザーに見える部分には影響しません。
-
テキストがレンダリングされると、ウェブサイトはキャンバスからピクセルデータを抽出します。これは、テキストが画面にどのように表示されるかを表しています。
-
ピクセルデータは、SHA-256などのアルゴリズムを使用してハッシュされ、そのフォントレンダリングのユニークなフィンガープリントが生成されます。
-
このフィンガープリントは、さまざまなセッションやウェブサイトにわたってユーザーを追跡および識別するために使用されます。生成されたハッシュは、ユーザーがクッキーをクリアしても、永続的な識別子として機能します。
レンダリングに使用されるテキストには、通常、アルファベットのすべての文字が含まれ、パングラムと呼ばれます。たとえば、「Cwm fjordbank glyphs vext quiz」という文には、アルファベットのすべての文字が含まれています。ただし、テキストはウェブサイトのスクリプトによって異なる場合があります。
キャンバスフィンガープリンティングの仕組みについては、追跡における広範な使用と影響について学びましょう。
キャンバスフォントフィンガープリントは、特に、レンダリングの動作が、ユーザーのオペレーティングシステム、ブラウザ、グラフィックハードウェアなどの要因に基づいて変化するため、ブロックまたはスプーフィングが非常に難しいことから、非常に効果的です。
フォントフィンガープリンティング手法の概要
手法 | 説明 | 目的 |
---|---|---|
フォント列挙 | JavaScriptを使用して、ブラウザにインストールされているフォントのリストを直接クエリします。 | ユーザーのデバイスで利用可能なフォントのユニークなセットを収集する。 |
フォント検出 | 特定のフォントでテキストをレンダリングし、レンダリングされたテキストのサイズを測定して、フォントがインストールされているかどうかをチェックします。 | テキストのレンダリング方法をテストすることで、間接的にフォントを検出する。 |
キャンバスフォントフィンガープリント | 非表示のキャンバス要素を使用してテキストをレンダリングし、ピクセルデータをユニークな識別子にハッシュします。 | フォントのレンダリングに基づいて、非常にユニークなフィンガープリントを生成する。 |
フォントフィンガープリンティングのセキュリティリスク
フォントフィンガープリントは、深刻なプライバシーとセキュリティ上の問題を引き起こします。リスクには以下が含まれます。
-
永続的な追跡: フォントフィンガープリントは、クッキーとは異なり、簡単に削除できません。フィンガープリントが生成されると、クッキーをクリアしたり、シークレットモードを使用したりしても、複数のセッションやウェブサイトにわたってユーザーを追跡するために使用できます。これにより、ユーザーがオンラインで匿名性を維持することが難しくなります。
-
クロスサイト追跡: フォントフィンガープリンティングは、さまざまなウェブサイトで機能するため、ユーザーのより詳細で包括的なプロファイルを作成できます。データブローカーや広告主は、フォントフィンガープリンティングを他の追跡方法と組み合わせて、複数のドメインにわたるユーザーのオンラインアクティビティを監視できます。
-
デバイスのプロファイリング: フォントフィンガープリントは、オペレーティングシステム、言語設定、インストールされているフォントなど、ユーザーのデバイスに関する特定の詳細を明らかにできます。この情報は、ユーザーをターゲット広告にプロファイリングするために使用される可能性があり、フィッシングや標的型サイバー攻撃など、悪意のある目的のために悪用される可能性もあります。
-
プライバシーツールの回避: フォントフィンガープリントは、デバイス固有のデータに依存し、これらのツールには影響されないため、VPN、クッキーブロッカー、シークレットモードなどのプライバシーツールをバイパスできます。ユーザーがプライバシーを保護するための措置を講じている場合でも、フォントフィンガープリントは依然としてユーザーを追跡できます。
-
コンプライアンスの問題: EUのGDPRなど、厳しいプライバシー規制のある地域では、フォントフィンガープリントはユーザーの同意要件に違反する可能性があります。ユーザーは、デバイスがフィンガープリントされていることを知らない場合があり、組織がデータ保護法を遵守することが難しくなります。
フォントフィンガープリントの漏洩を防ぐ方法
以下は、フォントフィンガープリンティングのリスクを軽減するためのいくつかの方法です。
1. フォントを無効化またはランダム化する
一部のブラウザでは、ユーザーが特定のフォントフィンガープリンティングスクリプトを無効化したり、ウェブサイトがアクセスできるフォントをランダム化したりできます。これにより、ユニークなフォントフィンガープリントが作成される可能性が低くなります。
2. プライバシーに重点を置いたブラウザを使用する
TorやBraveなどのブラウザは、フォントフィンガープリンティングの試みをブロックまたはランダム化するのに役立つプライバシー機能を提供します。これらのブラウザは、通常、フォントフィンガープリンティングを含むサードパーティの追跡スクリプトをブロックし、ユーザーが匿名のままでいるようにします。
3. ブラウザ拡張機能を使用する
フォントフィンガープリンティングの試みをブロックまたはスプーフィングするのに役立つ拡張機能がいくつかあります。Privacy BadgerやCanvasBlockerなどの拡張機能は、スクリプトがフォントの詳細を検出するのを防ぎ、追跡を軽減するのに役立ちます。
4. フォントフィンガープリントのスプーフィング
他のフィンガープリンティングと同様に、フォントフィンガープリントをスプーフィングまたはランダム化することは、プライバシーを保護するための効果的な方法です。一部のブラウザ拡張機能やプライバシーツールは、フォントスプーフィング機能を提供し、ウェブサイトがユーザーのデバイスにインストールされているフォントを検出することを難しくします。
5. Webスクレーピングでのフォント設定の監視と管理
Webスクレーパーの場合、検出を回避するためにフォント設定を管理することが重要になります。多くのウェブサイトは、フォントフィンガープリントを使用してボットを検出するため、スクレーピングツールは、ブラウザがランダム化するか、実際のユーザー設定を模倣するように構成する必要があります。**Scrapeless**などのツールは、フォントを含むブラウザ設定を自動的に調整できるヘッドレスブラウザテクノロジーを提供し、スクレーピングプロセスが検出されないようにします。
まとめ
フォントフィンガープリンティングは、デバイスにインストールされているユニークなフォントを利用することで、ユーザーをオンラインで追跡するための強力な手法です。広告ターゲティングや分析など、正当な目的で使用できる場合もありますが、深刻なプライバシー上の問題を引き起こします。ユーザーは、プライバシーに重点を置いたブラウザを使用し、フォントフィンガープリントをスプーフィングし、**Scrapeless**などのツールを使用してブラウザ設定を管理することで、フォントフィンガープリンティングのリスクを軽減できます。
プライバシーに関する懸念がますます高まるにつれて、ユーザーと開発者がフォントフィンガープリンティングに関連するリスクを認識し、オンラインのアイデンティティを保護するための積極的な対策を講じることが不可欠です。
Scrapeless では、適用される法律、規制、および Web サイトのプライバシー ポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツはデモンストレーションのみを目的としており、違法または侵害的な活動には関与していません。 私たちは、このブログまたはサードパーティのリンクからの情報の使用についていかなる保証もせず、一切の責任を負いません。 スクレイピング活動を行う前に、法律顧問に相談し、対象となる Web サイトの利用規約を確認するか、必要な許可を取得してください。