本記事はプロモーションを含みます
PIA(Private Internet Access)にはShadowsocksという匿名化機能があります。Shadowsocksとはどのような匿名化技術なのか、利用する上で注意するべき点について解説していきます。
Shadowsocksは何か?
PIAのShadowsocksは2つのVPNサーバーを経由して通信する匿名化技術(マルチホップ)です。

このようにユーザーは1つ目のサーバーとVPN接続し、そこから2つ目のVPNサーバーに転送しています。本記事ではShadowsocksで匿名性が向上する理由とShadowsocksを利用する上での注意点について解説していきます。
Shadowsocks通信をキャプチャしてみる
ではShadowsocksで接続した後にVPSに通信してみて、その際のIPアドレスがどのようになっているのかVPSでキャプチャしたいと思います。
VPSは1時間単位で利用できるConoHa VPSを使います。
Shadowsocksの使い方はNordVPNのDouble VPNやSurfsharkのMultiHopと比べて少し分かり辛いです。まずはVPNアプリの設定画面を開きます(赤枠の箇所をクリックします)。

設定画面が表示されるので左メニューの[マルチホップ]をクリックして「マルチホップと難読化」にチェックを入れます。プロキシの箇所は「Shadowsocks」を選択した状態で編集ボタンをクリックします。

次にどのサーバーを経由させるのか決めます。今回は日本のサーバーを選択してみました。

設定を変えたら再接続する必要があります。まずは設定画面を閉じます。

アプリ画面の赤枠の箇所を2回クリック(1度目は切断、2度目は接続)して再接続しましょう。

再接続するとこのように表示されます。最初に「シャドウソックス経由」と書かれている日本のVPNサーバーに接続し、そこからアルメニアのVPNサーバーに転送されます。最終的にIPアドレスはアルメニアの「185.253.160.13」に変換されます。

HTTPS通信をキャプチャしてIPアドレスを確認する
まずはVPSで次のコマンドを実行してパケットキャプチャを開始します。
tcpdump -i eth0 -t -nn tcp and dst port 443
クライアント端末でもWiresharkを起動してパケットキャプチャを開始します。そしてnetcatを実行します。「118.27.37.32」は今回利用しているVPSのグローバルIPアドレスです。
nc 118.27.37.32 443
netcatを実行した際のクライアント端末のパケットキャプチ結果は次のとおりです。送信先IPアドレス(1つ目のVPNサーバー)は「154.47.20.241」です。

VPSのパケットキャプチャ結果は次のとおりです。送信元IPアドレス(2つ目のVPNサーバー)は「185.253.160.13」です。

このように、ユーザーが接続しているVPNサーバーとは別のVPNサーバーがVPSにアクセスしていることがわかります。
1つ目のサーバー(ユーザーが接続するVPNサーバー) | 154.47.20.241 |
2つ目のサーバー(アクセス先から見える送信元) | 185.253.160.13 |
HTTP/HTTPS以外の通信もDouble VPNで通信するのか
Onion over VPNの調査をおこなった際はHTTP/HTTPS通信のみTor経由となり、それ以外の通信はVPNサーバーが直接アクセスしていることを確認しました。
それではDouble VPNはどうなのでしょうか?
それを確認するために21,22,23,80,443,3389,12345番ポートに宛ててクライアント端末からnetcatで接続を試みました。結果は以下のパケットキャプチャの結果のとおり、すべて2つ目のVPNサーバーを経由してアクセスしていることが確認できました。

また、UDPやPING(ICMP)についてもDouble VPNで通信していることが確認できています。
Double VPNを使うと匿名性が向上する理由
タイミングによるユーザーの推測が難しくなる
ここまで確認したとおり、Shadowsockを使うとアクセス先から見ると2つ目のVPNサーバーから通信が来ているように見えます。しかしユーザーがアクセスしているのは1つ目のVPNサーバーです。
個人を特定するための方法のひとつにタイミングによる方法があります。たとえばvpnhack.netのアクセスログに録されているIPアドレスがISPのログにもVPN接続として記録されていて、両方のタイムスタンプが一致すればVPN経由でvpnhack.netにアクセスしたものと推測できます。
高度で大規模な組織ではそのような追跡がおこなわれていますが、Shadowsockを使うとISPに記録されるIPアドレスとアクセス先に記録されるIPアドレスが異なるため、そのような追跡方法が難しくなります。
ユーザーの特定が難しい
ユーザーが1つ目のサーバーにアクセスすると、IPアドレスはVPNサーバーのIPアドレスに変換されてから2つ目のVPNサーバーに転送されます。
2つ目のVPNサーバーから見ると、転送されてきた通信は特定のユーザーに紐付いていません。複数のユーザーの通信がひとつの通信として次々と送られてくるので個々の通信を見分けることは不可能に近いと言えます。しかも、それが複数のサーバーから転送されてくるので、事実上サーバーを辿って発信者を特定することは不可能です。
そのため、Shadowsockは非常に匿名性が高いと言えます。
まとめ
Shadowsockは2つのVPNサーバーを経由させることで、単独でVPNサーバーを利用するときに比べて格段に匿名性が向上します。タイミングによる推測を避け、ユーザーの特定も難しいためDouble VPNは非常に高い匿名性を提供すると言えます。
しかも通信速度が極端に低下することともないため、使いやすさという点でも優れています。また、NordVPNやSurfsharkと比較してPIAを気に入っているのは次の2点です。
- 1つ目と2つ目のサーバーの組み合わせに制限がなく柔軟
- LinuxでもGUIアプリが使える
そしてPIAはNordVPNと同じく第三者機関によってノーログポリシーが検証されている数少ない匿名VPNサービスです。そのため匿名性という点では最高レベルでしょう。
PIAはアプリも非常に使いやすいですから、高い匿名性を提供するVPNを探している方におすすめです。