インターネット VPN (Virtual Private Network) についてまとめています。VPN を構築すると、インターネット上に仮想の専用ネットワークを作成することです。次のような接続が可能です。
- WAN (Wide Area Network) : 拠点間の LAN (Local Area Network) 同士を接続
- リモートアクセス : 外出先のパソコンから拠点の LAN に接続
インターネット VPN が登場する前は通信事業者が専用線を貸し出して専用のネットワークを構築していました。しかし、この方法は非常に高価です。インターネット VPN を使用すると、安価に専用線を構築することができます。
VPN を構築する際に必要な機能
- カプセル化 (トンネリング)
- 暗号化
データは分離されていますが、平文でデータを流すのは危険なため、盗み見られないように暗号化します。 - 認証
データの改竄を防ぐメッセージ認証と、通信相手を認証する接続先認証があります。
VPN の種類
インターネット VPN には次のような種類があります。用途に合わせてこの中から選択します。
- PPTP
- L2TP/IPsec
- IPsec
- SSL-VPN
PPTP (Point to Point Tunneling Protocol)
マイクロソフトが中心に開発を行い、Windows が標準で対応している VPN プロトコルです。Windows 2000 以降のバージョンでは PPTP クライアント、PPTP サーバーの両方に対応していますので、追加費用なしで VPN を構築できます。
「OSI」
第 2 層で動作します。
「カプセル化」
GRE (Generic Routing Encapsulation) を使用して、PPTP フレームをカプセル化します。
「暗号化」
- RC4 (Rivest Cipher 4)
「認証方式」
- PAP (Password Authentication Protocol)
- CHAP (Challenge Handshake Authentication protocol)
- MS-CHAP
L2TP/IPsec (Layer 2 Tunneling Protocol/IPsec)
シスコが開発した L2F (Layer 2 Forwarding) と PPTP を組み合わせた VPN プロトコルです。但し、暗号化機能が実装されていないため、L2TP 単体では使われません。IPsec とともに使われます。このプロトコルも Windows に標準搭載されています。
IPsec (IP security)
VPN を構築するために使われるプロトコルです。LAN 間接続には VPN ゲートウェイ (IPsec 対応ルータ) が必要です。リモートアクセスには IPsec 対応のソフトウェアウェアをクライアントパソコンにインストールします。
次のヘッダーがあります。(カプセル化)
- AH (Authentication Header)
認証機能のみ - ESP (Encapsulation Security Payload)
認証と暗号化機能
次の通信モードがあります。(暗号化と認証)
- トランスポートモード
データ部分のみを認証・暗号化 - トンネルモード
ヘッダとデータの全体を認証・暗号化
これらのヘッダーと通信モードの組み合わせは 4 種類ありますが、一般的には ESP トンネルモードが使用されます。これはカプセル化・暗号化・認証のすべての機能がそろっているためです。
トンネルモードでの通信を SA (Security Association) と言います。この際に使用される共通鍵を交換するために IKE (Internet Key Exchange) を使用します。 IKE により暗号化と認証が行われます。
IPsec で使用される共通鍵は定期的に更新されます。この処理をリキー (Re-Key) と言います。IKE で事前共有鍵の設定を行って認証する方式をメインモードと言います。IKE は Diffie-Hellman 鍵交換という方法により行われています。
SSL-VPN (Secure Socket Layer-VPN)
主にリモートアクセスに使用されるプロトコルです。接続される LAN 側には SSL-VPN 装置を設置します。接続するクライアントパソコン側は SSL をサポートするブラウザを使用します。そのため、クライアント側に専用のソフトウェアをインストールする必要はありません。このため、クライアント側の環境設定はほとんど必要ありませんが、VPN で使用できるアプリケーションは SSL 対応ブラウザで動作するものに限定されます。しかしながら、SSL-VPN は各メーカーで独自の機能が実装されており、ActiveX などを活用することで使用できるアプリケーションが増えて場合もあります。
通常 SSL-VPN 装置は DMZ (DeMilitarized Zone) に設置され、SSL 対応ブラウザと SSL-VPN 装置間の通信は暗号化されます。LAN 内のクライアントと SSL-VPN 装置間の通信は暗号化されません。
「その他」
- OSI 参照モデル 第 5 層 (ネットワーク層) で動作します。
カプセル化 (トンネリング)
他の通信と分離することです。専用のトンネルを作り、その中にデータを流すイメージです。実際の通信はパケットと呼ばれる細切れのデータです。これを別のパケットで包むことにより中のデータが見えないようにします。プロトコルの名前に Tunneling が使われることが多いのでトンネリングとも呼ばれますが、実際のデータはカプセルで包まれたイメージになりますので、カプセル化といった方があっています。
暗号化技術
カプセル化したデータは単にインターネット上のデータを区別するだけの技術です。データが抜き取られ、カプセルが外されるとデータが見られてしまいます。そのために暗号化が必要になります。
「共通鍵暗号 (秘密鍵暗号)」
データの送信側と受信側が同じ鍵を使って暗号化と復号化を行います。鍵は秘密にしておく必要があります。そのため、秘密鍵暗号とも呼ばれます。次の方式があります。
- DES (Data Encryption Standard)
- 3DES (トリプル DES)
- AES (Advanced Encryption Standard)
- RC4 (Rivest Cipher 4)
「公開鍵暗号」
データを暗号化する鍵と、復号化する鍵を使用します。次の方式があります。
- RSA (Rivest, Shamir, Adleman)
「ハイブリッド暗号」
鍵の交換に公開鍵暗号を使用し、実際のデータ送受信に共通鍵暗号を使用します。これは公開鍵暗号の処理は負荷が高いためです。
メッセージ認証
送信されたデータの改竄を検出する技術です。
- ダイジェスト認証 MD5 (Message Digest Algorithm 5)
16 進数で 32 桁 (128 ビット) です。 - ダイジェスト認証 SHA-1 (Secure Hash Algorithm-1)
16 進数で 40 桁 (160 ビット) です。 - メッセージ認証付き鍵ハッシュ HMAC (Key-Hashing for Message Authentication)
共通鍵を含めてデータを暗号化してからハッシュ関数でダイジェストを作成します。このダイジェストを MAC (Message Authentication Code) と言います。 - RSA デジタル署名
SSL-VPN で使用されます。
ダイジェスト作成にはハッシュ関数が使用されます。ハッシュ関数の特徴は次の 2 つです。
- ダイジェストから元のデータが作成できない。
- 異なるデータから同じダイジェストは作成されない。
- 少しでもデータが変わると、ダイジェストが大きく変わります。
接続先認証
通信相手を確認する方法です。次の方式があります。
- 事前共有鍵 (Pre-Shared Key)
接続するお互いの VPN ゲートウェイに設定します。 - RSA デジタル署名
公開鍵と秘密鍵を比較することにより認証を行います。