前回、ダークウェブについて記載しました。
今回は、具体的にどうやって実現されているのか、もう少し技術的な観点で調べてみます。
「誰も全体像を知らない」という状況を作るために、Torネットワークは3種類のノードを使っています。
3つのノード
1. Entry Guard
クライアントが最初に接続するノード。
唯一、「Torを使っている」という事実を知っているノード。
クライアント側では数ヶ月間同じ Entry Guard を使い続けるようです。
これは「攻撃者が大量のリレーを立ち上げて、確率的に通信を捕捉しようとする攻撃」への対策とのこと。
2. Middle Relay
入り口と出口の間に挟まるノードです。
入ってきた暗号化パケットを右から左へ流すだけで、送信元、送信先、中身、など、何もわからないノード。
法的リスクも一番低いので、仮にボランティアで参加するなら、ここから始めると良さそうです。
3. Exit Node
ここが Tor ネットワークのアキレス腱でもあります。
最後の暗号を解いて、インターネットへデータを放流する場所。
アクセス先の Web サーバーから見ると、通信元はこの Exit Node の IP アドレスになります。
もし誰かが Tor を使って犯罪予告を書き込んだら?
警察が最初に訪ねるのは、書き込んだ本人ではなく、この Exit Node の運営者のところです。
技術的には単なるパケットの中継ですが、社会的リスクを背負う可能性があります。
Telescoping
この3つのノードとどうやって暗号通信を確立するのか。
Telescoping(望遠鏡)と呼ばれるプロセスがあるようです。
一気に3つと接続するのではなく、望遠鏡を伸ばすように一段階ずつトンネルを掘るイメージです。
- Entry Guardと接続し、鍵交換をしてセキュアなパイプを作る
- そのパイプを通って、次の「Middle Relay」に繋いでくれ、と頼む
- さらに Middle まで伸びたパイプを通って、最後の「Exit Node」に繋いでくれ、と頼む
この手順を踏むことで、「Entry Guard は Middle のことしか知らない」「Middle は Exit のことしか知らない」という、情報の分断が行われます。
「誰も信用しない(Trust No One)」という設計思想が、徹底されているようですね。
パケットサイズの均一化
もう一つ、Torのパケット(セル)は、すべて「512バイト」の固定長らしいです。
チャットの「こんにちは」も、巨大ファイルの断片も、外から見れば全部同じサイズ。
「箱の大きさで中身を推測させない」という点も徹底しているようです。
まとめ
Torのアーキテクチャは、既存の暗号技術とネットワークをロジカルに組み合わせて、秘匿性を高めているようです。
次回は、「自分がサイトを運営する」側について。
IPアドレスを隠してサーバーを公開できるHidden Services (.onion)の仕組みについて、記載します。