今回は、VPN Virtual Private Networkについて学びましょう。
VPN Virtual Private Networkとは、公道の上に自分専用の私道を通すが如く、インターネットのような公衆網の上に仮想の専用線を用意する技術のことです。
かつて、支社や営業所など複数拠点を持つ企業はその拠点間を専用線を利用して接続していました。最近は、VPNを利用して拠点間ネットワークを構築する企業が増えています。
VPNのメリットとして、現実の専用線を拠点間に用意しないのでコストが安くすむ事があげられます。
VPNの機能は「トンネリング」と「暗号化」です。
「トンネリング」とは、パケットに新しいヘッダを付加しカプセル化すること、です。利用者はカプセル化を意識する事はありません。
「暗号化」とは、通信バケットを暗号化すること、ことです。暗号化によって盗聴や改ざんを防止します。
主なVPN技術は次の3つです。
Psecは、インターネットの標準化団体であるIETFがVPNの標準プロトコルとして規定したレイヤ3トンネリング・プロトコルです。
L2TPは、PPTPとL2Fを統合したレイヤ2トンネリング・プロトコルです。L2Fは、Cisco SystemsやNorthern Telecomなどによって開発されたレイヤ2トンネリング・プロトコルです。
PPTPは、Microsoft・Ascend Communications・US.Roboticsなどが共同で開発・策定したレイヤ2トンネリング・プロトコルです。
ではそれぞれの特徴を見ていきましょう。
IPにセキュリティ機能を実装したプロトコルがIPsecです。IPsecはIPv4ではオプションでしたが、IPv6では標準実装しています。OSI7階層モデルのれいや3、IP層レベルで自動的に暗号化された通信を行います。上位のアプリケーションでは暗号化を意識する必要は有りません。
IPsecは二つのプロトコルから構成されます。
AH Authentication Headerは「認証」と「データの完全性の保証」を担 います。
ESP Encapsration Security Paloadは「データの暗号化」を担います。
IPパケットの暗号化通信にはAHとESPを利用します。データの暗号化を禁止している国ではAHのみを利用します。
IPsecには2つの動作モードが有ります。
エンド・ツー・エンドのホスト間IPsecにはトランスポートモードを、LAN間接続などネットワーク間IPsecにはトンネルモードを利用します。
IPsecはSecurity Associationと呼ぶ、任意トラフィックのセキュリティを確保するコネクションを確立して暗号化通信を行います。
ISAKMP(アイサカンプ)SAと呼ぶ双方向SA 1本を 鍵交換IKEに利用します。
IPsec SAと呼ぶ片方向SA 2本をデータ通信に使用します。
L2TPは、LAC(ラック)と呼ぶL2TP発信元とLNS(レンズ)と呼ぶL2TPサーバから構成されます。
L2TPでは制御チャンネルとトンネルにUDPポート1701番を使用します。
L2TPでは1つの仮想トンネルで複数のユーザー・セッションをサポートします。
L2TPは、通信データの暗号化機能を持ちません。そこで暗号化の必要な場合はPPPの機能で暗号化したり、IPsecとの併用など、暗号化用のプロトコルを別途用意します。
Microsoft OSではWindows 2000からL2TPに対応しています。
PPTPは、PAC(パック)と呼ぶPPTP発信元とPNS(ポンズ)と呼ぶPPTPサーバから構成されます。
PPTPは、カプセル化対象のIPパケットに、ポイント・ツー・ポイント通信用のPPPヘッダと、トンネル通信用のGREヘッダを付加し、更にIPパケットでカプセル化しています。
制御コネクションにTCP、トンネルに拡張GREプロトコルを使用します。TCPを使用しますから通信は3wayハンドシェイクで始まり確認応答が行われます。
PPTPは、通信データの暗号化機能を持ちません。そのため、暗号化の必要な場合はPPPで暗号化するか暗号化用のプロトコルを別途用意します。
WindowsではMS-CHAP v2(エムエスチャップバージョンツー)とMPPEでユーザー認証・暗号鍵交換・データ暗号化を実装しています。
Windowsクライアント製品はPACに、Windowsサーバ製品はPNSに対応しています。
パケット構造を見てみましょう。
IPsecでは、一般的なIPパケットのレイヤ2データの部分をESPでカプセル化し、認証データを付加しています。
レイヤ2データとはレイヤ2ヘッダ つまりイーサネットヘッダから見てデータの部分です。言い換えるとレイヤ3ヘッダ プラス レイヤ3データとも言えます。
暗号化してあるESPのデータ部分はプロトコルアナライザでキャプチャしても解読できません。
PPTPでは、一般的なIPパケットのレイヤ2データの部分にPPPヘッダとGREヘッダ・IPヘッダを付加します。Microsoft Windows同士のPPTPでは標準でデータを暗号化します。この場合、カプセル化したPPPのデータ部分が暗号化されます。
L2TPではPPTPのGREヘッダをUDPヘッダとL2TPヘッダに置き換えた構造となります。暗号化部分もPPTPと同じです。L2TPはUDPパケットなのでPPTPよりも動きが軽くなっています。