Iron で情報を漏らさない!プライベートブラウジング環境を考える!

DO NOT ENTER
プライバシーを守るってなんでしょう〜?

プライベートブラウジング!

たまーにどこかの企業が個人情報を漏らしただとかニュースになったりしていますが、オンラインショップで買い物してそこから漏れたんだなーとか推測できたりするんでしょうけど、最近話題なインターネット上でのトラッキングって、どこでどうやって取得されて、どこでどう使われているのか?さっぱり分かりません。

普通にインターネットしている時に「あ!今取られた!」とか分かればもっと関心も持つだろうし、それを糸口に調べたり出来ますもんね!変に不安になったり騒いだりすることも無くなるかもしれません。

ってことでとりあえず環境を用意して、まず体感することが大切かなーと感じています。

トラッキングってなんだろうね?

直訳だと「追跡」みたいなんですけど、インターネットで追跡されている自覚なんてありませんよね?どうやって追跡しているのか、そもそもトラッキングが指している物は何なのかわたしなりに調べてみました!

どうも広告やアクセス解析にトラッキングの仕組みが含まれているみたいで、最近でしたらソーシャル系のボタンにも含まれているみたいです。HTML の要素は、img、iframe、JavaScript、Flash などで、用語としてはトラッキングコードやトラッキングクッキー、トラッキングタグなどが使われているみたいです。

ターゲットになるブラウザ(パソコン)の判別方法として、ブラウザにコード(独自の文字列)が入ったクッキーを渡して判断する、または IP アドレスとユーザーエージェントの組み合わせから判断する2タイプが主流の様です。最近であれば、固定 IP にしていないと頻繁に IP アドレスは変わると思うので前者がよく使われていると思いますが、どちらも平行して使っていることも考えられますよね。

IPアドレスとユーザーエージェントの確認はこちらからどうぞ

通販サイトと広告

例えばですが、通販サイトに外部の広告が貼られていたパターンで説明したいと思います。

まず通販サイトAにアクセスするとそのページのデータ(HTML)を送ってくきます。その中に外部の広告(トラッキングコード、トラッキングタグ)が入っていた場合、(3)のタイミングで広告提供会社はブラウザからアクセスがあったので IP アドレスとユーザーエージェントを記録出来る訳です。なので「IP アドレスとユーザーエージェントの組み合わせから判断する」はこのタイミングで開始されます。

それで広告のデータをブラウザに送ることになりますが、この(4)のタイミングで判別用のコードを入れたクッキー(トラッキングクッキー)を渡しておけば、次回同じ様に広告を要求された時、もしIPアドレスが変わっていたとしてもクッキーのコードから以前にアクセスのあったブラウザだと判断出来ます。

通販サイトと広告

さきほどと同じ広告提供会社の広告が通販サイトAのページA、ページB、ページCにも貼られている状況で、ページA → ページB → ページC の順番に見てまわったとすると、各ページにアクセスするたびにさきほどと同じやり取りが行われ、広告提供会社からはページAを見て、次にページBを見て、最後にページCを見た記録が残る訳です。

アクセスログ

(3)のタイミングで広告提供会社側に記録されたログとします。(SQL のテーブルのイメージです。分からない方はエクセルの表とかだと思ってください。)こういう記録によりこのブラウザは 15:31 にページAにアクセスして 15:40 にページBに移り、15:45 にページCに移動したことが分かります。ページABCがペット商品の内容だとしたら、このブラウザはペットに興味があるんだと分かりますね。

アクセスログ

もし翌日になって IP アドレスが変わってしまっていたとしても、判別コード入りのクッキーを持っていたら昨日アクセスのあったブラウザだと判断できます。

通販サイトと広告

ちょっと省略していますが、複数のサイトに広告配信してる場合でも同じ様に記録されます。通販サイトAとBどちらも利用した場合、色々な情報が広告提供会社に残ることが想像できると思います。どのパターンでも、(3)データを要求と(4)データを送るの部分がポイントで、ブラウザ側からしたらトラッキング目的のあるサイトにアクセスしないクッキーを受け取らないが重要になると思います。

