メインコンテンツへスキップ
  1. 記事/

Torと匿名性

Ixonae
著者
Ixonae
目次

注意: この記事はLLMによって英語から翻訳されたものです。正確性については保証いたしかねますので、あらかじめご了承ください。英語の原文はこちら

本日の記事では、Torとそれがウェブ上でより良い匿名性を人々にどう提供できるかについてお話しします。そのために、Torの用途、仕組み、そして隠しサービスとは何かを見ていきます。最後に、このサービスに対する既知の攻撃と正しい使い方について解説します。本記事はネットワークや特に攻撃手法の詳細をすべて説明することを目的としたものではなく、全体的な概要を提供することを目指しています。

Torとは
#

Torは「The Onion Router」の略で、ノードと呼ばれる複数のサーバーで構成される分散型ネットワークです。TCP通信を匿名化することを目的としています。自国で検閲されているウェブサイトを閲覧したい人や、ディープウェブの一部にアクセスしたい人が利用できます(I2Pなど他のサービスでは、ディープウェブの別の部分にアクセスできます)。ディープウェブの規模を正確に測定するのは困難ですが、いくつかの論文が推定を行っています。2001年時点で、World Wide Webの400〜550倍の規模があると推定されていました。ディープウェブには多くのリソースが含まれていますが、最もよく耳にするのは、麻薬取引や児童虐待などの違法行為に関連するものです。この分野に詳しくなくても、有名なマーケットプレイスSilk Roadについては聞いたことがあるでしょう。このウェブサイトは隠しサービス上でホストされていました。これについては後ほど詳しく説明します。

どのように機能するのか?
#

基本的な使い方
#

通常のウェブ利用では、Aliceがウェブサイトにアクセスしたい場合、直接そのサイトと通信・やり取りを行います。その際、訪問の痕跡を複数の場所に残すことになります。まず、ISP(インターネットサービスプロバイダー)がAliceがその特定のウェブサイトを訪問したことを知ります。次に、ウェブサイトの管理者はIPアドレスa.b.c.dがいくつかのページを読み込んだことを知ります(他にもさまざまな情報がありますが、ここでは割愛します)。

Torを使えば、これを防ぐことができたはずです。Aliceが今度はTorを使ってBobのウェブサイトに接続する例に戻りましょう。まず、Torはノードのリストを知っているサーバーに問い合わせ、接続先のノードを把握します(以下の画像の通りです)。

How Tor works (1)
出典: Tor Project

次に、Aliceからウェブサイトまでのランダムな経路が生成されます。AliceのTorブラウザは最初のノードに接続し、そのノードが2番目のノードに接続し、2番目のノードが3番目のノード(出口ノードとも呼ばれる)に接続し、出口ノードがウェブサイトと通信します(以下の図の通りです)。

How Tor works (2)
出典: Tor Project

図に示されているように、Torを使用すると、Aliceとノード間、およびノード同士の間のトラフィックは暗号化されます。唯一暗号化されない可能性があるのは、Bobのウェブサイトと出口ノード間の通信です。良い点は、ノードはデータが辿った経路を全く知らないことです。ノードは直接通信している相手のマシンしか知らず、それがクライアントなのか他のノードなのかも分かりません。最終的に、ネットワークを通過するデータの内容を知ることができるのは出口ノードだけですが、出口ノードにはそのデータが誰のものかは分かりません。

送信前に、パケットは出口ノードの公開鍵で暗号化され、次にその前のノードの公開鍵で暗号化され、というように順に暗号化されます(以下の図を参照)。そのため、パケットが出口ノードで使用可能になるには、すべての前のノードで復号される必要があります。これは、出口ノードだけがデータを読むことができ、かつ定義された経路を通ってきた場合のみ読めることを意味します。残念ながら、これは出口ノードがトラフィックを盗聴できることも意味します。これについては後ほど触れます。

Onion routing
オニオンルーティング、出典: Wikipedia

Torにはまた、Torのブロッキングを回避する機能も備わっています。国家、組織などがネットワークをブロックすることを決定した場合、ノードをブロックする必要があります。アドレスが公開されているため、これは簡単です。しかし、ブリッジリレーのおかげでTorを完全にブロックすることはできません。これらのブリッジは基本的なノードですが、リレーリストやその他の場所には掲載されていません。自動的にこれらを知ることができないため、ブロックするのが困難になります。

隠しサービス
#

