(57)【要約】パケットがフィルターされる以外の層における安全化された通信リンクを実施するためのシステム、装置および方法が開示される。一実施形態においてコンピュータシステムは、仮想プライベートネットワーク（「ＶＰＮ」）を形成するように構成され、ターゲットサーバへアドレスされた最初のターゲットパケット・トラフィックを識別するためにアドレスインスペクションドライバを備える。また、コンピュータシステムは、アドレスインスペクションドライバから再ルートされた最初のターゲットパケット・トラフィックを受け取るために、偽サーバモジュールを含む。偽サーバモジュールは、ＶＰＮゲートウェイへパケット再生成命令を伝えるように構成される。アドレスインスペクションドライバは、ターゲットサーバへアドレスされた追加的なターゲットパケット・トラフィックを識別するように機能し、追加的なターゲットパケット・トラフィックを偽サーバへルートする。
2007533172.tif 000002
【特許請求の範囲】
【請求項１】
仮想プライベートネットワークを確立することによってリモート・クライアント・コンピュータデバイスとの通信を安全化する方法であって、該方法は、
クライアントコンピュータデバイスにおいて走る通信アプリケーションを用いてパケット・トラフィックを生成することと、
該クライアントコンピュータデバイスにおいて、ターゲットサーバへアドレスされる該パケット・トラフィックのターゲットパケット・トラフィックを識別することと、
該コンピュータデバイス上の偽サーバモジュールと該ターゲットサーバとの間の安全通信リンクを形成することと、
該ターゲットサーバへアドレスされた追加的なパケット・トラフィックを該偽サーバモジュールへダイレクトすることと、
該偽サーバモジュールに再ルートされた該追加的なパケット・トラフィックの受領の際に受領通知を該通信アプリケーションに送信することと、
ペイロードを該ターゲットサーバへルートすること
を包含する方法。
【請求項２】
前記クライアントコンピュータデバイスにおいて、前記ターゲットパケット・トラフィックを識別することが、
アドレスインスペクションドライバにおいて前記パケットトラフィックを調べることと、
前記ターゲットサーバを示すアドレスに該パケットトラフィックの情報をマッチングさせることと、
該ターゲットパケット・トラフィックが前記偽サーバモジュールに再ルートされる際、該ターゲットサーバを示す該アドレスに向かう該パケット・トラフィックのサブセットをフィルタすること
を包含する、請求項１に記載の方法。
【請求項３】
前記偽サーバと前記ターゲットサーバとの間の前記安全通信リンクを形成することが、
前記ターゲットパケット・トラフィックを前記クライアントコンピュータデバイス上の前記偽サーバモジュールへ再ルートすることであって、該偽サーバモジュールが該ターゲットサーバへパケット再生成命令を伝える、ことと、
該ターゲットサーバにおいての該パケット再生成命令の受領に応じて、該ターゲットサーバからリンク受領通知を受け取ることと、
前記通信アプリケーションへ該リンク受領通知を伝えること
を包含する、請求項１に記載の方法。
【請求項４】
前記パケット再生成命令を伝えることが、前記ターゲットサーバにおいてヘッダー情報を再生成するための情報を含むことを含む、請求項３に記載の方法。
【請求項５】
情報を含むことが、第１のフォーマットから第２のフォーマットへの前記ターゲットパケット・トラフィックの変換からの変換情報を含むことをさらに包含する、請求項４に記載の方法。
【請求項６】
変換情報を含むことが、送信制御プロトコル（「ＴＣＰ」）に関連する前記第１のフォーマットをユーザデータプロトコル（「ＵＤＰ」）に関連する前記第２のフォーマットへ変換する情報を含む、請求項５に記載の方法。
【請求項７】
前記ペイロードを前記ターゲットサーバへルートすることが、ペイロードを形成するために、前記追加的なパケット・トラフィックからヘッダー情報を取り去ることを含む、請求項１に記載の方法。
【請求項８】
前記受領通知が誤り受領通知である、請求項１に記載の方法。
【請求項９】
仮想プライベートネットワークを形成するコンピュータシステムであって、該コンピュータシステムは、
ターゲットサーバへアドレスされた最初のターゲットパケット・トラフィックを識別するアドレスインスペクションドライバと、
該アドレスインスペクションドライバから、ルートされた最初のターゲットパケット・トラフィックを受け取る偽サーバモジュールであって、該偽サーバモジュールが該ターゲットサーバへパケット再生成命令を伝える、偽サーバモジュールと
を備え、
該アドレスインスペクションドライバが、該ターゲットサーバへアドレスされる追加的なターゲットパケット・トラフィックを識別し、該偽サーバへ該追加的なターゲットパケット・トラフィックをルートし、
該偽サーバが、ペイロードを形成するために、該追加的なターゲットパケット・トラフィックからヘッダー情報を取り去り、その後、該ペイロードを該ターゲットサーバへルートする、コンピュータシステム。
【請求項１０】
ソース情報および行先情報を含むように構成されるドライバマッピングデータ構成をさらに含み、前記アドレスインスペクションドライバが、前記最初のパケット・トラフィックからのパケット情報を該ソース情報および行先情報と比較する、請求項９に記載のコンピュータシステム。
【請求項１１】
前記パケット情報の少なくとも一部分が、前記行先情報の少なくとも一部分とマッチングする場合、前記アドレスインスペクションドライバが、暗号化されずに前記ターゲットサーバへパスさせないように、前記追加的なターゲットパケット・トラフィックをフィルタするように構成される、請求項９に記載のコンピュータシステム。
【請求項１２】
前記アドレスインスペクションドライバが、前記最初のターゲットパケット・トラフィックに関連する前記偽サーバへ再ルートされる制御パケットを生成するように構成される、請求項９に記載のコンピュータシステム。
【請求項１３】
前記制御パケットが、前記ターゲットサーバから生ずるパケット・トラフィックを検出するために、前記最初のターゲットパケット・トラフィックのソース情報および行先情報を含む、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記パケット再生成命令が、再生成されたヘッダー情報および前記ペイロードを含む再生成されたパケット・トラフィックを形成するために、前記ターゲットパケット・トラフィックを再生成するように前記ターゲットサーバを命令するように構成される、請求項９に記載のコンピュータシステム。
【請求項１５】
プロトコルスタックをさらに備え、該プロトコルスタックにおいて、前記アドレスインスペクションドライバがネットワーク層に、またはネットワーク層付近に存在し、前記偽サーバモジュールがトランスポテーション層に、または該トランスポテーション層付近に存在し、該ネットワーク層および該トランスポテーション層は、オープンシステム相互接続モデルに従う層である、請求項９に記載のコンピュータシステム。
【請求項１６】
前記アドレスインスペクションドライバは、前記ネットワーク層において、または該ネットワーク層付近においてパケットを調べ、フィルターし、それによって、任意のルーティングプロトコルををサポートし、該任意のルーティングプロトコルを用いて前記仮想プライベートネットワークにおいて安全化された通信リンクを確立する、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記偽サーバが、前記トランスポテーション層に生ずる、または前記トランスポテーション層付近に生ずる安全化された通信リンクへ暗号化されたパケットをパスさせ、それによって、該暗号化されたパケットを、ネットワークアドレストランスレーション（「ＮＡＴ」）−イネーブルされたネットワークデバイスを介してパスさせることが可能である、請求項１７に記載のコンピュータシステム。
【請求項１８】
通信アプリケーションが偽サーバマシーンからパケット・トラフィック受領通知を受け取るように、クライアントマシーン上で走る該通信アプリケーションに対する該偽サーバマシーンとして構成されるクライアントマシーンと、
該クライアントマシーンとサーバマシーンとの間の安全通信を促進するために、該偽サーバマシーンに対する該クライアントマシーンとして機能するために、該サーバマシーンを用いて作動する仮想プライベートネットワークゲートウェイと
を備える、仮想プライベートネットワーク。
【請求項１９】
前記仮想プライベートネットワークゲートウェイが、前記通信アプリケーションを走らせる前記クライアントマシーンのアドレスを前記サーバマシーンから選択的に隠す、請求項１７に記載の仮想プライベートネットワーク。
【請求項２０】
前記偽サーバマシーンが、前記パケット・トラフィック受領通知を誤り受領通知として生成する受領通知生成モジュールを含む、請求項１７に記載の仮想プライベートネットワーク。
【請求項２１】
前記偽サーバマシーンが、ヘッダー情報をパケットから取り去ることによって該修正されたパケットを形成するために、前記安全通信を示すパケットを修正するように構成されたパケット修正モジュールを含む、請求項１７に記載の仮想プライベートネットワーク。
【請求項２２】
前記偽サーバマシーンが、前記安全通信をパスするために用いられる、ソケット層の生ソケットを形成するように構成される、請求項２１に記載の仮想プライベートネットワーク。
【請求項２３】
前記偽サーバマシーンは、ＵＤＰパケットがＴＣＰパケットであることを示すために、ＵＤＰパケットにあるフラグを修正するように構成されたフラグ−ＵＤＰ−ａｓ−ＴＣＰモジュールを含み、それによって、偽ＵＤＰパケットを形成する、請求項１７に記載の仮想プライベートネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、安全化された通信ネットワークに関する。より特定的に、本発明は、リモートデバイスとゲートウェイデバイスとの間における安全化された通信リンクを確立するためのシステム、デバイス、および方法に関し、それによって、（例えば、リモート・コンピュータデバイスのような）少なくともリモートデバイスが、パケット・トラフィックをキャプチャし、そのリモートデバイスにおいてリダイレクトするように、および、リアルタイム・アプリケーションにおける暗号化されたパケット・トラフィックの待ち時間を最短にするためにパケットを修正するように構成される。
【背景技術】
【０００２】
インターネットプロトコルセキュリティ（「ＩＰｓｅｃ」）およびセキュアソケット層（「ＳＳＬ」）は、インターネットのような公衆通信ネットワーク上において仮想プライベートネットワーク（「ＶＰＮ」）を確立するために用いられる従来の暗号化プロトコルの例であり、それらによって、認証されたユーザのみが、そのＶＰＮにあるデータにアクセスできることを確立する。これらを実施する従来のＶＰＮおよび他の従来の暗号化プロトコルは機能的な一方、複数の不利な点を有する。
【０００３】
ＩＰｓｅｃの実施に対する不利な点は、例えば、大半のファイアウォールが最低の作業量を以って、ＩＰｓｅｃ−暗号化パケット・トラフィックを、特にネットワークアドレストランスレーション（「ＮＡＴ」）を行うそれらを、効果的にルートできないことである。ＮＡＴトラバース技術は、ＮＡＴファイアウォールを介してＩＰｓｅｃ−暗号化パケットをパスさせるために存在するが、これらの技術は、ＩＰｓｅｃ−暗号化パケットを複数のポート（例えば、ポート８０および４４３）に限定され、それによってボトルネックが形成される。他の不利な点は、リモート・コンピュータデバイスに割り当てられたアドレスが、そのリモート・コンピュータデバイスに接続されるプライベートネットワークから可視であるということをＩＰｓｅｃを実施するＶＰＮが必要とすることである。そして、それは、安全に関する特定の違反に対する弱点を引き起こす。例えば、プライベートネットワークにあるクライアントを汚染するワームは、リモート・コンピュータデバイスを含むプライベートネットワークにおいてそのワーム自体を繁殖するためにそのリモートデバイスの可視アドレスを用いる。ＩＰｓｅｃベースのＶＰＮの少なくとも一部の不利な点は、イーサネット（登録商標）フレームレベルのようなネットワーク層においてパケットインスペクションと暗号化との両方を行うことに起因する。
【０００４】
ＳＳＬの実施に対する不利な一点は、例えば、このプロトコルは、典型的にウェブアプリケーションに限定されることであり、それによってブラウザベースでない多数の他のアプリケーションの使用が排除される。他の不利な点は、ＳＳＬベースのＶＰＮが広域のプロトコルのルートをサポートすることである。従って、ＳＳＬベースのＶＰＮは、ＩＰ上のボイスまたは「ＶｏＩＰ」、およびピア・ツー・ピアアプリケーションのようなリアルタイム・アプリケーションを通常、サポートしない。ＳＳＬベースのＶＰＮの少なくとも一部の不利な点は、トランスポート層（または、アプリケーション層）においてパケットインスペクションと暗号化との両方を行うことに起因し、それは、ルートプロトコルを例えば、ユーザデータプロトコル（「ＵＤＰ」）および送信制御プロトコル（「ＴＣＰ」）に限定する。
【０００５】
従って、ＶＰＮにおける暗号化プロトコルの上記の実施に対する不利な点を克服するシステム、装置および方法の必要性が存在する。特に、パケット・トラフィックをキャプチャし、リモートデバイスにリダイレクトすることにより、そして、リアルタイム・アプリケーションにおける暗号化されたパケット・トラフィックの待ち時間を最短にするためにパケットを修正することにより、リモート・コンピュータデバイスからプライベートネットワークへの安全化された通信リンクを確立するシステム、装置および方法の必要性が存在する。
【発明の開示】
【課題を解決するための手段】
【０００６】
パケットがフィルターされる以外の層における安全化された通信リンクを実施するためのシステム、装置および方法が開示される。一実施形態において、コンピュータシステムは、仮想プライベートネットワーク（「ＶＰＮ」）を形成するように構成され、ターゲットサーバへアドレスされた最初のターゲットパケット・トラフィックを識別するためにアドレスインスペクションドライバを備える。また、コンピュータシステムは、アドレスインスペクションドライバから再ルートされた最初のターゲットパケット・トラフィックを受け取るために、偽サーバモジュールを含む。偽サーバモジュールは、ＶＰＮゲートウェイへパケット再生成命令を伝えるように構成される。アドレスインスペクションドライバは、ターゲットサーバへアドレスされた追加的なターゲットパケット・トラフィックを識別するように機能し、追加的なターゲットパケット・トラフィックを偽サーバへルートする。一実施形態において、偽サーバは、ペイロードを形成するために、追加的なターゲットパケット・トラフィックからヘッダー情報を取り去り、その後、ペイロードをターゲットサーバへルートする、仮想プライベートネットワークを形成するように構成される。
【０００７】
本発明の他の実施形態に従う方法が開示され、それによって、方法は、仮想プライベートネットワークを確立することによってリモート・クライアント・コンピュータデバイスとの通信を安全にする。方法は、仮想プライベートネットワークを確立することによってリモート・クライアント・コンピュータデバイスとの通信を安全化する方法であって、その方法は、クライアントコンピュータデバイスにおいて走る通信アプリケーションを用いてパケット・トラフィックを生成することと、クライアントコンピュータデバイスにおいて、ターゲットサーバへアドレスされるパケット・トラフィックのターゲットパケット・トラフィックを識別することと、コンピュータデバイス上の偽サーバモジュールとターゲットサーバとの間の安全通信リンクを形成することと、ターゲットサーバへアドレスされた追加的なパケット・トラフィックを偽サーバモジュールへダイレクトすることと、偽サーバモジュールに再ルートされた追加的なパケット・トラフィックの受領の際に受領通知を通信アプリケーションに送信することと、ペイロードをターゲットサーバへルートすることを包含する。
【０００８】
他の実施形態において、仮想プライベートネットワークは、クライアントマシーン上で走る通信アプリケーションに対する偽サーバマシーンとして構成されるクライアントマシーンを備える。通信アプリケーションは、偽サーバマシーンからパケット・トラフィック受領通知を受け取るように構成される。仮想プライベートネットワークゲートウェイが含まれ、それは、クライアントマシーンとサーバマシーンとの間の安全通信を促進するために、偽サーバマシーンに対するクライアントマシーンとして機能するために、サーバマシーンを用いて作動する。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の一実施形態に従って、リモート・コンピュータデバイスとＶＰＮゲートウェイ・コンピュータデバイスとの間の安全化された通信リンクを確立するための仮想プライベートネットワーク（「ＶＰＮ」）を示す図である。仮想プライベートネットワーク１００は、暗号化されたデータを交換するために、安全化された通信リンク（「ｓｅｃｕｒｅｄ  ｃｏｍｍ．  ｌｉｎｋ」）１９０を介してプライベートネットワーク１５０に結合されているリモート・クライアント・コンピュータデバイス（「クライアント」）１１０を含む。リモート・クライアント・コンピュータデバイス１１０は、ネットワーク層における、またはネットワーク層の近くの（すなわち、オープンシステム相互接続モデルの層２または「ＯＳＩ」モデル）一つ以上の仮想プライベートネットワーク（「ＶＰＮ」）に関連しているパケット・トラフィックをキャプチャおよび再ルートするように構成されている。ネットワーク層においてパケットをキャプチャおよびインスペクトすることによって、リモート・クライアント・コンピュータデバイス１１０は、例えば、インターネットプロトコル（「ＩＰ」）、ＴＣＰ、ＵＤＰ、インターネット制御メッセージプロトコル（「ＩＣＭＰ」）、Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ（「ＧＲＥ」）テクニック、アップルトーク、ネットバイオス等を含むネットワーク・トラフィックの広範囲をインスペクトすることが可能である。さらに、リモート・クライアント・コンピュータデバイス１１０は、トランスポート層（すなわち、層４）におけるまたはトランスポート層の近くの安全化された通信リンク１９０（または「トンネル」）を生成でき、それによって、暗号化されたパケットがネットワークアドレス交換（「ＮＡＴ」）を基にしたファイアウォールおよびネットワークデバイスを介してパスすることを許可する。少なくとも一実施形態においては、プライベートネットワーク１５０は、そのプライベートネットワークにおけるコンピュータデバイス（例えば、ターゲットサーバ１５４）から隠すことができるリモート・クライアント・コンピュータデバイス１１０にアドレスを割当て、それによって、リモート・クライアント・コンピュータデバイス１１０のワームのようなセキュリティ脅威へさらすことを減らす。特定の実施形態においては、リモート・クライアント・コンピュータデバイス１１０は、例えば、安全化された通信リンク１９０を介して、トランスポートの前に、ヘッダ情報を取り去ることによってパケットを修正するように構成され、それによって、リアルタイム・アプリケーションにおける暗号化されたパケット・トラフィックの待ち時間を最小化する。
【００１０】
図示されていないが、リモート・クライアント・コンピュータデバイス１１０は、様々なユーザレベルコンピュータ・ソフトウェア・アプリケーション（例えば、マイクロソフトアウトルック（商標登録)）を走らせるために、それぞれのプロセッサならびにプログラム命令を実行および格納するためのそれぞれのメモリを含む。リモート・クライアント・コンピュータデバイス１１０は、コンピュータ・ソフトウェア・アプリケーションとプライベートネットワーク１５０との間においてデータを交換するための中継として、通信アプリケーション１１２を含む。通信アプリケーション１１２の実施例は、テルネット、ファイル転送プロトコル（「ＦＴＰ」）、Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（「ＳＭＴＰ」）、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（「ＨＴＴＰ」）等である。
【００１１】
さらに、リモート・クライアント・コンピュータデバイス１１０は、安全化された通信リンク１９０のエンドの少なくとも一つを生成するように構成されているトンネル・ジェネレータ１１６を含む。トンネル・ジェネレータ１１６は、各々がハードウェアまたはソフトウェアのどちらか、もしくは両方によって構成されているアドレス・インスペクションドライバ（「ＡＩＤ」）１２２、偽サーバ（「ＰＳ」）１２０、および暗号器１２４を含む。アドレス・インスペクション・ドライバ（「ＡＩＤ」）１２２は、ネットワーク（例えば、イーサネット（登録商標））フレームのようなパケット・トラフィックをキャプチャおよびインスペクトするために、ネットワーク層においてまたはネットワーク層の近くに配置され、リモート・クライアント・コンピュータデバイス１１０の一つ以上のネットワークアダプタをトラバースする。例えば、キャプチャされたパケットのＩＰヘッダのインスペクションの間、アドレス・インスペクションドライバ１２２は、キャプチャされたパケットがプライベートネットワーク１５０のために前もって定められているかを決定する。パケットがプライベートネットワーク１５０のために固定されていない（ｎｏｔ  ｂｏｕｎｄ）場合、次にアドレス・インスペクションドライバ１２２は、暗号化されていないパケットとしてパス１１４を介してインターネット１０２へパケットをフォワードする。
【００１２】
パケット・トラフィックが、プライベートネットワーク１５０（すなわち、「ターゲット・パケット・トラフィック」）に前もって定められていると識別された時、アドレス・インスペクションドライバ１２２は、そのパケット・トラフィックがパス１１４へパスアウトしないようにフィルタする。アドレス・インスペクションドライバ１２２は、偽サーバ１２０のトラフィックポートへ再ルートするために、フィルタされたパケット（すなわち、ターゲット・パケット・トラフィック）を、「着信パケット」として再構成する。一部の実施形態においては、そのトラフィックポートはリモート・クライアント・コンピュータデバイス１１０の「周知されたポート」になることができ、周知されたポートは、任意のポートナンバー０から１０２４等になることができる。さらに、アドレス・インスペクションドライバ１２２は、制御パケットとしてカプセル化された制御情報を、再ルートされた、フィルタされたパケットと共に、偽サーバ１２０に送信するようにも構成されている。偽サーバ１２０が、同等の制御情報が適用できる他のパケットを検出する一方、各再ルートされた、フィルタされたパケットのために制御パケットを生成することは、必要ではないことに留意したい。アドレス・インスペクションドライバ１２２が、ネットワークドライバインターフェイス仕様（「ＮＤＩＳ」）に従い、実施されることができる一方、ＵＮＩＸ（登録商標）、ライナックス、マイクロソフトウィンドウズ（登録商標）等のような任意の周知されたオペレーティングシステムによって動作可能なプログラム命令においても実施させることができる。
【００１３】
偽サーバ（「ＰＳ」）１２０は、安全化された通信リンク１９０から暗号化されたパケット・トラフィックを受信するため、およびアドレス・インスペクションドライバ１２２から再ルートされた暗号化されたパケット・トラフィックを送信する（すなわち、リダイレクトする）ために、トランスポート層において、またはトランスポート層の近くに配置される。一部の実施形態においては、偽サーバ１２０は、例えば、安全化された通信リンク１９０を介してトランスポートの前にヘッダ情報を取り去ることによって、パケットを修正するように構成されている。動作においては、偽サーバ１２０は、再ルートされた着信パケットを認めることを待つそのトラフィックポートおよびアドレス・インスペクションドライバ１２２からパスする任意の制御パケットをモニタする（または「リスン」する）。偽サーバ１２０は、制御パケットをそれぞれの再ルートされたパケットと関連させ、次にプライベートネットワーク１５０への送信のためのメッセージフレーム１３２を生成する。メッセージフレーム１３２は、他のものに加えて、プライベートネットワーク１５０におけるパケットを再構成するための再生成命令を含む。メッセージフレーム１３２は次に、一般に、暗号化され、およびプライベートネットワーク１５０へ安全化された通信リンク１９０を通じて送信される。
【００１４】
偽サーバ１２０が、安全化された通信リンク１９０から暗号化されたパケット・トラフィックを送信するよりむしろ受信する時、偽サーバ１２０は、暗号器１２４にパスすることによってそのパケットの暗号解読を提供することに留意されたい。次に、偽サーバ１２０は、アドレス・インスペクションドライバ１２２に、制御情報がある場合、その制御情報と共に、解読されたパケットをパスする。応答において、アドレス・インスペクションドライバ１２２は、通信アプリケーション１１２に再ルートするために、その解読されたパケット信号を「着信パケット」として再構成する。
【００１５】
少なくとも一実施形態においては、偽サーバ１２０は、修正されたパケットを形成するために、発信パケットを修正するように構成されている。本実施例においては、偽サーバ１２０は、プライベートネットワーク１５０に固定された（ｂｏｕｎｄ）発信パケットからのヘッダ情報を取り去ることができる。取り去られることができるヘッダ情報の実施例は、ＴＣＰヘッダ、ＩＰヘッダ、およびリンク層ヘッダ等を含む。ヘッダ情報が取り去られるパケットの残留データは、各々がペイロードを含む「修正されたパケット」として言及される。修正されたパケットは、「ペイロード」１３８として図１において示されている。さらに、メッセージフレーム１３２は、プライベートネットワーク１５０における前もって修正されたパケットを再生成するために、取り去られたされたヘッダ情報を再構成する再生成命令を含む。一部の場合においては、メッセージフレーム１３２は認証情報を含むことができる。メッセージフレーム１３２が、プライベートネットワーク１５０の少なくとも一つのエンティティによって一度理解されると、リンク受領通知（「ＡＣＫ」）１３４は、トンネルジェネレータ１１６に返される。本発明の特定の実施形態においては、偽サーバ１２０は、修正されたパケット１３８によって構成されている追加のトラフィック１３６をプライベートネットワーク１５０に運ぶように構成する偽ＵＤＰパケットとしての修正されたパケットを形成する。そのように、トンネルジェネレータ１１６は、ＴＣＰスタンダードによって要求される受領通知と関連する遅れを防ぐために修正されたパケット１３８を送信する時、受領通知１３０を生成する。リモート・クライアント・コンピュータデバイスが、修正されたパケット１３８を送る時、受領通知（例えば、ＴＣＰ受領通知）のために待つ必要がないように、受領通知１３０は、「誤り受領通知」として実施されることができる。従って、修正されたパケット１３８は、ＵＤＰパケットとして振舞うことができるＴＣＰパケットである。そのように、パケットトラバースリンク１９０がＴＣＰパケットのふりをするＵＤＰパケットである一方、安全化された通信リンク１９０は、スタンダードＴＣＰ接続より「バーチャルＴＣＰ接続」として言及され得る。一実施形態においては、トンネルジェネレータ１１６は、トラフィック・ターゲット・パケットがタイム・センシティブ（すなわち、リアルタイム・アプリケーションの一部）であるビデオまたはオーディオのような特定のタイプのデータを含むことを決定し、修正されたパケット１３８を形成するためにそのトラフィック・ターゲット・パケットを選択的に修正する。
【００１６】
暗号器１２４は、プライベートネットワーク１５０との接続を確立するために、ならびにそれぞれのリモート・クライアント・コンピュータデバイス１１０をエグジットおよびエンターをするパケットを暗号化および解読するように構成されている。例えば、暗号器１２４は、Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（「ＨＴＴＰＳ」）、プロキシＨＴＴＰＳ、およびそのような接続プロトコルを用いて接続を確立できる。これらの接続プロトコルが一般に、トランスポテーション層（またはより高い層）において効力があると共に、暗号器１２４は、ＮＡＴベースのファイアウォールおよびブリッジをトラバースするために適した接続を確立する。一度接続（例えば、ＨＴＴＰＳ）が確立されると、プライベートネットワーク１５０に固定されたパケットのペイロードが、例えば、安全ソケット層（「ＳＳＬ」）またはトランスポート層セキュリティ（「ＴＬＳ」）プロトコル等を用いて解読される。暗号器１２４は、取り去られない場合、ＩＰヘッダのようなヘッダ情報を含む全体のパケットを解読できる。
【００１７】
プライベートネットワーク１５０は、リモート・クライアント・コンピュータデバイス１１０が通信を確立する任意のコンピュータデバイス（サーバまたはクライアントのどちらかとして）を表すターゲットサーバ１５４およびＶＰＮゲートウェイ１５２を含む。ＶＰＮゲートウェイ１５２は、リモート・クライアント・コンピュータデバイス１１０との安全化された通信リンク１９０の確立を調整する中継コンピュータデバイスである。ＶＰＮゲートウェイ１５２は、リモート・クライアント・コンピュータデバイス１１０とターゲットサーバ１５４との間の通信を交換する。さらに、ＶＰＮゲートウェイ１５２は、少なくともいくつかの点においては、リモート・クライアント・コンピュータデバイス１１０と同様である。すなわち、ＶＰＮゲートウェイ１５２は、アドレス・インスペクションドライバ（「ＡＩＤ」）１２２および偽サーバ（「ＰＳ」）１２０も同様に、全て図示されていないが、プロセッサ、メモリ、および暗号器を含む。ＡＩＤ１２２およびＰＳ１２０は、リモート・クライアント・コンピュータデバイス１１０に関連して記載されているものように、同様の機能性および／または構造を有す。
【００１８】
ＶＰＮゲートウェイ１５２は、トンネルマネージャ（「Ｔｕｎｎｅｌ  Ｍｇｒ」）１６０およびアドレストランスレータ（「Ａｄｄｒ  Ｔｒａｎｓ」）１６２も含む。トンネルマネージャ１６０は、少なくとも偽サーバ１２０およびアドレス・インスペクションドライバ１２２にソフトウェアプログラムとしてダウンロードするように構成されている。さらに、トンネルマネージャ１６０は、構成情報を提供するように構成されている。構成情報は、リモート・クライアント・コンピュータデバイス１１０がターゲット・パケット・トラフィックとしてどのパケットをフィルタアウトするか選択できるように、プライベートネットワーク１５０に関連するアドレスの範囲を含むことができる。さらに、トンネルマネージャ１６０は、メッセージフレーム１３２を受信するように構成され、ならびに、例えば、ＩＰヘッダ情報および／またはリモート・クライアント・コンピュータデバイス１１０の割当てられたアドレスを含むためにパケットを再生成する。
【００１９】
アドレストランスレータ１６２は、ＮＡＴ処理を提供するように構成され、より詳細には、ターゲットサーバ１５４からリモート・クライアント・コンピュータデバイス１１０の割当てられたアドレスを隠すためのリバースＮＡＴ処理を提供するように構成されている。示すために、ＴＣＰ接続がリモート・クライアント・コンピュータデバイス１１０から１９２．１６８．１．１００の行先アドレスを有すターゲットサーバ１５４へ生成される以下の実施例を考慮されたい。最初に、ＴＣＰ  ＳＹＮパケットが１９２．１６８．１．１００のアドレスのために生成される。トンネルジェネレータ１１６は、このＳＹＮパケットを安全化された通信リンク１９０を通じてパスする。ＶＰＮゲートウェイ１５２は、パケットが着いた時に調べ、１９２．１６８．１．１００のためのＳＹＮパケットであることを決定する。次に、ＶＰＮゲートウェイ１５２は、新しいＳＹＮパケットがＶＰＮゲートウェイ１５２のプライベートアドレスである１９２．１６８．１．２から生じた事を示すためにソースアドレスが現ると共に、１９２．１６８．１．１００に前もって定められた新しいＳＹＮを生成する（すなわち、そのパケットをリプレイまたは再生成する）。１９２．１６８．１．１００のアドレスにあるターゲットサーバ１５４が、ＳＹＮ−ＡＣＫパケットを生成した後、次にＶＰＮゲートウェイ１５２がこのパケットを受信する。次に、新しいＳＹＮ−ＡＣＫパケットは、次に、安全化された通信リンク１９０を通じてトンネルジェネレータ１１６に運び返され、ＳＹＮ−ＡＣＫパケットを生成する。このパケットは、リモート・クライアント・コンピュータデバイス１１０によって示されるように、アドレス１９２．１６８．１．１００にあるターゲットサーバ１５４から起したことを現す。手短に言うと、ＶＰＮゲートウェイ１５２は、ＶＰＮゲートウェイ１５２の固有のソースポートナンバーを用いて、マップリプライ・パケットおよび受領通知またはそのプロトコルの一部として任意の他のパケットをリバースできる。このようにして、リモート・クライアント・コンピュータデバイス１１０は、任意の外部のプライベートネットワークと接続し、ＩＰ不可視性を依然として保持できる。そのような不可視性は、アプリケーション−ｂｙ−アプリケーションベースに置くことができる。一部の場合においては、ＶＰＮゲートウェイ１５２は、トンネルジェネレータへうまく確立された安全化された通信リンクのために割当てられたプライベートアドレスを送信することによって、必要に応じて、アドレス可視性を可能にすることができ、次に、存在するリモート・クライアント・コンピュータデバイスにプライベートアドレスを割当てる。しかし、リモート・クライアント・コンピュータデバイスのアドレスの可視性が必須ではないことに留意し、例えば、音声アプリケーションまたは任意の他のピア・ツー・ピアアプリケーションのような特定のアプリケーションを容易にするために、必要に応じて可能にすることができる。
【００２０】
特定の実施形態においては、リモート・クライアント・コンピュータデバイス１１０は、安全化された通信リンク１９０の未決（ｐｅｎｄｅｎｃｙ）と同時に、もう一つの安全化された通信リンク１９２（リンク１９０と同様な）をもう一つのプライベートネットワーク（「ｎ」）１９８に確立できる。そのようにして、リモート・クライアント・コンピュータデバイス１１０は、特に、行先ネットワークアドレスが部分的または完全にオーバーラップしている場合において、同時に複数のＶＰＮトンネルまたは安全化された通信リンクを異なるプライベートサブネットまたはネットワークに確立できる。インターネット１０２が、本発明の実施形態に従って安全化された通信リンク１９０が確立できる通信ネットワークとして例示される一方、リモート・クライアント・コンピュータデバイス１１０は、ワイアレスネットワークのような任意のタイプの通信ネットワークへのトンネルを形成するためにトンネルジェネレータ１１６を使用できることに留意したい。本発明の実施形態は、本発明の範囲および精神から逸れることなく、任意のルーティングプロトコル（例えば、インターネットプロトコルバージョン６、「ＩＰｖ６」）を用いて、任意のパケット交換技術（例えば、イーサネット（登録商標）ネットワーク）において、任意の通信メディア（例えば、イーサネット（登録商標）ケーブリング、ワイアレス、オプティカルファイバ等）を通じて、およびエンドステーションとして任意のコンピュータデバイス（例えば、ワイアレスステーション）による使用のために、実施し得ることも理解される。
【００２１】
図２は、本発明の一実施形態に従い、安全化された通信リンクを通じて通信パケットの例示的方法を示すフロー図２００である。２０２においては、リモート・クライアント・コンピュータデバイスにおいて走るテルネットアプリケーションのような通信アプリケーションは、ユーザレベルアプリケーションによるプライベートネットワークをアクセスするリクエストに応答して、パケット・トラフィックを生成する。２０４におけるクライアント・コンピュータデバイスは、ターゲットサーバに固定されたターゲット・パケット・トラフィックを識別する。２０６においては、ターゲット・パケット・トラフィックは、例えば、ＶＰＮゲートウェイへパケット再生成命令を少なくとも運ぶために、偽サーバモジュールに再ルートされる。２０８においてクライアント・コンピュータデバイスは、ＶＰＮゲートウェイから送信されたリンク受領通知を受信し、それによって、例えば、クライアントとプライベートネットワークとの間の安全化された通信リンクが動作可能であることの信号を送る。次に、リンク受領通知は、２１０において、パケット転送を開始するために、通信アプリケーションに運ばれる。２１２においては、ターゲットサーバにアドレスされた追加のパケット・トラフィックは、例えば、アドレス・インスペクションドライバから偽サーバモジュールにダイレクトされることができる。それに応じて、２１４において受領通知は、本発明の少なくとも一実施形態に従って、ターゲットサーバへの送信の前に、偽サーバモジュールにおける追加のパケット・トラフィックの受領において、通信アプリケーションに送信できる。一部の実施形態においては、ヘッダ情報は、２１６においてペイロードを形成するために追加のパケット・トラフィックから取り去られる。次に、２１８におけるペイロードは、ＶＰＮゲートウェイへルートされる。
【００２２】
図３は、本発明の一実施形態に従うリモート・クライアント・コンピュータデバイスを記載するためのブロック図である。本実施例におけるコンピュータデバイス３０２は、暗号化されたパケット・トラフィック３９０を、例えば、安全化された通信リンク３８０を介してプライベートネットワークにある配置されたもう一つのコンピュータデバイスと交換することが可能である。図３に示されている実施例おいては、コンピュータデバイス３０２は、例えば、イーサネット（登録商標）ネットワークアダプタになることができるネットワークインタフェースカード（「ＮＩＣ」）３２４に結合されているオペレーティングシステム３０４を含む。オペレーティングシステム３０４は、アプリケーション層のような高レベルプロトコル層からＮＩＣ３２４を含むフィジカルな層のような低レベルプロトコル層までバインドするための任意のネットワークプロトコルのセットになることができるプロトコルスタック３１０も含む。示されているように、本発明の特定の実施形態に従って、プロトコルスタックは、偽サーバ３１７、アドレス・インスペクションドライバ３２３、および暗号化プロトコル３１０を含む。
【００２３】
プロトコルスタック３１０は、少なくともトランスポート層、ネットワーク層、およびリンク層を含むように示されている。トランスポート層は、ＵＤＰ処理３１２のようなトランスポートプロトコル、ＴＣＰ処理３１４（すなわち、ＴＣＰサービス）または「ＩＣＭＰ」のような任意のもう一つのタイプのトランスポートプロトコルである「他のトランスポート」プロトコル３１６の少なくとも一つを含む。図３は、ＩＰ処理３１８（すなわち、ＩＰｖ４またはＩＰｖ６サービス）を含むネットワーク層が、リンク層を越えて次のより高い層であり得ることを示す。本実施例において、偽サーバ３１７は、トランスポート層に配置され、アドレス・インスペクションドライバ３２３はネットワーク層の近くに配置される。特に、アドレス・インスペクションドライバ３２３は、データリンク層に配置される。ＳＳＬのような暗号化プロトコル３１０は、偽サーバ３１７と並んで、または偽サーバ３１７の上に配置されることができ、図１の暗号器１２４を実施するのに適している。図３において、暗号化プロトコル３１０は、ＴＣＰ処理３１４の上の層にある。
【００２４】
本発明の一実施形態に従って、プロトコルスタック３１０は、ソフトウェアにおいて組み入れられた処理のコレクションである。他の実施形態においては、プロトコルスタック３１０および／またはその構成要素は、ソフトウェア、ハードウェア、またはその両方に組み入れられることができる。プロトコルスタック３１０の各々の処理（例えば、ＴＣＰ３１４、ＩＰ３１８等）は、プロトコルスタック３１０の層を越えるように、各々の他の処理と通信するように構成されている。トランスポート層のようなより高いレベル層は、例えば、ウィンソックＡＰＩ３０８を介して（または、例えば、生ソケットを確立するための任意の他のソケット層プログラム）アプリケーション３０６と通信するように構成されても良い。ウィンソックＡＰＩ３０８は、テルネットアプリケーションであり得るアプリケーション３０６を有すインターフェースを提供する。ネットワーク層またはリンク層のどちらかのようなより低いレベル層は、例えば、ＭＡＣドライバ３２２を介して、ＮＩＣ３２４と通信するように構成されても良い。安全化された通信リンクを確立するための偽サーバ３１７とアドレス・インスペクションドライバ３２３との間の例示的なインタラクションは、図４および図５において次に記載されている。
【００２５】
図４は、本発明の特定の実施形態に従って、ターゲット・パケット・トラフィックをリモート・クライアントからプライベートネットワークに送信する時の偽サーバとアドレス・インスペクションドライバとの間のインタラクションを示す機能的なブロック図４００である。本実施例において、暗号器１２４および偽サーバ１２０は、トランスポート層４０４に配置され、アドレス・インスペクションドライバ（「ＡＩ  Ｄｒｖｒ」）１２２は、ネットワーク層４０８に配置される。再び、一部の実施形態において、アドレス・インスペクションドライバは、データリンク層において存在することに留意されたい。偽サーバ１２０は、「キー」、ソースアドレス（「ＳＡ」）、ソースポート（「ＳＰ」）、行先アドレス（「ＤＡ」）および行先ポート（「ＤＰ」）のようなパケット情報を保持するポート転送マッピングデータ構造４４０に結合される。同様に、アドレス・インスペクションドライバ１２２は、ドライバマッピングテーブルデータ構造４２２として示されている類似したデータ構造を保持する。さらに、アドレス・インスペクションドライバ１２２は、ＶＰＮゲートウェイによって提供される構成情報を含むフィルタテーブル４２０にも結合されている。フィルタテーブル４２０は、ターゲット・パケット・トラフィックに関連している行先情報を独特に識別するために、ソースアドレスおよび行先アドレス（例えば、１９８．０．０．８０）のようなネットワークアドレス、任意のサブネットマスク（示されていない）、ＴＣＰ、ＵＤＰ、ＩＣＭＰ等（示されていない）のようなプロトコル、ソースポートおよび行先ポートのようなポート情報、および固有のマッピングキーを含む。データ構造の一つ対し、変更がなされた時、偽サーバ１２０およびアドレス・インスペクションドライバ１２２は、例えば、制御パケット４３４内の、制御情報を交換することによって、これらのデータ構造を同期する。例示的な制御パケット４３４は、ＵＤＰパケットまたは任意の他のプロトコルのパケットであり得、一般に、再ルートされたデータパケットと共に偽サーバ１２０に送信される。制御情報の一部が、行先ポートに対する変更のような、エントリー４４２へのアップデートを含む場合、その変更はエンターされる。一部の場合において、制御情報は、パケットがどのように扱われるべきか、またはＶＰＮゲートウェイにおいてどうように再生成されるべきかを含む。
【００２６】
アプリケーション１１２が、リモート・クライアント・コンピュータデバイスに存在し、１０．０．０２のソースアドレスおよび８６７８のソースポートによって識別可能であり、ならびに、ターゲットサーバ（示されていない）が行先アドレス１９８．０．０．８０および行先ポート４４５に存在することを考慮されたい。アドレス・インスペクションドライバ１２２が、まだ行先アドレスまたはパケット・トラフィック４６２におけるポートを検出する場合、次にそのターゲットサーバのための行先アドレスおよび行先ポートは、ドライバマッピングテーブルデータ構造４２２の中に格納される。この場合においてエントリー４２４は、アドレス・インスペクションドライバ１２２によって生成およびパケット・トラフィックに割当てられた、「キー」と同様に、１０．０．０．２としてのソースアドレス（「ＳＡ」）、８６７８としてのソースポート（「ＳＰ」）、１９８．０．０．８０としての行先アドレス（「ＤＡ」）、および４４５としての行先ポート（「ＤＰ」）を含むためにデータ構造４２２において作成される。エントリー４２６が、アプリケーション１１２がもう一つのＶＰＮゲートウェイにもう一つの安全化された通信リンクを形成し、アドレス・インスペクションドライバ１１２がエントリー４２４およびエントリー４２６の両方に関するパケット・トラフィックをインスペクトするように構成されていることを示していることに留意したい。そのようにして、複数のＶＰＮは、アプリケーション１１２と同時に確立されることができる。
【００２７】
次に、アプリケーション１１２が、行先アドレス１９８．０．０．８０および行先ポート４４５に前もって定められたターゲット・パケット・トラフィック４６４を生成することを考慮する。このターゲット・パケット・トラフィック４６４は、ソケット層４０２を介して偽サーバ１２０にパスする。ソケット層４０２は、オペレーティングシステムに関わらず、ウィンソックＡＰＩ、ウィンソックプロバイダまたは任意の他のソケットプロバイダ処理（例えば、生ソケットのために提供するプログラミングインターフェース）を含むことができる。偽サーバ１２０は、パケット・トラフィックがＶＰＮの一部であるかを決定するために、データ構造４４０のエントリーをターゲット・パケット・トラフィック４６４における情報とマッチする。データ構造４４０におけるエントリーが、１９８．０．０．８０および４４５にそれぞれ対応するＤＡおよびＤＰを含むため、マッチングが作成され、偽サーバ１２０は次に、ターゲット・パケット・トラフィック４６６をアドレス・インスペクションドライバ１２２にパスする。従って、ターゲット・パケット・トラフィック４６６は、ソースアドレス（「ＳＡ」）４５０、ソースポート（「ＳＰ」）４５２、行先アドレス（「ＤＡ」）４５４、および行先ポート（「ＤＰ」）４５６によって特徴づけられる。図４が、パケット４６６ならびにセレクトアドレスおよびポート情報を有す他のパケットを示していることに留意したい。ペイロードを含む他のパケットデータは、論議目的のために省略（ｏｍｉｔ）される。
【００２８】
次に、アドレス・インスペクションドライバ１２２は、ターゲット・パケット・トラフィック４６６を再構成し、再ルートされたパケット４３２として偽サーバ１２０に再ルートし返す。少なくとも一実施形態においては、アドレス・インスペクションドライバ１２２は、本実施例においては「５４３２１」である「キー」を含むためにＳＰ４５２を再構成する。さらに、ＤＡおよびＤＰは、ローカルなホストまたはローカルなマシン（「ＬＭ」）アドレス４５４およびトラフィックポート（「ＴＰ」）４５６を含むためにそれぞれ再構成されている。特定の実施形態においては、ローカルなマシンアドレス４５４は、再ルートされたパケット４３２をＯＳＩプロトコルスタックまで送り上げさせるループバックアドレス１２７．０．０．１である。アドレス・インスペクションドライバ１２２は、再ルートされたパケット４３２を偽サーバ１２０のトラフィックポート（「ＴＰ」）４３０、例えば、ＴＣＰパケットを検出するためのリスニングポート、まで送り上げる。一部の実施形態においては、再ルートされたパケット４３２は、偽サーバ１２０が偽−ＵＤＰパケットを修正されたパケットとして生成する場合のように、再ルートされたパケット４３２がＵＤＰパケットかどうかにも関わらず、偽サーバ１２０のＴＣＰトラフィックポートに送信される。同時に（または同時に近く）、制御パケット４３４は、偽サーバ１２０の制御ポート（示されていない）にＯＳＩプロトコルスタックを送り上げられるように、ローカルなマシンアドレス（示されていない) を含む。そのような場合においては、制御パケット４３４は、再ルートされたパケット４３２を形成するためのパケットの修正を記載する情報を含む。従って、偽サーバ１２０は次に、安全化された通信リンクを介してパスされた暗号化されたパケット４６８を形成するために、再ルートされたパケット４３２を暗号器１２４にリダイレクトする。
【００２９】
図５は、本発明の特定の実施形態に従う、プライベートネットワークからリモート・クライアントへの暗号化されたパケット・トラフィックの受領の後の偽サーバとアドレスインスペクションドライバとの間のインターラクションを示す機能ブロック図５００である。インターラクションを示すために、暗号化されたパケット５０２は、解読のために、暗号器１２４へパスされることを考慮されたい。次に、その解読されたパケットは、データ構造（「ポートｆｗｄテーブル」）４４０に対して解読されたパケットの少なくとも一部の内容をマッチングする偽サーバ１２０へパスされる。マッチングがされたと考慮し、それによって、解読されたパケットが確立されたＶＰＮの一部であることを意味する。そのような場合、偽サーバ１２０は、アドレスインスペクションドライバ１２２の周知のポート（「ＷＫＰ」）５０６に、解読されたパケット５０４および付随制御パケット５０５を提供する。その場合、付随制御パケット５０５は、パケット５０４に関連するキーを含む。その後、アドレスインスペクションドライバ１２２は、図４のデータ構造に類似したドライバテーブル４２２へとそのキーによってインデックス化された情報に従い、解読されたパケット５０４を再構成する。そのような場合、再構成されたパケットは、アプリケーション１１２を識別する行先情報を含む。そのような場合、ルートされたパケット４３２は、「着信」（または受信）パケット５２０として信号で伝えられ、アプリケーション１１２の上のプロトコルスタックへとパスされる。
【００３０】
図６は、本発明の少なくとも一実施形態に従い、リアルタイム・アプリケーションのためのパケットを修正するための偽サーバの多様なモジュールを示すブロック図６００である。示されるように、偽サーバ６０４は、フラグ−ＵＤＰ−ａｓ−ＴＣＰモジュール６０５、パケット修正モジュール６０７、および受領通知生成器（「ａｃｋ  ｇｅｎ」）６０９を含み、それらの内の１つ以上は、本発明の安全通信リンクを介してパケットを送信する際、同時に動作することが可能である。ボイスおよびビデオのようなリアルタイムパケット・トラフィックは、ＵＤＰのようなセッション−レスプロトコルを実行するに当たっての有利な点から利点を得るが、標準ＵＤＰパケットは、多数のファイアウォールを介してトラバースすることが一般的に困難である。その一方、ＴＣＰトラフィックは、そのような不利な状態ではない。本発明の少なくとも１つの特定の実施形態において、偽サーバ６０４は、修正されたＴＣＰパケットを用いて「偽ＵＤＰ」パケットを形成するように構成される。
【００３１】
フラグ−ＵＤＰ−ａｓ−ＴＣＰモジュール６０５は、ＩＰヘッダーにあるＴＣＰパケットとしてＵＤＰパケットをフラグするように構成され、それによって、そのパケットがＴＣＰセッションの一部であるかのように、通信ネットワークをだます。パケット修正器６０７は、ソケット層６０２の生ソケット接続処理６０３と共に動作するように構成される。特に、パケット修正器６０７は、ＩＰヘッダー情報のようなヘッダー情報を取り去り、生ソケット接続処理６０３によって形成された生ソケット接続を介して残りのペイロードを送信する。そのような場合、パケットがヘッダー情報を取り去られた状態において安全化された通信リンクをパスした後、再生成命令は、どのようにパケットを再構成するのかを説明するためにまた、送信される。一実施形態において、再生成命令は、ターゲットサーバにおいてヘッダー情報を再生成するための情報を含む、それによって、ターゲットパケット・トラフィックは、第１のフォーマットから第２のフォーマットへ変換される。第１のフォーマットが送信制御プロトコル（「ＴＣＰ」）に関し、第２のフォーマットがユーザデータプロトコル（「ＵＤＰ」）に関する場合、例えばリアルタイム・アプリケーションの送信のために、第１のパケットは、偽ＵＤＰとしてフォーマットされ（例えば、ＴＣＰパケットとしてフラグされたＵＤＰパケット）、第２のパケットは、ＵＤＰパケットとしてフォーマットされる。
【００３２】
受領通知生成器（「ａｃｋ  ｇｅｎ」）６０９は、安全通信リンク上を送信されるＵＤＰパケット表示のＴＣＰ（つまり、偽ＵＤＰパケット）に応答して、「誤り受領通知」を発行するように構成される。これは、ＴＣＰトラフィックがＵＤＰのような行いをすることを可能にする。その場合、ＴＣＰパケット（偽ＵＤＰパケット）が失われた際、ＶＰＮトンネルの送信エンドまたは受信エンドのいずれかによって、シーケンス番号を同期し、そのパケットを再送信しようとする試みは取られない。従って、ＶＰＮは、転送ＴＣＰパケットとして偽ＵＤＰパケットを転送するように理解する。その際、パケットは、安全化された通信リンクのどちらかのエンドに生ソケットを有し、ＶＰＮは、これらパケットが（ＲＴＰのような）ボイスまたはビデオを携帯するＵＤＰパケットであるか否かを理解する。
【００３３】
本明細書中において、偽サーバおよびアドレスインスペクションドライバを用いる等し、安全化された通信リンクを確立するための多様な構造および方法が記載される。その方法は、例えば、ソフトウェアプログラムの一部として、ソフトウェア処理によって管理され、または、ソフトウェア処理を含む。一実施形態において、偽サーバモジュールおよびアドレスドライバモジュールは、コンピュータ可読媒体内にあるソフトウェアプログラムに位置し、そのコンピュータ可読媒体は、本発明に従い、安全化された通信リンクを実施するために、コンピュータ上の実行命令を含む。
【００３４】
本発明の実施形態は、多様なコンピュータ実施オペレーションを行うために、コンピュータ可読媒体上にコンピュータコードを有するコンピュータ可読媒体を有するコンピュータストレージ製品に関する。媒体およびコンピュータコードは、本発明の目的のために特別に設計または構成され得、または、それらは、コンピュータソフトウェア技術における当業者にとって周知の種類であり、購入可能な物である得る。コンピュータ可読媒体の例は、ハードディスク、フロッピーディスク（登録商標）および磁気テープのような磁気媒体、ＣＤ−ＲＯＭおよびホログラム系デバイスのような光学媒体、フロプティカル（商標登録）ディスクのような磁性−光学媒体、ならびに、特定用途向け集積回路（「ＡＳＩＣ」）、プログラマブルロジックデバイス（「ＰＬＤ」）、ＲＯＭデバイス、およびＲＡＭデバイスのような、プログラムコードを格納し、実行するように特別に構成されたハードウェアデバイスを含むが、これらに限定はされない。コンピュータコードの例は、コンパイラによって生成されるようなマシーンコード、および、インタープリタを用いてコンピュータによって実行されるより高レベルのコードを含むファイルを含む。例えば、本発明の実施形態は、Ｊａｖａ（登録商標）、Ｃ＋＋、または、他のプログラミング言語および開発ツールを用いて実施され得る。本発明の他の実施形態は、マシーン実行可能ソフトウェア命令の代わりにコンピュータに直接接続された回路において、またはマシーン実行可能ソフトウェア命令とその回路との組み合わせにおいて、実施され得る。
【００３５】
説明目的のために前述の記載において、本発明の全体的な理解を提供するために特定的な用語が使用された。しかし、本明細書中において選択された用語が、本発明の特定の局面を教示するために提示され、また、それによって多様な実施形態の実施を制限する意図がないことは、当業者にとって明確である。従って、本発明の特定の実施形態の前述の記載は、図示および記載の目的のために提示され、開示された形が網羅的なものであったり、それらに本発明が限定されるように意図されない。明らかに、多数の修正および変種が上述の教示の観点において可能である。実施形態は、本発明の本質およびその実用的なアプリケーションを最適に説明するために選ばれ、記載され、それによって、意図する特定の使用に適切なものとして、多様な修正を為した本発明および多様な実施形態を最適に利用することは、当業者によって可能である。添付の特許請求の範囲およびそれらの均等物は本発明の範囲を規定するように意図される。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態に従う、リモート・コンピュータデバイスとＶＰＮゲートウェイ・コンピュータデバイスとの間の安全化された通信リンクを確立するための仮想プライベートネットワーク（「ＶＰＮ」）を示す図である。
【図２】本発明の一実施形態に従う、安全化された通信リンク上の通信パケットの例示的な方法を描写するフロー図である。
【図３】本発明の一実施形態に従う、リモート・クライアント・コンピュータデバイスを示すブロック図である。
【図４】本発明の特定の実施形態に従う、ターゲットパケット・トラフィックをリモート・クライアントからプライベートネットワークへ送信する際の偽サーバとアドレスインスペクションドライバとの間のインターラクションを示す機能ブロック図である。
【図５】本発明の特定の実施形態に従う、プライベートネットワークからリモート・クライアントへの暗号化されたパケット・トラフィックの受領の後の偽サーバとアドレスインスペクションドライバとの間のインターラクションを示す機能ブロック図である。
【図６】本発明の多様な実施形態に従う、リアルタイムおよび他のアプリケーションのための暗号化されたパケットを通信するための偽サーバの多様なモジュールを示すブロック図である。
【図１】
2007533172.tif 000003
【図２】
2007533172.tif 000004
【図３】
2007533172.tif 000005
【図４】
2007533172.tif 000006
【図５】
2007533172.tif 000007
【図６】
2007533172.tif 000008
【国際調査報告】
2007533172.tif 000009