取得されている情報は?方法は?

取得されている情報とか具体的な内容が気になりますよね?一企業の一例ですけど「行動ターゲティング、ブログ広告、リターゲティング」とトラッキングを前面に出しているマイクロアドのサイトでは以下のような文言が書かれています。

行動ターゲティングとは|行動ターゲティング,ブログ広告,リターゲティングのマイクロアド

  • 閲覧しているコンテンツ
  • 検索しているワード
  • 最近「XXX」と検索した人
  • 訪問した販売サイト
  • 購入するまでの時間・訪問回数
  • A社のY商品を3回閲覧した人
  • 購入ユーザーが同時に購入した商品の傾向
  • 購入ユーザーがよく閲覧しているサイト
  • ブログからZを購入した人

わー!すごいですね、興味津々で見てしまいました。これらの内容がトラッキングから分かるってことですね、まさに行動記録!もっと知りたい方はマイクロアドのサイトに詳しく掲載されていますので、見てみてください。

行動ターゲティングとは|行動ターゲティング,ブログ広告,リターゲティングのマイクロアド

それでこういう情報を細かく取得しようと思うと JavaScript でのトラッキングが必要になると思います。なので逆に JavaScript を知ればこういう事が可能なんだと色々想像もしやすいと思います。「マウスをクリックした時に○○をする」とか「キーボードを押した時に○○する」とかユーザーが行うイベントを拾って色々出来たりしますので、興味のある方は見てみてください。

とほほのJavaScriptリファレンス -イベントハンドラ-

イベントハンドラと送信情報

JavaScript を使ったトラッキングではこういう細かいアクションを取得し逐一送信することが可能です。ただトラッキングを目的としたスクリプトがどの程度の内容を取得しているかは各サービス、各企業によると思いますのであくまでも「こういう事が可能なんだなー」程度にお考えください。

Iron でプライベートブラウジング環境を用意!

SRWare Iron

少しトラッキングの説明が長くなってしまいましたが、簡単に対策を言えばトラッキングサイトにアクセスしなければいいし、クッキーも受け取らない、または受け取ってもすぐに削除すれば良いと思います。(※アクセスしなければクッキーを受け取ることはありません。)

なので、まずはそうゆう環境を準備するってことでブラウザから見直します。GIGAZINE で良さそうなブラウザが紹介されていました!実際に使ってみるとこれがなかなか良いです!今回のテーマにもピッタリ!なので、個人的には SRWare Iron をおすすめします。また、これ以降は SRWare Iron を前提に話をすすめたいと思いまーす。

GoogleChromeから余計な機能を取り払いさらに軽量・高速化したブラウザ「Iron」 – GIGAZINE(インストール方法も詳しく書かれています)

SRWare Iron はオープンソースの Chromium をベースにドイツの SRWare 社が独自に機能追加などして開発されたブラウザで、Chrome と似ていますが Chrome ではありません。あくまでも SRWare Iron の元となっている Chromium ベースなので Chrome にあって Iron に無い機能があります。Google に余計な情報を送信しないとか広告ブロックの機能がついてるとか、プライベートブラウジングをするには適したブラウザだと思います。(使用感はほぼ Chrome です。)

知っておきたいポイント

  • Chrome のログイン(データ同期)と同じ機能があるので移行はスムーズ
  • 自動アップデート機能が無いので手動で更新しないといけない
  • Chrome ウェブストアが使えるので拡張機能もOK(動かない物もある)
  • Chrome と比較して速そう(データは古そう)
  • 広告ブロック機能がある(adblock.iniにブロックしたいURLを書く)
  • ユーザーエージェントを変更出来る(UA.iniに変更したいUAを書く)

参考リンク

ダウンロード&インストール

Mac で既に Chromium をお使いの場合上書きされてしまうのでバックアップを取るなどしてください。Windows は試してないので不明です。

Iron 標準の機能で情報を確認してみる!

