Tor
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

中華人民共和国(中国)は、2009年9月30日の建国60周年記念式典に併せるかたちでインターネット検閲を強化し、Torを始めとする類似技術を用いたグレート・ファイアウォール(中国の検閲システム)回避を行う者の摘発、Tor公式サイトへのアクセス遮断、Torリレーノードへのアクセス遮断などを強化した[6]

これに対抗するため、Torプロジェクトでは、Torリレーノードとなってくれるボランティアの増強を呼びかけている。たとえISPに規制(通信を遮断)されても、IPアドレスが公開されていないTor Bridgeを利用すればこれらの規制を回避することが可能であり、Torへのアクセスが禁止されている非民主主義的な国内も利用可能である。
機能.mw-parser-output .tmulti .thumbinner{display:flex;flex-direction:column}.mw-parser-output .tmulti .trow{display:flex;flex-direction:row;clear:left;flex-wrap:wrap;width:100%;box-sizing:border-box}.mw-parser-output .tmulti .tsingle{margin:1px;float:left}.mw-parser-output .tmulti .theader{clear:both;font-weight:bold;text-align:center;align-self:center;background-color:transparent;width:100%}.mw-parser-output .tmulti .thumbcaption{background-color:transparent}.mw-parser-output .tmulti .text-align-left{text-align:left}.mw-parser-output .tmulti .text-align-right{text-align:right}.mw-parser-output .tmulti .text-align-center{text-align:center}@media all and (max-width:720px){.mw-parser-output .tmulti .thumbinner{width:100%!important;box-sizing:border-box;max-width:none!important;align-items:center}.mw-parser-output .tmulti .trow{justify-content:center}.mw-parser-output .tmulti .tsingle{float:none!important;max-width:100%!important;box-sizing:border-box;align-items:center}.mw-parser-output .tmulti .trow>.thumbcaption{text-align:center}}EFFによる概念図

Torは接続経路を匿名化する技術であり、通信内容を秘匿化するものではない。Torでは経路の中間に限り暗号化を行っているが、経路の末端では暗号化が行われていない。通信内容の秘匿まで行いたい場合は、TLSなど(HTTPSSMTP over SSLなど)を用いて、別途暗号化を行う必要がある。しかし、Torの機能として後述のOnion ServiceというTorサーキット上でサービスをホストする機能があり、これを用いれば末端の通信も暗号化される。
トラフィックの動作EtherApe(英語版)を用いたTorネットワークのスクリーンショット

Torは、Microsoft WindowsmacOSLinux等の各種Unix系OSで動作する。「オニオンルーティング」と呼ばれるカプセル化技術により、複数のノードを経由させて通信を行い、通信を匿名化する。暗号化が、「あたかもタマネギの皮のように、1ホップごとに積み重ねられること」が名前の由来である。TCPで通信が可能で、UDPICMPなどの通信プロトコルは使用することができない。

通信を秘匿するにあたって、まずTorは各ノード間に回線を構築する。このとき、ユーザは各ノードと共通鍵を共有する。この鍵はユーザと1つ1つのノードのみが共有している。回線構築後は、この回線を使って通信を行う。データは先述の共通鍵を使って暗号化されるが、このとき、データは終端ノードから順番に暗号化される。ユーザはこのデータを構築した回線に渡し、各ノードは共通鍵を用いて、1枚ずつ暗号化の層を剥いでいく。こうすることで、終端ノード以外はデータの内容を読み取ることができなくなる。
Torのデザイン

接続元がオニオンプロキシ (OP) を立て、オニオンルータ(OR、ノード)経由で本来の宛先へ接続する[7]。OPはユーザの複数のTCPストリームを受け取り、それらを多重化、ORがそれらを宛先までリレーする。

それぞれのORは、長期のidキーと、短期のオニオンキーを維持している。前者はルータディスクリプタに署名するのに、後者は回線を構築する際や、別の短期のキーを作るときのリクエストを復号するのに使われる。短期のキーは漏洩したときの影響を小さくするため、一定期間ごとに交換されている。関連項目のオニオンルーティングも参照。
セル

