phoenix-powerTorの扱いは様々な仕組みを知らないとなかなかに難しいという話です。

最近、トラフィックの監視、個人情報の売買、プロモーションの送りつけなどが流行っているみたいです。

なので、OSS活動で重要な位置を占めるエンジニアやハッカーには特に、Torの扱いを知っておくほうが良いと考えています。

私自身、多くのソフトウェアは、無償で公開されているものを使ってます。こういった開発者の素晴らしい行為の反面、ターゲットにされやすい気もします。特に、Linux関連のツールやOSなんかがそうですよね。そこが監視されたり、売買されたり、侵入されたり、広告されたりすることを私は望みません。

たとえば、以下の記事が出ています。

匿名通信「Tor」はいかに使われている?–用途や仕組み、過信できない点も

記事の内容としては、Tor利用者の特徴や利点が書かれています。一番多いのは、やはり自衛目的である「ユーザーの情報が収集され、サードパーティーに転売されないようにする」ではないでしょうか。

  • プライバシーを保護する:インターネットサービス事業者やウェブサイトによってユーザーの情報が収集され、サードパーティーに転売されないようにする。

  • 通信を保護する:Torはデジタルでの通信を秘匿化するための手段として推奨されている。

  • デリケートな話題に関する調査を実施する:必要としている情報がユーザーの居住地では利用できない場合もある。Torの利用によって、ユーザーが使用するコンピュータのIPアドレスを隠ぺいすることで、該当ユーザーの居住地を特定できないようにする。

  • 監視の目をかいくぐる:Torを使用すれば、サイトと、そのサイトへの訪問者を関連付けられないようにできる。

  • 検閲を回避する:アクセスをブロックするにはリクエストの発信元を特定する必要がある。Torは発信元の特定をできないようにする。

ただ、その扱いは、システムを熟知していないと、通常は匿名性を保つことができません。

たとえば、シェルでTorで使われるProxyの環境変数を設定してみます。大体は以下ですね。プロトコルはHTTP限定ですが、通信の際、一番良く使われるプロトコルなので。

1
2
3
4
export http_proxy=socks5://127.0.0.1:9050
export https_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy

しかし、それが違うユーザーで実行された場合はどうでしょう。また、exportが使われない場合はどうでしょう。

実は、環境変数の中身が変わってきます。

また、ユーザー上で実行されたものについてもツールによっては、使用しているシェルが使われないことがあります。

たとえば、cronieなんかもそうですね。cronですが。Global IP Addressなんてそうそう変わるものではないので、Torを起動し、環境変数を設定した上で実験してみます。

1
2
3
4
5
6
$ echo $http_proxy
socks5://127.0.0.1:9050

$ crontab -e
*/1 * * * * notify-send -t 0 "ip" "`echo $http_proxy`"
no

ユーザー上で実行したcronでもそのシェルが設定した環境変数を持っていないことが分かります。

こういうのは、sudoの設定、ツールの設定によって、どの環境変数が使われ、どのプロキシが使われるのかは変わってきます。また、ブラウザでプロキシを指定しても、それが時に有効にならない場合も存在します。

そして、socksプロトコルが使えないツールもありますし、また、Tor Serverを通した通信は遅くて不安定です。それを拒否するよう設定されたノードもあります。

その場合は、やはり設定解除やunsetを行う必要があり、利便性を保ったまま思うように指定したプロキシ経由で通信することは、初期の段階からそれが設計されたOSを使う以外、相当に難しいことだと考えられます。

ちなみに、ある程度知識があれば、設定によって利便性を向上させることが可能です。tor-gencert, tor-resolveを使います。

例えば、tor-gencertはプライベートなネットワークを設定するコマンドです。

How to Setup Private Tor Network