「ブラウザーフィンガープリント」とは、ブラウザーから得られた情報を組み合わせて得たデジタルの「指紋」のことで、個々の利用者を特定するのに使われます。指紋と同じように、かなり正確に持ち主を特定することができます。本人に気付かれずに採取するのが難しい指紋とは違い、ブラウザーフィンガープリントはインターネット上のさまざまなサービスで使われていますが、必ずしも利用者の利益は考慮されていません。
ミュンヘン連邦軍大学の研究チームは、どのWebサイトがどのようにブラウザーフィンガープリントを収集しているかを追跡可能な、ブラウザー拡張機能を開発しました。その上で、アクセス数の多いWebサイト10,000件を解析し、どういった種類の情報が集められているのかを調査しました。Remote Chaos Communication Congress(RC3)の講演では、同チームの一員であるジュリアン・フィートカウ(Julian Fietkau)氏が、その問題と同チームの取り組みを解説しました(リンク先は英語)。
ブラウザーフィンガープリントとは
ブラウザーフィンガープリントを構成するのは、Webページが読み込まれるときにWebサイトがブラウザーに要求して取得することのできる、利用者のコンピューターとブラウザーに関するデータです。使用言語、タイムゾーン、インストールされている拡張機能、ブラウザーのバージョンのほか、OS、RAM、画面の解像度、フォント設定などに関する情報が含まれることもあります。
Webサイトはこのように、さまざまな量のさまざまな情報を収集し、アクセスした「あなた」を特定する識別情報を生成します。ブラウザーフィンガープリントはCookieとは別物ですが、同じような用途に使うことができます。Cookieの使用には同意が必要ですが(「このサイトはCookieを使用しています」という通知にうんざりしている人もいるかもしれません)、ブラウザーフィンガープリントを取得するのに同意は必要ありません。
さらには、シークレットモードを使用した場合でも、ブラウザーフィンガープリントの作成を阻止することはできません。ブラウザーやデバイスのパラメーターのほとんどはシークレットモードの場合でも同じなので、こういったパラメーターを使用して、今Webサイトを見ているのがあなたであると特定できるのです。
ブラウザーフィンガープリントはどのように使用され、悪用されるのか
ブラウザーフィンガープリントの第1の目的は、利用者に手間をかけさせることなく本人確認を行うことです。例えば銀行の場合、取引を行おうとしているのが紛れもなくあなた本人であることをブラウザーフィンガープリントから特定できれば、あなたの携帯電話にセキュリティコードを送信する必要はなくなり、その分、別のブラウザーフィンガープリントで誰か(またはあなた自身)があなたのアカウントにログインしようとしたときに、その真偽を判断するための労力をかけられるようになります。これは、ブラウザーフィンガープリントが利用者の利便性を向上させる一例です。(※訳注:海外の銀行では、オンラインでの取引を認証するためにSMSで送られる確認用コードを使った2段階認証が行われることが多い)
第2の目的は、ターゲット広告を表示することです。例えば、アイロンの選び方についての記事をどこかのWebサイトで読んだとしましょう。その後に、同じ広告ネットワークを使用している別のWebサイトにアクセスすると、その広告ネットワークによってアイロンの広告が表示されます。要するに、利用者の同意を得ずにトラッキングが行われているわけで、これを嫌がったり怪しんだりする人々がいるのも無理はありません。
とはいえ、さまざまな広告ネットワークやアナリティクスサービスのコンポーネントが埋め込まれた多くのWebサイトが、ブラウザーフィンガープリントを集めて解析しているのが現状です。
Webサイトがブラウザーフィンガープリントを作成しようとしているかどうかを知るには
Webサイトは、埋め込まれたJavaScriptコードを通じて、いくつかのリクエストをブラウザーへ送信します。これに対するブラウザーからの応答を集めたものが、フィンガープリントを作り上げます。
フィートカウ氏のチームは、この種のJavaScriptコードの入ったライブラリのうちよく使われているものを解析し、ブラウザーフィンガープリント関連で頻繁に使用されている115個の手法をリストアップしました。同チームはこれを元に、Webサイトを解析してこれらの手法が使われているかどうかを確認する「FPMON」というブラウザー拡張機能(英語)を作成しました。FPMONはまた、ブラウザーフィンガープリントを作成するためにWebサイトが具体的にどのデータを集めようとしているのかも示します。
FPMONをインストールしておくと、Webサイトがブラウザーに何らかの情報を要求したときに通知が表示されます。同チームは、こうした情報を「センシティブ」と「アグレッシブ」の2種類に分けました。
「センシティブ」には、Webサイトが正当な理由でリクエストすることのある情報が含まれます。例えば、ブラウザーの設定言語が分かれば相手の希望する言語でWebサイトを表示することができますし、時刻を正確に表示するにはタイムゾーンに関する情報が必要です。とはいえ、そうした情報から利用者について何かしら分かる可能性はあります。
「アグレッシブ」な情報とは、そのWebサイトとの関連性がなく、ブラウザーフィンガープリントを作成するためだけに使われる可能性が高い情報のことです。デバイスのメモリ容量、ブラウザーにインストールされているプラグイン一覧などがこれに該当します
Webサイトはどれほど積極的にブラウザーフィンガープリントを収集するのか
FPMONでは、40種の情報に関するリクエストを検知できます。ほとんどすべてのWebサイトは、少なくとも、ブラウザーまたはデバイスに関する何らかの情報をリクエストします。どの程度まで行ったら「このWebサイトはフィンガープリントを取ろうとしている」と見なすべきでしょうか?どの程度まで来たら心配すべきなのでしょうか?
研究チームは、調査に際して複数の既存Webサイトを利用しました。その一つである「Cover Your Tracks」(英語)は、プライバシー擁護団体である電子フロンティア財団(EFF)がブラウザーフィンガープリントの仕組みを説明するために作成したプロジェクトです。Cover Your Tracks(旧名:Panopticlick)は、23個のパラメーターを使い、90%以上の精度で利用者を特定可能です。研究チームはこのパラメーター数を最小値としました。パラメーターが23個かそれ以上あれば、そのWebサイトは利用者をトラッキングしていると見なすことができます。
Alexaランキング上位10,000件のWebサイトを調べたところ、57%近くは7〜15個のパラメーターを要求することが判明し、調査対象サンプル全体の中央値は11でした。対象Webサイトのうち、パラメーターを1つも収集しないのは約5%、最も多く収集するサイトは収集可能な40個のうち38個を収集していました。ただし、ここまでの数をリクエストしたのは10,000件のうちわずか3件です。
調査対象となったWebサイトは、100以上のスクリプトを使用してデータを収集していました。「アグレッシブ」カテゴリの情報を多く収集するスクリプトはごくわずかでしたが、そうしたスクリプトは非常にアクセスの多いサイトで使用されています。
フィンガープリント対策
Webサイトのスクリプトがブラウザーフィンガープリントを取れないようにする方法には、スクリプトをブロックする方法と、不完全な情報または不正確な情報を提供する方法の2つがあります。プライバシー対策ソフトウェアでは、いずれかの方法が使用されています。ブラウザーについては、Safariが近年、基本的な匿名の情報しか提供しないようになっています(英語)。
このほか、複数の組織がブラウザー拡張機能の開発に乗り出しています。たとえば、EFFが開発した「Privacy Badger」という拡張機能は、スクリプトのブロックを試みます。ただし、すべてのスクリプトをブロックするのではありません。例えばページを正しく表示するため、またはページの一部機能を動作させるために必要かもしれない(ただしフィンガープリントの生成にも利用できる)データを要求するスクリプトは、ブロックの対象となりません。
当社のブラウザー拡張機能であるカスペルスキー プラグインも、これと同じ方法で、Webサイトが必要以上に多くのユーザー情報を収集してフィンガープリントを作成することがないようにしています。カスペルスキー プラグインは、当社の個人向けセキュリティ製品に搭載されています。