その通信、Torを経由していませんよ|NordVPNのOnion over VPNを解説

本記事はプロモーションを含みます

NordVPNにはOnion over VPNという匿名化機能があります。NordVPNの公式サイトを見ると、いわゆる「Tor over VPN」として動作すると解説されています。

NordVPN公式サイトから引用した、Onion over VPNの解説画像。公式サイトでは「Tor over VPN」のように通信すると解説している。
Onion over VPNの説明(公式サイトから引用)

なるほど、これを見るとTor経由で送信先に到達するように見えますね。NordVPNを紹介しているブログ記事を見ても、大抵はOnion over VPNについて『Torを経由するので匿名性が高い』と解説しています。

でもそれ本当ですか?

NordVPNのOnion over VPN通信をキャプチャする

確かめる方法は簡単です。実際にOnion over VPNで通信し、通信先でパケットキャプチャして送信元IPアドレスを確認します。Torの出口ノードのIPアドレスは公開されていますから、キャプチャした際の送信元IPアドレスがTorの出口ノードのIPアドレスリストに含まれているのか確認すれば良いでしょう。

参考:check.torproject.org/exit-addresses

Onion over VPNは次のように接続しています。赤枠の箇所をクリックしてOnion over VPNで接続しました。Netherlands Onion #6というサーバーを使っているようです。

NordVPNアプリ画面。Onion over VPNで接続し、サーバーは「Netherlands Onion #6」であることが分かる。
Onion over VPNで接続している様子

パケットキャプチャするサーバーは手頃な価格で利用できるVPSを使うことにしました。幸いなことにConoHa VPSには1時間プランがあるので、メモリーを1GB搭載しているUbuntu Linuxが動作するVPSを契約しました。

HTTP/HTTPSがTor経由で通信するか確認する

Onion over VPNでもっとも利用されていると思われるHTTP/HTTPSを確認します。HTTP/HTTPSとはWEB通信です。皆さんが今ご覧になっているこのページもHTTPSで通信しています。

まず最初にVPSで次のコマンドを実行してパケットキャプチャを開始します。ポート番号はHTTPの80番とHTTPSの443番を指定します。

tcpdump -i eth0 -tttt -nn tcp and port 80 or 443

次にNordVPNを実行しているWindows端末でPowerShellを立ち上げ次のコマンドを実行します。IPアドレス(160.251.15.172)は今回利用しているVPSのグローバルIPアドレスです。

Test-NetConnection 160.251.15.172 -P 80
Test-NetConnection 160.251.15.172 -P 443

パケットキャプチャの結果は次のとおりです。上がHTTPで下がHTTPSです。

2023-08-11 18:36:52.442188 IP 192.42.116.200.15009 > 160.251.15.172.80: Flags [S], seq 4011548622, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 3686880582 ecr 0], length 0
2023-08-11 18:37:20.843815 IP 185.220.101.20.25136 > 160.251.15.172.443: Flags [S], seq 3873586014, win 65535, options [mss 1460,sackOK,TS val 3532875786 ecr 0,nop,wscale 9], length 0

送信元IPアドレスは「192.42.116.200」「185.220.101.20」です。

Torの出口ノードのIPアドレスリストを確認すると、どちらのIPアドレスもリストに含まれていました。つまり、Tor経由の通信であるということです。

ExitAddress 192.42.116.200 2023-08-11 08:04:33
ExitNode 8E1CB2E2467989A9369284E09669AD0FD691075E
Published 2023-08-10 19:57:56
LastStatus 2023-08-11 07:00:00
ExitAddress 185.220.101.20 2023-08-11 08:28:29
ExitNode 82CD1F493545A0FA89EC05593B64B6B628DEADB7
Published 2023-08-10 22:01:25
LastStatus 2023-08-11 08:00:00

この結果からHTTP/HTTPSはTorを経由する「Tor over VPN」で通信していることが分かります。

SSHがTor経由で通信するか確認する

次にSSHを確認することにしました。SSHはリモートログインで使われる通信です。

まず最初にVPSで次のコマンドを実行してパケットキャプチャを開始します。ポート番号は22番を指定します。

tcpdump -i eth0 -tttt -nn tcp and port 22

次にNordVPNを実行しているWindows端末でPowerShellを立ち上げ次のコマンドを実行します。前回のHTTP/HTTPS通信のときと異なるのはポート番号だけです。

Test-NetConnection 160.251.15.172 -P 22

パケットキャプチャの結果は次のとおりです。

2023-08-11 18:42:34.349405 IP 213.232.87.219.50341 > 160.251.15.172.22: Flags [S], seq 903778852, win 64860, options [mss 1380,nop,wscale 8,nop,nop,sackOK], length 0

送信元IPアドレスは「213.232.87.219」です。

