(57)【要約】【課題】負荷を効率的に分散しつつ、セッション情報を容易に管理することができるようにする。【解決手段】クライアント側との通信の開始時、アプリケーションサーバ１２と、例えばセキュリティモジュール４２−１においてセッション情報が生成される。セキュリティモジュール４２−１のセッション情報は、セキュリティモジュール４２−１の処理が終了したとき、暗号化されてアプリケーションサーバ１２に送信され、アプリケーションサーバ１２のセッション情報とまとめて管理される。次の通信のとき、負荷分散装置４１により選択された例えばセキュリティモジュール４２−２に、暗号化された状態のセッション情報が供給され、復号された後、セッション情報に基づいて以降の処理が行われる。本発明は、サーバ側の複数の装置においてそれぞれセッション情報を扱う必要のある通信システムに適用することができる。【選択図】図２
2006099694.tif 000002
【特許請求の範囲】
【請求項１】
クライアント側装置とのセッションに関するセッション情報を、第１のサーバ側装置と、前記第１のサーバ側装置に接続され、前記第１のサーバ側装置から要求された暗号処理を行う第２のサーバ側装置とのそれぞれが生成し、前記クライアント側装置と、前記第１および第２のサーバ側装置が複数回の通信を行うことによって１つの処理を実現させる通信システムにおいて、
前記第１のサーバ側装置は、
前記クライアント側装置との通信のときに、自分自身が生成した第１のセッション情報と、前記第２のサーバ側装置により生成され、前記第２のサーバ側装置が有する鍵により暗号化された第２のセッション情報とを管理する管理手段と、
前記クライアント側装置と再度通信を行うとき、暗号化された前記第２のセッション情報を前記第２のサーバ側装置に供給する供給手段と
を備え、
前記第２のサーバ側装置は、
前記第１のサーバ側装置から供給されてきた前記第２のセッション情報を復号し、前記第２のセッション情報に基づいてクライアント側装置に対する処理を行う処理手段と
を備えることを特徴とする通信システム。
【請求項２】
共通の鍵を有する前記第２のサーバ側装置が複数設けられる場合、
前記第１のサーバ側装置の前記供給手段は、複数の前記第２のサーバ側装置のうちの所定の前記第２のサーバ側装置により生成され、暗号化された前記第２のセッション情報を、複数の前記第２のサーバ側装置のうちのいずれかの前記第２のサーバ装置に供給する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
クライアント側装置とのセッションに関するセッション情報を、第１のサーバ側装置と、前記第１のサーバ側装置に接続され、前記第１のサーバ側装置から要求された暗号処理を行う第２のサーバ側装置とのそれぞれが生成し、前記クライアント側装置と、前記第１および第２のサーバ側装置が複数回の通信を行うことによって１つの処理を実現させる通信システムの通信方法において、
前記クライアント側装置との通信のときに、自分自身が生成した第１のセッション情報と、前記第２のサーバ側装置により生成され、前記第２のサーバ側装置が有する鍵により暗号化された第２のセッション情報とを管理する管理ステップと、
前記クライアント側装置と再度通信を行うとき、暗号化された前記第２のセッション情報を前記第２のサーバ側装置に供給する供給ステップと、
前記第１のサーバ側装置から供給されてきた前記第２のセッション情報を復号し、前記第２のセッション情報に基づいてクライアント側装置に対する処理を行う処理ステップと
を含むことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムおよび通信方法に関し、特に、負荷を効率的に分散しつつ、セッション情報を容易に管理することができるようにする通信システムおよび通信方法に関する。
【背景技術】
【０００２】
近年、クレジットカードや携帯電話機に埋め込まれたFeliCa（登録商標）などの非接触ICチップに電子マネーをチャージ（入金）し、そのチャージされた電子マネーを用いて、商品購入時の代金の支払いをしたりすることが普及しつつある。
【０００３】
代金の支払い時には、自分のクレジットカードや携帯電話機を店舗に設置された端末（リーダライタ）にかざすだけであるから、ユーザは、代金の支払いを迅速に行うことができる。
【０００４】
このような電子マネーシステムは、例えば、図１に示すような構成からなる。
【０００５】
電子マネーシステムのサーバ側はサーバ装置１とセキュリティモジュール２からなり、クライアント側はクライアント装置３とR/W（リーダ／ライタ）４からなる。サーバ装置１とクライアント装置３は、ネットワーク５を介して接続されている。
【０００６】
図１の例においては、クライアント側のR/W４には非接触ICチップ３１が内蔵された携帯電話機６が近接されており、電磁誘導を用いた近距離通信を介してクライアント装置３に接続されている。
【０００７】
サーバ装置１にはHTTP(Hyper Text Transfer Protocol)サーバ１１とアプリケーションサーバ１２が実装され、クライアント装置３にはHTTPクライアント２１とクライアントアプリケーション２２が実装される。HTTPサーバ１１とHTTPクライアント２１はHTTP通信を行い、アプリケーションサーバ１２（アプリケーションサーバ１２のアプリケーション）は、HTTPサーバ１１とHTTPクライアント２１により行われるHTTP通信の上でクライアントアプリケーション２２との間で各種の情報を送受信することにより、電子マネーサービスを提供する。
【０００８】
例えば、アプリケーションサーバ１２は、クライアントアプリケーション２２からの要求に応じて作成したコマンド（非接触ICチップ３１に実行させるコマンド）をセキュリティモジュール２に出力する。また、アプリケーションサーバ１２は、暗号化が施されたコマンドがセキュリティモジュール２から供給されてきたとき、それをクライアントアプリケーション２２に送信する。アプリケーションサーバ１２は、クライアント装置３に表示させる画面の情報をクライアントアプリケーション２２に送信したりもする。
【０００９】
セキュリティモジュール２は、耐タンパ性を有する装置であり、暗号処理、および、その暗号処理で用いる鍵の管理を行う。セキュリティモジュール２は、アプリケーションサーバ１２から供給されてきたコマンドに暗号化を施し、暗号化されたコマンドをアプリケーションサーバ１２に出力する。セキュリティモジュール２と非接触ICチップ３１はそれぞれ共通の鍵を持っており、その鍵で暗号化された情報を送受信することによりセキュリティモジュール２と非接触ICチップ３１の間で暗号通信が実現される。
【００１０】
クライアント装置３のクライアントアプリケーション２２は、所定の要求をサーバ装置１のアプリケーションサーバ１２に送信するとともに、アプリケーションサーバ１２からコマンドが送信されてきたとき、それをR/W４を介して非接触ICチップ３１に送信し、実行させる。
【００１１】
非接触ICチップ３１は、R/W４等を介してセキュリティモジュール２から送信されてきたコマンドに施されている暗号化を復号し、それを実行する。コマンドの内容が電子マネーの書き換えである場合、このコマンドには書き換える金額の情報なども含まれている。
【００１２】
例えば、このような構成を有する電子マネーシステムにおいて、非接触ICチップ３１に記憶されている電子マネーを用いて携帯電話機６のユーザが購入した商品の代金を支払う場合、クライアント装置３のクライアントアプリケーション２２により、サーバ装置１のアプリケーションサーバ１２に対して、商品の代金の支払い要求が送信され、その要求を受信したアプリケーションサーバ１２により、電子マネーの残高の読み出しを非接触ICチップ３１に要求するコマンド（Readコマンド）が作成される。
【００１３】
アプリケーションサーバ１２により作成されたReadコマンドは、セキュリティモジュール２により暗号化が施された後、サーバ装置１のアプリケーションサーバ１２、ネットワーク５、クライアント装置３のクライアントアプリケーション２２、およびR/W４を介して非接触ICチップ３１に送信され、非接触ICチップ３１において復号された後、実行される。
【００１４】
Readコマンドが実行されることによって読み出された残高は、非接触ICチップ３１により暗号化が施された後、アプリケーションサーバ１２に対するレスポンスとして、R/W４、クライアント装置３のクライアントアプリケーション２２、ネットワーク５、およびサーバ装置１のアプリケーションサーバ１２を介してセキュリティモジュール２に送信される。セキュリティモジュール２においては、非接触ICチップ３１から送信されてきた残高に施されている暗号化が復号され、復号された残高がアプリケーションサーバ１２に送信される。
【００１５】
これにより、アプリケーションサーバ１２は、非接触ICチップ３１に記憶されている現在の電子マネーの残高を確認することができる。
【００１６】
残高を確認したとき、サーバ装置１のアプリケーションサーバ１２により、電子マネーの残高の書き換え（商品の代金の分だけ減額した残高への書き換え）を非接触ICチップ３１に要求するコマンド（Writeコマンド）が作成される。
【００１７】
アプリケーションサーバ１２により作成されたWriteコマンドは、先に送信されたReadコマンドと同様に、セキュリティモジュール２により暗号化が施された後、サーバ装置１のアプリケーションサーバ１２、ネットワーク５、クライアント装置３のクライアントアプリケーション２２、およびR/W４を介して非接触ICチップ３１に送信され、非接触ICチップ３１において復号された後、実行される。このWriteコマンドには、残高をいくらにするのかを表す情報なども含まれている。これにより、非接触ICチップ３１に記憶されている電子マネーの残高が商品の代金の分だけ減額された状態になる。
【００１８】
例えば、残高の減額が完了したことを通知するメッセージが非接触ICチップ３１からアプリケーションサーバ１２に送信されるなどの処理が行われた後、一連の処理が終了される。このような一連の処理により、商品の代金の支払いが実現される。
【００１９】
このような構成からなるサーバ−クライアントシステムより、以上のような商品の代金の支払いの他に、例えば、店舗が発行するポイントの管理や、電車の駅の改札機としてクライアント装置３が設けられている場合、乗車料金の支払いなどが実現される。ポイントの管理や乗車料金の支払いの場合も、基本的には、上述した代金の支払いの場合と同様の処理が図１の各装置により行われる。
【００２０】
図１に示すような構成からなるサーバ−クライアントシステムについては特許文献１に開示されている。
【特許文献１】特開２００３−１４１０６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
ところで、このようなサーバ−クライアントシステムにおいては、電子マネーによる代金の支払いなどの１つの処理が、残高の読み出しのための通信（Readコマンドを実行させ、そのレスポンスを受ける通信）と、残高を書き換えるための通信（Writeコマンドを実行させ、情報を書き換える通信）といったように、複数の通信にまたがって行われる。
【００２２】
この場合、サーバ側のアプリケーションサーバ１２とセキュリティモジュール２は、それぞれが、一連の処理（セッション）の開始から終了までの間、例えば、セッションを識別する情報、一連の処理のうちのどこまでの処理を行ったのかを表す情報、セッション毎に異なるセッションキーを用いて通信を暗号化する場合のそのセッションキーの情報などを含むセッション情報を内部で管理する必要がある。
【００２３】
そして、サーバ側では、アプリケーションサーバ１２が管理するセッション情報と、セキュリティモジュール２が管理するセッション情報とをひもづけて利用し、クライアント側（非接触ICチップ３１）からの情報が、常に、それまでのやりとりのセッション情報を管理しているセキュリティモジュール２に供給されるようにする。
【００２４】
例えば、１つのセキュリティモジュールの負荷を分散するために、複数のセキュリティモジュールを設ける場合があり、この場合、サーバ装置１（アプリケーションサーバ１２）とセキュリティモジュール２の間に設けられる負荷分散装置は、ひもづけて管理されているセッション情報を参照して、図１の非接触ICチップ３１からの情報はセキュリティモジュール２に供給し、他の非接触ICチップからの情報は他のセキュリティモジュールに供給するといったように、同じ非接触ICチップからの情報を、常に、同じセキュリティモジュールに供給する。
【００２５】
従って、クライアント側からの情報をどのセキュリティモジュールに供給するのかを選択する必要があることから、負荷分散装置としては、アプリケーション層の情報までを見て情報の供給先を選択するレイヤ７のスイッチ、すなわち、単に、負荷を分散するだけの機能しかないスイッチ（例えば、レイヤ４のスイッチ）と較べて高機能なスイッチを用いる必要がある。
【００２６】
また、セッション情報が分散するため、管理が複雑になり、ソフトウェアの実装が複雑になってしまう。
【００２７】
本発明はこのような状況に鑑みてなされたものであり、負荷を効率的に分散しつつ、セッション情報を容易に管理することができるようにするものである。
【課題を解決するための手段】
【００２８】
本発明の通信システムは、クライアント側装置とのセッションに関するセッション情報を、第１のサーバ側装置と、第１のサーバ側装置に接続され、第１のサーバ側装置から要求された暗号処理を行う第２のサーバ側装置とのそれぞれが生成し、クライアント側装置と、第１および第２のサーバ側装置が複数回の通信を行うことによって１つの処理を実現させる通信システムであって、そのうちの第１のサーバ側装置は、クライアント側装置との通信のときに、自分自身が生成した第１のセッション情報と、第２のサーバ側装置により生成され、第２のサーバ側装置が有する鍵により暗号化された第２のセッション情報とを管理する管理手段と、クライアント側装置と再度通信を行うとき、暗号化された第２のセッション情報を第２のサーバ側装置に供給する供給手段とを備え、第２のサーバ側装置は、第１のサーバ側装置から供給されてきた第２のセッション情報を復号し、第２のセッション情報に基づいてクライアント側装置に対する処理を行う処理手段とを備えることを特徴とする。
【００２９】
共通の鍵を有する第２のサーバ側装置が複数設けられる場合、第１のサーバ側装置の供給手段は、複数の第２のサーバ側装置のうちの所定の第２のサーバ側装置により生成され、暗号化された第２のセッション情報を、複数の第２のサーバ側装置のうちのいずれかの第２のサーバ装置に供給するようにすることができる。
【００３０】
本発明の通信方法は、クライアント側装置とのセッションに関するセッション情報を、第１のサーバ側装置と、第１のサーバ側装置に接続され、第１のサーバ側装置から要求された暗号処理を行う第２のサーバ側装置とのそれぞれが生成し、クライアント側装置と、第１および第２のサーバ側装置が複数回の通信を行うことによって１つの処理を実現させる通信システムの通信方法であって、クライアント側装置との通信のときに、自分自身が生成した第１のセッション情報と、第２のサーバ側装置により生成され、第２のサーバ側装置が有する鍵により暗号化された第２のセッション情報とを管理する管理ステップと、クライアント側装置と再度通信を行うとき、暗号化された第２のセッション情報を第２のサーバ側装置に供給する供給ステップと、第１のサーバ側装置から供給されてきた第２のセッション情報を復号し、第２のセッション情報に基づいてクライアント側装置に対する処理を行う処理ステップとを含むことを特徴とする。
【００３１】
本発明の通信システムおよび方法においては、クライアント側装置との通信のときに、第１のサーバ側装置により生成された第１のセッション情報と、第２のサーバ側装置により生成され、第２のサーバ側装置が有する鍵により暗号化された第２のセッション情報とが管理され、クライアント側装置と再度通信を行うとき、暗号化された第２のセッション情報が第２のサーバ側装置に供給される。また、第１のサーバ側装置から供給されてきた第２のセッション情報が第２のサーバ側装置において復号され、第２のセッション情報に基づいてクライアント側装置に対する処理が行われる。
【発明の効果】
【００３２】
本発明によれば、負荷を効率的に分散することができる。
【００３３】
また、本発明によれば、セッション情報を容易に管理することができる。
【発明を実施するための最良の形態】
【００３４】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００３５】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００３６】
請求項１に記載の通信システムは、クライアント側装置とのセッションに関するセッション情報を、第１のサーバ側装置（例えば、図２のアプリケーションサーバ１２）と、前記第１のサーバ側装置に接続され、前記第１のサーバ側装置から要求された暗号処理を行う第２のサーバ側装置（例えば、図２のセキュリティモジュール４２−１）とのそれぞれが生成し、前記クライアント側装置と、前記第１および第２のサーバ側装置が複数回の通信を行うことによって１つの処理を実現させる通信システム（例えば、図２のサーバ−クライアントシステム）であって、そのうちの前記第１のサーバ側装置は、前記クライアント側装置との通信のときに、自分自身が生成した第１のセッション情報と、前記第２のサーバ側装置により生成され、前記第２のサーバ側装置が有する鍵により暗号化された第２のセッション情報とを管理する管理手段（例えば、図６のステップＳ２５の処理を実行する図４のセッション情報管理部７２）と、前記クライアント側装置と再度通信を行うとき、暗号化された前記第２のセッション情報を前記第２のサーバ側装置に供給する供給手段（例えば、図６のステップＳ２９の処理を実行する図４の制御部７１）とを備え、前記第２のサーバ側装置は、前記第１のサーバ側装置から供給されてきた前記第２のセッション情報を復号し、前記第２のセッション情報に基づいてクライアント側装置に対する処理を行う処理手段（例えば、図６のステップＳ４９の処理を実行する図５の制御部８１−２）とを備えることを特徴とする。
【００３７】
請求項３に記載の通信方法は、クライアント側装置とのセッションに関するセッション情報を、第１のサーバ側装置（例えば、図２のアプリケーションサーバ１２）と、前記第１のサーバ側装置に接続され、前記第１のサーバ側装置から要求された暗号処理を行う第２のサーバ側装置（例えば、図２のセキュリティモジュール４２−１）とのそれぞれが生成し、前記クライアント側装置と、前記第１および第２のサーバ側装置が複数回の通信を行うことによって１つの処理を実現させる通信システム（例えば、図２のサーバ−クライアントシステム）の通信方法であって、前記クライアント側装置との通信のときに、自分自身が生成した第１のセッション情報と、前記第２のサーバ側装置により生成され、前記第２のサーバ側装置が有する鍵により暗号化された第２のセッション情報とを管理する管理ステップ（例えば、図６のステップＳ２５）と、前記クライアント側装置と再度通信を行うとき、暗号化された前記第２のセッション情報を前記第２のサーバ側装置に供給する供給ステップ（例えば、図６のステップＳ２９）と、前記第１のサーバ側装置から供給されてきた前記第２のセッション情報を復号し、前記第２のセッション情報に基づいてクライアント側装置に対する処理を行う処理ステップ（例えば、図６のステップＳ４９）とを含むことを特徴とする。
【００３８】
以下、本発明の実施の形態について図を参照して説明する。
【００３９】
図２は、本発明を適用したサーバ−クライアントシステムの構成例を示すブロック図である。図１と同じ構成には同じ符号を付してある。
【００４０】
図２のサーバ−クライアントシステムのサーバ側の装置は、例えば、HTTPサーバ１１とアプリケーションサーバ１２を実装する装置、負荷分散装置４１、および、セキュリティモジュール４２−１，４２−２から構成される。
【００４１】
HTTPサーバ１１等を実装する装置と負荷分散装置４１が接続され、その負荷分散装置４１には複数のセキュリティモジュールであるセキュリティモジュール４２−１と４２−２が接続される。以下、セキュリティモジュール４２−１と４２−２のそれぞれを個々に区別する必要がない場合、まとめてセキュリティモジュール４２という。
【００４２】
一方、クライアント側の装置は、HTTPクライアント２１を実装する装置から構成される。図２の例においては、クライアント側にはHTTPクライアント２１のみを示しているが、HTTPクライアント２１を実装する装置には、図１に示したような、アプリケーションサーバ１２とのやりとりを行うクライアントアプリケーションも実装される。
【００４３】
また、そのHTTPクライアント２１等を実装する装置には、必要に応じて、電磁誘導を用いた通信を非接触ICチップとの間で行うR/Wが接続される。これらの、HTTPクライアント２１等を実装する装置、必要に応じて接続されるR/W、非接触ICチップからクライアント側の装置が構成される。
【００４４】
HTTPサーバ１１は、インターネットなどよりなるネットワーク５を介して、HTTPクライアント２１との間でHTTP通信を行う。
【００４５】
アプリケーションサーバ１２（アプリケーションサーバ１２のアプリケーション）は、HTTPサーバ１１とHTTPクライアント２１により行われるHTTP通信の上でクライアントアプリケーションとの間で各種の情報を送受信することにより、電子マネーサービスなどの各種のサービスを提供する。
【００４６】
例えば、アプリケーションサーバ１２は、クライアントアプリケーションからの要求に応じて作成したコマンド（非接触ICチップに実行させるコマンド）を負荷分散装置４１を介してセキュリティモジュール４２に出力する。また、アプリケーションサーバ１２は、暗号化が施されたコマンドが負荷分散装置４１を介してセキュリティモジュール４２から供給されてきたとき、それをクライアントアプリケーションに送信する。
【００４７】
さらに、アプリケーションサーバ１２は、クライアント側の装置に表示させる画面の情報をクライアントアプリケーションに送信したりもする。
【００４８】
負荷分散装置４１は、セキュリティモジュール４２の負荷を分散するように、アプリケーションサーバ１２からの処理の要求をいずれかのセキュリティモジュール４２に割り振る（アプリケーションサーバ１２のアクセス先を選択する）。また、負荷分散装置４１は、セキュリティモジュール４２から供給されてきた情報をアプリケーションサーバ１２に供給する。
【００４９】
セキュリティモジュール４２は、耐タンパ性を有する装置であり、暗号処理、および、その暗号処理で用いる鍵の管理を行う。セキュリティモジュール４２は、例えば、アプリケーションサーバ１２から供給されてきたコマンドに暗号化を施し、暗号化されたコマンドを負荷分散装置４１を介してアプリケーションサーバ１２に送信する。セキュリティモジュール４２とクライアント側の非接触ICチップは、それぞれ共通の鍵を持っており、その鍵で暗号化された情報を送受信することによりセキュリティモジュール４２と非接触ICチップの間で暗号通信が実現される。
【００５０】
また、セキュリティモジュール４２−１および４２−２は、例えば、セキュリティモジュール４２の製造時に予め用意されることにより、また、一つの装置が最初の起動時にランダムな鍵を生成し他の装置に安全にこの鍵を配信することにより、共通の鍵を有している。この鍵は、外部への取り出しが不可とされる。
【００５１】
後述するように、この鍵により、セキュリティモジュール４２により生成されたセッション情報の暗号化、暗号化されたセッション情報の復号が行われる。以下、適宜、セキュリティモジュール４２−１と４２−２が共通のものとして有しているこの鍵をセッション情報用鍵という。
【００５２】
HTTPクライアント２１は、ネットワーク５を介して、HTTPサーバ１１との間でHTTP通信を行う。
【００５３】
クライアント側の図示せぬクライアントアプリケーションは、所定の要求をアプリケーションサーバ１２に送信するとともに、アプリケーションサーバ１２からコマンドが送信されてきたとき、それを非接触ICチップに送信し、実行させる。
【００５４】
非接触ICチップは、R/W等を介してセキュリティモジュール４２から送信されてきたコマンドに施されている暗号化を復号し、それを実行する。コマンドの内容が電子マネーの書き換えである場合、このコマンドには書き換える金額の情報なども含まれている。
【００５５】
このようなサーバ−クライアントシステムにおいては、例えば、電子マネーによる代金の支払いなどの１つの処理を実現するまでに、図１を参照して説明したように、残高を読み出す通信と、残高を書き換えるための通信といったように、サーバ側とクライアント側との間で複数回の通信が行われる。
【００５６】
従って、この場合、クライアント側との通信の開始時（HTTPクライアント２１から最初のHTTPリクエストがあったとき）、アプリケーションサーバ１２とセキュリティモジュール４２（例えば、セキュリティモジュール４２−１）のそれぞれにおいて、クライアント側とのセッションに関するセッション情報が生成される。
【００５７】
セッション情報には、例えば、セッションを識別する情報、一連の通信のうちのどこまでの通信を行ったのかを表す情報、セッション毎に異なるセッションキーを用いて通信を暗号化する場合のそのセッションキーの情報などが含まれる。
【００５８】
そして、セキュリティモジュール４２−１により生成されたセッション情報は、セキュリティモジュール４２−１が有するセッション情報用鍵を用いて暗号化された後、負荷分散装置４１を介してアプリケーションサーバ１２に供給される。
【００５９】
アプリケーションサーバ１２においては、アプリケーションサーバ１２自身により生成されたセッション情報と、セキュリティモジュール４２−１により生成され、暗号化されたセッション情報がまとめて管理される。
【００６０】
例えば、サーバ側とクライアント側との間で行われる複数回の通信のうちの２回目以降の通信のとき（２回目以降のHTTPリクエストがあったとき）、アプリケーションサーバ１２からセキュリティモジュール４２（負荷分散装置４１により選択されたセキュリティモジュール４２）に対して必要に応じてアクセスが行われ、そのセキュリティモジュール４２に対して、コマンドの暗号化の要求などとともに、１回目の通信のときに管理されていたセッション情報がアプリケーションサーバ１２から送信される。
【００６１】
負荷分散装置４１においては、そのときのセキュリティモジュール４２−１と４２−２の負荷の状況に基づいて、いずれかのセキュリティモジュールがアプリケーションサーバ１２のアクセス先として選択される。すなわち、一連の通信の開始時にセッション情報を生成したセキュリティモジュール４２−１とは異なる、セキュリティモジュール４２−２がアクセス先となり、暗号化などの処理が要求されることがある。
【００６２】
例えば、２回目の通信のときのアプリケーションサーバ１２のアクセス先としてセキュリティモジュール４２−２が選択された場合、セキュリティモジュール４２−２においては、アプリケーションサーバ１２から供給されてきたセッション情報（セキュリティモジュール４２−１により生成され、暗号化されたセッション情報）が、セキュリティモジュール４２−２自身が有するセッション情報用鍵により復号され、復号されたセッション情報に基づいて、セキュリティモジュール４２−１の処理に続く、それ以降の処理が行われる。
【００６３】
このように、あるセキュリティモジュールで生成されたセッション情報を他のセキュリティモジュールに供給し、同じ対象（非接触ICチップ）を制御するための以降の処理を、セッション情報に基づいて、その、他のセキュリティモジュールに行わせることができるようにすることにより、アプリケーションサーバ１２のアクセス先を、常に、セッション情報を生成したものと同じセキュリティモジュールとする必要がない。
【００６４】
従って、負荷分散装置４１は、純粋に、負荷を分散させるという観点から、アプリケーションサーバ１２のアクセス先を選択することができ、効率的に負荷を分散することができる。
【００６５】
すなわち、同じ対象を制御するための一連の処理を、セッション情報を生成し、内部で管理しているセキュリティモジュールに常に行わせなければならないものとすると、セッション情報を有していないセキュリティモジュールに一連の処理のうちの途中の処理から行わせることができないことから、そのときのセキュリティモジュールの負荷の状況にかかわらず、アプリケーションサーバ１２のアクセス先が必然的に決定されることになるが、上述したように、セッション情報を、それを生成したものと異なるセキュリティモジュールに供給して以降の処理を行わせることができるようにすることにより、負荷分散装置４１は、セッション情報の場所（セッション情報を有しているセキュリティモジュール）を気にすることなく、そのときの負荷の状況を見て、アクセス先を選択することができる。
【００６６】
また、負荷分散装置４１としては、アプリケーション層の情報までを見て処理を割り振るような高機能なスイッチは不要となり、負荷を分散する機能を有するレイヤ４のスイッチを用いることができる。
【００６７】
さらに、このように、セキュリティモジュールの外部にセッション情報が出される場合であっても、暗号化された状態で出されることから、セキュリティモジュール以外の者によりセッション情報の内容が解読されたり、改竄されたりすることがない。
【００６８】
また、例えば、セッション情報を生成し、１度処理を行ったセキュリティモジュールは、同じ対象を制御するための次の処理が自分自身に割り振られるとは限らないし、割り振られたとしても、そのときには、アプリケーションサーバ１２からセッション情報（自分自身で生成し、暗号化したセッション情報）が供給されてくることから、処理を行った後もセッション情報を保持しておく必要がなく、それまで管理していたセッション情報を消去することができる。
【００６９】
すなわち、１つの対象を制御するためのセッション情報を複数の機器（アプリケーションサーバ１２とセキュリティモジュール４２）がそれぞれ有している必要がなく、これにより、セッション情報の管理を容易なものとすることができる。
【００７０】
以上のようなセッション情報の管理を行う図２のサーバ−クライアントシステムの動作については後述する。
【００７１】
図３は、図２のHTTPサーバ１１、アプリケーションサーバ１２を実装する装置のハードウエア構成例を示すブロック図である。
【００７２】
CPU(Central Processing Unit)５１は、ROM(Read Only Memory)５２に記憶されているプログラム、または、記憶部５８からRAM(Random Access Memory)５３にロードされたプログラムに従って各種の処理を実行する。RAM５３にはまた、CPU５１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【００７３】
CPU５１、ROM５２、およびRAM５３は、バス５４を介して相互に接続されている。このバス５４にはまた、入出力インタフェース５５も接続されている。
【００７４】
入出力インタフェース５５には、キーボード、マウスなどよりなる入力部５６、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部５７、ハードディスクなどより構成される記憶部５８、ネットワーク５を介しての通信処理を行う通信部５９が接続されている。
【００７５】
入出力インタフェース５５にはまた、必要に応じてドライブ６０が接続される。ドライブ６０には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア６１が適宜装着され、それから読み出されたコンピュータプログラムが必要に応じて記憶部５８にインストールされる。
【００７６】
なお、セキュリティモジュール４２も、図３の構成と同様の構成を有している。以下、適宜、図３の構成を、セキュリティモジュール４２の構成としても引用して説明する。
【００７７】
図４は、アプリケーションサーバ１２の機能構成例を示すブロック図である。図４に示す各機能部のうちの少なくとも一部は、図３のCPU５１により所定のプログラムが実行されることによって実現される。
【００７８】
アプリケーションサーバ１２は、制御部７１、およびセッション情報管理部７２から構成される。
【００７９】
制御部７１は、アプリケーションサーバ１２の全体の動作を制御し、例えば、クライアントアプリケーションからのHTTPリクエストがあったことがHTTPサーバ１１から通知されてきたとき、それをセッション情報管理部７２に通知する。セッション情報管理部７２においては、この通知に応じて、アプリケーションサーバ１２のセッション情報が生成される。
【００８０】
また、制御部７１は、暗号化されたセッション情報がセキュリティモジュール４２から送信されてきたとき、それをセッション情報管理部７２に出力し、アプリケーションサーバ１２のセッション情報とともにまとめて管理させる。制御部７１は、セッション情報管理部７２により管理されている、セキュリティモジュール４２のセッション情報を適宜読み出し、読み出したセッション情報を、暗号化された状態のまま、負荷分散装置４１（セキュリティモジュール４２）に送信する。
【００８１】
なお、制御部７１は、クライアントアプリケーションからの要求に応じて、非接触ICチップに実行させるコマンドを生成し、その生成したコマンドの暗号化の要求を負荷分散装置４１に送信したり、クライアントアプリケーションが実装される装置に表示させる画面の情報などをHTTPサーバ１１に送信したりする。
【００８２】
セッション情報管理部７２は、クライアントアプリケーションとの間のセッションに関するセッション情報を生成し、生成したセッション情報を管理するとともに、それとまとめて、制御部７１から供給されてきたセキュリティモジュール４２のセッション情報を管理する。
【００８３】
図５は、セキュリティモジュール４２−１と４２−２の機能構成例を示すブロック図である。図５に示す各機能部のうちの少なくとも一部は、セキュリティモジュール４２のCPU５１（図３）により所定のプログラムが実行されることによって実現される。
【００８４】
セキュリティモジュール４２−１は、制御部８１−１、暗号処理部８２−１、鍵管理部８３−１、およびセッション情報管理部８４−１から構成される。
【００８５】
制御部８１−１は、セキュリティモジュール４２−１の全体の動作を制御し、アプリケーションサーバ１２からの要求に応じた処理を行う。
【００８６】
例えば、制御部８１−１は、アプリケーションサーバ１２からコマンドの暗号化が要求されたとき、暗号処理部８２−１にコマンドの暗号化を行わせ、暗号化されたコマンドを負荷分散装置４１を介してアプリケーションサーバ１２に送信する。
【００８７】
また、制御部８１−１は、暗号化されたセッション情報が暗号処理部８２−１から供給されてきたとき、それを負荷分散装置４１を介してアプリケーションサーバ１２に送信する。さらに、制御部８１−１は、アクセス先としてセキュリティモジュール４２−１が選択され、他のセキュリティモジュール４２（セキュリティモジュール４２−２）により暗号化されたセッション情報がアプリケーションサーバ１２から送信されてきたとき、それを暗号処理部８２−１に出力し、復号させる。
【００８８】
なお、アプリケーションサーバ１２からのアクセスがあったが、そのときに、暗号化されたセキュリティモジュール４２のセッション情報がアプリケーションサーバ１２から送信されてこない場合、クライアント側と、セキュリティモジュール４２のセッションに関するセッション情報がまだ生成されていないと判断し（最初の通信であると判断し）、セッション情報の生成をセッション情報管理部８４−１に指示する。
【００８９】
暗号処理部８２−１は、鍵管理部８３−１から供給される鍵を用いて、コマンドの暗号化、非接触ICチップからのレスポンスに含まれる、暗号化された情報の復号などのアプリケーションサーバ１２からの要求に応じた暗号処理や、セッション情報管理部８４−１により管理されているセッション情報の暗号化、他のセキュリティモジュール４２（セキュリティモジュール４２−２）により暗号化されたセッション情報の復号などのセッション情報の暗号処理を行う。
【００９０】
鍵管理部８３−１は、セッション情報用鍵や、制御対象としている非接触ICチップと共通の鍵（例えば、セッション毎にセキュリティモジュール４２と非接触ICチップのそれぞれにおいて鍵が生成される場合のその鍵（セッションキー））を管理し、必要に応じて、それらの鍵を暗号処理部８２−１に出力する。
【００９１】
セッション情報管理部８４−１は、制御部８１−１からの指示に応じてセッション情報を生成し、それを管理する。また、セッション情報管理部８４−１は、他のセキュリティモジュール４２により生成されたセッション情報が暗号処理部８２−１により復号され、供給されてきたとき、それを管理する。セキュリティモジュール４２−１における非接触ICチップに対する処理は、セッション情報管理部８４−１により管理されているセッション情報に基づいて行われる。
【００９２】
また、セッション情報管理部８４−１は、アプリケーションサーバ１２からの要求に応じた処理が制御部８１−１等により行われた後、管理しているセッション情報を暗号処理部８２−１に出力し、暗号化を施した後、アプリケーションサーバ１２に送信させるとともに、自分自身が管理しているセッション情報を消去する。
【００９３】
セキュリティモジュール４２−２の制御部８１−２、暗号処理部８２−２、鍵管理部８３−２、およびセッション情報管理部８４−２は、セキュリティモジュール４２−１の制御部８１−１、暗号処理部８２−１、鍵管理部８３−１、およびセッション情報管理部８４−１とそれぞれ同様であるため、その説明は省略する。
【００９４】
次に、図６のフローチャートを参照して、セッション情報を管理する図２のサーバ−クライアントシステムの動作について説明する。
【００９５】
例えば、非接触ICチップに記憶されている電子マネーを用いた代金の支払いを要求するとき、HTTPクライアント２１は、ステップＳ１において、HTTPリクエスト（HTTPリクエスト（１））をHTTPサーバ１１に送信する。
【００９６】
ステップＳ１１において、HTTPサーバ１１は、HTTPクライアント２１からのHTTPリクエストを受信し、ステップＳ１２に進み、HTTPリクエストがあったことをアプリケーションサーバ１２に通知する。
【００９７】
ステップＳ２１において、アプリケーションサーバ１２の制御部７１は、HTTPサーバ１１からの通知を受信し、そのことをセッション情報管理部７２に通知する。ステップＳ２２において、セッション情報管理部７２は、セッション情報（アプリケーションサーバ１２のセッション情報）を生成する。
【００９８】
ステップＳ２３において、制御部７１は、必要に応じて、セキュリティモジュール４２にアクセスする。図６においては、負荷分散装置４１の処理の図示が省略されているが、制御部７１によるアクセスのアクセス先は、セキュリティモジュール４２−１と４２−２から負荷分散装置４１により選択された方のセキュリティモジュールとされる。この例においては、セキュリティモジュール４２−１がアクセス先として選択されたものとする。
【００９９】
セキュリティモジュール４２−１の制御部８１−１は、ステップＳ４１において、アプリケーションサーバ１２（制御部７１）からのアクセスを受信し、アプリケーションサーバ１２からのアクセスに、暗号化されたセキュリティモジュール４２のセッション情報が含まれていないと判断した場合、セッション情報を新たに生成することをセッション情報管理部８４−１に指示する。
【０１００】
後述するように、非接触ICチップとセキュリティモジュール４２の間で通信が１度行われており、セッション情報がいずれかのセキュリティモジュール４２により生成されている場合、アプリケーションサーバ１２からのアクセスには、そのセッション情報が、暗号化された状態でアプリケーションサーバ１２から送信されてくる。
【０１０１】
ステップＳ４２において、セッション情報管理部８４−１は、セッション情報（セキュリティモジュール４２のセッション情報）を新たに生成する。
【０１０２】
ステップＳ４３において、制御部８１−１は、ステップＳ４２で生成されたセッション情報に基づいて、アプリケーションサーバ１２から供給されてきたコマンドの暗号化や、暗号化されている情報の復号などのセキュリティモジュール４２の処理を行う。例えば、ここで行われた処理の内容を表す情報やセッションキーを表す情報などが、セッション情報管理部８４により管理されているセッション情報に反映される。セキュリティモジュール４２の処理が終了したとき、セッション情報管理部８４−１から暗号処理部８２−１にセッション情報が出力される。
【０１０３】
ステップＳ４４において、暗号処理部８２−１は、セッション情報管理部８４−１から供給されてきたセッション情報を、鍵管理部８３−１により管理されているセッション情報用鍵を用いて暗号化し、暗号化されたセッション情報を制御部８１−１に出力する。
【０１０４】
ステップＳ４５において、制御部８１−１は、暗号処理部８２−１から供給されてきた暗号化されたセキュリティモジュール４２のセッション情報をアプリケーションサーバ１２に送信する。例えば、セキュリティモジュール４２の処理（ステップＳ４３の処理）により得られた情報などもアプリケーションサーバ１２に送信される。
【０１０５】
その後、ステップＳ４６において、セッション情報管理部８４−１は、管理していたセッション情報を消去し、次のアクセスがあるまで処理を終了させる。
【０１０６】
アプリケーションサーバ１２の制御部７１は、ステップＳ２４において、セキュリティモジュール４２−１から送信されてきたセッション情報を受信し、受信したセッション情報をセッション情報管理部７２に出力する。
【０１０７】
ステップＳ２５において、セッション情報管理部７２は、ステップＳ２２で生成したセッション情報と、セキュリティモジュール４２−１から送信されてきたセッション情報をまとめて管理する。セッション情報に施されている暗号化を解く鍵が用意されていないことから、アプリケーションサーバ１２では、セッション情報の内容を解読することができない。
【０１０８】
ステップＳ２６において、制御部７１は、例えば、非接触ICチップに実行させるコマンド（セキュリティモジュール４２−１の処理により暗号化されたコマンド）などをHTTPサーバ１１に送信する。
【０１０９】
ステップＳ１３において、HTTPサーバ１１は、アプリケーションサーバ１２から送信されてきた情報を受信し、ステップＳ１４に進み、それをHTTPリクエストに対するレスポンス（HTTPレスポンス（１））としてHTTPクライアント２１に送信する。
【０１１０】
ステップＳ２において、HTTPクライアント２１は、HTTPサーバ１１からのHTTPレスポンスを受信し、所定の処理を行う。例えば、暗号化されたコマンドがHTTPクライアント２１から非接触ICチップに送信され、非接触ICチップにおいて復号された後、実行される。
【０１１１】
これにより、１つの処理を実現する複数回の通信のうちの１回目の通信が終了した状態になる。２回目の通信を開始させるとき、ステップＳ３において、HTTPクライアント２１は、HTTPリクエスト（HTTPリクエスト（２））をHTTPサーバ１１に送信する。
【０１１２】
ステップＳ１５において、HTTPサーバ１１は、HTTPクライアント２１からのHTTPリクエストを受信し、ステップＳ１６に進み、HTTPリクエストがあったことをアプリケーションサーバ１２に通知する。
【０１１３】
ステップＳ２７において、アプリケーションサーバ１２の制御部７１は、HTTPサーバ１１からの通知を受信し、セキュリティモジュール４２にアクセスするとき、ステップＳ２８に進み、セッション情報管理部７２により管理されているセッション情報の中から、セキュリティモジュール４２のセッション情報を読み出す。
【０１１４】
ステップＳ２９において、制御部７１は、セキュリティモジュール４２（負荷分散装置４１により選択されたセキュリティモジュール４２）にアクセスする。このアクセスのとき、ステップＳ２８で読み出されたセキュリティモジュール４２のセッション情報が、処理の要求などとともにアクセス先のセキュリティモジュール４２に送信される。
【０１１５】
ここでは、例えば、アプリケーションサーバ１２のアクセス先として、セキュリティモジュール４２−２が選択されたものとする。すなわち、セキュリティモジュール４２−１により生成され、暗号化されたセッション情報と、アプリケーションサーバ１２による処理の要求がセキュリティモジュール４２−２に供給される。
【０１１６】
ステップＳ４７において、セキュリティモジュール４２−２の制御部８１−２は、アプリケーションサーバ１２から送信されてきたセキュリティモジュール４２のセッション情報と、処理の要求を受信する。制御部８１−２により受信されたセキュリティモジュール４２のセッション情報は暗号処理部８２−２に出力される。
【０１１７】
ステップＳ４８において、暗号処理部８２−２は、鍵管理部８３−２により管理されているセッション情報用鍵を用いてセッション情報を復号し、セッション情報管理部８４−２に出力する。
【０１１８】
その後、ステップＳ４９において、セッション情報管理部８４−２により管理されているセッション情報に基づいて、それ以降の処理（ステップＳ４３以降と同じ処理）が行われる。
【０１１９】
すなわち、セキュリティモジュール４２−２によりセキュリティモジュール４２の処理が行われたとき、セッション情報管理部８４−２により管理されているセッション情報が暗号化され、アプリケーションサーバ１２に送信される。アプリケーションサーバ１２においては、セキュリティモジュール４２−２から送信されてきたセッション情報がアプリケーションサーバ１２のセッション情報とともにまとめて管理され、次の処理を行うセキュリティモジュールに送信されるまで保持される。
【０１２０】
以上の処理が繰り返されることにより、負荷を効率的に分散しつつ、１つの処理を実現するために複数回の通信を行う必要がある場合であっても、セッション情報の管理を容易に行うことが可能になる。
【０１２１】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。
【０１２２】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１２３】
この記録媒体は、図３に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory)，DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（登録商標）(Mini-Disk)を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア６１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM５２や、記憶部５８に含まれるハードディスクなどで構成される。
【０１２４】
なお、本明細書において、各ステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１２５】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表わすものである。
【図面の簡単な説明】
【０１２６】
【図１】従来の電子マネーシステムの構成例を示すブロック図である。
【図２】本発明を適用したサーバ−クライアントシステムの構成例を示すブロック図である。
【図３】図２のHTTPサーバとアプリケーションサーバが実装される装置のハードウエア構成例を示すブロック図である。
【図４】図２のアプリケーションサーバの機能構成例を示すブロック図である。
【図５】図２のセキュリティモジュールの機能構成例を示すブロック図である。
【図６】図２のサーバ−クライアントシステムの動作について説明するフローチャートである。
【符号の説明】
【０１２７】
１１  HTTPサーバ，  １２  アプリケーションサーバ，  ２１  HTTPクライアント，  ４１  負荷分散装置，  ４２−１，４２−２  セキュリティモジュール，  ７１  制御部，  ７２  セッション情報管理部，  ８１−１，８１−２  制御部，  ８２−１，８２−２  暗号処理部，  ８３−１，８３−２  鍵管理部，  ８３−１，８４−２  セッション情報管理部
【図１】
2006099694.tif 000003
【図２】
2006099694.tif 000004
【図３】
2006099694.tif 000005
【図４】
2006099694.tif 000006
【図５】
2006099694.tif 000007
【図６】
2006099694.tif 000008