最後に、Torでは隠しサービスと呼ばれるものを利用できます。隠しサービスとは、Torネットワークを通じてのみアクセス可能なサービスです。URLは「.onion」で終わり、サービスの場所を隠すことを目的としています。

Bobが隠しサービスをホストしたいとしましょう。そのためには、ネットワーク上のいくつかのランダムなノードを選択する必要があります。これらは「紹介ポイント」と呼ばれます。次に、前のセクションと同様に、それらへの経路を生成します。完了すると、隠しサービスディスクリプタが作成されます。これにはBobの公開鍵と紹介ポイントのアドレスが含まれています。Bobはこのディスクリプタを秘密鍵で署名し、DNSサーバーのように使用されるデータベースにアップロードします。その後、公開鍵から16文字の.onionアドレスが生成されます。

次に、AliceがBobのサービスに接続することを決めたとしましょう。まず、データベースから隠しサービスディスクリプタを取得します。次に、ネットワーク上のランダムなノードにランダムな経路で接続します。これが待ち合わせポイントになります。この時点で、ワンタイムシークレットがAliceに渡され、隠しサービスの公開鍵で暗号化された紹介メッセージを作成します。このメッセージには待ち合わせポイントのアドレスとワンタイムシークレットが含まれます。このメッセージは紹介ポイントに送信されます。隠しサービスがメッセージを受信すると、待ち合わせポイントに接続し、ワンタイムシークレットを送信します。Aliceはすべてがうまくいったことを通知され、AliceとBobのサービスは待ち合わせポイントを通じて通信できるようになります。

より詳細な情報と図はTorのウェブサイトで見ることができます。

既知の攻撃
#

Torは優れたツールです。しかし、万能ではありません。ネットワーク上で問題となりうる事柄がいくつかあり、Torを使用していても絶対的な匿名性は保証されません。

最初の問題は、前述の通り出口ノードです。出口ノードは暗号化されていないトラフィックを見ることができる唯一のノードであるため、中間者攻撃を仕掛けることができます。例えば、通過するパケットを盗聴してログイン情報を取得したり、返されるページのコードを変更して悪意のあるコードを含め、クライアントのコンピュータに感染させて実際の所在地を特定したりすることが可能です。

さらに難易度の高い攻撃の可能性もあります。これらは主に、同一の人物や組織が制御する複数のノードのトラフィック分析に基づいています。NSAやGCHQなどの複数の政府機関がTorノードを運用していることが知られています。特定の条件が満たされれば、理論的には出口ノードのトラフィックをユーザーと関連付けることが可能です。その方法の一つは、実際に誰かが使用しているエントリーノードと出口ノードの両方を制御することです。エントリーノードに入るデータを分析することで、予想されるデータサイズと出口ノードに到達する時刻を知ることができます。そして、実際のIPアドレスとTorでの活動を紐づけることが可能になります。これらの攻撃について詳しく述べた論文がいくつかあります。そのうちの2つを紹介します:A Practical Congestion Attack on Tor Using Long PathsOn the Effectiveness of Traffic Analysis Against Anonymity Networks Using Flow Records

良い慣行
#

記事のこれまでの内容から、Torを使った匿名性を向上させるためのいくつかの良い慣行を導き出すことができます(100%匿名であることが保証されるわけではありませんが)。

  • Torブラウザを最新の状態に保つこと。政府機関がFirefoxの脆弱性を利用してユーザーのコンピュータに感染させることが知られています。
  • Flashなどのプラグインを有効にしないこと。例えば、Flashはウェブユーザーに対する攻撃の大きな割合を占めています。
  • 文脈的なアイデンティティを分離すること。Tor使用中に匿名でいたいのに、10秒後にFacebookを使うのは良い考えではありません。
  • Torを使ってダウンロードしたファイルの使用を避けること。これらのファイルにはウェブ上のリソースが含まれている可能性があり、実際のIPアドレスでアクセスしてしまう恐れがあります。マルウェアが含まれている可能性もあります。
  • VPNの使用は追加のセキュリティ対策になり得ます。
  • Tailsなどのセキュリティ重視のディストリビューションからTorを起動すること。
  • Torを使用してHTTPウェブサイトに接続することを避けること。
  • Torをピアツーピアや違法ダウンロードに使用しないこと。Torはそのために設計されておらず、効率的でもなく、正当なユーザーの速度を低下させるだけです。
  • Torは万能ではありません。違法行為を行わないでください。100%安全であるという保証はありません。