(57)【要約】【課題】セキュア通信の方法及びセキュア通信のためのシステムを提供する。【解決手段】セキュア通信の方法及びセキュア通信のためのシステムのある実施形態において、コンピュータシステムは、カーネル空間で動作し、外部ネットワークとインターフェースする一次システムプロトコルスタックを備える。二次システムプロトコルスタック、セキュリティソフトウェア、及び少なくとも一つのアプリケーションプログラムがユーザ空間で動作し、また、カーネル空間にプログラムをインストールする特権を有していないユーザによって携帯用記憶媒体に供給され得る。アプリケーションプログラムは、二次システムプロトコルスタックとインターフェースする。二次システムプロトコルスタックは、一次システムプロトコルスタックとインターフェースする。セキュリティソフトウェアは、二次システムプロトコルスタックを通じて通信において動作する。【選択図】図１
2010020777.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
カーネル空間で動作しかつ外部ネットワークとインターフェースする一次システムプロトコルスタックと、
ユーザ空間で動作しかつ一次システムプロトコルスタックとインターフェースする二次システムプロトコルスタックと、
ユーザ空間で動作しかつ二次システムプロトコルスタックとインターフェースする少なくとも一つのアプリケーションプログラムと、
ユーザ空間で動作しかつ二次システムプロトコルスタックを通じての通信においてユーザ空間で動作するセキュリティソフトウェアとを備えたコンピュータシステム。
【請求項２】
前記二次システムプロトコルスタックはアプリケーションプログラムと統合される請求項１のコンピュータシステム。
【請求項３】
前記セキュリティソフトウェアは、外部ネットワークにより送信のために二次システムプロトコルスタックから一次システムプロトコルスタックへと送られるメッセージを安全にすると共に、一次システムプロトコルスタックから二次システムプロトコルスタックへと送られ、外部ネットワークにより受信したメッセージを非安全にするように動作する請求項１又は２のコンピュータシステム。
【請求項４】
前記セキュリティソフトウェアは、一次システムプロトコルスタックに送られた安全にされたメッセージをカプセル化するように動作し、これにより、一次システムプロトコルスタックは、該メッセージをセキュリティに関連したデータに影響を及ぼすことなく送る請求項１〜３のいずれか一つのコンピュータシステム。
【請求項５】
動作中、前記セキュリティソフトウェアと一次システムプロトコルスタックとの間に介在されるインターセプタを備え、前記セキュリティソフトウェアは、照準システムプロトコルスタックから外部ネットワークへと送るために適切であるフォーマットでアウトバウンドメッセージを発し、該インターセプタは、該メッセージを、外部ネットワークへの送信のために適切なメッセージを生成する一次システムプロトコルスタックによる処理のために適切なフォーマットで一次システムプロトコルスタックへと転送する請求項１〜４のいずれか一つのコンピュータシステム。
【請求項６】
前記インターセプタは、アウトバウンドメッセージからヘッダーを取り除き、一次システムプロトコルスタックに情報を供給し、該情報から、一次システムプロトコルスタックは除去したヘッダーにフォーマットが類似するヘッダーを加える請求項５のコンピュータシステム。
【請求項７】
前記インターセプタは、メッセージのルーティングで使用される前記除去したヘッダーからの少なくとも一つのデータの値を、一次システムプロトコルスタックに供給された前記情報における対応するデータの異なる値にマップする請求項６のコンピュータシステム。
【請求項８】
コンピュータに動作可能に接続されて使用するように構成されるコンピュータ可読記憶媒体であって、該コンピュータに対するセキュリティソフトウェア及び命令のためのコンピュータ可読コードを含み、該命令は、二次システムプロトコルスタックを動作させ、前記セキュリティソフトウェアを介して、一つのアプリケーションプログラムと二次システムプロトコルスタックとの間、及び二次システムプロトコルスタックとコンピュータの少なくとも一次システムプロトコルスタックとの間にメッセージを送るものであるコンピュータ可読媒体。
【請求項９】
コンピュータが少なくとも一つのアプリケーションプログラムを実行するようにさせるコンピュータ可読命令を含む請求項８のコンピュータ可読記憶媒体。
【請求項１０】
前記少なくとも一つのアプリケーションプログラムは、外部ネットワークに対するメッセージを、一次システムプロトコルスタックと直接交換するのではなく、二次システムプロトコルスタックと交換するように構成される請求項９のコンピュータ可読記憶媒体。
【請求項１１】
動作中、セキュリティソフトウェアと一次システムプロトコルスタック間に介在されるインターセプタのためのコンピュータ可読コードを備え、前記セキュリティソフトウェアは、標準システムプロトコルスタックから外部ネットワークへと送るために適切なフォーマットでアウトバウンドメッセージを発する命令を含み、該インターセプタは、外部ネットワークに送るために適切なメッセージを生成する一次システムプロトコルスタックによる処理のために適切なフォーマットで前記メッセージを一次システムプロトコルスタックに転送する命令を含む請求項８〜１０のいずれか一つのコンピュータ可読記憶媒体。
【請求項１２】
前記インターセプタは、アウトバウンドメッセージからヘッダーを取り除き、かつ、一次システムプロトコルスタックに、一次システムプロトコルスタックが除去したヘッダーにフォーマットが類似のヘッダーを付加することを可能にする情報を供給する命令を含む請求項１１のコンピュータ可読記憶媒体。
【請求項１３】
前記インターセプタは、メッセージのルーティングで使用される前記除去したヘッダーからの少なくとも一つのデータの値を、一次システムプロトコルスタックに供給された前記情報における対応するデータの異なる値にマップする請求項１２のコンピュータ可読記憶媒体。
【請求項１４】
該コンピュータ可読記憶媒体は、使用のためにコンピュータに動作可能に一時的に接続されるように構成された携帯用記憶媒体である請求項８〜１３のいずれか一つのコンピュータ可読記憶媒体。
【請求項１５】
カーネル空間で動作しかつ外部ネットワークとインターフェースする一次システムプロトコルスタックを有するコンピュータを使用するセキュア通信の方法であって、
コンピュータにおけるユーザ空間で、一次システムプロトコルスタックとインターフェースする二次システムプロトコルを実行するステップにして、少なくとも一つのアプリケーションプログラムが二次システムプロトコルスタックとインターフェースし、セキュリティソフトウェアが二次システムプロトコルスタックを通じて通信において動作する該ステップと、
アプリケーションプログラムから二次システムプロトコルスタックへとメッセージを送るステップと、
前記メッセージを安全にするセキュリティソフトウェアを使用するステップと、
前記安全にされたメッセージを一次システムプロトコルスタックに送るステップと、
前記安全にされたメッセージを一次システムプロトコルスタックから外部ネットワークに送るステップとを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、公衆網による通信のセキュリティ（安全）を維持することに関連する。
【背景技術】
【０００２】
インターネット及び他の公衆網は情報の通信に広く使用されている。しかしながら、この情報の大部分は、私的性質のものであり、そのため、通信が権限のない人によって読まれることを防ぐべく通信を暗号化するため、及び、権限のない人による送信者のなりすましを防ぐべく通信を認証するため、種々のスキームが考え出されている。一般的なスキームの一つは、「ＩＰセキュリティ（ＩＰｓｅｃ）」、すなわち、ＩＥＴＦ標準ＲＦＣ４３０１及びＲＦＣ４３０９において主に定義されたプロトコルスーツ（一式）であり、これは、５層ＴＣＰ／ＩＰモデルのレベル３、７層ＯＳＩモデルのレベル３であるネットワーク／インターネット層で動作する。
【０００３】
レベル３ＩＰｓｅｃスーツは、レベル３ＩＰｓｅｃがシステムプロトコル（ＴＣＰ／ＩＰ又はＵＤＰ）スタックと実際のネットワークインターフェースとの間で動作するため、通常のアプリケーションソフトウェアはそれを使用するために特別に書かれることを要しないという利点を有する。この位置において、ＩＰｓｅｃは、レベル５又はそれより上のアプリケーション層で実行するアプリケーションに対し透過型である。しかしながら、ＩＰｓｅｃは、そのような低いレベルで動作するので、一般に、保護されたカーネル空間で動作し、また、オペレーティングシステムを変更し又はカーネルドライバをインストールする管理者特権を用いてのみインストールされ得る。その結果、ＩＰｓｅｃは、ＩＰｓｅｃが管理者によって与えられていないコンピュータに対する管理者特権を有していないユーザにはこれまで利用できなかった。例えば、多くの組織は、組織によって提供される携帯用コンピュータにユーザが管理者特権付きの追加のソフトウェアをインストールすることを許容せず、また、時には、サイバーカフェ及び公共キオスクにおけるコンピュータ等の第三者コンピュータを使用することが好都合である。
【０００４】
あるアプリケーションソフトウェアは、ＵＳＢメモリスティック等の携帯用機器にインストールされ得、かつ、ホストコンピュータにインストールすることなく該携帯用機器から実行され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、そのようなソフトウェアには、システムプロトコルスタックとネットワークインターフェースとの間をホストコンピュータが介在することを可能にするであろうホストコンピュータにおけるカーネル特権を与えることができない。
【課題を解決するための手段】
【０００６】
一実施形態において、コンピュータシステムが開示され、該コンピュータシステムは、カーネル空間で動作し、かつ外部ネットワークとインターフェースする一次システムプロトコルスタックと、ユーザ空間で動作し、かつ一次システムプロトコルスタック及び少なくとも一つのアプリケーションプログラムとインターフェースする二次システムプロトコルスタックと、一次及び二次システムプロトコルスタック間の通信におけるユーザ空間で動作するセキュリティソフトウェアとを備える。
【０００７】
システムプロトコルスタックは、ＴＣＰ／ＩＰスタック、ＵＤＰスタック、又は類似のものであり得る。二次スタックと外部ネットワーク間のトラフィックが一次システムプロトコルスタックを通過するので、二次システムプロトコルスタックは、十分に実現（実行）される必要はない。システムプロトコルスタックの外観（出現）をアプリケーションプログラムに提示し、かつ一次システムプロトコルスタックへ又はそこから確実にメッセージを回送するために必要な通常のシステムプロトコルスタック機能の部分のみが必要となる。二次システムプロトコルスタックが特定のアプリケーションプログラム専用であり、かつアプリケーションプログラムがＴＣＰ／ＩＰの機能のすべてを使用しない場合、二次システムプロトコルスタックは、使用されない機能に対するサポートを省略し得る。
【０００８】
セキュリティソフトウェアは、外部ネットワークによる送信のために二次システムプロトコルスタックから一次システムプロトコルスタックへと送られるメッセージを暗号化し及び／又は認証するために動作し得、また、一次システムプロトコルスタックから二次システムプロトコルスタックへと送られて外部ネットワークにより受信したメッセージを復号化し及び／又は該メッセージの認証を検証するために動作し得る。
【０００９】
セキュリティソフトウェアと一次システムプロトコルスタック間に送られる暗号化され及び／又は認証されたメッセージはカプセル化され得、これにより、一次システムプロトコルスタックは、暗号化及び／又は認証を乱すことなく該メッセージを転送する。
【００１０】
別の実施形態において、コンピュータに動作可能に接続されて使用されるように構成され、セキュリティソフトウェア及びコンピュータに対する命令を含む携帯型コンピュータ可読記憶媒体が開示される。上記命令は、二次システムプロトコルスタックを動作させ、メッセージを少なくとも一つのアプリケーションプログラムと二次システムプロトコルスタック間、及び、二次システムプロトコルスタックとコンピュータの一次システムプロトコルスタック間にセキュリティソフトウェアを介して転送するためのものである。
【００１１】
携帯型コンピュータ可読記憶媒体はまた、外部ネットワークに対するメッセージを、一次システムプロトコルスタックと直接交換するのではなく二次システムプロトコルスタックと交換するように構成された少なくとも一つのアプリケーションプログラムを含み得る。
【００１２】
更なる実施形態において、カーネル空間で動作しかつ外部ネットワークとインターフェースする一次システムプロトコルスタックを有するコンピュータを用いるセキュア通信の方法が開示される。該方法は、一次システムプロトコルスタックとインターフェースする二次システムプロトコルを、コンピュータにおけるユーザ空間で実行するステップにして、少なくとも一つのアプリケーションプログラムが二次システムプロトコルスタックとインターフェースし、セキュリティソフトウェアが二次システムプロトコルスタックを通じての通信で動作する該ステップと、アプリケーションプログラムからのメッセージを二次システムプロトコルスタックに送るステップと、該メッセージを安全にするためにセキュリティソフトウェアを使用するステップと、安全にされたメッセージを一次システムプロトコルスタックに送るステップと、安全にされたメッセージを一次システムプロトコルスタックから外部ネットワークに送るステップとを含む。
【００１３】
外部ネットワークはインターネットであり得る。セキュリティソフトウェアはＩＰＳｅｃソフトウェアであり得る。
【００１４】
上記及び他の側面、特徴及び利点は、以下の具体的な説明及び図面から明らかとなる。
【図面の簡単な説明】
【００１５】
【図１】図１は、コンピュータネットワークの概略図である。
【図２】図２は、セキュア通信のためのプロセスのフローチャートである。
【図３】図３は、図２のプロセスにおけるデータフローの図である。
【発明を実施するための形態】
【００１６】
添付図面の図１を最初に参照して、参照番号１０で全体的に示されるコンピュータシステムの一実施形態は、インターネット１４等の外部ネットワークに接続されるコンピュータ１２を備える。コンピュータ１２は、保護されたカーネル空間１８で実行するオペレーティングシステム１６と、ユーザ空間２２で実行する一つ又は複数のアプリケーション２０とを含む。オペレーティングシステムプロセスは、一次システムプロトコル（ある実施形態においてインターネットプロトコル（ＩＰ））スタック２４を含み、一次システムプロトコルスタック２４は、物理ネットワークインターフェース２６を通じてインターネット１４へ及びそれからＩＰ形式パケットを送信及び受信し、また、ＩＰスタックサービスにアクセスするためにアプリケーション２０が使用可能なアプリケーションプログラミングインターフェース（ＡＰＩ）を実行する。
【００１７】
コンピュータ１２はまた、外部携帯用記憶媒体に対するコネクタ２８と外部携帯用媒体とを備える。コネクタ２８は、ある実施形態においてユニバーサルシリアルバス（ＵＳＢ）ポートであり、また、外部携帯用記憶媒体は、ある実施形態においてメモリスティック５０であり、ＵＳＢポート２８への挿入によりコンピュータ１２に一時的に接続される。メモリスティック５０は、コンピュータ１２のユーザ空間２２で実行可能でかつ動作中にインターネット１４と通信し得る少なくとも一つのアプリケーションプログラム５２のためのコードを含む。メモリスティック５０はまた、二次ＩＰ又は他のシステムプロトコルスタック５６と、ＩＰセキュリティ（ＩＰｓｅｃ）アプリケーション５４と、インターセプタモジュール５８とを動作させるためのコードを含む。二次ＩＰ又は他のシステムプロトコルスタック５６は、一次システムプロトコルスタック２４へ及びそれからメッセージを転送する。ＩＰｓｅｃアプリケーション５４は、二次システムプロトコルスタック５６に統合ＩＰｓｅｃ機能性を与えるため、二次システムプロトコルスタック５６と一次システムプロトコルスタック２４との間のメッセージを取り込んで（捕獲して）安全にする。インターセプタモジュール５８は、形式（フォーマット）に対する適切な変更を与えつつＩＰｓｅｃエンジン５４と一次プロトコルスタック２４との間にメッセージを中継する。
【００１８】
アプリケーションプログラム５２は、一次システムプロトコルスタック２４ではなく二次システムプロトコルスタック５６を呼び出す（コールする）ために、外向（outgoing）インターネット接続を要求する際に配列される。ある実施形態において、アプリケーションプログラム５２及び二次システムプロトコルスタック５６及びＩＰｓｅｃアプリケーション５４は、単一のプログラムとしてコンパイルされ、これにより、それらの間のトラフィックが該コンパイルされた単一プログラムの内部に来る。
【００１９】
ある実施形態において、アプリケーションプログラム５２は、二次システムプロトコルスタック５６及びＩＰｓｅｃアプリケーション５４とは別個であり、また、アプリケーションプログラム５２は、外部システムプロトコルスタックコールが、システムプロトコルスタック及びＩＰｓｅｃアプリケーション５４とリンクするローカル通信チャンネルに向けられるように変更される。適切なリンクは、名前付きパイプ、Ｕｎｉｘ（登録商標）ドメインソケット、共有メモリ、及びローカルソケットを含む。例えば、二次システムプロトコルスタック５６は、ソックスサーバとして機能し得る。この実施形態は、既存のプログラムがアプリケーションプログラム５２のための基礎として使用されることになる単一のプログラムとしてのコンパイルよりも好ましいかもしれない。何故なら、現存するコードに対して一般的に要求される広範な変更がより少なくて済むからである。
【００２０】
更なる実施形態において、二次システムプロトコルスタック５６及びＩＰｓｅｃアプリケーション５４は、アプリケーションプログラム５２の実際のコードに対する変更を必要とすることなくアプリケーションプログラム５２が接続するように構成され得るソックスサーバ又は他のホストインターフェースを実現する。ある実施形態において、アプリケーションプログラム５２に対するいかなる構成変更をも最小にするため、二次システムプロトコルスタック５６は、アプリケーションプログラム５２に対し、ほぼ現実と同じくらい、一次システムプロトコルスタック２４又は他の標準ユーティリティであるように見える。例えば、二次システムプロトコルスタック５６がソックスサーバとして現れる場合、これは、１０２４より上の任意に選ばれたポート番号において実行されるように構成され得る。オペレーティングシステムは、一般に、アプリケーションが、管理者特権なしで１０２４より上のローカルポートにバインドすることを許可する。アプリケーションプログラム５２は、その際、同じ任意に選ばれたポート番号に接続するように構成されることを単に要する。二次システムプロトコルスタック５６及びアプリケーションプログラム５２が共にメモリスティック５０にロードされる場合、それらを両方とも同じポート番号に対して事前構成（設定）することは取るに足らない。好ましくは、コンピュータ１２がそれ自体のソックスサーバを有する場合のコンフリフトを避けるため、デフォルトソックスサーバＴＣＰポート番号１０８０以外のポートが選ばれる。
【００２１】
更に別の実施形態において、プロセス間通信（ＩＰＣ）プロトコルがアプリケーションプログラム５２と二次システムプロトコルスタック５６間の通信のために使用され得る。ＩＰＣ機構は、ホストＯＳアクセス制御機能を用いかつＴＣＰベースのソックスサーバに干渉し得るパーソナルファイアウォール相互作用の回避を避ける利点を有する。しかしながら、ＩＰＣプロトコルを使用する場合のアプリケーションプログラム５２と二次システムプロトコルスタック５６の直接リンキングは、第三者アプリケーションがＩＰｓｅｃサービスを使用すること防ぎ得る。これは、いくつかの構成において不利であり得る。
【００２２】
上述したように、ＩＰｓｅｃアプリケーションは、慣例的に、ＩＰスタックの外部側においてメッセージを取り込み、これにより、ＩＰヘッダーが必要に応じてＩＰｓｅｃ認証に含められ得る。そのため、特別に書かれるコードの量を最小にするため、ＩＰｓｅｃアプリケーション５４は、上述したように、二次システムプロトコルスタック５６と一次システムプロトコルスタック２４との間のメッセージを取り込むように配列され得る。本実施形態において、二次システムプロトコルスタック５６は最終ＩＰへッダーを生成しないので、ＩＰｓｅｃアプリケーション５４は、あるいは、システムプロトコルスタック５６に更に上流に統合され得る。
【００２３】
次に図２を参照して、セキュア（安全）通信のプロセスのある実施形態において、ステップ１０２では、メモリスティック５０が、ＵＳＢポート２８に挿入されることにより、動作可能にコンピュータ１２に接続される。コンピュータ１２は、標準「プラグアンドプレイ」ＵＳＢドライバを有し得、これは、メモリスティック５０を自動的に認識し、かつ、メモリスティック５０をオペレーティングシステム１６にインターフェースするために必要ないかなるソフトウェアをもロードする。
【００２４】
ステップ１０４において、コンピュータ１２のユーザがアプリケーションプログラム５２を開始する。アプリケーションプログラム５２は、通常のユーザがそれに対する特権を有していないであろうカーネル空間又はケーネル機能へのインストール又はカーネル空間又はケーネル機能の構成を必要とすることなく、メモリスティック５０からユーザ空間において実行するように設計される。ＩＰｓｅｃアプリケーション５４、二次プロトコルスタック５６、及びインターセプタ５８もユーザ空間において実行され、また、アプリケーションプログラム５２が開始する時又はアプリケーションプログラム５２によって呼び出された時に自動的に開始され得、あるいはユーザによって別個に開始され得る。
【００２５】
アプリケーションプログラム５２は、ＩＰｓｅｃを用いてインターネット１４によりセキュアメッセージを遠隔サイト６０に送ることを試みる。上述した変更のため、アプリケーションプログラム５２からのメッセージは、一次システムプロトコルスタック２４に対して直接ではなく、二次システムプロトコルスタック５６へと送られる。ＩＰｓｅｃアプリケーション５４、二次プロトコルスタック５６及びインターセプタ５８は、一次システムプロトコルスタック２４及びネットワークインターフェース２６に対する制御を全く有していないため、該接続は、一次システムプロトコルスタック２４のＡＰＩに適合するカプセル化方法を使用するように構成される。この実施形態において、ＩＥＴＦ標準ＲＦＣ３９４８に従う、Internet Key Exchange（インターネットキーエクスチェンジ）（ＩＫＥ）を伴うUser Datagram Protocol（ユーザデータグラムプロトコル）（ＵＤＰ）、Network Address Translation Traversal（ネットワークアドレス変換走査）（ＮＡＴ−Ｔ）、及び、ＩＰｓｅｃ Encapsulating Security Payload（カプセル化セキュリティペイロード）（ＥＳＰ）パケットのＵＤＰカプセル化である。しかしながら、他の実施形態において、一次システムプロトコルスタック２４のソケットＡＰＩ及び遠隔サイト６０によってカプセル化がサポートされることを条件に、他の該カプセル化方法が使用され得る。
【００２６】
ステップ１０６において、接続が開始されると、ＩＰｓｅｃアプリケーション５４におけるインターネットキーエクスチェンジ（ＩＫＥ）モジュールは、インターセプタ５８に対し、ＩＫＥＮＡＴ−Ｔトランザクションに対する標準ポートであるポート４５００を用いて一次プロトコルスタック２４のＵＤＰポートにバインドすることを要求するが、インターセプタ５８は、コンピュータ１２のオペレーティングシステム１６が１０２４より大きい番号でかつ４５００以外のポートを選ぶことを許容する。インターセプタ５８は、要求されたポート４５００と一次プロトコルスタック２４によって割り当てられたポートとの間のマッピングを内部で維持する。ＩＫＥネゴシエーション中、遠隔サイト６０は、現実のポートからＩＫＥＵＤＰデータグラムを受信するが、データグラム内においてＩＫＥモジュールはポート４５００として起点を宣言する。遠隔サイト６０及びローカルＩＫＥモジュールの両方は、不一致を検出し、原因がＮＡＴゲートウェイの背後にあると推論し、更に、結果として生じるＩＰｓｅｃセキュリティアソシエーション（ＳＡ）に対しＵＤＰカプセル化をイネーブルする。
【００２７】
次に図３をも参照して、ステップ１０８において、アプリケーションプログラム５２は、ペイロードデータを、二次スタック５６におけるソケット、遠隔ＩＰアドレス及び遠隔ポートを含むタプルとして、二次システムプロトコルスタック５６に送る。ステップ１１０において、二次スタック５６は、ＴＣＰ／ＵＤＰヘッダー及びＩＰヘッダーを追加し、結果として生じるＩＰパケットを転送する。ステップ１１２において、ＩＰｓｅｃアプリケーション５４は、暗号化し、認証し、又は、別の方法で送信（出ていく／アウトバウンド）メッセージを安全にするため、二次システムプロトコルスタック５６から該ＩＰパケットを取り込む。該パケットは、例えば、標準ＩＰｓｅｃ「トランポートモード」の態様で暗号化又は認証され得、これは、最初のＴＣＰ／ＵＤＰヘッダーが暗号化されたペイロードに含められ、二次システムプロトコルスタック５６によって生じたＩＰヘッダーが変更されないままであり、更に、暗号化されたか又は他の方法で安全にされたペイロードのための正しいカプセル化セキュリティペイロード（ＥＳＰ）及びＵＤＰヘッダーが該ＩＰヘッダーの背後に挿入されるようにするためである。あるいは、「トンネルモード」において、最初のＩＰヘッダーは、暗号化されたパケット内部に隠され得、また、ＩＰｓｅｃアプリケーション５４は、ＥＳＰ及びＵＤＰヘッダーのみならず、それ自体のＩＰヘッダーを追加し得る。単なるルーティング及び転送を上回ることを行う、ファイアウォール、アドレス変換機構等の機器を通じてインターネットパケット及びメッセージを転送する場合にヘッダーをカプセ化、付加又は置換するための技術はよく知られている。まだ開発されていない技術を含むどのような適切な技術も使用され得る。ＩＰｓｅｃエンジン５４は、次いで、安全にされたメッセージをインターセプタ５８に転送する。
【００２８】
ステップ１１４では、インターセプタ５８は、この実施形態のＩＰ及びＵＤＰヘッダーにおいて、送信ＩＰ及びカプセル化ヘッダーを除去し、また、安全にされたデータを、前のＩＫＥエクスチェンジから遠隔ＩＰアドレス及びポート番号と共に遠隔サイト６０に送るため、一次システムプロトコルスタック２４のＡＰＩに対するシステムコールを発生させる。ポート番号は、ステップ１０６からマッピングを用いて生成される。
【００２９】
ステップ１１６において、一次システムプロトコルスタック２４は、最終ヘッダーを生成し、また、メッセージを物理ネットワークインターフェース２６に転送し、メッセージを物理ネットワークインターフェース２６は、ステップ１１８において、該メッセージをインターネット１４を介して遠隔サイト６０に送る。例えば、ＩＰｓｅｃアプリケーション５４からの安全にされたＥＳＰパケットは、ＡＰＩインターフェースコールにおける情報から一次システムプロトコルスタック２４によって生成されたＩＰヘッダーと共に見かけ上標準なＵＤＰパケットとしてカプセル化され得る。
【００３０】
ステップ１２０において、ＵＤＰパケットの形式で遠隔サイト６０からの入信（入ってくる）メッセージは、物理ネットワークインターフェース２６で受信され、物理ネットワークインターフェース２６は、ステップ１２２において、メッセージを一次システムプロトコルスタック２４に転送する。ステップ１２４において、一次システムプロトコルスタック２４はＩＰヘッダーを除去し、かつ入信ＵＤＰデータグラムがＵＤＰソケットで利用可能であることを通知する。ステップ１２６において、インターセプタ５８は、適切なＡＰＩシステムコールを用いてＵＤＰペイロード、遠隔ＩＰアドレス及びデータグラムのポートを受信する。
【００３１】
ＵＤＰカプセル化ヘッダーが適切である場合、インターセプタは、ＡＰＩシステムコールからの情報を用いてＩＰパケットを合成し、ステップ１０６で生じたマッピングを用いてポート番号を４５００にマッピングし、更に、パケットをＩＰｓｅｃアプリケーション５４に転送する。ＩＰｓｅｃアプリケーション５４は、ステップ１２８において入信パケットを復号化し、又は、その認証ヘッダーを検証しかつはぎ取り、ペイロードを、再構成されたＩＰ及びＴＣＰ／ＵＤＰヘッダーと共に二次システムプロトコルスタック５６へ転送する。ステップ１３０において、二次システムプロトコルスタック５６は次いで、正しいアプリケーションプログラム５２に対する転送のため、該ペイロードを正しいソケットで利用可能にする。アプリケーションプログラム５２はパケットのデータ内容を通常のやり方で処理する。
【００３２】
特定の実施形態が記述されたが、当業者は、異なる実施形態の特徴が組み込まれ得、また、代用され得ることを理解する。
【００３３】
例えば、アプリケーションプログラム５２、二次システムプロトコルスタック５６、ＩＰｓｅｃコード５４、及びインターセプタ５８は、メモリスティック５０にロードされ、メモリスティック５０から実行するように記述した。これに代えて、それらのいずれか又はすべてが、コンピュータ１２の永久記憶ボリュームにロードされ得るが、これは、ＩＰｓｅｃコード５４が一次システムプロトコルスタック２４と物理ネットワークインターフェース２６との間のメッセージをインターセプトすることを可能にするであろう管理者特権なしになされる。
【００３４】
記述したシステム及び方法の実現についての種々の詳細は、コンピュータ１２及びオペレーティングシステム１６の詳細に依存し得、また、記述したシステム及び方法を、将来開発されるコンピュータ及び／又はオペレーティングシステムを含む異なるコンピュータ及び／又はオペレーティングシステムに適合させることは当業者の能力の範囲内である。
【００３５】
現在照準のインターネットプロトコル及び手順を使用するものとして実施形態が記述されたが、記述したシステム及び方法を、将来開発されるものを含む異なるネットワーク及び／又は異なるプロトコルに適合させることは当業者の能力の範囲内にある。あるいは、使用される標準ではなない手順が一次システムプロトコルスタック及び遠隔サイト６０と適合するならば、該手順が使用され得る。しかしながら、特定の遠隔サイト６０及び特定の一次プロトコルスタック２４のみが使用されかつ標準ではない手順と適合することが分かっている場合を除き、それは、不適合による通信欠陥のリスクの上昇を伴い得る。これは、通信の成功又は失敗を明示するリポートを伴わない、ＵＤＰ等の「コネクションレス」プロトコルを用いる場合に特に深刻な問題である。
【符号の説明】
【００３６】
１０  コンピュータシステム
１２  コンピュータ
１４  インターネット
１６  オペレーティングシステム
１８  カーネル空間
２０  アプリケーション
２１  コンピュータ
２２  ユーザ空間
２４  一次システムプロトコルスタック
２６  物理ネットワークインターフェース
２８  コネクタ／ＵＳＢポート
５０  メモリスティック
５２  アプリケーションプログラム
５４  ＩＰセキュリティアプリケーション
５６  二次システムプロトコルスタック
５８  インターセプタモジュール
【図１】
2010020777.tif 000003
【図２】
2010020777.tif 000004
【図３】
2010020777.tif 000005