
皆さんはTorの仕組みを本当にわかっていますか?ここではtorの仕組みをたった画像1枚で表しました。Torの概要はこれだけでわかります。
結論、Torを利用してもIPアドレスや通信データが完全に守られるわけではありません。Torと併用してVPNを利用することをお勧めします。当サイト管理人はTorを利用する際にはNordVPNを必ず併用しています。
Torの仕組み
ここでの用語

PC
あくまで例です。Torが使える端末全体と考えていただければいいです。(iPhoneとか)

Guard Relay(GR)(ガードリレー)
PCと直接通信をするサーバーです。(リレーとかガードとか言われますが、サーバーと考えていいと思います。)Torネットワークの入り口となります。

Middle Relay(MR)(中間リレー)
GRとERの仲立ちをします。

Exit Relay(ER)(出口リレー)
SVと直接通信をするサーバーです。Torネットワークの出口となります。

Server(SV)
サーバーです。Webサーバーと考えてくれればわかりやすいと思います。

From .. To ..
データがどこから来て(From)、どこに向かうか(To)を示しています。
この画像ではデータがPCから来てGRへ向かっていることを示します。

Encrypted data と NOT Encrypted data
やりとりしたデータ(ex.ログインするためのデータ)が保護されている場所(Encrypted data)、保護されていない場所(NOT Encrypted data)を示しています。

Protected PC ip と NOT Protected PC ip
どこから(ここではPC)通信したかわかってしまう部分(NOT Procted PC ip)、わからない部分(Protedted PC ip)を示しています。
Torの概要を1枚で

上の画像がTorの全てです。(もちろん厳密とは言えませんが。)
一つ一つ確認していきましょう。
Torネットワーク全体の流れ
ここではデータがPC→SV→PCへと移動する流れを説明します。
あくまで概要として捉えてください。
※ここではデータはSSL/TLS(ex.https)によって暗号化されていない前提でお話しします。
1.暗号化に必要な鍵の受け渡し

- PCからGRへ鍵を渡す
- PCからMRへGR経由で鍵を渡す。
- PCからERへGR・MR経由で鍵を渡す。
これによって、PCはGR・MR・ERとの通信に必要な鍵を全て持っており、それぞれのGR・MR・ERはPCとの通信に必要な鍵を自分の分だけ持っています。
2.PCがデータを暗号化

PCはデータをERとの鍵、MRとの鍵、GRとの鍵の順番で暗号化していきます。(三重暗号)
3.dataがPCからGRへ

GRでは鍵を使って暗号が一段階解かれます。GRはそのデータをMRへと送ります。(二重暗号)
4.dataがGRからMRへ

MRでは鍵を使って暗号が一段階解かれます。MRはそのデータをERへと送ります。(一重暗号)
5.dataがMRからERへ

ERでは鍵を使って暗号が一段階解かれます。ここで生のデータが現れます。ERはそのデータをSVへと送ります。(暗号なし)
6.dataがERからSVへ
SVでデータの処理がされます。
7.dataがSVからERへ
ERでは鍵を使って暗号が一段階されます。ERはそのデータをMRへと送ります。(一重暗号)
お分かりだと思いますが、これ以降はPC→SVの逆作業をしています。整合性を保つため、写真なしで最後まで載せておきます。
8.dataがERからMRへ
MRでは鍵を使って暗号が一段階されます。MRはそのデータをGRへと送ります。(二重暗号)
9.dataがMRからGRへ
GRでは鍵を使って暗号が一段階されます。GRはそのデータをPCへと送ります。(三重暗号)
10.dataがGRからPCへ
PCはデータをERとの鍵、MRとの鍵、GRとの鍵の順番で復号していきます。(暗号なし)
以上がtorの暗号化、復号化の概要です。
(重要)Torを使用して何が守られて、何が守られないのか
※再掲
ここでのデータはSSL/TLS(ex.https)によって暗号化されていない前提でお話しします。
PC to GR | GR to MR | MR to ER | ER to SV | |
送信データ | ○ | ○ | ○ | × |
発信元 | × | ○ | ○ | ○ |
私が考えるに、通信の暗号化・秘匿化(つまりセキュリティ)においてみなさんが気にするのは
- 送信データが暗号化されているのか
- PCのIPアドレス(つまり発信元)(From ~ ToのFrom部分)が分かるかわからないか
- 暗号化と発信元がどこまでの範囲で守られ、また、守られていないのか
と言うポイントだと思います。
これはtorにとどまらず、VPNやプロキシサーバーの利用にも当てはまると思います。
送信データはERからSVまで守られておらず、発信元はPCからGRまでは守られていません
Torの弱点への対策方法
1.https通信をする
https通信をすることでPCからSVの間で暗号化がされるので、ERはデータを読めませんし、ERからSV間でデータを見られても内容はわかりません。
2.VPNを使用する
VPNを利用することでPC→VPNSV→GR→...SV→...GR→VPNSV→PCと言う通信経路になります。
GRでは発信元がVPNSVと認識されるのでPCの発信元はさらにわかりにくくなります。
もしVPNを利用するのであれば、NordVPNがおすすめです。3年ほどNordVPNを利用していますが、機能面・サポート面ともに満足しています。
NordVPNの利用方法は以下の記事を参考にしてください。
以上です。ご覧いただきありがとうございました。