匿名通信「Tor」はどういう仕組みなのか分かりやすく解説

By la inventoría

通常、ウェブサイトにアクセスしたりメールを送信したりするとサーバーにアクセス元のIPアドレスが残ります。これを元に「誰がウェブサイトにアクセスしたのか?」や「誰がメールを送信したのか?」を特定することが可能なわけですが、そういった情報を一切残さずに完全に匿名で通信を行えるというシステムが「Tor(トーア)」です。そんなTorがどうやって動作しているのかをセキュリティ研究者のJordanさんが分かりやすく解説しています。

How Tor Works: Part One - jordan-wright
http://jordan-wright.com/blog/2015/02/28/how-tor-works-part-one/

◆Torの歴史
Torの生みの親とでも言うべき存在である暗号化通信方式「オニオンルーティング」のコンセプトが提案されたのは、1995年でした。これはOffice of Naval Research(ONR)の出資で開発がスタートしたプロジェクトで、1997年には国防高等研究計画局(DARPA)の支援も受けています。そんなアメリカ政府主導のプロジェクトの中で生まれたのがTorプロジェクトです。Torはこれまでに多くのスポンサーに支えられながら開発を続けており、2015年にはredditからの寄付も受けています。

Tor関連のソフトウェアは現在では広く知られるようになりましたが、初めてオープンソースのソフトウェアとしてリリースされたのは2003年10月で、これはオニオンルーティングを用いたソフトウェアとして3番目に作られたものであったそうです。

なお、オニオンルーティングというアイデアを簡単に説明すると、「インターネット上でやり取りするデータの保護と送信側と受信側の匿名性を守るため、トラフィックを暗号化された層で隠す」というものになります。

◆Torの基本情報
Torの仕組みは、コンピューターから目的地(例えばgoogle.comなどのウェブページ)までの通信経路に、他のコンピューターなどの中継地点(リレーエージェント)を追加するというもの。通信時に多くのリレーを経由させ、リレーにはログを残さず、さらにはアクセス経路の出口以外は全て暗号化されているため、発信源が不明になり匿名性が保たれるというものです。なお、現在Torネットワークには6000以上のリレーが存在しています。


Torによる匿名通信のカギとなる「リレー」は世界中に存在しており、その正体はTorソフトウェアのリレー機能が動作しているコンピューターを指します。これらは「いくらかの帯域幅を犠牲にしても良い」というボランティアの人々が運用しており、これによってTorネットワークは保たれているといえます。また、ほとんどのリレーは特別なハードウェアやソフトウェアを走らせているわけではなく、ただ単にTorのソフトウェアを動作させているだけというのも重要な点。

Torネットワークの通信速度と匿名性の話でいえば、リレーの数が多ければ多いほど速度は速く、匿名性は高くなる模様。つまり、すべてのリレーを合わせると大きな帯域幅を利用可能になるため、通信速度が速くなり、複数の経由地点を回ることになるので匿名性も高くなるというわけ。なので、もしもより多くのリレーが存在してどれを使用するか選ぶことができるようになれば、ひとりのユーザーを追跡することはより困難になります。


◆リレーのタイプ
デフォルトではTorは3つのリレーを経由することになっています。この3つのリレーはそれぞれ特定の役割を担っています。

・ガードリレー(Guard Relay)
Torネットワークの入り口部分にあるリレーが「エントリー/ガード リレー」です。安定して高帯域を持つと示されたリレーがガードリレーに選ばれます。

・中間リレー(Middle Relay)
「中間リレー」はガードリレーから出口リレーへトラフィックを中継するリレーです。このリレーを配置することで、ガードリレーと出口リレーがお互いの情報を得られないようにしています。

・出口リレー(Exit Relay)
「出口リレー」はTorネットワークの終端にあるもので、その名の通り通信の出口となる部分です。出口リレーが最終的な目的地にトラフィックを送ることになります。

以下の図はTorネットワークでの経路を簡単に示したもの。ユーザー(Client)はTorネットワークの入り口となるガードリレーから中間リレーを経由し出口リレーに到着し、最終的な目的地となるウェブサイトなどに到着するというわけ。もちろんこの経路は複数あるリレーの組合わせなので、一定時間ごとに変更されるようになっています。


一般的に、ガードリレーや中間リレーはDigitalOceanEC2のようなVPSまたは共有サーバー上に構築されており、これらは全てサーバー・オペレーターが悪意のある暗号化通信がないか監視しているため安全です。しかし、出口リレーを運用する場合はそれらとは別に特別な責任がかかってきます。出口リレーはトラフィックを直接目的地へ送るので、暗号化されていない状態で通信を行うので通信内容をのぞき見ることができます。これにより、まれに出口リレーは攻撃の対象になるそうです。なので、出口リレーを運用するオペレーターは特に大変な模様。

◆なぜオニオンなのか?
Torネットワークではどのように通信が行われるか理解できましたが、これらのリレーの信頼性はどうやって知れば良いのでしょうか。「Torは各リレーにほとんど信頼を置かないようにネットワーク設計されている」そうで、それを可能にしているのは暗号化です。ユーザーがTorネットワークに接続する際にどのような暗号化が行われているのかを、よりハイレベルな観点から見ると以下のようになります。

1:
ユーザーがTorを使用する場合、オリジナルデータは暗号化されます。この暗号化は出口リレーで解読されます。

2:
ステップ1で暗号化されたデータは、再び暗号化されます。ステップ2の暗号化を解読できるのは中間リレーのみです。

3:
最後に、2重に暗号化されたデータがもう一度暗号化されます。この暗号化を解読できるのはガードリレーのみです。

つまり、Torではネットワーク上に送信されるオリジナルのデータが3重に暗号化されており、それぞれの暗号化を解除できるのは通信経路にあるガード・中間・出口リレーの3つになっているわけ。この暗号化構造をイラストで示すと以下のようになり、オリジナルデータを暗号化の層が覆う姿が「タマネギ」のようだということで、「オニオンルーティング」と呼ばれているわけです。


よって、各リレーは暗号化されたデータがどこから来てどこへ送られるかという情報を持っているだけです。これが、「Torは各リレーにほとんど信頼を置かないようにネットワーク設計されている」というわけ。この暗号化によるネットワーク設計は「ユーザーとリレー運用側の両方にとって有益なものである」とJordanさんは語っています。これはつまり、ユーザー側からすれば送信データを見られる心配がなく、リレー運用側からすればデータを見る術がないのでリレーを経由していったデータに対して責任の負いようがない、というわけです。

なお、出口リレーでは全ての暗号化が解除されてオリジナルデータが見られるようになるので、HTTPやFTP、その他のクリアテキストプロトコルの信任をパスすればデータの内容を確認することは可能です。

他にもJordanさんはリレーとブリッジの違いコンセンサスについても解説しています。

・関連記事
匿名通信システム「Tor」を使うのに知っておくべき7つのこと - GIGAZINE

どこからアクセスしているかを隠して匿名化できるブラウザ「Tor Browser」 - GIGAZINE

匿名通信システム「Tor」を自宅のモデムにつなぐだけで実現できるルーター「anonabox」 - GIGAZINE

Torユーザーを攻撃するNSAのコードネーム「EgotisticalGiraffe」とは? - GIGAZINE

Torにボットネット被害やNSAによる暗号キー突破の危険性が判明、ユーザーに更新を呼びかけ中 - GIGAZINE

in ソフトウェア, Posted by logu_ii