(58)【調査した分野】(Int.Cl.,DB名)
クライアントとサーバとの間の接続を行うトンネル接続装置とトンネル終端装置とを備える通信システムにおいて使用される前記トンネル接続装置が実行するデータ通信方法であって、
前記トンネル終端装置との間にトンネルを確立するステップと、
前記トンネルを介して前記サーバとの間にコネクションを確立するステップと、
前記クライアントからデータを受信し、当該データを前記コネクションを用いて前記サーバに送信するステップと
を備えることを特徴とするデータ通信方法。
【発明の概要】
【発明が解決しようとする課題】
【0005】
SSL−VPN端末側の使用環境は様々であり、端末自体のセキュリティ事情(例えば、一時使用のPCであり、新規ソフトウェアをインストールできない等)や、端末の置かれた環境によるサーバ側のセキュリティ事情(信頼できない場所や端末からのアクセスには、ポート転送方式だけのアクセス制限をかけたい等)等によって、ポート転送型とL2転送型を1つのSSL−VPN内で混在使用したいという要望がある。
【0006】
しかし、従来技術では、採用するSSL−VPNゲートウェイの方式によりどちらか一方しか利用できず、端末側でポート転送型とL2転送型を混在させたい場合には、2種類のゲートウェイを用意しなければならず不経済である。すなわち、
図1に示すように、ポート転送型SSL−VPN端末1とL2転送型SSL−VPN端末4とを混在させる場合において、ポート転送型SSL−VPNゲートウェイ3とL2転送型SSL−VPNゲートウェイ6を用意しなければならない。
【0007】
本発明は上記の点に鑑みてなされたものであり、1つのSSL−VPNゲートウェイに複数の異なる方式のSSL−VPN端末を接続させることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の実施の形態によれば、クライアントとサーバとの間の接続を行うトンネル接続装置とトンネル終端装置とを備える通信システムにおいて使用される前記トンネル接続装置であって、
前記トンネル終端装置との間にトンネルを確立するトンネル接続機能部と、
前記クライアントとの間にコネクションを確立するサーバ機能部と、
前記サーバ機能部から受け取る前記クライアントのデータを送信するためのコネクションを、前記トンネルを介して前記サーバとの間に確立するクライアント機能部とを備えるトンネル接続装置が提供される。
【0009】
また、本発明の実施の形態によれば、クライアントとサーバとの間の接続を行うトンネル接続装置とトンネル終端装置とを備える通信システムにおいて使用される前記トンネル接続装置が実行するデータ通信方法であって、
前記トンネル終端装置との間にトンネルを確立するステップと、
前記トンネルを介して前記サーバとの間にコネクションを確立するステップと、
前記クライアントからデータを受信し、当該データを前記コネクションを用いて前記サーバに送信するステップとを備えるデータ通信方法が提供される。
【発明の効果】
【0010】
本発明の実施の形態によれば、1つのSSL−VPNゲートウェイに複数の異なる方式のSSL−VPN端末を接続させることを可能とする技術が提供される。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、本実施の形態では、トンネル通信方式としてSSL−VPNを使用しているが、本発明はSSL−VPNに限らず、幅広い種類のトンネル通信方式に適用可能である。
【0013】
(システム構成例)
図2に、本発明の実施の形態における通信システム(通信ネットワーク)の全体構成例を示す。
図2に示すように、本実施の形態の通信システムでは、L2転送型SSL−VPNゲートウェイ6に、ポート転送型SSL−VPN端末10とL2転送型SSL−VPN端末4を同時に収容する。
図2に示す構成において、L2転送型SSL−VPNゲートウェイ6とL2転送型SSL−VPN端末4は従来のL2転送型のものを使用できるが、ポート転送型SSL−VPN端末10については、本発明に係る技術を使用しており、その構成の詳細については後述する。また、後述するように、端末とゲートウェイを接続するネットワークにおいて、従来のL2転送型のパケットと同様のパケットが転送されることから、
図2に示すように、当該ネットワークはL2転送型SSL−VPNネットワーク5である。
【0014】
本実施の形態に係る技術を用いることで、例えば
図3に示すような仮想ネットワークを構築できる。
図3に示す仮想ネットワークは、SSL−VPN端末4、10、及びSSL−VPNゲートウェイ6を含み、各SSL−VPN端末4、10がSSL−VPNゲートウェイ6にトンネル接続することで通信を行う。
【0015】
なお、本実施の形態においては、
図2に示すように、L2転送型SSL−VPNゲートウェイ6に接続されるポート転送型SSL−VPN端末10が従来にない構成を有することから、特に断らない限り、「SSL−VPN端末」は、当該ポート転送型SSL−VPN端末を意味し、「SSL−VPNゲートウェイ」は、L2転送型SSL−VPNゲートウェイ6を意味する。また、「SSL−VPN端末」は、トンネル終端機能を持つとともに、トンネル接続のための処理を起動することから、「SSL−VPN端末」をトンネル接続装置と呼んでもよい。また、「SSL−VPNゲートウェイ」をトンネル終端装置と呼んでもよい。
【0016】
図4に、本実施の形態に係るSSL−VPN端末100とSSL−VPNゲートウェイ200の概要構成、及びTCP接続構成を示す。
【0017】
図4に示すように、SSL−VPN端末100にネットワークアプリケーション150が接続され、SSL−VPNゲートウェイ200にアプリケーションサーバ250が接続される。
【0018】
図4に示すネットワークアプリケーション150は、Webブラウザやメールクライアント等のネットワークアプリケーションプログラムを備える端末(SSL−VPN端末100とは別の端末)であってもよいし、SSL−VPN端末100内のネットワークアプリケーション(プログラムにより実現される機能部)であってもよい。また、ネットワークアプリケーション150は、アプリケーションサーバ250のクライアントであるため、ネットワークアプリケーション150を「クライアント」と呼んでもよい。
【0019】
図4に示すように、SSL−VPN端末100は、TCPサーバ機能部101、TCPクライアント機能部102、TLSトンネル接続機能部103を有する。SSL−VPNゲートウェイ200はTLSトンネル終端機能部201を有する。
【0020】
TCPサーバ機能部101は、ネットワークアプリケーション150からTCPコネクション確立要求を受け付け、ネットワークアプリケーション150との間にTCPコネクションを確立するとともに、コネクション確立をTCPクライアント機能部102に通知し、もしも受信すべきデータがあればそれをTCPクライアント機能部102に渡す。また、TCPクライアント機能部102から渡されたデータをTCPコネクションを用いてネットワークアプリケーション150に送信する。
【0021】
TCPクライアント機能部102は、TCPサーバ機能部101からのコネクション確立を受けて、SSL−VPN端末100とSSL−VPNゲートウェイ200間のトンネル経由で、アプリケーションサーバ250にTCPコネクション確立要求を送信することで、アプリケーションサーバ250との間でTCPコネクションを確立し、TCPコネクションによりデータの送受信を行う。
【0022】
TLSトンネル接続機能部103は、SSL−VPNゲートウェイ200のTLSトンネル終端機能部201との間でトンネルを確立し、トンネル通信(カプセリング通信)を行う。なお、TLS(Transport Layer Security)は、SSLをもとに標準化させたプロトコルであるが、本明細書においてはSSLとTLSは同義と考えてよい。TLSトンネル接続機能部103は、トンネル終端機能を有するが、トンネルの接続を開始する際に、トンネル接続要求をSSL−VPNゲートウェイ側に送信するため、TLSトンネル接続機能部103と称している。TLSトンネル終端機能部201は、TLSトンネル接続機能部103からトンネル接続要求を受信して、TLSトンネル接続機能部103との間にトンネルを確立する。
【0023】
図4に示すように、ネットワークアプリケーション150とSSL−VPN端末100との間、及び、TCPクライアント機能部102とアプリケーションサーバ250との間でTCPコネクションが確立される。
【0024】
比較のために、従来のポート転送型SSL−VPN端末300とポート転送型SSL−VPNゲートウェイ400のTCP接続構成を
図5に示す。
図5に示すように、ポート転送型SSL−VPN端末300は、TCPサーバ機能部301とTLSトンネル接続機能部302を有する。ポート転送型SSL−VPNゲートウェイ400は、TLSトンネル終端機能部402とTCPクライアント機能部401とを有する。
【0025】
図5に示すように、ネットワークアプリケーション350とTCPサーバ機能部301との間、及び、TCPクライアント機能部401とアプリケーションサーバ450との間でTCPコネクションが確立される。すなわち、本実施の形態におけるSSL−VPNの通信方式は、既存のポート転送型の方式においてSSL−VPNゲートウェイ側にあったTCPクライアント機能部をSSL−VPN端末側に移動させたものに相当する。
【0026】
これにより、本実施の形態において、トンネルを通過するパケットには、アプリケーションサーバ250と通信するためのTCP/IPヘッダを含むユーザPDUの外側に、更にSSL−VPNゲートウェイ200と通信するためのTCP/IPヘッダが付加される。このパケットフォーマットはL2転送型SSL−VPN方式で使われるものである。これにより、本実施の形態に係るSSL−VPN端末100は、ネットワークアプリケーション150から見ればポート転送型でありながら、SSL−VPNゲートウェイ200はL2転送型を使用できる。
【0027】
(SSL−VPN端末100の機能構成、動作)
次に、
図6を参照して、SSL−VPN端末100の構成と動作をより詳細に説明する。
図6は、基本的に
図4におけるSSL−VPN端末100側の構成と同じ構成を示しているが、ソフトウェア構成をより詳細に示すものである。つまり、本実施の形態において、SSL−VPN端末100のTCPサーバ機能部101はTCPプロキシサーバにより実現される。なお、TCPプロキシサーバに代えて、Webプロキシサーバを用いてもよい。TCPクライアント機能部102は、TCP/IPプロトコルスタック(TCPプロトコル処理機能とIPプロトコル処理機能)により実現される。また、
図6には、SSL−VPN端末100における実ネットワークドライバ110が示されている。以下、
図6に示す構成におけるデータ送信動作について説明する。データ受信動作については、
図6に示すパケットの流れと逆方向の流れに対応する動作となる。
【0028】
TCPプロキシサーバ101は、TCPポートをオープンしてネットワークアプリケーション150からの接続を待つ。ネットワークアプリケーション150は、本来接続するべきサーバ(例えば企業イントラネット内の業務サーバ)のIPアドレスではなく、ローカルホストで動作するTCPプロキシサーバ101にTCPコネクションを開設する。ここでの動作は、既存のポート転送型の場合と同じである。すなわち、本実施の形態に係るSSL−VPN端末100は、ネットワークアプリケーション150から見れば、既存のポート転送型と同じである。このことから、当該SSL−VPN端末100をポート転送型SSL−VPN端末と呼ぶことができる。
【0029】
TCPプロキシサーバ101は、ネットワークアプリケーション150との通信のTCPレイヤを一旦終端して、もしも受信すべきデータがあれば、PDU(データ)を取り出す。つまり、TCPプロキシサーバ101は、ネットワークアプリケーション150から受信するTCPパケットからPDUを取り出す。PDUはTCP/IPプロトコルスタック102に渡される。
【0030】
本実施の形態では、SSL−VPNゲートウェイ200からSSL−VPN端末100に対してIPアドレスが付与され、当該アドレスはこのTCP/IPプロトコルスタック102のIPアドレスとして取り込まれる。当該IPアドレスは、例えば、企業イントラネットで使用されるIPアドレスであってよい。当該IPアドレスは、最終宛先であるサーバが受信するパケットの送信元アドレスとなる。トンネルの確立後、TCPプロキシサーバ101がネットワークアプリケーション150との間でTCPコネクションを開設したタイミングで、TCP/IPプロトコルスタック102により、アプリケーションサーバ250にTCPコネクション開設要求が送られることで、TCP/IPプロトコルスタック102とアプリケーションサーバ250間でTCPコネクションが確立される。以下の動作はコネクション確立後の動作である。
【0031】
TCP/IPプロトコルスタック102によりネットワークアプリケーション150のPDUにTCP/IPヘッダが付され、当該ヘッダ付きのパケットがTLSトンネル接続機能部103に渡される。このTCPはアプリケーションサーバ250で終端されるべきものであり、宛先IPアドレスはアプリケーションサーバ250となっている。TLSトンネル接続機能部103は、VPNトンネリング機能を有しており、TCP/IPヘッダ付きパケットにVPNヘッダを付けて、できたパケットをTLSでSSL−VPNゲートウェイ200に転送する。すなわち、
図6に示すように、VPNヘッダ付きのパケットが、実ネットワークドライバ110によりTCP/IPヘッダが付されて送信される。この外側のTCP/IPヘッダのTCPはSSL−VPNゲートウェイ200で終端され、宛先IPアドレスはSSL−VPNゲートウェイ200となっている。
【0032】
このように、トンネルを通過するパケットには、ユーザPDUにTCP/IPヘッダが付加される。一方、既存のポート転送型では、
図6に示すTCP/IPプロトコルスタック102に相当するものはなく、トンネリング通信のパケットフォーマットは、VPNヘッダの後に直接PDUが含まれる形となり、L2転送型SSL−VPNのパケットフォーマットと互換性がない。このため従来技術では、L2転送型SSL−VPNとポート転送型SSL−VPNとの間に互換性がないのである。
【0033】
(SSL−VPN端末の他の構成例)
既に
図2等で説明したように、本実施の形態では、ポート転送型とL2転送型の2種類の方式を同時に収容できるゲートウェイを実現することができる。ゲートウェイ側(あるいは制御装置側)がクライアントをポート転送型で接続させるのか、L2転送型で接続させるのかを決定し、端末側に対して指示をすることが可能である。
【0034】
端末側では、例えば、本実施の形態に係るSSL−VPN端末か、既存のL2転送型SSL−VPN端末のどちらかを選択することとしてもよいし、1台の端末に両方の機能をソフトウェア(プログラム)として備え、方式を切り替えることとしてもよい。
【0035】
図7に、本実施の形態に係るポート転送型機能と既存のL2転送型機能とを切り替えて使用することができるSSL−VPN端末500の構成例を示す。
【0036】
図7に示すように、当該SSL−VPN端末500は、制御通信部501、プログラム選択部502、プログラム格納部503を備える。
【0037】
制御通信部501は、他の装置から転送型の指示(どの転送型を使用するかの指示)を含む制御信号を受信し、指示された転送型をプログラム選択部502に通知する。プログラム選択部502は、プログラム格納部503から、指示された転送型に対応するプログラムを起動する。あるいは、指示の中に転送型に対応するプログラムが含まれており、当該プログラムを起動することでもよい。
【0038】
プログラム格納部503には、本実施の形態に係るポート転送型SSL−VPNプログラム(
図6に示す101、102、103の機能を含むアプリケーションプログラム)と、既存のL2転送型SSL−VPNプログラムが格納されており、プログラム選択部502からの指示に基づきどちらかが起動される。
【0039】
ポート転送型SSL−VPNプログラムが起動された場合の端末動作は
図6を参照して説明したとおりである。
【0040】
L2転送型SSL−VPNプログラムが起動された場合の動作例を
図8を参照して説明する。本実施の形態では、L2転送型SSL−VPNプログラムは、
図8に示す仮想ネットワークドライバ601とL2転送型SSL−VPNクライアント部602を有する。仮想ネットワークドライバ601は、例えば、Linux(登録商標)ではtan/tup、Windows(登録商標)ではネットワークアダプタドライバもしくはPPPインタフェースドライバである。
【0041】
L2転送型SSL−VPNプログラムが動作するSSL−VPN端末500は、SSL−VPNゲートウェイと接続すると、IPアドレスを割り当てられる。当該IPアドレスは、仮想ネットワークドライバ601が生成した仮想ネットワークインタフェースに付与され、VPNのアドレス帯域がルーティングテーブルに追加される。当該IPアドレスは、接続先のサーバからは送信元の端末のIPアドレスとして見えるものである。
【0042】
ネットワークアプリケーション650がVPN向けの通信を行うと、パケットはルーティングテーブルによって仮想ネットワークドライバ601に送られ、仮想ネットワークドライバ601からL2転送型SSL−VPNクライアント部602に送られる。
【0043】
L2転送型SSL−VPNクライアント部602は、得られたL2フレームのEthernet(登録商標)ヘッダを切り落として、IPパケットとし、当該IPパケットに独自のVPNヘッダを付与してからTLS(SSL)を使用してSSL−VPNゲートウェイに送信する。
【0044】
図8に示すとおり、トンネルを転送されるパケットは、外側にTLS(IP/TCP/TLS)ヘッダがつき、PDUとして内側にIPパケットが埋め込まれる形となり、これは、
図6に示した本実施の形態のポート転送型の場合と同じである。
【0045】
本実施の形態で説明するSSL−VPN端末はいずれも、CPU、メモリ、ハードディスク等の記憶装置を備えたコンピュータに、各機能部に対応するプログラムを実行させることにより実現することができる。当該プログラムは、コンピュータ読み取り可能な記録媒体から上記コンピュータにインストールしてもよいし、ネットワークを介してダウンロードしてインストールすることとしてもよい。
【0046】
(制御動作手順例)
図9に、転送型の選択手順の例を説明する。本例では、通信システムにおいて接続制御装置700が備えられており、当該接続制御装置700が、SIPに類似した手順で、SSL−VPN端末500とSSL−VPNゲートウェイ200間のシグナリング通信を中継することとしている。
【0047】
本例において、接続制御装置700には、例えば、構成情報(例:SSL−VPN端末毎の接続可能なSSL−VPNゲートウェイの情報)と、SSL−VPN端末(の識別情報)毎の転送型(ポート転送型、L2転送型)が保持されている。これらの情報は予め管理者により設定されるものとする。
【0048】
図9に示す例では、まず、SSL−VPN端末500の制御通信部501は、自身の識別情報を含む接続要求を接続制御装置700に送信する(ステップ1)。接続制御装置700は、保持している情報に基づいて、接続先となるSSL−VPNゲートウェイ200を決定し、SSL−VPNゲートウェイ200に接続要求を送信する(ステップ2)。本例においては、接続制御装置700は、認証用のID(IDとパスワード等の意味)と、SSL−VPN端末500の転送型を付加して接続要求を送信する。
【0049】
SSL−VPNゲートウェイ200は、受信したIDを保持するとともに、上記ID及び転送型と、自身のアドレス等の接続先情報を含む接続応答を送信し、接続応答がSSL−VPN端末500に到着する(ステップ3、4)。なお、転送型は、SSL−VPNゲートウェイ200が保持し、SSL−VPNゲートウェイ200により通知されることとしてもよい。
【0050】
そして、SSL−VPN端末500は、受信した転送型に応じて、本実施の形態に係るポート転送型プログラム又はL2転送型プログラムを起動し、いずれかの方式の端末として動作を開始する。
【0051】
SSL−VPN端末500は、接続先情報を用いて、SSL−VPNゲートウェイ200に通信要求(認証用のIDを含む)を送信する(ステップ5)。SSL−VPNゲートウェイ200は、IDにより通信要求の正当性を確認すると、仮想ネットワークにおけるSSL−VPN端末500において、TCPクライアント機能部102(TCP/IPプロトコルスタック)もしくは仮想ネットワークドライバ601に割り当てるIPアドレス(仮想アドレスと呼んでもよい)をSSL−VPN端末500に送信する(ステップ6)。なお、IPアドレスを、SSL−VPNゲートウェイ200から、このタイミングで配布することは一例に過ぎない。このような手順を経て、SSL−VPN端末500とSSL−VPNゲートウェイ200間でトンネル通信可能となる(ステップ7)。
【0052】
なお、上記の例では、接続制御装置700が、SSL−VPN端末500の識別情報に基づいて転送型を決定しているが、当該識別情報は特定の情報に限られず、例えば、ユーザID、端末ID、発信元IPアドレス等であってもよい。また、端末側から希望する方式を接続制御装置700に通知することで、結果として、端末側で希望する方式が選択されてもよい。
【0053】
(実施の形態のまとめ、効果等)
本実施の形態により、クライアントとサーバとの間の接続を行うトンネル接続装置とトンネル終端装置とを備える通信システムにおいて使用される前記トンネル接続装置であって、前記トンネル終端装置との間にトンネルを確立するトンネル接続機能部と、前記クライアントとの間にコネクションを確立するサーバ機能部と、前記サーバ機能部から受け取る前記クライアントのデータを送信するためのコネクションを、前記トンネルを介して前記サーバとの間に確立するクライアント機能部とを備えるトンネル接続装置が提供される。
【0054】
前記コネクションはそれぞれ、例えばTCPコネクションである。前記クライアント機能部は、前記トンネル接続装置となるコンピュータ上で実行されるTCP/IPプロトコルスタックとして実現することができる。
【0055】
また、前記トンネル接続装置は、前記トンネル接続装置と前記トンネル終端装置との間の接続制御を行う接続制御装置とシグナリング通信を行う制御通信機能部と、前記制御通信機能部により前記接続制御装置から受信する信号に基づいて、通信方式を選択する選択機能部とを備えることとしてもよい。
【0056】
また、本実施の形態により、コンピュータを、前記トンネル接続装置における各機能部として機能させるためのプログラムが提供され、また、前記トンネル接続装置と、当該トンネル接続装置とトンネル接続されるトンネル終端装置とを備える通信ネットワークが提供される。
【0057】
また、本実施の形態により、クライアントとサーバとの間の接続を行うトンネル接続装置とトンネル終端装置とを備える通信システムにおいて使用される前記トンネル接続装置が実行するデータ通信方法であって、前記トンネル終端装置との間にトンネルを確立するステップと、前記トンネルを介して前記サーバとの間にコネクションを確立するステップと、前記クライアントからデータを受信し、当該データを前記コネクションを用いて前記サーバに送信するステップとを備えるデータ通信方法が提供される。
【0058】
以上、説明したように、本実施の形態では、SSL−VPNソフトウェアアプリケーションにTCP/IP機能を実装することとし、ポート転送型において、当該アプリケーション内のTCP/IP機能がPDUにTCP/IPヘッダを付加してSSLトンネルにカプセル化する。
【0059】
また、本実施の形態の技術により、接続先は1つのゲートウェイに集められ、接続ネゴシエーション時に、ユーザID、端末ID、端末の発信元アドレスや、さらに端末側から希望される方式からゲートウェイや制御装置側において、ポート転送型で接続させるのか、L2転送型で接続させるのかを決定することができる。これにより、ネットワーク自体は1つのSSL−VPNゲートウェイで構成され、ネットワーク管理者は、接続方式を端末毎に動的に選択させることができるようになる。
【0060】
従来では、接続方式を決定するのはゲートウェイであり、どの種類のゲートウェイが使用されているかによって、接続する端末は全てその方式に従う必要がある。一方、本実施の形態によれば、接続方式の決定権は、端末側もしくは端末を管理する管理者に移る。L2転送型は、比較的自由度が高く、一方、ポート転送型は機能制限されており、セキュリティ強度が高い。端末の使用状況は様々であり、端末毎の利用制限を細かく管理することができるようになる。また、認証サーバやシグナリング技術を組み合わせることで、一つの端末でも利用状況(ID、接続時刻等)によって、接続方式を切り替えることも可能になる。
【0061】
また、副次的効果として、従来のポート転送型SSL−VPNでは、アプリケーションサーバから見ればアクセスしてくるクライアント端末は全てSSL−VPNゲートウェイとなり、IPアドレスが隠蔽されているが、本実施の形態の方式では、ゲートウェイはL2転送型をそのまま使用するので、アクセスしてくる端末のIPアドレスはトンネル毎に付与されたIPアドレスがクライアントの発信元アドレスとして識別できる。
【0062】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。