連載
» 2016年02月01日 05時00分 UPDATE

Tech Basics/Keyword:Tor(The Onion Router)

Webサイトへのアクセスなどを秘匿化する「Tor」。P2Pと多段プロキシ技術を使って、どのIPアドレスからアクセスされたのかを隠蔽する仕組みを解説。

[打越浩幸,デジタルアドバンテージ]
Tech Basics/Keyword
Windows Server Insider


「Tech Basics/Keyword」のインデックス

連載目次

 「Tor(The Onion Router)」(「トーア」と読む)は、インターネットのTCP/IP通信において、その通信経路の情報を秘匿するために使われるネットワーク技術、およびそれに基づいて実装されたソフトウェアのことを指す。インターネット上の複数のシステムが連携して通信する「P2P(ピア・トゥ・ピア)」技術と、TCP/IPの通信を中継する「SOCKSプロキシ*1」技術などを組み合わせて実装されている。Webアクセスやチャットなどの通信を多段に中継して行うことにより、主にその送信元IPアドレスの情報を秘匿して、送信者を追跡・特定しにくくすることを目的としている。

*1SOCKS」(通信プログラムで使われるSocketsの略)とは、ファイアウォールなどで隔離されたインターネットとイントラネット間において、TCP/IPの通信を中継して、相互に通信できるようにするためのプロキシ(代理)技術の1つ。OSI階層モデルでいうと、TCPやUDPのL4レベルで中継する、サーキットレベルゲートウェイである。ほとんど全てのWebブラウザはこのSOCKSプロキシ技術に対応している。


Torの由来

 Torは、米海軍調査研究所(United States Naval Research Laboratory)が1990年代中頃に開発した「Onion Routing」という暗号化通信技術に基づいている。Onion Routingでは、多重に暗号化されたデータをルーターを通過するたびに復号して、まるでタマネギの皮をむく時のように中のデータを順に取り出すことからこう呼ばれている。

 これはもともとは、軍事などで利用する通信内容や通信元を秘匿するために開発されたものだ。しかし、その技術は公開され、現在では「The Tor Project」という団体がTor関連技術の開発やTorネットワークの維持・管理を行っている。

ルーター間で暗号化されたパケットをリレーするTor

 Torによる通信を行いたいシステム(ノード)は、Tor通信用のプログラムをインストールし、Torネットワーク経由で通信するようにSOCKSプロキシの設定を行っておく。

 そして例えばWebブラウザを使ってTorによる通信を開始すると、次の図のように通信が行われる。

通信の送信元を秘匿するTor 通信の送信元を秘匿するTor
Torクライアントは、Torネットワークに参加しているノードを複数台中継して最終的な目的のサーバーと通信する。Toaのノード同士は暗号化された通信路を使って接続されており、受信した暗号データを復号して宛先と送信データを取り出す処理を繰り返して出口ノードまで届ける。出口ノードは、Torネットワークとそれ以外のネットワークの境界となるノードのことである。外部からは「出口ノード」のIPアドレスのみが見える。

 通信を開始すると、まずTorネットワークのディレクトリサーバーに問い合わせて何台かの中継用ノード(Onion Router)を選び出し、それらを経由して通信するように経路が設定される。送信元ノードと中継用ノードの間は、それぞれ全てAESTLS(SSL)によって暗号化が行われ、盗聴や改ざんなどから保護されている。

 Webブラウザで通信を開始すると、そのデータが(中継用ノードの数だけ)多重に暗号化され、最初の中継用ノードに向けて暗号化済みデータ(Onion)が送信される。

 データを受け取ったノードでは、自ノードの秘密鍵でデータを復号する。するとそこに宛先情報と暗号化されたデータが入っているので、それを次のノードへ中継する。次のノードでも同じようにデータの復号と中継を行う。こうやって最終的なTorノードまで処理を繰り返す。

 経路の最後にあるTorノードは「出口ノード(exit node)」と呼ばれる。この出口ノードが最終的な宛先のWebサイトなどにTCP/IPで接続して、復号した元の通信データ(最初にWebブラウザから送信されたデータ)を送信する。Webサーバから返ってきた応答は、逆のルートを通ってまた暗号化・中継が行われ、最初に要求を出したWebブラウザまで返ってくる。このようにして、Torネットワークを経由した通信が行われる。

 以上のようにして通信が行われるため、最終的な宛先のWebサーバから見ると、アクセス元はTorの出口ノード(のIPアドレス)ということになる。最初に要求を出したノードや出口以外の中継ノードのIPアドレスを知ることはできない。このようにして、Torでは送信元のIPアドレス情報を秘匿している。ただし処理内容が複雑で経路も長くなるため、通信速度はかなり下がる。

