
ジョニー
インターネットのプライバシーを守る!地域制限をぶち破る!そんなことに使われるのがVPNだ。
だが、キミはどうやってそれが可能になっているか知っているか?
わからない?OKだ!
この記事では、VPNの仕組みをしっかりと解説していくから安心しろ。さあ、テクノロジーの本質をしっかりと理解していくぞ!
もし、キミがまだVPNの基本すら知らないなら、「VPNとは?初心者向けの基本解説」で勉強してから戻ってきな。手加減はしないぜ。

VPNが動作する仕組み


ジョニー
上記の図を見てくれ!VPNの仕組みだいたいこんな感じだが、わからないよな!でも安心してくれ、順を追って説明する!
1. ソフトウェアでのデータ生成


ジョニー
ソフトウェアってのは、キミが毎日使ってるウェブブラウザやメールアプリのことだな。
普段は意識しないが、ソフトウェアは操作をするたびにデータをポンポン生成している。
たとえば、ウェブブラウザで「ラーメン屋 近く」なんて検索すると、そのデータが生成されて、WEBサーバーに向けて「オレに近くのラーメン情報をくれ!」ってリクエストを飛ばすんだ。
このデータは、「アプリケーションデータ」って呼ばれるもので、インターネット通信の基本中の基本になっている。
ここで「HTTPリクエスト」とか「SMTPリクエスト」とかが生まれるんだが、まあその名前は覚えなくてもいい。何が重要かって、ここでデータの旅が始まるってことさ!
2. ソフトウェアからVPNアプリへのデータ送信


ジョニー
図ではソフトウェアからVPNアプリへのデータ送信とだけ記載しているが、その間にもさまざまなことが行われている。
たとえば、ソフトウェアが作ったデータは、インターネットを通して飛んでいく前に、パソコン内で次のような処理されるんだ。
まず、「プレゼンテーション層」というステージで、データが他のコンピュータでも読める言語に翻訳される。英語の本を日本語に翻訳して日本人でも読めるようにするようなものだな。
次に、「セッション層」で通信の準備を固めるんだ。これは、友達と電話で話をするときに、まず「もしもし」とお互いに挨拶を交わしてから話を始めるようなものだ。お互いにちゃんと話ができる準備が整ったら、安心して会話ができるよな。それと同じで、セッション層ではデータを送受信するための「会話の準備」が行われるんだ。
最後に、「トランスポート層」でデータが小さく切り分けられ、TCPかUDPというラベルが貼られる。なぜ切り分けるかというと、データを一塊で送ると途中で問題が発生したとき全部壊れる可能性があるからだな。
で、小分けにしたデータにラベルを貼るのは、運ばれていく途中でバラバラになって、なんのデータかわからなくならないようにするためというわけだ。
これでデータがインターネットを通じて、目的地(WEBサーバー)に届くようになる。
VPNを使わない場合はデータは2での処理後、直接インターネットを通じてWEBサーバーに送られるってわけだ(図のステップ6に相当)。
3. VPNアプリでのデータ暗号化


ジョニー
VPNアプリ(VPNクライアント)は、VPNサービスが提供しているもので、ダウンロードして、パソコンにインストールして使うもののことだ!
ほとんどは、ただVPNアプリでサーバーを選んでボタンをポチッとするだけだと思うが、このとき、セキュリティを高めるための暗号化が行われる。
近頃のVPNアプリではAES-256なんて強力な暗号化が使われているが、これにはインターネットにはびこっているスパイ野郎もお手上げだ!
なんてったってAES-256は、スーパーコンピュータでも解読に数億年かかるっていわれてるぐらいだからな。
暗号化されたデータはさらに「カプセル化」されて、データがしっかり保護されるんだ。
カプセル化ってのは、暗号化したデータをまるで装甲車に入れるようなものだ。鉄壁の防御だろう?
4. VPNアプリからVPNサーバーへの暗号化データ送信


