2012年10月18日

ネットワーク経路を複雑化・追跡困難にするTorってどんなもの?

近頃ニュースで、PC遠隔操作・誤認逮捕という話を聞きますが、その犯人の追跡を困難にしているのがTorというネットワークだってご存知ですか?

tor-logo

僕はニュースとは別に知り、ちょうど調べていたので今日はTorについて整理してみたいと思います。

通常インターネットで利用されるネットワーク経路


もし、貴方があるWebサイトにアクセスする場合、まず最寄りの据置又は携帯のルーターから外部ネットワークにアクセスすることになりますよね。

このとき利用するIPアドレス(グローバルIPアドレス)は契約しているインターネット接続プロバイダが管理・配布したもので、固定・動的配布に関わらずプロバイダ側では契約(加入者)情報とIPアドレスのリース情報が紐付くよう履歴が管理されています。

normal-network
 
また、アクセスしたWebサイト側にもアクセス元のIPアドレスが一定期間ログとして残ります。

よって、もし、何らかの理由で追跡する場合、IPアドレスから個人(加入者情報)まで特定出来るという訳ですね。


Tor(Onion Network)で利用されるネットワーク経路


Torを使うとどうなるんでしょうか? 一言で言えば、複数台で構成されたリレーサーバと暗号化通信組みわせることでオリジナルな発信元IPの特定が困難になります(一言じゃないですね・・・)。

tor-network

貴方のPCでTorアプリケーションを起動し、トラフィック(TCPストリームのみをサポート)をTor経由にします。

すると、まずTorネットワークに参加するPC(以下ノード)のリストをノード管理サーバから取得、Torネットワークに参加しているノードの中からランダムに複数のノードを経由するルートを決定、データを暗号化し、トラフィックを流します。
(複数のノードで構成される経路自体も10分程度で新しいものに変わっていきます)

Torネットワークを構成するノードには、データの転送だけを行う内部リレーノード(No Exit Relay)、最終的に目的のサイトへトラフィックを転送する出口ノード(Exit Relay)の2つがあります。

リレーノードは隣り合うノードの情報しか知らず暗号化されたデータの受け渡しだけを行います。

in-relay


出口ノードはこの例でいう目的のWebサイトからすると、アクセス元のIPアドレスとして見えますが、もちろん、本来のトラフィック送信元アドレスではありません。

out-relay

TorをPCにインストールすると標準ではネットワークを利用するだけのクライアント・モードで動作しますが、設定次第で内部リレーノード、出口ノードとしてネットワークを司るノードとして参加・協力することもできます。
(ただし、出口ノードを担当する人は、色々と問い合わせ・抗議を受けることも多いんじゃないでしょうか・・・。偉いですねぇ)

もし、追跡者が地道に追跡していくとすると、出口ノードから始まり、途中経路となった全ての内部リレーノードまで追う必要がありますが、内部リレーノードに関しては個人が気軽に参加・脱退出来るものであり、その数・地域・期待できない個人レベルの通信履歴管理を考えると目的地に辿り着くのは非常に困難、という訳です。

よーし、それならTorネットワークに盗聴用ノードを仕込んでやれ!、と思うかもしれませんね。

tor-network3

しかし、リレーノードに関して言えば、暗号化されたトラフィックを受け渡しするだけですし、最後に復号して目的のサイトに運ぶ出口ノードになったとしても、トラフィックの中身が暗号化(HTTPSなど)されていれば解読出来ない、解読できたとしてもTCPトラフィックのペイロード(運んでいる荷物)に送信元IPアドレス情報が含まれている可能性は低いですから難しいですね。


TorをUbuntuで使ってみる


え、私は追跡されるような悪意のある行為はしないので必要ありません? 確かにそうですね。でも、悪意のある追跡者(個人、組織)はいるかもしれませんよ。本来Torもそういった危険にさらされている個人を保護する為に作られたネットワークなんです(悪用する犯罪者は早く捕まるとよいですね)。

まずは、torパッケージをインストール。

tor13

これでTorが利用できるようになります。 Windows、Mac版も含めて本家サイトから最新版をダウンロードすることもできます。

torの起動は端末(ターミナル)から次のコマンドを実行。

sudo /etc/init.d/tor start
[sudo] password for netbuffalo: 
Raising maximum number of filedescriptors (ulimit -n) to 32768.
Starting tor daemon: tor...
done.

すると、ローカルの9050ポートでSOCKS通信が出来るようになります。

これをシステム設定に反映しても良いんですが、常に使うわけでは無いので、tsocksというパッケージをインストールしてもう少し気軽に使います。

tor12

tocksには設定ファイル(/etc/tsocks.conf)が必要。
 
$ sudo vi /etc/tsocks.conf
※viが苦手な人はgeditで。

ファイルを開いたら、次のようにパラメーターを設定。

local = 192.168.0.0/255.255.255.0
local = 10.0.0.0/255.0.0.0

# Default server
# For connections that aren't to the local subnets or to 150.0.0.0/255.255.0.0
# the server at 192.168.0.1 should be used (again, hostnames could be used
# too, see note above)
#server = 192.168.0.1
server = 127.0.0.1

# Server type defaults to 4 so we need to specify it as 5 for this one
server_type = 5

# The port defaults to 1080 but I've stated it here for clarity 
#server_port = 1080 
server_port = 9050

localはtorを使わない宛先ネットワークのアドレス(通常はLAN)、serverはローカルなので127.0.0.1(ちなみにlocalhostだとエラーになる場合があります)、server_portは9050ですね。

保存したら準備はおしまい。

FirefoxでTorを使ってブラウジングするなら、次のコマンドでFirefoxを起動します。

$ tsocks firefox

すると、全てのTCPトラフィックがTor経由になります。 http://www.whereisip.net/にアクセスしてみると・・・。

whereismyip

ほーう。最終的にアフリカにある出口ノードを利用したようです(もちろん、僕の使っているグローバルIPアドレスでありません)。


道具は使い方次第、正しい個人情報の防衛方法として是非ご参考下さい!

 

暗号解読―ロゼッタストーンから量子暗号まで
サイモン シン 
新潮社 
売り上げランキング: 20610

Posted by netbuffalo at 19:31│Comments(0)TrackBack(0) ネットワーク 


この記事へのトラックバックURL

コメントする

名前
 
  絵文字