トラッキングってなんだろうね?でお話した、「通販サイトAにアクセスした結果、広告が貼られていてトラッキングコードが実行されクッキーがブラウザに保存される」流れを実際に見れるように広告を1つだけ貼ったページを用意してみました。

広告だけのページのHTMLソース

http://actyway.com/adsense
HTML ソースはこんな内容で AdSense を1つ貼っただけです。

通販サイトと広告提供会社

通販サイトAを actyway.com/adsense として、広告提供会社を pagead2.googlesyndication.com とします。

chrome://net-internals/#events

通信を見るには chrome://net-internals/#events をアドレスバーに入力します。ネットワーク監視ツールなど入れなくても標準の機能でこういう物があるのが便利ですね!

net-internals/#events の Delete all のボタン

今表示されている通信ログを全て消すには画面下部にある「Delete all」ボタンを押します。

Cookie とその他のデータ

Iron で保存されているクッキーを見るには chrome://settings/cookies を開きます。

Cookie とその他のデータの削除ボタン

クッキーを削除する場合は、「すべて削除する」ボタンと個別に削除できる「×」を押すことで行えます。

これでトラッキングの通信とクッキーが確認出来るので、実際に確認していきたいと思います。何か拡張機能を入れてしまっている場合は無効にしておいてください。(余計な通信とクッキーが出来てしまう可能性があります)

では、http://actyway.com/adsense にアクセスしてみてください。アクセスしてから通信ログとクッキーを一度全部消した上で再度ページを読み込む方が見やすいかもしれません。

chrome://net-internals/#events

chrome://net-internals/#events にはこんな感じで結構たくさんログが表示されます。

chrome://net-internals/#events で絞り込み

このままだと分かりづらいので、絞り込んで表示させます。画面上部に「Filter:」の入力欄がありますので「URL_REQUEST」と入力します。

chrome://net-internals/#events で絞り込み結果

71件が12件になったので見やすいですよね!1度のアクセスなのに裏ではたくさん通信してることが分かります。

http://actyway.com/adsense

http://pagead2.googlesyndication.com/pagead/show_ads.js

http://pagead2.googlesyndication.com/pagead/js/r20120321/r20110914/show_ads_impl.js

http://pagead2.googlesyndication.com/pagead/expansion_embed.js

http://googleads.g.doubleclick.net/pagead/ads?client…

…(省略)

こんな感じの順番に読み込まれたことが分かると思います。

chrome://net-internals/#events の詳細

適当に一行選択してみてください。画面右側の空白だった場所にログの詳細が表示されます。

chrome://net-internals/#events の詳細

最初の「http://googleads.g.doubleclick.net/pagead/ads?…」の行を開いています。「 –> GET /pagead/ads?client…」の部分でサーバーにリクエストを、「–> HTTP/1.1 200 OK…」の部分ではリクエストの結果が表示されています。「Set-Cookie: [value was stripped]」でクッキーを受け取ったことが分かりますね。

Cookie とその他のデータ

chrome://settings/cookies の画面で doubleclick.net のクッキーが保存されています。表示されていない場合は画面の再読み込みを行ってみてください。

chrome://net-internals/#events の詳細

クッキーを受け取っている場合、リクエストする時に持っているクッキーを渡していることが分かります。
(これは googleads.g.doubleclick.net への2度目の通信の内容です)

クッキーの仕様

クッキーの仕様について詳しく知りたい場合は下記が参考になると思います。RFC 6265 が最新の仕様だと思います。

Flash クッキー

言われてみれば当然なんですけど、Flash でクッキーが使えることを知りませんでした。最近の Flash だと問題ないと思いますが古い物だと、ブラウザからのクッキー削除では消えない仕様(保存場所が違う)だったみたいです。もし古い Flash やブラウザをお使いの場合は確認してみてください。Flash Player のバージョン 10.3.181.14 から削除可能になったみたいです。

最新の Flash Player は、Adobe – Adobe Flash Playerのインストール から、Flash Player のバージョン確認は、Flash Player の状況確認 から、Flash Player の設定は Adobe – Flash Player:設定マネージャー – Web サイトの記憶領域設定パネル から。

