以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載のクライアントは、
サーバとクライアントからなるサーバクライアントシステム(例えば、図12のサーバクライアントシステム)を構成するクライアント(例えば、図12の負荷発生用クライアント側装置111)において、
前記サーバ(例えば、図12のサーバ側装置2)は、
セッション単位で変化する、データの暗号化に関する暗号関連処理を行う第1の処理手段(例えば、図14のセキュアチップ処理モジュール23や、図16の鍵/乱数発生モジュール132)と、
負荷試験用の前記暗号関連処理を行う第2の処理手段(例えば、図14の負荷試験用セキュアチップ処理モジュール122や、図16の負荷試験用鍵/乱数発生モジュール133)と、
前記第1または第2の処理手段のうちの一方を選択し、前記クライアントとやりとりするデータに対する前記暗号関連処理を行わせる選択手段(例えば、図14のモジュール選択部121や、図16のモジュール選択部131)と
を有し、
前記クライアントは、
他の装置(例えば、図12のクライアント側装置1)が、前記サーバに送信した、暗号化されたデータを記憶する記憶手段(例えば、図18の記憶部113)と、
前記選択手段によって前記第2の処理手段が選択された場合に、前記記憶手段に記憶されたデータを復号する復号手段(例えば、図18の負荷用暗号/復号ロジック部141)と、
前記復号手段において復号されたデータの一部を、前記第2の処理手段による処理結果に対応するように書き換える書き換え手段(例えば、図18の通信データ書き換えロジック部142)と、
前記書き換え手段において一部が書き換えられたデータを暗号化し、前記記憶手段に記憶させる暗号化手段(例えば、図18の負荷用暗号/復号ロジック部141)と、
前記記憶手段に記憶された、一部が書き換えられ、暗号化されたデータを送信する送信手段(例えば、図18の通信制御部114)と
を有し、
前記書き換え手段によるデータの一部の書き換え、前記暗号化手段によるデータの暗号化、および、前記送信手段によるデータの送信が、多重的に、多数回繰り返される
ことを特徴とする。
請求項2に記載のデータ処理方法は、
サーバとクライアントからなるサーバクライアントシステム(例えば、図12のサーバクライアントシステム)を構成するクライアント(例えば、図12の負荷発生用クライアント側装置111)のデータ処理方法において、
前記サーバは、
セッション単位で変化する、データの暗号化に関する暗号関連処理を行う第1の処理手段(例えば、図14のセキュアチップ処理モジュール23や、図16の鍵/乱数発生モジュール132)と、
負荷試験用の前記暗号関連処理を行う第2の処理手段(例えば、図14の負荷試験用セキュアチップ処理モジュール122や、図16の負荷試験用鍵/乱数発生モジュール133)と、
前記第1または第2の処理手段のうちの一方を選択し、前記クライアントとやりとりするデータに対する前記暗号関連処理を行わせる選択手段(例えば、図14のモジュール選択部121や、図16のモジュール選択部131)と
を有し、
前記クライアントは、他の装置が、前記サーバに送信した、暗号化されたデータを記憶する記憶手段(例えば、図18の記憶部113)を有し、
前記選択手段によって前記第2の処理手段が選択された場合に、前記記憶手段に記憶されたデータを復号する復号ステップ(例えば、図19のステップS132)と、
前記復号ステップにおいて復号されたデータの一部を、前記第2の処理手段による処理結果に対応するように書き換える書き換えステップ(例えば、図19のステップS141)と、
前記書き換えステップにおいて一部が書き換えられたデータを暗号化し、前記記憶手段に記憶させる暗号化ステップ(例えば、図19のステップS135)と、
前記記憶手段に記憶された、一部が書き換えられ、暗号化されたデータを送信する送信ステップ(例えば、図19のステップS152)と
を含み、
前記書き換えステップの処理によるデータの一部の書き換え、前記暗号化ステップの処理によるデータの暗号化、および、前記送信ステップの処理によるデータの送信が、多重的に、多数回繰り返されることを特徴とする。
請求項3に記載のプログラムは、
サーバとクライアントからなるサーバクライアントシステム(例えば、図12のサーバクライアントシステム)を構成するクライアント(例えば、図12の負荷発生用クライアント側装置111)に実行させるプログラムにおいて、
前記サーバは、
セッション単位で変化する、データの暗号化に関する暗号関連処理を行う第1の処理手段(例えば、図14のセキュアチップ処理モジュール23や、図16の鍵/乱数発生モジュール132)と、
負荷試験用の前記暗号関連処理を行う第2の処理手段(例えば、図14の負荷試験用セキュアチップ処理モジュール122や、図16の負荷試験用鍵/乱数発生モジュール133)と、
前記第1または第2の処理手段のうちの一方を選択し、前記クライアントとやりとりするデータに対する前記暗号関連処理を行わせる選択手段(例えば、図14のモジュール選択部121や、図16のモジュール選択部131)と
を有し、
前記クライアントは、他の装置が、前記サーバに送信した、暗号化されたデータを記憶する記憶手段(例えば、図18の記憶部113)を有し、
前記選択手段によって前記第2の処理手段が選択された場合に、前記記憶手段に記憶されたデータを復号する復号ステップ(例えば、図19のステップS132)と、
前記復号ステップにおいて復号されたデータの一部を、前記第2の処理手段による処理結果に対応するように書き換える書き換えステップ(例えば、図19のステップS141)と、
前記書き換えステップにおいて一部が書き換えられたデータを暗号化し、前記記憶手段に記憶させる暗号化ステップ(例えば、図19のステップS135)と、
前記記憶手段に記憶された、一部が書き換えられ、暗号化されたデータを送信させる送信ステップ(例えば、図19のステップS152)と
を含み、
前記書き換えステップの処理によるデータの一部の書き換え、前記暗号化ステップの処理によるデータの暗号化、および、前記送信ステップの処理によるデータの送信が、多重的に、多数回繰り返されることを特徴とする。
請求項4に記載のサーバクライアントシステムは、
前記サーバ(例えば、図12のサーバ側装置2)は、
セッション単位で変化する、データの暗号化に関する暗号関連処理を行う第1の処理手段(例えば、図14のセキュアチップ処理モジュール23や、図16の鍵/乱数発生モジュール132)と、
負荷試験用の前記暗号関連処理を行う第2の処理手段(例えば、図14の負荷試験用セキュアチップ処理モジュール122や、図16の負荷試験用鍵/乱数発生モジュール133)と、
前記第1または第2の処理手段のうちの一方を選択し、前記クライアントとやりとりするデータに対する前記暗号関連処理を行わせる選択手段(例えば、図14のモジュール選択部121や、図16のモジュール選択部131)と
を有し、
前記クライアントは、
他の装置(例えば、図12のクライアント側装置1)が、前記サーバに送信した、暗号化されたデータを記憶する記憶手段(例えば、図18の記憶部113)と、
前記選択手段によって前記第2の処理手段が選択された場合に、前記記憶手段に記憶されたデータを復号する復号手段(例えば、図18の負荷用暗号/復号ロジック部141)と、
前記復号手段において復号されたデータの一部を、前記第2の処理手段による処理結果に対応するように書き換える書き換え手段(例えば、図18の通信データ書き換えロジック部142)と、
前記書き換え手段において一部が書き換えられたデータを暗号化し、前記記憶手段に記憶させる暗号化手段(例えば、図18の負荷用暗号/復号ロジック部141)と、
前記記憶手段に記憶された、一部が書き換えられ、暗号化されたデータを送信する送信手段(例えば、図18の通信制御部114)と
を有し、
前記書き換え手段によるデータの一部の書き換え、前記暗号化手段によるデータの暗号化、および、前記送信手段によるデータの送信が、多重的に、多数回繰り返される
ことを特徴とする。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明が適用されるサーバクライアントシステム(システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない)の構成例を示している。
図1のサーバクライアントシステムは、いわゆるクライアントである各種のクライアント側装置1と、いわゆるサーバであるサーバ側装置2とが、例えば、インターネットなどのネットワーク3、さらには、必要に応じて、例えば、移動機(体)通信網などのネットワーク4を介して接続されて構成されている。
クライアント側装置1は、セキュアチップを内蔵している。セキュアチップは、例えば、耐タンパ性のあるセキュアなICチップであり、接触または非接触で、外部の装置とデータのやりとりを行うことができるようになっている。
なお、クライアント側装置1としては、例えば、携帯電話機やPDA(Personal Digital Assistant)などの携帯端末、PC,POS(Point Of Sales)レジ(POSシステム用のレジスタ)、自動販売機、ハンディーターミナルなどがある。また、クライアント側装置1が内蔵するセキュアチップとしては、例えば、電子的な定期券等としてのSuica(R)などに採用されているFeliCa(R)などがある。
サーバ側装置2は、ネットワーク3、さらには、必要に応じて、ネットワーク4を介して、クライアント側装置1との間でデータ(コマンドを含む)をやりとりし、これにより、各種のサービスを提供する。即ち、例えば、クライアント側装置1のセキュアチップに、電子マネーが記憶されている場合において、サーバ側装置2が、クライアント側装置1の電子マネーを対象として、商品の代金を差し引き、その差し引き後の金額によって、クライアント側装置1の電子マネーの金額を更新する処理等を制御することにより、サーバ側装置2は、電子マネーサービスを提供する。
なお、クライアント側装置1は、サーバ側装置2に送信するデータを暗号化して送信し、サーバ側装置2も、クライアント側装置1に送信するデータを暗号化して送信する。
クライアント側装置1におけるデータの暗号化や復号、暗号化/復号に用いられる鍵の発生や管理、相互認証(のためのデータの暗号化/復号など)、相互認証に用いられる乱数の発生、その他のデータの暗号化(秘密化)に関連する暗号関連処理は、耐タンパ性のあるセキュアチップ内で行われるが、サーバ側装置2における暗号関連処理は、耐タンパ性のある専用のハードウェアであるHSM(Hardware Security Module)内で行われる場合と、そのような耐タンパ性のあるHSMを利用せず、サーバ側装置2を実現するソフトウェアなどで行われる場合がある。
また、暗号関連処理には、特に高い秘匿性が要求される暗号関連処理と、それ以外の暗号関連処理とがあり、サーバ側装置2がHSMを備える場合には、特に高い秘匿性が要求される暗号関連処理のみを、HSM内で行い、それ以外の暗号関連処理を、サーバ側装置2を実現するソフトウェアなどで行うことができる。
次に、図2は、クライアント側装置1とサーバ側装置2の機能的な構成例を示している。
クライアント側装置1は、セキュアチップ11およびクライアントアプリケーション12、さらには、必要なR/W13で構成される。
セキュアチップ11は、耐タンパ性のあるセキュアなICチップであり、接触または非接触で、外部の装置とデータのやりとりを行うことができるようになっている。
即ち、セキュアチップ11は、クライアントアプリケーション12と直接、またはR/W13を介して通信し、例えば、その通信によってクライアントアプリケーション12から送信されてくるコマンドにしたがって処理を行う。さらに、セキュアチップ11は、その処理後、コマンドに対するレスポンスとしてのレスポンスデータを、クライアントアプリケーション12に対して、直接、またはR/W13を介して送信する。また、セキュアチップ11は、セキュリティを確保するために、送受信するデータ等に対する暗号関連処理を行う。
クライアントアプリケーション12は、例えば、ハードウェアであるコンピュータで実行されるソフトウェアで、サーバ側装置2の後述するサーバアプリケーション21のクライアントとして機能する。クライアントアプリケーション12は、サーバアプリケーション21との間でデータ(コマンドを含む)をやりとりし、また、セキュアチップ11に対して、直接、またはR/W13を介して、コマンド等を送信することで、セキュアチップ11に対するデータの読み書き等を行い、これにより、各種のサービスの提供を実現する。
即ち、例えば、クライアントアプリケーション12およびサーバアプリケーション21が、電子マネーサービスを提供するソフトウェアであり、セキュアチップ11内に、電子マネーサービス用の記憶領域が確保されている場合には、セキュアチップ11に記憶された電子マネーから、商品の代金を差し引き、その差し引き後の金額によって、セキュアチップ11に記憶された電子マネーの金額を更新するといった、電子マネーサービスのための処理に必要なデータ(コマンドを含む)のやりとりが、クライアントアプリケーション12とサーバアプリケーション21との間で行われる。
なお、クライアントアプリケーション12には、サーバアプリケーション21との間の通信を制御するモジュールが、必要に応じて含まれる。
R/W13は、セキュアチップ11と非接触通信または接触通信を行い、クライアントアプリケーション12から供給されるコマンド等を、セキュアチップ11に送信し、また、セキュアチップ12から送信されてくるデータ等を受信して、クライアントアプリケーション12に供給する。
サーバアプリケーション21は、例えば、ハードウェアであるコンピュータで実行されるソフトウェアで、クライアント側装置1のクライアントアプリケーション12のサーバとして機能する。サーバアプリケーション21は、クライアントアプリケーション12との間でデータ(コマンドを含む)をやりとりすることにより、上述した電子マネーサービスその他の各種のサービスを実現する。
また、サーバアプリケーション21は、セキュリティを確保するため、送受信するデータ等に対する暗号関連処理を、セキュアサーバ22に依頼する。
なお、サーバアプリケーション21には、クライアントアプリケーション12との間の通信を制御するモジュールが、必要に応じて含まれる。
セキュアサーバ22は、例えば、ハードウェアであるコンピュータで実行されるソフトウェアで、サーバアプリケーション21からの暗号関連処理の依頼に応じて、自身で暗号関連処理を行い、あるいは、暗号関連処理を、セキュアチップ処理モジュール23に依頼する。
即ち、セキュアサーバ22は、サーバアプリケーション21から依頼される暗号関連処理のうちの、特に高い秘匿性が要求される暗号関連処理を、セキュアチップ処理モジュール23に依頼し、それ以外の暗号関連処理を、自身(セキュアサーバ22内)で行う。
セキュアチップ処理モジュール23は、セキュアサーバ22からの依頼に応じて、暗号関連処理(特に高い秘匿性が要求される暗号関連処理)を行う。
なお、セキュアチップ処理モジュール23は、ここでは、例えば、耐タンパ性のある専用のハードウェア内に格納されていることとする。但し、セキュアチップ処理モジュール23は、例えば、セキュアサーバ22の1つのモジュール(ソフトウェア)とすることも可能である。
次に、図3は、クライアント側装置1とサーバ側装置2の具体的なハードウェアの構成例を示している。
図3において、クライアント側装置1は、ハードウェアであるR/W13,ICカード31、およびPC32で構成されている。
ICカード31は、ハードウェアであるセキュアチップ11を内蔵し、例えば、電子マネーを格納するEdy(R)などのカードに相当する。PC32は、例えば、ICカード31のユーザが所有するPCで、そこには、クライアントアプリケーション12がインストールされている。ユーザは、PC32を操作することにより、ICカード31に格納されている電子マネーの残高照会や、電子マネーのチャージ、電子マネーによる代金の支払い等を行うことができる。
図3において、サーバ側装置2は、ハードウェアであるセキュアチップ処理モジュール23およびコンピュータ33で構成されている。
コンピュータ33は、例えば、ハードウェアとしてのサーバ(マシン)で、そこには、サーバアプリケーション21とセキュアサーバ22がインストールされている。
次に、図4は、クライアント側装置1とサーバ側装置2の具体的なハードウェアの他の構成例を示している。なお、図4において、サーバ側装置2のハードウェアの構成は、図3における場合と同様になっている。
図4において、クライアント側装置1は、ハードウェアである携帯電話機34で構成されている。
携帯電話機34は、ハードウェアであるセキュアチップ11を内蔵している。さらに、携帯電話機34には、クライアントアプリケーション12がインストールされている。ユーザは、携帯電話機34を操作することにより、例えば、セキュアチップ11に格納されている電子マネーの残高照会や、電子マネーのチャージ、電子マネーによる代金の支払い等を行うことができる。
なお、携帯電話機34の外部から、携帯電話機34が内蔵するセキュアチップ11へのアクセスは、携帯電話機34が有する通信機能を利用して行うこともできるし、また、図4では図示していないR/W13に対して、携帯電話機34、ひいては、その携帯電話機34が内蔵するセキュアチップ11を近づけることにより行うこともできる。
次に、図5は、クライアントアプリケーション12がインストールされる図3のPC32のハードウェアの構成例を示している。
PC32は、CPU(Central Processing Unit)42を内蔵している。CPU42には、バス41を介して、入出力インタフェース50が接続されており、CPU42は、入出力インタフェース50を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部47が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)43に格納されているプログラムを実行する。あるいは、また、CPU42は、ハードディスク45に格納されているプログラム、衛星若しくはネットワークから転送され、通信部48で受信されてハードディスク45にインストールされたプログラム、またはドライブ49に装着されたリムーバブル記録媒体51から読み出されてハードディスク45にインストールされたプログラムを、RAM(Random Access Memory)44にロードして実行する。これにより、CPU42は、各種の処理を行う。そして、CPU42は、その処理結果を、必要に応じて、例えば、入出力インタフェース50を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部46から出力、あるいは、通信部48から送信、さらには、ハードディスク45に記録等させる。
なお、入出力インタフェース50には、例えば、USB(Universal Serial Bus)端子が設けられており、図3におけるR/W13は、そのUSB端子に接続することができる。CPU42(によって、実行されるクライアントアプリケーション12)は、入出力インタフェース50に接続されたR/W13を介して、セキュアチップ11(図3)にアクセスすることができる。
ここで、クライアントアプリケーション12その他のプログラムは、PC32に内蔵されている記録媒体としてのハードディスク45やROM43に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体51に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体51は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体51からPC32にインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、PC32に無線で転送したり、LAN(Local Area Network)、インターネットといったネットワーク3を介して、PC32に有線で転送し、PC32では、そのようにして転送されてくるプログラムを、通信部48で受信し、内蔵するハードディスク45にインストールすることができる。
次に、図6は、サーバアプリケーション21およびセキュアサーバ22がインストールされる図3のコンピュータ33のハードウェアの構成例を示している。
ここで、図6において、コンピュータ33を構成するバス61乃至リムーバブル記録媒体71は、図5のバス41乃至リムーバブル記録媒体51とそれぞれ同様に構成されるものであるため、その説明は省略する。
なお、図3や図4において、セキュアチップ処理モジュール23は、通信部68または入出力インタフェース70を介して、コンピュータ33に接続される。
次に、図7は、図2のセキュアチップ11のハードウェアの構成例を示している。
セキュアチップ11は、大きく分けて、通信処理部81とデータ処理部82とから構成される。通信処理部81は、セキュアチップ11の外部と、接触通信または非接触通信をするために必要な処理を行い、これにより、外部から送信されてくるデータ(コマンドを含む)を、データ処理部82に供給し、また、データ処理部82からのデータを、外部に送信する。
ここで、セキュアチップ11で行われる、外部と通信するために必要な処理としては、データ等の符号化/復号や、変調/復調等がある。また、セキュアチップ11が電源を有しない場合には、通信処理部81では、外部からの信号から電源(電力)を生成する処理も行われる。
データ処理部82は、例えば、CPU91、暗号関連処理部92、およびメモリ93で構成され、通信処理部81から供給されるコマンド等にしたがい、各種の処理を行う。
即ち、CPU91は、暗号関連処理部92の制御やメモリ93の管理を行う。また、CPU91は、通信処理部81から供給されるコマンドにしたがい、メモリ93に対するデータの読み書きや、メモリ93に記憶されたデータを対象としたデータ処理等を行う。なお、CPU91は、プログラムを実行することにより各種の処理を行うが、そのプログラムは、メモリ93に記憶されている。
暗号関連処理部92は、CPU91の制御にしたがい、暗号関連処理を行う。ここで、暗号関連処理には、データ(コマンドを含む)の暗号化/復号の他に、例えば、いわゆるチャレンジアンドレスポンス方式での相互認証(相互認証に用いられる乱数の発生等を含む)、暗号化/復号に用いられる鍵(暗号鍵となる情報)の発生(生成)なども含まれる。
メモリ93は、不揮発性のメモリで、データやプログラムなどを記憶する。なお、メモリ93は、物理的に1つのメモリであっても良いし、複数のメモリであっても良い。また、メモリ93を、物理的に複数のメモリで構成する場合には、その一部のメモリとしては、揮発性のメモリを採用することができる。揮発性メモリには、例えば、CPU91の動作上一時的に記憶しておく必要があるデータなどが記憶される。
次に、CPU91では、メモリ93の記憶領域が階層化されて管理されるようになされている。
即ち、図8は、メモリ93のディレクトリ構造を示している。
メモリ93の記憶領域のうちの一部は、各種のサービスを提供するためのデータを記憶するデータ記憶領域として使用されるようになっている。このデータ記憶領域は、いわゆるディレクトリに相当するエリア定義領域を階層とする階層構造をなしており、エリア定義領域は、下位(子)の階層のディレクトリに相当するエリア定義領域や、ファイルに相当する、後述するサービス領域を管理するサービス定義領域を有することができるようになされている。
エリア定義領域は、メモリ93のデータ記憶領域の一部で、サービスを提供するサービス提供者を管理する管理者(サービス提供者自身である場合もある)に割り当てられる。エリア定義領域には、そのエリア定義領域を識別するための名前として使用可能な識別コードとしてのエリアコード、使用可能な空きブロック数を表す空き容量、エリア定義領域(そのエリア定義領域の下位階層のエリア定義領域やサービス定義領域を含む)にアクセスするのに必要な鍵としてのエリアキーなどが配置される。
ここで、CPU91は、メモリ93のデータ記憶領域を、固定の記憶容量のブロック単位で管理するようになっており、エリア定義領域が管理するデータ記憶領域の空き容量などは、このブロックの数(ブロック数)によって管理される。
図8の実施の形態では、管理者Aに最上位階層のエリア定義領域が割り当てられており、これを親の階層として、管理者B1およびB2のエリア定義領域が作成されている。さらに、管理者B1のエリア定義領域を、親の階層として、管理者Cのエリア定義領域が作成されている。
サービス定義領域は、後述するサービス領域を管理するための、メモリ93のデータ記憶領域の一部で、サービス提供者が提供するサービスに割り当てられる。サービス定義領域には、そのサービス定義領域を識別するための名前として使用可能な識別コードとしてのサービスコード、サービスの提供に必要なデータを記憶するサービス領域の容量を表すブロック数、サービス定義領域(サービス定義領域が管理するサービス領域を含む)にアクセスするのに必要な鍵としてのサービスキーなどが配置される。
サービス領域は、データ記憶領域の一部で、サービスの提供に必要なデータが記憶される、0以上のブロックで構成される。サービス領域を構成するブロック数が、そのサービス領域を管理するサービス定義領域の容量として配置される。
サービス提供者は、ある管理者が管理するエリア定義領域の下位階層に、サービス定義領域を作成し、そのサービス定義領域で管理されるサービス領域を使用して、各種のサービスを提供する。例えば、電子マネーサービスの提供にあたっては、サービス領域に、電子マネーの金額(残高)や、電子マネーによって購入した商品の情報(例えば、商品名や値段など)、商品を購入した年月日などが記憶される。
次に、図9は、図2のセキュアサーバ22の詳細な構成例を示している。
セキュアサーバ22は、セキュアチップコマンドモジュール101とセキュアチップマネージャモジュール102とから構成される。
セキュアチップコマンドモジュール101は、例えば、サーバアプリケーション21からのコマンドの作成の要求(依頼)に応じて、セキュアチップ11用のコマンドを作成し、サーバアプリケーション21に供給する。
即ち、サーバアプリケーション21は、クライアント側装置1のセキュアチップ11に対して、何らかの処理を指示する場合、その処理に対応するコマンドの作成を、セキュアチップコマンドモジュール101に要求し、セキュアチップコマンドモジュール101は、その要求に応じ、セキュアチップ11用のコマンドを作成して、サーバアプリケーション21に供給する。
従って、サーバアプリケーション21は、セキュアチップ11用のコマンドを(知っていても良いが)知っている必要はないので、様々なコマンド体系のセキュアチップ(コマンドとしてのオペコードや、コマンドがとるパラメータ、コマンドの種類などの違いがあるセキュアチップ)が存在する場合であっても、サーバアプリケーション21を、そのような様々なコマンド体系のセキュアチップごとに製作する必要がない。
即ち、サーバアプリケーション21は、セキュアチップコマンドモジュール101が解釈することができるコマンド体系を使用することができるものであれば良い。
ここで、セキュアチップコマンドモジュール101は、上述したように、サーバアプリケーション21からの要求に応じて、セキュアチップ11用のコマンドを作成し、サーバアプリケーション21に供給するが、コマンドをサーバアプリケーション21に供給する前に、セキュアチップマネージャモジュール102に供給して、そのコマンドの暗号化を要求する。そして、セキュアチップコマンドモジュール101は、その要求に応じてセキュアチップマネージャモジュール102から供給される暗号情報(暗号化後のコマンド等)を、サーバアプリケーション21に供給する。
セキュアチップマネージャモジュール102は、セキュアチップコマンドモジュール101からの要求に応じて、コマンドの暗号化等の暗号関連処理を行い、あるいは、暗号関連処理を、セキュアチップ処理モジュール23に要求する。そして、セキュアチップマネージャモジュール102は、自身(セキュアチップマネージャモジュール102)またはセキュアチップ処理モジュール23による暗号関連処理により得られる暗号情報を、セキュアチップコマンドモジュール101に供給する。
なお、セキュアチップマネージャモジュール102は、セキュアチップ11用の暗号関連処理を行い、あるいは、セキュアチップ処理モジュール23に、セキュアチップ11用の暗号関連処理を行わせる。
即ち、例えば、セキュアチップ11は、セキュアチップ11用の暗号化が行われたコマンド(データ)等のみの処理が可能となっている。具体的には、データ(コマンドを含む)の暗号化には、例えば、様々なアルゴリズムの暗号化が存在し、セキュアチップ11では、あるアルゴリズムの暗号化が採用されている。セキュアチップ11で採用されている暗号化のアルゴリズムを表す情報(そのアルゴリズムによる暗号化に用いられる鍵を表す情報を含む)を、暗号処理種別ということとすると、セキュアチップマネージャモジュール102は、セキュアチップ11に対応した暗号処理種別の暗号化等を行い、あるいは、セキュアチップ処理モジュール23に、セキュアチップ11に対応した暗号処理種別の暗号化等を行わせる。
なお、セキュアチップマネージャモジュール102は、セキュアチップ11の暗号処理種別と異なる暗号処理種別の暗号化等も行うように構成することができる。セキュアチップ処理モジュール23も同様である。
また、暗号化は、例えば、認証や、後述する通信路の暗号化、同じく後述するパッケージの作成などのために行われるが、暗号処理種別は、これらの認証、通信路の暗号化、パッケージの作成のための暗号化それぞれごとに決めることが可能である。さらに暗号処理種別には、認証や、通信路の暗号化、パッケージの作成に関連する情報、即ち、例えば、認証として、相互認証を行うのか、または、片側認証を行うのかといった情報を含めることが可能である。
次に、図10を参照して、クライアント側装置1とサーバ側装置2の動作について説明する。
クライアントアプリケーション12が起動されると、クライアントアプリケーション12は、まず最初に、ステップS21において、セキュアチップ11に対して、セキュアチップ11に関するセキュアチップ(Secure Chip)情報を要求するコマンドを送信する。
セキュアチップ11は、ステップS11において、クライアントアプリケーション12からのコマンドを受信して、ステップS12に進み、そのコマンドに対するレスポンスとして、セキュアチップ情報を、クライアントアプリケーション12に送信する。
クライアントアプリケーション12は、ステップS22において、セキュアチップ11からのセキュアチップ情報を受信して、ステップS23に進み、そのセキュアチップ情報を含む初期情報とともに、サーバ側装置2に対して接続を要求するサーバ(Server)接続要求を送信する。
なお、初期情報には、セキュアチップ情報の他、クライアントアプリケーション12に関するクライアント情報や、クライアントアプリケーション12が接続しようとするサーバ側装置2のサーバアプリケーション21を指定するサーバ(Server)アプリ指定(の情報)が含まれる。
また、セキュアチップ情報には、セキュアチップ11がどのような種類のものかを表す情報であるセキュアチップ種別、セキュアチップ11で採用されているOS(Operating System)を表す情報であるセキュアチップOS種別、セキュアチップ11におけるデータの管理に関する情報であるセキュアチップファイル構造(ファイルフォーマット、エリアコードのリスト、サービスコードのリストなど)などが含まれる。
さらに、クライアント情報には、クライアント側装置1のハードウェアを表す情報(例えば、クライアント側装置1が携帯電話機、PC、またはPOSレジであるなどの情報)であるクライアント種別、クライアント側装置1で採用されているOSを表す情報であるクライアントOS種別、クライアントアプリケーション12を特定する情報であるクライアントアプリID(Identification)、クライアントアプリケーション12のバージョンを表す情報であるアプリバージョンなどが含まれる。
ここで、クライアントアプリケーション12では、例えば、サーバアプリケーション21に接続した後に、サーバアプリケーション21からの、セキュアチップ情報その他の初期情報の要求を待って、その要求に応じて、セキュアチップ11からセキュアチップ情報を取得し、初期情報に含めて、サーバアプリケーション21に送信することもできる。
但し、図10に示したように、クライアントアプリケーション12において、セキュアチップ11からセキュアチップ情報を取得しておき、そのセキュアチップ情報を含む初期情報を、サーバ接続要求とともに、サーバアプリケーション21に送信する場合の方が、クライアントアプリケーション12とサーバアプリケーション21との間のやりとりが少なくて済み、処理に要する時間の短縮化を図ることが可能となる。
さらに、この場合、サーバ側装置2は、クライアント側装置1からのアクセスの開始と同時に、クライアント情報を受信することができるので、そのクライアント情報に基づき、クライアントアプリケーション12に適したコマンドやメッセージ(画面等のGUI(Graphical User Interface)など)の送受信を行うことが可能となる。ここで、クライアントアプリケーション12に適したコマンドやメッセージとは、例えば、内容がクライアントアプリケーション12に適したコマンドやメッセージ、あるいは、一度に送受信する長さや個数がクライアントアプリケーション12に適したコマンドやメッセージなどを意味する。
サーバアプリケーション21は、ステップS41において、クライアントアプリケーション23からのサーバ接続要求と初期情報を受信し、クライアント側装置1に必要なサービスを提供するためのアプリケーション(ソフトウェア)を起動して、ステップS42に進む。
ステップS42では、サーバアプリケーション21は、ステップS41で受信した初期情報に含まれるセキュアチップ情報とクライアント情報を、セキュアサーバ22のセキュアチップマネージャモジュール102に供給する。セキュアチップマネージャモジュール102は、ステップS61において、サーバアプリケーション21からのセキュアチップ情報とクライアント情報を受信し、そのうちのセキュアチップ情報を、セキュアチップ処理モジュール23に送信する。
セキュアチップ処理モジュール23は、ステップS81において、セキュアチップマネージャモジュール102からのセキュアチップ情報に基づき、セキュアチップ11からのアクセスに対する処理の範囲を設定する。
即ち、セキュアチップ処理モジュール23は、様々なセキュアチップやサービスの暗号関連処理を行うことができるようになっており、さらに、その様々なセキュアチップやサービスの暗号関連処理に必要な鍵を内蔵している。そして、セキュアチップ11が、例えば、電子マネーサービスのみの提供を受けうるものであれば、セキュアチップ処理モジュール23は、セキュアチップ11からのアクセスに対して、電子マネーサービスを提供するのに必要な暗号関連処理のみを行う(許可する)。また、電子マネーサービスにおけるデータの暗号化/復号に使用する鍵があらかじめ決まっている場合には、セキュアチップ処理モジュール23は、セキュアチップ11からのアクセスに対して、電子マネーサービスにおけるデータの暗号化/復号に使用する鍵のみの使用のみを許可し、他のサービスにおけるデータの暗号化/復号に使用する鍵の使用は許可しない。
一方、セキュアチップマネージャモジュール102は、ステップS61でサーバアプリケーション21から受信したセキュアチップ情報とクライアント情報に基づき、セキュアチップ11とクライアントアプリケーション12に対応した処理を行う状態となる。
即ち、セキュアチップマネージャモジュール102は、各種のセキュアチップやクライアントアプリケーションに対応した処理を行うことができるようになっており、セキュアチップマネージャモジュール102は、ステップS61でサーバアプリケーション21から受信したセキュアチップ情報とクライアント情報に基づき、セキュアチップ11とクライアントアプリケーション12に対応した処理を行う状態となる。
例えば、セキュアチップマネージャモジュール102は、セキュアチップ11に対する処理を行うのに必要なリソースを確保するとともに、クライアント側装置1のセキュアチップ11の種別(例えば、ICカードに内蔵されるセキュアチップであるとか、携帯電話機に内蔵されるセキュアチップであるとかなど)に対応するコマンド体系を表す情報であるコマンド種別と、セキュアチップ11の暗号処理種別を、セキュアチップ情報等から認識し、その後は、クライアント側装置1に対して送信されるコマンド等に対して、セキュアチップ11の暗号処理種別に対応した暗号化等を行う状態となる。
そして、セキュアチップマネージャモジュール102は、ステップS62において、セキュアチップコマンドモジュール101に対し、初期化の指令を、セキュアチップ11のコマンド種別とともに送信し、セキュアチップコマンドモジュール101は、ステップS51において、その指令とコマンド種別を受信して、自身の状態を、セキュアチップ11に対応した処理を行うことができるように初期化する。即ち、これにより、セキュアチップコマンドモジュール101は、サーバアプリケーション21からのコマンドの作成の依頼に対して、セキュアチップ11用のコマンド(セキュアチップ11のコマンド種別が表すコマンド体系のコマンド)を作成する状態となる。
その後、サーバアプリケーション21は、例えば、セキュアチップ処理モジュール23との間で、いわゆるなりすましを防止するための相互認証を行い、その相互認証が成功すると、セキュアチップ11とセキュアチップ処理モジュール23との間でも、なりすましを防止するための認証が行われる。
ここで、セキュアチップ11とセキュアチップ処理モジュール23との間の認証は、セキュアチップ11の暗号処理種別に基づいて行われる。即ち、セキュアチップ11の暗号処理種別が、例えば、チャレンジアンドレスポンス方式の相互認証を表している場合には、セキュアチップ11とセキュアチップ処理モジュール23との間では、チャレンジアンドレスポンス方式による相互認証が行われる。なお、チャレンジアンドレスポンス方式では、セキュアチップ処理モジュール23は(セキュアチップ11でも同様)、乱数を発生し、その乱数を暗号化して、セキュアチップ11との間でやりとりすることにより、相互認証を行う。この相互認証が成功すると、例えば、その相互認証時に、セキュアチップ処理モジュール23が発生した乱数が、セキュアチップ11とセキュアチップ処理モジュール23との間のセッションを識別するためのセッションキーとされる。
この後、サーバ側装置2では、セキュリティチップ11に送信するコマンド(コマンドに付随するパラメータその他のデータを含む)は、セッションキーを鍵として暗号化されて、クライアント側装置1に送信される。また、クライアント側装置1でも、セキュリティチップ11からサーバ側装置2に送信されるデータ等は、セキュリティチップ11において、セッションキーを鍵として暗号化されて、サーバ側装置2に送信される。
このように、クライアント側装置1とサーバ側装置2それぞれにおいて、データ等がセッションキーを鍵として暗号化されて送受信されることにより、そのクライアント側装置1とサーバ側装置2との間の通信路の暗号化、即ち、いわばVPN(Virtual Private Network)が実現される。なお、セッションキーを鍵として用いた暗号化は、セキュアチップ11の暗号処理種別が表すアルゴリズムにしたがって行われる。
サーバアプリケーション21は、ステップS43において、セキュアチップ11に送信するコマンドの作成の要求を、セキュアチップコマンドモジュール101に送信し、セキュアチップコマンドモジュール101は、ステップS52において、サーバアプリケーション21からのコマンドの作成の要求を受信する。
そして、セキュアチップコマンドモジュール101は、ステップS53において、サーバアプリケーション21からのコマンドの作成の要求に応じて、セキュアチップ11用のコマンドを作成し、そのコマンドを暗号化して暗号情報とすることの要求を、セキュアチップマネージャモジュール102に供給する。セキュアチップマネージャモジュール102は、ステップS63において、セキュアチップコマンドモジュール101からの、コマンドを暗号化して暗号情報とすることの要求を受信して、ステップS64に進み、その要求を、セキュアチップ処理モジュール23に送信する。
即ち、いまの場合、通信路の暗号化に用いられるセッションキーは、セキュアチップ処理モジュール23内にあるので、セキュアチップマネージャモジュール102は、そのセッションキーによるコマンドの暗号化を、セキュアチップ処理モジュール23に要求する。
セキュアチップ処理モジュール23は、ステップS82において、セキュアチップマネージャモジュール102からの要求を受信し、その要求に応じて、コマンドを暗号化する。そして、セキュアチップ処理モジュール23は、ステップS83において、そのコマンドの暗号化により得られた暗号情報を、セキュアチップマネージャモジュール102に送信し、セキュアチップマネージャモジュール102は、ステップS65において、セキュアチップ処理モジュール23からの暗号情報を受信する。
そして、セキュアチップマネージャモジュール102は、ステップS66において、セキュアチップ処理モジュール23から受信した暗号情報を、セキュアチップコマンドモジュール101に送信する。
セキュアチップコマンドモジュール101は、ステップS54において、セキュアチップマネージャモジュール102からの暗号情報を受信して、ステップS55に進み、その暗号情報(暗号化されたコマンド)を、サーバアプリケーション21に送信する。
サーバアプリケーション21は、ステップS44において、セキュアチップコマンドモジュール101からの暗号情報を受信して、ステップS45に進み、その暗号情報(暗号化されたコマンド)を、例えば、クライアント側装置1に対するメッセージであるデバイス用データとともに、クライアントアプリケーション12に送信する。
クライアントアプリケーション12は、ステップS24において、サーバアプリケーション21からの暗号情報およびデバイス用データを受信して、ステップS25に進み、暗号情報を、セキュアチップ11に送信する。
セキュアチップ11は、ステップS13において、クライアントアプリケーション12からの暗号情報を受信し、その暗号情報を、セッションキーを用いてコマンドに復号する。さらに、セキュアチップ11は、そのコマンドに応じた処理を実行し、ステップS14において、そのコマンドに対応するレスポンスとしてのレスポンスデータを、クライアントアプリケーション12に送信する。なお、レスポンスデータは、セキュアチップ11において、必要に応じて、セッションキーを用いて暗号化されている。
クライアントアプリケーション12は、ステップS26において、セキュアチップ11からのレスポンスデータを受信して、ステップS27に進み、そのレスポンスデータを、サーバアプリケーション21に送信する。
サーバアプリケーション21は、クライアントアプリケーション12からのレスポンスデータを受信し、そのレスポンスデータに応じた処理を行い、あるいは、そのレスポンスデータを、セキュアチップコマンドモジュール101、セキュアチップマネージャモジュール102に送信する。
なお、ユーザがクライアント側装置1を操作し、何らかのデータ(ユーザ入力データ)を入力した場合には、クライアントアプリケーション12は、そのデータを、サーバアプリケーション21に送信する。
一方、セキュアチップマネージャモジュール102は、ステップS67において、セキュアチップ処理モジュールに対して、セッションキーの要求を送信する。
セキュアチップ処理モジュール23は、ステップS84において、セキュアチップマネージャモジュール102からのセッションキーの要求を受信して、ステップS85に進み、その要求に応じて、セキュアチップ11との相互認証で得たセッションキーを、セキュアチップマネージャモジュール102に送信する。
セキュアチップマネージャモジュール102は、ステップS68において、セキュアチップ処理モジュール23からのセッションキーを受信して保持する。
ここで、その後は、セッションキーを用いた暗号化は、セキュアチップマネージャモジュール102で行われ、より高い秘匿性が要求される暗号化は、セキュアチップ処理モジュール23内で行われる。
従って、このように、セッションキーを用いた暗号化を、セキュアチップマネージャモジュール102で行い、より高い秘匿性が要求される暗号化(暗号化を利用して行われる相互認証や、パッケージの作成などを含む)だけを、セキュアチップ処理モジュール23で行うようにすることにより、セキュアチップ処理モジュール23において、すべての暗号化(暗号関連処理)を行う場合に比較して、セキュアチップ処理モジュール23の負荷を軽減することができ、その結果、セキュアチップ処理モジュール23における処理時間を短くすることができる。
なお、耐タンパ性のあるセキュアチップ処理モジュール23を複数設け、その複数のセキュアチップ処理モジュール23に、異なるセキュアチップに対する暗号関連処理を分散して行わせることにより、1つあたりのセキュアチップ処理モジュール23の負荷を軽減することができる。
その後、サーバアプリケーション21は、ステップS46において、セキュアチップ11に送信するコマンドの作成の要求を、セキュアチップコマンドモジュール101に送信し、セキュアチップコマンドモジュール101は、ステップS56において、サーバアプリケーション21からのコマンドの作成の要求を受信する。
そして、セキュアチップコマンドモジュール101は、ステップS57において、サーバアプリケーション21からのコマンドの作成の要求に応じて、セキュアチップ11用のコマンドを作成し、そのコマンドを暗号化して暗号情報とすることの要求を、セキュアチップマネージャモジュール102に供給する。セキュアチップマネージャモジュール102は、ステップS69において、セキュアチップコマンドモジュール101からの、コマンドを暗号化して暗号情報とすることの要求を受信する。
セキュアチップコマンドモジュール101からの要求が、特別なコマンド以外のコマンドの暗号化の要求である場合には、セキュアチップマネージャモジュール102は、保持しているセッションキーで、コマンドを暗号化し、ステップS72において、その結果得られる暗号情報を、セキュアチップコマンドモジュール101に送信する。
一方、セキュアチップコマンドモジュール101からの要求が、特別なコマンドの暗号化の要求である場合、セキュアチップマネージャモジュール102は、ステップS70において、その特別なコマンドを実行する権利である実行権を表す権利書(権利証)(のデータ)の要求を、セキュアチップ処理モジュール23に送信する。
ここで、特別なコマンドとしては、例えば、セキュアチップ11に対するエリア定義領域やサービス定義領域(図8)の登録や削除を要求するコマンドなどがある。
セキュアチップ処理モジュール23は、ステップS86において、セキュアチップマネージャモジュール102からの要求を受信し、その要求に応じて、その特別なコマンドを実行する実行権を表す権利書(権利証)(のデータ)を生成して暗号化する。さらに、セキュアチップ処理モジュール23は、その権利書が正当なものであることを証明する証明書(のデータ)を、権利書の暗号化結果に付加し、ステップS87において、その証明書と権利書(の暗号化結果)とを、パッケージとして、セキュアチップマネージャモジュール102に送信する。
なお、セキュアチップ処理モジュール23は、過去に得たパッケージを記憶しており、セキュアチップマネージャモジュール102からの要求が、過去に生成された権利書を要求するものであり、その権利書を含むパッケージが記憶されている場合には、単に、そのパッケージを、セキュアチップマネージャモジュール102に送信する。
セキュアチップマネージャモジュール102は、ステップS71において、セキュアチップ処理モジュール23からのパッケージを受信して、ステップS72に進み、特別なコマンドをセクションキーで暗号化し、その暗号化結果とパッケージとをセットにした暗号情報を、セキュアチップコマンドモジュール101に送信する。
セキュアチップコマンドモジュール101は、ステップS58において、セキュアチップマネージャモジュール102からの暗号情報を受信して、ステップS59に進み、その暗号情報を、サーバアプリケーション21に送信する。
サーバアプリケーション21は、ステップS47において、セキュアチップコマンドモジュール101からの暗号情報を受信して、ステップS48に進み、その暗号情報を、例えば、クライアント側装置1に対するメッセージであるデバイス用データとともに、クライアントアプリケーション12に送信する。
クライアントアプリケーション12は、ステップS28において、サーバアプリケーション21からの暗号情報およびデバイス用データを受信して、ステップS29に進み、暗号情報を、セキュアチップ11に送信する。
セキュアチップ11は、ステップS15において、クライアントアプリケーション12からの暗号情報を受信し、その暗号情報を、セクションキーを用いて、コマンドに復号する。さらに、セキュアチップ11は、必要に応じて、コマンドの実行権を確認した上で、そのコマンドに応じた処理を実行し、ステップS16において、そのコマンドに対応するレスポンスとしてのレスポンスデータを、クライアントアプリケーション12に送信する。
クライアントアプリケーション12は、ステップS30において、セキュアチップ11からのレスポンスデータを受信して、ステップS31に進み、そのレスポンスデータを、サーバアプリケーション21に送信する。
サーバアプリケーション21は、ステップS49において、クライアントアプリケーション12からのレスポンスデータを受信し、そのレスポンスデータに応じた処理を行う。
その後、サーバアプリケーション21は、クライアント側装置1との通信を終了する場合には、ステップS50において、その旨のメッセージとしての終了通知を、クライアントアプリケーション12を送信する。クライアントアプリケーション12は、ステップS32において、サーバアプリケーション21からの終了通知を受信する。
上述したように、セキュアサーバ22(セキュアチップコマンドモジュール101およびセキュアチップマネージャモジュール102)と、セキュアチップ処理モジュール23とは、例えば、暗号処理種別その他の仕様が異なる複数のセキュアチップ11に対応することができるように構成することができる。そして、セキュアサーバ22とセキュアチップ処理モジュール23において、クライアント側装置1から送信されてくるセキュアチップ11のセキュアチップ情報に応じて、セキュアチップ11に対応した処理を行うことにより、暗号処理種別その他の仕様が異なるセキュアチップ11ごとに、サーバアプリケーション21を変更する必要がなくなる。即ち、各種の仕様のセキュリティチップ11に対して、同一のサーバアプリケーション21を使用することができる。
次に、サービス提供者が、サーバ側装置2を用いて、新たなサービスの提供を開始する場合には、一般に、サーバ側装置2の負荷試験が行われる。
図11は、サーバ側装置2の負荷試験を行う場合のサーバクライアントシステムの構成例を示している。
図11においては、サーバ側装置2に対して、多数のクライアント側装置1がネットワーク3を介して接続されている。そして、負荷試験は、多数のクライアント側装置1が、ネットワーク3を介してサーバ装置2にアクセスすることで行われる。
図11で説明した負荷試験によれば、多数のクライアント側装置1を用意する必要がある。
そこで、図12は、多数のクライアント側装置1を用いずに、擬似的に、多数のクライアント側装置1がサーバ側装置2にアクセスした状態をつくり出すことによって負荷試験を行う場合のサーバクライアントシステムの構成例を示している。
図12においては、1台のクライアント側装置1、サーバ側装置2、および負荷発生用クライアント側装置111が、ネットワーク3を介して接続されている。
負荷発生用クライアント側装置111は、クライアント側装置1とサーバ側装置2との間のネットワーク3を介しての通信をモニタし、クライアント側装置1とサーバ側装置2とでやりとりされたデータを記憶する。そして、負荷発生用クライアント側装置111は、クライアント側装置1とサーバ側装置2とでやりとりされたデータのうちの、クライアント側装置1がサーバ側装置2に送信したデータを、ネットワーク3を介し、サーバ側装置2に繰り返し送信し、これにより、多数のクライアント側装置1がサーバ側装置2にアクセスした状態をつくり出す。
図13は、負荷発生用クライアント側装置111の機能的な構成例を示している。なお、負荷発生用クライアント側装置111のハードウェアの構成例は、例えば、クライアント側装置1のPC32(図5)と同様である。
負荷発生ツール112は、クライアント側装置1とサーバ側装置2との間でやりとりされるデータをキャプチャするソフトウェアであり、クライアント側装置1とサーバ側装置2との間の通信をモニタし、クライアント側装置1とサーバ側装置2とでやりとりされたデータを、記憶部113に供給する。なお、負荷発生ツール112としては、通信路をモニタする市販のツールなどを用いることができる。
記憶部113は、負荷発生ツール112からのデータを記憶する。なお、負荷発生ツール112から記憶部113に供給されるデータは、クライアント側装置1とサーバ側装置2とでやりとりされたデータであるが、記憶部113では、そのデータのうちの、クライアント側装置1がサーバ側装置2に送信したデータだけを記憶するようにすることができる。
通信制御部114は、記憶部113に記憶された、クライアント側装置1がサーバ側装置2に送信したデータをコピーし、ネットワーク3を介して、サーバ側装置2に、繰り返し送信する。
ところで、サーバ側装置2においては、暗号化や復号などの暗号化に関連する暗号関連処理が、セッション単位で変化する。
即ち、サーバ側装置2において、例えば、セキュアチップ処理モジュール23は、セッションごとに、乱数を発生し、その乱数を用いて相互認証を行う。また、サーバ側装置2では、セキュアチップ処理モジュール23における相互認証の成功後、例えば、その相互認証に用いられた乱数をセッションキーとして、そのセッションキーが、上述した通信路の暗号化に用いられる。
一方、負荷発生用クライアント側装置111(図13)では、通信制御部114が、記憶部113に記憶されたデータをコピーし、サーバ側装置2に繰り返し送信するため、サーバ側装置2でセッションごとに発生された乱数を用いて行われる相互認証に失敗し、サーバ側装置2において正常な処理が行われる場合の負荷試験を行うことができないことになる。
そこで、図14は、サーバ側装置2において正常な処理が行われる負荷試験を行うことができるようにするサーバ側装置2の機能的な構成例を示している。なお、図中、図2や図9に示した場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図14のサーバ側装置2は、モジュール選択部121と負荷試験用セキュアチップ処理モジュール122が新たに設けられている他は、図2や図9における場合と同様に構成されている。
モジュール選択部121は、セキュアチップ処理モジュール23と負荷試験用セキュアチップ処理モジュール122のうちの一方を選択してセキュアサーバ22に接続し、これにより、選択した方に、クライアント側装置1や負荷発生用クライアント側装置111とやりとりするデータに対する暗号関連処理を行わせる。
負荷試験用セキュアチップ処理モジュール122は、負荷試験用の暗号関連処理を行う。即ち、負荷試験用セキュアチップ処理モジュール122は、例えば、セッション単位で変化しない暗号関連処理、つまり、セッションごとに同一の暗号関連処理を行う。
次に、図15のフローチャートを参照して、図14のサーバ側装置2の、負荷試験時の処理について説明する。
まず最初に、ステップS101において、モジュール選択部121は、セキュアチップ処理モジュール23と負荷試験用セキュアチップ処理モジュール122のうちの、負荷試験用セキュアチップ処理モジュール122を選択してセキュアサーバ22に接続し、これにより、サーバ側装置2を、負荷試験用セキュアチップ処理モジュール122にクライアント側装置1や負荷発生用クライアント側装置111とやりとりするデータに対する暗号関連処理を行わせる状態にする。
なお、セキュアチップ処理モジュール23と負荷試験用セキュアチップ処理モジュール122のうちの一方を選択するように、モジュール選択部121を制御することは、例えば、サービス提供者(のオペレータ)が、サーバ側装置2を直接操作することによって行うこともできるし、クライアント側装置1や負荷発生用クライアント側装置111から、ネットワーク3を介してサーバ側装置2にアクセスすることによって行うこともできる。
サーバ側装置2では、その後、ステップS101からS102に進み、クライアント側装置1や負荷発生用クライアント側装置111からのアクセスに対して、例えば、図10で説明した処理(サーバ側処理)が行われる。但し、サーバ側装置2において、図10で説明した処理のうちの、セキュアチップ処理モジュール23が行う処理は、負荷試験用セキュアチップ処理モジュール122で行われ、これにより、セキュアチップ処理モジュール23が行う処理として、負荷試験用セキュアチップ処理モジュール122において、セッションに依存しない暗号関連処理、即ち、例えば、異なるセッションに対して、常に一定の暗号情報を作成する処理(同一のデータに対して、常に、同一の暗号化結果が得られる処理)が行われる。
一方、サービス提供者(のオペレータ)は、クライアント側装置1を操作し、これにより、クライアント側装置1とサーバ側装置2との間で、サービスを提供するためのデータのやりとりを行わせる。なお、このとき、サーバ側装置2では、上述したように、負荷試験用セキュアチップ処理モジュール122において、セッションに依存しない暗号関連処理が行われる。
また、サービス提供者(のオペレータ)は、負荷発生用クライアント側装置111(図13)を操作し、負荷発生ツール112に、クライアント側装置1とサーバ側装置2との間でやりとりされるデータをキャプチャさせ、記憶部113に供給して記憶させる。
さらに、サービス提供者(のオペレータ)は、負荷発生用クライアント側装置111(図13)を操作し、記憶部113に記憶されたデータのうちの、クライアント側装置1がサーバ側装置2に送信したデータをコピーし、クライアント側装置1がサーバ側装置2に送信したのと同様の手順で、サーバ側装置2に送信させる。
負荷発生用クライアント側装置111では、記憶部113に記憶されたデータのコピーと、サーバ側装置2への送信とを、多重的(並列的)に、多数回繰り返し、これにより、擬似的に、多数のクライアント側装置1がサーバ側装置2にアクセスした状態をつくり出す。
サーバ側装置2においては、上述したように、セキュアチップ処理モジュール23と負荷試験用セキュアチップ処理モジュール122のうちの、負荷試験用セキュアチップ処理モジュール122が選択され、セッションに依存しない暗号関連処理が行われるので、即ち、例えば、すべてのセッションについて、同一の値(乱数)を用いて相互認証を行い、さらに、その相互認証の成功後は、その値がセッションキーとされるので、相互認証に失敗することにより、サーバ側装置2において正常な処理が行われなくなることを防止することができる。
従って、サーバ側装置2において正常な処理が行われる場合の負荷試験を、セキュア、かつ容易に行うことができる。
即ち、クライアント側装置1の処理をエミュレートするエミュレータを用い、そのエミュレータを、サービス提供者に貸し出すといった、クライアント側装置1の暗号関連処理の内容(ひいては、サーバ側装置2の暗号関連処理の内容)が外部に漏洩するおそれが生じるようなことをせずに(セキュアに)、サーバ側装置2の負荷試験を行うことができる。
さらに、多数のクライアント側装置1を用意せずに、通信路をモニタする市販のツールなどの負荷発生ツール112を利用して(容易に)、サーバ側装置2の負荷試験を行うことができる。
なお、サーバ側装置2の負荷試験が終了し、通常の運用がされるときには、モジュール選択部121は、セキュアチップ処理モジュール23を選択するように制御される。この制御は、例えば、サービス提供者(のオペレータ)が、サーバ側装置2を直接操作することによって行うこともできるし、クライアント側装置1や負荷発生用クライアント側装置111から、ネットワーク3を介してサーバ側装置2にアクセスすることによって行うこともできる。
次に、図16は、サーバ側装置2において正常な処理が行われる負荷試験を行うことができるようにするサーバ側装置2の他の機能的な構成例を示している。なお、図中、図2や図9に示した場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図16においては、サーバ側装置2のセキュアチップ処理モジュール23が、モジュール選択部131、鍵/乱数発生モジュール132、および負荷試験用鍵/乱数発生モジュール133を内蔵している。
モジュール選択部131は、鍵/乱数発生モジュール132と負荷試験用鍵/乱数発生モジュール133のうちの一方を選択してセキュアサーバ22に接続し、これにより、選択した方に、クライアント側装置1や負荷発生用クライアント側装置111とやりとりするデータに対する暗号関連処理、即ち、ここでは、特に、データの暗号化/復号に用いる鍵の発生や、相互認証に用いる乱数の発生を行わせる。
鍵/乱数発生モジュール132は、通常時(負荷試験時等でない、サーバ側装置2が通常の運用をされるとき)に、モジュール選択部131によって選択され、セッションごとに異なる鍵や乱数を発生する。
負荷試験用鍵/乱数発生モジュール133は、負荷試験時に、モジュール選択部131によって選択され、セッションに依存しない鍵や乱数を発生する。
なお、図16のセキュリティチップ処理モジュール23では、鍵/乱数発生モジュール132と負荷試験用鍵/乱数発生モジュール133のうちの、モジュール選択部131が選択している方が発生する鍵や乱数を用いて、データの暗号化/復号や相互認証などが行われる。
次に、図17のフローチャートを参照して、図16のサーバ側装置2の、負荷試験時の処理について説明する。
まず最初に、ステップS111において、モジュール選択部131は、鍵/乱数発生モジュール132と負荷試験用鍵/乱数発生モジュール133のうちの、負荷試験用鍵/乱数発生モジュール133を選択してセキュアサーバ22に接続し、これにより、サーバ側装置2を、負荷試験用鍵/乱数発生モジュール133にクライアント側装置1や負荷発生用クライアント側装置111とやりとりするデータに対する暗号関連処理としての鍵や乱数の発生を行わせる状態にする。
なお、鍵/乱数発生モジュール132と負荷試験用鍵/乱数発生モジュール133のうちの一方を選択するように、モジュール選択部131を制御することは、例えば、サービス提供者(のオペレータ)が、サーバ側装置2を直接操作することによって行うこともできるし、クライアント側装置1や負荷発生用クライアント側装置111から、ネットワーク3を介してサーバ側装置2にアクセスすることによって行うこともできる。
サーバ側装置2では、その後、ステップS111からS112に進み、クライアント側装置1や負荷発生用クライアント側装置111からのアクセスに対して、例えば、図10で説明した処理(サーバ側処理)が行われる。但し、サーバ側装置2において、データの暗号化/復号に用いられる鍵や、相互認証に用いられる乱数の発生は、負荷試験用鍵/乱数発生モジュール133で行われ、これにより、セキュアチップ処理モジュール23では、セッションに依存しない鍵や乱数を用いて、データの暗号化/復号鍵や相互認証が行われる。
一方、サービス提供者(のオペレータ)は、クライアント側装置1を操作し、これにより、クライアント側装置1とサーバ側装置2との間で、サービスを提供するためのデータのやりとりを行わせる。なお、このとき、サーバ側装置2では、上述したように、負荷試験用鍵/乱数発生モジュール133において、セッションに依存しない鍵や乱数が発生され、セキュアチップ処理モジュール23において、その鍵や乱数を用いて、データの暗号化/復号鍵や相互認証、即ち、セッションに依存しない暗号化/復号鍵や、相互認証が行われる。
また、サービス提供者(のオペレータ)は、負荷発生用クライアント側装置111(図13)を操作し、負荷発生ツール112に、クライアント側装置1とサーバ側装置2との間でやりとりされるデータをキャプチャさせ、記憶部113に供給して記憶させる。
さらに、サービス提供者(のオペレータ)は、負荷発生用クライアント側装置111(図13)を操作し、記憶部113に記憶されたデータのうちの、クライアント側装置1がサーバ側装置2に送信したデータをコピーし、クライアント側装置1がサーバ側装置2に送信したのと同様の手順で、サーバ側装置2に送信させる。
負荷発生用クライアント側装置111では、記憶部113に記憶されたデータのコピーと、サーバ側装置2への送信とを、多重的に、多数回繰り返し、これにより、擬似的に、多数のクライアント側装置1がサーバ側装置2にアクセスした状態をつくり出す。
サーバ側装置2においては、上述したように、鍵/乱数発生モジュール132と負荷試験用鍵/乱数発生モジュール133のうちの、負荷試験用鍵/乱数発生モジュール133が選択され、セッションに依存しない鍵や乱数が発生され、その鍵や乱数を用いて、データの暗号化/復号鍵や相互認証が行われるので、サーバ側装置2においては、負荷発生用クライアント側装置111から送信されてくる、クライアント側装置1がサーバ側装置2に送信したデータのコピーを対象に、正常な処理を行うことができる。
従って、図16のサーバ側装置2でも、図14における場合と同様に、サーバ側装置2において正常な処理が行われる場合の負荷試験を、セキュア、かつ容易に行うことができる。
なお、サーバ側装置2の負荷試験が終了し、通常の運用がされるときには、モジュール選択部131は、鍵/乱数発生モジュール132を選択するように制御される。この制御は、例えば、サービス提供者(のオペレータ)が、サーバ側装置2を直接操作することによって行うこともできるし、クライアント側装置1や負荷発生用クライアント側装置111から、ネットワーク3を介してサーバ側装置2にアクセスすることによって行うこともできる。
ところで、サーバ側装置2のサーバアプリケーション21(図2)が提供するサービスによっては、サーバ側装置2において、クライアント側装置1の情報が管理される場合があり、この場合、クライアント側装置1とサーバ側装置2との間のやりとりによって、サーバ側装置2で管理されているクライアント側装置1の情報が書き換えられることがある。
一方、負荷発生用クライアント側装置111は、上述したように、クライアント側装置1がサーバ側装置2に送信したデータのコピーを送信するため、負荷発生用クライアント側装置111がサーバ側装置2に送信するデータは、クライアント側装置1がサーバ側装置2に送信したデータのまま変化しない。
従って、サーバ側装置2で管理されているクライアント側装置1の情報が変化する(書き換えられる)のに対して、負荷発生用クライアント側装置111からサーバ側装置2に送信されるデータは変化しないため、例えば、クライアント側装置1がサーバ側装置2に送信するデータに、クライアント側装置1の情報が含まれ、かつ、サーバ側装置2が、自身が管理するクライアント側装置1の情報と、クライアント側装置1から送信されてきたデータに含まれるクライアント側装置1の情報との一致性を判定し、その一致性がある場合にのみ正常な処理を行うときには、サーバ側装置2において、正常な処理が行われず、その結果、サーバ側装置2において正常な処理が行われる場合の負荷試験を行うことができないことがある。
具体的には、例えば、サーバ側装置2のサーバアプリケーション21が、電子マネーサービスを提供するアプリケーションで、クライアント側装置1(図2)のユーザが、そのクライアント側装置1(のセキュアチップ11)に電子マネーをチャージしておき、サーバ側装置2が、クライアント側装置1にチャージされている電子マネーの残高の範囲内で、電子マネーによる商品を購入することができる電子マネーサービスを提供することとする。
また、クライアント側装置1は、電子マネーサービスの提供を受けるにあたって、自身(クライアント側装置1(のセキュアチップ11))にチャージされている電子マネーの残高を含むデータを、サーバ側装置2に送信するものとする。
さらに、サーバ側装置2は、電子マネーサービスの提供にあたって、クライアント側装置1(のセキュアチップ11)にチャージされている電子マネーの残高を管理し、クライアント側装置1から送信されているデータに含まれる、クライアント側装置1にチャージされている電子マネーの残高と、サーバ側装置2が管理する残高とが一致する場合にのみ、電子マネーの残高からの商品の代金の減額等の処理を行うものとする。
この場合、例えば、クライアント側装置1に、10000円の電子マネーがチャージされており、その電子マネーを用いて、100円の商品を購入する場合、クライアント側装置1からサーバ側装置2には、クライアント側装置1にチャージされている電子マネーの残高である10000円を含むデータが送信される。サーバ側装置2では、クライアント側装置1から送信されてきたデータに含まれる10000円が、サーバ側装置2が管理するクライアント側装置1の電子マネーの残高と一致すれば、10000円から、商品の代金である100円を減額する処理が行われる。さらに、サーバ側装置2では、その減額の結果である9900円によって、クライアント側装置1の電子マネーの残高が更新される。即ち、サーバ側装置2では、サーバ側装置2が管理している(クライアント側装置1の)電子マネーの残高が、10000円から9900円に書き換えられる。
また、サーバ側装置2は、クライアント側装置1に対して、チャージされている電子マネーの残高を9900円に更新するコマンドを送信し、クライアント側装置1は、サーバ側装置2からのコマンドに応じて、電子マネーの残高を更新する。即ち、クライアント側装置1では、自身が記憶している電子マネーの残高が、10000円から9900円に書き換えられる。
従って、クライアント側装置1において、次回の商品購入時には、更新後の残高である9900円が送信され、この残高は、サーバ側装置2で管理されているクライアント側装置1の電子マネーの残高と一致するので、サーバ側装置2では、次回の商品購入時においても、前回と同様に、商品の代金を減額する処理等の正常な処理が行われる。
以上のように、サーバ側装置2が、自身が管理するクライアント側装置1の情報と、クライアント側装置1から送信されてきたデータに含まれるクライアント側装置1の情報との一致性を判定し、その一致性がある場合にのみ正常な処理を行う場合、負荷試験時に、負荷発生用クライアント側装置111において、クライアント側装置1がサーバ側装置2に送信したデータの、いわゆるデットコピーが送信されると、サーバ側装置2において、正常な処理が行われないことになる。
即ち、負荷発生用クライアント側装置111は、クライアント側装置1とサーバ側装置2との間のデータのやりとりをモニタし、クライアント側装置1からサーバ側装置2に送信されたデータのコピーを送信する。従って、負荷発生用クライアント側装置111において、例えば、クライアント側装置1に10000円の電子マネーがチャージされていたときの、クライアント側装置1とサーバ側装置2との間のやりとりがモニタされた場合には、負荷発生用クライアント側装置111は、クライアント側装置1(負荷発生用クライアント側装置111)にチャージされている電子マネーの残高として、常に、10000円を送信する。
この電子マネーの残高(10000円)は、サーバ側装置2で管理されている、商品の代金が減額された残高(9900円)と一致しないため、サーバ側装置2では、商品の代金を減額する処理等の正常な処理が行われず、その結果、サーバ側装置2において正常な処理が行われる場合の負荷試験を行うことができない。
そこで、サーバ側装置2において、サーバアプリケーション21が行う処理のうちの、電子マネーのサービスを提供するための処理(例えば、上述したような残高の一致性を判定する処理など)をバイパスして、負荷試験を行う方法がある。
しかしながら、電子マネーのサービスを提供するための処理をバイパスして、負荷試験を行ったのでは、サーバ側装置2において、電子マネーのサービスを提供するための処理を含めた、実際の運用時にサーバ側装置2にかかるすべての負荷を考慮した負荷試験を行うことができない。
そこで、図18は、負荷発生用クライアント側装置111の他の機能的な構成例を示している。なお、図中、図13における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図18の負荷発生用クライアント側装置111は、負荷用暗号/復号ロジック部141および通信データ書き換えロジック部142が新たに設けられている他は、図13における場合と同様に構成されている。
負荷用暗号/復号ロジック部141は、記憶部113に記憶された、クライアント側装置1がサーバ側装置2に送信したデータ(暗号化されたデータ)を読み出して復号し、その結果得られる復号データを、通信データ書き換えロジック部142に供給する。また、負荷用暗号/復号ロジック部141は、通信データ書き換えロジック部142から供給されるデータを暗号化し、その結果得られる暗号情報を、記憶部113に供給して記憶させる。
通信データ書き換えロジック部142は、負荷用暗号/復号ロジック部141から供給される復号データの一部を書き換え、負荷用暗号/復号ロジック部141に供給する。
以上のように構成される負荷発生用クライアント装置111では、負荷用暗号/復号ロジック部141が、記憶部113に記憶されたデータを復号データに復号し、通信データ書き換えロジック部142が、その復号データの一部を書き換え、負荷用暗号/復号ロジック部141に供給する。負荷用暗号/復号ロジック部141は、一部が書き換えられた復号データを暗号情報に暗号化し、記憶部113に記憶させる。そして、通信制御部141は、以上のようにして記憶部113に記憶された、復号データの一部が書き換えられ、暗号化された暗号情報が、サーバ側装置2に送信される。
即ち、クライアント側装置1(図2)では、基本的に、データを、サーバ側装置2に送信する場合に、そのデータが、セキュアチップ11で、暗号情報に暗号化される。従って、負荷発生ツール112によりモニタされ、記憶部113に記憶された、クライアント側装置1からサーバ側装置2に送信されたデータは、暗号情報に暗号化されている。
そこで、負荷用暗号/復号ロジック部141では、記憶部113に記憶された、クライアント側装置1からサーバ側装置2に送信されたデータとしての暗号情報を、元のデータ(いわゆる平文)としての復号データに復号する。
また、記憶部113に記憶された、クライアント側装置1からサーバ側装置2に送信されたデータに、クライアント側装置1の情報が含まれる場合には、上述したように、サーバ側装置2において正常な処理が行われないことがある。
そこで、通信データ書き換えロジック部142では、負荷用暗号/復号ロジック部141からの復号データの一部である、その復号データに含まれるクライアント側装置1の情報を書き換える。
即ち、復号データに含まれるクライアント側装置1の情報が、例えば、クライアント側装置1にチャージされている電子マネーの残高であり、サーバ側装置2のサーバアプリケーション21において、その残高から、例えば、負荷試験用に固定の金額を減額する処理が行われる場合には、通信データ書き換えロジック部142は、復号データに含まれるクライアント側装置1の情報としての、クライアント側装置1にチャージされている電子マネーの残高を、適宜書き換える。
即ち、通信制御部114が、最初に、サーバ側装置2に送信するデータについては、通信データ書き換えロジック部142は、そのデータに含まれる残高を、その残高から、固定の金額を減額した値に書き換える。また、通信制御部114が、2回目に、サーバ側装置2に送信するデータについては、通信データ書き換えロジック部142は、そのデータに含まれる残高を、その残高から、固定の金額の2倍の金額を減額した値に書き換える。さらに、通信制御部114が、3回目に、サーバ側装置2に送信するデータについては、通信データ書き換えロジック部142は、そのデータに含まれる残高を、その残高から、固定の金額の3倍の金額を減額した値に書き換える。以下、同様に、通信データ書き換えロジック部142は、サーバ側装置1に送信されるデータに含まれる残高を、サーバ側装置2で管理されている残高に一致するように書き換えていく。
なお、ここでは、通信制御部114がサーバ側装置2に送信するデータに含まれる残高を書き換えるようにしたが、残高以外の情報(データ)を書き換えるようにすることも可能である。
即ち、例えば、クライアント側装置1のセキュアチップ11が、例えば、ICカード31(図3)に内蔵されており、さらに、クライアント側装置1からサーバ側装置2に送信されるデータに、ICカード31に付されたユニークなIDであるカードIDが含まれるとする。
また、サーバ側装置2は、カードIDに対応付けて、そのカードIDに対応するICカードの電子マネーの残高を管理し、クライアント側装置1からのデータに含まれるカードIDに対応付けられている残高を、商品の代金を減額した減額結果に更新するようになっているものとする。
そして、サーバ側装置2では、負荷試験用に、多数のカードIDに対応付けて、一定額の電子マネーが記憶されており、さらに、クライアント側装置1でも、負荷試験用に、その一定額の電子マネーが記憶されているものとする。
この場合、通信データ書き換えロジック部142において、通信制御部114がサーバ側装置2に送信するデータに含まれるカードID(ICカード31のカードID)を、サーバ側装置2に記憶されている多数のカードIDのそれぞれに順次書き換えることにより、通信制御部114がサーバ側装置2に送信するデータに含まれる残高を書き換えなくても、サーバ側装置2では、正常な処理が行われることになる。
即ち、この場合、負荷試験において、クライアント側装置1がサーバ側装置2に送信するデータに含まれる、クライアント側装置1にチャージされている電子マネーの残高は、サーバ側装置2で多数のカードIDに対応付けて記憶されている電子マネーの残高それぞれに等しい。
従って、通信データ書き換えロジック部142において、クライアント側装置1がサーバ側装置2にデータを送信するごとに、そのデータに含まれるカードIDを、サーバ側装置2に記憶されている多数のカードIDの、まだ、サーバ側装置2に送信するデータに含めていない1つに書き換えることにより、そのデータに含まれる電子マネーの残高と、そのデータに含まれるカードIDに対応付けてサーバ側装置2に記憶されている電子マネーの残高とは、必ず一定額で一致するので、サーバ側装置2では、正常な処理が行われることになる。
次に、図19を参照して、図18の負荷発生用クライアント側装置111の動作について、さらに説明する。
サービス提供者(のオペレータ)は、クライアント側装置1を操作し、これにより、クライアント側装置1とサーバ側装置2との間で、サービスを提供するためのデータのやりとりを行わせる。
ここで、サーバ側装置2では、図15または図17で説明した処理が行われる。
サービス提供者(のオペレータ)は、負荷発生用クライアント側装置111(図18)を操作し、負荷発生ツール112に、クライアント側装置1とサーバ側装置2との間でやりとりされるデータをキャプチャさせ、記憶部113に供給して記憶させる。
さらに、サービス提供者(のオペレータ)は、負荷発生用クライアント側装置111(図18)を操作し、記憶部113に記憶されたデータのうちの、クライアント側装置1がサーバ側装置2に送信したデータをコピーし、その一部を書き換えた上で、クライアント側装置1がサーバ側装置2に送信したのと同様の手順で、サーバ側装置2に送信させる。
即ち、記憶部113は、ステップS121において、そこに記憶されているデータのうちの、クライアント側装置1がサーバ側装置2に送信したデータとしての暗号情報を読み出し、負荷用暗号/復号ロジック部141に供給する。
負荷用暗号/復号ロジック部141は、ステップS131において、記憶部113からの暗号情報を受信して、ステップS132に進み、その暗号情報を復号データに復号する。
なお、サーバ側装置2では、上述したように、セッションに依存しないセッションキーを鍵として用いて暗号化/復号が行われる。従って、負荷試験時には、クライアント側装置1でも、そのようなセッションキーを鍵として用いて暗号化/復号が行われるから、記憶部113に記憶されている暗号情報は、セッションに依存しないセッションキーを鍵として用いて復号することができる。
負荷用暗号/復号ロジック部141は、ステップS132で復号データを得ると、ステップS133に進み、その復号データを、通信データ書き換えロジック部142に送信する。
通信データ書き換えロジック部142は、ステップS141において、負荷用暗号/復号ロジック部141からの復号データを受信して、ステップS142に進み、その復号データの一部、即ち、例えば、その復号データに含まれる電子マネーの残高や、カードIDなど書き換える。
そして、通信データ書き換えロジック部142は、ステップS143において、一部を書き換えた復号データを、負荷用暗号/復号ロジック部141に送信する。
負荷用暗号/復号ロジック部141は、ステップS134において、通信データ書き換えロジック部142からの復号データを受信して、ステップS135に進み、その復号データを暗号情報に暗号化する。
なお、ステップS135の暗号化は、例えば、ステップS132における復号に用いられた鍵を用いて行われる。
負荷用暗号/復号ロジック部141は、ステップS136において、ステップS135で得た暗号情報を、記憶部113に供給する。
記憶部113は、ステップS122において、負荷用暗号/復号ロジック部141からの暗号情報を受信して記憶し、ステップS123に進み、その暗号情報を、送信制御部114に供給する。
通信制御部114は、ステップS151において、記憶部133からの暗号情報を受信して、ステップS152に進み、その暗号情報を、サーバ側装置2に送信する。
図18の負荷発生用クライアント側装置111では、以上のような、記憶部113に記憶されたデータのコピーの一部の書き換えと、その書き換え後のデータの、サーバ側装置2への送信とが、多重的に、多数回繰り返され、これにより、擬似的に、多数のクライアント側装置1がサーバ側装置2にアクセスした状態がつくり出される。
なお、負荷用暗号/復号ロジック部141は、例えば、耐タンパ性のある装置内に設けるようにすることができる。
1 クライアント側装置, 2 サーバ側装置, 3,4 ネットワーク, 11 セキュアチップ, 12 クライアントアプリケーション, 13 R/W, 21 サーバアプリケーション, 22 セキュアサーバ, 23 セキュアチップ処理モジュール, 31 ICカード, 32 PC, 33 コンピュータ, 34 携帯電話機, 41 バス, 42 CPU, 43 ROM, 44 RAM, 45 ハードディスク, 46 出力部, 47 入力部, 48 通信部, 49 ドライブ, 50 入出力インタフェース, 51 リムーバブル記録媒体, 61 バス, 62 CPU, 63 ROM, 64 RAM, 65 ハードディスク, 66 出力部, 67 入力部, 68 通信部, 69 ドライブ, 70 入出力インタフェース, 71 リムーバブル記録媒体, 81 通信処理部, 82 データ処理部, 91 CPU, 92 暗号関連処理部, 93 メモリ, 101 セキュアチップコマンドモジュール, 102 セキュアチップマネージャモジュール, 111 負荷発生用クライアント側装置, 112 負荷発生ツール, 113 記憶部, 114 通信制御部, 121 モジュール選択部, 122 負荷試験用セキュアチップ処理モジュール, 131 モジュール選択部, 132 鍵/乱数発生モジュール, 133 負荷試験用鍵/乱数発生モジュール, 141 負荷用暗号/復号ロジック部, 142 通信データ書き換えロジック部