Tor は3つの目標を念頭に置いて、様々な異なる鍵を使用しています: 1) Tor ネットワーク内のデータのプライバシーを確保するための暗号化、2) クライアントが意図したリレーと会話していることを確認するための認証、3) すべてのクライアントが同じリレーセットを知っていることを確認するための署名。
暗号化:まず、Tor のすべての接続はTLSリンク暗号化を使用するため、監視者は特定の通信がどの回線に向けられているかを内部から見ることはできません。
さらに、Torクライアントは、回線内の各リレーで一時的な暗号化キーを確立します;これらの追加の暗号化層は、出口リレーのみが通信を読み取ることができることを意味します。
回線終了時に双方とも回線キーを破棄するため、トラフィックを記録し、リレーに侵入してキーを発見することはできません。
認証: すべての Tor リレーは "Onion Key" と呼ばれる公開復号鍵を持っています。
各リレーは4週間ごとにOnion Keyを変更します。
Tor クライアントが回線を確立すると、各ステップで Tor リレーが自分の Onion Key の知識を証明することを要求します。
そうすれば、パスの最初のノードが残りのパスを偽装することはできません。
Tor クライアントはパスを選択するため、Tor の「分散信頼」プロパティを確実に取得できます。つまり、パス内の単一のリレーは、クライアントとクライアントの動作の両方を知ることができません。
調節 :クライアントはどのようにしてリレーが何であるかを知り、どのようにして適切なキーを持っているかを知るのでしょうか?
各リレーは「IDキー」と呼ばれる長期公開署名鍵を持っています。
各ディレクトリー管理機関は、さらに 「ディレクトリー署名キー」 を持ちます。
ディレクトリー管理機関は、すべての既知のリレーの署名付きリストを提供します。そのリストには、各リレーの鍵、場所、出口ポリシーなどを指定する、各リレーからの証明書一式 (ID キーによる自己署名) が含まれています。
したがって、攻撃者がディレクトリー管理機関の大部分を制御できない限り (2022年現在、8つのディレクトリー管理機関があります) 、Tor クライアントをだまして他の Tor リレーを使用させることはできません。
クライアントはどのようにしてディレクトリー管理機関を知ることができますか?
Tor ソフトウェアには、各ディレクトリー管理機関の場所と公開鍵のリストが内蔵されています。
そのため、ユーザーをだまして偽の Tor ネットワークを使わせる唯一の方法は、特別に改造されたバージョンのソフトウェアを提供することです。
ユーザーはどのようにして適切なソフトウェアを持っているかを知ることができますか?
ソースコードやパッケージを配布するときは、 GNU Privacy Guard でデジタル署名します。
Tor Browser の署名の確認方法をご覧ください。
それが本当に私たちによって署名されたものだと確信するためには、私たちに直接会ってGPGキーのフィンガープリントのコピーを手に入れるか、あるいはそのような人物を知っている必要がある。
このレベルの攻撃を懸念している場合は、セキュリティコミュニティに参加して、人々と出会うことをお勧めします。