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

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

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

前回は、データを盗聴や改ざんから保護するためのVPNで利用されるプロトコルである、IPSec、PPTP、L2TPの仕組みについて解説した。今回は、前回に引き続き、SSL-VPN、SoftEther、MPLSの仕組みについて解説する。

クライアントレスで手軽にVPNを実現する「SSL-VPN」

 SSL-VPNは、セッション層の暗号プロトコルであるSSL(Secure Sockets Layer)を使用してVPNを実現する仕組みであり、リモートアクセスVPN環境で利用する。SSL-VPNの方式は標準化されたものではないため、製品によってさまざまである。しかし、多くの場合、次の「プロトコル変換方式」、「ポートフォワーディング方式」、「SOCKS over SSL方式」のいずれかである場合が多い。

・プロトコル変換方式

 プロトコル変換方式は、ウェブブラウザからSSL-VPNサーバに対して、HTTPS(HTTP over SSL)を使ってアクセスする。ウェブ画面でのユーザー認証をパスすると、そのユーザーが利用できるリソースへのリンクが画面に表示される。ユーザーがリンクをクリックすると、SSL-VPNサーバは該当する内部サーバに対して代理でアクセスする。内部サーバにアクセスするプロトコルがFTPやWindowsファイル共有(SMB/CIFS)などウェブ以外のプロトコルであれば、その結果をHTTPにプロトコル変換してクライアントに転送する。以上の手続きによって、HTTPに変換できる一部のアプリケーションのみではあるが、HTTPSを使って企業ネットワークに安全にアクセスできる。

・ポートフォワーディング方式

 ポートフォワーディング方式は、最初にSSL-VPNサーバから、HTTP以外のプロトコルにSSLを適用するためのクライアントソフト(ポートフォワーディングソフト)をJavaアプレットやActiveXのような形でダウンロードする。そして、SSL-VPN経由でアクセスするアプリケーションのアクセス先の設定を、ローカルホスト上のポートフォワーディングソフトに送信するように設定し、アプリケーションからのアクセスを受信できるようにする。ポートフォワーディングソフトは、そのアプリケーションプロトコルにSSLを適用し、SSL-VPNサーバに送信する。SSL-VPNサーバでは、受信したアプリケーションプロトコルデータをあらかじめ設定されたサーバに対して転送する。

・SOCKS over SSL方式

 SOCKS over SSL方式は、最初にSSL-VPNサーバにアクセスし、クライアントソフトをJavaアプレットやActiveXとしてダウンロードする。内部サーバにアクセスしようとすると、クライアントソフトがそのアクセスをインターセプトし、図1のようにSOCKSでカプセル化した後、SSLを適用する(SOCKS over SSL)。オリジナルのIPヘッダやトランスポートヘッダ(TCP/UDPヘッダ)は削除されてしまうが、オリジナルのIPアドレスやポート番号を判別するための情報はSOCKSヘッダに格納されるため、パケットを受信したSSL-VPNサーバは転送先の内部サーバを判断することが可能となる。

図1 SOCKS over SSLによってカプセル化されたデータのフォーマット(網掛部は暗号化)

 以上、3つの方式を解説したが、SSL-VPNの最大の強みは、クライアントに特別なソフトを導入する必要がないことである。このため、インターネットカフェのような公衆端末からも利用できる。また、以前は利用できるアプリケーションが限られていたが、最近は技術が進歩し、その制限もなくなりつつある。

レイヤ2レベルでVPNを実現する「SoftEther」

 SoftEtherは、筑波大学の学生である登大遊氏が開発した、リモートアクセスVPN環境で利用されるVPNソフトである。SoftEtherは、いわゆる「イーサ over TCP/IP」という方式によってVPNを実現している。これは、イーサネットフレーム自体をデータとしてTCPを使って配送する方式であり、相手拠点にイーサヘッダも転送されるため、あたかも相手拠点のローカルネットワークに接続されているように使える。

 SoftEtherは「イーサ over TCP/IP」を実現するため、クライアント側に仮想LANカードをインストールする。OSのTCP/IPスタックがイーサフレームを仮想LANカードに渡すと、図2のように、イーサフレーム全体を暗号化し、セッション番号などが書かれた独自ヘッダを付与する。そして、それをTCPのデータとして再度OSのTCP/IPスタックに渡し、インターネット上に送信する。

 SoftEtherでは、使用するTCPのポート番号を自由に設定することができる。例えば、HTTPSと同じ443/TCPにすることも可能で、このようにすると、企業のセキュリティ設定に変更を加えることなく、ファイアウォールやプロキシを超えて通信できるようになる。企業ネットワークのVPNとしてはまだ実用されるケースはは少ないが、三菱マテリアルが商用版を出荷しているため、今後はリモートアクセスVPNの一方式として検討される可能性もある。

図2 SoftEtherによってカプセル化されたイーサフレームのフォーマット(網掛部は暗号化)

閉域網でVPNを実現するMPLS

 MPLS(Multi Protocol Label Switching)は本来、ルータの処理を高速化するために開発された技術である。MPLSはパケットに付与されたMPLSラベルによって転送先を判断する仕組みであり、IPヘッダに含まれるIPアドレスは調べない。このため、MPLSを使う環境下ではプライベートアドレスをIPアドレスにすることができ、MPLSをカプセル化プロトコルとして利用したVPNを実現することができる。しかし、これまでに紹介した方式と異なり、パケットを配送する網では、各ルータがMPLSラベルによってスイッチング処理を行う必要があるため、インターネットを利用することはできない。ISP(プロバイダ)が保有するMPLS網を利用したIP-VPNサービスを利用することになる。

 ISPのMPLS網は、エッジ(境界)のルータにおいて、図3のようにユーザーの拠点から送信されてきたIPヘッダに2つのシムヘッダを付与する。このシムヘッダにはMPLSラベルが記述されている。外側のシムヘッダには出口となるエッジ・ルータまでの転送経路を示すラベルが記述されている。MPLS網はこのラベルを見て転送先を判断する。2つ目のシムヘッダにはユーザーを示すラベルが記述されている。MPLSではデータの暗号化は実施しないが、スイッチング処理によって他のユーザーのネットワークにパケットが転送されないようにしているため、機密性を確保できる。

図3 MPLSが適用されたIPパケットのフォーマット

 以上、2回に分けて、VPNを実現するプロトコルについて解説してきた。VPNを実現するプロトコルには様々なものがあるが、それぞれの仕組みの違いによって、VPNとしての機能や管理の容易さなどの違いが出てくる。特徴を良く理解し、最適な方式を検討して欲しい。

  • このエントリーをはてなブックマークに追加
関連キーワード
セキュリティ

関連ホワイトペーパー

SpecialPR

連載

CIO
藤本恭史「もっと気楽にFinTech」
Fintechの正体
内山悟志「IT部門はどこに向かうのか」
情報通信技術の新しい使い方
米ZDNet編集長Larryの独り言
谷川耕一「エンプラITならこれは知っとけ」
田中克己「2020年のIT企業」
大木豊成「Apple法人ユースの取説」
デジタル未来からの手紙
モノのインターネットの衝撃
松岡功「一言もの申す」
三国大洋のスクラップブック
大河原克行のエンプラ徒然
今週の明言
アナリストの視点
コミュニケーション
情報系システム最適化
モバイル
通信のゆくえを追う
スマートデバイス戦略
セキュリティ
ネットワークセキュリティ
セキュリティの論点
スペシャル
de:code
Sapphire Now
VMworld
HPE Discover
Oracle OpenWorld
Dell World
AWS re:Invent
PTC LiveWorx
デプロイ王子のテクノロジ解説!
古賀政純「Dockerがもたらすビジネス変革」
誰もが開発者になる時代 ~業務システム開発の現場を行く~
さとうなおきの「週刊Azureなう」
より賢く活用するためのOSS最新動向
「Windows 10」法人導入の手引き
北川裕康「データアナリティクスの勘所」
Windows Server 2003サポート終了へ秒読み
米株式動向
Windows Server 2003サポート終了
実践ビッグデータ
中国ビジネス四方山話
日本株展望
ベトナムでビジネス
アジアのIT
10の事情
エンタープライズトレンド
クラウドと仮想化