「Tor(トーア、The Onion Router)」とは、TCP/IP 通信の接続経路を匿名化する規格である。アメリカの海軍研究所(NRL)が軍が居場所を隠して調査を行う手段として開発した。
この規格を使ったブラウザがTORブラウザである。TORブラウザはオープンソースのWEBブラウザで、検索行動のトラッキングや検閲を回避することができる。あのエドワード・スノーデンも使っていた。
※使う場合は必ず TORの公式サイトからダウンロードすること
Torの公式WEBサイト
https://www.torproject.org/
TORの仕組み
TORを使ってWEBサーバーにアクセスする例を元に説明をする。
1. TORは複数の中継ノードを経由した通信をおこなう
通常の通信がクライアントとサーバーが直接通信するので、通信を受けたサーバーは接続元のクライアントのプロバイダーやパブリックIPアドレス、現在地などの情報がわかってしまう。
一方で、TORを使った通信では世界に6,000台以上あるノードと呼ばれる中継サーバーから、ランダムに3つを選択し、この中継点を経由した通信を行う。各通信は暗号化されており、各サーバーは直前のノードの情報しかわからない。
1. 入り口ノード(Entry Guard)
直接クライアントと通信しているためクライアントの情報はわかる。また次の宛先である中間ノードの情報を知るこができる。ただし、出口ノードの情報や宛先のWEBサーバーの情報はわからない。
また、どんな内容の通信を送っているかという情報も知ることはできない。
2. 中間ノード (Middle Relay)
入り口ノードの情報と次の宛先の出口ノードの情報はわかるが、クライアントの情報や最終的な宛先であるWEBサーバーの情報はわかならい。入り口ノードと同様にどんな内容の通信を送っているかという情報も知ることはできない。
3. 出口ノード(Exit Relay)
中間ノードの情報と最終的な宛先であるWEBサーバーの情報を知ることができる。またHTTPなどの暗号化されていないプロトコルを利用している場合は、通信の内容は知られてしまう。ただし、通信元であるクライアントの情報や入り口ノードの情報は知ることができない。
※出口ノードに内容を知られたくない場合はHTTPSを利用すること。
2. TORはパケットを多重に暗号化する
まずクライアントは送りたい通信内容(緑色)を出口ノードの共通鍵(公開鍵ではない)で、パケットを暗号化する。次にそのパケットを中間ノードの共通鍵で暗号化する。最後に入り口ノードの共通鍵で暗号化し、入り口ノードに送信する。この多重の暗号化が玉ねぎのように見えることが、The Onion Router (TOR) の由来である。
1. 入り口ノード(Entry Guard)
受け取ったパケットを共通鍵で複合することができるが、知ることができるのは中間ノードのアドレスのみである。
2. 中間ノード (Middle Relay)
受け取ったパケットを共通鍵で複合することができるが、知ることができるのは出口ノードのアドレスのみである。
3. 出口ノード(Exit Relay)
受け取ったパケットを共通鍵で複合することができる。WEBサーバーのアドレスを知ることができ、パケットがSSLなどで暗号化されていなければ、中身も知ることができる。
最後に
TORは完璧でなく、仕組み上通信速度が遅くなるという欠点がある。また各ノードは世界中のボランティが提供しているが、出口ノードは政府や捜査機関が運用している場合もある(特に自分のプラバシーを守ることを目的として利用する分には問題ないはずだ)。
さらに安全にTORを使う方法やインターネットセキュリティに興味がある人には、以下の書籍をおすすめする。
※このエントリも以下の書籍を参考にしています
コメント