デバイスフィンガープリンティングとは?
コミュニティ投稿 - 筆者非公開
コンピューターサイエンスにおいてフィンガープリンティングとは、あらゆるの種類のデジタルデータに対して識別子を作成することです。個別のユーザーや機器を特定するために利用する場合に、その技術をブラウザフィンガープリンティング、またはデバイスフィンガープリンティングと呼びます。
本質的には、スマートフォン、コンピューター、その他のデバイスから情報を集めることです。ユーザーがIPアドレスを隠したり、利用するブラウザを変えた場合でも、情報の収集が可能です。
何年もの間ウェブ解析サービスは、日常的なウェブサイトの利用を追跡したり犯罪行為を発見するために、デバイスやブラウザの情報を収集してきました。現在では手法が進化し、特定のパラメータを収集することができるようになっています。
以前のフィンガープリンティングは、主にコンピューターに特化していました。しかし現在の技術は、ほぼ全ての種類のデバイスを特定できるようになっており、利用規模が拡大しているモバイル環境での活用も増加しています。
仕組みは?
集められた情報は対象のデバイスではなく、1つのデータベースに保存されることが多くなっています。1つのデータだけでは不十分ですが、複数のデータを組み合わせれば個々を識別できます。
デバイスフィンガープリンティングには、受動的な方法と能動的な方法がありますが、目的はどちらもデバイスの情報収集です。たとえ何千というコンピューターが同じOS(オペレーティングシステム)で動いていても、ソフトウェア、ハードウェア、ブラウザ、プラグイン、言語、タイムゾーン、一般的な設定といった情報を組み合わせれば、個々のコンピューターを識別できるようになります。
受動的フィンガープリンティング
名前の通り受動的フィンガープリンティングとは、ユーザーやリモートシステムに働きかけることなく、より発見されづらい方法で情報を収集することです。個々のデバイスから発せられた情報を元にデータを収集するため、受動的フィンガープリンティングは、OSのような特定に有用ではないデータしか取得できない傾向があります。
例えば、インターネットのモデムのようなネットワークデバイスの、ワイヤレスドライバーに関する情報を収集する受動的フィンガープリンティング技術を開発したとします。この場合、個々のデバイスからのアクションを要求せずに、様々な種類のドライバーを調べていくのが受動的デバイスフィンガープリンティングです。基本的にデバイスによって、利用できる通信(アクセスポイント)を探す方法は異なります。そのため、こういったデバイスごとの相違を活用し、ターゲットにするデバイスがどのドライバー使っているかを正確に特定します。
能動的フィンガープリンティング
一方、能動的フィンガープリンティングは、ネットワーク上で能動的にコミュニケーションを行い、ユーザーやデバイスをより特定しやすくなるように働きかけます。ウェブサイトには、ユーザーのデバイスやブラウザに関する情報を収集するために、JavaScriptのコードが使われているものがあります。ウィンドウの大きさ、フォント、プラグイン、言語設定、タイムゾーン、またハードウェアの詳細といった情報です。
キャンバスフィンガープリンティングは能動的手法の好例で、コンピューターとモバイルデバイスの両方に対して使われています。この方法では、HTML5を用いたホームページのキャンバス(グラフィック機能)と通信できるスクリプトをよく利用します。スクリプトは、ユーザー側に表示されているイメージをスクリーンに描くようにキャンバスに指示を出します。そうすると、スクリーンの解像度、フォント、背景色といった情報が記録され、それを利用してユーザーやデバイスを特定する仕組みになっています。
何に利用されているか?
デバイスフィンガープリンティングという手法は、広告主がブラウザをまたいで消費者の行動を追跡する時に利用されます。また銀行が、送信されてきたリクエストが信頼するデバイスからのものなのか、以前不正行為に使用されたシステムからのものなのかを見極める時にも使われます。
他には、ウェブサイトで同じアカウントが複数登録されるのを防いだり、検索エンジンが不審な行為を行うデバイスを検出する場合にも使われます。
デバイスフィンガープリンティングは、個人情報の盗難やクレジットカード詐欺の発見・防止に適しています。しかしながら、こういった技術はユーザーのプライバシーを侵害し、使い方によって、特に受動的フィンガープリンティングではデータが収集されていることにユーザーが気づかないことがあります。
課題は?
能動的フィンガープリンティングでは、データの収集にJavaScriptのようなスクリプト言語を利用します。ユーザーはプライバシー保護用のソフトウェアやプラグインを活用し、特定されるのを難しくするためにスクリプト言語の利用を制限しようとします。また追跡や広告をブロックするブラウザの拡張機能を利用することもあるでしょう。
しかし逆に、プライバシーを重視するユーザーの方が特定しやすい場合があります。例えば、特別な設定をして珍しいソフトウェアやプラグインを使えば使うほど、皮肉にも目立ってしまい、識別しやすくなってしまうのです。
また、フィンガープリンティングの効果が、ユーザー側の環境の変化によって限定されてしまうことがあります。頻繁に設定を変更したり、複数の仮想オペレーティングシステムを利用するユーザーに対しては、データの収集が正確に行えない場合があります。
使うブラウザを変えるユーザーに対しても、情報収集がうまくできない可能性がありますが、今ではこの問題を解決するために、ブラウザ対策用のフィンガープリンティング技術が開発されています。
まとめ
デバイスフィンガープリンティング技術を利用する方法は複数あり、データを収集して出所を特定できる効果は方法によって大きく異なります。
1つの方法を使う場合も、他の方法を組み合わせて使う場合も、デバイスフィンガープリンティングを利用すれば、行動の追跡やユーザーの特定が効果的に行えます。この強力な技術は、日常的な利用から違法と疑われる行動まで、広範囲に活用することができます。まずは、基本的な仕組みを理解しましょう。