Please enable JavaScript in your browser to load website properly.

Click here if you'd like to learn how.
SMSOnline
ブラウザーフィンガープリントとは?個人の特定と追跡を防ぐ方法

ブラウザーフィンガープリントとは?個人の特定と追跡を防ぐ方法

オンラインプライバシーを脅かすブラウザーフィンガープリントの仕組みと、その対策方法を解説。プライバシー保護のためのブラウザー設定や拡張機能を紹介します。

2024-04-270分で読むSecurity

共有


CookieやWebビーコンが無くても、インターネットで個人は特定されうる

https://str995b5dba52a0.smsonline.cloud/uploads/7e5d09fc_6f89_49ed_b09a_0840bcc3be67_ba31642e63.jpg

ブラウザーフィンガープリントは、ウェブブラウザーのユーザーに関する情報を収集し、その情報を使用して個々のユーザーを識別する手法です。
通常、ブラウザーの設定や環境、プラグインの有無、画面解像度、インストールされているフォントなど、さまざまな要素を組み合わせて、ユーザーの一意の識別子を作成します。
これにより、ユーザーがログインしていない場合でも、オンライン行動を追跡し、プロファイルを作成することが可能です。ブラウザーフィンガープリントは主に広告主やウェブサイト運営者によって使用され、ユーザーの興味や行動を分析し、ターゲット広告を配信するために利用されます。

このページでは、ブラウザーフィンガープリントに使用される情報の種類および、ブラウザーフィンガープリントによる個人の特定を防ぐ方法をご紹介します。

ブラウザーフィンガープリントに使用される要素

ブラウザーフィンガープリントに使用される要素は多岐にわたります。以下に一般的な要素をいくつか列挙し、それぞれの要素について簡単に紹介します。

ユーザーエージェント (User Agent):

ブラウザーの種類とバージョンを示す文字列。
ブラウザーの種類やバージョンによって、異なるレンダリングエンジンや機能が使われるため、ユーザーエージェントはユーザーのブラウザーを特定するのに役立ちます。

ただし、ユーザーエージェントと他の要素を組み合わせると、個人の特定が極めて容易となることから、UserAgentは廃止されつつあります。
たとえば、Windows向けGoogle Chromeは2023年4月頃のバージョン以降、下記の文字列に固定されました。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36

ただし、ブラウザの種類に応じた処理分岐などの必要性に備えて、Web標準でUser Agentに代替する属性として、User Agent Client Hints API(UA-CH)が実装されています。
Usear Agentよりは個人を特定する情報は少なくなりましたが、現在でもブラウザーフィンガープリントに利用されるリスクは存在します。

画面解像度 (Screen Resolution):

ディスプレイの幅と高さのピクセル数。
ユーザーのデバイスの画面解像度は一意の特性であり、ブラウザーフィンガープリントにおいて重要な要素です。

https://str995b5dba52a0.smsonline.cloud/uploads/e97dab6c_c40b_44f8_a2d0_9d1b089f1555_300f0d90ff.PNG 特に、ウインドウサイズを既定から変更した場合には個人の特定が容易となります。
したがって、Tor Browserなどのプライバシーを重視するブラウザでは、ウインドウサイズを変更した際にフィンガープリンティングの危険性を警告するメッセージが表示されます。

インストールされているフォント (Installed Fonts):

ユーザーのデバイスにインストールされているフォントのリスト。
フォントの種類やバージョンはデバイスごとに異なるため、ブラウザーフィンガープリントの一部として利用されます。
カスタムフォントをOSにインストールしている場合などに、フォントによるフィンガープリントの危険性は高まります。

言語設定 (Language Setting):

https://str995b5dba52a0.smsonline.cloud/uploads/4999f918_16a6_4c0b_9357_652c790df5e5_62d9071a1c.png ブラウザーの言語設定や地域設定。
ユーザーのブラウザーがどの言語や地域を使用しているかは、ブラウザーフィンガープリントにおいて識別に役立ちます。
ブラウザの言語設定は、JavaScriptの標準APIから navigator.languages を確認したり、HTTP Request Headerにおける Accept-Language の設定から、容易に特定されます。

また、言語の優先順位設定もまた、フィンガープリントの危険性をはらみます。
ブラウザによって、言語の優先順位設定により選好スコアが決定されます。

