ブラウザーは、cookieやlocalStorageのような機能を提供しており、これによりWebサイトは、複数回閲覧したユーザーを、たとえIPアドレスが変わったとしても、個人を識別できる。
このような機能を使わずに、変わりゆくIPアドレスの垣根を超えてユーザーを識別しようとすれば、それは可能だろうか。ブラウザーは多くの情報をサーバーに伝えているため、その情報の組み合わせが十分にユニークであれば、個人が識別できるのではないか。それを実際に検証するWebサイトが、panopticlick.eff.orgだ。
評価している情報は以下の通り。
- ユーザーエージェント
- これはブラウザーをサーバーに知らせるための情報だ。大半のとりあえず動く必要があるWebサイトは、ユーザーエージェントに従って、そのブラウザーで動くコンテンツを返す。あまり使われていない文字列の場合、かなりのユニーク性がある。
- HTTP_ACCEPTヘッダー
- これはブラウザーが受け付けるメディアタイプをサーバーに知らせるための情報だ。サーバーはこれに従って、ブラウザーが受け付けるメディアタイプを返す。
- ブラウザープラグインのデータ
- 利用可能なブラウザープラグインだ。珍しいプラグインを使っていれば、それだけユニーク性が増す。
- タイムゾーン
- これは、あまりそのWebサイトの閲覧者ではないタイムゾーン設定を使っていれば、ユニーク性が増すだろう。
- 解像度と色数
- そのまんま
- システムフォント
- これは、Flash PlayerやJava Appletが利用可能な場合、それを利用して利用可能なフォント名を列挙し、その結果を情報として使うということだ。FlashやJavaが利用可能で、かつ、珍しいフォント名が利用可能な場合、かなりのユニーク性が確保できる事になる。
- cookieが有効かどうか。
- cookie機能が有効かどうかを情報として使う。cookieを使うわけではない。
- super cookieが有効かどうか
- localStorageのような比較的新しいcookie類似機能が有効かどうかを情報として使う。
これらの情報を組み合わせた結果、私のブラウザーは今までテストした2,934,994件のうちで、ユニークであるという判定を受けた。
でかい情報量は、ユーザーエージェントだ。私はUbuntuのレポジトリにあるChromiumを利用しており、このユーザーエージェントは、相当珍しい。
ただし、最大の情報量は、意外にもHTTP_ACCEPTヘッダーだった。どうもこのChromiumと、私の優先する言語設定が、相当の情報量になっているらしい。言語設定を色々と変えてみたが、やはりタイムゾーンとの兼ね合いか、あるいはUbuntuレポジトリのChromiumのHTTP_ACCEPTヘッダーが相当めずらしいのか、情報量は十分に減らない。
どうもJSTはこのWebサイトでは珍しいらしく、これもバカにならない情報量になる。
結果として、私の環境は、これまでテストした環境の中では相当にユニークであるそうだ。
もちろん、ユニークであることと、匿名性はまた別の話だ。例えばTor経由でアクセスした場合、そもそもTorの出口ノード経由でのアクセスになるのでIPアドレスからして相当にユニークであるが、だからといって匿名性に問題があるわけではない。不特定多数の人間が使うコンピューターは、そのコンピューターから先の人間を特定するのが難しい。ブラウザーの送信する情報量のユニーク性が全てではないが、
No comments:
Post a Comment