Tor
開発元 | The Tor Project[1] |
---|---|
最新版 | 0.4.5.6 - 2021年2月15日[2] [±] |
最新評価版 | 0.4.5.5-rc - 2021年2月1日[3] [±] |
リポジトリ | |
プログラミング 言語 | C言語、Python |
対応OS | クロスプラットフォーム |
種別 | オニオンルーティング/匿名 |
ライセンス | BSD License |
公式サイト |
www |
Tor(トーア、英語: The Onion Router)とは、TCP/IPにおける接続経路の匿名化を実現するための規格、及びそのリファレンス実装であるソフトウェアの名称である。通常、ユーザはローカルにSOCKSプロキシ(オニオンプロキシ)を立て、そのプロキシ経由で通信を行うことになる。Torという名称はオリジナルのソフトウェア開発プロジェクトの名称である「The Onion Router」の頭文字を取ったものである。
当初はオニオンルーティングの開発元でもある、アメリカ海軍調査研究所 によって支援されていたが[4]、2004年以降は電子フロンティア財団 (Electronic Frontier Foundation) により支援されるプロジェクトとなった。2005年11月以降[5]はEFFによる金銭の支援は終了した。ウェブホスティングは継続されている。
概要
Torは主として接続経路を匿名化するものであり、通信内容の秘匿を保証するものではない。Torでは経路の中間に限り暗号化を行っているが、経路の末端では暗号化が行われていない。通信内容の秘匿まで行いたい場合は、TLSなど(HTTPSやSMTP over SSLなど)を用いて、別途暗号化を行う必要がある。しかし、Torの隠し機能として後述の Hidden Service というTorサーキット上でサービスをホストする機能があり、これを用いれば末端の通信も暗号化される。
Torのリファレンス実装は、Microsoft WindowsやmacOS、Linux等の各種Unix系OSで動作する。「オニオンルーティング」と呼ばれる多重化接続により、通信を複数のノードを経由させることにより、匿名性を高めている。暗号化が、「あたかもタマネギの皮のように、1ホップごとに積み重ねられること」が名前の由来である。現実装ではTCPで通信が可能だが、UDPやICMPなどのプロトコルは使用することができない。
通信を秘匿するにあたって、まずTorは各ノード間に回線を構築する。このとき、ユーザは各ノードと共通鍵を共有する。この鍵はユーザと1つ1つのノードのみが共有している。回線構築後は、この回線を使って通信を行う。データは先述の共通鍵を使って暗号化されるが、このとき、データは終端ノードから順番に暗号化される。ユーザはこのデータを構築した回線に渡し、各ノードは共通鍵を用いて、1枚ずつ暗号化の層を剥いでいく。こうすることで、終端ノード以外はデータの内容を読み取ることができなくなる。
Torのデザイン
接続元がオニオンプロキシ (OP) を立て、オニオンルータ(OR、ノード)経由で本来の宛先へ接続する[6]。OPはユーザの複数のTCPストリームを受け取り、それらを多重化、ORがそれらを宛先までリレーする。
それぞれのORは、長期のidキーと、短期のオニオンキーを維持している。前者はルータディスクリプタに署名するのに、後者は回線を構築する際や、別の短期のキーを作るときのリクエストを復号するのに使われる。短期のキーは漏洩したときの影響を小さくするため、一定期間ごとに交換されている。関連項目のオニオンルーティングも参照。
セル
セルとは、TLS 接続を流れるデータの単位で、512バイト[7]。ヘッダとペイロードを持ち、ヘッダに回線id (circID) が含まれる。これは、単一の TLS 接続で、複数の回線を多重化できるため、回線を特定するための識別子である。
セルはコントロールセルとリレーセルの2種類があり、前者は受け取ったノードによって処理されるコマンドを伝達し、後者は接続元から宛先へのデータの受け渡しに使われる。リレーセルは、circID の他に、streamID、チェックサム、リレーコマンド等を持つ。リレーセルのヘッダとペイロードの全ては、暗号化されて送信される。
回線の構築
以下は、TorクライアントAlice(発信元)から、オニオンルータBob、Carolまでの回線を構築する際の説明である[8]。
- Aliceは、あらかじめ得ているディレクトリリストの中から、無作為的にBobとCarolを選択する(実際は最初のノードは2、3ヶ月同じ)。
- Alice→Bob: Alice は create cell(セルに回線構築要求コマンドを乗せたもの)を送信し、回線構築の要求を行う
- このとき、Alice は今までに使われていない circID を発行する
- ペイロードは Bob のオニオンキーで暗号化された、DH ハーフハンドシェイクを含んでいる ()
- Bob→Alice: Bob は created cell(セルに構築完了を通知するためのコマンドを乗せたもの)の中に と共通鍵 のハッシュを積んで送る
- AliceとBobは共通鍵 を共有できた
- 以降、Alice-Bob間の通信はこの共通鍵で暗号化されて行われる
- Alice→Bob: Alice は relay extend cell(セルにサーキットを延長する要求を乗せたもの)を送信する
- この中に次の OR (Carol) のアドレスが含まれており、Carol のオニオンキーで暗号化された も含まれる
- Bob→Carol: Bob はハーフハンドシェイクを create cell に入れ、Carolに送信する
- このとき、Bob は今までに使われていない circID を発行する
- Carol→Bob: created cell に共通鍵のハッシュを積んで送る
- Bob は と を対応付けている
- Bob→Alice: Carol が created cell を返した場合、ペイロードを relay extended cell に入れて Alice に返す
- Alice と Carol は共通鍵 を共有できた
以上の手続きは一方向エンティティ認証、すなわち、Alice は Bob を知っているが、Alice は公開鍵を使っていないので、Bob は Alice が誰なのか知らないということを達成している。一方向鍵認証も達成しており、Alice と Bob は鍵について合意しており、Alice は Bob のみがその鍵を知っていることを知っていることを意味している。前方秘匿性とキーの新鮮さの保持にも成功していて、これにより、鍵共有プロトコルでセッションキーを生成した際に、のちに秘密鍵の安全性が破れたとしてもセッションキーの安全性が保たれることが保証される。
Alice-Bob間、Bob-Carol間の共通鍵はそれぞれAliceとBob、BobとCarolしか知らないので、データを盗聴されることなく、中継により匿名性を得ることができる。
セッション鍵交換のためにDiffie-Hellman鍵交換方式が用いられ、通信の暗号化としてはAESが使用される。オニオンサーキット構築を含めたTorノード間の全通信は、外部からの盗聴や改竄を防ぐために、TLSによる通信の上で行われる。
データの送受信
先述の、リレーセルや回線を用いて行われる。以下は、Alice のデータが Bob、Carol を経由して、Dave まで届く様子を説明したものである[9]。
- Alice はペイロードやペイロードのダイジェストをリレーセルに入れ、circID 以外の全てを終端ノードから順番に、共通鍵を用いて暗号化して送信する
- Bob は1つ復号し、ダイジェストが一致しない場合、Bob は circID を置き換えて、Carol へセルを送信する
- Carol も同じように1つ復号し、ダイジェストが一致した場合、かつ relay cell の内容を認識可能なら、Dave へ送信する (送信完了)
- Carol に到着したペイロードとそのダイジェストが一致しなかった場合、回線そのものを切断する
逆に Dave が送信し、Alice が受信する場合、各ノードは自分にセルが回ってきたときに、ペイロードを暗号化していく。
ランデブーポイントと秘匿サービス(Hidden Service)
Torの特徴として、身元を明かさずに各種 TCP のサービス(Webサーバ、メールサーバ、IRCサーバなど)を運用することが可能である。 これは、.onionの識別子を持つ、特殊な疑似アドレスを持たせることにより、特定のIPアドレスと結びつけることなく、Torを実行させているノード同士が接続することができる。一般のWebサイト等にTor経由で接続するのとは異なり、Hidden Serviceは深層Webの一角を成すダークネットに含まれ出口ノードは存在しないし、中継ノードが通信の内容を見ることは不可能である。
Alice を接続元、Bob を宛先とすると、このサービスを用いることで、Bob は自身のIPアドレスをさらすことなくサービスを提供でき、アプリケーションもTorの存在を透過的に扱うことができる。
サーバのBobはまず、複数のORを introduction point として指名し、ルックアップサービスへ広告する[10]。このとき、Bobは長期の公開鍵暗号のペアを持っており、これでサービスを証明する。先ほどの広告も、Bobの公開鍵で署名されている。Bobは introduction points までの回線を開き、リクエストを待つように伝える。
AliceはBobのサービスを知ると(ネットや直接Bobに聞いて)、ルックアップサービスから情報を得る。Alice はある OR を rendezvous point (RP) として指名し、回線を構築する。この際、Bob を識別するためにランダムな rendezvous cookie も渡す。
次に、Alice は Bob の introduction points の1つに匿名でストリームを開く。このとき、AliceはBob の公開鍵で暗号化した RP の情報と rendezvous cookie を渡し、DH 鍵共有を始める。introduction point は Bob へそのメッセージを送る。
Bob は了承すると Alice の RP への回線を構築し、rendezvous cookie、DH 鍵共有の返答、セッション鍵のハッシュを送る。Alice のRP は Alice の回線を Bob の回線に接続する。
以上の手続きにおいて、RP は Alice も Bob も知らないし、データの内容も知ることはない。両端は双方のOPになっているので、AliceとBob以外の中継ノードがデータの内容を復号することもできない。
Bobのintroduction pointは複数存在しているので、DoS対策にもなっている。さらに、Alice が introduction point へメッセージを送信するとき、end-to-end の認証トークンも乗せることができる。秘匿サービスの仮想ドメイン、x.y.onion は、xが認証トークン、yがBobの公開鍵のハッシュになっている[11]。
エントリーガード
現在、Torの回線は3つのノードを経由しているが、悪意のある攻撃者が両端のノードをコントロールできた場合、匿名性が破られてしまう[12]。そのため、Torは2、3ヶ月の間最初のノードを使い続けることで、攻撃のコストを上げており、このノードはエントリーガードと呼ばれる[13]。
Torの応用
政府機関や軍隊が安全な通信を行うため、あるいは通信の秘密やプライバシーを重視する個人や活動家などがネット検閲回避のため使用する。使用例については、ダークネット#使用の項が詳しい。下記は、公式サイトから入手する必要あり。ただし、国際的監視網の形成やPRISMの導入が行われ、情報機関や治安当局に把握される可能性があり、公式サイトの閲覧やブラウザ等の入手・使用は自己責任かつ工夫の上行うこと。また、個人サイトやアップローダーなど第三者によって公開されているものは、改竄やマルウェアなどの混入の可能性がある。
Torブラウザ
Torブラウザ[14][15]は、盗聴防止やプライバシー保護を目的に開発されたWEBブラウザである。設定済みのTorとMozilla Firefox ESR(延長サポート版)を組み合わせ、Microsoft Windows、macOS、Linuxの各環境で動作するものがあり、ver 4.5まではStartpage.com、現在はDuckDuckGoが標準検索エンジンに採用されている。さらにいくつかの拡張機能、JavaScriptを制御できXSSにも対応可能なNoScriptのほか、Hidden Service(.onionドメイン)以外のHTTP通信で出口ノードからの末端部を暗号化するHTTPS Everywhere[16][17]などが標準で組み込まれている。Tailsに搭載されるものには、インターネット広告の遮断などに用いられるuBlock Originも含む。Torブラウザは常時プライベートブラウシングモードで動作し、終了時に履歴やキャッシュおよびcookie等も残さない。いまのところ、ウェブ トラッキングやcanvas fingerprintなどの対策にも有効である[18]。また、Android端末向けや、USBメモリに入れての利用を想定したゼロインストールパッケージも用意されている。
TorBirdy
TorBirdy[19][20][21]は、Microsoft Windows、macOS、Linuxの各環境で動作するインターネット統合ソフト・SeaMonkeyおよび電子メールクライアント・Mozilla Thunderbird用の拡張機能。電子メールの盗聴や傍受の防止を目的に開発されており、メールの送信経路の秘匿化を行う。Torネットワークに接続した状態で動作するため、公式には、Torブラウザを起動した状態での使用を推奨している。Tailsでは、メールそのものを公開鍵で暗号化するGnuPGやEnigmailとともに組み込まれている。
Tails
Tails[22][23]はプライバシー保護を重視したLinux系OSで、TorブラウザやTorBirdyなども標準搭載し、通信はすべてTorネットワーク経由となる。Live DVDやLive USBから起動し、さらにPCに履歴を一切残さない。匿名性・秘匿性が高く、人権活動家や弁護士、ジャーナリストおよび各国の工作員(諜報活動)なども使用する。公式サイトやTails公式アーカイブでISOイメージが無償配布されており手軽に入手可能である。
Orbot
Orbot[24][25]はAndroidユーザー向け匿名ネットワーククライアント。Android端末でTorに接続することを目指すプロジェクトである。
問題点
通信傍受
2007年8月30日、スウェーデンのセキュリティー研究者、ダン・エガースタッド (Dan Egerstad) は、「世界中の大使館や人権擁護団体の電子メールを傍受することに成功した」と発表した[26]。
Torノード間の通信は暗号化されているものの、末端(出口)となるTorノードと通常のTCP通信先との間では、その暗号化が解除されるという点を利用したもので、LANアナライザを搭載したTorノードを設置することで、そこからTorネットワークを抜けようとする通信を監視するだけで、簡単に傍受できてしまうというものである。
この問題はTorネットワークに対して送信するデータ自体を、たとえばHTTPSやSMTP over SSLなどを用いて別途暗号化することで、防ぐことができる。Torブラウザには、標準でHTTPS Everywhereが添付される。
DNS漏洩
ほとんどのソフトウェアは、UDPを用いてDNSを参照するため、TCP専用であるTorネットワークを経由せず直接参照してしまい、匿名性が不完全になる可能性がある。
DNS規格自体はUDPとTCPの両方をサポート (RFC 2136) しており、多くのDNSサーバー実装も両対応となっているが、DNSを参照する多くのソフトウェアではUDPを用いるのが一般的であるという事が問題の根底にある。TCPを用いたDNS参照をサポートしているソフトウェアであれば、この問題の影響を受けることはない。
以上のことより、古いバージョンのTorでは、HTTP通信を行う場合に、TCPを用いたDNS参照をサポートしているPrivoxyをWebブラウザとTorの間に設置し、併用することが推奨されていた。
バージョン0.2.0.1-alpha以降のTorは、DNS参照をTorネットワーク経由で行うDNSリゾルバが搭載された。これを使用するには、ユーザはシステム上の任意のDNSリクエストを、指定したポートで動作するTorのDNSリゾルバ経由で処理させるよう、リダイレクトする必要がある (iptables 等を用いて)。こうすることでDNS漏洩問題は解決され、SOCKSに非対応のアプリケーションでも安全にTor経由の通信を行うことができるようになるが、少々設定が複雑で、パケットがリークする可能性があるため、安易に使うべきではない[27]。
代替案として、公式のFAQでは、以下のSOCKSベースの解決策が挙げられている[28]:
- SOCKS 4a (ホスト名を使う)を用いる
- SOCKS ベースのポートフォワーダ(socat 等)を用いて、SOCKS 経由で通信させる
- tor-resolve を用いて、Tor経由でホスト名を解決。その後、アプリケーションに解決されたIPアドレスを渡す
トラフィック分析
2005年5月8日から11日にかけて米国カリフォルニア州オークランドで開催された2005 IEEE Symposium on Security and Privacy で、ケンブリッジ大学の Steven J. MurdochとGeorge Danezis は論文「Low-Cost Traffic Analysis of Tor」を提示した。この論文によると、Torの匿名性を大幅に低下させる手法が存在する。当該論文はDanezis自身のページ[29]ないし IEEE Computer Society digital library などで閲覧可能である。
匿名性を低下、又はユーザーを危険に晒す迂回サービスの存在
本来、Hidden Service(.onionドメイン)は自身もTorネットワークに接続することでしか閲覧できず、技術/知識を持ち意識をしてアクセスを行うべきサイト群である。前述の通り、.onionドメインは一般的にアングラに属する情報が多く集まるが、これらのサイトに対し、迂回サービスを利用することによって誰もが場所を問わず通常のブラウザ経由でそのまま気軽に検索、閲覧することが可能な状況が発生している。
この状況を逆手に取り、悪意のあるJavaScriptを仕込むサイトなどの登場が危惧される。また、目立たない画像を仕込まれウェブ トラッキングされる場合もある。関連する項目の、ウェブビーコンやHTTP cookie#トラッキング・クッキーも参照。.onionドメインのサイト群の中には、悪意ある者や犯罪者およびテロリストなどが関わるサイトも存在するため、常に情報機関や治安当局の工作員も監視しており、興味本位で安易に接続するのは非常に高い危険性をともなう。
通常、Mozilla Firefoxから派生したTorブラウザはXSSなどに対応するNoScriptが標準でインストールされており、JavaScriptがOFF、もしくはOFFにするべき状況のため影響を受ける可能性は低く、逆に知識のない一般人が通常のブラウザで安易に接続し被害に遭う可能性がある。Google Chrome系ブラウザで接続する場合、JavaScriptを制御できるScriptSafe[30]のほかトラッキングやcanvas fingerprint対策の拡張機能も必要である。
秘匿サービスの問題点
2000年代後半より、ブラックビジネスの基盤としても利用され始め、Tor経由でしかアクセス出来ない秘匿された違法サービスが多数運営されていることが確認されている。ダークネット・マーケットで取り扱うサービスは武器・麻薬・ギャンブル・偽造通貨などである。サーバの存在が秘匿された違法サイトが運営されているウェブの領域は、ダークウェブと呼ばれており、特定の違法サイトの摘発と新たな違法サイトの展開といういたちごっこが続いている。
攻撃者がTorを使って攻撃を仕掛けた場合、被害者側のログに出口ノードを運営するボランティアとの通信が記録される。そのため、運営するだけで逮捕されかねないようなリスクを負うことになる。公式もこのことを問題視しており、ボランティアはExit Policyを設定することで、出口ノードになるかどうか、出口ノードとしてどのサービスを許可するか、等を制限することができる[31]。
サイト管理者へのTor規制要請
日本で2012年にパソコン遠隔操作事件が発生してTorの存在がマスコミにより連日報道された。近年はTorを悪用した犯罪行為が発生しており、殺人予告やオンラインバンキング等への不正アクセス、2010年の警視庁国際テロ捜査情報流出事件でも使用が確認されている[32]。
警察庁の有識者会議は、2013年4月18日の報告書で「国内外で犯罪に使われている状況に鑑みると対策が必要」として、末端となるTorノードのIPアドレスからアクセスがあった場合は通信を遮断するよう、国内のウェブサイト管理者に自主的な取り組みを要請する構えを見せている[32][33][34]。
2014年7月に「Tor」を管理する非営利団体は、Torのネットワーク上で5か月間にわたり密かにトラフィックに変更を加え、「秘匿サービス」と呼ばれるサイトにアクセスしているTorユーザーの身元を探ろうとしていたコンピュータの存在が確認されたとして、秘匿サイトを利用しているTorユーザーの多くが政府が支援する研究者によって身元を特定された可能性があると発表した[35]。
国際ハッカー集団「アノニマス」は、Torの検閲への動きを撤廃することを望む動画を、YouTubeにアップロードした[36]。
中国とTorプロジェクトの攻防
中華人民共和国(中国)は、2009年9月30日の建国60周年記念式典に併せるかたちでインターネット検閲を強化し、Torを始めとする類似技術を用いたグレート・ファイアウォール(中国の検閲システム)回避を行う者の摘発、Tor公式サイトへのアクセス遮断、Torリレーノードへのアクセス遮断などを強化した[37]。
これに対抗するようにTorプロジェクトでは、Torリレーノードとなってくれるボランティアの増強を呼びかけている。たとえISPに規制されても、IPアドレスが公開されていないTor Brigdeを利用すればこれらの規制を回避することが可能であり、Torへのアクセスが禁止されている非民主主義的な国内も利用可能である。
注・出典
- ^ “Tor: People” (2008年7月17日). 2011年4月8日閲覧。
- ^ “New Release: Tor 0.4.5.6”. Tor Blog. Tor Project (2021年2月15日). 2021年2月23日閲覧。
- ^ “New release candidate: Tor 0.4.5.5-rc”. Tor Blog. Tor Project (2021年2月1日). 2021年2月5日閲覧。
- ^ 米海軍が産み、オープンソース陣営が育てる匿名ネット技術『トーア』
- ^ Tor: People
- ^ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc4
- ^ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc4.1
- ^ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc4.2
- ^ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc4.2
- ^ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc5
- ^ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc5.2
- ^ https://gnunet.org/sites/default/files/Wright-2004.pdf
- ^ https://support.torproject.org/en-US/tbb/tbb-2/
- ^ Tor Project | Anonymity Online
- ^ tor-package-archive torbrowser
- ^ HTTPS Everywhere – 🦊 Firefox (ja) 向け拡張機能を入手
- ^ HTTPS Everywhere Electronic Frontier Foundation
- ^ Fingerprint解説サイト - 明治大学 情報セキュリティ研究室
- ^ TorBirdy :: Thunderbird向けアドオン - Thunderbird Add-ons
- ^ torbirdy – Tor Bug Tracker & Wiki
- ^ tor-package-archive torbirdy
- ^ Tails - Privacy for anyone anywhere
- ^ amnesia.boum.org/tails
- ^ Orbot: Tor for Android
- ^ tor-package-archive android
- ^ Rogue Nodes Turn Tor Anonymizer Into Eavesdropper's Paradise
- ^ https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
- ^ https://www.torproject.org/docs/faq.html.en#WarningsAboutSOCKSandDNSInformationLeaks
- ^ Low-cost Traffic Analysis of Tor.(pdf)
- ^ ScriptSafe - Google Chrome
- ^ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc6.2
- ^ a b “警察庁有識者会議:サイト管理者が通信遮断を 匿名悪用で” (2013年4月18日). 2013年5月3日閲覧。
- ^ “NPA to urge ISP industry to help site administrators block users of anonymity software” (2013年4月18日). 2013年5月3日閲覧。
- ^ “日本の警察庁、匿名化ツール「Tor」のブロックをサイト管理者に促す” (2013年4月22日). 2013年5月3日閲覧。
- ^ 匿名化ツール「Tor」ユーザーの身元が特定された可能性 ソフト更新を呼びかけ IT MECIA 2014年8月4日
- ^ [1]
- ^ 【Bloomberg Businessweek特約】【BusinessWeek特約】中国、建国60周年でネット検閲をさらに強化| nikkei BPnet 〈日経BPネット〉
関連項目
- Bitmessage
- Tails
- Whonix
- 深層Web - 通常の検索エンジンが収集することができない情報。
- ダークネット - 深層Webの一部。特殊な環境で接続できる暗号化されたネットワーク。
- ダークウェブ - ダークネットの一部で、ダークネット・マーケットをはじめとするアングラ系。
- ダークネット - 深層Webの一部。特殊な環境で接続できる暗号化されたネットワーク。
- Ahmia - Torの隠し機能。クリアネット用検索エンジン
- 通信の秘密
- ノーログポリシー
- VPN
- プロキシ
- DNS over HTTPS
- プライバシー重視の検索エンジン
- プライバシーモード
- 諜報活動
外部リンク
公式
Hidden Serviceの例
Hidden Service(onionドメイン)の接続はTor本体及びSOCKS4aもしくはSOCKS5に対応したローカルプロキシが必要。
- Tor公式サイト群(onionドメイン一覧)
- ダークウェブ地図~torの歩き方2020年 リンク集(onionドメイン一覧)
- DuckDuckGo
- ProtonMail