web-dev-qa-db-ja.com

Torがプロキシより安全なのはなぜですか?

Torルーターを使用して通常のインターネットを閲覧する場合、トラフィックは出口ノードを介してTorネットワークを離れる必要があります。どうやら出口ノードは最初に送信されたデータを見ることができます。

  1. これは本当ですか?
  2. 敵対者が私を匿名化したいと思った場合、彼らは出口ノードの所有者に召喚するか、それをハックしなければならないのではないでしょうか?
  3. 上記は両方に当てはまるため、これはプロキシがほぼ安全であることを意味しますか?
24
DCIndieDev

Tor では、ユーザー(あなた)は、そのデータ用にいくつかのノードを通るランダムパスを選択します。パスの最初のノードはあなたのIPアドレスを知っていますが、あなたが何をどこに送信するかは知りません。最後のノード(「終了ノード」)はターゲットサーバーのアドレスを認識し、データを確認します(もちろん [〜#〜] ssl [〜#〜] が使用されている場合を除く)が、IPアドレスは認識されません。パス内のすべてのノードは、パス内の前のノードと次のノードのアドレスのみを認識しています。

政府がTorのプライバシーを解明することに専念している場合、その最大のチャンスは、多くのノードをセットアップして操作することです(もちろん、notは「友好的な政府によって提供される」と言います)。コンピューターが政府が管理するノードで始まるパスをランダムに選択する場合andは、別の政府が管理するノードで終わる場合、両方のノードがデータを簡単に関連付け、IPとターゲットサーバーの両方を明らかにできます( SSLがない場合はデータを送信します)。暗号化はデータのcontentsを隠しますが、lengthを隠さないため、相関は単純です。ノードAがIPからTorネットワークに入る4138バイトのリクエストを確認し、ノードBがTorネットワークを終了してサーバーwww.example.com宛ての1秒以内に4138バイトのリクエストを確認する場合、ノードAとノードBは、データを照合することにより、your IPwww.example.comへの通信に関与したと推測します。

敵対者が入口ノードと出口ノードの両方で盗聴したりハイジャックしたりしない場合、プライバシーが維持されることは簡単に証明できます。しかし、それらがdoの場合、プライバシーは正午の太陽の下で朝の霧のように蒸発します。

40
Thomas Pornin
  1. いいえ、出口ノードはメッセージを復号化してリクエストを行うことしかできませんが、元のホストがどこにあるかは知りません。人がどこにあるかを知っている唯一のノードは2番目のノードです。これはTorが使用する階層化された暗号化によるものです。すべてのノードが知っているのは、次のホップと前のホップだけで、パス全体は知りません。
  2. いいえ、1のため
  3. いいえ、1のため

Torがどのように機能するかについては、次のWebサイトのブログ投稿の1つで説明されています。

http://security.blogoverflow.com/2012/04/tor-exploiting-the-weakest-link/

9
Lucas Kauffman

私はあなたにこの答えを指摘したいと思います here でTorがどのように機能するかを簡単に説明します。

出口ノードはデータがどこから発生したのか分かりません、これがTorの全体のポイントです。 Torの鍵は、Torネットワークを通過するデータが通過する暗号化の複数のレイヤーです。

一方、プロキシを使用すると、マシンとプロキシサーバー間の直接接続が必要になります。プロキシを危険にさらすと、誰がそのプロキシに接続しているかがすぐに明らかになる可能性があります。

5
user10211

これについてはすでに回答済みですが、重要な詳細の多くは省略されています。

オニオンルーティングの仕組み

オニオンルーティングは、各接続が異なるルートになるように、パスがサーバーのクラスターを介してランダムに選択される匿名技術です。ガード、ミドル、出口の特定のリレーは、Torクライアントによってランダムに選択されます。ガードから終了までのパスはcircuitと呼ばれ、Torクライアントはこれを記憶しています。ガードは一度選択され、長期間同じままです(以下で説明します)。中間と出口は定期的に(10分に1回、または新しい接続が確立されたときに)変更されます。予測できないパスと多数のリレーから選択すると、匿名性が大幅に向上します。

How Tor works
(ソース: torproject.org

Tor経由でデータを送信する場合、データは3つのキーで暗号化されます。各層は、使用される後続のリレーを指定します(クライアントによってランダムに選択されます)。

  • Tor Browserのようなアプリケーションは、Torを介してWebページを要求し、それをクライアントに伝えます。このリクエストは、SOCKS5プロトコルを使用してローカルネットワークで行われます。
  • Torクライアントは3つのキーでデータを暗号化し、各キーを異なるランダムリレーと共有します。各層で暗号化されているのは、次のリレーのアドレスでもあります。その後、これは警備員に送信されます。
  • Guardはデータを受信し、そのキーを使用して3番目の層を取り除きます。 3番目のレイヤーで指定されたリレーである中間リレーにデータを転送します。
  • 中間のリレーはデータを受信し、そのキーを使用して2番目のレイヤーを取り除きます。 2番目のレイヤーで指定されたリレーである出口にデータを転送します。
  • 出口はデータを受け取り、そのキーを使用して最後の(最初の)レイヤーを取り除きます。宛先サイトをチェックし、完全に復号化されたデータを転送します。
  • 宛先サイトはデータを受信し、発信元のIPである出口に応答を送信します。

これで、トラフィックは宛先に正常に送信されましたが、戻る必要があります。 Torリレーは、どのリレーがそのリレーと通信しているかをメモリに保持しているため、そのリレーから応答を受け取ったときに、どこに送信するかがわかります。このようにして、中間のリレーは、ガードが出口にデータを送信するように要求したことを知っており、それを覚えているので、同じ出口がデータを返すときに、ガードに転送できます。

  • 出口は応答を受信し、前のリレーの宛先(中央)を追加し、それをその鍵で暗号化して、中央のリレーに送信します。
  • 中間のリレーはこれを受信し、前のリレー(ガード)の宛先を追加し、それをガードに送​​信する前にそのキーを使用して別の暗号化層を追加します。
  • ガードはこれを受信し、Torクライアントであるあなたにデータを提供する前に、そのキーで暗号化の第3層を追加します。
  • Torクライアントはこれを受け取り、暗号化のすべての層を取り除きます。次に、要求したアプリケーション(Tor Browserなど)に応答を返します。

これは オニオンルーティング の背後にある元の概念です。これはすべて1、2秒で発生します。

onion routing diagram

誰が何を見ることができますか?

Torの義務的なEFF図に誰もリンクしていないので、私は実際にこの答えを書きました。これは、関心のある各ポイントと、特定の敵が観察できるものを示しています。

Tor and HTTPS

リレーの観点からは、3つのことが当てはまります。

  • ガードはあなたが誰であるか(あなたのIP)を知っていますが、あなたが何をしているか(あなたの目的地)を知りません。
  • 出口はあなたが何をしているかを知っていますが、あなたが誰であるかは知りません。
  • 中間ノードはあなたについて何も知りません。

匿名性は、誰もあなたが誰であるかあなたが何をしているかを知ることができないという事実から生じます。

Torに対するトラフィック分析攻撃

Torを使用して匿名化するためには、直接の攻撃(ソフトウェアの悪用、バックドアハードウェア、OPSECの失敗)がないと想定して、あなたが誰であるかを知っているエンティティと、何をしているかを知っているエンティティが共謀する必要があります。図では、その敵はNSAとしてラベル付けされています。黒い点線はデータの共有を示しています。つまり、正確なタイミング情報を使用して相関させることができます。これはトラフィック分析攻撃と呼ばれ、攻撃者が接続の両端を監視している場合のリスクです。 Torはそれを防御する能力が限られていますが、多くのトラフィックが混ざっているのでありがたいことにそれで十分です。以下のイベントのタイムラインを考慮してください。

  • ISP1は_203.0.113.42_がt + 0でデータの512暗号化バイト(253非暗号化)を送信することを確認します。
  • ISP2は、t + 4で_example.com_が_/foo.html_の253バイトのリクエストを受信することを確認します。
  • ISP2は_example.com_がt + 5で90146バイトの応答を送信するのを確認します。
  • ISP1は_203.0.113.42_がt + 9で90424暗号化バイト応答(90146非暗号化)を受信することを確認します。

ISP1はあなたと警備員の間の任意のISPであり、ISP2は出口と宛先の間の任意のISPです。これらすべてを監視でき、ISP1とISP2が共謀する場合、十分な計算を行うと、IPアドレス203.0.113.42が_example.com/foo.html_にアクセスしたと結論付けることができます。 Torはこれをいくつかの方法で難しくしています。まず、 永続的ガード は、ネットワークに多数の悪意のあるガードを追加することにより、敵がステップ1と4を観察できる可能性を減らします。次に、Torは cells それぞれ512バイトのトラフィックを送信します(または、少なくとも以前は使用されていました。 今は514バイト )なので、ステップ1では512バイトを送信しますが、ステップ2は、253バイトが受信されたことを示します。 3番目に、Torが通過するホップ数により、レイテンシのジッターが増加します。このため、後続の各タイムスタンプは、小さいがランダムな時間だけ異なります。これにより、同じ時間に同じ量のデータを転送する他の接続と、接続を区別するのが難しくなります。

トラフィック分析に依存するTorに対する多くの学術的攻撃がありましたが、それらは常に、待ち時間がすべて固定されて確定的である小さな世界を想定しています。これらは、すべてのネットワークがノイズに満ちている世界の実際のTorネットワークに適用されていないにもかかわらず、メディアで報道される傾向がある攻撃です。

プロキシに対するトラフィック分析攻撃

攻撃者はISP1とISP2の両方にアクセスできない可能性があるため、この種の攻撃はTorを阻止するのが困難です。たとえそうであっても、そのうちの1つのインフラストラクチャは、高解像度のタイムスタンプを記録するには不十分である可能性があり(たとえば、NetFlowレコードの粒度が低下しているため)、それらの内部クロックはわずかに異なる場合があります。ただし、プロキシを使用すると、この攻撃ははるかに簡単に阻止できます。これは、プロキシプロバイダーを完全に信頼している場合でも問題です。 ISP1がプロキシサービス自体のISPを表す、このイベントの別のタイムラインを検討してください。

  • ISP1は_203.0.113.42_がt + 0で253バイトのデータを送信するのを見ます。
  • ISP1は、t + 1でプロキシサーバーが_example.com_の253バイトのリクエストを_/foo.html_に送信することを確認します。
  • ISP1は_example.com_がt + 2で90146バイトの応答を送信するのを確認します。
  • ISP1は_203.0.113.42_がt + 3で90146バイトの応答を受信することを確認します。

この情報をすべてISP1に渡すことで、203.0.113.42が_example.com/foo.html_を要求したと結論付けるのは非常に簡単になります。パディングはなく、ジッターは実質的にありません(遅延は、プロキシサービスが要求を内部で転送するのにかかる時間のみであるため)。このため、この単一のISPはあなたが誰であるかとあなたが何であるかしていることの両方を知っており、接続するだけです。彼らが同じ人から来ているという事実。シンプル。これは、しばしば大ざっぱな性質と貧弱な正直さの歴史が無視されている場合でも、プロキシの主な技術的な欠点です。

5
forest

他の答えに追加

  • プロキシを使用すると、IPアドレスを隠すことができ、ある程度の匿名性が得られますが、追跡できなくなります。プロキシによって生成されたログを使用して追跡できます。
  • より良いアプローチは、一定の時間間隔の後にトラフィックがルーティングされるプロキシサーバーを変更し続けるプロキシスイッチングツールを使用することです。そのようなツールの1つは Proxy switcher です。
  • このようにして、世界中のプロキシを切り替え続けます。これらのプロキシのほとんどは、非常に短い時間間隔で稼働しているため、トレースが非常に困難になります。
  • Anonymizer.comやvtunnel.comのようなWebサイトがあり、プロキシ経由でブロックされたWebサイト(管理者または中国政府によってブロックされた;)にアクセスできます。
1
Shurmajee