拡張機能でトラッキングを体感する!

chrome://net-internals のような画面で確認できなくは無いですけど、もっと便利で簡単に体感出来るように拡張機能を使ってみたいと思います。

Do Not Track Plus

Do Not Track Plus は広告やトラッキングをブロックしてくれる拡張機能です。これ系の拡張機能はたくさんあって、正直違いを把握するのは大変です。その中でも「あ!今ブロックされた!」が分かり体感しやすいと思ったのでこちらをご紹介します。

上の画像にリンクを貼っていますので、興味のある方は実際に入れてブラウジングしてみてください。

http://actyway.com/adsense

Do Not Track Plus を有効にして先程の http://actyway.com/adsense にアクセスしてもこのように広告が表示されなくなります。

chrome://net-internals/#events

リクエストも actyway.com へしか行われていない様なのでブロック出来ていることが分かります。

Do Not Track Plus のポップアップ

広告やトラッキングをブロックすると、Do Not Track Plus のボタンにブロック数に応じて数値が表示されます。ブラウジングしていて「あ!今ブロックされた!」が体感しやすいと思います。ボタンを押すことにより大まかに何がブロックされたのか分かります。

Do Not Track Plus のポップアップ

さらに緑字の 1 blocked などと書かれているエリアを押すと詳細が出てきます。これにより何をブロックしたのか把握出来ます。

Do Not Track Plus の感想

Do Not Track Plus を有効にした状態で色々とブラウジングしてみてください。わたしの感想だと、自分が思っていたよりそうゆう要素がサイトに含まれていてこういう物を使ってみないと分からないことなんだなーと思いました。ソーシャルボタンとか見た目が変わっていますよね?

それで、この Do Not Track Plus はあくまでも体感目的であって実際にブロックする方法は下で後述します。Do Not Track Plus は海外製なので日本の物には対応していないので実用性は若干低かったりします。

Do Not Track Plus でブロックされる URL のリストは http://www.donottrackplus.com/trackers/index.php より確認できます。

Iron のクッキーの設定を見てみる!

コンテンツの設定

クッキーに望むことは、「必要なクッキーは残しておいて必要無い物は消したい!」ですよね?

Iron からのクッキーの設定は、chrome://settings/content から開けられます。とりあえず分かる範囲で項目の意味を書いてみたいと思います。間違っていたらすみません。

ローカルへのデータ設定を許可する

この項目は、HTML5 から使われている Web Storage (localStorage と sessionStorage) の事だと思ったのですが、2つ下の「サイトからのデータ設定を全てブロックする」にチェックを入れると Cookie もブロックされてしまうことから Cookie と Web Storage の2つの設定を指していて、これらの使用を許可するかしないかだと思います。Web Storage 単体での確認は出来ていません。

現在のセッションでのみローカルへのデータ設定を許可する

現在のセッションの範囲が不明でした。

サイトからのデータ設定を全てブロックする

Cookie と Web Storage への保存を全てブロックするかしないかだと思います。

サードパーティの Cookie とサイトデータをブロックする

ここにチェックを入れるとサードパーティのクッキーはブロックされる事は確認できました。例えば、actyway.com で Twitter のボタンを表示していて Twitter のボタンもクッキーを渡してくるとします。ここにチェック入れていれば actyway.com にアクセスした場合、actyway.com からのクッキーは受け取りますが、Twitter からのクッキーは受け取りません。

ブラウザ終了時に Cookie と他のサイトやプラグインのデータを削除する

ブラウザを終了させた時に Cookie と Web Storage のデータを消すか消さないかだと思います。ここにチェックを入れると chrome://settings/cookies で表示されていた物は全て消えます。

例外の管理…

許可したい、許可したくない URL の指定が出来ます。「サイトからのデータ設定を全てブロックする」と「サードパーティの Cookie とサイトデータをブロックする」のどちらかもしくは両方にチェック入れていた場合に、許可したい URL を書いておくとクッキーの受け取りは確認できました。「ブラウザ終了時に Cookie と他のサイトやプラグインのデータを削除する」にチェック入れている場合は、「例外の管理…」に許可する URL が書かれていても削除されてしまいます。

