(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【サルでも分かる】The Onion Router入門

スポンサーリンク

f:id:mtiit:20190407162559p:plain

The Onion Routerとは?

The Onion Routerとは匿名性を維持した通信を行う規格またはソフトウェアを指します。
Torと略されることもあります。

本記事では

オニオン?タマネギ?匿名性?

といった方でもTorについて分かった気になるよう分かりやすく解説しています。

ちなみに似ている技術であるVPNについても別記事にて簡単に解説しています。

通信を匿名で行いたい

例えばクライアントAからウェブサーバAにアクセスをすると、ウェブサーバAにはクライアントAのIPアドレス等の情報がログとして残ります。
f:id:mtiit:20190407152613p:plain

それを避ける一般的な方法として、プロキシサーバやVPNサーバといった中継ポイントを介してアクセスする方法があります。
f:id:mtiit:20190407152920p:plain
そうすることにより、ウェブサーバAのログにはVPNサーバAのIPアドレスが記載され、ウェブサーバAとクライアントAの関係が秘匿化されます。

しかし、この大前提に「クライアントAはVPNサーバAの運営元を信頼していること」があります。
VPNサービスを提供している側はウェブサーバAとクライアントAの間で接続があったことは把握できます。

VPNプロバイダには情報を握られているのか

では中継サーバに情報を握られないようにしつつ匿名でWebサービスを利用できないのでしょうか?

それを実現する仕組みがTorNetworkです。

匿名性を実現するポイント

結論から書きますが、肝は中継サーバをランダムに複数選定する点です。プロキシやVPNの場合はこれが一つです。

以下がイメージ図です。
f:id:mtiit:20190407154007p:plain
https://fossbytes.com/everything-tor-tor-tor-works/ より画像を抜粋

Torのクライアントは中継サーバとしてEntry guradMiddle relayExit relayを選定します。そして、それぞれの箇所で復号していくために、クライアントで最初に複数回暗号化します。

ちなみにこの中継サーバはボランティアによって運用されています。Torの開発も非営利団体のTor Project Inc.が行なっています。

リレー機能を実現するプログラムをボランティアで動かしているのか

なぜ匿名化ができるのか

データの流れは

Client〜Entry gurad〜Middle relay〜Exit relay〜WebServer

です。

それぞれを見て行きます。

Client〜Entry guard

まず、この一つ目の中継サーバ(Entry gurad)はClientのIPアドレスと次の転送先情報を知ることができます。しかし、例えばメッセージの中身などの情報は暗号化されているので確認できません。

つまり、Entry guradが知っていることは以下の2点です。

  • ClientがTorを使ってメッセージを送信したこと
  • メッセージをMiddle relayに転送すること
Entry guard〜Middle relay

二つ目の中継サーバ(Middle relay)は、転送元のEntry guardの情報とその転送先であるExit relayの情報を知ることができます。しかし、ClientのIPアドレスなど、Clientに関する情報は取得できません。

つまり、Middle relayが知っていることは以下の2点です。

  • Entry guradがメッセージを送信したこと
  • メッセージをExit relayに転送すること
Exit relay〜WebServer

三つ目の中継サーバ(Exit relay)は、転送元のMiddle relayの情報とその転送先であるWebServerの情報を知ることができます。順々に暗号を外していき、最後のExit relayでは全ての暗号化情報を復号化するのでメッセージの内容まで確認することができます。ただし、それをどのClientが送ったのか、もっと言えばどのEntry guardが送ったのかさえ分かりません。

つまり、Exit relayが知っていることは以下の2点です

  • Middle relayがメッセージを送信したこと
  • メッセージの内容

よってどの中継サーバも、「誰が」「どんなメッセージを送信したのか」が分からないようになっています。
逆に言えば、この全ての中継サーバが手を組めば「誰がどんなメッセージを送信したのか」が分かってしまいます

マイナーの多数を占めれば好き勝手できるブロックチェーンに通じているね

Torの使い方

Windowsはもちろん、MacOSやLinuxでも専用ブラウザをインストールすれば利用できます。
ただし、 中継サーバを経由することから通信速度が遅くなるデメリットもあります。

また、Torのブラウザを使用するとTorネットワーク内でのみ利用可能な.onionのWebサイトにアクセスできます。

たとえば、以下は通常ブラウザではアクセスできませんが、Torブラウザならアクセス可能なFacebookサイトです。

https://www.facebookcorewwwi.onion

ダークウェブってやつだ...

終わりに

本記事では、Torで匿名化が達成できる流れを簡単に説明しました。

Torは接続経路を匿名化するものなので、通信内容の秘匿化はTLS/SSLなどで別途行う必要がある点も、合わせて覚えておくとよいかと思います。

本記事が、The Onion Routerの技術をざっくり理解するための一助になれば幸いです。
以上、ご参考ください。