ジョニー
暗号化されたデータが装甲車に乗せられて、インターネットに向けて出発する準備は整った。だが、まだ完璧じゃない。
ここで、インターネットに外部からの侵入を防ぐトンネル…通称VPNトンネルを作ることになる。
このトンネルを作ることで、データは周りから見えない状態で目的地のVPNサーバーに向かうことができるんだ。
外部の連中は、何が運ばれているのかまったく見えなくなるから、データはしっかりと守られるってわけだ。
このVPNトンネルを作り出すのは、IPsec、OpenVPN、WireGuardといった特製のプロトコルたちだ。
こいつらがデータの機密性をしっかりと保証してくれるってわけだな。
プロトコル?一体何だそいつは!そう思ったかもしれないが、プロコトルの詳しい説明は「VPNのプロトコルとは?」に任せてるから、それを見てくれ。
とにかく、このトンネルを通ることで、データは外部からの攻撃やスパイ行為から完全に守られ、誰にも手出しを許さない。
つまり、このトンネルを通ることで、データはさらに安全な旅を続けることができるってわけだな。
「万が一トンネルが破られたどうなるか?」まず、トンネルを破ること自体がほぼ不可能だが、そのさきでデータを守っているのは装甲車だぜ?ハルクだってお手上げだ。
「それでも装甲車だって壊れることがあるだろう?」おいおい、正気か…。OK、装甲車を壊されたとしよう。装甲車の中のデータはどうなってる?そう、暗号化されてるんだ!誰が読めるってんだ!ユリゲラーだって泡を吹くぜ!
安心したか?安心したら黙って次に進め!
5. VPNサーバーでのデータ復号化


ジョニー
トンネルを通りぬけ、データは無事にVPNサーバーまでたどり着いた。
ここでまず行われるのは、「カプセル化の解除」だ。装甲車のハッチを開けて、データを取りだすわけだな。
そして「暗号化」されているデータを元の人間が読める状態に戻す。つまり、データを再び理解できる言葉に戻すんだ。これを「復号化」という。
そのために、使うのが鍵だ。
この鍵は、暗号化のさいに作られているんだが、VPNサーバーに接続している間だけ有効なものになる。通称セッション鍵ってやつだな。
セッションが終わったら、その鍵は二度と使えない。次の接続では新しい鍵が生成されるってわけだ。
まったくVPNってやつは…呆れるほどのセキュリティレベルだぜ。
キミもいい加減、VPNを使うことでセキュリティがとんでもなく上がるのかわかったんじゃないか。
そうそう、いい忘れたが、図の国旗は選べるVPNサーバーを表している。図では日本サーバーを選んでるってことだ。
VPNサーバーを理解するのが難しいかもしれないが、アメリカのVPNサーバーってのは、アメリカに住んでるオレのお袋が愛用しているパソコンだと思ってくれ。
そのパソコンにキミのパソコンをつなげるようなイメージだ。
そしてアメリカ在住のオレのお袋のパソコンを経由して、そのさきのWEBサーバーに向かうってことになる。
念の為にいっておくが、本当にお袋のパソコンにつかながるわけじゃないぞ。あくまでもイメージだ!そこは勘違いするなよ!
つまりVPNサーバーを選ぶっていうのは、各国に設置されているパソコンに接続して、そのパソコンを使わせてもらうようなことだな(※そもそもサーバは、特定の目的のために最適化されたパソコンのこと)。
そう!だからアメリカを選べばキミは今日からアメリカ在住みたいなもの!アメリカ国内でしか見れないドラマだって見れちゃうぜ!
6. VPNサーバーからWEBサーバーへのリクエスト送信


ジョニー
データがVPNサーバーで復号化されたら、次はそのデータが向かうべき最終目的地、つまりWEBサーバーに向けて出発する。
そのさい、VPNサーバーはキミの「代理人」としてWEBサーバーにリクエストを送るんだ。そう、オレのお袋がキミの代わりになるってことだ!
つまりWEBサーバーがわかるのは、オレのお袋(VPNサーバー)のIPアドレスだけ。キミの本来のIPアドレスは完全に秘密になり、オンラインでのキミの動きは完全に闇の中。
だからキミがどこにいて、何をしてるのかなんて、第三者にはまったく見抜けない。オレのお袋がなにかしてると思うだけだ!
匿名性、バッチリ確保!
7. WEBサーバーでのリクエスト受付


ジョニー
WEBサーバーは、VPNサーバーから送られてきたリクエストを受け取って、その指示に従って必要なリソースを探し出す役割を担っている。
①の説明で、「ラーメン屋 近く」で検索すると、そのデータが生成されて、WEBサーバーに向けて「オレに近くのラーメン情報をくれ!」ってリクエストを送るっていったのを覚えているか?
そのリクエストをWEBサーバーは受け取るわけだ。
受け取ったWEBサーバーは、まるで優秀なホテルの受付嬢のように、近くのおすすめのラーメンの情報を探しだす作業にはいる。
ここまで来れば、もうすぐキミの要求が満たされる瞬間だぜ。いい感じになってきたな。
8. WEBサーバーでの応答データ生成