セルとは、TLS 接続を流れるデータの単位で、512バイト[8]。ヘッダとペイロードを持ち、ヘッダに回線id (circID) が含まれる。これは、単一の TLS 接続で、複数の回線を多重化できるため、回線を特定するための識別子である。

セルはコントロールセルとリレーセルの2種類があり、前者は受け取ったノードによって処理されるコマンドを伝達し、後者は接続元から宛先へのデータの受け渡しに使われる。リレーセルは、circID の他に、streamID、チェックサム、リレーコマンド等を持つ。リレーセルのヘッダとペイロードの全ては、暗号化されて送信される。
回線の構築

以下は、TorクライアントAlice(発信元)から、オニオンルータBob、Carolまでの回線を構築する際の説明である[9]

Aliceは、あらかじめ得ているディレクトリリストの中から、無作為的にBobとCarolを選択する(実際は最初のノードは2、3ヶ月同じ)。

Alice→Bob: Alice は create cell(セルに回線構築要求コマンドを乗せたもの)を送信し、回線構築の要求を行う

このとき、Alice は今までに使われていない circID C A B {\displaystyle C_{AB}} を発行する

ペイロードは Bob のオニオンキーで暗号化された、DH ハーフハンドシェイクを含んでいる ( g x {\displaystyle g^{x}} )


Bob→Alice: Bob は created cell(セルに構築完了を通知するためのコマンドを乗せたもの)の中に g y {\displaystyle g^{y}} と共通鍵 K = g x y {\displaystyle K=g^{xy}} のハッシュを積んで送る

AliceとBobは共通鍵 K 1 = g x 1 y 1 {\displaystyle K_{1}=g^{x1y1}} を共有できた

以降、Alice-Bob間の通信はこの共通鍵で暗号化されて行われる




Alice→Bob: Alice は relay extend cell(セルにサーキットを延長する要求を乗せたもの)を送信する

この中に次の OR (Carol) のアドレスが含まれており、Carol のオニオンキーで暗号化された g x 2 {\displaystyle g^{x2}} も含まれる


Bob→Carol: Bob はハーフハンドシェイクを create cell に入れ、Carolに送信する

このとき、Bob は今までに使われていない circID C B C {\displaystyle C_{BC}} を発行する


Carol→Bob: created cell に共通鍵のハッシュを積んで送る

Bob は C A B {\displaystyle C_{AB}} と C B C {\displaystyle C_{BC}} を対応付けている


Bob→Alice: Carol が created cell を返した場合、ペイロードを relay extended cell に入れて Alice に返す

Alice と Carol は共通鍵 K 2 = g x 2 y 2 {\displaystyle K_{2}=g^{x2y2}} を共有できた

以上の手続きは一方向エンティティ認証、すなわち、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 が受信する場合、各ノードは自分にセルが回ってきたときに、ペイロードを暗号化していく。
ランデブーポイントとOnion Service

.onionで終わるドメインの一覧については「Onionドメインの一覧」をご覧ください。
A Tor non-exit relay with a maximum output of 239.69 kbit/s

Torの特徴として、Tor経由でしかアクセス出来ない秘匿されたOnion Service (旧 Hidden Service (秘匿サービス))が存在する。これにより、サーバのIPアドレスを明かさずに各種 TCP のサービス(WebサーバメールサーバIRCサーバなど)を運用することが可能である。これは、.onionの識別子を持つ、特殊な疑似アドレスを持たせることにより、特定のIPアドレスと結びつけることなく、Torを実行させているノード同士が接続することができる。一般のWebサイト等にTor経由で接続するのとは異なり、Onion Serviceは深層Webの一角を成すダークネットに含まれ出口ノードは存在しないし、中継ノードが通信の内容を見ることは不可能である。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:105 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef