VPNの仕組みを探る(1/2)

高崎達哉 2005年08月11日 10時00分

  • このエントリーをはてなブックマークに追加

これまでは、検疫ネットワークと侵入防止システム(IPS)といった、ワームなどの攻撃からシステムを防御するための技術を説明してきた。今回からは、データを盗聴や改ざんから保護するためのVPNで利用される、IPSecやPPTP、L2TP、SSL-VPNなどのプロトコルの仕組みについて、2回に分けて解説していく。

 公衆網サービスを使いつつセキュリティを確保する方法として、公衆網上に仮想的に専用網を作るVPN(仮想プライベート・ネットワーク)がある。以下では、VPNを実現するプロトコルとして、IPSec(IP Security protocol)、PPTP(Point-to-Point Tunneling Protocol)、(Layer 2 Tunneling Protocol)の3種類を取り上げ、それぞれの概要とパケット構造、目的を解説する。

VPNの標準プロトコル「IPSec」

 IPSecは、VPNを構築するための標準プロトコルである。認証ヘッダの「AH」(Authentication Header)、カプセル化の「ESP」(Encapsulating Security Payload)、データ圧縮の「IPComp」(IP Compression Protocol)、鍵交換の「IKE」(Internet Key Exchange)などのプロトコルから構成される。

 AHは、認証コードの付与によってIPパケットの改ざんを防止するプロトコルであり、IPプロトコル番号51を使用する。ESPは、カプセル化により、IPパケットの改ざんを防止し機密性を確保するプロトコルであり、IPプロトコル番号50を使用する。IPCompは、圧縮効率を上げるためにデータの暗号化前にIPパケットを圧縮するプロトコルであり、IPプロトコル番号108を使用する。IKEは、これらのプロトコルで使用するアルゴリズムのネゴシエーションや鍵のセットアップを行うためのプロトコルであり、UDPの500番ポートを使用する。

 AHやESPには、その配送方法によって、トンネルモードとトランスポートモードの2種類のモードがあるが、通常、IPSecによるVPNゲートウェイ機器などを用いるVPNでは、ESPのトンネルモードが使用される。ESPのトンネルモードでは、図1のように、オリジナルのIPパケット全体にESPトレーラを加えたものが、事前にIKEによってネゴシエーションされた共通鍵暗号によって暗号化される。

図1 トンネルモードESPが適用されたIPパケットのフォーマット(網掛け部分は暗号化)

 暗号化されたデータの先頭には、相手のVPN機器まで運ぶためのトンネルIPヘッダとESPヘッダが付加され、最後尾にESPヘッダと暗号化されたデータを範囲とするメッセージ認証コード(Message Authentication Code、MAC)が格納されたESP認証データが付加される。

 この認証データを受信側で検証することにより、データの内容が第三者によって改ざんされていないことを確認することが可能となるのである。このメッセージ認証コードのアルゴリズムも、事前にIKEによってネゴシエーションされる。

 メッセージ認証コードは、入力データを一方向ハッシュ関数にかけた結果である。ハッシュ関数は出力値(ハッシュ値)から入力値を求めることが困難である一方で、同じ入力値からは必ず同じ出力値が得られるという特徴を持つ。ハッシュ関数にはMD5などがある。

Microsoftが中心となって開発した「PPTP」

 PPTPは、米Microsoftが中心となって開発したプロトコルであり、主にリモートアクセスによるVPN環境で利用される。PPTPでは、PPTPトンネルを制御するための「PPTP制御コネクションプロトコル」(1723/TCP)と、PPPフレームをIPネットワーク上で送信するための「PPTPトンネルプロトコル」(IPプロトコル番号47)の2種類のプロトコルを使用する。

 PPTPを使用する場合には、最初にPPTP制御コネクションプロトコルを使用して、PPTPトンネルが確立される。そして、PPTPトンネル内でIPパケットを送信する場合には、図2のように、MPPEヘッダの後半2バイト分を構成するプロトコルフィールドが付加されたIPパケット全体がRC4で暗号化される。

図2 PPTPが適用されたIPパケットのフォーマット(網掛け部は暗号化)

 加えて、暗号化されたデータにMPPEヘッダの前半2バイト分とPPPヘッダが付加され、PPPフレームが作成される。さらに、GREv1ヘッダと、相手のVPN機器まで運ぶためのトンネルIPヘッダが付加され、アクセス先拠点まで暗号化された状態で届けられるという仕組みである。

PPTPとL2Fを統合して標準化した「L2TP」

 L2TPは、米Microsoftが中心となって開発したPPTPと、米Cisco Systemsが開発したL2F(Layer 2 Forwarding)を統合して標準化したプロトコルであり、主にリモートアクセスによるVPN環境で利用される。

 前述したPPTPでは、制御用のプロトコルとデータ用のプロトコルには、それぞれ異なるプロトコルを使用する。一方、L2TPでは、「L2TP制御メッセージ」と「L2TPデータメッセージ」の両方に、UDPの1701番ポートを使用する。しかし、L2TPにはセキュリティを確保する機能が存在しないため、IPSecと組み合わせることになる。

 L2TPを使用する場合には、最初にL2TP制御メッセージを使用してL2TPトンネルが確立される。この上で、L2TPトンネル内でIPパケットを送信する場合には、図3のように、送信するIPパケットの直前にPPPヘッダが付加され、PPPフレームが作成される。

図3 L2TPとトランスポートモードESPが適用されたIPパケットのフォーマット(網掛け部は暗号化)

 これに加え、相手のVPN機器まで運ぶためのトンネルIPヘッダと、UDPヘッダ、L2TPヘッダが付加され、PPPフレームをカプセル化したL2TPパケットが作成される。さらに、この作成されたL2TPパケットに対し、トランスポートモードのESPが適用され、アクセス先拠点まで暗号化された状態で届けられるという流れである。

 次回は、比較的最近登場し、話題となっているVPN技術である、SSL-VPNとSoftEtherの仕組みについて解説する。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

この記事を読んだ方に

関連キーワード
セキュリティ

関連ホワイトペーパー

SpecialPR

連載

CIO
トランザクションの今昔物語
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
「企業セキュリティの歩き方」
「サイバーセキュリティ未来考」
「ネットワークセキュリティの要諦」
「セキュリティの論点」
スペシャル
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
展望2017
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell EMC World
AWS re:Invent
AWS Summit
PTC LiveWorx
より賢く活用するためのOSS最新動向
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
米株式動向
日本株展望
企業決算