(57)【特許請求の範囲】
【請求項１】
第１プロセッサ、第１メモリ及び第１インタフェースを備える第１の計算機と、第２プロセッサ、第２メモリ及び第２インタフェースを備える第２の計算機と、前記第１の計算機と前記第２の計算機との通信を制御する通信制御装置と、を備える計算機システムであって、
前記通信制御装置は、前記第１の計算機からパケットを受信すると、受信したパケットのアドレス情報を変換して前記第２の計算機に転送し、
前記第２メモリは、アドレス情報の一部が不明なＳＡ情報であるＳＡ候補情報を記憶し、
前記第２プロセッサは、
前記第１の計算機によって暗号化されたパケットを前記第１の計算機から受信すると、当該暗号化パケットを前記ＳＡ候補情報を用いて復号化し、
前記暗号化パケットの復号化に成功すると、前記復号化で用いた前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、ＳＡ情報を作成することを特徴とする計算機システム。
【請求項２】
前記第２メモリは、受信用のＳＡに関するＳＡ候補情報と、送信用のＳＡに関するＳＡ候補情報と、を関連付けて記憶し、
前記第２プロセッサは、
前記暗号化パケットの復号化に成功すると、前記復号化で用いた前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、受信用のＳＡに関するＳＡ情報を作成し、
更に、復号化で用いた前記ＳＡ候補情報に関連付けられている前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、送信用のＳＡに関するＳＡ情報を作成することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記第２プロセッサは、
ＳＡの確立を要求するＳＡ要求パケットを前記第１の計算機から受信すると、前記受信したＳＡ要求パケットが前記通信制御装置を経由したか否かを判定し、
前記受信したＳＡ要求パケットが前記通信制御装置を経由していないと判定すると、前記受信したＳＡ要求パケットに基づいて前記ＳＡ情報を作成し、
前記受信したＳＡ要求パケットが前記通信制御装置を経由したと判定すると、前記受信したＳＡ要求パケットに基づいて前記ＳＡ候補情報を作成することを特徴とする請求項１に記載の計算機システム。
【請求項４】
更に、前記第１の計算機と前記第２の計算機との通信のセキュリティを確保するプロキシ計算機を備え、
前記プロキシ計算機は、前記第１の計算機からＳＡ要求パケットを受信すると、前記受信したＳＡ要求パケットが前記通信制御装置を経由したか否かを判定し、
前記受信したＳＡ要求パケットが前記通信制御装置を経由したと判定すると、その旨を前記第２の計算機に通知し、
前記第２プロセッサは、
前記プロキシ計算機からの通知に基づいて、前記受信したＳＡ要求パケットが前記通信制御装置を経由したか否かを判定することを特徴とする請求項３に記載の計算機システム。
【請求項５】
前記ＳＡ候補情報には、有効期間が設定され、
前記第２プロセッサは、前記有効期間を超えた前記ＳＡ候補情報を、前記第２メモリから削除することを特徴とする請求項１に記載の計算機システム。
【請求項６】
第１プロセッサ、第１メモリ及び第１インタフェースを備える第１の計算機と、第２プロセッサ、第２メモリ及び第２インタフェースを備える複数の第２の計算機と、前記第２の計算機の負荷を分散する負荷分散装置と、を備える計算機システムであって、
前記負荷分散装置は、前記第１の計算機から受信したパケットを前記第２の計算機のいずれかに転送し、
前記第２メモリは、アドレス情報の一部が不明なＳＡ情報であるＳＡ候補情報を記憶し、
前記第２プロセッサは、
前記第１の計算機によって暗号化されたパケットを前記第１の計算機から受信すると、当該暗号化パケットを前記ＳＡ候補情報を用いて復号化し、
前記暗号化パケットの復号化に成功すると、前記復号化で用いた前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、ＳＡ情報を作成することを特徴とする計算機システム。
【請求項７】
前記第２メモリは、受信用のＳＡに関するＳＡ候補情報と、送信用のＳＡに関するＳＡ候補情報と、を関連付けて記憶し、
前記第２プロセッサは、
前記暗号化パケットの復号化に成功すると、前記復号化で用いた前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、受信用のＳＡに関するＳＡ情報を作成し、
更に、復号化で用いた前記ＳＡ候補情報に関連付けられている前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、送信用のＳＡに関するＳＡ情報を作成することを特徴とする請求項６に記載の計算機システム。
【請求項８】
前記第２プロセッサは、
ＳＡの確立を要求するＳＡ要求パケットを前記第１の計算機から受信すると、前記ＳＡ情報を作成せずに、前記ＳＡ候補情報を作成することを特徴とする請求項６に記載の計算機システム。
【請求項９】
前記ＳＡ候補情報には、有効期間が設定され、
前記第２プロセッサは、前記有効期間を超えた前記ＳＡ候補情報を、前記第２メモリから削除することを特徴とする請求項６に記載の計算機システム。
【請求項１０】
前記第２プロセッサは、他の第２の計算機の第２メモリに記憶されている前記ＳＡ候補情報を用いて、前記暗号化パケットを復号化することを特徴とする請求項６に記載の計算機システム。
【請求項１１】
更に、前記ＳＡ候補情報を管理するＳＡ候補情報データベースを備え、
前記第２プロセッサは、前記ＳＡ候補情報データベースが管理する前記ＳＡ候補情報を用いて、前記暗号化パケットを復号化することを特徴とする請求項６に記載の計算機システム。
【請求項１２】
プロセッサ、メモリ及びインタフェースを備える計算機であって、
前記インタフェースは、ネットワークを介して他の計算機と接続され、
前記メモリは、アドレス情報の一部が不明なＳＡ情報であるＳＡ候補情報を記憶し、
前記プロセッサは、
前記他の計算機によって暗号化されたパケットを前記他の計算機から受信すると、当該暗号化パケットを前記ＳＡ候補情報を用いて復号化し、
前記暗号化パケットの復号化に成功すると、前記復号化で用いた前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、ＳＡ情報を作成することを特徴とする計算機。
【請求項１３】
前記メモリは、受信用のＳＡに関するＳＡ候補情報と、送信用のＳＡに関するＳＡ候補情報と、を関連付けて記憶し、
前記プロセッサは、
前記暗号化パケットの復号化に成功すると、前記復号化で用いた前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、受信用のＳＡに関するＳＡ情報を作成し、
更に、復号化で用いた前記ＳＡ候補情報に関連付けられている前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、送信用のＳＡに関するＳＡ情報を作成することを特徴とする請求項１２に記載の計算機。
【請求項１４】
前記プロセッサは、
ＳＡの確立を要求するＳＡ要求パケットを前記他の計算機から受信すると、前記受信したＳＡ要求パケットのアドレス情報が変換されたか否かを判定し、
前記受信したＳＡ要求パケットのアドレス情報が変換されたと判定すると、前記受信したＳＡ要求パケットに基づいて前記ＳＡ情報を作成し、
前記受信したＳＡ要求パケットのアドレス情報が変換されていないと判定すると、前記受信したＳＡ要求パケットに基づいて前記ＳＡ候補情報を作成することを特徴とする請求項１２に記載の計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を備える計算機システムに関し、特に、ネットワーク上で通信の機密性及び安全性を確保する技術に関する。
【背景技術】
【０００２】
近年では、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークが一般的に使用されている。そのため、ネットワークセキュリティ技術が、重要視されている。ＩＰネットワークでセキュリティを確保するために、通信する計算機間で安全な通信路（ＳＡ：Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）を確立する技術が知られている。
【０００３】
ＳＡを確立する技術では、計算機が、通信を始める前に、暗号化方式又は暗号鍵などを含むＳＡ情報を交換することによって、ＳＡを確立する。次に、計算機は、確立したＳＡに関するＳＡ情報を管理する。そして、計算機は、管理しているＳＡ情報に基づいて、パケットの暗号化又は復号化を行う。
【０００４】
また、ＳＴＵＮプロトコルの仕様書が非特許文献１に開示されている。これによると、ＮＡＴに接続されている端末は、ＳＴＵＮプロトコルを用いてＳＴＵＮサーバと通信することによって、ＮＡＴから割り当てられるアドレスを事前に予測できる。
【非特許文献１】ＲＦＣ３４８９、インターネット<URL :http://www.ietf.org/rfc/rfc3489.txt>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般的に、計算機は、ＳＡを確立するための通信と確立したＳＡを利用する通信とで異なるアドレスを用いる。この場合、計算機間の通信経路上にＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）又はロードバランサが存在すると、計算機は、ＳＡを利用できない。
【０００６】
そこで、この問題を解決する技術が知られている。この技術によると、計算機は、ＳＡを確立する前に、ＵＰｎＰ（Universal Plug and Play）又はＳＴＵＮ（Simple Traversal of UDP Through NATs）等の技術を用いて、ＮＡＴ上のアドレスを予約する。そして、計算機は、予約したアドレスを通信相手の計算機に通知する。しかしこの技術では、計算機がＵＰｎＰ等の特殊な機能を備えなければならない。
【０００７】
そこで、計算機が、ＳＡを確立するための通信とそのＳＡを利用した通信とで同じアドレスを使う技術が知られている。しかし、この技術は、セキュリティを確保するプロクシ計算機を備える計算機システムには適用できない。
【０００８】
本発明は、前述した問題点に鑑み、ＮＡＴ又はロードバランサを経由して通信する計算機同士でＳＡを確立することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の代表的な実施の形態は、第１プロセッサ、第１メモリ及び第１インタフェースを備える第１の計算機と、第２プロセッサ、第２メモリ及び第２インタフェースを備える第２の計算機と、前記第１の計算機と前記第２の計算機との通信を制御する通信制御装置と、を備える計算機システムであって、前記通信制御装置は、前記第１の計算機からパケットを受信すると、受信したパケットのアドレス情報を変換して前記第２の計算機に転送し、前記第２メモリは、アドレス情報の一部が不明なＳＡ情報であるＳＡ候補情報を記憶し、前記第２プロセッサは、前記第１の計算機によって暗号化されたパケットを前記第１の計算機から受信すると、当該暗号化パケットを前記ＳＡ候補情報を用いて復号化し、前記暗号化パケットの復号化に成功すると、前記復号化で用いた前記ＳＡ候補情報及び当該暗号化パケットのアドレス情報に基づいて、ＳＡ情報を作成することを特徴とする。
【発明の効果】
【００１０】
本発明の代表的な実施の形態によれば、ＮＡＴ又はロードバランサを経由して通信する計算機同士でＳＡを確立できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面を参照して説明する。
【００１２】
（第１の実施の形態）
図１は、第１の実施の形態の計算機システムのブロック図である。
【００１３】
計算機システムは、通信網１、イニシエータ２、レスポンダ３、ＮＡＴ４、ＳＩＰプロクシ６及び通信回線９を備える。
【００１４】
イニシエータ２は、図２で後述するが、ＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）の確立をレスポンダ３に要求する計算機である。
【００１５】
なお、ＳＡは、イニシエータ２とレスポンダ３との間に確立される安全な通信路である。また、本実施の形態のＳＡは、ＩＰｓｅｃ  ＳＡのみを示すのではなく、ＩＰｓｅｃにおけるセキュリティポリシ及びＩＰｓｅｃ  ＳＡを含む。
【００１６】
レスポンダ３は、図３で後述するが、ＳＡの確立をイニシエータ２から要求される計算機である。レスポンダ３は、ＳＡの確立を要求されると、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）メッセージを用いてＳＡを確立する。
【００１７】
イニシエータ２及びレスポンダ３は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）又は電話型端末のような固定端末であってもよいし、携帯電話又はＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）のような移動端末であってもよい。
【００１８】
なお、イニシエータ２は、通信ごとの役割によって決まるので、通信によってはレスポンダとして動作してもよい。同様に、レスポンダ３は、通信ごとの役割によって決まるので、通信によってはイニシエータとして動作してもよい。一方、イニシエータ２は、レスポンダとして動作しないように設定されていてもよい。同様に、レスポンダ３は、イニシエータとして動作しないように設定されていてもよい。
【００１９】
ＮＡＴ４は、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）機能を備える通信機器である。ＮＡＴ４は、例えば、ブロードバンドルータ又はファイアウォール等である。具体的には、ＮＡＴ４は、パケットの転送時に、当該パケットのアドレス情報を変換する。
【００２０】
ＳＩＰプロクシ６は、イニシエータ２とレスポンダ３との通信経路上に設置され、ＳＩＰメッセージを転送する。
【００２１】
ＮＡＴ４、ＳＩＰプロクシ６及びレスポンダ３は、通信回線９によって通信網１に接続されている。イニシエータ２は、通信回線９によってＮＡＴ４に接続されている。つまり、イニシエータ２は、ＮＡＴ４を介して通信網１に接続されている。
【００２２】
図２は、第１の実施の形態のイニシエータ２のブロック図である。
【００２３】
イニシエータ２は、インタフェース（ＩＦ）２１、ＣＰＵ２２及びメモリ２３を備える。ＩＦ２１、ＣＰＵ２２及びメモリ２３は、データパス２４によって相互に接続されている。
【００２４】
ＩＦ２１は、通信回線９を介して、ＮＡＴ４等の外部の装置と接続されている。
【００２５】
ＣＰＵ２２は、メモリ２３に記憶されているプログラムを実行することによって、各種処理を行う。例えば、ＣＰＵ２２は、ＩＦ２１を介してパケットを送受信する。
【００２６】
メモリ２３は、ネットワーク処理プログラム２３１、ネットワークアプリケーション（ネットワークＡＰ）２３２、ＳＡ処理プログラム２３３及びＳＡ情報テーブル２３４を記憶している。
【００２７】
ネットワーク処理プログラム２３１は、通信網１を介してデータを送受信する。ネットワーク処理プログラム２３１は、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）スタックである。
【００２８】
ネットワークＡＰ２３２は、ネットワーク処理プログラム２３１を用いて、レスポンダ３のネットワークＡＰとの間でデータを送受信する。本実施の形態では、ネットワークＡＰ２３２は、Ｗｅｂブラウザとする。
【００２９】
ＳＡ処理プログラム２３３は、ＳＡ情報テーブル２３４に格納されたＳＡ情報に基づいて、ＳＡを確立する。なお、ＳＡ情報は、ＳＡの確立のために、イニシエータ２とレスポンダ３との間で交換される情報である。これによって、ＳＡ処理プログラム２３３は、暗号化又は認証などのセキュリティを確立する。なお、ネットワーク処理プログラム２３１は、パケットの送受信時にＳＡ処理プログラム２３３を呼び出す。
【００３０】
また、ＳＡ処理プログラム２３３は、ＳＡを確立するために、レスポンダ３とＳＡ情報を交換する。そして、ＳＡ処理プログラム２３３は、ＳＡ情報テーブル２３４を更新する。
【００３１】
ＳＡ情報テーブル２３４は、図４で後述するが、ＳＡ情報が格納されるテーブルである。なお、ＳＡ情報は、ＳＡ情報テーブル２３４のような一つのテーブルに格納されてもよいし、ＩＰｓｅｃのように複数のテーブルに分けて格納されてもよい。
【００３２】
本説明図は、イニシエータ２としての動作に最低限必要な構成のみを示す。よって、イニシエータ２及びレスポンダ３として動作する計算機は、レスポンダ３（図３）の構成を備える。
【００３３】
図３は、第１の実施の形態のレスポンダ３のブロック図である。
【００３４】
レスポンダ３は、インタフェース（ＩＦ）３１、ＣＰＵ３２及びメモリ３３を備える。ＩＦ３１、ＣＰＵ３２及びメモリ３３は、データパス３４によって相互に接続されている。
【００３５】
ＩＦ３１は、通信回線９及び通信網１を介して、外部の装置と接続されている。
【００３６】
ＣＰＵ３２は、メモリ３３に記憶されているプログラムを実行することによって、各種処理を行う。例えば、ＣＰＵ３２は、ＩＦ３１を介してパケットを送受信する。
【００３７】
メモリ３３は、ネットワーク処理プログラム３３１、ネットワークアプリケーション（ネットワークＡＰ）３３２、拡張ＳＡ処理プログラム３３３、ＳＡ情報テーブル３３４及びＳＡ候補情報テーブル３３５を記憶している。
【００３８】
ネットワーク処理プログラム３３１は、通信網１を介してデータを送受信する。ネットワーク処理プログラム３３１は、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）スタックなどである。
【００３９】
ネットワークＡＰ３３２は、ネットワーク処理プログラム３３１を用いて、イニシエータ２のネットワークＡＰ２３２との間でデータを送受信する。本実施の形態では、ネットワークＡＰ３３２は、Ｗｅｂサーバとする。
【００４０】
拡張ＳＡ処理プログラム３３３は、ＳＡ情報テーブル３３４に格納されたＳＡ情報に基づいて、ＳＡを確立する。これによって、拡張ＳＡ処理プログラム３３３は、暗号化又は認証などのセキュリティを確立する。なお、ネットワーク処理プログラム３３１は、パケットの送受信時に拡張ＳＡ処理プログラム３３３を呼び出す。
【００４１】
また、拡張ＳＡ処理プログラム３３３は、ＳＡを確立するために、イニシエータ２とＳＡ情報を交換する。そして、拡張ＳＡ処理プログラム３３３は、ＳＡ情報テーブル３３４を更新する。
【００４２】
また、拡張ＳＡ処理プログラム３３３は、アドレス情報に不明な部分があるＳＡ情報を、ＳＡ候補情報として扱う。そして、拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報をＳＡ候補情報テーブル３３５に格納することによって、ＳＡ候補情報を管理する。更に、拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報テーブル３３５に格納されたＳＡ候補情報に基づいて、新たなＳＡ情報を作成する。
【００４３】
ＳＡ情報テーブル３３４は、図５で後述するが、ＳＡ情報が格納されるテーブルである。なお、ＳＡ情報は、ＳＡ情報テーブル３３４のような一つのテーブルに格納されてもよいし、ＩＰｓｅｃのように複数のテーブルに分けて格納されてもよい。
【００４４】
ＳＡ候補情報テーブル３３５は、図６で後述するが、ＳＡ候補情報が格納されるテーブルである。なお、ＳＡ候補情報は、ＳＡ候補情報テーブル３３５のような一つのテーブルに格納されてもよいし、複数のテーブルに分けて格納されてもよい。
【００４５】
図４は、第１の実施の形態のイニシエータ２のＳＡ情報テーブル２３４の構成図である。
【００４６】
ＳＡ情報テーブル２３４は、方向２３４１、始点ＩＰアドレス２３４２、始点ポート２３４３、終点ＩＰアドレス２３４４、終点ポート２３４５、プロトコル２３４６、ＳＰＩ２３４７、鍵データ２３４８及び有効期間２３４９を含む。
【００４７】
ＳＡ情報テーブル２３４の一つのレコードには、一つのＳＡ情報が格納される。
【００４８】
方向２３４１は、当該ＳＡ情報のＳＡがパケットの受信時又はパケットの送信時のどちらで適用されるかを示す。具体的には、イニシエータ２がパケットを受信する時に適用されるＳＡのＳＡ情報の方向２３４１には、「ｉｎｂｏｕｎｄ」が格納される。一方、イニシエータ２がパケットを送信する時に適用されるＳＡのＳＡ情報の方向２３４１には、「ｏｕｔｂｏｕｎｄ」が格納される。
【００４９】
始点ＩＰアドレス２３４２は、当該ＳＡ情報のＳＡが適用されるパケットの送信元のＩＰアドレスである。始点ポート２３４３は、当該ＳＡ情報のＳＡが適用されるパケットの送信元のポート番号である。
【００５０】
終点ＩＰアドレス２３４４は、当該ＳＡ情報のＳＡが適用されるパケットの送信先のＩＰアドレスである。終点ポート２３４５は、当該ＳＡ情報のＳＡが適用されるパケットの送信先のポート番号である。
【００５１】
プロトコル２３４６は、当該ＳＡ情報のＳＡが適用されるパケットのプロトコルである。ＳＰＩ２３４７は、イニシエータ２及びレスポンダ３が当該ＳＡ情報を一意に識別する識別子である。
【００５２】
鍵データ２３４８は、当該ＳＡ情報のＳＡが適用されるパケットを、暗号化又は復号化するための情報である。
【００５３】
有効期間２３４９は、当該ＳＡ情報のＳＡをパケットに適用する期間である。つまり、当該ＳＡ情報の作成時から有効期間２３４９が経過すると、イニシエータ２は、当該ＳＡ情報をＳＡ情報テーブル２３４から削除する。
【００５４】
図５は、第１の実施の形態のレスポンダ３のＳＡ情報テーブル３３４の構成図である。
【００５５】
ＳＡ情報テーブル３３４は、方向３３４１、始点ＩＰアドレス３３４２、始点ポート３３４３、終点ＩＰアドレス３３４４、終点ポート３３４５、プロトコル３３４６、ＳＰＩ３３４７、鍵データ３３４８及び有効期間３３４９を含む。
【００５６】
ＳＡ情報テーブル３３４の一つのレコードには、一つのＳＡ情報が格納される。
【００５７】
方向３３４１は、当該ＳＡ情報のＳＡがパケットの受信時又はパケットの送信時のどちらで適用されるかを示す。具体的には、レスポンダ３がパケットを受信する時に適用されるＳＡのＳＡ情報の方向３３４１には、「ｉｎｂｏｕｎｄ」が格納される。一方、レスポンダ３がパケットを送信する時に適用されるＳＡのＳＡ情報の方向３３４１には、「ｏｕｔｂｏｕｎｄ」が格納される。
【００５８】
始点ＩＰアドレス３３４２は、当該ＳＡ情報のＳＡが適用されるパケットの送信元のＩＰアドレスである。始点ポート３３４３は、当該ＳＡ情報のＳＡが適用されるパケットの送信元のポート番号である。
【００５９】
終点ＩＰアドレス３３４４は、当該ＳＡ情報のＳＡが適用されるパケットの送信先のＩＰアドレスである。終点ポート３３４５は、当該ＳＡ情報のＳＡが適用されるパケットの送信先のポート番号である。
【００６０】
プロトコル３３４６は、当該ＳＡ情報のＳＡが適用されるパケットのプロトコルである。ＳＰＩ３３４７は、イニシエータ２及びレスポンダ３が当該ＳＡ情報を一意に識別する識別子である。
【００６１】
鍵データ３３４８は、当該ＳＡ情報のＳＡが適用されるパケットを、暗号化又は復号化するための情報である。
【００６２】
有効期間３３４９は、当該ＳＡ情報のＳＡをパケットに適用する期間である。つまり、当該ＳＡ情報の作成時から有効期間３３４９が経過すると、レスポンダ３は、当該ＳＡ情報をＳＡ情報テーブル３３４から削除する。
【００６３】
図６は、第１の実施の形態のレスポンダ３のＳＡ候補情報テーブル３３５の構成図である。
【００６４】
ＳＡ候補情報テーブル３３５は、ペアＩＤ３３５０、方向３３５１、始点ＩＰアドレス３３５２、始点ポート３３５３、終点ＩＰアドレス３３５４、終点ポート３３５５、プロトコル３３５６、ＳＰＩ３３５７、鍵データ３３５８及びＳＡの有効期間３３５９及びＳＡ候補の有効期間３３６０を含む。
【００６５】
ＳＡ候補情報テーブル３３５の一つのレコードには、一つのＳＡ候補情報が格納される。
【００６６】
ペアＩＤ３３５０は、当該ＳＡ候補情報が属するペアの一意な識別子である。なお、レスポンダ３がイニシエータ２から受信するパケットに適用されるＳＡのＳＡ候補情報と、当該レスポンダ３が当該イニシエータ２に送信するパケットに適用されるＳＡのＳＡ候補情報とが、一つのペアとして取り扱われる。
【００６７】
方向３３５１は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡがパケットの受信時又はパケットの送信時のどちらで適用されるかを示す。具体的には、レスポンダ３がパケットを受信する時に適用されるＳＡのＳＡ候補情報の方向３３５１には、「ｉｎｂｏｕｎｄ」が格納される。一方、レスポンダ３がパケットを送信する時に適用されるＳＡのＳＡ候補情報の方向３３５１には、「ｏｕｔｂｏｕｎｄ」が格納される。
【００６８】
始点ＩＰアドレス３３５２は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信元のＩＰアドレスである。始点ポート３３５３は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信元のポート番号である。
【００６９】
終点ＩＰアドレス３３５４は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信先のＩＰアドレスである。終点ポート３３５５は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信先のポート番号である。
【００７０】
なお、ＳＡ候補情報は、アドレス情報に不明な部分があるＳＡ情報である。よって、ＳＡ候補情報テーブル３３５では、始点ＩＰアドレス３３５２又は終点ＩＰアドレス３３５４のいずれか一方が未定となる。同様に、始点ポート３３５３又は終点ポート３３５５のいずれか一方が未定となる。
【００７１】
プロトコル３３５６は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットのプロトコルである。ＳＰＩ３３５７は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報の一意な識別子である。
【００７２】
鍵データ３３５８は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットを、暗号化又は復号化するための情報である。
【００７３】
ＳＡの有効期間３３５９は、当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡをパケットに適用する期間である。つまり、当該ＳＡ候補情報が作成された時からＳＡの有効期間３３５９が経過すると、レスポンダ３は、当該ＳＡ候補情報に基づいて作成されたＳＡ情報を削除する。
【００７４】
ＳＡ候補の有効期間３３６０は、レスポンダ３が当該ＳＡ候補情報に基づいてＳＡ情報を作成できる期間である。つまり、当該ＳＡ候補情報が作成された時からＳＡ候補の有効期間３３６０を経過すると、レスポンダ３は、当該ＳＡ候補情報をＳＡ候補情報テーブル３３５から削除する。これによって、レスポンダ３は、ＳＡ候補情報テーブル３３５から、不要なＳＡ候補情報を削除できる。
【００７５】
図７は、第１の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【００７６】
このシーケンス図の計算機システムは、イニシエータ２Ａで動作するＷｅｂブラウザとレスポンダ３で動作するＷｅｂサーバとの間の通信を暗号化する。そのため、計算機システムは、イニシエータ２Ａとレスポンダ３との間でＳＡを確立する。
【００７７】
ここでは、イニシエータ２ＡのＩＰアドレスは「１７２．１６．０．１」である。また、ＮＡＴ４の通信網１側のＩＰアドレスは「１９２．０．２．４」である。また、レスポンダ３のＩＰアドレスは「１９２．０．２．３」である。また、ＳＩＰプロクシ６のＩＰアドレスは「１９２．０．２．６」である。
【００７８】
まず、イニシエータ２Ａは、何らかの契機になると、当該イニシエータ２Ａとレスポンダ３との間にＳＡを確立する必要があると判定する。
【００７９】
ここでは、イニシエータ２Ａのネットワーク処理プログラム２３１が、イニシエータ２ＡのネットワークＡＰ２３２からパケット送信の要求を受ける。すると、当該ネットワーク処理プログラム２３１は、イニシエータ２ＡのＳＡ処理プログラム２３３へＳＡ確立を要求する。そして、当該ＳＡ処理プログラム２３３がＳＡ確立の要求を受けると、イニシエータ２Ａは、当該イニシエータ２Ａのポート２３４５とレスポンダ３のポート８０との間にＳＡを確立する必要があると判定する。
【００８０】
すると、イニシエータ２ＡのＳＡ処理プログラム２３３は、当該イニシエータ２Ａのポート５０６０から、ＩＮＶＩＴＥメッセージを含むパケットをＳＩＰプロクシ６宛てに送信する（Ｓ１０１）。なお、イニシエータ２Ａのポート５０６０は、ＳＩＰのデフォルトポートである。
【００８１】
ＩＮＶＩＴＥメッセージのボディ部には、提案用のＳＡ情報が格納されている。提案用のＳＡ情報には、レスポンダ３側からでは通信を開始できないアドレス「１７２．１６．０．１：２３４５」が含まれる。なお、アドレス「１７２．１６．０．１：２３４５」について説明する。当該アドレスのコロンの前の「１７２．１６．０．１」がＩＰアドレスであり、当該アドレスのコロンの後の「２３４５」がポート番号である。
【００８２】
ここでは、ＳＩＰメッセージのボディ部に格納されたＸＭＬ（eXtensible Markup Language）形式のＳＡ情報を説明する。なお、ＳＡ情報は、他の形式でＳＩＰメッセージに格納されてもよい。
【００８３】
図８は、第１の実施の形態のＳＡ情報の説明図である。
【００８４】
ＳＡ情報は、ポリシ情報９０１、イニシエータアドレス情報９０２、レスポンダアドレス情報９０３及び鍵生成情報９０４を含む。
【００８５】
ポリシ情報９０１には、当該ＳＡ情報のＳＰＩ及び有効期間が含まれる。イニシエータアドレス情報９０２には、当該ＳＡ情報のＳＡを確立するイニシエータ２ＡのＩＰアドレス、ポート番号及びプロトコルが含まれる。レスポンダアドレス情報９０３には、当該ＳＡ情報のＳＡを確立するレスポンダ３のＩＰアドレス、ポート番号及びプロトコルが含まれる。鍵生成情報９０４には、当該ＳＡ情報の鍵データを生成するための情報が格納される。
【００８６】
ここで、図７に戻る。
【００８７】
ＮＡＴ４は、ＩＮＶＩＴＥメッセージを含むパケットをイニシエータ２Ａから受信する。すると、ＮＡＴ４は、受信したパケットの始点アドレスに対して、当該ＮＡＴ４のアドレスを割り当てる（Ｓ１０２）。ここでは、ＮＡＴ４は、パケットの始点アドレスの「１７２．１６．０．１：５０６０」に対して、当該ＮＡＴ４のアドレスの「１９２．０．２．４：１２３４」を割り当てる。
【００８８】
次に、ＮＡＴ４は、受信したパケットの始点アドレスを、割り当てたアドレスに変換する。そして、ＮＡＴ４は、アドレスを変換したパケットをＳＩＰプロクシ６に送信する（Ｓ１０３）。以降、イニシエータ２ＡとＳＩＰプロクシ６との通信では、ＮＡＴ４によって割り当てられたアドレスがイニシエータ２Ａのアドレスとして使用される。
【００８９】
次に、ＳＩＰプロクシ６は、ＩＮＶＩＴＥメッセージを含むパケットをＮＡＴ４から受信する。すると、ＳＩＰプロクシ６は、受信したパケットをレスポンダ３に転送する（Ｓ１０４）。
【００９０】
レスポンダ３は、ＩＮＶＩＴＥメッセージを含むパケットをＳＩＰプロクシ６から受信する。すると、レスポンダ３は、受信したパケットをネットワーク処理プログラム３３１で処理する。
【００９１】
ネットワーク処理プログラム３３１は、受信したパケットがＳＡ情報を含むと判定し、拡張ＳＡ処理プログラム３３３を呼び出す。
【００９２】
拡張ＳＡ処理プログラム３３３は、受信したパケットに含まれる提案用のＳＡ情報を検査する。そして、拡張ＳＡ処理プログラム３３３は、検査した提案用のＳＡ情報に基づいて、応答用のＳＡ情報を作成する。なお、応答用のＳＡ情報は、拡張ＳＡ処理プログラム３３３が使用を許可するＳＡ情報である。
【００９３】
例えば、拡張ＳＡ処理プログラム３３３は、提案用のＳＡ情報を複数受信した場合、受信した提案用のＳＡ情報の中から、使用を許可するＳＡ情報を選択する。そして、拡張ＳＡ処理プログラム３３３は、選択したＳＡ情報を応答用のＳＡ情報とする。
【００９４】
次に、拡張ＳＡ処理プログラム３３３は、作成した応答用のＳＡ情報を成功応答メッセージに格納する。なお、成功応答メッセージは、例えば、２００ＯＫメッセージである。そして、拡張ＳＡ処理プログラム３３３は、成功応答メッセージを含むパケットを作成する。
【００９５】
次に、レスポンダ３のネットワーク処理プログラム３３１は、拡張ＳＡ処理プログラム３３３が作成したパケットをＳＩＰプロクシ６に送信する（Ｓ１０５）。
【００９６】
次に、ＳＩＰプロクシ６は、成功応答メッセージを含むパケットを、レスポンダ３のネットワーク処理プログラム３３１から受信する。次に、ＳＩＰプロクシ６は、ステップＳ１０３で受信したＩＮＶＩＴＥメッセージを含むパケットの始点アドレス宛てに、受信した成功応答メッセージを含むパケットを転送する。つまり、ＳＩＰプロクシ６は、受信した成功応答メッセージを含むパケットを、ＮＡＴ４に転送する（Ｓ１０６）。
【００９７】
次に、ＮＡＴ４は、成功応答メッセージを含むパケットをＳＩＰプロクシ６から受信する。次に、ＮＡＴ４は、受信したパケットを、イニシエータ２Ａに転送する（Ｓ１０７）。
【００９８】
次に、イニシエータ２Ａは、成功応答メッセージを含むパケットをＮＡＴ４から受信する。以上のように、イニシエータ２Ａ及びレスポンダ３は、ＳＡ情報を交換する。
【００９９】
次に、イニシエータ２Ａは、ＡＣＫメッセージを含むパケットを、ＮＡＴ４経由でＳＩＰプロクシ６に送信する（Ｓ１０８、Ｓ１０９）。
【０１００】
次に、イニシエータ２Ａは、ステップＳ１０７で受信したパケットに基づいて、ＳＡ情報テーブル２３４を更新する。
【０１０１】
具体的には、イニシエータ２Ａは、ステップＳ１０７で受信したパケットから、ＳＡ情報を抽出する。イニシエータ２Ａは、抽出したＳＡ情報が指定するＳＡの数だけ、ＳＡ情報テーブル２３４に新たなレコードを追加する。次に、イニシエータ２Ａは、パケットを受信する際に適用されるＳＡに関するレコードの方向２３４１には「ｉｎｂｏｕｎｄ」を格納する。一方、イニシエータ２Ａは、パケットを送信する際に適用されるＳＡに関するレコードの方向２３４１には「ｏｕｔｂｏｕｎｄ」を格納する。
【０１０２】
次に、イニシエータ２Ａは、抽出したＳＡ情報のイニシエータアドレス情報９０２から、ＩＰアドレス、ポート番号及びプロトコルを抽出する。次に、イニシエータ２Ａは、方向２３４１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの始点ＩＰアドレス２３４２に格納する。一方、イニシエータ２Ａは、方向２３４１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの終点ＩＰアドレス２３４４に格納する。
【０１０３】
次に、イニシエータ２Ａは、方向２３４１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの始点ポート２３４３に格納する。一方、イニシエータ２Ａは、方向２３４１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの終点ポート２３４５に格納する。次に、抽出したプロトコルを、新たなレコードのプロトコル２３４６に格納する。
【０１０４】
次に、イニシエータ２Ａは、抽出したＳＡ情報のレスポンダアドレス情報９０３から、ＩＰアドレス及びポート番号を抽出する。次に、イニシエータ２Ａは、方向２３４１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの終点ＩＰアドレス２３４４に格納する。一方、イニシエータ２Ａは、方向２３４１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの始点ＩＰアドレス２３４２に格納する。
【０１０５】
次に、イニシエータ２Ａは、方向２３４１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの終点ポート２３４５に格納する。一方、イニシエータ２Ａは、方向２３４１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの始点ポート２３４３に格納する。
【０１０６】
次に、イニシエータ２Ａは、抽出したＳＡ情報のポリシ情報９０１から、ＳＰＩ及び有効期間を抽出する。次に、抽出したＳＰＩを、新たなレコードのＳＰＩ２３４７に格納する。次に、抽出した有効期間を、新たなレコードの有効期間２３４８に格納する。
【０１０７】
次に、イニシエータ２Ａは、抽出したＳＡ情報の鍵生成情報９０４に基づいて、鍵データを生成する。そして、イニシエータ２Ａは、生成した鍵データを、新たなレコードの鍵データ２３４８に格納する。
【０１０８】
以上のように、イニシエータ２Ａは、ＳＡ情報テーブル２３４を更新する（Ｓ１１１）。なお、イニシエータ２Ａは、必要な情報が揃った時に、ＳＡ情報テーブル２３４を更新してもよい。
【０１０９】
一方、ＳＩＰプロクシ６は、ＡＣＫメッセージを含むパケットをイニシエータ２Ａから受信する。すると、ＳＩＰプロクシ６は、受信したパケットをレスポンダ３に転送する（Ｓ１１０）。
【０１１０】
次に、レスポンダ３は、ＡＣＫメッセージを含むパケットをＳＩＰプロクシ６から受信する。すると、レスポンダ３は、イニシエータ２Ａから通知されたアドレスと直接通信できるかどうかを判定する。
【０１１１】
具体的には、レスポンダ３は、ステップＳ１０４で受信したパケットに含まれるＳＡ情報から、イニシエータアドレス情報９０２を抽出する。次に、レスポンダ３は、抽出したアドレス情報９０２に含まれるアドレスの「１７２．１６．０．１：２３４５」と直接通信できるかどうかを判定する。
【０１１２】
例えば、レスポンダ３は、以下の三つの方法のいずれかを用いて、当該レスポンダ３とイニシエータ２Ａとの通信経路上にＮＡＴ４が存在するかどうかを判定する。そして、ＮＡＴ４が存在すると、レスポンダ３は、イニシエータ２Ａから通知されたアドレスと直接通信できないと判定する。一方、ＮＡＴ４が存在しないと、レスポンダ３は、イニシエータ２Ａから通知されたアドレスと直接通信できると判定する。
（１）ＳＡ情報の交換中に、レスポンダ３がＮＡＴ４の存在を検出する。
（２）ＳＡ情報の交換中に、ＳＩＰプロクシ６がＮＡＴ４の存在を検出する。そして、ＳＩＰプロクシ６は、レスポンダ４へＮＡＴ４の存在を通知する。
（３）ＳＡ情報の交換中に、イニシエータ２がレスポンダ３へＮＡＴ４の存在を通知する。
【０１１３】
まず、方法（１）の具体例を説明する。例えば、レスポンダ３は、イニシエータ２Ａから通知されたＩＰアドレスがプライベートＩＰアドレスかどうかを判定する。そして、レスポンダ３は、イニシエータ２Ａから通知されたＩＰアドレスがプライベートＩＰアドレスであると判定すると、通信経路上にＮＡＴ４が存在すると判定する。よって、方法（１）の場合、イニシエータ２及びＳＩＰプロクシ６は、特別な処理を行う必要がない。
【０１１４】
次に、方法（２）の具体例を説明する。例えば、ＳＩＰプロクシ６は、ステップＳ１０３で受信したパケットのアドレス情報と当該パケットに格納されているＳＡ情報のイニシエータアドレス情報９０２とを比較することによって、ＮＡＴ４の存在を検出する。そして、ＳＩＰプロクシ６は、ＮＡＴ４の存在を検出すると、ステップＳ１０４でレスポンダ３に転送するパケットのヘッダ部又はボディ部に、ＮＡＴ４の存在を示す文字列を挿入する。そして、レスポンダ３は、ステップ１０４で受信したパケットからＮＡＴ４の存在を示す文字列を検出すると、通信経路上にＮＡＴ４が存在すると判定する。
【０１１５】
次に、方法（３）の具体例を説明する。例えば、イニシエータ２は、ＮＡＴ４の存在を事前に通知されている。また、イニシエータ２は、ＳＴＵＮサーバなどを用いて、ＮＡＴ４の存在を事前に検出してもよい。そして、イニシエータ２は、ＮＡＴ４の存在を確認している場合、ステップＳ１０１で送信するパケットのヘッダ部又はボディ部に、ＮＡＴ４の存在を示す文字列を挿入する。そして、レスポンダ３は、ステップＳ１０４で受信したパケットからＮＡＴ４の存在を示す文字列を検出すると、通信経路上にＮＡＴ４が存在すると判定する。
【０１１６】
次に、レスポンダ３は、イニシエータ２Ａから通知されたアドレスと直接通信できると判定すると、ＳＡ情報テーブル３３４（図５）を更新する。具体的には、レスポンダ３は、ステップＳ１０５で送信したパケットに基づいて、ＳＡ情報テーブル３３４を更新する。レスポンダ３のＳＡ情報テーブル３３４の更新処理は、イニシエータ２のＳＡ情報テーブル２３４の更新処理（Ｓ１１１）と同様であるので、説明を省略する。
【０１１７】
一方、レスポンダ３は、イニシエータ２Ａから通知されたアドレスと直接通信できないと判定すると、ＳＡ候補情報テーブル３３５（図６）を更新する。
【０１１８】
まず、レスポンダ３は、ステップＳ１０５で送信したパケットに基づいて、ＳＡ候補情報テーブル３３５を更新する。
【０１１９】
具体的には、レスポンダ３は、ステップＳ１０５で送信したパケットから、ＳＡ情報を抽出する。レスポンダ３は、抽出したＳＡ情報が指定するＳＡの数だけ、ＳＡ候補情報テーブル３３５に新たなレコードを追加する。
【０１２０】
レスポンダ３は、新たなレコードのペアＩＤ３３５０に、新たに追加したレコードのすべてに共通する値を格納する。このとき、レスポンダ３は、他のレコードのペアＩＤ３３５０と重複しない値を選択し、新たなレコードのペアＩＤ３３５０に格納する。
【０１２１】
次に、レスポンダ３は、パケットを受信する際に適用されるＳＡに関するレコードの方向３３５１には「ｉｎｂｏｕｎｄ」を格納する。一方、レスポンダ３は、パケットを送信する際に適用されるＳＡに関するレコードの方向３３５１には「ｏｕｔｂｏｕｎｄ」を格納する。
【０１２２】
次に、レスポンダ３は、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、新たなレコードの始点ＩＰアドレス３３５２及び始点ポート３３５３に「未定」を格納する。一方、レスポンダ３は、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、新たなレコードの終点ＩＰアドレス３３５４及び終点ポート３３５５に「未定」を格納する。
【０１２３】
次に、レスポンダ３は、抽出したＳＡ情報のレスポンダアドレス情報９０３から、ＩＰアドレス及びポート番号を抽出する。
【０１２４】
次に、レスポンダ３は、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの終点ＩＰアドレス３３５４に格納する。一方、レスポンダ３は、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの始点ＩＰアドレス３３５２に格納する。
【０１２５】
次に、レスポンダ３は、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの終点ポート３３５５に格納する。一方、レスポンダ３は、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの始点ポート３３５３に格納する。
【０１２６】
次に、レスポンダ３は、抽出したＳＡ情報のポリシ情報９０１から、ＳＰＩ及び有効期間を抽出する。次に、抽出したＳＰＩを、新たなレコードのＳＰＩ３３５７に格納する。次に、抽出した有効期間を、新たなレコードのＳＡの有効期間３３５９に格納する。
【０１２７】
次に、レスポンダ３は、抽出したＳＡ情報の鍵生成情報９０４に基づいて、鍵データを生成する。例えば、レスポンダ３は、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換によって、鍵データを生成する。そして、レスポンダ３は、生成した鍵データを、新たなレコードの鍵データ３３５８に格納する。
【０１２８】
次に、レスポンダ３は、予め設定された値を、新たなレコードのＳＡ候補の有効期間３３６０に格納する。
【０１２９】
以上のように、レスポンダ３は、ＳＡ候補情報テーブル３３５を更新する（Ｓ１１２）。
【０１３０】
その後、イニシエータ２ＡのネットワークＡＰ２３２が、イニシエータ２Ａのポート２３４５からレスポンダ３のポート８０へのパケットの送信を、イニシエータ２Ａのネットワーク処理プログラム２３１に要求したとする。このとき、ネットワークＡＰ２３２が送信を要求するパケットは、ＳＡ確立の契機となったパケットをバッファしておいたものでもよい。
【０１３１】
イニシエータ２Ａのネットワーク処理プログラム２３１は、ネットワークＡＰ２３２からパケットの送信を要求される。すると、ネットワーク処理プログラム２３１は、送信パケットにセキュリティ機能を提供するために、イニシエータ２ＡのＳＡ処理プログラム２３３を呼び出す。
【０１３２】
ＳＡ処理プログラム２３３は、送信パケットから、当該送信パケットの始点ＩＰアドレス、始点ポート、終点ＩＰアドレス及び終点ポートを抽出する。次に、抽出した始点ＩＰアドレスとＳＡ情報テーブル２３４の始点ＩＰアドレス２３４２とが一致するレコードを、ＳＡ情報テーブル２３４から選択する。
【０１３３】
次に、ＳＡ処理プログラム２３３は、抽出した始点ポートとＳＡ情報テーブル２３４の始点ポート２３４３とが一致するレコードを、選択したレコードの中から選択する。次に、抽出した終点ＩＰアドレスとＳＡ情報テーブル２３４の終点ＩＰアドレス２３４４とが一致するレコードを、選択したレコードの中から選択する。更に、抽出した終点ポートとＳＡ情報テーブル２３４の終点ポート２３４５とが一致するレコードを、選択したレコードの中から選択する。
【０１３４】
そして、ＳＡ処理プログラム２３３は、選択したレコードの鍵データ２３４８に基づいて、送信パケットを暗号化する。なお、ＳＡ処理プログラム２３３の暗号化処理は、従来のＩＰｓｅｃ等における暗号化処理と同一である。
【０１３５】
次に、ネットワーク処理プログラム２３１は、ＳＡ処理プログラム２３３が暗号化したパケットをレスポンダ３宛てに送信する（Ｓ１１３）。
【０１３６】
すると、ＮＡＴ４は、イニシエータ２Ａからパケットを受信する。次に、ＮＡＴ４は、受信したパケットの始点アドレスに対して、当該ＮＡＴ４のアドレスを割り当てる（Ｓ１１４）。ここでは、ＮＡＴ４は、パケットの始点アドレスの「１７２．１６．０．１：２３４５」に対して、当該ＮＡＴ４のアドレスの「１９２．０．２．４：１２３５」を割り当てる。
【０１３７】
次に、ＮＡＴ４は、受信したパケットの始点アドレスを、割り当てたアドレスに変換する。そして、ＮＡＴ４は、アドレスを変換したパケットをレスポンダ３に送信する（Ｓ１１５）。
【０１３８】
以降、イニシエータ２Ａとレスポンダ３との通信では、ＮＡＴ４が割り当てたアドレスがイニシエータ２Ａのアドレスとして使用される。
【０１３９】
レスポンダ３は、パケットをＮＡＴ４から受信する。すると、レスポンダ３は、受信パケットをネットワーク処理プログラム３３１で処理する。
【０１４０】
ネットワーク処理プログラム３３１は、受信パケットが暗号化されていると判定し、拡張ＳＡ処理プログラム３３３を呼び出す。
【０１４１】
すると、拡張ＳＡ処理プログラム３３３は、受信パケット処理を行う。なお、拡張ＳＡ処理プログラム３３３の受信パケット処理は、図９で詳細を説明する。
【０１４２】
その後、レスポンダ３のネットワークＡＰ３３２が、レスポンダ３のポート８０からＮＡＴ４のポート１２３５へのパケットの送信を、レスポンダ３のネットワーク処理プログラム３３１に要求したとする。
【０１４３】
レスポンダ３のネットワーク処理プログラム３３１は、ネットワークＡＰ３３２からパケット送信要求を受ける。すると、ネットワーク処理プログラム３３１は、送信パケットにセキュリティ機能を提供するために、レスポンダ３の拡張ＳＡ処理プログラム３３３を呼び出す。
【０１４４】
すると、拡張ＳＡ処理プログラム３３３は、送信パケット処理を行うことによって、送信パケットを暗号化する。なお、拡張ＳＡ処理プログラム３３３の送信パケット処理は、図１０で詳細を説明する。
【０１４５】
次に、レスポンダ３のネットワーク処理プログラム３３１は、拡張ＳＡ処理プログラム３３３が暗号化したパケットをＮＡＴ４に送信する（Ｓ１１７）。
【０１４６】
ＮＡＴ４は、レスポンダ３からパケットを受信する。すると、ＮＡＴ４は、受信したパケットをイニシエータ２Ａに転送する（Ｓ１１８）。
【０１４７】
イニシエータ２Ａは、ＮＡＴ４からパケットを受信する。すると、イニシエータ２Ａは、受信パケットをネットワーク処理プログラム２３１で処理する。ネットワーク処理プログラム２３１は、受信パケットが暗号化されていると判定し、ＳＡ処理プログラム２３３を呼び出す。
【０１４８】
すると、ＳＡ処理プログラム２３３は、ＳＡ情報テーブル２３４を参照して、受信パケットを復号化する。なお、ＳＡ処理プログラム２３３の復号化処理は、従来のＩＰｓｅｃ等における処理と同一である。
【０１４９】
図９は、第１の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理のフローチャートである。
【０１５０】
拡張ＳＡ処理プログラム３３３は、受信パケットの情報に基づいて、当該受信パケットに対応するＳＡ情報をＳＡ情報テーブル３３４から選択する（Ｓ２０１）。
【０１５１】
受信パケットにＳＰＩが含まれない場合、拡張ＳＡ処理プログラム３３３は、受信パケットのアドレス情報に基づいて、ＳＡ情報テーブル３３４からレコードを選択する。
【０１５２】
具体的には、拡張ＳＡ処理プログラム３３３は、受信パケットから、当該受信パケットの始点ＩＰアドレス、始点ポート、終点ＩＰアドレス及び終点ポートを抽出する。次に、抽出した始点ＩＰアドレスとＳＡ情報テーブル３３４の始点ＩＰアドレス３３４２とが一致するレコードを、ＳＡ情報テーブル３３４から選択する。
【０１５３】
次に、拡張ＳＡ処理プログラム３３３は、抽出した始点ポートとＳＡ情報テーブル３３４の始点ポート３３４３とが一致するレコードを、選択したレコードの中から選択する。次に、抽出した終点ＩＰアドレスとＳＡ情報テーブル３３４の終点ＩＰアドレス３３４４とが一致するレコードを、選択したレコードの中から選択する。更に、抽出した終点ポートとＳＡ情報テーブル３３４の終点ポート３３４５とが一致するレコードを、選択したレコードの中から選択する。そして、選択したレコードを、受信パケットに対応するＳＡ情報とする。
【０１５４】
一方、受信パケットにＳＰＩが含まれる場合、拡張ＳＡ処理プログラム３３３は、受信パケットのＳＰＩに基づいて、ＳＡ情報テーブル３３４からレコードを選択する。
【０１５５】
具体的には、拡張ＳＡ処理プログラム３３３は、受信パケットに含まれるＳＰＩとＳＡ情報テーブル３３４のＳＰＩ３３４７とが一致するレコードを、ＳＡ情報テーブル３３４から選択する。そして、選択したレコードを、受信パケットに対応するＳＡ情報とする。
【０１５６】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ情報をＳＡ情報テーブル３３４から選択できたかどうかを判定する（Ｓ２０２）。
【０１５７】
拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ情報を選択できなかった場合、そのままステップＳ２０５に進む。
【０１５８】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ情報を選択できた場合、選択したＳＡ情報に対応するレコードから、鍵データ３３４８を抽出する。そして、抽出した鍵データ３３４８を用いて、受信パケットを復号化処理する（Ｓ２０３）。
【０１５９】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功したかどうかを判定する（Ｓ２０４）。具体的には、拡張ＳＡ処理プログラム３３３は、受信パケットのセキュリティヘッダに含まれるチェックサム又は鍵付きハッシュ値などを用いて、受信パケットの復号化に成功したかどうかを判定する。
【０１６０】
拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功すると、復号化した受信パケットをネットワーク処理プログラム３３１に送る。そして、本処理を終了する。
【０１６１】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に失敗すると、ステップＳ２０５に進む。
【０１６２】
従来のＩＰｓｅｃ等では、レスポンダ３は、ステップＳ２０２でＳＡ情報を選択できなかったと判定した場合又はステップＳ２０４で受信パケットの復号化に失敗したと判定した場合、パケットを破棄していた。
【０１６３】
ところが、拡張ＳＡ処理プログラム３３３は、受信パケットの情報に基づいて、当該受信パケットに対応するＳＡ候補情報をＳＡ候補情報テーブル３３５から選択する（Ｓ２０５）。
【０１６４】
受信パケットにＳＰＩが含まれない場合、拡張ＳＡ処理プログラム３３３は、受信パケットのアドレス情報に基づいて、ＳＡ候補情報テーブル３３５からレコードを選択する。
【０１６５】
具体的には、拡張ＳＡ処理プログラム３３３は、受信パケットから、当該受信パケットの始点ＩＰアドレス、始点ポート、終点ＩＰアドレス及び終点ポートを抽出する。次に、抽出した始点ＩＰアドレスとＳＡ候補情報テーブル３３５の始点ＩＰアドレス３３５２とが一致するレコードを、ＳＡ候補情報テーブル３３５から選択する。
【０１６６】
次に、拡張ＳＡ処理プログラム３３３は、抽出した始点ポートとＳＡ候補情報テーブル３３５の始点ポート３３５３とが一致するレコードを、選択したレコードの中から選択する。次に、抽出した終点ＩＰアドレスとＳＡ候補情報テーブル３３５の終点ＩＰアドレス３３５４とが一致するレコードを、選択したレコードの中から選択する。更に、抽出した終点ポートとＳＡ候補情報テーブル３３５の終点ポート３３５５とが一致するレコードを、選択したレコードの中から選択する。そして、選択したレコードを、受信パケットに対応するＳＡ候補情報とする。
【０１６７】
このとき、拡張ＳＡ処理プログラム３３３は、「未定」が格納されている始点ＩＰアドレス３３５２、始点ポート３３５３、終点ＩＰアドレス３３５４又は終点ポート３３５５を、「ａｎｙ（全ての条件を満たす）」として扱う。
【０１６８】
一方、受信パケットにＳＰＩが含まれる場合、拡張ＳＡ処理プログラム３３３は、受信パケットのＳＰＩに基づいて、ＳＡ候補情報テーブル３３５からレコードを選択する。
【０１６９】
具体的には、拡張ＳＡ処理プログラム３３３は、受信パケットに含まれるＳＰＩとＳＡ候補情報テーブル３３のＳＰＩ３３５７とが一致するレコードを、ＳＡ候補情報テーブル３３５から選択する。そして、選択したレコードを、受信パケットに対応するＳＡ候補情報とする。
【０１７０】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報をＳＡ候補情報テーブル３３５から選択できたかどうかを判定する（Ｓ２０６）。
【０１７１】
拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を選択できなかった場合、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ２１０）。そして、本処理を終了する。
【０１７２】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を選択できた場合、選択したＳＡ候補情報に対応するレコードから、鍵データ３３５８を抽出する。そして、抽出した鍵データ３３５８を用いて、受信パケットを復号化処理する（Ｓ２０７）。
【０１７３】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功したかどうかを判定する（Ｓ２０８）。
【０１７４】
拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に失敗すると、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ２１０）。そして、本処理を終了する。
【０１７５】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功すると、復号化に成功したＳＡ候補情報に対応するレコードを、ＳＡ候補情報テーブル３３５から選択する。そして、受信パケットの始点アドレスの「１９２．０．２．４：１２３５」及びＳＡ候補情報テーブル３３５から選択したレコードに基づいて、ＳＡ情報を作成する（Ｓ２１２）。具体的には、新たなＳＡ情報の始点ＩＰアドレスに、受信パケットの始点ＩＰアドレスの「１９２．０．２．４」を格納する。次に、新たなＳＡ情報の始点ポートに、受信パケットの始点ポートの「１２３５」を格納する。
【０１７６】
次に、拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報テーブル３３５から選択したレコードから、ペアＩＤ３３５０を抽出する。次に、抽出したペアＩＤ３３５０とＳＡ候補情報テーブル３３５のペアＩＤ３３５０とが一致するレコードを、ＳＡ候補情報テーブル３３５から選択する（Ｓ２１３）。
【０１７７】
次に、拡張ＳＡ処理プログラム３３３は、ペアＩＤ３３５０が一致するレコードをＳＡ候補情報テーブル３３５から選択できたかどうかを判定する（Ｓ２１４）。
【０１７８】
拡張ＳＡ処理プログラム３３３は、ペアＩＤ３３５０が一致するレコードを選択できなかった場合、同時に作成するＳＡ情報が存在しないと判定し、そのままステップＳ２１６に進む。
【０１７９】
一方、拡張ＳＡ処理プログラム３３３は、ペアＩＤ３３５０が一致するレコードを選択できた場合、選択したレコード及び受信パケットの始点アドレスの「１９２．０．２．４：１２３５」に基づいて、ＳＡ情報を作成する（Ｓ２１５）。具体的には、新たなＳＡ情報の終点ＩＰアドレスに、受信パケットの始点ＩＰアドレスの「１９２．０．２．４」を格納する。次に、新たなＳＡ情報の終点ポートに、受信パケットの始点ポートの「１２３５」を格納する。
【０１８０】
これによって、拡張ＳＡ処理プログラム３３３は、ステップＳ２１２で作成した受信用（ｉｎｂｏｕｎｄ）のＳＡ情報に対応する送信用（ｏｕｔｂｏｕｎｄ）のＳＡ情報を作成する。
【０１８１】
次に、拡張ＳＡ処理プログラム３３３は、ステップＳ２１２及びステップＳ２１５で作成したＳＡ情報をＳＡ情報テーブル３３５に格納する（Ｓ２１６）。
【０１８２】
これによって、拡張ＳＡ処理プログラム３３３は、受信用及び送信用のＳＡ情報をＳＡ情報テーブル３３５に格納する。例えば、拡張ＳＡ処理プログラム３３３は、図６に示すＳＡ候補情報テーブル３３５に基づいて、図５に示すＳＡ情報テーブル３３４を作成する。なお、拡張ＳＡ処理プログラム３３３は、ステップＳ２１４でペアＩＤ３３５０が一致するレコードを選択できなかった場合、送信用のＳＡ情報を作成しない。
【０１８３】
次に、拡張ＳＡ処理プログラム３３３は、ステップＳ２０５及びステップＳ２１３で選択したレコードを、ＳＡ候補情報テーブル３３５から削除する（Ｓ２１７）。
【０１８４】
次に、拡張ＳＡ処理プログラム３３３は、復号化した受信パケットをネットワーク処理プログラム３３１に送る。そして本処理を終了する。
【０１８５】
図１０は、第１の実施の形態の拡張ＳＡ処理プログラム３３３の送信パケット処理のフローチャートである。
【０１８６】
拡張ＳＡ処理プログラム３３３は、送信パケットのアドレス情報に基づいて、当該送信パケットに対応するＳＡ情報をＳＡ情報テーブル３３４から選択する（Ｓ６０１）。
【０１８７】
具体的には、拡張ＳＡ処理プログラム３３３は、送信パケットから、当該送信パケットの始点ＩＰアドレス、始点ポート、終点ＩＰアドレス及び終点ポートを抽出する。次に、抽出した始点ＩＰアドレスとＳＡ情報テーブル３３４の始点ＩＰアドレス３３４２とが一致するレコードを、ＳＡ情報テーブル３３４から選択する。
【０１８８】
次に、拡張ＳＡ処理プログラム３３３は、抽出した始点ポートとＳＡ情報テーブル３３４の始点ポート３３４３とが一致するレコードを、選択したレコードの中から選択する。次に、抽出した終点ＩＰアドレスとＳＡ情報テーブル３３４の終点ＩＰアドレス３３４４とが一致するレコードを、選択したレコードの中から選択する。更に、抽出した終点ポートとＳＡ情報テーブル３３４の終点ポート３３４５とが一致するレコードを、選択したレコードの中から選択する。そして、選択したレコードを、送信パケットに対応するＳＡ情報とする。
【０１８９】
次に、拡張ＳＡ処理プログラム３３３は、送信パケットに対応するＳＡ情報をＳＡ情報テーブル３３４から選択できたかどうかを判定する（Ｓ６０２）。
【０１９０】
拡張ＳＡ処理プログラム３３３は、送信パケットに対応するＳＡ情報を選択できなかった場合、送信パケットを暗号化できない。よって、拡張ＳＡ処理プログラム３３３は、送信パケットを破棄する（Ｓ６０５）。そして、本処理を終了する。
【０１９１】
一方、拡張ＳＡ処理プログラム３３３は、送信パケットに対応するＳＡ情報を選択できた場合、送信パケットを暗号化できる。
【０１９２】
ここで、拡張ＳＡ処理プログラム３３３は、ステップＳ６０１で複数のＳＡ情報を選択した場合、選択した複数のＳＡ情報の中から一つを選択する（Ｓ６０３）。例えば、拡張ＳＡ処理プログラム３３３は、選択した複数のＳＡ情報の中から、セキュリティポリシを適用する条件が最も厳しいＳＡ情報を選択する。
【０１９３】
次に、拡張ＳＡ処理プログラム３３３は、選択したＳＡ情報に対応するレコードから、鍵データ３３４８を抽出する。そして、抽出した鍵データ３３４８を用いて、送信パケットを暗号化処理する（Ｓ６０４）。
【０１９４】
次に、拡張ＳＡ処理プログラム３３３は、暗号化した送信パケットをネットワーク処理プログラム３３１に送る。そして、本処理を終了する。
【０１９５】
以上のように、拡張ＳＡ処理プログラム３３３の送信パケット処理は、従来のＩＰｓｅｃ等における処理と同一であり、ＳＡ候補情報を用いない。
【０１９６】
本実施の形態では、レスポンダ３は、アドレス情報が不明なＳＡ情報であるＳＡ候補情報を一時的に記憶している。そして、レスポンダ３は、ＳＡ候補情報に基づいて、ＳＡ情報を作成する。これによって、本実施の形態のイニシエータ２及びレスポンダ３は、ＮＡＴ４のアドレスを事前に予約することなく、ＮＡＴ４の介在する通信に対してＳＡを確立できる。そのため、イニシエータ２のネットワークＡＰ２３２及びＮＡＴ４が、特別な処理をする必要がない。
【０１９７】
（第２の実施の形態）
第２の実施の形態では、レスポンダ３は、ＳＡ情報及びＳＡ候補情報を、一つのテーブルでまとめて管理する。
【０１９８】
第２の実施の形態の計算機システムの構成は、レスポンダ３の構成を除き、第１の実施の形態の計算機システム（図１）と同一である。また、第２の実施の形態の計算機システムの処理は、レスポンダ３の受信パケット処理を除き、第１の実施の形態（図７）と同一である。よって、同一の構成及び同一の処理の説明は省略する。
【０１９９】
図１１は、第２の実施の形態のレスポンダ３のブロック図である。
【０２００】
第２の実施の形態のレスポンダ３は、ＳＡ情報テーブル３３４及びＳＡ候補情報テーブル３３５の代わりに、ＳＡ情報＆ＳＡ候補情報テーブル３３７をメモリ３３に記憶する。第２の実施の形態のレスポンダ３のそれ以外の構成は、第１の実施の形態のレスポンダ（図３）と同一である。同一の構成には同一の番号を付すことによって、説明を省略する。
【０２０１】
ＳＡ情報＆ＳＡ候補情報テーブル３３７は、図１２で後述するが、ＳＡ情報及びＳＡ候補情報が併せて格納される。
【０２０２】
図１２は、第２の実施の形態のレスポンダ３のＳＡ情報＆ＳＡ候補情報テーブル３３７の構成図である。
【０２０３】
ＳＡ情報＆ＳＡ候補情報テーブル３３７は、ペアＩＤ３３７０、状態３３７１、方向３３７２、始点ＩＰアドレス３３７３、始点ポート３３７４、終点ＩＰアドレス３３７５、終点ポート３３７６、プロトコル３３７７、ＳＰＩ３３７８、鍵データ３３７９及びＳＡの有効期間３３８０及びＳＡ候補の有効期間３３８１を含む。
【０２０４】
ＳＡ情報＆ＳＡ候補情報テーブル３３７の一つのレコードには、ＳＡ情報又はＳＡ候補情報のいずれか一つが格納される。
【０２０５】
ペアＩＤ３３７０は、当該ＳＡ情報又は当該ＳＡ候補情報が属するペアの一意な識別子である。
【０２０６】
状態３３７１は、当該レコードにＳＡ情報又はＳＡ候補情報のいずれが格納されているかを示す。つまり、当該レコードがＳＡ情報であると、状態３３７１には「完成」が格納される。また、当該レコードがＳＡ候補情報であると、状態３３７１には「候補」が格納される。
【０２０７】
方向３３７２は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡがパケットの受信時又はパケットの送信時のどちらで適用されるかを示す。
【０２０８】
始点ＩＰアドレス３３７３は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信元のＩＰアドレスである。始点ポート３３７４は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信元のポート番号である。
【０２０９】
終点ＩＰアドレス３３７５は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信先のＩＰアドレスである。終点ポート３３７６は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットの送信先のポート番号である。
【０２１０】
プロトコル３３７７は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットのプロトコルである。ＳＰＩ３３７８は、当該ＳＡ情報又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報の一意な識別子である。
【０２１１】
鍵データ３３７９は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡが適用されるパケットを、暗号化又は復号化するための情報である。
【０２１２】
ＳＡの有効期間３３８０は、当該ＳＡ情報のＳＡ又は当該ＳＡ候補情報に基づいて作成されるＳＡ情報のＳＡをパケットに適用する期間である。
【０２１３】
ＳＡ候補の有効期間３３８１は、レスポンダ３が当該ＳＡ候補情報に基づいてＳＡ情報を作成できる期間である。よって、当該レコードがＳＡ情報であると、ＳＡ候補の有効期間３３８１には値が格納されない。
【０２１４】
図１３は、第２の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理のフローチャートである。
【０２１５】
拡張ＳＡ処理プログラム３３３は、受信パケットの情報に基づいて、当該受信パケットに対応するＳＡ情報及びＳＡ候補情報をＳＡ情報＆ＳＡ候補情報テーブル３３７から選択する（Ｓ３０１）。
【０２１６】
受信パケットにＳＰＩが含まれない場合、拡張ＳＡ処理プログラム３３３は、受信パケットのアドレス情報に基づいて、ＳＡ情報＆ＳＡ候補情報テーブル３３７からレコードを選択する。
【０２１７】
具体的には、拡張ＳＡ処理プログラム３３３は、受信パケットから、当該受信パケットの始点ＩＰアドレス、始点ポート、終点ＩＰアドレス及び終点ポートを抽出する。次に、抽出した始点ＩＰアドレスとＳＡ情報＆ＳＡ候補情報テーブル３３７の始点ＩＰアドレス３３７３とが一致するレコードを、ＳＡ情報＆ＳＡ候補情報テーブル３３７から選択する。
【０２１８】
次に、拡張ＳＡ処理プログラム３３３は、抽出した始点ポートとＳＡ情報＆ＳＡ候補情報テーブル３３７の始点ポート３３７４とが一致するレコードを、選択したレコードの中から選択する。次に、抽出した終点ＩＰアドレスとＳＡ情報＆ＳＡ候補情報テーブル３３７の終点ＩＰアドレス３３７５とが一致するレコードを、選択したレコードの中から選択する。更に、抽出した終点ポートとＳＡ情報＆ＳＡ候補情報テーブル３３７の終点ポート３３７６とが一致するレコードを、選択したレコードの中から選択する。そして、選択したレコードを、受信パケットに対応するＳＡ情報又はＳＡ候補情報とする。
【０２１９】
一方、受信パケットにＳＰＩが含まれる場合、拡張ＳＡ処理プログラム３３３は、受信パケットのＳＰＩに基づいて、ＳＡ情報＆ＳＡ候補情報テーブル３３７からレコードを選択する。
【０２２０】
具体的には、拡張ＳＡ処理プログラム３３３は、受信パケットに含まれるＳＰＩとＳＡ情報＆ＳＡ候補情報テーブル３３７のＳＰＩ３３７８とが一致するレコードを、ＳＡ情報＆ＳＡ候補情報テーブル３３７から選択する。そして、選択したレコードを、受信パケットに対応するＳＡ情報又はＳＡ候補情報とする。
【０２２１】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ情報及びＳＡ候補情報の少なくとも一方をＳＡ情報＆ＳＡ候補情報テーブル３３７から選択できたかどうかを判定する（Ｓ３０２）。
【０２２２】
拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ情報及びＳＡ候補情報のどちらも選択できなかった場合、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ２１０）。そして、本処理を終了する。
【０２２３】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ情報及びＳＡ候補情報の少なくとも一方を選択できた場合、選択したＳＡ情報又はＳＡ候補情報に対応するレコードから、鍵データ３３４８を抽出する。そして、抽出した鍵データ３３４８を用いて、受信パケットを復号化処理する（Ｓ３０３）。
【０２２４】
次に、拡張ＳＡ処理プログラム３３３は、選択したＳＡ情報を用いて受信パケットの復号化に成功したかどうかを判定する（Ｓ３０４）。
【０２２５】
拡張ＳＡ処理プログラム３３３は、ＳＡ情報による受信パケットの復号化に成功すると、復号化した受信パケットをネットワーク処理プログラム３３１に送る。そして、本処理を終了する。
【０２２６】
一方、拡張ＳＡ処理プログラム３３３は、ＳＡ情報による受信パケットの復号化に失敗すると、選択したＳＡ候補情報を用いて受信パケットの復号化に成功したかどうかを判定する（Ｓ３０５）。
【０２２７】
拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報による受信パケットの復号化に失敗すると、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ２１０）。そして、本処理を終了する。
【０２２８】
一方、拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報による受信パケットの復号化に成功すると、ステップＳ２１２からステップＳ２１７までを実行する。なお、ステップＳ２１２からステップＳ２１７は、第１の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理（図９）におけるステップと同一である。同一のステップには同一の番号を付すことによって、説明を省略する。
【０２２９】
以上のように、第２の実施の形態のレスポンダ３は、ＳＡ情報＆ＳＡ候補情報テーブル３３７を備えることによって、ＳＡ情報及びＳＡ候補情報を同時に検索できる。
【０２３０】
（第３の実施の形態）
第３の実施の形態では、イニシエータ２とレスポンダ３とが、ＳＡ情報を直接交換する。
【０２３１】
図１４は、第３の実施の形態の計算機システムのブロック図である。
【０２３２】
第３の実施の形態の計算機システムは、ＳＩＰプロクシ６を備えない。第３の実施の形態の計算機システムのそれ以外の構成は、第１の実施の形態の計算機システム（図１）と同一である。同一の構成には同一の番号を付すことによって、説明を省略する。
【０２３３】
なお、イニシエータ２及びレスポンダ３は、ＩＫＥなどの鍵交換プロトコルを用いて、ＳＡを確立する。
【０２３４】
図１５は、第３の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【０２３５】
イニシエータ２Ａ及びレスポンダ３は、Ｐｈａｓｅ１の通信を行う（Ｓ１１０１）。具体的には、イニシエータ２Ａ及びレスポンダ３は、パケットを送受信することによって、互いのＩＤを交換する。そして、イニシエータ２Ａ及びレスポンダ３は、Ｐｈａｓｅ２の通信の方式を決定する。
【０２３６】
なお、ＮＡＴ４は、イニシエータ２Ａから最初のパケットを受信すると、当該パケットの始点アドレスに対して、当該ＮＡＴ４のアドレスを割り当てる（Ｓ１１０２）。
【０２３７】
次に、イニシエータ２Ａ及びレスポンダ３は、Ｐｈａｓｅ２の通信を行う（Ｓ１１０３）。具体的には、イニシエータ２Ａ及びレスポンダ３は、Ｐｈａｓｅ１で決定した方式でパケットを送受信することによって、ＳＡ情報を交換する。これによって、イニシエータ２Ａ及びレスポンダ３は、ＳＡを確立する。
【０２３８】
そして、第３の実施の形態の計算機システムは、ステップＳ１１１からステップＳ１１８までを実行する。
【０２３９】
なお、ステップＳ１１１からステップＳ１１８は、第１の実施の形態の計算機システムのＳＡ確立処理（図７）におけるステップと同一である。同一のステップには同一の番号を付すことによって、説明を省略する。
【０２４０】
第３の実施の形態によると、ＳＩＰプロクシ６を備えない計算機システムは、ＳＡを確立するための通信と確立したＳＡを利用する通信とで異なるアドレスを用いても、ＳＡを確立できる。
【０２４１】
（第４の実施の形態）
第４の実施の形態では、ロードバランサがレスポンダにパケットを振り分ける。
【０２４２】
図１６は、第４の実施の形態の計算機システムのブロック図である。
【０２４３】
計算機システムは、通信網１、イニシエータ２、レスポンダ３、ＳＩＰプロクシ６、ロードバランサ７及び通信回線９を備える。
【０２４４】
イニシエータ２、ＳＩＰプロクシ６及びロードバランサ７は、通信回線９によって通信網１に接続されている。レスポンダ３は、通信回線９によってロードバランサ７に接続されている。つまり、レスポンダ３は、ロードバランサ７を介して通信網１に接続されている。
【０２４５】
なお、通信網１、イニシエータ２、レスポンダ３及びＳＩＰプロクシ６は、第１の実施の形態の計算機システム（図１）の構成と同一である。同一の構成には同一の番号を付すことによって、説明を省略する。
【０２４６】
但し、第３の実施の形態のレスポンダ３には、ロードバランサ７の存在、当該ロードバランサ７のアドレス情報及び他のレスポンダ３のアドレス情報が事前に設定されている。
【０２４７】
ロードバランサ７は、通信網１から受信したパケットの終点アドレスを変換し、当該パケットをレスポンダ３のいずれかに転送する。
【０２４８】
図１７は、第４の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【０２４９】
このシーケンス図の計算機システムは、イニシエータ２Ａで動作するＷｅｂブラウザとレスポンダ３Ｂで動作するＷｅｂサーバとの間の通信を暗号化する。そこで、イニシエータ２Ａとレスポンダ３Ａとが、ＳＡ情報を交換する。その後、レスポンダ３Ｂは、レスポンダ３ＡとＳＡ候補情報を交換することによって、イニシエータ２Ａとの間にＳＡを確立する。
【０２５０】
ここでは、イニシエータ２ＡのＩＰアドレスは「１９２．０．２．２」である。また、ロードバランサ７の通信網１側のＩＰアドレスは「１９２．０．２．７」である。また、レスポンダ３ＡのＩＰアドレスは「１７２．１６．０．１」である。また、レスポンダ３ＢのＩＰアドレスは「１７２．１６．０．２」である。また、ＳＩＰプロクシ６のＩＰアドレスは「１９２．０．２．６」である。
【０２５１】
まず、イニシエータ２Ａは、何らかの契機になると、当該イニシエータ２Ａとロードバランサ７との間にＳＡを確立する必要があると判定する。
【０２５２】
ここでは、イニシエータ２Ａのネットワーク処理プログラム２３１が、イニシエータ２ＡのネットワークＡＰ２３２からパケット送信の要求を受ける。すると、当該ネットワーク処理プログラム２３１は、イニシエータ２ＡのＳＡ処理プログラム２３３へＳＡの確立を要求する。そして、当該ＳＡ処理プログラム２３３がＳＡ確立要求を受けると、イニシエータ２Ａは、当該イニシエータ２Ａのポート２３４５とロードバランサ７のポート８０との間にＳＡを確立する必要があると判定する。
【０２５３】
すると、イニシエータ２ＡのＳＡ処理プログラム２３３は、当該イニシエータ２Ａのポート５０６０から、提案用のＳＡ情報が格納されたＩＮＶＩＴＥメッセージを含むパケットをＳＩＰプロクシ６に送信する（Ｓ７０１）。なお、イニシエータ２Ａのポート５０６０は、ＳＩＰのデフォルトポートである。また、ＩＮＶＩＴＥメッセージへ格納されたＳＡ情報は、第１の実施の形態のＳＡ情報（図８）と同一であるので、説明を省略する。
【０２５４】
ＳＩＰプロクシ６は、ＩＮＶＩＴＥメッセージを含むパケットをイニシエータ２Ａから受信する。すると、ＳＩＰプロクシ６は、受信したパケットをロードバランサ７に転送する（Ｓ７０２）。
【０２５５】
ロードバランサ７は、ＩＮＶＩＴＥメッセージを含むパケットをＳＩＰプロクシ６から受信する。すると、ロードバランサ７は、受信したパケットの転送先を、接続しているレスポンダ３の中から選択する。ここでは、ロードバランサ７は、受信したパケットの転送先として、レスポンダ３Ａを選択したとする（Ｓ７０３）。
【０２５６】
次に、ロードバランサ７は、受信したパケットの終点アドレスを、転送先のレスポンダ３Ａのアドレスである「１７２．１６．０．１：５０６０」に変換する。そして、ロードバランサ７は、アドレスを変換したパケットを、転送先のレスポンダ３Ａに送信する（Ｓ７０４）。
【０２５７】
レスポンダ３Ａは、ＩＮＶＩＴＥメッセージを含むパケットをＳＩＰプロクシ６から受信する。すると、レスポンダ３Ａは、受信したパケットをネットワーク処理プログラム３３１で処理する。
【０２５８】
ネットワーク処理プログラム３３１は、受信したパケットがＳＡ情報を含むと判定し、拡張ＳＡ処理プログラム３３３を呼び出す。
【０２５９】
拡張ＳＡ処理プログラム３３３は、受信したパケットに含まれる提案用のＳＡ情報を検査する。そして、拡張ＳＡ処理プログラム３３３は、検査した提案用のＳＡ情報に基づいて、応答用のＳＡ情報を作成する。なお、応答用のＳＡ情報は、拡張ＳＡ処理プログラム３３３が使用を許可するＳＡ情報である。このとき、拡張ＳＡ処理プログラム３３３は、作成する応答用のＳＡ情報に、レスポンダ３Ａのアドレス情報の代わりに、ロードバランサ７のアドレス情報を含める。
【０２６０】
次に、拡張ＳＡ処理プログラム３３３は、作成した応答用のＳＡ情報を成功応答メッセージに格納する。そして、拡張ＳＡ処理プログラム３３３は、成功応答メッセージを含むパケットを作成する。
【０２６１】
次に、レスポンダ３Ａのネットワーク処理プログラム３３１は、拡張ＳＡ処理プログラム３３３が作成したパケットをロードバランサ７に送信する（７０５）。
【０２６２】
ロードバランサ７は、成功応答メッセージを含むパケットを、レスポンダ３Ａのネットワーク処理プログラム３３１から受信する。すると、ロードバランサ７は、受信したパケットの始点アドレスを、当該ロードバランサ７のアドレスに変換する。そして、ロードバランサ７は、アドレスを変換したパケットを、ＳＩＰプロクシ６に送信する（Ｓ７０６）。
【０２６３】
ＳＩＰプロクシ６は、成功応答メッセージを含むパケットをネットワーク処理プログラム３３１から受信する。次に、ＳＩＰプロクシ６は、受信したパケットを、イニシエータ２Ａに転送する（Ｓ７０７）。
【０２６４】
イニシエータ２Ａは、成功応答メッセージを含むパケットをＳＩＰプロクシ６から受信する。以上のように、イニシエータ２Ａ及びレスポンダ３Ａは、ＳＡ情報を交換する。次に、イニシエータ２Ａは、ＡＣＫメッセージを含むパケットを、ＳＩＰプロクシ６に送信する（Ｓ７０８）。
【０２６５】
次に、イニシエータ２Ａは、ステップＳ７０７で受信したパケットに基づいて、ＳＡ情報テーブル２３４を更新する（Ｓ７１１）。なお、イニシエータ２ＡのＳＡ情報テーブル２３４の更新処理は、第１の実施の形態の計算機システムのＳＡ確立処理（図７）のステップＳ１１１と同一であるので、詳細な説明は省略する。
【０２６６】
一方、ＳＩＰプロクシ６は、ＡＣＫメッセージを含むパケットをイニシエータ２Ａから受信する。すると、ＳＩＰプロクシ６は、受信したパケットを、ロードバランサ７経由でレスポンダ３Ａに転送する（Ｓ７０９、Ｓ７１０）。
【０２６７】
レスポンダ３Ａは、ＡＣＫメッセージを含むパケットを受信する。すると、レスポンダ３Ａは、ロードバランサ７の存在を事前に設定されているので、ＳＡ候補情報テーブル３３５（図６）を更新する。
【０２６８】
次に、レスポンダ３Ａは、ステップＳ７０５で送信したパケットに基づいて、ＳＡ候補情報テーブル３３５を更新する。
【０２６９】
具体的には、レスポンダ３Ａは、ステップＳ７０５で送信したパケットから、ＳＡ情報を抽出する。レスポンダ３Ａは、抽出したＳＡ情報が指定するＳＡの数だけ、ＳＡ候補情報テーブル３３５に新たなレコードを追加する。
【０２７０】
次に、レスポンダ３Ａは、新たなレコードのペアＩＤ３３５０に、新たに追加したレコードのすべてに共通する値を格納する。ここでは、レスポンダ３Ａは、、他のレコードのペアＩＤ３３５０と重複しない値を選択し、新たなレコードのペアＩＤ３３５０に格納する。次に、レスポンダ３は、パケットを受信する際に適用されるＳＡに関するレコードの方向３３５１には「ｉｎｂｏｕｎｄ」を格納する。一方、レスポンダ３Ａは、パケットを送信する際に適用されるＳＡに関するレコードの方向３３５１には「ｏｕｔｂｏｕｎｄ」を格納する。
【０２７１】
次に、レスポンダ３Ａは、抽出したＳＡ情報のイニシエータアドレス情報９０２から、ＩＰアドレス、ポート番号及びプロトコルを抽出する。次に、レスポンダ３Ａは、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの始点ＩＰアドレス３３５２に格納する。一方、レスポンダ３Ａは、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの終点ＩＰアドレス３３５４に格納する。
【０２７２】
次に、レスポンダ３Ａは、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの始点ポート３３５３に格納する。一方、レスポンダ３Ａは、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したポート番号を終点ポート３３５５に格納する。次に、抽出したプロトコルを、新たなレコードのプロトコル３３５６に格納する。
【０２７３】
次に、レスポンダ３Ａは、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、新たなレコードの終点ＩＰアドレス３３５４及び終点ポート３３５５に「未定」を格納する。一方、レスポンダ３Ａは、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、新たなレコードの始点ＩＰアドレス３３５２及び始点ポート３３５３に「未定」を格納する。
【０２７４】
次に、レスポンダ３Ａは、抽出したＳＡ情報のポリシ情報９０１から、ＳＰＩ及び有効期間を抽出する。次に、抽出したＳＰＩを、新たなレコードのＳＰＩ３３５７に格納する。次に、抽出した有効期間を、新たなレコードのＳＡの有効期間３３５９に格納する。
【０２７５】
次に、レスポンダ３Ａは、抽出したＳＡ情報の鍵生成情報９０４に基づいて、鍵データを生成する。そして、レスポンダ３Ａは、生成した鍵データを、新たなレコードの鍵データ３３５８に格納する。
【０２７６】
次に、レスポンダ３Ａは、予め設定された値を、新たなレコードのＳＡ候補の有効期間３３６０に格納する。
【０２７７】
以上のように、レスポンダ３Ａは、ＳＡ候補情報テーブル３３５を更新する（Ｓ７１２）。
【０２７８】
その後、イニシエータ２ＡのネットワークＡＰ２３２が、イニシエータ２Ａのポート２３４５からロードバランサ７のポート８０へのパケットの送信を、イニシエータ２Ａのネットワーク処理プログラム２３１に要求したとする。このとき、ネットワークＡＰ２３２が送信を要求するパケットは、ＳＡ確立の契機となったパケットをバッファしておいたものでもよい。
【０２７９】
イニシエータ２Ａのネットワーク処理プログラム２３１は、ネットワークＡＰ２３２からパケット送信要求を受ける。すると、ネットワーク処理プログラム２３１は、送信パケットにセキュリティ機能を提供するために、イニシエータ２ＡのＳＡ処理プログラム２３３を呼び出す。
【０２８０】
ＳＡ処理プログラム２３３は、送信パケットから、当該送信パケットの始点ＩＰアドレス、始点ポート、終点ＩＰアドレス及び終点ポートを抽出する。次に、抽出した始点ＩＰアドレスとＳＡ情報テーブル２３４の始点ＩＰアドレス２３４２とが一致するレコードを、ＳＡ情報テーブル２３４から選択する。
【０２８１】
次に、ＳＡ処理プログラム２３３は、抽出した始点ポートとＳＡ情報テーブル２３４の始点ポート２３４３とが一致するレコードを、選択したレコードの中から選択する。次に、抽出した終点ＩＰアドレスとＳＡ情報テーブル２３４の終点ＩＰアドレス２３４４とが一致するレコードを、選択したレコードの中から選択する。更に、抽出した終点ポートとＳＡ情報テーブル２３４の終点ポート２３４５とが一致するレコードを、選択したレコードの中から選択する。
【０２８２】
そして、ＳＡ処理プログラム２３３は、選択したレコードの鍵データ２３４８に基づいて、送信パケットを暗号化する。なお、ＳＡ処理プログラム２３３の暗号化処理は、従来のＩＰｓｅｃ等における暗号化処理と同一である。
【０２８３】
次に、イニシエータ２Ａのネットワーク処理プログラム２３１は、ＳＡ処理プログラム２３３が暗号化したパケットをロードバランサ７に送信する（Ｓ７１３）。
【０２８４】
ロードバランサ７は、イニシエータ２Ａからパケットを受信する。すると、ロードバランサ７は、受信したパケットの転送先を、接続しているレスポンダ３の中から選択する。ここでは、ロードバランサ７は、受信したパケットの転送先として、レスポンダ３Ｂを選択したとする（Ｓ７１４）。
【０２８５】
次に、ロードバランサ７は、受信したパケットの終点アドレスを、転送先のレスポンダ３Ｂのアドレスの「１７２．１６．０．２：８０」に変換する。そして、ロードバランサ７は、アドレスを変換したパケットを、転送先のレスポンダ３Ｂに送信する（Ｓ７１５）。
【０２８６】
レスポンダ３Ｂは、パケットをロードバランサ７から受信する。すると、レスポンダ３は、受信パケットをネットワーク処理プログラム３３１で処理する。
【０２８７】
ネットワーク処理プログラム３３１は、受信パケットが暗号化されていると判定し、拡張ＳＡ処理プログラム３３３を呼び出す。
【０２８８】
すると、拡張ＳＡ処理プログラム３３３は、受信パケット処理を行う。なお、拡張ＳＡ処理プログラム３３３の受信パケット処理は、図１８Ａ及び図１８Ｂで詳細を説明する。
【０２８９】
ここでは、レスポンダ３Ｂは、当該レスポンダ３ＢのＳＡ情報テーブル３３４及びＳＡ候補情報テーブル３３５に基づいて、受信パケットを復号化できない。そこで、レスポンダ３Ｂは、他のすべてのレスポンダ３にＳＡ候補情報検索要求を送信する（Ｓ７１６）。なお、ＳＡ候補情報検索要求には、検索条件が含まれる。
【０２９０】
レスポンダ３Ａは、受信したＳＡ候補情報検索要求に含まれる検索条件を満たすＳＡ候補情報を、当該レスポンダ３ＡのＳＡ候補情報テーブル３３５から抽出する。次に、レスポンダ３Ａは、抽出したＳＡ候補情報を含むＳＡ候補情報検索応答を作成する。そして、レスポンダ３Ａは、作成したＳＡ候補情報検索応答をレスポンダ３Ｂに送信する（Ｓ７１７）。
【０２９１】
レスポンダ３Ｂは、ＳＡ候補情報検索応答を受信する。次に、レスポンダ３Ｂは、受信したＳＡ候補情報検索応答に含まれるＳＡ候補情報を用いて、受信パケットを復号化する。そして、レスポンダ３Ｂは、復号化に成功したＳＡ候補情報に基づいて、ＳＡ情報を作成する（Ｓ７１８）。
【０２９２】
次に、レスポンダ３Ｂは、作成したＳＡ情報を当該レスポンダ３ＢのＳＡ情報テーブル３３４に格納する。次に、レスポンダ３Ｂは、復号化に成功したＳＡ候補情報の削除要求をレスポンダ３Ａに送信する（Ｓ７１９）。
【０２９３】
すると、レスポンダ３Ａは、削除を要求されたＳＡ候補情報を、当該レスポンダ３ＡのＳＡ候補情報テーブル３３５から削除する。
【０２９４】
その後、レスポンダ３ＢのネットワークＡＰ３３２が、パケットの送信をレスポンダ３のネットワーク処理プログラム３３１に要求したとする。
【０２９５】
レスポンダ３のネットワーク処理プログラム３３１は、ネットワークＡＰ３３２からパケット送信要求を受ける。すると、ネットワーク処理プログラム３３１は、送信パケットにセキュリティ機能を提供するために、レスポンダ３Ｂの拡張ＳＡ処理プログラム３３３を呼び出す。
【０２９６】
すると、拡張ＳＡ処理プログラム３３３は、送信パケット処理を行うことによって、送信パケットを暗号化する。なお、拡張ＳＡ処理プログラム３３３の送信パケット処理は、第１の実施の形態（図１０）と同一であるので、説明を省略する。
【０２９７】
次に、レスポンダ３Ｂのネットワーク処理プログラム３３１は、拡張ＳＡ処理プログラム３３３が暗号化したパケットをイニシエータ２Ａ宛てに送信する（Ｓ７２０）。
【０２９８】
すると、ロードバランサ７は、レスポンダ３Ｂからパケットを受信する。すると、ロードバランサ７は、受信したパケットの始点アドレスを当該ロードバランサ７のアドレスに変換する。そして、ロードバランサ７は、アドレスを変換したパケットを、イニシエータ２Ａに送信する（Ｓ７２１）。
【０２９９】
イニシエータ２Ａは、ロードバランサ７からパケットを受信する。すると、イニシエータ２Ａは、受信パケットをネットワーク処理プログラム２３１で処理する。ネットワーク処理プログラム２３１は、受信パケットが暗号化されていると判定し、ＳＡ処理プログラム２３３を呼び出す。
【０３００】
すると、ＳＡ処理プログラム２３３は、ＳＡ情報テーブル２３４を参照して、受信パケットを復号化する。なお、ＳＡ処理プログラム２３３の復号化処理は、従来のＩＰｓｅｃ等における処理と同一である。
【０３０１】
図１８Ａ及び図１８Ｂは、第４の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理のフローチャートである。
【０３０２】
まず、拡張ＳＡ処理プログラム３３３は、ステップＳ２０１からステップＳ２０８までを実行する。なお、ステップＳ２０１からステップＳ２０８までは、第１の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理（図９）におけるステップと同一である。同一のステップには同一の番号を付すことによって、説明を省略する。
【０３０３】
拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功したとステップＳ２０８で判定すると、ステップＳ２１２からステップＳ２１７までを実行する。なお、ステップＳ２１２からステップＳ２１７までは、第１の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理（図９）におけるステップと同一である。同一のステップには同一の番号を付すことによって、説明を省略する。
【０３０４】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に失敗したとステップＳ２０８で判定すると、ＳＡ候補情報を他の装置から取得できるかどうかを判定する。具体的には、拡張ＳＡ処理プログラム３３３は、当該拡張ＳＡ処理プログラム３３３を備えるレスポンダ３が他のレスポンダ３と連携しているかどうかを判定する（Ｓ２０９）。
【０３０５】
拡張ＳＡ処理プログラム３３３は、他のレスポンダ３と連携していないと判定すると、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ２１０）。そして、本処理を終了する。
【０３０６】
一方、拡張ＳＡ処理プログラム３３３は、他のレスポンダ３と連携していると判定すると、当該他のレスポンダ３のＳＡ候補情報を用いて、受信パケットの復号化を試みる。
【０３０７】
具体的には、拡張ＳＡ処理プログラム３３３は、当該拡張ＳＡ処理プログラムを備えるレスポンダ３以外のすべてのレスポンダ３に、ＳＡ候補情報検索要求を送信する。なお、ＳＡ候補情報検索要求には、受信パケットのＳＰＩ及びアドレス情報のうち少なくとも一方が検索条件として含まれている。
【０３０８】
他のレスポンダ３のそれぞれは、ＳＡ候補情報検索要求を受信すると、当該ＳＡ候補情報検索要求から受信パケットのＳＰＩ又はアドレス情報を抽出する。そして、当該他のレスポンダ３は、抽出したＳＰＩ又はアドレス情報に基づいて、自身のＳＡ候補情報テーブル３３５から、受信パケットに対応するＳＡ候補情報を選択する。なお、レスポンダ３のＳＡ候補情報の選択処理は、ステップＳ２０５と同一である。よって、詳細な説明は省略する。更に、当該他のレスポンダ３は、選択したＳＡ候補情報と同一のペアＩＤを持つＳＡ候補情報を、自身のＳＡ候補情報テーブル３３５から選択する。
【０３０９】
そして、当該他のレスポンダ３は、選択したＳＡ候補情報を含むＳＡ候補情報検索応答を、ＳＡ候補情報検索要求の送信元のレスポンダ３の拡張ＳＡ処理プログラム３３３に送信する。
【０３１０】
ＳＡ候補情報検索要求の送信元のレスポンダ３の拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報検索応答を受信する。これによって、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を、当該拡張ＳＡ処理プログラム３３３を備えるレスポンダ３以外のレスポンダ３のＳＡ候補情報テーブル３３５から取得する（Ｓ４０１）。
【０３１１】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を取得できたかどうかを判定する（Ｓ４０２）。
【０３１２】
拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を取得できなかった場合、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ４０５）。そして、本処理を終了する。
【０３１３】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を取得できた場合、取得したＳＡ候補情報から、鍵データを抽出する。そして、抽出した鍵データを用いて、受信パケットを復号化処理する（Ｓ４０３）。
【０３１４】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功したかどうかを判定する（Ｓ４０４）。
【０３１５】
拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に失敗すると、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ４０５）。そして、本処理を終了する。
【０３１６】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功すると、復号化に成功したＳＡ候補情報及び受信パケットの終点アドレスに基づいて、ＳＡ情報を作成する（Ｓ４０６）。
【０３１７】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功したＳＡ候補情報からペアＩＤを抽出する。次に、抽出したペアＩＤと同一のペアＩＤを持つＳＡ候補情報を、ステップＳ４０１で取得したＳＡ候補情報の中から選択する（Ｓ４０７）。
【０３１８】
次に、拡張ＳＡ処理プログラム３３３は、同一のペアＩＤを持つＳＡ候補情報を選択できたかどうかを判定する（Ｓ４０８）。
【０３１９】
拡張ＳＡ処理プログラム３３３は、同一のペアＩＤを持つＳＡ候補情報を選択できなかった場合、そのままステップＳ４１０に進む。
【０３２０】
一方、拡張ＳＡ処理プログラム３３３は、同一のペアＩＤを持つＳＡ候補情報を選択できた場合、選択したＳＡ候補情報及び受信パケットの終点アドレスに基づいて、ＳＡ情報を作成する（Ｓ４０９）。
【０３２１】
これによって、拡張ＳＡ処理プログラム３３３は、ステップＳ４０６で作成した受信用（ｉｎｂｏｕｎｄ）のＳＡ情報に対応する送信用（ｏｕｔｂｏｕｎｄ）のＳＡ情報を作成する。
【０３２２】
次に、拡張ＳＡ処理プログラム３３３は、作成したＳＡ情報をＳＡ情報テーブル３３５に格納する（Ｓ４１０）。
【０３２３】
次に、拡張ＳＡ処理プログラム３３３は、ＳＡ情報の作成に用いたＳＡ候補情報の削除要求を、当該拡張ＳＡ処理プログラム３３３を備えるレスポンダ３以外のレスポンダ３に送信する（Ｓ４１１）。ＳＡ候補情報の削除要求には、受信パケットのＳＰＩ及びアドレス情報のうち少なくとも一方が削除条件として含まれている。
【０３２４】
次に、拡張ＳＡ処理プログラム３３３は、復号化した受信パケットをネットワーク処理プログラム３３１に送る。そして、本処理を終了する。
【０３２５】
一方、他のレスポンダ３のそれぞれは、ＳＡ候補情報の削除要求を受信すると、当該削除要求に含まれる削除条件を満たすＳＡ候補情報を、自身のＳＡ候補情報テーブル３３５から削除する。
【０３２６】
ロードバランサ７は、ＳＡを確立するための通信と確立したＳＡを利用する通信とを対応付けることができない。従って、ロードバランサ７は、ＳＡを確立するための通信と確立したＳＡを利用する通信とを異なるレスポンダ３に振り分ける可能性がある。このような場合であっても、第４の実施の形態のイニシエータ２及びレスポンダ３は、ＳＡを確立できる。
【０３２７】
（第５の実施の形態）
第５の実施の形態では、データベースが、すべてのＳＡ候補情報を管理する。
【０３２８】
図１９は、第５の実施の形態の計算機システムのブロック図である。
【０３２９】
第５の計算機システムは、ＳＡ候補情報データベース（ＳＡ候補情報ＤＢ）５を備える。第５の実施の形態の計算機システムのそれ以外の構成は、第４の実施の形態の計算機システム（図１６）と同一である。同一の構成には同一の番号を付すことによって、説明を省略する。
【０３３０】
なお、第５の実施の形態のレスポンダ３は、ＳＡ候補情報テーブル３３５をメモリ３３に記憶してもよいし、記憶しなくてもよい。また、当該レスポンダ３は、ロードバランサ７の存在、当該ロードバランサ７のアドレス情報及びＳＡ候補情報ＤＢ５のアドレス情報が事前に設定されている。
【０３３１】
ＳＡ候補情報ＤＢ５は、ハードディスク等のストレージシステムで実現されるデータベース装置であり、ＳＡ候補情報テーブル３３５を記憶している。ＳＡ候補情報ＤＢ５は、レスポンダ３からの要求に応じて、記憶しているＳＡ候補情報テーブル３３５を更新する。
【０３３２】
図２０は、第５の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【０３３３】
このシーケンス図の計算機システムは、イニシエータ２Ａで動作するＷｅｂブラウザとレスポンダ３Ｂで動作するＷｅｂサーバとの間の通信を暗号化する。そこで、イニシエータ２Ａとレスポンダ３Ａとが、ＳＡ情報を交換する。次に、レスポンダ３Ａは、交換したＳＡ情報に基づいて、ＳＡ候補情報を作成する。そして、レスポンダ３Ａは、作成したＳＡ候補情報をＳＡ候補情報ＤＢ５に登録する。その後、レスポンダ３Ｂは、ＳＡ候補情報ＤＢ５からＳＡ候補情報を検索することによって、イニシエータ２Ａとの間にＳＡを確立する。
【０３３４】
ここでは、イニシエータ２ＡのＩＰアドレスは「１９２．０．２．２」である。また、ロードバランサ７の通信網１側のＩＰアドレスは「１９２．０．２．７」である。また、レスポンダ３ＡのＩＰアドレスは「１７２．１６．０．１」である。また、レスポンダ３ＢのＩＰアドレスは「１７２．１６．０．２」である。また、ＳＩＰプロクシ６のＩＰアドレスは「１９２．０．２．６」である。
【０３３５】
まず、計算機システムは、ステップＳ７０１からステップＳ７１１までを実行する。なお、ステップＳ７０１からステップＳ７１１までは、第４の実施の形態の計算機システムのＳＡ確立処理（図１７）におけるステップと同一である。同一のステップには同一の番号を付すことによって、説明を省略する。
【０３３６】
レスポンダ３Ａは、ステップＳ７１０において、ＡＣＫメッセージを含むパケットを受信する。すると、レスポンダ３Ａは、ロードバランサ７の存在を事前に設定されているので、ＳＡ候補情報を作成する（Ｓ８１２）。そして、レスポンダ３Ａは、ＳＡ候補情報登録をＳＡ候補情報ＤＢ５に送信することによって、作成したＳＡ候補情報をＳＡ候補情報ＤＢ５のＳＡ候補情報テーブル３３５に格納する（Ｓ８１３）。
【０３３７】
具体的には、レスポンダ３Ａは、ステップＳ７０５で送信したパケットから、ＳＡ情報を抽出する。レスポンダ３Ａは、抽出したＳＡ情報が指定するＳＡの数だけ、ＳＡ候補情報ＤＢ５のＳＡ候補情報テーブル３３５に新たなレコードを追加する。
【０３３８】
次に、レスポンダ３Ａは、新たなレコードのペアＩＤ３３５０に、新たに追加したレコードのすべてに共通する値を格納する。ここでは、レスポンダ３Ａは、他のレコードのペアＩＤ３３５０と重複しない値を選択し、新たなレコードのペアＩＤ３３５０に格納する。
【０３３９】
次に、レスポンダ３Ａは、パケットを受信する際に適用されるＳＡに関するレコードの方向３３５１には「ｉｎｂｏｕｎｄ」を格納する。一方、レスポンダ３Ａは、パケットを送信する際に適用されるＳＡに関するレコードの方向３３５１には「ｏｕｔｂｏｕｎｄ」を格納する。
【０３４０】
次に、レスポンダ３Ａは、抽出したＳＡ情報のイニシエータアドレス情報９０２から、ＩＰアドレス、ポート番号及びプロトコルを抽出する。次に、レスポンダ３Ａは、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの始点ＩＰアドレス３３５２に格納する。一方、レスポンダ３Ａは、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したＩＰアドレスを新たなレコードの終点ＩＰアドレス３３５４に格納する。
【０３４１】
次に、レスポンダ３Ａは、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの始点ポート３３５３に格納する。一方、レスポンダ３Ａは、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、抽出したポート番号を新たなレコードの終点ポート３３５５に格納する。次に、抽出したプロトコルを、新たなレコードのプロトコル３３５６に格納する。
【０３４２】
次に、レスポンダ３Ａは、方向３３５１に「ｉｎｂｏｕｎｄ」を格納した場合、新たなレコードの終点ＩＰアドレス３３５４及び終点ポート３３５５に「未定」を格納する。一方、レスポンダ３Ａは、方向３３５１に「ｏｕｔｂｏｕｎｄ」を格納した場合、新たなレコードの始点ＩＰアドレス３３５２及び始点ポート３３５３に「未定」を格納する。
【０３４３】
次に、レスポンダ３Ａは、抽出したＳＡ情報のポリシ情報９０１から、ＳＰＩ及び有効期間を抽出する。次に、抽出したＳＰＩを、新たなレコードのＳＰＩ３３５７に格納する。次に、抽出した有効期間を、新たなレコードのＳＡの有効期間３３５９に格納する。
【０３４４】
次に、レスポンダ３Ａは、抽出したＳＡ情報の鍵生成情報９０４に基づいて、鍵データを生成する。そして、レスポンダ３Ａは、生成した鍵データを、新たなレコードの鍵データ３３５８に格納する。
【０３４５】
次に、レスポンダ３Ａは、予め設定された値を、新たなレコードのＳＡ候補の有効期間３３６０に格納する。
【０３４６】
以上のように、レスポンダ３Ａは、ＳＡ候補情報ＤＢ５のＳＡ候補情報テーブル３３５を更新する。なお、レスポンダ３Ａは、自身でもＳＡ候補情報テーブル３３５を記憶している場合には、当該ＳＡ候補情報テーブル３３５も更新する。
【０３４７】
その後、イニシエータ２ＡのネットワークＡＰ２３２が、イニシエータ２Ａのポート２３４５からロードバランサ７のポート８０へのパケットの送信を、イニシエータ２Ａのネットワーク処理プログラム２３１に要求したとする。
【０３４８】
イニシエータ２Ａのネットワーク処理プログラム２３１は、ネットワークＡＰ２３２からパケット送信要求を受ける。すると、ネットワーク処理プログラム２３１は、送信パケットにセキュリティ機能を提供するために、イニシエータ２ＡのＳＡ処理プログラム２３３を呼び出す。
【０３４９】
ＳＡ処理プログラム２３３は、送信パケットから、当該送信パケットの始点ＩＰアドレス、始点ポート、終点ＩＰアドレス及び終点ポートを抽出する。次に、抽出した始点ＩＰアドレスとＳＡ情報テーブル２３４の始点ＩＰアドレス２３４２とが一致するレコードを、ＳＡ情報テーブル２３４から選択する。
【０３５０】
次に、ＳＡ処理プログラム２３３は、抽出した始点ポートとＳＡ情報テーブル２３４の始点ポート２３４３とが一致するレコードを、選択したレコードの中から選択する。次に、抽出した終点ＩＰアドレスとＳＡ情報テーブル２３４の終点ＩＰアドレス２３４４とが一致するレコードを、選択したレコードの中から選択する。更に、抽出した終点ポートとＳＡ情報テーブル２３４の終点ポート２３４５とが一致するレコードを、選択したレコードの中から選択する。
【０３５１】
そして、ＳＡ処理プログラム２３３は、選択したレコードの鍵データ２３４８に基づいて、送信パケットを暗号化する。なお、ＳＡ処理プログラム２３３の暗号化処理は、従来のＩＰｓｅｃ等における暗号化処理と同一である。
【０３５２】
次に、イニシエータ２Ａのネットワーク処理プログラム２３１は、ＳＡ処理プログラム２３３が暗号化したパケットをロードバランサ７に送信する（Ｓ８１４）。
【０３５３】
ロードバランサ７は、イニシエータ２Ａからパケットを受信する。すると、ロードバランサ７は、受信したパケットの転送先を、接続しているレスポンダ３の中から選択する。ここでは、ロードバランサ７は、受信したパケットの転送先として、レスポンダ３Ｂを選択したとする（Ｓ８１５）。
【０３５４】
次に、ロードバランサ７は、受信したパケットの終点アドレスを、転送先のレスポンダ３Ｂのアドレスの「１７２．１６．０．２：８０」に変換する。そして、ロードバランサ７は、アドレスを変換したパケットを、転送先のレスポンダ３Ｂに送信する（Ｓ８１６）。
【０３５５】
レスポンダ３Ｂは、パケットをロードバランサ７から受信する。すると、レスポンダ３は、受信パケットをネットワーク処理プログラム３３１で処理する。
【０３５６】
ネットワーク処理プログラム３３１は、受信パケットが暗号化されていると判定し、拡張ＳＡ処理プログラム３３３を呼び出す。
【０３５７】
すると、拡張ＳＡ処理プログラム３３３は、受信パケット処理を行う。なお、拡張ＳＡ処理プログラム３３３の受信パケット処理は、図２１Ａ及び図２１Ｂで詳細を説明する。
【０３５８】
ここでは、レスポンダ３Ｂは、当該レスポンダ３ＢのＳＡ情報テーブル３３４及びＳＡ候補情報テーブル３３５に基づいて、受信パケットを復号化できない。そこで、レスポンダ３Ｂは、ＳＡ候補情報ＤＢ５にＳＡ候補情報検索要求を送信する（Ｓ８１７）。なお、ＳＡ候補情報検索要求には、検索条件が含まれる。
【０３５９】
ＳＡ候補情報ＤＢ５は、受信したＳＡ候補情報検索要求に含まれる検索条件を満たすＳＡ候補情報を、当該ＳＡ候補情報ＤＢ５のＳＡ候補情報テーブル３３５から抽出する。次に、ＳＡ候補情報ＤＢ５は、抽出したＳＡ候補情報を含むＳＡ候補情報検索応答を作成する。そして、ＳＡ候補情報ＤＢ５は、作成したＳＡ候補情報検索応答をレスポンダ３Ｂに送信する（Ｓ８１８）。
【０３６０】
レスポンダ３Ｂは、ＳＡ候補情報検索応答をＳＡ候補情報ＤＢ５から受信する。次に、レスポンダ３Ｂは、受信したＳＡ候補情報検索応答に含まれるＳＡ候補情報を用いて、受信パケットを復号化する。そして、レスポンダ３Ｂは、復号化に成功したＳＡ候補情報に基づいて、ＳＡ情報を作成する（Ｓ８１９）。
【０３６１】
次に、レスポンダ３Ｂは、作成したＳＡ情報を当該レスポンダ３ＢのＳＡ情報テーブル３３４に格納する。次に、レスポンダ３Ｂは、復号化に成功したＳＡ候補情報の削除要求をＳＡ候補情報ＤＢ５に送信する（Ｓ８２０）。
【０３６２】
すると、ＳＡ候補情報ＤＢ５は、削除を要求されたＳＡ候補情報を、当該ＳＡ候補情報ＤＢ５のＳＡ候補情報テーブル３３５から削除する。
【０３６３】
その後、レスポンダ３ＢのネットワークＡＰ３３２が、パケットの送信をレスポンダ３のネットワーク処理プログラム３３１に要求したとする。
【０３６４】
レスポンダ３のネットワーク処理プログラム３３１は、ネットワークＡＰ３３２からパケット送信要求を受ける。すると、ネットワーク処理プログラム３３１は、送信パケットにセキュリティ機能を提供するために、レスポンダ３Ｂの拡張ＳＡ処理プログラム３３３を呼び出す。
【０３６５】
すると、拡張ＳＡ処理プログラム３３３は、送信パケット処理を行うことによって、送信パケットを暗号化する。なお、拡張ＳＡ処理プログラム３３３の送信パケット処理は、第１の実施の形態（図１０）と同一であるので、説明を省略する。
【０３６６】
次に、レスポンダ３Ｂのネットワーク処理プログラム３３１は、拡張ＳＡ処理プログラム３３３が暗号化したパケットをイニシエータ２Ａ宛てに送信する（Ｓ８２１）。
【０３６７】
ロードバランサ７は、レスポンダ３Ｂからパケットを受信する。すると、ロードバランサ７は、受信したパケットの始点アドレスを当該ロードバランサ７のアドレスに変換する。そして、ロードバランサ７は、アドレスを変換したパケットを、イニシエータ２Ａに送信する（Ｓ７２１）。
【０３６８】
イニシエータ２Ａは、ロードバランサ７からパケットを受信する。すると、イニシエータ２Ａは、受信パケットをネットワーク処理プログラム２３１で処理する。ネットワーク処理プログラム２３１は、受信パケットが暗号化されていると判定し、ＳＡ処理プログラム２３３を呼び出す。
【０３６９】
すると、ＳＡ処理プログラム２３３は、ＳＡ情報テーブル２３４を参照して、受信パケットを復号化する。なお、ＳＡ処理プログラム２３３の復号化処理は、従来のＩＰｓｅｃ等における処理と同一である。
【０３７０】
図２１Ａ及び図２１Ｂは、第５の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理のフローチャートである。
【０３７１】
まず、拡張ＳＡ処理プログラム３３３は、ステップＳ２０１からステップＳ２０４までを実行する。なお、ステップＳ２０１からステップＳ２０４までは、第１の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理（図９）におけるステップと同一である。同一のステップには同一の番号を付すことによって、説明を省略する。
【０３７２】
次に、拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報ＤＢ５に、ＳＡ候補情報検索要求を送信する。なお、ＳＡ候補情報検索要求には、受信パケットのＳＰＩ及びアドレス情報のうち少なくとも一方が検索条件として含まれている。
【０３７３】
ＳＡ候補情報ＤＢ５は、ＳＡ候補情報検索要求を受信すると、当該ＳＡ候補情報検索要求から受信パケットのＳＰＩ又はアドレス情報を抽出する。そして、ＳＡ候補情報ＤＢ５は、抽出したＳＰＩ又はアドレス情報に基づいて、受信パケットに対応するＳＡ候補情報をＳＡ候補情報テーブル３３５から選択する。なお、ＳＡ候補情報ＤＢ５のＳＡ候補情報の選択処理は、第１の実施の形態の拡張ＳＡ処理プログラム３３３の受信パケット処理（図９）におけるステップＳ２０５と同様である。よって、詳細な説明は省略する。
【０３７４】
更に、ＳＡ候補情報ＤＢ５は、選択したＳＡ候補情報と同一のペアＩＤを持つＳＡ候補情報をＳＡ候補情報テーブル３３５から選択する。
【０３７５】
そして、ＳＡ候補情報ＤＢ５は、選択したＳＡ候補情報を含むＳＡ候補情報検索応答を、ＳＡ候補情報検索要求の送信元のレスポンダ３の拡張ＳＡ処理プログラム３３３に送信する。
【０３７６】
当該レスポンダ３の拡張ＳＡ処理プログラム３３３は、ＳＡ候補情報検索応答を受信する。これによって、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を、ＳＡ候補情報ＤＢ５のＳＡ候補情報テーブル３３５から取得する（Ｓ５０１）。
【０３７７】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を取得できたかどうかを判定する（Ｓ５０２）。
【０３７８】
拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を取得できなかった場合、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ５０５）。そして、本処理を終了する。
【０３７９】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットに対応するＳＡ候補情報を取得できた場合、取得したＳＡ候補情報から、鍵データを抽出する。そして、抽出した鍵データを用いて、受信パケットを復号化処理する（Ｓ５０３）。
【０３８０】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功したかどうかを判定する（Ｓ５０４）。
【０３８１】
拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に失敗すると、受信パケットを復号化できない。よって、拡張ＳＡ処理プログラム３３３は、パケットを破棄する（Ｓ５０５）。そして、本処理を終了する。
【０３８２】
一方、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功すると、復号化に成功したＳＡ候補情報及び受信パケットの終点アドレスに基づいて、ＳＡ情報を作成する（Ｓ５０６）。
【０３８３】
次に、拡張ＳＡ処理プログラム３３３は、受信パケットの復号化に成功したＳＡ候補情報からペアＩＤを抽出する。次に、抽出したペアＩＤと同一のペアＩＤを持つＳＡ候補情報を、ステップＳ５０１で取得したＳＡ候補情報の中から選択する（Ｓ５０７）。
【０３８４】
次に、拡張ＳＡ処理プログラム３３３は、同一のペアＩＤを持つＳＡ候補情報を選択できたかどうかを判定する（Ｓ５０８）。
【０３８５】
拡張ＳＡ処理プログラム３３３は、同一のペアＩＤを持つＳＡ候補情報を選択できなかった場合、そのままステップＳ５１０に進む。
【０３８６】
一方、拡張ＳＡ処理プログラム３３３は、同一のペアＩＤを持つＳＡ候補情報を選択できた場合、選択したＳＡ候補情報及び受信パケットの終点アドレスに基づいて、ＳＡ情報を作成する（Ｓ５０９）。
【０３８７】
これによって、拡張ＳＡ処理プログラム３３３は、ステップＳ５０６で作成した受信用（ｉｎｂｏｕｎｄ）のＳＡ情報に対応する送信用（ｏｕｔｂｏｕｎｄ）のＳＡ情報を作成する。
【０３８８】
次に、拡張ＳＡ処理プログラム３３３は、作成したＳＡ情報をＳＡ情報テーブル３３５に格納する（Ｓ５１０）。
【０３８９】
次に、拡張ＳＡ処理プログラム３３３は、ＳＡ情報の作成に用いたＳＡ候補情報の削除要求を、ＳＡ候補情報ＤＢ５に送信する（Ｓ５１１）。ＳＡ候補情報の削除要求には、受信パケットのＳＰＩ及びアドレス情報のうち少なくとも一方が削除条件として含まれている。
【０３９０】
次に、拡張ＳＡ処理プログラム３３３は、復号化した受信パケットをネットワーク処理プログラム３３１に送る。そして、本処理を終了する。
【０３９１】
一方、ＳＡ候補情報ＤＢ５は、ＳＡ候補情報の削除要求を受信すると、当該削除要求に含まれる削除条件を満たすＳＡ候補情報を、自身のＳＡ候補情報テーブル３３５から削除する。
【０３９２】
本実施の形態では、ＳＡ候補情報ＤＢ５が、ＳＡ候補情報を管理する。これによって、レスポンダ３の負担が軽減される。
【図面の簡単な説明】
【０３９３】
【図１】第１の実施の形態の計算機システムのブロック図である。
【図２】第１の実施の形態のイニシエータのブロック図である。
【図３】第１の実施の形態のレスポンダのブロック図である。
【図４】第１の実施の形態のイニシエータのＳＡ情報テーブルの構成図である。
【図５】第１の実施の形態のレスポンダのＳＡ情報テーブルの構成図である。
【図６】第１の実施の形態のレスポンダのＳＡ候補情報テーブルの構成図である。
【図７】第１の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【図８】第１の実施の形態のＳＡ情報の説明図である。
【図９】第１の実施の形態の拡張ＳＡ処理プログラムの受信パケット処理のフローチャートである。
【図１０】第１の実施の形態の拡張ＳＡ処理プログラムの送信パケット処理のフローチャートである。
【図１１】第２の実施の形態のレスポンダのブロック図である。
【図１２】第２の実施の形態のレスポンダのＳＡ情報＆ＳＡ候補情報テーブルの構成図である。
【図１３】第２の実施の形態の拡張ＳＡ処理プログラムの受信パケット処理のフローチャートである。
【図１４】第３の実施の形態の計算機システムのブロック図である。
【図１５】第３の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【図１６】第４の実施の形態の計算機システムのブロック図である。
【図１７】第４の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【図１８Ａ】第４の実施の形態の拡張ＳＡ処理プログラムの受信パケット処理のフローチャートである。
【図１８Ｂ】第４の実施の形態の拡張ＳＡ処理プログラムの受信パケット処理のフローチャートである。
【図１９】第５の実施の形態の計算機システムのブロック図である。
【図２０】第５の実施の形態の計算機システムのＳＡ確立処理のシーケンス図である。
【図２１Ａ】第５の実施の形態の拡張ＳＡ処理プログラムの受信パケット処理のフローチャートである。
【図２１Ｂ】第５の実施の形態の拡張ＳＡ処理プログラムの受信パケット処理のフローチャートである。
【符号の説明】
【０３９４】
１  通信網
２Ａ、２Ｂ  イニシエータ
３  レスポンダ
４  ＮＡＴ
５  ＳＡ候補情報データベース
６  ＳＩＰプロクシ
７  ロードバランサ
９  通信回線
２１  ＩＦ
２２  ＣＰＵ
２３  メモリ
２４  データパス
３１  ＩＦ
３２  ＣＰＵ
３３  メモリ
３４  データパス
２３１  ネットワーク処理プログラム
２３２  ネットワークアプリケーション
２３３  ＳＡ処理プログラム
２３４  ＳＡ情報テーブル
３３１  ネットワーク処理プログラム
３３２  ネットワークアプリケーション
３３３  ＳＡ処理プログラム
３３４  ＳＡ情報テーブル
３３５  ＳＡ候補情報テーブル
【図１】
0004602894.tif 000002
【図２】
0004602894.tif 000003
【図３】
0004602894.tif 000004
【図４】
0004602894.tif 000005
【図５】
0004602894.tif 000006
【図６】
0004602894.tif 000007
【図７】
0004602894.tif 000008
【図８】
0004602894.tif 000009
【図９】
0004602894.tif 000010
【図１０】
0004602894.tif 000011
【図１１】
0004602894.tif 000012
【図１２】
0004602894.tif 000013
【図１３】
0004602894.tif 000014
【図１４】
0004602894.tif 000015
【図１５】
0004602894.tif 000016
【図１６】
0004602894.tif 000017
【図１７】
0004602894.tif 000018
【図１８Ａ】
0004602894.tif 000019
【図１８Ｂ】
0004602894.tif 000020
【図１９】
0004602894.tif 000021
【図２０】
0004602894.tif 000022
【図２１Ａ】
0004602894.tif 000023
【図２１Ｂ】
0004602894.tif 000024