2013年2月4日月曜日

Torを試してみた

一時期遠隔操作トロイ事件でちょっとだけ話題になったtor。 なぜかふと思い出したので使ってみることにしました。

TorっていうのはTCP/IPの通信経路をラッピングして誰がアクセスしたか分かりにくくするためのツールです。 ラッピングするのは通信経路だけなのでTorを出てから接続先までの通信内容は丸見え。 もちろんPCやプロバイダにはTor経由でアクセスしたという形跡は残ります。

それを踏まえて試用。 まずは公式サイトからTor Browser Bundle for Windowsをダウンロード。

バージョンは2.3.25-2でした。

ポータブルブラウザ(firefox改)バンドル版ということで、解凍して Start Tor Browser.exe を実行すればすぐに使えます。 Torを使用するための設定とかは不要でした。

Tor Browser には3つのアドオンがプリインストールされていました。

  • HTTPS-Everywhere
  • TorButton
  • NoScript

HTTPS-Everywhereは前もってリストアップされたホストに対して必ずHTTPSで接続するためのモノ ... かな? ツールバーの検索ボックスの右にボタンがありました。 そこから「Enable / Disable Rules」をクリックすると設定ダイアログが開き、対象ホストの一覧が見れました。 自分用のルールを追加するには「解凍フォルダ\FirefoxPortable\Data\profile\HTTPSEverywhereUserRules」に何かを追加しなければならないようですね。 ルールの書き方は設定ダイアログから「You can lean ~ here.」のところをクリックしたら説明ページが開きました。 でもって詳細を調べる気はないんで、次。

TorButtonはTorのプロクシ設定などをしてくれるアドオンのようです。 そういう設定はプリインストールで既にされているのでノータッチでok。 アドオンのボタンはアドレスバーの左にありました。 「New Identity」メニューで接続経路の再選択もできます。 コレはそれなりに重要かも? その他に、一応、設定を変えればTorのon/offを切り替えることもできるようになります。

NoScriptは普通のfirefoxにも使える有名なアドオンです。 不要なスクリプトやプラグインの実行を防ぐためのセキュリティツールですね。 初期設定では全てのスクリプトがノーチェックで実行されるようになっていました。 ちょっと無用心。 TorButtonのセキュリティ設定に「Hook dangerous javascript」などという設定項目があるので、そちらでもいくつかのスクリプトはブロックしてくれるのかもしれません。 しかし、詳細も追ってないのでどの範囲のスクリプトを防いでくれるのかは不明です。 NoScriptの設定もキチンとしておいた方がいいでしょうね。

あとは特記することとかは無さそうです。 「ダウンロード → 解凍 → 起動 → NoScriptの設定だけちょっと変更 → ブラウジング」でok。 たったそれだけで通信経路を有耶無耶にできます。 お手軽ですね。 その他のことは普通のポータブル版firefoxと同じかと。

一応、Torが動いていることを確認するため、IP確認サイトなどを見ておいた方がいいでしょう。

Microsoft Network Monitorなどのネットワーク解析ツールでパケットが暗号化されている様を見ておくこともお勧めします。 「それでどうなる?」ってことも無いんですが、全く知識がない状態でツールだけ使ってその気になってるっていうのもアレなんで。

Tor Browserについては以上です。

Tor Browserを使わずにTorだけを使うこともできます。 「解凍フォルダ\App\vidalia.exe」を使います。 vidaliaはTor関係のツールをguiで使うためのツールです。 firefox以外のブラウザを使いたいときやブラウザ以外のアプリケーションでTorを使いたいときはこちらで。 一応、公式サイトのページからVidaliaだけダウンロードすることはできるみたいですね。

  • Tor公式サイト - ダウンロード - 全項目

どれを使っていいのか分からないし調べる気もないのでTor Browser Bundle for Windowsに入ってたヤツで説明します。

