robertheaton.com によると:
Torクライアントは、回線を構築するときに、ノードのTLS証明書と公開鍵を使用して、その回線用に選択した各ノードとTLSセッションをネゴシエートします。各TLSセッションネゴシエーションの結果は、クライアントとノードだけが知っている対称暗号化キーです。
SSL/TLSのみ(PKIなし)はアクティブなMITM攻撃から保護できないため、クライアントの発信トラフィックを傍受できる誰かが(Torリレーノードごとに)対称キーを取得する可能性があります。
Torはこれをどのように防ぐのですか?リレーノードの証明書の検証と署名を担当する認証局はありますか?
Torプロジェクトは、ディレクトリサーバーと呼ばれるいくつかのブートストラップサーバーをホストしています。それらには、現在オンラインになっているすべてのTorリレーに関する情報を含むリスト(ディレクトリ)が含まれています。各リレーに関するこの情報には、公開鍵が含まれています。 directoryは、ディレクトリキーの1つで署名されています[1]。これらのキーは、Torクライアントのコピーとともに配布されます[2]。
したがって、あなたの質問に対する答えは次のとおりです:信頼された第三者(認証局と同様)を持つこと。 Torリレー(紙ではオニオンルーターと呼ばれます)は、定期的にその情報をディレクトリにアップロードします[3]。クライアントがガードノードに接続すると、ディレクトリにリストされているように、接続が正しいキーで暗号化されていることを確認します。次に、トラフィックを中間ノード(ガードノードと出口ノードの間)にプロキシするときに、そのノードへの暗号化接続をセットアップし、ガードを介してプロキシし、(MITMキーの代わりに)正しいキーが使用されていることを再度確認します。ディレクトリ。最後の(exit)ノードについても同様です。
出典: https://www.onion-router.net/Publications/tor-design.pdf
[1]「各オニオンルーターは、長期のIDキーと短期のオニオンキーを維持します。IDキーは、TLS証明書に署名し、ORのルーター記述子に署名するために使用されます(そのキーの概要、アドレス、帯域幅、終了ポリシーなど)、および(ディレクトリサーバーによって)ディレクトリに署名します。」
[2]「クライアントソフトウェアには、ディレクトリサーバーとそのキーのリストがあらかじめロードされており、bootstrap各クライアントのネットワークビューに対応しています。 "
[3]「Torは、冗長な有名なオニオンルーターの小さなグループを使用して、ネットワークトポロジとノード状態の変化を追跡します。これには、キーと終了ポリシーが含まれます。このような各ディレクトリサーバーはHTTPサーバーとして機能するため、クライアントは現在のネットワーク状態を取得できます。ルーターリスト、および他のORが状態情報をアップロードできるようにします。」
一般に、SSL/TLSはMITM保護を提供します。コンピュータを離れる前にデータを暗号化し、エンドポイントのみが復号化でき、その逆も可能です。 MITM攻撃は、暗号化されたTLS接続に対しては効果がありません。エンドポイントが交換する公開鍵を傍受したとしても、その秘密鍵は知られていないためです。
Torについては、Nodeレベルでデータを暗号化していません。データはエンドポイント間のハンドシェイクによって暗号化されているため、転送中に変更することはできません。Torで暗号化されているものこれらのTLS接続はルーティングの指示です。データを送信するコンピューターは、暗号化のレイヤーによって保護される配信指示のパケットを確立します。基本的にNode復号化された第1レイヤーは、だれに通知するかNode Bは暗号化されますが、それ以外はすべて暗号化されます。Node Bは、復号化の別の層を実行して、だれかを見つけるためにNode Cが繰り返されますエンドポイントに到達するまで処理します。
したがって、Nodeがアクセスできる唯一のデータは、チェーン内の次のNodeです。それ以外はすべて読み取り不能のままです。操作する非暗号化データがないため、 CAはかなり無関係です(とは言え、Lucの答えは、Torが自分のCAを保持していることを確認するためです)。