上記な様な感じで個人的には、すごく分かりにくい印象です。 Cookie を管理する – Google Chrome ヘルプ Google でもきちんと説明されていないみたいでした。Web Storage は「cookieをブロックしている場合、例外が発生する。」と 無職のプログラミング  [HTML5]Web Storageについて調べる の記事で書かれていました。Web Storage については分からないことが多いので今回は深追いせずにいきます。

拡張機能でクッキーを管理する!

標準の設定でせめて「ブラウザの終了時に Cookie と他のサイトやプラグインのデータ」にチェック入れていても例外で許可した URL のクッキーは残して欲しいなと思いました。標準の設定がいまいちだと思ったので拡張機能を使うことにします。

Vanilla Cookie Manager

クッキーを管理する拡張機能っていっぱいあったりする中で、Vanilla Cookie Manager しか試せていませんが個人的にはこれで十分だと思いましたのでご紹介させていただきます。

Vanilla Cookie Manager の主な機能

  • ホワイトリスト(許可するURL)の登録が出来る
  • ホワイトリスト以外のクッキーは時間指定で削除出来る
  • Iron の「ブラウザの終了時に Cookie と他のサイトやプラグインのデータを削除する」にチェックを入れていてもホワイトリストのクッキーは守られる

Vanilla Cookie Manager のアイコン

Vanilla Cookie Manager を有効にするとアドレスバー(Omnibox)にアイコンが表示されます。表示している URL がホワイトリストに追加されていない場合は左。追加されている場合は右の様な状態になります。

Vanilla Cookie Manager のポップアップ

アイコンをクリックするとポップアップでメニューが表示されます。1番上の「Add *.actyway.com to whitelist」は actyway.com をホワイトリストに追加します。(URL先頭の*.は正規表現でサブドメインも含むの意味)2番目の「Clear Unwanted Cookie」はホワイトリスト以外のクッキーを即削除します。3番目の「Show Options」でオプションを開きます。

Vanilla Cookie Manager のオプション画面

オプションの一部ですがおすすめの設定を書いておきたいと思います。(他の内容は見れば分かると思います)まず一番上の選択欄ですが、「Auto delete unwanted cookies after 5 minutes」を選んでいます。ホワイトリスト以外のクッキーを5分後には削除するって設定です。5分以内は有効なのでホワイトリストに登録していない場合でもクッキーが必要なサイトは使えます。よく利用するサイトはホワイトリストに登録してください。

次にチェックを入れている「Beta: protected whitelisted cookies」はベータの機能みたいなのですがわたしの環境(Mac)では正常に動いています。Iron クッキーの設定の「ブラウザの終了時に Cookie と他のサイトやプラグインのデータを削除する」にチェックを入れていてもホワイトリストのクッキーは削除されません。これらの機能によりブラウザ終了時にほとんどのデータは削除されます。一部拡張機能のデータは残ったりしますが、気になる場合は手動で削除してください。(これにより気になっていたWeb Storage は解消されたかなーと思っています)

ちなみに「Beta: protected whitelisted cookies」と「Clear unwanted cookies on startup」の複数選択は出来ないみたいです。

実際にブロックしまくろう!(笑)

SRWare Iron には広告ブロック機能があり、adblock.ini ファイルにブロックしたい URL を記入することでその URL を読み込まなくなります。(なのでトラッキング対策にも使えます)このあたりの情報は SRWare Iron まとめwiki – adblock.iniを使う方法(広告ブロック) に詳しく書かれていますので参照していただけたらと思います。

これ以降は実際に adblock.ini に URL を書いてみてブロックされているのかを確かめてみたいと思います。さきほどと同じように http://actyway.com/adsense で広告をブロックしてみたいと思います。

view-source:http://actyway.com/adsense

HTMLソースを確認したいので view-source:http://actyway.com/adsense を開きます。広告の呼び出しに使われている URL は、「http://pagead2.googlesyndication.com/pagead/show_ads.js」です。