とりあえず「解凍フォルダ\App\vidalia.exe」を実行。 デフォルトの設定だとtor.exeのパスが適当になっているのでTorの起動に失敗します。 エラーダイアログが出るので設定ダイアログを開いてTorのパスを通しましょう。 GeneralタブのTorのテキストボックスです。

Advancedの設定項目も見ておきましょう。 Tor Configuration FileとData Directoryを書き換えます。 今回はTor Browser用の設定を流用しましょう。

  • Tor Configuration File ... 解凍フォルダ\Data\Tor\torrc
  • Data Directory ... 解凍フォルダ\Data\Tor

C:\Users\ユーザ名\AppData\Local\Vidalia にも設定データが残るので注意。

設定が終わったらVidalia Control PanelのStart Torボタンを押してTorを動かします。 ちなみに、Vidalia Control Panelはウィンドウを閉じてもタスクトレイに入るだけで終了しないので注意。 終了するときはExitを選びましょう。

これでTorの方はok。 それとは別にアプリケーションの設定もしなくてはなりません。 一般的なアプリケーションではsocksプロクシで

  • ホスト : localhost
  • ポート : 9050
  • socksバージョン : socks v5

にすればTCP/IPの内容はTor経由になります。

それだけでは不完全で、dnsの名前解決もsocks経由にしなければなりません。 (まぁ、Tor経由なら完全ってこともないんですけどね。) dnsは普通の設定だとUDPでの問い合わせになります。 それはTCP/IPしか扱わないtorでは暗号化できません。 なので設定を変えてsocks経由の問い合わせにする必要があります。 Vidalia Control PanelからMessage Logを表示して「Potentially Dangerous Connection!」って書いてあったらdnsの名前解決が暗号化されていないということなので注意。

なお、dnsの名前解決が暗号化されてなかったら、

  • dnsサーバにはアクセス先への問い合わせログが残る。
  • プロバイダにはTorにアクセスした形跡が残る。
  • アクセス先にはTorからアクセスされた形跡が残る。

ためdnsサーバへの問い合わせ時間からアクセスが推測できてしまいます。 ってそこまでして匿名化する理由ってなんでしょうね? 善良?な小市民にはそこまでする理由は思い当たらないんですが...

まぁ、たとえ小市民であってもtorを使う以上dnsの名前解決はsocks経由にするものらしいです。 お約束お約束。 ってことでdnsの名前解決をsocks経由にするやり方について、ブラウザの設定だけちょっと調べたので書いておきます。 (プロクシの設定については省略。)

まずはfirefox。 about:config で network.proxy.socks_remote_dns = true にします。 そしてブラウザをシャットダウン。 windowsの場合はコマンドプロンプトで「ipconfig /flushdns」を実行してosの持つdnsキャッシュをクリアします。 firefoxを起動し直せばdnsの名前解決がsocks経由になります。

次、opera。 opera:config で Use Remote SOCKS DNS Lookups をチェックします。 そしてブラウザをシャットダウン。 windowsの場合はコマンドプロンプトで「ipconfig /flushdns」を実行してosの持つdnsキャッシュをクリアします。 operaを起動し直せばdnsの名前解決がsocks経由になります。

google chromeはシステムの設定を使っているので設定方法はieと同じなハズです。 chromeとieの名前解決をsocks経由にする方法は検索でサクッと出てきませんでした。 ただ、次のツイートだけ確認。

なんかのネタで試したけど、「DNS Clientサービスの停止」ってただ止めただけじゃダメなんですよね。 すぐにサービスがリブートしてしまいます。 そのネタの方はDNS Clientサービスを触らない方法で解決したので、サービスの止め方については調べませんでした。 chromeとieをTor経由で使いたい場合はその辺調べてみてください。

最後に、当たり前の事ですがTorを作ったのは人間ですし、インターネットのサーバなどのノードを運営しているのも人間です。 絶対の匿名なんてものはあり得ないことを理解したうえで使いましょう。