de,en-US;q=0.7,en;q=0.3
上記はドイツ語が第一言語(選好スコア1.0)、英語(United States)が第二言語(選好スコア0.7)、英語(標準)が第三言語(選好スコア0.3)に設定されている例です。

de,en;q=0.7,en-US;q=0.3
上記はドイツ語が第一言語(選好スコア1.0)、英語(標準)が第二言語(選好スコア0.7)、英語(United States)が第三言語(選好スコア0.3)に設定されている例です。

いずれも選好される言語の配列は同一ですが、優先順位の設定が個人を特定するヒントとなります。

プラグイン情報 (Plugin Information):

ブラウザーにインストールされているプラグインやアドオンの情報。
プラグインの有無やバージョンはユーザーごとに異なるため、ブラウザーフィンガープリントにおいてユニークな要素となります。
また、Greasemonkeyのようなユーザースクリプトを実行する拡張機能やStylusのようなカスタムCSSを実現する拡張機能は、ユーザーを特定するヒントをWebサイトに与えます。

これらの要素は、個々にはユーザーを特定するのに十分な情報ではないかもしれませんが、組み合わせることでより精密なブラウザーフィンガープリントが生成されます。

Canvas Fingerprinting:

https://str995b5dba52a0.smsonline.cloud/uploads/45ddbd59_3f51_400f_9bc2_75e1e4ea7f07_b5bbf733e2.png Canvasフィンガープリントは、ウェブブラウザーのCanvas API(2Dグラフィックスを描画するためのAPI)を利用して、ユーザーのブラウザーとデバイスを一意に識別する手法です。Canvasフィンガープリントは、ブラウザーが特定の描画操作を実行する際の微細な差異を利用して、ユーザーごとに異なる識別子を生成します。

Canvasフィンガープリントは、ブラウザーの描画能力やグラフィックスハードウェア、レンダリングエンジンの特性などに基づいて生成されるため、非常に正確で追跡が難しい特徴を持ちます。例えば、同じテキストや画像をブラウザーに描画させても、微妙な描画差異により、生成されるCanvasフィンガープリントは異なるものになります。

Etag Tracking

ETag Trackingは、ウェブブラウザーのキャッシュ機構を利用して、ユーザーを追跡する手法の一つです。ETagは、HTTPヘッダーに含まれるエンティティタグのことであり、特定のリソース(通常はウェブページや画像など)のバージョンを識別するために使用されます。

ETag Trackingでは、ウェブサイトがユーザーにリソースを提供する際に、そのリソースに対する一意のETagを割り当てます。その後、ユーザーが同じリソースに再度アクセスすると、ブラウザーはリクエストにETagを含めてサーバーに送信します。サーバーはそのETagを使用して、クライアントのリクエストが以前に提供されたリソースのバージョンと一致するかどうかを確認します。
ETag Trackingの問題は、ETagがユーザーごとに一意であるため、ユーザーが同じETagを持つリソースにアクセスするたびに、そのユーザーの行動が追跡される可能性があることです。ブラウザーのキャッシュがクリアされるまで、ETag Trackingは継続します。
ETag Trackingはクッキーベースのトラッキングと比較してより隠れた形で行われるため、ユーザーがトラッキングされていることに気付きにくい場合があります。これに対抗するためには、ブラウザーのプライバシー設定をカスタマイズしたり、プライバシー保護拡張機能を使用したりすることが効果的です。

ETag Trackingの詳細はこちらを確認してください(挙動のテストも可能です!)

ブラウザーフィンガープリントに類似する技術

https://str995b5dba52a0.smsonline.cloud/uploads/79c3f993_2fcd_48ec_8d89_6411dbe08991_bfde80a40c.jpg

以上のようにブラウザーフィンガープリントは、ブラウザの各種情報から個人を特定する仕組みですが、それ以外にも様々な方法で個人は特定され得ます。