adblock.ini

URL は、相対パスでも絶対パスでも、とりあえず URL の一部がマッチすれば何でも良いみたいです。(かなり自由ですね!)メモ帳などで「http://pagead2.googlesyndication.com/」を adblock.ini に追記します。Mac なので /opt/adblock.ini に保存します。無い場合は作成してください。Iron を再起動しないと反映されないみたいなので、いったん終了させて立ち上げます。

http://actyway.com/adsense

http://actyway.com/adsense にアクセスしても広告は表示されません!

chrome://net-internals/#events

あれー?「http://pagead2.googlesyndication.com/」への URL_REQUEST があります!!

chrome://net-internals/#events の詳細

URL_REQUEST_START_JOB が表示されているだけで、HTTP_TRANSACTION_SEND_REQUEST などが無いことから実際の通信は行われていないと思います。adblock.ini が実行されるタイミングが拡張機能より遅いのでしょうか?イベントログは残るみたいですね。通信されていないのなら問題無いですね!

Cookie とその他のデータ

「Cookie とその他のデータ」でもクッキーは表示されていませんでした。もちろん、Vanilla Cookie Manager は無効にした状態です!

拡張機能と違って反映させるのに Iron の再起動を行わないといけないのは、不便ですが拡張機能を使うと結構メモりを使ったりするので adblock.ini にブロックしたい URL を追記してブロックしまくってください! 9500行までは有効みたいですよ!

もっと踏み込んだブロック!

これまで Iron で行える方法をご紹介してきましたが、そもそもブラウザを複数使っているから「Iron だけブロック出来てもダメなんだ!」ってケースもありますよね!そうゆう場合は、OS に hosts って便利なファイルが用意されていますのでそちらを使うと良いと思います。OS 自体の機能?なので全てのアプリケーションに反映されると思います。

hosts ファイルの場所

Windows XP だとメモ帳ですんなり編集して保存できますが、VISTAと7は、メモ帳などを一度管理者権限で開いてその状態で編集保存しないとダメみたいです。一般ユーザー権限ではダメってことですね。

Mac はわたしの環境だと /private フォルダが隠しフォルダになっていて Finder からは普通の状態では見えません。隠しフォルダを見える状態にしてから編集するか、ターミナルからコマンドで実行する必要があるみたいです。(検索すれば方法は簡単に分かるのであえてリンク貼りません。)

ただ管理者権限が必要だったり隠してあったりするのは、それなりに慎重に扱うべきファイルな為で、変なこと書くとインターネット出来なくなったりしますので、バックアップをお忘れなく&自己責任で!

hosts

書式は IPアドレス+半角スペースまたはタブ+URL って感じです。特定の URL にアクセスしない為に 127.0.0.1 を指定するのが一般的みたいです。上のイメージでは、またもや http://pagead2.googlesyndication.com/ を指定していますが特に恨みがある訳ではありませんので〜!

まとめ

少し長くなってしまいましたが、一カ所にまとめておきたかったので書いてみました。色々と調べてみての感想は、個人を特定出来るような情報と行動記録が結びつかなければそこまで神経質になることも無い内容だと思いました。

今回 Iron をご紹介しましたが拡張機能などを使えば Chrome でも同じようなことが出来て良いと思います。もちろん他のブラウザでも同じような事は可能だと思います。

また、Webサービスを提供されている立場の人は、こういう外部のサービスを使っている程度の内容は表記しておくのが親切だなーと思いました。利用者はあまり興味を持っていないかもしれないですけど、そうゆう行動が全体の知識の底上げにも繋がると思います。

プライベートブラウジング環境を用意するには

  • SRWare Iron を使う
  • クッキーは Vanilla Cookie Manager + 設定の「ブラウザの終了時に Cookie と他のサイトやプラグインのデータを削除する」にチェックを入れる
  • 通信のブロックは adblock.ini を使う
  • 他のブラウザでもブロックしたい場合は hosts ファイルを使う