Torの出口ノードのIPアドレスリストを確認すると、このIPアドレスは見当たりません。つまり「Tor経由ではない」ということです。

では、このIPアドレスは何でしょうか?IPアドレスをWHOISで調べてみると次の回答がありました。

inetnum:        213.232.87.0 - 213.232.87.255
netname:        NORDVPN-L20190921
descr:          Packethub S.A.
country:        NL
org:            ORG-PS409-RIPE
admin-c:        AG25300-RIPE
tech-c:         AG25300-RIPE
status:         ASSIGNED PA
mnt-by:         de-tt1data-1-mnt
mnt-routes:     de-tt1data-1-mnt
created:        2019-09-21T12:49:37Z
last-modified:  2020-12-19T11:43:54Z
source:         RIPE

「213.232.87.219」はNordVPNが所有するIPアドレスのようです。

あれれ?ちょっと待ってください。気になる箇所があります。countryが「NL」となっています。つまり、Netherland(オランダ)のIPアドレスということです。

うーん…この国の名前、どこかで見たような気がします。

思い出しました!わたしが接続しているVPNサーバーは「Netherlands Onion #6」というサーバーです。

NordVPNのアプリ画面。Onion over VPNで接続中のサーバーがNetherlands Onion #6」であることを確認できる。
「Netherlands Onion #6」に接続している

もしかして「213.232.87.219」は、わたしが接続している「Netherlands Onion #6」のIPアドレスではないでしょうか?確認するためにOnion over VPNで接続中のWindows端末でWiresharkというパケットキャプチャツールを実行してみました。

以下のキャプチャはそのときのものです。WireGuardで「213.232.87.219」と通信しています。予想通り、これは「Netherlands Onion #6」のIPアドレスです。

Onion over VPNで接続中のパケットキャプチャ。
Onion over VPNで接続中のパケットキャプチャ

つまり、Onion over VPNで接続中にSSH接続するとTorを経由せずVPNサーバーが直接アクセスするということです。

RDPがTor経由で通信するか確認する

もう結果は分かっていますがRDP(Remote Desktop Protocol)も確認してみましょう。RDPはWindowsマシンにリモートアクセスする際に利用されるリモートデスクトップ通信です。

VPSで次のコマンドを実行して着信を待ちます。

tcpdump -i eth0 -tttt -nn tcp and port 3389

次にNordVPNを実行しているWindows端末でPowerShellを立ち上げ次のコマンドを実行します。IPアドレスは今回利用しているVPSのグローバルIPアドレスです。

Test-NetConnection 160.251.15.172 -P 3389

結果は次のとおりです。

2023-08-11 19:08:09.082695 IP 213.232.87.219.50567 > 160.251.15.172.3389: Flags [S], seq 2307983898, win 64860, options [mss 1380,nop,wscale 8,nop,nop,sackOK], length 0

送信元IPアドレスは「213.232.87.219」です。やはりRDPもTorを経由していません。このあとFTPなど別のポート番号も試してみましたがやはり送信元IPアドレスは「213.232.87.219」でした。

まとめ

まとめると、NordVPNのOnion over VPNはHTTP/HTTPSについてはTor経由で接続する「Tor over VPN」で通信しますが、それ以外のプロトコルについてはVPNサーバーが直接接続しているようです(全ポートを確認したわけではないですが、おそらくHTTP/HTTPSだけ)。

実はこの結果は最初から予想していました。というのも、いまのところTorはTCPのみサポートしているためICMPやUDPは「Tor over VPN」で通信できません。ですからOnion over VPNを使ったとしても、すべての通信がTorを経由するというのは無理筋な話というわけです。

SSHについてはTorを経由させる方法があるのですが、それはクライアント側(接続元)でプロキシ設定する必要があるので、Onion over VPNを使っているからといってSSH接続がTor経由になるはずがないんです。

普通に考えればTor経由になる通信は限定されるというのは当然なのですが、公式サイトでも詳しく解説していないので全ての通信がTor経由になるものと誤解されている方が多いのではないでしょうか。

ですから、Onion over VPNは仕様をよく理解した上で利用されることをおすすめします。

Tor経由でSSH接続したいという方は次の記事で詳しく方法を解説しています。興味のある方はご覧ください。

2 COMMENTS

匿名

いつも勉強させてもらってます。TorについてですがAppStore のアプリにTorがあるのですがこれはパソコンのTorと同じ機能でしょうか。もしご存知でしたら教えて下さい。

返信する
マスター

コメントありがとうございます。

Onion Browserを指していらっしゃるかと思います。
こちらはiOSの制限などにより、現時点ではパソコンのTor Browserと同じ機能は提供されません。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。
また、スパム対策のため投稿して頂いたコメントが表示されるまで時間がかかる場合がありますが、ご了承ください。