ここで、いくつかの類型を示します:

  1. クッキー: ウェブブラウザーに保存される小さなテキストファイルで、ユーザーのウェブサイト訪問履歴や設定などの情報を保持します。ブラウザーフィンガープリントと同様に、ユーザーを識別するために使用されますが、クッキーはブラウザーを跨いで情報を共有することができます。クッキーを個人を特定する手段とすることは全世界的に規制が強まっており、徐々に廃止されつつあります。

  2. デバイスフィンガープリント: ブラウザーのみならず、デバイス全体の情報を利用してユーザーを識別します。デバイスのIPアドレス、ハードウェアの情報、操作システムのバージョンなどが含まれます。一般的なデバイスを使用している場合には個人の特定精度は他の手段と比べて低くなりますが、ユニークなデバイスやシステム構成を使用している場合には、一意に特定されるリスクが高まります。

  3. トラッキングピクセル: いわゆるWebビーコンです。インビジブルな1x1ピクセルの画像ファイルで、ウェブページに埋め込まれ、ユーザーの行動を追跡します。広告主やウェブサイト運営者はこれを使用して、ユーザーの訪問履歴や動きを追跡し、行動を分析します。サーバーへリクエストが発生した時点で個人を特定するセッション情報が紐づけられるため、Webサイトがオンプレミスでトラッキングピクセルを実装している場合、対策が難しいケースがしばしば発生します。

Webサイトにおけるトラッキングから身を隠す方法

ブラウザーフィンガープリンティングはユーザーにとって既知のリスクであることから、数多くの対策が存在します。
ここでは、いくつかの事例をご紹介します。

anonymoX

https://anonymox.net/en

anonymoXはブラウザ拡張で使用できる無料のVPNサービスです。
anonymoXが所有するサーバーを経由してWebサイトに゙アクセスすることから、IPアドレスによる個人の特定を防ぐことが出来ます。
また、anonymoXの特徴として、OS情報が偽装されることから、OSバージョンによるフィンガープリントを防止することが可能です。

CanvasBlocker

https://github.com/kkapsner/CanvasBlocker

CanvasBlockerを使用することで、Web サイトが Javascript API を使用してフィンガープリントを行うことをブロックするため、Canvas Fingerprintingから身を守ることができます。

CanvasBlockerにはcanvas2d、webGL、DomRectなどによるフィンガープリントを防止する機能が実装されています。

PrivacyPossum

https://github.com/cowlicks/privacypossum

PrivacyPossumを使用することで、トラッカーがユーザー識別用Cookieを使用することを防いだり、ETag Trackingの被害を最小化することができる拡張機能です。

この拡張機能は、ユーザーのブラウジング情報を混乱させ、トラッカーによる識別を困難にします。
PrivacyPossumはElectronic Frontier Foundationが管理するPrivacy Badgerに影響を受けて開始されたプロジェクトであり、他の拡張機能の欠点を補う機能が特徴です。

発展的なプライバシー保護

これらの拡張機能を使って行動追跡を困難にすることは重要ですが、ユーザーと分析会社の関係は「いたちごっこ」であることから、完全な個人情報の保護は困難です。
最も素晴らしいプライバシー保護の選択肢の1つに、個人を特定されうる情報をインターネット上で入力しないことが挙げられます。
ここでは、無料の使い捨て電話番号を提供するSMSOnlineについてご紹介します。

SMSOnlineが提供する使い捨て電話番号サービスを利用することで、個人情報の特定リスクやジオブロッキングに対応することが可能です。

携帯電話番号は、SMSによる本人確認など、ユーザーを一意に特定する目的で非常に頻繁に用いられています。
国外の携帯電話番号を入手することは容易ではないことから、Webサイトに登録するユーザーの居住エリアを限定する目的で利用されることも多くあり、これらの回避にSMSOnlineは有用です。

https://str995b5dba52a0.smsonline.cloud/uploads/bab158d3_db74_423b_88a7_2d68c45c703a_2d61bdf603.png

https://www.smsonline.cloud/ja

SMSOnlineは、世界各地の電話番号を公開し、それぞれの電話番号に届くSMSをWeb上で確認できるWebサイトです。

SMSOnlineを利用することで、自身が保有する本当の電話番号をWeb上に晒け出す必要がなくなります。
また、SMSOnlineでは日本、中国、台湾、韓国、アメリカ、ドイツなどのTier1諸国をはじめとする20以上の国の電話番号を継続的に取得しており、常に100以上の電話番号がオンラインです。
国外の電話番号に簡単にアクセスできることから、携帯電話番号認証によるジオブロッキングにも容易に対処することができ、本日ご紹介した拡張機能と併用して利用することで、インターネット上における活動の痕跡を減らすことができるでしょう。

お読みいただきありがとうございました。