VPNの基本

【脱初心者】VPNを支える技術を徹底解説

VPNを支える技術

VPNを支える技術を説明できる必要はないと思いますが、知っておくと自分のデータがどのような技術で守られているか理解でき、安心してネットが利用できます。VPNの技術して取り上げられるのは次の4つです。

  • トンネリング
  • カプセル化
  • 暗号化
  • 認証

では、実際にどのような技術でインターネット上から守られているのか、1つ1つ見ていきましょう。

VPNを支える技術

トンネリングとは

トンネリングとはインターネット上に、プライベートなデータを通す管(トンネル)を作る技術です。トンネルを通してデータを送受信することで、内部を通過しているデータを外部から監視や盗聴が行えなくなります。

トンネリングを実現するプロトコルの種類

VPNのトンネリングを実現するプロトコルです。VPNアプリを使うと意識することなく最適なものが自動でセットされます。

プロトコル 特徴
PPTP
Point-to-Point Tunneling Protocol
数十年前の古いプロトコル。互換性は高く簡単に設定できるが、古いためセキュリティがかなり弱い。可能な限り使用は避けた方が良い。
L2TP/IPsec
(Layer 2 Tunneling Protocol)
高いセキュリティを提供する。L2TP自体に暗号化機能はない為、IPSecとの組み合わせで利用するので、速度が遅くなる場合がある。
SSTP
(Secure Socket Tunneling Protocol)
Microsoftによる開発。主にWindows環境での使用に最適化されている。ほとんどのファイアウォールを回避できるので、VPNが制限されている地域での利用に適しています。
IKEv2/IPsec
(Internet Key Exchange version 2)
高いセキュリティを提供します。IKEv2自体に暗号化機能はない為、IPsecと組み合わせて利用する。Wi-Fiとモバイル接続を頻繁に切り替えたりするモバイルに最適なプロトコルです。
OpenVPN オープンソースのVPNプロトコル。強力なセキュリティと幅広いディバイスに対応しています。高速通信にも対応しているので、オンラインゲームやストリーミングに最適です。

ほとんどのVPNアプリでは「自動」が推奨となっている。

VPNアプリで使用するプロトコル

基本は自動でOKですが、自分が好みのプロトコルを選ぶことも可能です。

カプセル化

VPNのカプセル化は、トンネルにデータを送る際に、データを外部から見ることの出来ないカプセルに入れて送信する技術です。

データを何か別のカプセルに入れて送信するという方法だというふうに覚えてください。

さらに、中に入れるデータも暗号化されているので、仮にVPNのトンネリング内に第三者の侵入があってカプセルが取り出されたとしても、元のデータを盗み見ることはほぼ不可能です。

また、カプセル化は後述の「認証」という機能にも重要な役割があります。

VPNの暗号化

  • トンネリングプロトコル
  • 対称暗号化
  • 非対称暗号化
  • SSL/TLS暗号化

トンネリングプロトコル

前述のVPNのトンネリングの技術のプロトコルで挙げたプロトコルです。トンネリングプロトコルは暗号化に貢献しているんです。

対称暗号化

対称暗号化は、データを安全に送るための方法です。この方法では、「鍵」と呼ばれる秘密のコードを使って、データを暗号化してデータを送信して、受取側で同じ鍵を使って復号化(元に戻す)します。

VPNのAES256暗号化

代表的なものに256ビットの鍵を使ったAES(Advanced Encryption Standard)の暗号化方式で、VPNで広く使用される対称暗号化方式です。

非対称暗号化

VPNクライアントとサーバ間の認証に非対称暗号化が使われています。

データの受信側が公開鍵(暗号化できるけど、元に戻せない鍵)と、対になる秘密鍵(公開鍵で作った暗号を復元できる鍵)を作成します。

データの送信者に公開鍵を先に送って、その鍵を使ってデータを暗号してもらいます。

受信者側が公開鍵を使って暗号化したデータを受け取って、秘密鍵で元のデータに復号します。

IKEv2/IPsecやOpenVPNはこの非対称暗号化の方式となります。

SSL/TLS暗号化

SSL(Secure Sockets Layer)というWebブラウザに標準搭載された暗号化技術がりようされています。

TLSは(Transport Layer Security)はSSLを引き継ぐ形で開発されたプロトコルです。TLS1.0はSSL3.0をベースにして開発されているので、大きな違いはありません。

TLSはSSLを引き継ぐ形で開発されたので、実際はTLSを使用しているケースがほとんどですが、SSL/TLSと表記されているというわけです。

認証

VPNソフトは通信相手(VPNサーバ)とトンネルを作って、通信を第三者から保護します。

このトンネルを作るときに、接続する相手が「正しい接続先だ」と保証するのが、認証という方法です。

しかしながら、インターネットで利用されているIPプロトコルというものは、接続相手を正しい相手かと認証する機能は持っていないんです。そこでユーザー認証の機能を備えたプロトコルを使いたいところですが、この認証機能があるプロトコルは、インターネットのように多数の人が利用する回線で使うことが出来ません。

そこで、カプセル化の方法を使って、インターネット上でも認証を行えるようにしてしまう方法が生まれました。インターネット上では使えないユーザー認証のプロトコルを、インターネット利用されているIPプロトコルのカプセルに入れてしまいます。

そうすることで、認証機能が使えないインターネット上で、認証機能対応のプロトコルを送受信できるようになるのです。

この方法を使ってVPNソフトとVPNサーバは、送信元と受信先で暗号化されたデータを復号(元に戻す)鍵をやり取りします。あらかじめVPNソフトとVPNサーバで鍵を共有、IDとPWで正しい送信元と受信先であると認証することで、安全なVPN通信を確立します。

VPNアプリを自動起動して接続するので、この認証の動作を意識することは全くありません。