見出し画像

ダークウェブを支えるTorという技術(364号)

ダークウェブの主な利用者はサイバー犯罪の当事者(犯罪者側)ですので、身元がバレることを恐れます。
そのため、犯罪者同士の連絡や情報共有には身元が(ほぼ)ばれないダークウェブが利用されます。

ダークウェブというのは、インターネット上にありながら、特殊な通信方式を使うことによって、どこからアクセスしたかという情報をほぼ隠蔽できる仕組みになっています。

前回は、ダークウェブの存在理由について書きました。

今回はそのダークウェブの参加者を警察などの捜査機関から隠蔽可能としている技術であるTor(トーア)について主に技術面からお話をします。


発信元と送付先がわかればヤバい通信もある

一般に重要な通信内容は暗号化されます。
これは、第二次大戦の時代からそうです。

ですが、いくら暗号化しても防ぎきれない情報があります。
それは、誰から誰に出したのか?つまり、発信元と送付先の情報です。

特に軍事関連では、どこからどこへの発信かがわかっただけで重要性がバレてしまうケースも考えられます。
そのため、発信元や送付先を秘密にできる通信方式の研究が行われていました。

その研究の成果のひとつが今回のメインテーマであるTor(トーア)です。
TorはThe Onion Routingの略で日本語なら「たまねぎルーティング」です。

Torは多重化で発信元を守る

広大なインターネット世界で相手サーバを見つけるのは実は大変です。
どこに目的としているサーバがいるのか?そこに辿り着くにはどういったルートを取ればいいのか?といったことを決めることをルーティングと呼びます。

ルーティングでは、送付先の情報に加えて、誰がそのサーバに繋ぎたがってるか?という情報も必要です。

依頼をするのは、何かの情報を返して欲しいからです。

Googleで検索をするのは、Googleの検索結果が欲しいからです。
オンライン銀行で振込をしても結果を教えてくれなければ、使いものになりません。

だから、依頼をする時には発信元(返信するサーバから見れば依頼元)の情報が必須となっているのです。

ですが、最初に書いたような発信元の情報を知られたくない場合はこれでは困りますよね。

これが、郵便だったらいくつかの方法が思いつきます。

例えば封筒を二重にすれば、どうでしょう?
外側の封筒には自分の住所氏名を書かず、内側に記名するわけです。
これなら、配達する人に発信者を知られず、開封した人には伝えられます。

この多重化による匿名化が「たまねぎルーティング」の基本的な考え方です。

「たまねぎルーティング」の「たまねぎ」はたまねぎの皮(というのか?食べる部分のことです)のように何重にもなっていて、内側の情報を隠していることから名付けられたそうです。

Torは皆の力で隠蔽する

Torにはもう一つの大きな特徴があります。
それは送付経路の(無意味な)複雑化です。

通常の通信なら、発信元から送付先に、最短ルートでパケットを送ります。
わざわざ迂回する必要などないからです。

ですが、どこからどこへの発信かを隠したい時にはこれは困ります。

そこで、わざと無駄に迂回したルートを作り、ボランティアサーバ(ノードと呼ばれます)に中継をしてもらって、わざと迂回してから、目的サーバに辿り着くようにします。

ボランティアサーバというのは、文字通りボランティアでTorネットワークを支えてくれているサーバ達です。ボランティアで運営している理由は様々ですが、個人運営のサーバもあれば、会社が好意で提供しているサーバもあります。

また、送信元の秘密を守るためのボランティアサーバですので、通常なら残すはずの通信記録などは一切残さないというのが一般的です。

こういった数千(今や数万かも)のボランティアサーバが中継を行うことで、さらに発信元の特定を難しいものにしています。

もっとも、ボランティアサーバの存在は捜査機関にとっては頭の痛い話です。
悪意を持つ犯罪者を追跡しようとして、ボランティアサーバを押収したとしても、記録が残っていないので、発信元の特定ができないのです。

たまねぎルーティングの実際

たまねぎルーティングでは、この多重化と迂回路という二つのアイデアをどう使うのでしょうか?

まず、多重化ですが、電子データは封書ではありませんので、封筒の多重化の代わりにデータの暗号化を行います。

次に迂回路ですが、こちらはTorネットワークに属しているボランティアサーバ(ノード)から3つをランダムに選び、迂回路の中継をお願いします。

 発信元 
  ↓
 ノードA
  ↓
 ノードB
  ↓
 ノードC
  ↓
 目的サーバ

さて、実際の処理はこんな感じになります。

 1. 発信元は送りたいデータを4重に暗号化し、ノードAに送ります。
 2. ノードAは受信した暗号を1段階だけ解きます
  (3重暗号の状態になります)
 3. それをノードBに送ります。
 4. ノードBも1段階だけ暗号を解きます。
 5. それをノードCに送ります。
 6. ノードCも1段階だけ暗号を解きます。
 7. それを目的サーバに送ります。
 8. 目的サーバが最後の暗号を解くと、発信元の情報が得られます。

この方式ですと、ノードA、ノードBには最終サーバのことを知られず、ノードB、ノードCは発信元のことを知られません。
つまり、発信元は途中のボランティアサーバであるノードに自身の情報を知られずに安全に通信が行えるというわけです。

ただし、この前提はボランティアサーバが通信内容を暴露しない前提でのみ有効です。
もし3つのノードが結託すれば、どんなルートでデータが流れたかわかりますので、発信元を特定することは可能です。

なぜ警察でも手を焼くのか?

警察の権限を使えば、ボランティアサーバに命令をして、全てのログなどを提出させれば特定はできそうなものです。

ですが、これは現実には相当にハードルが高いのです。

多くのボランティアサーバは善意の内部告発者保護が目的ですので、一部に悪意の利用者がいたからといって、それを特定することができません。

また、Torの推奨ルールでは通信記録などは残さないことになっていますので、大半のボランティアサーバには通信記録が残っていませんので、無理に押収しても何も情報が得られません。

何よりも、ボランティアサーバの多くは善意で運営されていますし、法に違反しているわけでもありません。警察は彼らに命令をできる立場にないのです。

さらに面倒なのはインターネットには国境がないという点です。
警察という組織は国家に属していますから、他国のサーバに口出しなどできません。

とどめはTorの安全性が数学をベースとした暗号の強度に根ざしている点です。国家権力をかざしたところで、数学には勝てるはずがありません。

まとめ

Torという技術があります。

当初は軍事用途で研究されたものだそうですが、現在では通信の発信元と送付先の隠蔽を行う技術として利用されています。

Torでは、データの多重暗号化とノードを用いた無駄な迂回路を用いています。
そのため、発信元の特定が事実上行えません。

Torは合法的な利用方法(内部告発など)でも活用されていますので、有用な技術と言えます。

ですが、同時にダークウェブなどの非合法な組織にとっても便利なものとして利用されているのも事実で、なかなか世の中うまくいかないものです。

今回はTorという仕組みについてできるだけ簡単にお話をしたつもりですが、いかがだったでしょうか?
今回はかなり技術的な内容にならざるを得ない部分も多くわかりにくかったかもしれません。
「これではわからん」「もっと詳しく」「もっとシンプルに」などご要望や感想などございましたら是非ご教示ください。

次回もお楽しみに。

このNoteは私が主宰するメルマガ「がんばりすぎないセキュリティ」からの転載です。
誰もが気になるセキュリティに関連するトピックを毎週月曜日の早朝に配信しています。
無料ですので、是非ご登録ください。
https://www.mag2.com/m/0001678731.html

いいなと思ったら応援しよう!