[Web] トラッキングとは:その意味とブロックの方法を解説 Webサイトによるクッキーなどを利用したユーザーの行動追跡
ここでは、現在世界中で大きなプライバシー問題のひとつとして注目されている、Webにおけるユーザーの行動追跡=トラッキングについて、その手法などをわかりやすく解説していく。
前提
トラッキングとは
さまざまな合法的な手法を用いて、Webにおけるユーザーの行動を追跡・記録すること。
特に、ブラウザ経由でのWebアクセスにかかわることをいう。
個人を正確に特定できるものではないが、データを蓄積したうえでいくつかの条件が重なると、事実上、誰のことなのかわかってしまう場合もあるため、多くの国で問題視されはじめている。
もちろん、PCだけでなくスマートフォンでも問題。
それどころか、PC向けブラウザとは異なり、スマホ向けブラウザでは拡張機能を使えないことが多く、結果的にユーザーがみずから対策を施すことが難しいため、かえってスマホ環境のほうがトラッキングされやすい状況にある。
収集される情報
普通に特定サイトにアクセスするだけで、われわれユーザーの情報は以下のものが簡単に相手側に知られている。
- IPアドレス
- 利用しているプロバイダ(ISP)や携帯キャリア
- 利用している国・地域
- アクセスした時間
- アクセスしたサイト
- 使っているOS
- 使っているブラウザ
- ブラウザの設定言語
- ディスプレイの解像度や色情報
IPアドレス
インターネットは、サーバーへアクセスしたときにこちらの場所=IPアドレスを伝え、そこへサーバーからデータを送り返してもらう「往復はがき」のようなシステムになっている。
そのため、サーバーへIPアドレスを伝達するのは必須で、こればかりは基本的に隠蔽しようがない。
(IPアドレスを隠蔽したら、サーバーはどこへデータを送ればいいかわからない)
そして、IPアドレスは各プロバイダにあらかじめ割り当てられているため、そこからユーザーが契約しているプロバイダがどこかわかり、さらにはその法人の所在地からユーザーのおおよその居場所がわかるというわけだ。
ブラウザやディスプレイ情報
これはもちろん、Webページを正しく表示するためだが、仕様はブラウザしだいなので実は変更しようと思えばできないこともない。
些細なことのように思えるが、こうした情報の蓄積が結果的に個人の識別につながっていく。
たとえば、髪の色や上着の種類はたいした情報ではないかもしれないが、そこに目の形、肌の色、身長、耳の形などがどんどん加わってくれば結果的に、特定の個人の外見を示しているのと等しくなる。
トラッキングについて考える場合、けっして軽んじていい内容ではないのだ。
個人は特定できる?
厳密には「できない」。
だが、どんな情報もそうだが、複数の要素が重なると精度が高まってくる。
例1:情報漏えいした場合
特定のWebサイト(Webサービス)では、ユーザーにアカウント登録を義務付け、そのサイト内での行動を記録していることがある。
わかりやすい例としてはSNSが挙げられるだろう。
もし、そうしたサイトで個人情報を登録していると、それが万が一外部にもれた場合、トラッキングで集めた情報と組み合わせてまさに個人を特定することができる。
しかし裏を返せば、このような特殊なことが起きないかぎり、完全に特定されることはめったにないともいえる。
例2:少数サンプルの場合
どんな物事にも例外はある。
具体的には、トラッキングによって得られた結果が全体の傾向と比較して非常に珍しいものだったときなどだ。
たとえば、次のようなデータを想定してみよう。
- 〇〇県××市からアクセス
- 30代~40代に人気の商品サイトを見た
- プログラミングに強い興味
- ゲーム好き
- スポーツ好き
日本全体や世界全体で見れば、このような人物は数かぎりなく存在するだろう。
だが、もし「〇〇県××市」が人口の少ない自治体で、上記の特徴に当てはまる人物がひとりしかいなかったとしたら――?
事実上、特定できていることになる。
前提のまとめ
しかも、こうしたトラッキングによって収集した大規模データ=ビッグデータを欲しがっているのは広告業界だけではない。
今では大企業をはじめ、あらゆる分野のさまざまな企業が市場調査、顧客のターゲッティング、商品の開発・プロモーションのためにそれらを収集したい欲求がある。
そう、ビッグデータはビッグマネーになるのだ。
したがって、今後ユーザー側の自衛手段が普及するか、法律で禁止しないかぎり、トラッキング行為がなくなることはないだろう。
トラッキングの手法
IPアドレスを利用したトラッキング
基本
最もシンプルで昔からあるもの。
トラッキングに限らず、単純なアクセス解析でも基本的にこのIPアドレスを基準に行われている。
上記のとおり、ユーザー側ではこれを隠蔽することはできない。
つまりは、IPアドレスを利用したトラッキングは防ぎようがないのだ。
限界
ただし、この手法には限界もある。
現在、未だに主流のIPv4という形式では、全体としてIPアドレスの数が足りないため、限られた数を複数ユーザーで使いまわしている状態にある。
そのため、基本的には携帯キャリアやプロバイダにつなぐたびに、ユーザーのアドレスは変わることになるので、継続的なトラッキングには不向きな面がある。
反論
ただ、実はIPv4であってもめったにアドレスが切り替わらないことがある。
ユーザーが契約しているプロバイダの利用者数がさほど多くなく、自社が使えるIPアドレスの数に余裕があるときだ。
この場合、状況によっては半年近く同じアドレスのままだったり、切り替わったとしても以前割り当てられたものと同じだったりすることがある。
つまり、IPv6が普及する前から、IPアドレスのトラッキングがしやすい環境が整っていることもあるということだ。
今後
これから「ひとり1アドレス」どころか「1機器1アドレス」が可能になるIPv6が普及すると、こうした状況も劇的に変わる可能性があるだろう。
そうなったとき、おそらくトラッキングそのものを法制度で規制しないかぎり、今以上の問題が出てくることは疑いようもない。
クッキーを利用したトラッキング
基本
クッキー(cookie)とは、サーバーがユーザーのブラウザに保存させることができるデータ管理のシステム。
ユーザーがサーバーにアクセスした段階で発行されるもので、基本的にごく小さいデータしか扱えないが昔から多用されている。
たとえば、ログイン情報の管理が典型的だ。
特定のサイトにログインするとそのサーバー側から「ログインした」という情報を持ったクッキーが送信され、それをブラウザが保存するからページを移動しても再ログインの必要がなく、ログインした状態を維持できる。
ただし、クッキーを扱えるのはあくまでドメイン単位。
まったく関係のないサイトが他のサイトのクッキーを読み込めてしまっては、まさにセキュリティ上の問題が出てしまうからだ。
例として、example.comが発行したクッキーをtest.comのサーバーが読むことはできない。
トラッキングの手法
このように、本来はユーザーの利便性を高めるためのものだったのだが、これがトラッキングに利用できてしまうのだ。
ここでは、「example.com」のサイトに「test.com」の広告を掲載した場合を想定してみよう。
広告業者のサーバーtest.comは、もちろんexample.comのクッキーを読み込むことはできないが、ユーザーのブラウザはexample.comに掲載された広告を表示するためにtest.comにアクセスする。
TwitterやInstagramなど外部サーバーにある画像を取得しようとするのと同じことだ。
このときに、test.com側はユーザーに対して自社のクッキーを発行し、反対に以前発行したそれを取得することもできるわけだ。
こうして広告配信業者などは、「クッキーxxxx」を持つユーザーが「いつ」「自社のどの広告を見たか」を把握することができるようになる。
一方で、Web広告の中にはその広告を掲載する側の情報を組み込んでいる場合もある。
また、ブラウザは常にアクセス元のURLをアクセス先のサイトへ「リファラ」として送信してもいるので、「誰が」「いつ」「どの広告を」だけでなく、「どこで」という情報についても広告業者は把握できるのだ。
今後
今現在、世界中で最も問題視されているのが、このクッキーを用いたトラッキングだ。
EU(ヨーロッパ連合)ではすでに一方的なクッキーの送信を禁止し、ユーザーの明示的な許可が必要になる制度が導入されている。
またクッキーに関しては、ユーザー側でブラウザの設定を変えて対処することが可能なので、今後は減っていくものと思われる。
対策
サードパーティクッキーの制限
現在主流のブラウザでは、ほぼ標準でクッキーの制限が可能になっている。
ただすべて禁止してしまうと、トラッキングを行っていないサイトのログインなどにも支障が出てしまいかねないので、「サードパーティクッキー」のみ禁止する場合が多い。
サードパーティクッキーとは、現在表示しているサイトのドメイン以外から送られてくるもののこと。
「example.com」のWebページにアクセスしたとき、貼り付けられた画像と一緒に「test.com」から送られてくるクッキーのことだ。
example.comのクッキーはファーストパーティクッキーと呼ばれるが、同じドメイン名(ルートドメイン)であってもサブドメインが異なれば、それはサードパーティクッキーとなる。
この例でいえば、abc.example.comやxyz.example.comのクッキーはサードパーティクッキーとなる。
このサードパーティクッキーは大半が広告目的・トラッキング目的のもののため、これを一律に禁止してしまおうというわけだ。
場合によっては、トラッキングとは関係のないクッキーまで拒否してしまい、サイトが正常に動かなくなるリスクもあるが、こちらはサイト側で対応が進んでいるようだ。
Do Not Track
また、「Do Not Track」ポリシーの送信という仕組みもある。
これも大半のブラウザにすでに組み込まれた機能で、サードパーティクッキーの制限のように「送られてきたものを拒否する」のではなく、反対にユーザー側から「トラッキングするな」とサーバー側へ通知するシステムだ。
ただ、対応はサイト運営者しだいで、現実問題として善意の運営者ばかりではないので効果の程は未知数である。
フィンガープリンティング
基本
最近、問題視されているのがこちら。
フィンガープリンティング(finger printing)とは「指紋をとる」という意味だが、ここではクッキー以外のユーザー識別情報を集めてトラッキングすることをいう。
前提で見たように、現在のWebの仕組みではユーザーは各サイトにアクセスする際、かならず一定数の情報をサーバー側へ自動的に送信している。
それらを集めて解析し、可能なかぎり高い精度で個人を識別しようとするのがこのフィンガープリンティングだ。
トラッキングの手法
環境変数なるもの
そもそも、どれだけのユーザー情報がサーバーへ毎回送られているかを知るために、こちらのサイトへアクセスしてみてほしい。
表示された一連の情報は「環境変数」と呼ばれるもので、その名のとおりユーザー側の使用環境についてまとめたデータのことだ。
自分に関する情報のあまりの多さに驚くだけでなく怖さを感じた人も多いことだろうが、この点に関してはあまり心配する必要はない。
これはあくまで基本的なことで、むしろWebをまともに利用するためには必須ともいえる要素だからだ。
だが、これらがトラッキングに利用されると厄介なことになる。
たとえばディスプレイの解像度だけでも、それが珍しい数値だった場合、個人を特徴づける要素に十分なりうる。
そこにIPアドレス、ブラウザの種類・バージョンなどを組み合わせていけば、かなり精度を高めることができるのだ。
とはいえ、クッキーを利用したトラッキングに比べると、その精度はやや落ちるといわれている。
Canvas・WebGLを利用したユーザーの識別
そこで登場したのが、ブラウザ固有の機能であるCanvasやWebGLを利用した手法だ。
Canvasとは2D画像をプログラム(スクリプト)によって表示するための機能で、よくブラウザゲームやグラフの表示に使われている。
WebGLはその3D版で、いずれもユーザーの使用環境によって動作が異なってくる部分がある。
両方ともグラフィックに関する機能なので、当然マシンのハードウェア、特にグラフィックカードの違いによって表示に差が出るのだ。
それをトラッキングに利用する。
たとえば、テキストを表示させる手法があり、同じフォントの同じ文字であってもCanvasやWebGL上ではレンダリング(表示の出力)に違いが出やすい。
そこで特定の文字、ここでは例として「あ」という文字を考えるが、これをいったん表示させ、その特徴を把握するために一部のピクセル情報をプログラム(JavaScript)で取得し、他のユーザーのデータと比較する。
それが一致すれば同一ユーザーとみなし、違えば別のユーザーとみなすというわけだ。
またフォント自体、ユーザーによって使える種類が異なる場合がある。
デザイナーはいろいろなフォントをインストールしているだろうし、逆にこだわりがない人はOSデフォルトのままだろう。
ちなみに、筆者は無料のフォントをいろいろ入れているが、全体として見れば珍しいほうだろう。
ということは、それだけ個人の識別がしやすいともいえる。
結局この手法は、使えるフォントとグラフィック周りのハードウェア環境をベースにユーザーの識別を行うということになる。
ブラウザプラグインの識別
他にも、ブラウザに導入されたプラグインを実質的に識別するやり方も存在する。
特定のプラグインがなければ動作しない要素をあえてWebページに入れ、それが動くか否かをチェックするのだ。
最もわかりやすいのがFlashだろう。
Flash Playerがあれば動く.swfファイルをページ内に組み込み、動作したときだけ反応するプログラムを用意しておく。
単純ではあるが、効果的な方法だ。
ただ、Flashが2020年で終了するように、あらゆるブラウザでプラグインの仕組みそのものが廃止の方向に進んでいる今となっては、あまり意味のあるやり方ではなくなってきた。
特にFlashは、どのブラウザでもデフォルトでは動作しない設定になっているので、なおさらだ。
その他の方法
実際に使われているかどうかはともかく、他にもやり方はいくらでもあるだろう。
たとえばユーザーの端末にわざと特定の処理をさせて、その処理時間を計測することでCPUの性能を計る、ページの表示にかかった時間を計測して回線速度や端末全体の性能を把握するなどだ。
対策
さて、このフィンガープリンティングだが、こちらはクッキーとは異なりユーザー側での対策が難しいという特徴がある。
しかも厄介なのは、ユーザー側が非常に気づきにくい点だ。
IPアドレスや環境変数の場合、それらをチェックするサイトへアクセスすれば自分で確認できる。
クッキーは、そもそもローカルに保存されているので、自分で見ようと思えばいつでも見られる。
だが、フィンガープリンティングはそうではない。
知らない間に情報を抜かれ、しかも証拠は残りにくい。
トラッキングデータを収集する側が「知らぬ存ぜぬ」を貫こうと思えばできてしまうのだ。
対策済みブラウザを使う
だがすでに、このフィンガープリンティング対策を施されたネットワーク技術が登場している。
それが「Tor」(トーア)だ。
これは通信時の経路を隠すことができる技術で、それを導入したものが「Tor Browser」である。
スマートフォン版も用意されているこのブラウザはフィンガープリンティング対策も行われているので、特に難しく考える必要もなく対応ができる。
現在の流れを考えると、今後は各ブラウザに同様の機能が実装されていくものと思われるが、すでに主要ブラウザではFirefoxがそのバージョン72でフィンガープリンティング対策を施している。
トラッキング判定サイトを利用する
実は、こうしたフィンガープリンティングを含むトラッキングに対してどれだけ脆弱か判定するサービスが存在する。
「Panopticlick」という名のWebサイトだ。
英語のみの対応だが、testをクリックすると各種判定が行われ、最後に結果の一覧が出るのだが、基本的に右側のチェックマークがすべてグリーンになっていればトラッキングに対して強く、赤の×が多いほど弱いということになる。
たとえば、Do Not Trackポリシーの変更などはすぐにできることなので、今すぐにでなくてもひとつひとつ対策していくようにしよう。
フィンガープリンティングについてのまとめ
トラッキングをする側がここまでやってもユーザーの識別精度は90%程度といわれるが、まったくわからない状態からすれば十分高いだろう。
ただ、対策も進んできているので、今後はこのフィンガープリンティングでさえ把握できる情報が限られてくるはずだ。
まとめ
トラッキングデータの欲しい企業などは、あの手この手でユーザーの行動履歴を収集しようとしている。
それが現実だ。
ブラウザの提供者側も現状、対応がまちまちで、今後どこまで期待できるのかわからない。
ユーザーサイドとしては自衛するしかないのだ。
幸い、今のところは対応できる要素が多いので、さほど心配する必要はないだろう。
また、AppleがITPというトラッキング対策の方針を打ち出してかなり積極的に進めており、ブラウザ(Safari)で事実上、サードパーティクッキーを禁じる・制限する傾向が強まっている。
それに追従する形で、やや限定的ではあるもののGoogleも自社のブラウザChromeで同様の方針を採りはじめている。
こうした流れからいえることは、今後トラッキングは技術的にも制度的にも厳しく制限されるのは間違いないようだ。
補論:Googleの場合
大半の広告業者では、ユーザーの側でトラッキングされた情報をどう扱うか決めることはできないのだが、Googleは珍しくオプションを用意している。
Googleアカウントページへ行き、「データとカスタマイズ」の「アクティビティ管理」や「広告のカスタマイズ」で設定の変更を行うことができる。