VPNとは、インターネット上に暗号化された専用の通信経路(トンネル)を作り出す技術です。公衆Wi-Fiでも通信を保護し、離れた場所から会社のネットワークに安全に接続するために使われています。この記事では、VPNがなぜ必要なのか・どのような仕組みで通信を守るのかをわかりやすく解説します。
はじめに
HTTPSの記事では、Webサイトとの通信を暗号化する技術を学びました。またファイアウォールの記事では、不正な通信を遮断する仕組みを学びました。
VPNはこの2つと深く関係しています。HTTPSがWebページの通信のみを暗号化するのに対し、VPNはデバイスから出るすべての通信を暗号化します。またファイアウォールで守られた社内ネットワークへ、外部から安全にアクセスするためにも使われます。
なぜVPNが必要なのか
VPNが必要とされる場面は主に2つあります。それぞれ見ていきましょう。
公衆Wi-Fiでの盗聴リスク
カフェ・駅・空港などで提供されている公衆Wi-Fiは、誰でも自由に接続できる反面、同じネットワーク上の通信を他の人が傍受できるリスクがあります。
HTTPSの記事で学んだように、HTTPSで保護されたWeb通信の内容は暗号化されています。しかし、次の2点は注意が必要です。
まず、HTTPSに対応していないアプリの通信は、内容ごと読み取られる可能性があります。次に、HTTPSを使っていても「どのWebサイトにアクセスしたか」という接続先の情報は、同じネットワーク上の人に見える場合があります。どんなサイトを閲覧しているかが筒抜けになるイメージです。
VPNを使うとデバイスから出るすべての通信が暗号化されるため、公衆Wi-Fi上で傍受されても内容を読み取れなくなります。
図:公衆Wi-Fiでの通信の見え方の違い(VPNなし vs VPNあり)
リモートワークでの社内ネットワーク接続
企業の社内システム(ファイルサーバー・社内Webシステムなど)は、ファイアウォールの記事で学んだように、外部からの直接アクセスができないよう保護されています。
在宅勤務や出張先から社内システムへアクセスするには、社外にいながら「社内ネットワークに接続しているのと同じ状態」を作り出す必要があります。VPNを使うと、この状態を安全に実現できます。
VPNとは何か
VPN(Virtual Private Network) とは、インターネット上に暗号化された仮想の専用通信経路を作り出す技術です。
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| VPN / Virtual Private Network | インターネット上に暗号化された仮想の専用通信経路を作る技術 | virtual=仮想の / private=専用の / network=ネットワーク。「仮想の専用ネットワーク」という意味 |
「バーチャル(仮想)」とある通り、専用の物理回線を新たに引くのではなく、既存のインターネット回線を使いながら、暗号化によって「まるで専用回線のような状態」を作り出します。実際には誰もが使う共有のインターネット上を通りながらも、他者には内容を読み取れないため、事実上「自分専用の道」として機能します。
トンネリングとは
VPNでは、まずデータを暗号化します。そのうえで、暗号化したデータを別のパケットで包んで送ります。この「パケットを別のパケットで包む」処理を トンネリング(カプセル化) といいます。
トンネリング接続では、本来のパケットを別のパケットに包んで(カプセル化)送り届けることにより通信を行います。これにより、公衆回線の一般のユーザーからは見えないように通信することができます。ネットワーク上に外部から遮断された見えない通り道を作るように見えることから、トンネルと呼ばれるようになりました。
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| トンネリング / Tunneling | 暗号化したデータを別のパケットで包んで送る技術(カプセル化) | ネットワーク上に外部から遮断された見えない通り道を作る技術。トンネルを掘るイメージからこの名前が付きました |
トンネリングと暗号化の違い
ここまでの説明で「暗号化」と「トンネリング」という2つの言葉が登場しました。この2つは似ているようで、役割が異なります。
暗号化 は、データの中身そのものを誰にも読めない形に変換することです。文書を秘密の暗号文で書き直すイメージです。たとえ第三者がデータを手に入れても、暗号を解く鍵がなければ内容を理解できません。
トンネリング は、データを別のパケットで包んで、外から中身が見えないようにすることです。中身が見えない封筒に手紙を入れて送るイメージです。封筒の外からは誰宛の、どんな手紙かがわかりません。
| 暗号化 | トンネリング | |
|---|---|---|
| 何をするか | データの中身を読めない形に変換する | データを別のパケットで包んで隠す |
| たとえ | 秘密の暗号文で文書を書く | 中身の見えない封筒に手紙を入れる |
| 守るもの | データの内容そのもの | 通信が行われていること自体や経路 |
VPNでは、この2つを組み合わせて使います。まず暗号化でデータの中身を読めなくし(秘密の暗号文を書く)、それを別のパケットで包んで送ります(封筒に入れて送る)。2つの仕組みが揃うことで、内容も経路も両方が保護された状態になります。
「暗号化だけで十分では?盗聴されても中身が読めないなら問題ないのでは?」と思うかもしれません。しかし、暗号化だけでは守れないものが2つあります。
まず、パケットには宛先・送信元のIPアドレスが必ず含まれています。これは通信を届けるために欠かせない情報なので、暗号化で中身を隠しても、この部分までは隠せません。暗号化だけの場合、第三者は「中身は読めないが、あなたがどのサイトと通信しているか」を把握できてしまいます。
また、暗号化だけでは、通信相手であるWebサーバーには依然としてあなたの本当のIPアドレスが届きます。先ほどの「接続するとIPアドレスが変わる」で説明したように、相手にVPNサーバーのIPアドレスを見せる効果は、トンネリングによって本来の宛先情報がパケットの内側に包まれることで生まれます。
| 暗号化のみ | 暗号化+トンネリング | |
|---|---|---|
| データの中身 | 見えない | 見えない |
| 本来の宛先(どのWebサイトか) | 見える可能性がある | 見えない(VPNサーバー行きとしか分からない) |
| あなたの本当のIPアドレス | 相手に伝わる | 相手にはVPNサーバーのIPアドレスが伝わる |
トンネリングは、暗号化を補う「おまけ」の機能ではなく、宛先情報やIPアドレスといった、暗号化だけでは守れない部分を担う、VPNに欠かせない仕組みです。
ここで1点、注意が必要です。トンネリングで隠れるのはあくまで 本来アクセスしたいWebサイト の情報であり、 VPNサーバーのIPアドレス自体は隠れません。 外側のパケットには「送信元:あなたのデバイス」「宛先:VPNサーバー」という情報が必ず含まれており、これはパケットを正しく届けるために欠かせない情報なので、隠すことができないからです。
つまり、第三者から見ると「このデバイスはどこかのVPNサーバーと通信している」ということまでは分かりますが、その先で本来どのWebサイトにアクセスしているかはわかりません。封筒の宛先(VPNサーバー)は見えても、封筒の中の手紙の宛先(本来のWebサイト)までは見えない、というイメージです。
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| 暗号化 / Encryption | データの中身を、特定の鍵がなければ読めない形に変換すること | 秘密の暗号文で文書を書くイメージ。中身そのものが読めなくなる |
VPNの仕組み
VPNに接続すると、あなたのデバイスとVPNサーバーの間に暗号化されたトンネルが作られます。その後の通信はすべてこのトンネルを通ります。
- デバイスがデータを暗号化し、VPNサーバーへ送る
- VPNサーバーがデータを復号し、目的のサーバーへ転送する
- 目的のサーバーからの返信をVPNサーバーが受け取り、暗号化してデバイスへ返す
図:VPN接続の確立とデータ転送の流れ
| ステップ | 内容 |
|---|---|
| ① | デバイスがVPNサーバーへ「接続したい」と申し込む |
| ② | VPNサーバーが承認し、暗号化トンネルが完成。以降の通信はすべてこのトンネルを通る |
| ③ | デバイスがデータを暗号化し、トンネルを通じてVPNサーバーへ送る |
| ④ | VPNサーバーがデータを復号して目的のWebサーバーへ転送する。このとき送信元IPがVPNサーバーのIPに変わる |
| ⑤ | Webサーバーが返信をVPNサーバーへ送る(宛先はVPNサーバーのIP) |
| ⑥ | VPNサーバーが返信を暗号化し、トンネルを通じてデバイスへ届ける |
接続するとIPアドレスが変わる
VPNを使うと、通信の宛先サーバーから見た「送信元のIPアドレス」が変わります。
通常、Webサイトにアクセスすると、そのサイトにはあなたのデバイスのIPアドレスが届きます。VPN接続中は、データがVPNサーバーを経由して送られるため、Webサイトには VPNサーバーのIPアドレス が届きます。あなたの実際のIPアドレスは宛先から見えません。
これにより、以下のことが実現できます。
- プライバシー保護 :Webサイトに実際のIPアドレスを知られない
- 社内ネットワークへのアクセス :社内のVPNサーバーへ接続することで、社内にいる端末と同じIPアドレスで通信できる
- 別の地域からのアクセス :別の国のVPNサーバーへ接続することで、その国にある端末と同じIPアドレスで通信できる
HTTPSとVPNの違い
HTTPSの記事で学んだHTTPSとVPNは、どちらも「暗号化」という点で共通していますが、保護する範囲が異なります。
| HTTPS | VPN | |
|---|---|---|
| 何を暗号化するか | 特定のWebサイトとの通信のみ | デバイスから出るすべての通信 |
| 誰が暗号化するか | ブラウザとWebサーバー | デバイスとVPNサーバー |
| 主な目的 | 特定のWebサイトとの通信を保護する | 通信経路全体を保護する・社内ネットワークへ接続する |
HTTPSは「特定のWebサイトとのやり取りを暗号化する」技術です。一方VPNは「デバイスから出るすべての通信をまとめて暗号化する」技術です。
2つは競合するものではなく、VPN接続中もHTTPSは引き続き機能します。
「VPNがすべての通信を暗号化するなら、HTTPSは不要では?」と思うかもしれません。しかし、VPNの暗号化はデバイスからVPNサーバーまでの区間のみです。VPNサーバーから先——VPNサーバーと目的のWebサーバーとの間——はVPNの保護範囲外であり、HTTPSがこの区間を補います。
またVPNサーバーは、受け取ったデータを一度復号してから転送します。HTTPSを使っていれば、VPN提供者にも通信の内容(パスワードや個人情報)を読まれることはありません。
具体的な場面で確認してみましょう。万が一、VPNサーバーが第三者に乗っ取られていた場合、HTTPSを使っているかどうかで結果が大きく変わります。
** HTTPSなしの場合 **
図:乗っ取られたVPNサーバーへのHTTPSなし通信(盗聴リスクあり)
VPNの暗号化(トンネル)はVPNサーバーに届いた時点で復号されます。HTTPSを使っていなければ、その中身は平文のままです。乗っ取られたVPNサーバーは、復号した時点でパスワードや個人情報をそのまま読み取ることができてしまいます。
** HTTPSありの場合 **
図:乗っ取られたVPNサーバーへのHTTPSあり通信(盗聴リスクなし)
HTTPSを使っていれば、VPNの暗号化が解かれても、中身はまだHTTPSで暗号化されたままです。乗っ取られたVPNサーバーは、暗号化されたデータをそのまま中継することしかできず、内容を読み取ることはできません。
このように、VPNはあくまで通信経路を保護する仕組みであり、経由するVPNサーバー自体が信頼できる保証はありません。HTTPSを併用することで、たとえVPNサーバーに問題があっても、データの中身そのものは守られます。
VPN+HTTPSを組み合わせることで、通信経路の全区間にわたって保護された状態になります。
まとめ
- VPN とは、インターネット上に暗号化された仮想の専用通信経路(トンネル)を作る技術
- トンネリング によってデータを暗号化して包み、第三者が内容を読み取れない状態で通信する
- VPN接続中は、通信の宛先には VPNサーバーのIPアドレス が届き、実際のIPアドレスは隠れる
- 主な用途は「公衆Wi-Fiでの通信保護」と「リモートワークでの社内ネットワーク接続」
- HTTPSが特定のWebサイトとの通信のみを暗号化するのに対し、VPNはすべての通信を暗号化する
- VPN+HTTPSを組み合わせることで二重に保護された通信が実現する
用語表
| 用語 | 意味 |
|---|---|
| VPN(Virtual Private Network) | インターネット上に暗号化された仮想の専用通信経路を作る技術 |
| 暗号化 | データの中身を、特定の鍵がなければ読めない形に変換すること |
| トンネリング | データを別のパケットで包んで送る技術(カプセル化)。外部から遮断された見えない通り道を作る |
| VPNサーバー | VPN接続の中継点となるサーバー。接続すると宛先にはこのサーバーのIPアドレスが届く |