フォントフィンガープリントとは?
フォントフィンガープリントは、ブラウザフィンガープリントにおけるもう一つの重要な側面です。あなたのデバイスに特定のフォントがインストールされている場合、または一部のフォントが欠けている場合、これらの情報は一意の識別子を生成するために利用される可能性があります。
各ユーザーのデバイスにインストールされているフォントの組み合わせはそれぞれ異なります——特に、多数の非標準フォントをインストールしているユーザーの場合、その独自性はより顕著になります。そのため、フォント情報はかなり精度の高いブラウザフィンガープリントの構成要素となり得ます。
フォントフィンガープリントの仕組み
フォントフィンガープリントは、主にブラウザの JavaScript API を通じて実現されます。その中核となる原理は、ブラウザがユーザーのデバイスで利用可能なフォント一覧を取得して報告できるというものです。これらのフォント情報は、他のブラウザやデバイスの特徴と組み合わさることで、一意のフィンガープリントを形成します。
一般的なフォントフィンガープリントの収集方法には、以下の3つがあります。
方法一:フォント列挙(Font Enumeration)
これは最も直接的な方法です。Webサイトはブラウザが提供する API を通じて、インストール済みフォントの完全な一覧を直接取得します。これは、デバイスにどのアプリケーションがインストールされているかを確認するのと同じくらい簡単です。
方法二:フォント検出(Font Detection)
これはより隠れた方法です。Webサイトはブラウザに特定のフォントでテキストをレンダリングさせ、そのテキストのサイズを測定します。そのフォントがインストールされている場合、テキストの表示サイズはデフォルトフォントとは異なります——Webサイトはこのような「試行錯誤」の方法によって、特定のフォントがあなたのデバイス上に存在するかどうかを一つずつ判定します。
方法三:キャンバスフィンガープリント(Canvas Fingerprinting)におけるフォント検出
これはより複雑な方法です。Webサイトは不可視の仮想キャンバス上にテキストを描画し、そのテキストのピクセル配列を分析します。フォントの違いによってピクセル配列に差異が生じるため、Webサイトはこれらのピクセルパターンを比較することで、あなたのデバイスに特定のフォントがインストールされているかどうかを判断します。