ジョニー
WEBサーバーでは、まずキミからのリクエストに該当する情報をWEBサーバー内から探しだし、それをもとに応答データを作成する。
応答データというのは、リクエストが「ラーメン屋 近く」なら、それに該当するウェブページの情報や、それらに関連する情報(画像や動画など)を揃えて一つのデータにまとめたもののことだな。
応答データが作成されたら、VPNサーバー向けて送りだされる。
9. WEBサーバーからVPNサーバーへの応答送信


ジョニー
応答データは、VPNサーバーへと移動していくわけだが、ここでは通常の通信と同じ仕組みで移動していくことになるぞ!
10. VPNサーバーでのデータ再暗号化


ジョニー
データがVPNサーバーに到着したら、クライアント(キミのパソコン)に送る前に、もう一度、暗号化される。
暗号化や、VPNトンネルの仕組みは行きと同じだ。
ただデータの行き(リクエスト)と帰り(応答)ではVPNアプリと、VPNサーバーの役割が逆転する。
つまり、行きではVPNアプリが暗号化し、VPNサーバーが復号化したが、帰りはVPNサーバーが暗号化し、VPNアプリが復号化の役割を持つことになるってことだな。
おっと、賢いキミならここでこんな疑問がわくかもな。「これVPNサーバーにはオレの情報がバレてないか」って。
それは半分正解だ!
ウェブサイトを見るさいURLが「https://」なっているサイトであれば、暗号化されるため(VPNとは別の暗号化)VPNサーバー側にも、キミがどんなサイトみたのかなどはわからない。
それにVPNサービスを提供している会社がノーログポリシーという、ログを記録しない宣言をしているなら、ログは記録されない仕組みになっている。
その場合は、「http://」でもキミのデータはVPNサーバーに伝わらない。
しかし、VPNサーバーを提供している会社がノーログポリシーでなかったり、あくどい会社、または個人だったりすると話は別だ。
ようは、キミのデータが盗まれる!あんなデータもこんなデータもだ!恐ろしい話だぜ…。
これについては話すと長くなるから気になったときは「無料VPNの危険性…それでもキミは無料を選ぶのか?」を読んでくれ!
ま、VPNの本来の目的であるセキュリティを求めるなら、VPN会社選びは適当じゃダメだってことだな。
11. VPNサーバーからVPNアプリへの暗号化データ送信


ジョニー
再暗号化されたデータは、再びVPNトンネルを通ってキミのVPNアプリへと送られる。
帰りもVPNトンネルを装甲車が走るように、データをガッチリとガードして、誰にも手出しさせない!
データはキミのもとに、無傷で届くようになっている。
12. VPNアプリでのデータ復号化


ジョニー
VPNアプリに到達したデータは、復号化される。
暗号が解かれ、データは再びキミだけが読み取り可能な状態に戻るんだ。
13. VPNアプリからソフトウェアへのデータ送信


ジョニー
復号化されたデータは、VPNアプリからソフトウェアに送られることになる。
14. ソフトウェアでのデータ利用


ジョニー
ここでソフトウェアは、データを受け取り、キミがリクエストしたコンテンツを画面に表示することになるんだ!
ソフトウェアがウェブブラウザ(ChromeやSafariなど)なら、見たかったベージがブラウザに表示される。
ソフトウェアがメールクライアントなら、新しいメールが受信箱に並び、内容を確認できる。
ソフトウェアがクラウドストレージなら、ダウンロードしたファイルを開けるようになり、いつでも使える状態になる。
長かったが、VPNの仕組みはこんな感じだ!
ただ、技術的なことを正確に説明しようとすると、ややこしすぎるから省略した部分は正直多い!
もし、専門的に情報セキュリティの勉強したいってときは、書籍を購入して勉強してくれ!頼むぜ!
VPNの仕組みのまとめ


ジョニー
今回はVPNの仕組みをこれでもかって説明しから、キミもVPNマスターといっていいだろう
最後に図をもう一度見てくれ!
ソフトウェアからデータを送って、表示されるまでの流れを説明すると長かったよな!
このプロセスは通常、一瞬で済んでしまうから、その裏で何が行われているかなんて考えもしない。
だが、じっさいには、これだけ多くの処理が行わている。
つまり、これだけのプロセスがあると、セキュリティリスクが紛れ込む隙間も少なくないってわけだ!
ネットは便利なものだが、危険も潜んでいるってことも忘れないようにするんだぞ!自分の身は自分で守れ!そして明日も楽しめ!以上だ!