Tor向けのWebブラウザが提供されている

 TorはアプリケーションレベルではなくTCPレベルで中継を行うシステムであり、そのままだとエンドユーザーには使いづらい。そのため、実際にはTor向けに設定されたWebブラウザ(Torブラウザ)が同梱されたインストールパッケージが用意されている。

 以下に、実際のTorブラウザによる通信経路の表示例を示す。

Torブラウザによるアクセス例 Torブラウザによるアクセス例
Tor配布パッケージには、FirefoxをカスタマイズしたTorブラウザが含まれている。これを使うと、簡単にTorネットワークに接続したり、設定を行ったりできる。現在利用している中継ノードのリストを「Torサーキット」といい、この例では3台の中継ノードを経由してWebサイトにつながっている。

 匿名性を高めるため、利用される中継ノードは一定時間が経過すると自動的に変更される。

Torによる秘匿は完全ではない

 Torによる通信は、Torノード間では暗号化されているものの、出口ノードと最終的な宛先ノードの間は暗号化されていない。そのため、例えばパケットのキャプチャー機能を備えた出口ノードをTorネットワークに参加させれば、重要な情報を簡単に収集できてしまうだろう。Torは通信内容を完全に秘匿するものではなく、送信元IPアドレス(通信経路)を秘匿することしかできない。

 通信全体を暗号化したければ、エンド・トゥ・エンドで暗号化する方法、例えばHTTPSによる通信や、暗号化メールなど、最初から通信内容全体を暗号化する手法を利用する必要がある。

 もっとも、たとえHTTPS通信を使っても、HTTPの通信パケットの中に送信元のIPアドレスやコンピュータ名、利用しているユーザー名などの情報が含まれていると、それは通信先のWebサーバまで届くことになる。これらも秘匿するには、あらかじめブラウザの設定を変更しておくなどの措置が必要である(Torブラウザでは最初からそうした設定が行われている一方で、スクリプトまで禁止するなど、サイトによっては使いづらいことがある)。

 Torには、Torネットワーク内だけでWebサーバーなどを運用する機能もあり、これは「秘匿サービス(hidden service)」と呼ばれている。出口ノードを使わないし、実際のIPアドレスとは異なる、特殊なアドレス(onionアドレス)でしかアクセスできないので、サーバーもクライアントも秘匿しやすいとされている。ただしそのようなサイトはクラッキングなどで狙われやすく、危険性は高い。

Torの利用は是か非か?

 Torはインターネット上での追跡を困難にするため、サイバー犯罪で利用されたり、違法な情報を交換するサイトの運営などに利用されたりしている。そのため、犯罪防止の観点から、Torの利用を全て禁止したいと考える人もいるかもしれない。だが逆に、匿名の不正告発サイトなどを運営するために積極的に活用するようなことも考えられる。

 執筆時点では、法的にTorの利用を規制するような事態にはなっていないが、Torの利用を望ましくないと考える意見があることも事実である(関連リンクの記事参照)。技術的に見ると、Torは数あるVPNやプロキシ技術の1つであり、Torだけが問題とされる特段の理由はないといえる。

■関連リンク


「Tech Basics/Keyword」のインデックス

Tech Basics/Keyword

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。