(57)【要約】      （修正有）【課題】サーバ装置が保持するアプリケーションプログラムに対して設定を行うユーザを、セキィリティの観点から適切に規制できるデータ処理装置を提供する。【解決手段】アプリケーションプログラムＡＰが複数の第１のアプリケーションエレメントデータＡＰＥから構成され、第１のアプリケーションエレメントデータＡＰＥが複数のバージョンを有する場合に、複数のバージョンにそれぞれ対応する複数の第２のアプリケーションエレメントデータＡＰＥと、第１と第２のアプリケーションエレメントデータＡＰＥとの対応関係を管理するバージョン管理用データモジュールＶＭＦと、第１のアプリケーションエレメントデータＡＰＥとそれに対応するバージョン管理用データモジュールＶＭＦとの対応関係を管理する管理データ３０３とを用いて、バージョン管理を行う。【選択図】図９
2008102943.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを実行し、該実行が行われるモジュール内の所定の集積回路との間で暗号化されたデータの授受を行い、前記集積回路と協動して前記集積回路内のメモリからデータの読み出しまたは前記集積回路内のメモリへのデータの書き込みを行う所定のサービスを提供するデータ処理装置であって、
前記授受されるデータを暗号化する複数の第１のデータの各々について複数のバージョンが存在する場合に、前記第１のデータの複数のバージョンを表す情報と前記複数のバージョンにそれぞれ対応する第２のデータとの対応関係を表すバージョン管理用データと、前記第１のデータとそれに対応する前記バージョン管理用データとの対応関係を表す管理データとを記憶する記憶回路と、
前記データ処理装置の内部あるいは外部から指定される前記第１のデータのバージョンを表す情報をキーとして、前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データを参照して、第１のデータ実体または前記第１のデータを識別する情報である前記第２のデータを特定し、前記特定した第２のデータを用いて前記暗号化されたデータの復号を行い、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う処理回路と
を有するデータ処理装置。
【請求項２】
前記処理回路は、前記バージョン管理用データに含まれるバージョン指定データによって指定されたバージョンに対応する前記第２のデータを用いて前記所定のサービスに関する処理を行う、
請求項１に記載のデータ処理装置。
【請求項３】
前記処理回路は、前記データ処理装置の内部あるいは外部から指定されたバージョン値と、前記バージョン指定データが示す値とを用いてバージョン値を算出して得たバージョン値に対応する前記第２のデータを用いて前記所定のサービスに関する処理を行う、
請求項２に記載のデータ処理装置。
【請求項４】
前記バージョン管理用データは、前記バージョンの識別データと、それに対応する前記第２のデータとをレコード形式で保持し、
前記処理回路は、
前記管理データを参照して前記バージョン管理用データを特定し、
当該特定したバージョン管理用データから、指定されたバージョンの識別データをキーとして、対応する前記第２のデータを検索し、
当該検索によって得た前記第２のデータを用いて、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う、
請求項１に記載のデータ処理装置。
【請求項５】
前記バージョン管理用データは、前記バージョンの識別データと、当該バージョンに対応する前記第２のデータのアプリケーションプログラムとを対応付けて示す表データを有し、
前記処理回路は、
前記管理データを参照して前記バージョン管理用データを特定し、
当該特定したバージョン管理用データの前記表データから、指定されたバージョンの識別データをキーとして、対応する前記第２のデータのアプリケーションプログラムＩＤを検索し、
当該検索によって得た識別データを基に、対応する前記第２のデータを得て、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う、
請求項１に記載のデータ処理装置。
【請求項６】
前記第２のデータのアプリケーションプログラムＩＤは、当該第２のデータに対応する前記第１のデータの識別データと、前記バージョンの識別データとから構成される、
請求項５に記載のデータ処理装置。
【請求項７】
前記処理回路は、当該データ処理装置の外部から通信インターフェースを介してコマンドを受けて、前記アプリケーションエレメントデータＩＤを設定する、
請求項５に記載のデータ処理装置。
【請求項８】
前記処理回路は、当該データ処理装置の外部から通信インターフェースを介してコマンドを受けて、前記バージョンの識別データを設定する、
請求項５に記載のデータ処理装置。
【請求項９】
前記第１のデータは、鍵データを有する前記アプリケーションエレメントデータであり、
前記バージョンの識別データは、前記鍵データの識別データと関連付けられている、
請求項５に記載のデータ処理装置。
【請求項１０】
前記第１のデータは、署名鍵データを有する前記アプリケーションエレメントデータであり、
前記処理回路は、
前記管理データを参照して、当該第１のデータに対応する前記バージョン管理用データを特定し、
当該特定したバージョン管理用データを用いて、前記データ処理装置の内部あるいは外部から指定されたバージョンに対応する第２のデータにアクセスし、
当該第２のデータに格納されたバージョンの署名鍵データを用いて、署名作成処理または署名検証処理を行う、
請求項１に記載のデータ処理装置。
【請求項１１】
前記処理回路は、前記第１のデータの全体あるいは一部に対して、その正当性の有無を検証するために、前記署名鍵データを用いた署名作成処理または署名検証処理を行う、
請求項１０に記載のデータ処理装置。
【請求項１２】
前記第１のデータ内のデータが単数または複数のレコードから構成されている場合に、
前記処理回路は、
前記レコードのそれぞれに、前記レコード内のデータの一部または全体に対して、前記署名鍵データと所定の暗号アルゴリズムに基づいた署名データを生成し、
当該署名データを前記レコードに付加して前記記憶回路に書き込み、
前記第１のデータのレコードを前記記憶回路から読み出す場合に、前記書き込み時に用いた署名鍵データと前記暗号アルゴリズムに基づいて署名データを生成し、
当該生成した署名データと、当該レコードに付加された署名データとを比較して、当該レコードの正当性を判断する、
請求項１１に記載のデータ処理装置。
【請求項１３】
前記第１のデータは、前記暗号化されたデータを復号したデータを用いて行われた前記モジュールへの前記所定のサービスに関する処理の履歴データを有するプログラムデータ、前記記憶回路に対して前記暗号化されたデータを復号したデータを登録する手順を示したプログラムデータ、前記記憶回路から前記暗号化されたデータを復号したデータの登録を削除する手順を示したプログラムデータ、並びに前記アプリケーションプログラムを記憶する前記記憶回路を規定するための手順を示したプログラムデータのうち少なくとも一つである
請求項１に記載のデータ処理装置。
【請求項１４】
記憶手段と処理手段とを有するコンピュータの前記処理手段が、アプリケーションプログラムを実行し、該実行が行われるモジュール内の所定の集積回路との間で暗号化されたデータの授受を行い、前記集積回路と協動して前記集積回路内のメモリからデータの読み出しまたは前記集積回路内のメモリへのデータの書き込みを行う所定のサービスを提供する、コンピュータを用いたデータ処理方法であって、
前記記憶回路は、前記授受されるデータを暗号化する複数の第１のデータの各々について複数のバージョンが存在する場合に、前記第１のデータの複数のバージョンを表す情報と前記複数のバージョンにそれぞれ対応する第２のデータとの対応関係を表すバージョン管理用データと、前記第１のデータとそれに対応する前記バージョン管理用データとの対応関係を表す管理データとを記憶し、
前記処理手段は、前記データ処理装置の内部あるいは外部から指定される前記第１のデータのバージョンを表す情報をキーとして、前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データを参照して、第１のデータ実体または前記第１のデータを識別する情報である前記第２のデータを特定し、前記特定した第２のデータを用いて前記暗号化されたデータの復号を行い、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う、
データ処理方法。
【請求項１５】
前記バージョン管理用データは、前記バージョンの識別データと、それに対応する前記第２のデータとをレコード形式で保持し、
前記処理手段において、
前記管理データを参照して前記バージョン管理用データを特定し、
当該特定したバージョン管理用データから、指定されたバージョンの識別データをキーとして、対応する前記第２のデータを検索し、
当該検索によって得た前記第２のデータを用いて前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う、
請求項１４に記載のデータ処理方法。
【請求項１６】
前記バージョン管理用データは、前記バージョンの識別データと、当該バージョンに対応する前記第２のデータのアプリケーションプログラムとを対応付けて示す表データを有し、
前記処理手段において、
前記管理データを参照して前記バージョン管理用データを特定し、
当該特定したバージョン管理用データの前記表データから、指定されたバージョンの識別データをキーとして、対応する前記第２のデータのアプリケーションプログラムＩＤを検索し、
当該検索によって得た識別データを基に、対応する前記第２のデータを得て前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う、
請求項１４に記載のデータ処理方法。
【請求項１７】
記憶手段と処理手段とを有するコンピュータの前記処理手段が、アプリケーションプログラムを実行し、該実行が行われるモジュール内の所定の集積回路との間で暗号化されたデータの授受を行い、前記集積回路と協動して前記集積回路内のメモリからデータの読み出しまたは前記集積回路内のメモリへのデータの書き込みを行う所定のサービスを提供する手順をコンピュータに実行させるプログラムであって、
前記授受されるデータを暗号化する複数の第１のデータの各々について複数のバージョンが存在する場合に、前記第１のデータの複数のバージョンを表す情報と前記複数のバージョンにそれぞれ対応する第２のデータとの対応関係を表すバージョン管理用データと、前記第１のデータとそれに対応する前記バージョン管理用データとの対応関係を表す管理データとを前記記憶手段に記憶する手順と、
前記コンピュータの内部あるいは外部から指定される前記第１のデータのバージョンを表す情報をキーとして、前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データを参照して、第１のデータ実体または前記第１のデータを識別する情報である前記第２のデータを特定し、前記特定した第２のデータを用いて前記暗号化されたデータの復号を行い、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う手順と
をコンピュータに実行させるプログラム。
【請求項１８】
前記バージョン管理用データは、前記バージョンの識別データと、それに対応する前記第２のデータとをレコード形式で保持し、
前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データから、指定されたバージョンの識別データをキーとして、対応する前記第２のデータを検索し、当該検索によって得た前記第２のデータを用いて前記所定のサービスに関する処理を行う手順とをコンピュータに実行させる、
請求項１７に記載のプログラム。
【請求項１９】
前記バージョン管理用データは、前記バージョンの識別データと、当該バージョンに対応する前記第２のデータのアプリケーションプログラムとを対応付けて示す表データを有し、
前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データの前記表データから、指定されたバージョンの識別データをキーとして、対応する前記第２のデータのアプリケーションプログラムＩＤを検索し、当該検索によって得た識別データを基に、対応する前記第２のデータを得て前記所定のサービスに関する処理を行う手順をコンピュータに実行させる、
請求項１７に記載のプログラム。
【請求項２０】
複数の第１のデータからそれぞれ構成された、第２のデータを用いて、通信インターフェースを介して集積回路と通信して処理を行うデータ処理装置であって、
複数の第１のユーザそれぞれに対応した第１の記憶領域が設けられている、前記第２のデータを記憶する複数の第１の記憶領域と、前記複数の第１のユーザによって共用される前記第２のデータを記憶する第２の記憶領域と、特権ユーザによってのみアクセス許可される前記第２のデータを記憶する第３の記憶領域とを有する記憶回路と、
前記ユーザが、自らの所有するアプリケーションエレメントデータＩＤを用いて、アクセスを行う前記第２のデータを指定したとき、前記第１の記憶領域、前記第２の記憶領域および前記第３の記憶領域、並びに、当該第３の記憶領域に記憶された前記第２のデータに対してのアクセスを、ユーザの特権別にアプリケーションエレメントデータＩＤを用いてそれぞれ規定したアクセス管理データに基づいて、前記ユーザが、前記記憶回路の指定された記憶領域に適合したアプリケーションエレメントデータＩＤを有しているか判断されてアクセス許否を決定する処理回路と
を有するデータ処理装置。
【請求項２１】
前記第１の記憶領域に記憶された前記第２のデータは、当該第２のデータに対応する前記第１のユーザによって所定の鍵データを用いて暗号化されている
請求項２０に記載のデータ処理装置。
【請求項２２】
前記処理回路は、前記第１の記憶領域に記憶された前記第２のデータの設定を行う鍵データを用いて該鍵データの認証が許可されたとき前記第２の記憶領域に記憶された前記第２のデータの設定を行うことを許可する
請求項２０に記載のデータ処理装置。
【請求項２３】
記憶手段と、信号処理手段とを有するコンピュータを用いて、複数の第１のデータからそれぞれ構成された、第２のデータを用いて、通信インターフェースを介して前記集積回路と通信して処理を行うデータ処理方法であって、
前記記憶手段は、複数の第１のユーザそれぞれに対応した第１の記憶領域が設けられている、前記第２のデータを記憶する複数の第１の記憶領域と、前記複数の第１のユーザによって共用される前記第２のデータを記憶する第２の記憶領域と、特権ユーザによってのみアクセス許可される前記第２のデータを記憶する第３の記憶領域とを有し、
前記処理手段は、前記ユーザが、自らの所有するアプリケーションエレメントデータＩＤを用いて、アクセスを行う前記第２のデータを指定したとき、前記第１の記憶領域、前記第２の記憶領域および前記第３の記憶領域、並びに、当該第３の記憶領域に記憶された前記第２のデータに対してのアクセスを、ユーザの特権別にアプリケーションエレメントデータＩＤを用いてそれぞれ規定したアクセス管理データに基づいて、前記ユーザが、前記記憶回路の指定された記憶領域に適合したアプリケーションエレメントデータＩＤを有しているか判断されてアクセス許否を決定する
データ処理方法。
【請求項２４】
前記第１の記憶領域に記憶された前記第２のデータは、当該第２のデータに対応する前記第１のユーザによって所定の鍵データを用いて暗号化されている
請求項２３に記載のデータ処理方法。
【請求項２５】
前記第１の記憶領域に記憶された前記第２のデータの設定を行う鍵データを用いて該鍵データの認証が許可されたとき前記第２の記憶領域に記憶された前記第２のデータの設定を行うことを許可する
請求項２３に記載のデータ処理方法。
【請求項２６】
記憶手段と、メモリを有する集積回路で構成された処理手段とを有するコンピュータの前記処理手段において、複数の第１のデータからそれぞれ構成された、第２のデータを用いて、通信インターフェースを介して前記集積回路と通信して処理を行う手順を前記コンピュータに実行させるプログラムであって、
前記記憶手段は、複数の第１のユーザそれぞれに対応した第１の記憶領域が設けられている、前記第２のデータを記憶する複数の第１の記憶領域と、前記複数の第１のユーザによって共用される前記第２のデータを記憶する第２の記憶領域と、特権ユーザによってのみアクセス許可される前記第２のデータを記憶する第３の記憶領域とを有し、
前記ユーザが、自らの所有するアプリケーションエレメントデータＩＤを用いて、アクセスを行う前記第２のデータを指定したとき、前記第１の記憶領域、前記第２の記憶領域および前記第３の記憶領域、並びに、当該第３の記憶領域に記憶された前記第２のデータに対してのアクセスを、ユーザの特権別にアプリケーションエレメントデータＩＤを用いてそれぞれ規定したアクセス管理データに基づいて、前記ユーザが、前記記憶回路の指定された記憶領域に適合したアプリケーションエレメントデータＩＤを有しているか判断されてアクセス許否を決定する手順を
コンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣなどの集積回路を用いたサービス提供に用いられるデータ処理装置およびその方法とプログラムに関する。
【背景技術】
【０００２】
現在、ＩＣカードを用いてインターネットなどのネットワークを介した取り引きを行う通信システムが開発されている。
このような通信システムでは、ＩＣカードを用いたサービスを提供するサービス提供者からの依頼を受けて当該サービス提供者が規定した手続き処理を実行するアプリケーションプログラムをサーバ装置が実行する。
サーバ装置は、例えばＩＣカードのリーダ・ライタやＰＣ(Personal Computer) から処理要求に応じて、上記アプリケーションプログラムに基づいて、ユーザ認証やデータの暗号化及び復号などの処理を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述したサーバ装置上で動作するアプリケーションプログラムは、サービス提供者が設定した鍵データ、課金データおよび履歴データなどのセキュリティの高いデータを取り扱うため、不正な改竄や監視から保護したいという要請がある。  また、上述したサーバ装置によるサービスの運用を開始した後に、アプリケーションプログラムを構成するデータモジュールのバージョンがアップし、新旧のバージョンのデータモジュールを混在させた状態で動作を行うための機能を提供する必要がある。
また、セキュリティ確保の観点から、サーバ装置が保持するアプリケーションプログラムに対して設定を行うユーザを規制する必要がある。
【０００４】
本発明は上述した従来技術の問題点に鑑みてなされ、ＩＣなどの集積回路を用いたサービスを提供する際に、サーバ装置上で動作するアプリケーションプログラムのセキュリティを高めることができるデータ処理装置およびその方法とプログラムを提供することを目的とする。
また、本発明は、複数のバージョンのデータモジュールが混在した状態の動作を行うための機能を備えたデータ処理装置およびその方法とプログラムを提供することを目的とする。
また、本発明は、サーバ装置が保持するアプリケーションプログラムに対して設定を行うユーザを、セキィリティの観点から適切に規制できるデータ処理装置およびその方法とプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明によれば、アプリケーションプログラムを実行し、該実行が行われるモジュール内の所定の集積回路との間で暗号化されたデータの授受を行い、前記集積回路と協動して前記集積回路内のメモリからデータの読み出しまたは前記集積回路内のメモリへのデータの書き込みを行う所定のサービスを提供するデータ処理装置であって、
前記授受されるデータを暗号化する複数の第１のデータの各々について複数のバージョンが存在する場合に、前記第１のデータの複数のバージョンを表す情報と前記複数のバージョンにそれぞれ対応する第２のデータとの対応関係を表すバージョン管理用データと、前記第１のデータとそれに対応する前記バージョン管理用データとの対応関係を表す管理データとを記憶する記憶回路と、
前記データ処理装置の内部あるいは外部から指定される前記第１のデータのバージョンを表す情報をキーとして、前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データを参照して、第１のデータ実体または前記第１のデータを識別する情報である前記第２のデータを特定し、前記特定した第２のデータを用いて前記暗号化されたデータの復号を行い、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う処理回路と
を有するデータ処理装置が提供される。
【０００６】
また本発明によれば、記憶手段と処理手段とを有するコンピュータの前記処理手段が、アプリケーションプログラムを実行し、該実行が行われるモジュール内の所定の集積回路との間で暗号化されたデータの授受を行い、前記集積回路と協動して前記集積回路内のメモリからデータの読み出しまたは前記集積回路内のメモリへのデータの書き込みを行う所定のサービスを提供する、コンピュータを用いたデータ処理方法であって、
前記記憶回路は、前記授受されるデータを暗号化する複数の第１のデータの各々について複数のバージョンが存在する場合に、前記第１のデータの複数のバージョンを表す情報と前記複数のバージョンにそれぞれ対応する第２のデータとの対応関係を表すバージョン管理用データと、前記第１のデータとそれに対応する前記バージョン管理用データとの対応関係を表す管理データとを記憶し、
前記処理手段は、前記データ処理装置の内部あるいは外部から指定される前記第１のデータのバージョンを表す情報をキーとして、前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データを参照して、第１のデータ実体または前記第１のデータを識別する情報である前記第２のデータを特定し、前記特定した第２のデータを用いて前記暗号化されたデータの復号を行い、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う、
データ処理方法が提供される。
【０００７】
本発明によれば、記憶手段と処理手段とを有するコンピュータの前記処理手段が、アプリケーションプログラムを実行し、該実行が行われるモジュール内の所定の集積回路との間で暗号化されたデータの授受を行い、前記集積回路と協動して前記集積回路内のメモリからデータの読み出しまたは前記集積回路内のメモリへのデータの書き込みを行う所定のサービスを提供する手順をコンピュータに実行させるプログラムであって、
前記授受されるデータを暗号化する複数の第１のデータの各々について複数のバージョンが存在する場合に、前記第１のデータの複数のバージョンを表す情報と前記複数のバージョンにそれぞれ対応する第２のデータとの対応関係を表すバージョン管理用データと、前記第１のデータとそれに対応する前記バージョン管理用データとの対応関係を表す管理データとを前記記憶手段に記憶する手順と、
前記コンピュータの内部あるいは外部から指定される前記第１のデータのバージョンを表す情報をキーとして、前記管理データを参照して前記バージョン管理用データを特定し、当該特定したバージョン管理用データを参照して、第１のデータ実体または前記第１のデータを識別する情報である前記第２のデータを特定し、前記特定した第２のデータを用いて前記暗号化されたデータの復号を行い、前記実行が行われるモジュールへの前記所定のサービスに関する処理を行う手順と
をコンピュータに実行させるプログラムが提供される。
【０００８】
また本発明によれば、複数の第１のデータからそれぞれ構成された、第２のデータを用いて、通信インターフェースを介して集積回路と通信して処理を行うデータ処理装置であって、
複数の第１のユーザそれぞれに対応した第１の記憶領域が設けられている、前記第２のデータを記憶する複数の第１の記憶領域と、前記複数の第１のユーザによって共用される前記第２のデータを記憶する第２の記憶領域と、特権ユーザによってのみアクセス許可される前記第２のデータを記憶する第３の記憶領域とを有する記憶回路と、
前記ユーザが、自らの所有するアプリケーションエレメントデータＩＤを用いて、アクセスを行う前記第２のデータを指定したとき、前記第１の記憶領域、前記第２の記憶領域および前記第３の記憶領域、並びに、当該第３の記憶領域に記憶された前記第２のデータに対してのアクセスを、ユーザの特権別にアプリケーションエレメントデータＩＤを用いてそれぞれ規定したアクセス管理データに基づいて、前記ユーザが、前記記憶回路の指定された記憶領域に適合したアプリケーションエレメントデータＩＤを有しているか判断されてアクセス許否を決定する処理回路と
を有するデータ処理装置が提供される。
【０００９】
本発明によれば、記憶手段と、信号処理手段とを有するコンピュータを用いて、複数の第１のデータからそれぞれ構成された、第２のデータを用いて、通信インターフェースを介して前記集積回路と通信して処理を行うデータ処理方法であって、
前記記憶手段は、複数の第１のユーザそれぞれに対応した第１の記憶領域が設けられている、前記第２のデータを記憶する複数の第１の記憶領域と、前記複数の第１のユーザによって共用される前記第２のデータを記憶する第２の記憶領域と、特権ユーザによってのみアクセス許可される前記第２のデータを記憶する第３の記憶領域とを有し、
前記処理手段は、前記ユーザが、自らの所有するアプリケーションエレメントデータＩＤを用いて、アクセスを行う前記第２のデータを指定したとき、前記第１の記憶領域、前記第２の記憶領域および前記第３の記憶領域、並びに、当該第３の記憶領域に記憶された前記第２のデータに対してのアクセスを、ユーザの特権別にアプリケーションエレメントデータＩＤを用いてそれぞれ規定したアクセス管理データに基づいて、前記ユーザが、前記記憶回路の指定された記憶領域に適合したアプリケーションエレメントデータＩＤを有しているか判断されてアクセス許否を決定する
データ処理方法が提供される。
【００１０】
さらに本発明によれば、記憶手段と、メモリを有する集積回路で構成された処理手段とを有するコンピュータの前記処理手段において、複数の第１のデータからそれぞれ構成された、第２のデータを用いて、通信インターフェースを介して前記集積回路と通信して処理を行う手順を前記コンピュータに実行させるプログラムであって、
前記記憶手段は、複数の第１のユーザそれぞれに対応した第１の記憶領域が設けられている、前記第２のデータを記憶する複数の第１の記憶領域と、前記複数の第１のユーザによって共用される前記第２のデータを記憶する第２の記憶領域と、特権ユーザによってのみアクセス許可される前記第２のデータを記憶する第３の記憶領域とを有し、
前記ユーザが、自らの所有するアプリケーションエレメントデータＩＤを用いて、アクセスを行う前記第２のデータを指定したとき、前記第１の記憶領域、前記第２の記憶領域および前記第３の記憶領域、並びに、当該第３の記憶領域に記憶された前記第２のデータに対してのアクセスを、ユーザの特権別にアプリケーションエレメントデータＩＤを用いてそれぞれ規定したアクセス管理データに基づいて、前記ユーザが、前記記憶回路の指定された記憶領域に適合したアプリケーションエレメントデータＩＤを有しているか判断されてアクセス許否を決定する手順を
コンピュータに実行させる、プログラムが提供される。
【発明の効果】
【００１１】
以上説明したように、本発明によれば、ＩＣなどの集積回路を用いたサービスを提供する際に、サーバ装置上で動作するアプリケーションプログラムのセキュリティを高めることができるデータ処理装置およびその方法とプログラムを提供することができる。
【００１２】
また、本発明によれば、複数のバージョンのデータモジュールが混在した状態で適切に動作できるデータ処理装置およびその方法とプログラムを提供することができる。
また、本発明によれば、アプリケーションプログラムに対して設定を行うユーザを、セキィリティの観点から適切に規制できるデータ処理装置およびその方法とプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を添付図面を参照して説明する。
図１は、本実施形態の通信システム１の全体構成図である。
図１に示すように、通信システム１は、店舗などに設置されたサーバ装置２、ＩＣカード３、カードリーダ・ライタ４、パーソナルコンピュータ５、ＡＳＰ(Application Service Provider)サーバ装置１９、ＳＡＭ(Secure Application Module) ユニット９、ＩＣモジュール４２（本発明の集積回路）が内蔵された携帯通信装置４１を用いて、インターネット１０を介して通信を行ってＩＣカード３あるいは携帯通信装置４１を用いた決済処理などの手続き処理を行う。
ＳＡＭユニット９（本発明のデータ処理装置）は、外部メモリ７（本発明の記憶回路）およびＳＡＭモジュール８（本発明の処理回路）を有する。
【００１４】
ＳＡＭモジュール８は、必要に応じて、図示しない他のＳＡＭモジュールとデータの授受を行う。
【００１５】
以下、図１に示す構成要素について説明する。
〔ＩＣカード３および携帯通信装置４１〕
図２は、ＩＣカード３の機能ブロック図である。
図２に示すように、ＩＣカード３は、メモリ５０およびＣＰＵ５１を備えたＩＣ(Integrated Circuit)モジュール３ａを有する。
メモリ５０は、図３に示すように、クレジットカード会社などのサービス事業者１５＿１が使用する記憶領域５５＿１、サービス事業者１５＿２が使用する記憶領域５５＿２、並びにサービス事業者１５＿３が使用する記憶領域５５＿３を有する。
また、メモリ５０は、記憶領域５５＿１へのアクセス権限を判断するために用いられる鍵データ、記憶領域５５＿２へのアクセス権限を判断するために用いられる鍵データ、並びに記憶領域５５＿３へのアクセス権限を判断するために用いられる鍵データを記憶している。当該鍵データは、相互認証や、データの暗号化および復号などに用いられる。
また、メモリ５０は、ＩＣカード３あるいはＩＣカード３のユーザの識別データを記憶している。
【００１６】
携帯通信装置４１は、携帯電話網およびインターネット１０を介してＡＳＰサーバ装置と通信を行う図示しない通信機能部と、上記通信機能部との間でデータ授受可能なＩＣモジュール４２とを有し、アンテナからインターネット１０を介してＳＡＭユニット９と通信を行う。
ＩＣモジュール４２は、携帯通信装置４１の通信機能部とデータ授受を行う点を除いて、前述したＩＣカード３のＩＣモジュール３ａと同じ機能を有している。
なお、携帯通信装置４１を用いた処理は、ＩＣカード３を用いた処理と同様に行われ、ＩＣモジュール４２を用いた処理はＩＣモジュール３ａを用いた処理と同様に行われるため、以下の説明では、ＩＣカード３およびＩＣモジュール３ａを用いた処理について例示する。
【００１７】
以下、ＳＡＭユニット９について詳細に説明する。
ＳＡＭユニット９は、前述したように、外部メモリ７（本発明の記憶回路）とＳＡＭモジュール８（本発明の処理回路）とを有する。
ここで、ＳＡＭモジュール８は、半導体回路として実現してもよいし、筐体内に複数の回路を収容した装置として実現してもよい。
【００１８】
〔ＳＡＭモジュール８のソフトウェア構成〕
ＳＡＭモジュール８は、図４に示すようなソフトウェア構成を有している。
図４に示すように、ＳＡＭモジュール８は、下層から上層に向けて、ハードウェアＨＷ層、周辺ＨＷに対応したＲＴＯＳカーネルなどを含めたドライバ層（ＯＳ層）、論理的にまとまった単位の処理を行う下位ハンドラ層、アプリケーション固有のライブラリなどをまとめた上位ハンドラ層およびＡＰ層を順に有している。
ここで、ＡＰ層では、図１に示すクレジットカード会社などのサービス事業者１５＿１，１５＿２，１５＿３によるＩＣカード３を用いた手続きを規定したアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３（本発明のアプリケーションプログラム）が、外部メモリ７から読み出されて動作している。
各アプリケーションプログラムには、１つ以上のマクロスクリプトが設定可能である。
ＡＰ層では、アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３相互間、並びに上位ハンドラ層との間にファイアウォールＦＷが設けられている。
【００１９】
〔外部メモリ２０７〕
図５は、外部メモリ７の記憶領域を説明するための図である。
図５に示すように、外部メモリ２０７の記憶領域には、サービス事業者１５＿１のアプリケーションプログラムＡＰ＿１が記憶されるＡＰ記憶領域２２０＿１、サービス事業者１５＿２のアプリケーションプログラムＡＰ＿２が記憶されるＡＰ記憶領域２２０＿２、サービス事業者１５＿３のアプリケーションプログラムＡＰ＿３が記憶されるＡＰ記憶領域２２０＿３、並びにＳＡＭモジュール２０８の管理者が使用するＡＰ管理用記憶領域２２１がある。
【００２０】
ＡＰ記憶領域２２０＿１に記憶されているアプリケーションプログラムＡＰ＿１（第１〜第３の発明のアプリケーションプログラム、第４〜第６の発明の第２のデータモジュール）は、後述する複数のアプリケーションエレメントデータＡＰＥ（第１〜第６の発明の第１のデータモジュール）によって構成されている。ＡＰ記憶領域２２０＿１へのアクセスは、ファイアウォールＦＷ＿１によって制限されている。
ＡＰ記憶領域２２０＿２に記憶されているアプリケーションプログラムＡＰ＿２は、複数のアプリケーションエレメントデータＡＰＥによって構成されている。ＡＰ記憶領域２２０＿２へのアクセスは、ファイアウォールＦＷ＿２によって制限されている。
ＡＰ記憶領域２２０＿３に記憶されているアプリケーションプログラムＡＰ＿３は、複数のアプリケーションエレメントデータＡＰＥによって構成されている。ＡＰ記憶領域２２０＿３へのアクセスは、ファイアウォールＦＷ＿３によって制限されている。
本実施形態では、上記アプリケーションエレメントデータＡＰＥは、例えば、ＳＡＭユニット９の外部から外部メモリ７にダウンロードされる最小単位である。各アプリケーションプログラムを構成するアプリケーションエレメントデータＡＰＥの数は、対応するサービス事業者が任意に決定できる。
【００２１】
また、外部メモリ７に記憶されたアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３は、スクランブルされており、ＳＡＭモジュール８に読み込まれたときに、デスクランブルされる。
また、アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３は、例えば、それぞれ図１に示すパーソナルコンピュータ１６＿１，１６＿２，１６＿３を用いて、サービス事業者１５＿１，１５＿２，１５＿３によって作成され、ＳＡＭモジュール８を介して外部メモリ７にダウンロードされる。
【００２２】
以下、アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３について詳細に説明する。
アプリケーションプログラムは、サービス事業者毎に、ＳＡＭ内に単数または複数個存在する。
アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３（以下、ＡＰとも記す）は、図６に示すように、アプリケーションプログラムＡＰを識別するための識別データＡＰ＿ＩＤと、当該アプリケーションプログラムのバージョン（世代情報）を示すデータＡＰＰ＿ＶＥＲ、当該アプリケーションプログラムに含まれるアプリケーションエレメントデータＡＰＥの数を示すデータＡＰＥ＿ＮＵＭと、単数または複数のアプリケーションエレメントデータＡＰＥとによって構成される。
識別データＡＰ＿ＩＤは、サービス事業者毎に異なるように決められている。
【００２３】
図６に示すように、アプリケーションエレメントデータＡＰＥは、当該アプリケーションエレメントデータＡＰＥのデータサイズを示すデータＡＰＥ＿ＳＩＺＥと、当該アプリケーションエレメントデータＡＰＥを識別するための識別データＡＰＥ＿ＩＤと、当該アプリケーションエレメントデータＡＰＥのバージョンを示すデータＡＰＥ＿ＶＥＲ、サービス事業者が設定可能な当該アプリケーションエレメントデータＡＰＥの識別データ（タグ）であるデータＡＰＥ＿ＴＡＧ、ＡＰＰテーブルデータを特定するデータＡＰＰＴ、オプションを設定するデータＯＰＴ、データ本体ＡＰＥ＿ＰＬとで構成される。
ここで、識別データＡＰＥ＿ＩＤは、アプリケーションエレメントデータＡＰＥの種別を示すデータＡＰＥ＿ＴＹＰＥと、当該種別内でのアプリケーションエレメントデータＡＰＥの識別番号（インスタンス識別番号）を示すデータＩＮＳ＿ＮＵＭとで構成される。データＩＮＳ＿ＮＵＭは、エンドユーザ（サービス事業者）側で管理される。
例えば、アプリケーションエレメントデータＡＰＥがファイルシステムコンフィグレーションの場合には、データＡＰＥ＿ＴＹＰＥが「２」となり、データＩＮＳ＿ＮＵＭが「１」となる。これにより、同−のＳＡＭであれば、識別データＡＰＥ＿ＩＤにより一意にアプリケーションエレメントデータＡＰＥを特定できる。
データＡＰＥ＿ＶＥＲは、サービス事業者が任意に設定できる。
また、データＡＰＥ＿ＴＡＧは、個々のアプリケーションプログラムＡＰ内で一意に定義される必要がある。
【００２４】
図５に示す外部メモリ７には、上述したアプリケーションプログラムＡＰ（ＡＰ＿１，ＡＰ＿２，ＡＰ＿３）が、ＳＡＭユニット９外でＡＰリソース鍵データＫ＿ＡＰＲ（暗号化鍵データ）によって暗号化されて、設定コマンドによって、外部メモリ７内にアプリケーションプログラム・パッケージＡＰＰとして記憶されている。
ＡＰリソース鍵データＫ＿ＡＰＲとしては、アプリケーションプログラム毎で異なる暗号化鍵データが用いられる。
【００２５】
以下、図６を用いて説明したアプリケーションエレメントデータＡＰＥの種別（ＡＰＥ＿ＴＹＰＥ）について説明する。
図７は、１つのＡＰ領域内に記憶されたアプリケーションエレメントデータＡＰＥの一例を示す図である。
図７は、データＡＰＥ＿ＴＹＰＥの番号と、その内容とを対応付けて示している。
図７に示すように、ＡＰ領域内には、例えば、ＡＰリソース鍵データＫ＿ＡＰＲ、カードアクセス鍵データ、ファイルシステムコンフィグレーションデータ、ＳＡＭ相互認証用鍵データ、ＳＡＭ間鍵パッケージ鍵データ、ＩＣカード操作用マクロコマンドスクリプトプログラム（本発明の処理手順データ）、メモリ分割用鍵パッケージ、エリア登録鍵パッケージ、エリア削除用鍵パッケージ、サービス登録用鍵データ、サービス削除用鍵パッケージ、が、アプリケーションエレメントデータＡＰＥとして記憶されている。
【００２６】
・ＡＰリソース鍵データＫ＿ＡＰＲ
ＡＰリソース鍵データＫ＿ＡＰＲは、アプリケーションエレメントデータＡＰＥを設定する際の暗号用鍵として使用され、ＡＰ領域毎に、アプリケーションエレメントデータＡＰＥを設定するために異なる鍵データＫ＿ＡＰＲが割り当てられている。
・カードアクセス鍵データ
カードアクセス鍵データは、ＩＣカード３およびＩＣモジュール４２のメモリ５０に対してのデータの読み書き操作に用いられる鍵データである。
カードアクセス鍵データには、例えば、ＩＣカードシステム鍵データ、ＩＣカードエリア鍵データ、ＩＣカードサービス鍵データおよびＩＣカード縮退鍵データなどがある。
ここで、ＩＣカード縮退鍵データは、、ＩＣカードシステム鍵データと、メモリ５０の記憶領域管理用鍵データとを用いて暗号化して生成され、相互認証に用いられる鍵データである。
また、ＩＣカード操作用マクロコマンドスクリプトプログラムで参照される鍵データも、カードアクセス鍵データと同じ種別のアプリケーションエレメントデータＡＰＥに含まれる
【００２７】
・ファイルシステムコンフィグレーションデータ
ファイルシステムコンフィグレーションデータとしては、例えば、ログデータ、ネガデータ、ジャーナルデータがある。
ログデータは例えばアプリケーションエレメントデータＡＰＥの利用履歴データであり、ネガデータは例えばＩＣカードの失効情報であり、ジャーナルデータは例えばＳＡＭでの実行履歴である。
例えば、ファイルシステムコンフィグレーションでは、ファイルアクセスの種別（レコードキー指定・ソート・リング）の選択を行い、レコードキーの場合であれば、レコードサイズ、レコード全体件数・レコード署名バージョン・レコード署名メソッドタイプ、レコードデータサイズ、レコード署名鍵を設定する。さらに、外部から本ファイルシステムにデータを書き込む際に署名検証を実施するかの有無の指定などを行う。ここでレコードとは、ファイルデータへの書き込み／読み出しの最小単位である。
【００２８】
・ＳＡＭ相互認証用鍵データ
同一ＳＡＭ内にあるＡＰ間相互認証にも使用される。
ＳＡＭ相互認証用鍵データとは、対応するアプリケーションエレメントデータＡＰＥを同一ＳＡＭ内の他のＡＰまたは他のＳＡＭからアクセスする際に用いられる鍵データである。
・ＳＡＭ間鍵パッケージ鍵
ＳＡＭ間鍵パッケージ鍵とは、ＳＡＭ間での相互認証後、カードアクセス鍵データなどのデータを交換する際に用いられる暗号化用鍵データである。
・ＩＣカード操作用マクロコマンドスクリプトプログラム
ＩＣカード操作用マクロコマンドスクリプトプログラムは、サービス事業者自身によって生成され、ＩＣカード３に係わる処理の順番やＡＳＰサーバ装置１９とのやり取りを記述している。ＩＣカード操作用マクロコマンドスクリプトプログラムは、ＳＡＭユニット９に設定された後に、ＳＡＭモジュール８内で解釈され、対応するＩＣカードエンティティデータが生成される。
【００２９】
・メモリ分割用鍵パッケージ
メモリ分割用鍵パッケージは、サービス事業者がＩＣカード３を用いたサービスの運用開始前に、外部メモリ７やＩＣカード３のメモリの記憶領域を分割するために使用するデータである。
・エリア登録鍵パッケージ
エリア登録鍵パッケージは、サービス事業者がＩＣカード３を用いたサービスの運用開始前に、ＩＣカード３のメモリの記憶領域にエリア登録を行う場合に使用するデータである。
・エリア削除用鍵パッケージ（内部生成）
エリア削除用鍵パッケージは、カードアクセス鍵データからＳＡＭ内部で自動生成が可能なパッケージである。
【００３０】
・サービス登録用鍵（内部生成）
サービス登録用鍵パッケージは、サービス事業者がＩＣカード３を用いたサービスの運用開始前に、外部メモリ７のアプリケーションエレメントデータＡＰＥを登録するために用いられる。
サービス登録用鍵パッケージは、カードアクセス鍵データからＳＡＭ内部で自動生成が可能なパッケージである。
・サービス削除用鍵パッケージ（内部生成）
サービス削除用鍵パッケージは、外部メモリ７に登録されているアプリケーションエレメントデータＡＰＥを削除するために用いられる。
サービス削除用鍵パッケージは、カードアクセス鍵データからＳＡＭ内部で自動生成が可能なパッケージである。
【００３１】
図８は、図７に示す各アプリケーションエレメントデータＡＰＥの種別に応じたバージョンを説明するための図である。
図８に示すように、ＩＣカードシステム鍵データ、エリア鍵データおよびサービス鍵データのバージョンは、各鍵データに規定されたバージョンが用いられる。
ＩＣカード縮退鍵データのバージョンは、例えば、ＳＡＭモジュール８が独自に規定できる。
製造用鍵パッケージのバージョンには、システム鍵データのバージョンが用いられる。
発行用鍵データのバージョンには、ＩＣ３ａおよびＩＣモジュール４２の最上の記憶領域の管理鍵データのバージョンが用いられる。
拡張発行用鍵データのバージョンには、システム鍵データのバージョンが用いられる。
【００３２】
分割元パッケージおよび分割パッケージのバージョンには、分割対象となるシステム鍵データが用いられる。
エリア登録用鍵パッケージおよびエリア削除用鍵パッケージのバージョンには、各エリア鍵のバージョンが用いられる。
サービス登録用鍵パッケージおよびサービス削除用鍵パッケージのバージョンには、各サービス鍵のバージョンが用いられる。
鍵変更用パッケージのバージョンには、変更後の新しい鍵データのバージョンが用いられる。
【００３３】
以下、上述したアプリケーションエレメントデータＡＰＥのバージョンの管理に用いられる、図５に示すバージョン管理用データ３０３、並びにアプリケーションエレメントデータＡＰＥについて説明する。
〔バージョン管理の第１の例〕
図９に示すように、アプリケーションエレメントデータＡＰＥが複数のバージョンを有する場合に、当該アプリケーションエレメントデータＡＰＥに対応するバージョン管理用データ３０３（第１〜第３の発明の管理データ）は、当該アプリケーションエレメントデータＡＰＥに対応するバージョン管理ファイルＶＭＦ（第１〜第３の発明のバージョン管理用データモジュール）の識別データＡＰＥ＿ＩＤと、現在選択されているパージョン値と、バージョン管理ファイルＶＭＦに格納されている最新のバージョン値とを対応付けて示している。
本実施形態では、バージョン管理ファイルＶＭＦは、アプリケーションエレメントデータＡＰＥとして実現される。
【００３４】
バージョン管理ファイルＶＭＦは、図９に示すように、バージョンの値（バージョンの識別データ：Version #** ）と、当該バージョンのアプリケーションエレメントデータＡＰＥの実体(Element Instance Body #**) （第１〜３の発明の第２のデータモジュール）とをレコード形式で格納している。
ＳＡＭモジュール８のＣＰＵは、複数のバージョンを有するアプリケーションエレメントデータＡＰＥを用いる場合に、当該アプリケーションエレメントデータＡＰＥのデータＡＰ＿ＩＤを基にバージョン管理用データ３０３にアクセスし、バージョン管理用データ３０３に格納されたＡＰＥ＿ＩＤを基にバージョン管理ファイルＶＭＦにアクセスする。そして、バージョン管理ファイルＶＭＦに、指定されたバージョン値をキーとして、バージョン管理ファイルＶＭＦ内で、指定されたバージョンのアプリケーションエレメントデータＡＰＥの実体を検索して利用する。
【００３５】
〔バージョン管理の第２の例〕
図１０に示すように、バージョン管理用データ３０３は図９の場合と同様に、当該アプリケーションエレメントデータＡＰＥに対応するバージョン管理ファイルＶＭＦの識別データＡＰＥ＿ＩＤと、現在選択されているパージョン値と、バージョン管理ファイルＶＭＦに格納されている最新のバージョン値とを対応付けて示している。
本実施形態でも、バージョン管理ファイルＶＭＦは、アプリケーションエレメントデータＡＰＥとして実現される。
【００３６】
バージョン管理ファイルＶＭＦは、図１０に示すように、バージョンの値（バージョンの識別データ：Version #** ）と、当該バージョンのアプリケーションエレメントデータＡＰＥの実体(Element Instance Body #**) （第１〜３の発明の第２のデータモジュール）の識別データＡＰＥ＿ＩＤとを対応付けて示す表データ３０５を格納している。
ＳＡＭモジュール８のＣＰＵは、複数のバージョンを有するアプリケーションエレメントデータＡＰＥを用いる場合に、当該アプリケーションエレメントデータＡＰＥのデータＡＰ＿ＩＤを基にバージョン管理用データ３０３にアクセスし、バージョン管理用データ３０３に格納されたＡＰＥ＿ＩＤを基にバージョン管理ファイルＶＭＦにアクセスする。そして、当該ＣＰＵは、バージョン管理ファイルＶＭＦから、指定されたバージョン値をキーとして、識別データＡＰＥ＿ＩＤを取得し、当該識別データＡＰＥ＿ＩＤを用いて、対応するバージョンのアプリケーションエレメントデータＡＰＥの実体にアクセスして利用する。
【００３７】
なお、上述した第１および第２の例において、バージョンの指定は、ＳＡＭモジュール８の外部からコマンドによって、あるいはＳＡＭモジュール８の内部の処理によって、設定および変更される。また、ＳＡＭモジュール８のＣＰＵは、バージョンが明示して指定されていない場合に、バージョン管理用データ３０３に格納されたバージョン管理ファイルＶＭＦ内の最新バージョンを自動的に選択して指定してもよい。
ＳＡＭモジュール８のＣＰＵは、ＳＡＭモジュール８の内部あるいは外部から指定された値を、バージョン指定データが示す値に反映させてバージョン値を算出し、当該算出したバージョン値をキーとしてバージョン管理ファイルＶＭＦ内を検索してもよい。
【００３８】
〔バージョン管理の適用例〕
図１１は、バージョン管理の手法をカードアクセス鍵データに適用した場合を説明する。
図１１に示すように、カードアクセス鍵データを管理するファイルから鍵パッケージＫ＿Ｐを、ＳＡＭモジュール８の汎用レジスタ内で内部生成する。
異なるバージョンのカードアクセス鍵データを格納した鍵パッケージＫ＿Ｐ１〜ＫＰ３が生成される。
そして、ＳＡＭモジュール８のＣＰＵは、ソート型のファイルシステムを用いて、鍵パッケージＫ＿Ｐ１〜Ｋ＿Ｐ３を、それぞれパッケージバージョンＰ＿ＶＥＲ１〜Ｐ＿ＶＥＲ３と関連付けて外部メモリ７に格納する。
【００３９】
〔異なるバージョンの署名鍵データを用いて署名された署名（ログ）データを作成および検証する場合〕
例えば、ＳＡＭモジュール８は、例えば、ＩＣカード３およびＩＣモジュール４２の運用開始後に、カード処理に伴う署名データに用いる署名鍵データが変更になり、新旧の署名鍵データを混在して運用する場合がある。
このとき、署名鍵データは、バージョン別に管理されている。
ＳＡＭモジュール８のＣＰＵは、署名ファイルの各レコードに含まれる署名鍵バージョンデータを読み出し、当該署名鍵バージョンデータをキーとして、署名鍵ファイルから、対応する署名鍵データを検索して取得し、当該取得した署名鍵データを用いて署名作成または署名検証処理を行う。
【００４０】
すなわち、ＳＡＭモジュール８のＣＰＵは、例えば、ファイルコンフィグレーション時に、ログファイル内の該当する署名鍵バージョンを特定し、バージョン管理ファイルＶＭＦを用いて、当該署名鍵バージョンに対応する署名鍵ファイルにアクセスし、当該署名鍵ファイルに格納された署名鍵データを用いて、署名作成または署名検証を行う。
【００４１】
なお、上述したログファイルには、署名鍵バージョンに対応して、レコード形式で、署名付加の対象となるデータ、並びに署名データが格納されている。
署名データは、上記署名付加の対象となるデータの全部または一部に対して付けられる。
また、ＳＡＭモジュール８のＣＰＵは、フグファイル内のデータの一部または全体に対して、署名鍵データと所定の暗号アルゴリズムに基づいた署名データを生成し、当該署名データを前記レコードに付加して外部メモリ７に書き込み、前記ログファイルからデータを読み出す場合に、前記書き込み時に用いた署名鍵データと前記暗号アルゴリズムに基づいて署名データを生成し、当該生成した署名データと、当該レコードに付加された署名データとを比較して、当該レコードの正当性、すなわちデータが改竄および欠損していないかを判断する。
【００４２】
以下、上述したＩＣカード操作用マクロコマンドスクリプトプログラム（以下、スクリプトプログラムとも記す）について詳細に説明する。
スクリプトプログラムは、ＳＡＭモジュール８上で動作するサービス事業者１５＿１，１５＿２，１５＿３のアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３、並びに当該アプリケーションプログラムの実行時にＩＣカード３のＩＣモジュール３ａおよび携帯通信装置４１のＩＣモジュール４２が行う処理の手続きを規定するためのプログラムである。
本実施形態では、後述するように、図１３に示すように、ＳＡＭモジュール８内で、スクリプトダウンロードタスク６９およびスクリプト解釈タスク７０に基づいて処理を行い、ＡＰ管理テーブルデータおよびスクリプトプログラムから、サービス事業者１５＿１，１５＿２，１５＿３に関する手続きに用いられるＩＣカードエンティティテンプレートデータ３０＿１、入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４を生成する。
【００４３】
以下、図５に示す外部メモリ７のＡＰ管理用記憶領域２２１に記憶されたデータについて説明する。
ＡＰ管理用記憶領域２２１へのアクセスは、ファイアウォールＦＷ＿４によって制限されている。
なお、ファイアウォールＦＷ＿４は、図４に示すファイアウォールＦＷに対応している。
図１４は、ＡＰ管理用記憶領域２２１に記憶されているデータの詳細を説明するための図である。
ＡＰ管理用記憶領域２２１には、図１４に示すように、ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３（３００）と、ＡＰＰテーブルデータ３０１＿１，３０１＿２，３０１＿３（３０１）と、ＡＰ選択用データ３０２＿１，３０２＿２，３０２＿３（３０２）、バージョン管理用データ３０３＿１，３０３＿２，３０３＿３（３０３）、並びに内部リソース割当管理用データ３０４（第４〜第６の発明のアクセス管理データ）が記憶されている。
ここで、ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３と、ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿３は、例えば、ＳＡＭモジュール８のセットアップ時に予め登録されている。また、ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３と、ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿の書き換えは、ＳＡＭモジュール８の管理者のみが行える。
【００４４】
ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３は、アプリケーションプログラムＡＰ毎に規定されている。
また、ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿３は、ＳＡＭ相互認証鍵データ毎に規定されている。
【００４５】
図１５は、ＡＰ管理用テーブルデータ３００＿１を説明するための図である。  ＡＰ管理用テーブルデータ３００＿２，３００＿３も、ＡＰ管理用テーブルデータ３００＿１と同じフォーマットを有している。
図１５に示すように、ＩＣカード操作用マクロコマンドスクリプトプログラム内で用いられる参照されるアプリケーションエレメントデータＡＰＥの名前ＡＰＥ＿Ｎのそれぞれについて、識別データＡＰＥ＿ＩＤ、内部／外部指定データＩＥＩ、識別データＳＡＭ＿ＩＤ、識別データＡＰ＿ＩＤ、鍵データＫ＿ＣＡＲＤＡ、鍵データＫ＿ＳＡＭ、データＳＥＴ＿ＡＰＰ、データＦＬＡＧ＿ＩＰおよびデータＦＬＡＧ＿ＳＴＲを対応付けて示している。
アプリケーションエレメントデータＡＰＥの名前ＡＰＥ＿Ｎは、サービス事業者１５＿１，１５＿２，１５＿３のアプリケーションプログラムによって提供されるサービス（アプリケーションエレメントデータＡＰＥ）に付けられた名前である。名前ＡＰＥ＿Ｎは、各サービス事業者のアプリケーションプログラムが使用できるサービスのサービス番号の替わりに参照される識別子である。
【００４６】
ここで、識別データＡＰＥ＿ＩＤは、アプリケーションエレメントデータＡＰＥの識別データである。
内部／外部指定データＩＥＩは、ＡＰＥが実体として存在するのか（内部指定）、あるいは他のＳＡＭから参照するのか（外部指定）を区別するフラグである。
識別データＳＡＭ＿ＩＤは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際にデータ授受を行う相手側のＳＡＭの識別データである。
図１６は、ＳＡＭ＿ＩＤを説明するための図である。
ＳＡＭ＿ＩＤは、４バイトのデータであり、ＴＣＰ／ＩＰに類似したネットマスクの概念を有している。ネットマスクはビット単位での設定が可能である。
例えば、当該ネットマスクは、図１６に示すように、Ａクラス、ＢクラスおよびＣクラスの３種類に分類される。そして、同一のネットマスクが割り当てられたＳＡＭ相互間では、相互認証に使用する鍵データは１種類でよい。本実施形態では、例えば、同一のサービス事業者に同一のネットマスクが割り当てられる。
図１６において、Ａクラスのネットマスクは、「２５５．ＸＸ．ＸＸ．ＸＸ」で示され、上位１バイトに当該クラスを特定するための所定の値が割り当てられ、下位３バイトに、当該クラスに属する個々のＳＡＭを特定するための値が割り当てられる。ここで、「ＸＸ」には任意の値を設定できる。すなわち、Ａクラスのネットマスクによって、当該Ａクラスに属する１６７７７２１５個のＳＡＭ＿ＩＤを規定できる。
また、Ｂクラスのネットマスクは、「２５５．２５５．ＸＸ．ＸＸ」で示され、上位２バイトに当該クラスを特定するための所定の値が割り当てられ、下位２バイトに、当該クラスに属する個々のＳＡＭを特定するための値が割り当てられる。すなわち、Ｂクラスのネットマスクによって、当該Ｂクラスに属する６５５３５個のＳＡＭ＿ＩＤを規定できる。
また、Ｃクラスのネットマスクは、「２５５．２５５．２５５．ＸＸ」で示され、上位３バイトに当該クラスを特定するための所定の値が割り当てられ、下位１バイトに、当該クラスに属する個々のＳＡＭを特定するための値が割り当てられる。すなわち、Ｃクラスのネットマスクによって、当該Ｃクラスに属す２５５個のＳＡＭ＿ＩＤを規定できる。
【００４７】
識別データＡＰ＿ＩＤは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際にデータ授受を行う相手側のＳＡＭで実行されるアプリケーションプログラムの識別データである。
鍵データＫ＿ＣＡＲＤＡは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際にＩＣカード３のメモリ５０とデータ授受を行うために用いられる鍵データである。
【００４８】
鍵データＫ＿ＳＡＭは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際に、他のＳＡＭとデータ授受を行うために用いられる鍵データである。
データＳＥＴ＿ＡＰＰは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際に用いられる（参照される）ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿３を特定するためのデータである。
【００４９】
図１５において、ＡＰＥ＿Ｎ「ＳｅｒｖｉｃｅＡ」は、該当ＳＡＭ８内のアプリケーションプログラムで定義されたＩＣカード３のアクセス鍵である。「ＳｅｒｖｉｃｅＡ」の鍵データは非公開に設定しているため、他のＳＡＭ上のアプリケーションプログラムや本ＳＡＭ上の他のアプリケーションプログラムは、参照することができない。
また、「ＳｅｒｖｉｃｅＣ」は、本アプリケーションプログラムで定義されたＩＣカード３のアクセス鍵である。本ＳＡＭに後述するＣクラスのネットマスクが割り当てられている場合には、「ＳｅｒｖｉｃｅＣ」の鍵データは「４３．１７．１９．ＸＸ」のＳＡＭ＿ＩＤを持つＳＡＭ上のアプリケーションプログラムに公開される。この際ＳＡＭ相互認証用鍵は「ＴＴ１…．ＴＴｎ」、また他のＳＡＭが「ＳｅｒｖｉｃｅＣ」の鍵データを次回利用時まで保持可能かの可否を決定する。可の場合には、他のＳＡＭがカード上の「ＳｅｒｖｉｃｅＣ」を次回利用するときに、本ＳＡＭから再度カードアクセス鍵を入手する必要は無い。ＳｅｒｖｉｃｅＢのアクセス鍵は本ＳＡＭではなく、「４３．１３．１３７．ＸＸ」のＳＡＭ＿ＩＤを持つＳＡＭから入手する。ＳＡＭ間の相互認証用鍵として「ＳＳ１…ＳＳｎ」を使用する。
「ＳｅｒｖｉｃｅＢ」のアクセス鍵を次回利用時まで保持可能の有無は先方のＳＡＭが指定する可否フラグにより決定する。
「ＳｅｒｖｉｃｅＢ  Ｌｏｇ」は、「４３．１３．１３７．ＸＸ」のＳＡＭ＿ＩＤが割り当てられたログデータが格納されたファイルを指す。「ＳｅｒｖｉｃｅＢ  Ｌｏｇ」は、「ＳｅｒｖｉｃｅＢ」と同一ＳＡＭネットマスクであるため、相互認証用鍵は「ＳＳ１…ＳＳｎ」を使用する。ここで、相互認証鍵毎にＡＰＰテーブルデータが設けられている。本例では、「ＳｅｒｖｉｃｅＢ  ｌｏｇ」および「ＳｅｒｖｉｃｅＢ」へのアクセス許可は他のＳＡＭ上のＡＰ管理用テーブルデータが参照する他のＳＡＭのＡＰＰテーブルデータ３１０で規定されている。
【００５０】
図１７は、ＡＰＰテーブルデータ３１０＿１を説明するための図である。
ＡＰＰテーブルデータ３１０＿２，３１０＿３、３１０は、ＡＰＰテーブルデータ３１０＿１と同じフォーマットを有している。
図１７に示すように、ＡＰＰテーブルデータ３１０＿１は、各アプリケーションエレメントデータＡＰＥについて、その識別データＡＰＥ＿ＩＤと、当該アプリケーションエレメントデータＡＰＥに対して他のアプリケーションプログラム（他のアプリケーションエレメントデータＡＰＥ）から読み出し（ＲＥＡＤ）、書き込み（ＷＲＩＴＥ）および実行（ＥＸＣＵＴＥ）が可能であるか否かを示している。
【００５１】
例えば、図１７に示すＡＰＰテーブルデータ３１０＿１は、「ＳｅｒｖｉｃｅＢ  ｌｏｇ」については読取りが可、書込みが可、実行（削除）が不可を示している。
【００５２】
また、図５に示す外部メモリ７のＡＰ管理用記憶領域２２１は、例えば、ＩＣカード種別データとＡＰ＿ＩＤとを対応付けて示すＡＰ選択用データを記憶している。
ＩＣカード種別データは、図１に示すＩＣカード３の種別を示し、例えば、ＩＣカード３を用いた取り引きの決済を行うクレジットカード会社の識別データである。
【００５３】
本実施形態では、ＩＣカード操作用マクロコマンドスクリプトプログラム内に複数のアプリケーションエレメントデータＡＰＥの名前ＡＰＥ＿Ｎを組み合せたサービス内容を規定（記述）し、これを後述するＩＣカードエンティティデータ（ジョブ管理用データ）に反映させることで、複数のアプリケーションエレメントデータＡＰＥに対応するサービスを組み合わせたをサービスを提供できる。
例えば、ＩＣカード３からデータ読出しを行うサービスと、サーバ装置２にデータ書込みを行うサービスとを組み合わせたサービスを、ＩＣカードエンティティデータ内に定義できる。
【００５４】
また、ＡＰＥ＿Ｎあるいはそのサービス番号は、サービス事業者１５＿１，１５＿２，１５＿３によって提供されるサービスを行う際に、ＩＣカード３に発行するＩＣカード３が解釈可能な操作コマンドである。
【００５５】
アプリケーションプログラムＡＰ＿１は、外部メモリ７に記憶されたＡＰ管理用テーブルデータ３００＿１および所定のＩＣカード操作用マクロコマンドスクリプトプログラムによって規定される。
アプリケーションプログラムＡＰ＿２は、外部メモリ７に記憶されたＡＰ管理用テーブルデータ３００＿２および所定のＩＣカード操作用マクロコマンドスクリプトプログラムによって規定される。
アプリケーションプログラムＡＰ＿３は、外部メモリ７に記憶されたＡＰ管理用テーブルデータ３００＿３および所定のＩＣカード操作用マクロコマンドスクリプトプログラムによって規定される。
【００５６】
また、図５に示す外部メモリ７のＡＰ管理用記憶領域２２１は、例えば、外部メモリ７に格納されたリソースへのアクセス管理をユーザの特権別あるいは使用目的別に行うために用いられる内部リソース割当管理用データ３０４を記憶している。
【００５７】
図１８は、内部リソース割当管理用データ３０４を説明するための図である。
ＳＡＭモジュール８のＣＰＵは、図１８に示す内部リソース割当管理用データ３０４に基づいて、外部メモリ７の記憶領域、並びに当該領域に記憶されたデータに対してのアクセスを、ユーザの特権別あるいは使用目的別に管理する。
外部メモリ７の記憶領域は、システム領域とユーザ領域とに分けて管理される。
システム領域は、ＳＡＭモジュール８が内部動作で使用する領域である。
システム領域は、例えば、ＳＡＭモジュール８の出荷担当者によって、ＳＡＭモジュール８の固有機器番号、アプリケーションプログラムＡＰの出荷用鍵が初期設定される。
【００５８】
ユーザ領域は、ＳＡＭモジュール８の使用者がアプリケーションプログラムなどのリソースを設定可能な領域である。
ユーザ領域は、特権ユーザ領域（本発明の第３の記憶領域）、一般ユーザ領域（本発明の第１の記憶領域）、並びに共通ユーザ領域（本発明の第２の記憶領域）に大別される。
特権ユーザ領域は、ＳＡＭモジュール８の識別データＩＤなどのＳＡＭモジュール８を運用するための基本データを格納するための領域である。
一般ユーザ領域は、ＩＣカード３や携帯通信装置４１を使用したサービスを実現するための鍵データや鍵パッケージなどのリソースを格納するための領域である。
共通ユーザ領域は、一般ユーザが共通して使用するＳＡＭモジュール８本体のＩＰアドレスなどのネットワーク情報を格納するための領域である。
【００５９】
すなわち、特権ユーザ領域は、ＳＡＭモジュール８の運用上、特定のユーザによる設定が必要とされる領域であり、共通ユーザ領域は、ＳＡＭモジュール８全体として共有可能であり、かつ複数のユーザによる設定が可能な領域である。
【００６０】
図１９は、外部メモリ７の記憶領域を用いた各ユーザによる設定可能項目の一例を説明するための図である。
図１９に示すように、出荷担当者は、例えば、識別データＡＰ＿ＩＤが「０ｘ００００〜０ｘ０００Ｆ」の記憶領域に対してアクセス可能であり、一般ユーザ用のＡＰリソース鍵データＫ＿ＡＰＲの出荷鍵の設定、並びにＳＡＭモジュール８の固有機器番号の設定が可能である。
【００６１】
また、特権ユーザは、識別データＡＰ＿ＩＤが「０ｘＦＦＦＦ」の記憶領域にアクセス可能であり、ＳＡＭモジュール８のＳＡＭ＿ＩＤの設定、並びに、特権ユーザ用ＡＰ領域運用鍵の設定が可能である。
【００６２】
また、一般ユーザは、ユーザ共通領域として識別データＡＰ＿ＩＤが「０ｘＦＦＦＥ」の領域にアクセス可能であり、一般ユーザ領域として識別データＡＰ＿ＩＤが「０ｘ００００〜０ｘ０００Ｆ」の領域にアクセス可能である。一般ユーザは、当該領域に対して、ＳＡＭモジュール８のＳＡＭ＿ＩＤのネットマスク、ＳＡＭモジュール８のＩＰアドレスなどのネットワーク情報、ＡＰリソース鍵データＫ＿ＡＰＲ、その他のアプリケーションエレメントデータＡＰＥなどの設定が可能である。
ユーザは、当該ユーザに公開された記憶領域のＡＰリソース鍵データＫ＿ＡＰＲを受け、それを自分のみが知る値に変更することで、アプリケーションプログラムＡＰ内部のリソースの変更を他からできないようにする。
また、ユーザ共通領域は、各ユーザが自らの一般ユーザ領域に設定を行う際に使用するＡＰリソース鍵データＫ＿ＡＰＲを用いてアクセスできるようにする。すなわち、共通の鍵データを用いる。
【００６３】
上述した外部メモリ７の記憶領域の管理は、例えば、図１８に示す内部リソース割当管理用データ３０４を用いて、識別データＡＰ＿ＩＤおよびＡＰＥ＿ＩＤを用いて行われる。すなわち、外部メモリ７を、識別データＡＰ＿ＩＤおよびＡＰＥ＿ＩＤを用いて規定されるマトリクス状の領域に分割して管理する。
図１８に示す場合は、外部メモリ７の記憶領域のうち、ＡＰＥ＿ＩＤが「０ｘ７Ｆ０６」〜「０ｘＦＦＦＦ」までの領域をシステム領域とし、ＡＰＥ＿ＩＤが「０ｘ００００」〜「０ｘ７Ｆ００」までの領域を一般ユーザ領域として使用する。
また、ＡＰ＿ＩＤが「０ｘｆｆｆｄ」のアプリケーションプログラムの記憶領域を、一般ユーザ共通領域として使用する。
【００６４】
アプリケーションエレメントデータＡＰＥは、暗号化されたパッケージを各領域別に設定することで、外部メモリ７に格納される。この際、必要なリソースエレメントのみを選択して暗号化することが可能である。
【００６５】
以下、ＳＡＭモジュール８のＣＰＵが、上述した内部リソース割当管理用データ３０４を用いて、外部メモリ７の記憶領域（リソース）を管理する手順を説明する。
図２０は、当該手順を説明するための図である。
ステップＳＴ６１：
例えば、図１に示すサービス事業者１５＿１〜１５＿４などの一般ユーザあるいは特権ユーザなどが、インターネット１０に接続されたパーソナルコンピュータを操作して、外部メモリ７内のアクセスを行うアプリケーションプログラムＡＰを指定し、自らの所有するＡＰリソース鍵データＫ＿ＡＰＲを用いて、ＡＳＰサーバ装置１９を介してＳＡＭモジュール８にアクセスを行う。
【００６６】
ステップＳＴ６２：
ＳＡＭモジュール８のＣＰＵは、ステップＳＴ６１のアクセス元が、指定されたしたアプリケーションプログラムＡＰに適合したＡＰリソース鍵データＫ＿ＡＰＲを有しているか否かを判断し、有していると判断した場合にはステップＳＴ６４の処理に進み、有していないと判断した場合にはステップＳＴ６３の処理に進む。
【００６７】
ステップＳＴ６３：
ＳＡＭモジュール８のＣＰＵは、当該指定されたアプリケーションプログラムＡＰへの、当該ユーザによるアプリケーションエレメントデータＡＰＥの設定を許可しない。
【００６８】
ステップＳＴ６４：
ＳＡＭモジュール８のＣＰＵは、当該指定されたアプリケーションプログラムＡＰへの、当該ユーザによるアプリケーションエレメントデータＡＰＥの設定を許可する。
【００６９】
ステップＳＴ６５：
ＳＡＭモジュール８のＣＰＵは、当該ユーザが特権ユーザであるか否かを判断し、特権ユーザであると判断した場合にはステップＳＴ６６の処理に進み、特権ユーザではないと判断した場合にステップＳＴ６７の処理に進む。
【００７０】
ステップＳＴ６６：
ＳＡＭモジュール８のＣＰＵは、当該ユーザに対して、指定されたアプリケーションプログラムＡＰ内の特権ユーザ用のアプリケーションエレメントデータＡＰＥの設定を許可する。
【００７１】
ステップＳＴ６７：
ＳＡＭモジュール８のＣＰＵは、当該ユーザが一般ユーザであるか否かを判断し、一般ユーザであると判断した場合にはステップＳＴ６８の処理に進み、一般ユーザではないと判断した場合にステップＳＴ６９の処理に進む。
【００７２】
ステップＳＴ６８：
ＳＡＭモジュール８のＣＰＵは、当該ユーザに対して、指定されたアプリケーションプログラムＡＰ内の一般ユーザ用および一般ユーザ共通用のアプリケーションエレメントデータＡＰＥの設定を許可する。
【００７３】
ステップＳＴ６９：
ＳＡＭモジュール８のＣＰＵは、当該ユーザに対して、システム領域内のアプリケーションエレメントデータＡＰＥの設定を許可する。
【００７４】
〔ＳＡＭモジュール８〕
ＳＡＭモジュール８は、ＳＣＳＩまたはＥｔｈｅｒｎｅｔ（登録商標）などを介してＡＳＰサーバ装置１９に接続される。ＡＳＰサーバ装置１９は、インターネット１０を介して、エンドユーザのパーソナルコンピュータ５、サービス事業者１５＿１，１５＿２，１５＿３のパーソナルコンピュータ１６＿１，１６＿２，１６＿３を含む複数の端末装置に接続される。
パーソナルコンピュータ５は、例えば、シリアルまたはＵＳＢを介してＤｕｍｂ型のカードリーダ・ライタ４に接続されている。カードリーダ・ライタ４が、ＩＣカード３との間で物理レベルに相当する例えば無線通信を実現する。
ＩＣカード３への操作コマンドおよびＩＣカード３からのリスポンスパケットは、ＳＡＭユニット９側で生成および解読される。よって、その中間に介在するカードリーダ・ライタ４、パーソナルコンピュータ５およびＡＳＰサーバ装置１９は、コマンドやリスポンス内容をデータペイロード部分に格納して中継する役割を果たすのみで、ＩＣカード３内のデータの暗号化や復号および認証などの実操作には関与しない。
【００７５】
パーソナルコンピュータ１６＿１，１６＿２，１６＿３は、後述するスクリプトプログラムをＳＡＭモジュール８にダウンロードすることで、それぞれアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３をカスタマイズできる。
【００７６】
図２１は、図１に示すＳＡＭモジュール８の機能ブロック図である。
図２１に示すように、ＳＡＭモジュール８は、ＡＳＰＳ通信インタフェース部６０、外部メモリ通信インタフェース部６１、バススクランブル部６２、乱数発生部６３、暗号・復号部６４、メモリ６５およびＣＰＵ６６を有する。
ＳＡＭモジュール８は、耐タンパ性のモジュールである。
【００７７】
ＡＳＰＳ通信インタフェース部６０は、図１に示すＡＳＰサーバ装置１９との間のデータ入出力に用いられるインタフェースである。
外部メモリ通信インタフェース部６１は、外部メモリ７との間のデータ入出力に用いられるインタフェースである。
バススクランブル部６２は、外部メモリ通信インタフェース部６１を介してデータを入出力する際に、出力するデータをスクランブルし、入力したデータをデスクランブルする。
乱数発生部６３は、認証処理を行う際に用いられる乱数を発生する。
暗号・復号部６４は、データの暗号化、並びに暗号化されたデータの復号を行う。
メモリ６５は、後述するように、ＣＰＵ６６によって用いられるタスク、プログラム、並びにデータを記憶する。
ＣＰＵ６６は、後述するスクリプトダウンロードタスク、スクリプト解釈タスク、エンティティ生成タスク（ジョブ管理用データ作成タスク）およびＩＣカード手続管理タスク（ジョブ管理用データ管理タスク）などのタスクを実行する。  ＣＰＵ６６は、前述したアプリケーションエレメントデータＡＰＥのバージョン管理処理、並びに、一般ユーザ領域、ユーザ共通領域、特権ユーザ領域の管理処理を行う。
ＣＰＵ６６は、ＳＡＭユニット９内での操作コマンドに基づいてＳＡＭユニット９内で規定された処理を行い、ＩＣカード３のＩＣモジュール３ａおよび携帯通信装置４１のＩＣモジュール４２の操作コマンドとに基づいて、ＩＣモジュール３ａおよびＩＣモジュール４２の処理を制御する。
【００７８】
以下、メモリ６５に記憶されるタスク、プログラムおよびデータについて説明する。
図２２は、メモリ６５に記憶されるタスク、プログラムおよびデータを説明するための図である。
図２２に示すように、スクリプトダウンロードタスク６９、スクリプト解釈タスク７０、エンティティ生成タスク７１、ＩＣカード手続管理用タスク７２、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１〜２１＿３、ＡＰ管理用テーブルデータ３００＿１〜３００＿３、ＡＰＰテーブルデータ３１０＿１〜３１０＿３、ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３、ＩＣカードエンティティデータ７３＿ｘ、入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３、並びに演算定義用データブロック３４＿ｘ４を記憶している。
【００７９】
スクリプトダウンロードタスク６９は、図１３に示すように、ＡＰ管理用テーブルデータ３００＿１〜３００＿３（必要に応じてＡＰＰテーブルデータ３１０＿１〜３１０＿３）を、例えば、各サービス事業者のコンピュータからダウンロードし、これをＳＡＭモジュール８に取り込む。
【００８０】
スクリプト解釈タスク７０は、各サービス事業者毎に、サービス定義テーブルデータ（必要に応じてＡＰＰテーブルデータ３１０＿１〜３１０＿３）およびスクリプトプログラムを用いて、ＩＣカードエンティティテンプレートデータ、入力用データブロック、出力用データブロック、ログ用データブロックおよび演算定義用データブロックを生成する。
各サービス事業者毎に生成されるデータブロックの数は特に限定されない。
【００８１】
エンティティ生成タスク７１は、例えば、ＡＳＰサーバ装置１９からエンティティ作成要求を受けると、ＩＣカード３との間でポーリングを行った後に、当該ＩＣカード３とサービス事業者との間の手続き処理に用いるＩＣカードエンティティデータを、当該サービス事業者に対応するＩＣカードエンティティテンプレートデータを用いて生成する。このとき、ＩＣカードエンティティテンプレートデータがクラスとなり、当該クラスのインスタンスとして、ＩＣカードエンティティデータが生成される。
エンティティ生成タスク７１によるＩＣカードエンティティデータの生成処理について後に詳細に説明する。
【００８２】
ＩＣカード手続管理用タスク７２は、メモリ６５内に存在する単数または複数のＩＣカードエンティティデータ７３＿ｘを用いて、ＩＣカード３とサービス事業者１５＿１〜１５＿３との間の手続き処理を実行する。
本実施形態では、複数のＩＣカード３とサービス事業者１５＿１〜１５＿３との間で行われる複数の手続き処理が同時に進行する。
ＩＣカード手続管理用タスク７２は、これら複数の手続き処理を並行して実行する。
ＩＣカード手続管理用タスク７２は、一連の手続きを終了したＩＣカードエンティティデータ７３＿ｘを消去する。
ＩＣカード手続管理用タスク７２の処理については後に詳細に説明する。
【００８３】
スクリプトプログラム２１＿１〜２１＿２は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、メモリ６５に記憶される。
ＡＰ管理用テーブルデータ３００＿１〜３００＿３は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、メモリ６５に記憶される。
ＡＰＰテーブルデータ３１０＿１〜３１０＿３は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、メモリ６５に記憶される。
【００８４】
ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３は、スクリプト解釈タスク７０によって生成され、それぞれのサービス事業者に関する手続きのＩＣカードエンティティデータ７３＿ｘを生成する際のテンプレート（クラス）として用いられる。
ＩＣカードエンティティデータ７３＿ｘは、エンティティ生成タスク７１によって、ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３を例えばクラスとして用い、当該クラスのインスタンスとして生成される。
【００８５】
入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４は、スクリプト解釈タスク７０によって生成される。
【００８６】
以下、ＩＣカードエンティティデータ７３＿ｘについて説明する。
ＩＣカードエンティティデータ７３＿ｘは、例えば、ＡＳＰサーバ装置１９からＩＣカード３と所定のサービス事業者のアプリケーションプログラムを用いた処理の処理要求をＳＡＭモジュール８が受けたときに、ＳＡＭモジュール８内のエンティティ生成タスク７１が、既に生成されている対応するサービス事業者のＩＣカードエンティティプレートデータを用いて生成する。
【００８７】
図２３は、ＩＣカードエンティティデータ７３＿ｘのフォーマットを説明するための図である。
図２３に示すように、ＩＣカードエンティティデータ７３＿ｘは、管理用ポインタデータ８０、エンティティＩＤデータ８１、エンティティステータスデータ（ステータスデータ）８２、ＩＣカード種別データ８３、ＡＰＥ＿Ｎ指定データ８４、処理順番データ８５、処理前データ８６および処理後データ８７を有する。
【００８８】
管理用ポインタデータ８０には、メモリ６５内でＩＣカードエンティティデータ７３＿ｘを管理するための双方向ポインタである。
エンティティＩＤデータ８１は、ＩＣカードエンティティデータ７３＿ｘの生成要求、進行状況の確認、削除などのＩＣカードエンティティデータ７３＿ｘを用いた一連の処理に用いられる。エンティティＩＤデータ８１は、エンドユーザに渡される返り値ともなる。エンティティＩＤデータ８１は一般的なファイルシステム上のファイルオープン時のディスクリプタに相当する。
【００８９】
エンティティステータスデータ８２は、ＩＣカード３に関する手続きの進行状態を示す。
ＩＣカードエンティティデータ７３＿ｘが持つ基本的な状態には、図２４に示すように、ＩＣカード３が利用できるサービスを調べる処理の状態（ＲＳ）、ＳＡＭモジュール８がＩＣカード３を認証する処理の状態（Ａ１）、ＩＣカード３がＳＡＭモジュール８を認証する処理の状態（Ａ２）、ＩＣカード３からデータ読み出す処理の状態（Ｒ）、ＩＣカード３にデータ書き込む処理の状態（Ｗ）がある。
本実施形態では、サービス事業者を調べる処理、ＳＡＭモジュール８がＩＣカード３を認証する処理、ＩＣカード３がＳＡＭモジュール８を認証する処理、ＩＣカード３からデータ読み出す処理、並びにＩＣカード３にデータ書き込む処理のそれぞれがジョブに対応している。
当該ジョブは、後述するように、ＩＣカード手続管理用タスク７２によって、実行順番が決定される処理の単位になる。
なお、Ａ１，Ａ２によって、ＩＣカード３とＳＡＭモジュール８との間の相互認証処理が構成される。
【００９０】
また、本実施形態では、インターネット１０での通信時間を考慮して、前述した各基本的な状態を図２４の状態遷移図に示されるように、起動後（コマンド発行後）の状態と完了（応答受け取り後）状態とに分けて管理する。
具体的には、インスタンス生成（ＩＣカードエンティティデータ生成）状態、ＲＳ起動後状態、ＲＳ完了状態、Ａ１起動後状態、Ａ１完了状態、Ａ２起動後状態、Ａ２完了状態、Ｒ起動状態、Ｒ完了状態、Ｗ起動状態、Ｗ完了状態、並びにインスタン（ＩＣカードエンティティデータ）消去状態によって、ＩＣカードエンティティデータ７３＿ｘを用いた処理状態が管理される。
【００９１】
ＩＣカード種別データ８３は、当該ＩＣカード３を発行したサービス事業者を特定するデータである。
ＩＣカード種別データ８３には、ＩＣカードエンティティデータ７３＿ｘの生成時に、前述したスクリプトプログラム内のＣＩコマンドによって規定されたデータが設定される。
【００９２】
サービスタイプエレメントデータ８４は、ＩＣカードエンティティデータ７３＿ｘを用いた処理で利用する、ＡＰ管理用テーブルデータ３００＿１〜３００＿３およびＡＰＰテーブルデータ３１０＿１〜３１０＿３内で定義されたアプリケーションエレメントデータＡＰＥを示す。
サービスタイプエレメントデータ８４には、ＩＣカードエンティティデータ７３＿ｘの生成時に、前述したスクリプトプログラム内のＣＳコマンドで指定された単数または複数のアプリケーションエレメントデータＡＰＥが設定される。
【００９３】
処理順番データ８５は、ＩＣカードエンティティデータ７３＿ｘを用いた処理で利用するサービス（ジョブ）を実行する順番、すなわち、図２４に示す遷移状態を示す。
すなわち、処理順番データ８５は、アプリケーションエレメントデータＡＰＥの名前ＡＰＥ＿Ｎを用いて、ＩＣカード３の基本的な操作に対応するジョブの実行順番を示す。
ここで、ジョブは、前述したように、図２４に示すＲＳ，Ａ１，Ａ２，Ｒ，Ｗに相当する。ＩＣカード３への具体的操作は、ジョブを用いて指定された処理順番により実現される。例えば、相互認証無しの読み込みのみのＩＣカード３を用いた処理については、処理順番データ８５には「ＲＳ→Ｒ」が設定される。また、相互認証有りの読み込みおよび書き込みの場合には、処理順番データ８５には、「ＲＳ→Ａ１→Ａ２→Ｒ→Ｗ」が設定される。
処理順番データ８５には、ＩＣカードエンティティデータ７３＿ｘの生成時に、前述したスクリプトプログラム内のコマンド内で指定されたサービスエレメントの順番に対応するジョブの順番が設定される。
【００９４】
処理前データ８６には、ＡＳＰサーバ装置１９側から、ＩＣカードエンティティデータ７３＿ｘを用いた処理を行うための管理用データが設定される。。
例えば、処理前データ８６には、ＳＦデータブロック内に指定されたサービス（アプリケーションエレメントデータＡＰＥ）の演算式のポイントが設定される。
また、サービス間演算機能が定義されていない場合には、処理前データ８６には、要求処理金額が設定される。
例えば、決済の場合であれば、課金額や付与ポイント数などに関する状態が設定される。
【００９５】
処理後データ８７は、ＡＳＰサーバ装置１９側で必要な、ＩＣカードエンティティデータ７３＿ｘの処理結果のデータが設定される。例えば決済の場合であれば、決済の正常終了の有無などを示すデータが設定される。
【００９６】
以下、通信システム１が行う動作例を説明するが、当該動作例において、アプリケーションエレメントデータＡＰＥを用いた処理は、データＡＰＥに複数のバージョンがある場合に、図９〜図１２などを用いて説明したバージョン管理機能により、指定されたバージョンに基づいた処理が行われる。
【００９７】
以下、図２２に示すＩＣカード手続管理用タスク７２による、複数のＩＣカードエンティティデータ７３＿ｘを用いて、複数のＩＣカード３に係わる処理を行う手順を説明する。
ＩＣカード手続管理用タスク７２は、例えば、図２１に示すＳＡＭモジュール８のＣＰＵ６６上で常に起動されている。
図２５は、ＩＣカード手続管理用タスク７２が行う処理のフローチャートである。
ステップＳＴ１：
ＩＣカード手続管理用タスク７２は、メモリ６５内に存在する複数のＩＣカードエンティティデータ７３＿ｘのうち、次に処理を実行する一つのＩＣカードエンティティデータ７３＿ｘを選択する。
当該ＩＣカードエンティティデータ７３＿ｘの選択方法は、メモリ６５内に存在するＩＣカードエンティティデータ７３＿ｘを順番に選択してもよいし、優先順位を付けて高い優先順位のものを優先的に選択してもよい。
【００９８】
ステップＳＴ２：
ＩＣカード手続管理用タスク７２は、ステップＳＴ１で選択したＩＣカードエンティティデータ７３＿ｘのジョブが既に起動されているか否かを判断し、起動されていると判断した場合にはステップＳＴ５の処理に進み、起動されていないと判断した場合にはステップＳＴ３の処理に進む。
【００９９】
ステップＳＴ３：
ＩＣカード手続管理用タスク７２は、ステップＳＴ１で選択したＩＣカードエンティティデータ７３＿ｘの図２３に示すエンティティステータスデータ８２から、当該エンティティデータに関する処理が図２４に示す状態遷移図の何れの状態にあるかを判断し、処理順番データ８５から、次に実行するジョブを決定する。
このとき処理順番データ８５には、前述したように、ＡＰ管理用テーブルデータ３００＿１〜３００＿３に設定されたサービスエレメントを用いてジョブの実行順番が規定されている。
【０１００】
ステップＳＴ４：
ＩＣカード手続管理用タスク７２は、ステップＳＴ３で選択したジョブを起動する。
ＩＣカード手続管理用タスク７２は、図１３を用いて前述した入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４のうち、当該ジョブに関係するデータブロックを用いて当該ジョブを実行する。
【０１０１】
このとき、ＩＣカード手続管理用タスク７２は、ジョブの実行に当たってＩＣカード３にコマンドを発行する場合に、当該ジョブに対応するサービスエレメントをキーとしてＡＰ管理用テーブルデータ３００＿１〜３００＿３を検索し、当該サービスエレメントに対応するサービス番号（ＩＣカード３が解釈可能なＩＣカード３の操作コマンド）を得る。そして、ＩＣカード手続管理用タスク７２は、当該得られたサービス番号を用いてＩＣカード３にコマンドを発行する。
また、ＩＣカード手続管理用タスク７２は、ＩＣカード３のＩＣモジュール３ａの記憶領域へのアクセスに鍵データが必要な場合には、当該ジョブに対応するサービスエレメントをキーとしてＡＰ管理用テーブルデータ３００＿１〜３００＿３を検索し、当該サービスエレメントに対応する鍵データを得る。そして、ＩＣカード手続管理用タスク７２は、当該鍵データを用いて、ＩＣカード３との間で相互認証、データの暗号化および復号などの処理を行い、ＩＣカード３の所定の記憶領域にアクセスを行う権限を得る。
【０１０２】
ステップＳＴ５：
ステップＳＴ５が行われるのは、ＩＣカード手続管理用タスク７２が、ＩＣカード３にコマンドを発行し、ＩＣカード３の処理結果を待っているときである。
ＩＣカード手続管理用タスク７２は、ＩＣカード３から処理結果を受け取ると、これをＩＣカードエンティティデータ７３＿ｘに設定する。
【０１０３】
ステップＳＴ６：
ＩＣカード手続管理用タスク７２は、図２３に示すＩＣカードエンティティデータ７３＿ｘのエンティティステータスデータ８２を更新する。
【０１０４】
このように、本実施形態では、ＩＣカード手続管理用タスク７２によって、ＳＡＭモジュール８内に存在する複数のＩＣカード３についてのＩＣカードエンティティデータ７３＿ｘを順に選択しながら、複数のＩＣカード３についての処理を並行して行う。そのため、ＳＡＭモジュール８は、複数のＩＣカード３を用いた手続きの処理要求を受けた場合でも、これらの処理を同時に進行することができる。
【０１０５】
図２６および図２７は、上述した図２５のステップＳＴ４におけるジョブの実行時に、前述したＳＡＭモジュール８がアプリケーションエレメントデータＡＰＥに規定された手順に従って、他のアプリケーションエレメントデータＡＰＥによって規定された処理またはデータにアクセスを行う場合の処理を説明するための図である。
ステップＳＴ４１：
ＳＡＭモジュール８が、所定のアプリケーションエレメントデータＡＰＥに応じた処理を実行中に、利用（アクセス）を行うアプリケーションプログラムと、当該アプリケーションプログラム内のアプリケーションエレメントデータＡＰＥとを特定する。
また、当該利用が、当該アプリケーションエレメントデータＡＰＥの読み出し、書き込みおよび実行の何れであるかも特定する。
【０１０６】
ステップＳＴ４２：
ＳＡＭモジュール８が、ステップＳＴ４１で特定したアプリケーションエレメントデータＡＰＥが、当該ＳＡＭモジュール８内に存在するか否かを判断し、存在しないと判断した場合にはステップＳＴ４３の処理に進み、存在すると判断した場合にはステップＳＴ４５の処理に進む。
【０１０７】
ステップＳＴ４３：
ＳＡＭモジュール８が、実行中のアプリケーションプログラムに対応するＡＰ管理用テーブルデータ３００＿１〜３００＿３を参照して、対応するサービス（アプリケーションエレメントデータＡＰＥ）に対応する鍵データＫ＿ＳＡＭを取得し、当該鍵データＫ＿ＳＡＭを用いて、利用先のアプリケーションエレメントデータＡＰＥを有するＳＡＭモジュール８ａと相互認証を行う。
【０１０８】
ステップＳＴ４４：
ステップＳＴ４３の相互認証でＳＡＭモジュール８と８ａとが互いの正当性を認証すると、ＳＡＭモジュール８はステップＳＴ４５の処理に進み、そうでない場合にはステップＳＴ５０に進む。
【０１０９】
ステップＳＴ４５：
ＳＡＭモジュール８が、実行中のアプリケーションプログラムに対応するＡＰ管理用テーブルデータ３００＿１〜３００＿３を参照して、対応するサービス（アプリケーションエレメントデータＡＰＥ）に対応する鍵データＫ＿ＳＡＭを取得する。
また、ＳＡＭモジュール８が、ステップＳＴ４１で特定した利用先のプリケーションエレメントデータＡＰＥについても、同様に、当該アプリケーションエレメントデータＡＰＥに対応するＡＰ管理用テーブルデータ３００＿１〜３００＿３を参照して、対応するサービス（アプリケーションエレメントデータＡＰＥ）に対応する鍵データＫ＿ＳＡＭを取得する。
そして、ＳＡＭモジュール８が、上記取得した２つの鍵データＫ＿ＳＡＭを比較する。
【０１１０】
スクランブル４６：
ＳＡＭモジュール８は、ステップＳＴ４５の処理で、２つの鍵データＫ＿ＳＡＭが一致していると判断した場合にはステップＳＴ４７の処理に進み、そうでない場合にはステップＳＴ５０に進む。
【０１１１】
ステップＳＴ４７：
ＳＡＭモジュール８あるいは８ａは、ステップＳＴ４１で特定されたアプリケーションプログラムに対応するＡＰ管理用テーブルデータ３００＿１〜３００＿３を参照し、利用されるアプリケーションエレメントデータＡＰＥに対応するＡＰＰテーブルデータ３１０＿１〜３１０＿３を特定する。
【０１１２】
ステップＳＴ４８：
ＳＡＭモジュール８あるいは８ａは、ステップＳＴ４７で特定したＡＰＰテーブルデータ３１０＿１〜３１０＿３を基に、利用（アクセス）されるアプリケーションエレメントデータＡＰＥのアクセス権限を判断する。
具体的には、当該利用されるアプリケーションエレメントデータＡＰＥの読み出し、書き込みおよび実行の権限を判断する。
【０１１３】
ステップＳＴ４９：
ＳＡＭモジュール８あるいは８ａは、ステップＳＴ４８でアクセス権限があると判断した場合にはステップＳＴ５０の処理に進み、そうでない場合にはステップＳＴ５１の処理に進む。
【０１１４】
ステップＳＴ５０：
ＳＡＭモジュール８あるいは８ａは、ステップＳＴ４１で特定されたアプリケーションエレメントデータＡＰＥについて、ステップＳＴ４１で特定された利用を行う。
【０１１５】
ステップＳＴ５１：
ＳＡＭモジュール８あるいは８ａは、ステップＳＴ４１で特定されたアプリケーションエレメントデータＡＰＥについて、ステップＳＴ４１で特定された利用を行う。
【０１１６】
また、ＳＡＭモジュール８は、上述した図２５のステップＳＴ４におけるジョブの実行時に、前述したＳＡＭモジュール８がアプリケーションエレメントデータＡＰＥに規定された手順に従って、ＩＣカード３との間でデータ授受を行う場合には、図１７に示すＡＰ管理用テーブルデータ３００＿１〜３００＿３を参照して、当該アプリケーションエレメントデータＡＰＥに対応する鍵データＫ＿ＣＡＤＲを取得し、当該鍵データＫ＿ＣＡＲＤを用いて、ＩＣカード３のメモリ５０にアクセスを行う。
【０１１７】
以下、図１に示す通信システム１の全体動作について説明する。
図２８および図２９は、図１に示す通信システム１の全体動作を説明するための図である。
【０１１８】
ステップＳＴ２１：
サービス事業者１５＿１〜１５＿３あるいはこれらサービス事業者の依頼を受けた者が、当該サービス事業者がＩＣカード３を用いて行う取り引きについての処理を記述したスクリプトプログラム２１＿１，２１＿２，２１＿３を、例えば、図１に示すパーソナルコンピュータ１６＿１，１６＿２，１６＿３上で作成する。
また、ＳＡＭモジュール８の管理者が、サービス事業者１５＿１〜１５＿３のそれぞれに対応するＡＰ管理用テーブルデータ３００＿１〜３００＿３を作成する。
【０１１９】
ステップＳＴ２２：
ステップＳＴ２１で作成されたＡＰ管理用テーブルデータ３００＿１〜３００＿３が外部メモリ７に記憶される。
また、ステップＳＴ２１で作成されたスクリプトプログラム２１＿１，２１＿２，２１＿３が、パーソナルコンピュータ１６＿１，１６＿２，１６＿３から、インターネット１０、ＡＳＰサーバ装置１９およびＳＡＭモジュール８を介して、外部メモリ７にダウンロードされる。当該ダウンロードの処理は、図１３に示すように、ＳＡＭモジュール８内のスクリプトダウンロードタスク６９によって管理される。
【０１２０】
ステップＳＴ２３：
図１３に示すＳＡＭモジュール８内のスクリプト解釈タスク７０によって、各サービス事業者毎に、ＡＰ管理用テーブルデータ３００＿１〜３００＿３およびスクリプトプログラムを用いて、ＩＣカードエンティティテンプレートデータ、入力用データブロック、出力用データブロック、ログ用データブロックおよび演算定義用データブロックが生成される。
これら生成されたデータは、図２１に示すＳＡＭモジュール８のメモリ６５に格納される。
【０１２１】
ステップＳＴ２４：
ユーザにＩＣカード３が発行される。
図５に示すＩＣカード３のＩＣモジュール３ａには、ユーザが契約を行ったサービス事業者との取り引きに用いられる鍵データが記憶されている。
なお、ユーザとサービス事業者との間の契約は、ＩＣカード３の発行後に、インターネット１０などを介して行ってもよい。
【０１２２】
ステップＳＴ２５：
例えば、ユーザがパーソナルコンピュータ５を用いてインターネット１０を介してサーバ装置２にアクセスを行い、商品を購入しようとした場合に、サーバ装置２がインターネット１０を介してＡＳＰサーバ装置１９に処理要求を出す。
ＡＳＰサーバ装置１９は、サーバ装置２から処理要求を受けると、インターネット１０を介してパーソナルコンピュータ５にアクセスを行う。そして、カードリーダ・ライタ４が出したＩＣカード３についての処理要求が、パーソナルコンピュータ５、インターネット１０およびＡＳＰサーバ装置１９を介してＳＡＭモジュール８に送信される。
【０１２３】
ステップＳＴ２６：
ＡＳＰサーバ装置１９からＳＡＭモジュール８にエンティティ作成要求が出される。当該エンティティ作成要求には、ＩＣカード３の発行元を示すデータが格納されている。
【０１２４】
ステップＳＴ２７：
ＳＡＭモジュール８は、エンティティ作成要求を受けると、ＩＣカード３との間でポーリングを行う。
【０１２５】
ステップＳＴ２８：
ＳＡＭモジュール８のエンティティ生成タスク７１は、ポーリング終了後に、ＳＡＭモジュール８内に存在するＩＣカードエンティティデータ７３＿ｘの数が、スクリプトプログラムのＳＣコマンドによって規定された最大数以内であるか否かを判断し、最大数以内であればステップＳＴ２９の処理に進み、そうでない場合には処理を終了する。
【０１２６】
ステップＳＴ２９：
エンティティ生成タスク７１が、例えば、エンティティ作成要求に格納されたＩＣカード３の発行元を示すデータに基づいて、何れのサービス事業者のＩＣカードエンティティテンプレートデータを用いるかを特定し、当該特定したＩＣカードエンティティテンプレートデータ用いて、ＩＣカードエンティティデータ７３＿ｘを生成する。
これは、図２４に示すインスタンス生成に対応している。
【０１２７】
ステップＳＴ３０：
ＳＡＭモジュール８からＡＳＰサーバ装置１９に、ステップＳＴ２９で生成したＩＣカードエンティティデータ７３＿ｘのエンティティＩＤが出力される。
【０１２８】
ステップＳＴ３１：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２によって、ＩＣカード３で利用可能なサービスが調べられる。
これは、図２４に示すジョブＲＳに対応した処理である。
【０１２９】
ステップＳＴ３２：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２がＩＣカード３の正当性を認証する。
これは、図２４に示すジョブＡ１に対応した処理である。
【０１３０】
ステップＳＴ３３：
ＩＣカード３がＳＡＭモジュール８の正当性を認証する。
これは、図２４に示すジョブＡ２に対応した処理である。
ステップＳＴ３２，ＳＴ３３によって、ＩＣカード３とＳＡＭモジュール８との間の相互認証が行われる。
このとき、前述したように、ＳＡＭモジュール８で実行されているアプリケーションエレメントデータＡＰＥに応じて、図１５に示すＡＰ管理用テーブルデータ３００＿１〜３００＿３が参照されて、鍵データＫ＿ＣＡＲＤが取得され、当該鍵データＫ＿ＣＡＲＤを用いてＳＡＭモジュール８とＩＣカード３のＣＰＵ５１との間で相互認証が行われる。
【０１３１】
ステップＳＴ３４：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２が、ＩＣカード３との間で、手続きに必要なデータの読み書きを行う。
これは、図２４に示すジョブＲ，Ｗに対応した処理である。
また、ＩＣカード手続管理用タスク７２は、ＩＣカードエンティティデータ７３＿ｘの処理前データ８６に基づいて特定した演算式を用いて、ＩＣカード３から読み出したデータを用いて所定の演算処理を行う。
【０１３２】
ステップＳＴ３５：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２が、ステップＳＴ３４の処理結果をＡＳＰサーバ装置１９に出力する。
【０１３３】
ステップＳＴ３６：
例えば、ＩＣカード手続管理用タスク７２が、ＩＣカードエンティティデータ７３＿ｘを消去する。
【０１３４】
以上説明したように、通信システム１およびＳＡＭユニット９によれば、アプリケーションエレメントデータＡＰＥにバージョンの概念を導入することにより、カード操作用鍵・発行用鍵パッケージのバージョン管理が可能となる。
これにより、ＳＡＭモジュール８を使用するサービス事業者がバージョン毎に鍵のＡＰＥ＿ＩＤをＡＰリソースとして個別に定義する作業が不要となるため、管理の負担が軽減される。例えば、異なるＳＡＭモジュール８間でカードの分割用パッケージを授受する場合が想定される。
【０１３５】
また、通信システム１およびＳＡＭユニット９によれば、アプリケーションエレメントデータＡＰＥにタグの概念を導入することにより、バージョンの管理になじまないアプリケーションエレメントデータＡＰＥの参照が可能となる。例えば、サービス事業者が、ＡＰＥ＿ＩＤとＡＰＥ＿ＴＡＧをアプリケーションプログラムに定義すれば、タグにより参照することが可能となる。よって、アプリケーションプログラムの管理法やアクセス法に精通していないサービス事業者への敷居を下げる効果が期待できる。
また、カードを論理的に分割する鍵パッケージは、分割後の情報を一意に特定する情報をすべて含んでいない。よって、ＳＡＭモジュール８間で鍵パッケージを含めた分割情報を特定するためには、サービス事業者間で合意された情報をタグに反映することが不可欠となる。
【０１３６】
また、通信システム１およびＳＡＭユニット９によれば、ＡＰ＿ＩＤとＡＰＥ＿ＩＤの組み合わせにより、システム領域、特権ユーザ領域、一般ユーザ領域に分割することが可能となる。さらに、暗号モジュールの出荷時作業（機器番号等の設定）、第１次運用オペレータ（特権ユーザ）での作業（暗号モジュールのＩＤ等の設定）、第２次運用オペレータ（一般ユーザ）での作業（実現したいカードを用いたサービス等の設定）とオペレータの責任範囲に応じた管理が可能な機構を提供することが可能となる。これにより、暗号モジュールが階層性を持つ複数のユーザを前提として運用することが可能となる。
【０１３７】
また、通信システム１およびＳＡＭユニット９によれば、一般ユーザ領域を共通領域とユーザ固有領域に分割することにより、暗号モジュールにネットワーク設定情報等の共通のデータを全ＡＰリソース所属する全事業者間で一元的に管理することが可能となる。。これにより、個々のユーザが暗号モジュールに関する共通の項目を管理することが可能となる。また、共通領域に設定するＡＰリソース鍵は、ユーザ固有の鍵と兼用にすることができるため、サービス事業者の鍵管理を簡素化することができる。
【０１３８】
また、通信システム１およびＳＡＭユニット９によれば、アプリケーションプログラムＡＰを複数のアプリケーションエレメントデータＡＰＥを用いて構成し、ＡＰ管理用テーブルデータおよびＡＰＰテーブルデータを用いて、各アプリケーションエレメントデータＡＰＥの処理内容を規定することで、ＩＣカード３を用いた多様なサービスを提供できる。
また、通信システム１によれば、ＡＰ管理用テーブルデータおよびＡＰＰテーブルデータを用いて、同一ＳＡＭ内でのアプリケーションエレメントデータＡＰＥの利用、並びに異なるＳＡＭ間でのアプリケーションエレメントデータＡＰＥの利用を高いセキュリティを保ちながら柔軟に実現できる。
また、通信システム１によれば、異なるＳＡＭ間でアプリケーションエレメントデータＡＰＥを利用する場合に、ＳＡＭ間で相互認証を行うため、アプリケーションプログラムのセキュリティを高めることができる。
また、通信システム１によれば、同一のサービス事業者のアプリケーションプログラムに、同じクラスのＳＡＭ＿ＩＤを割り当てることで、同じ事業者のアプリケーションプログラムのアプリケーションエレメントデータＡＰＥ間では、煩雑な相互認証処理を行わないようにすることができ、鍵情報の管理、並びにＳＡＭモジュールの処理負担を軽減できる。
【０１３９】
以下、図３０〜３３を参照して、実施形態のうち、本発明の特徴に係わる部分について、簡単にまとめる。
図３０に示すように、ファイルシステム５００内において各ファイルに世代情報を付加する。世代情報は、ある開始値を持ち、以降世代が増える毎にある増分あるいは減分を加算する方法や、世代が追加された時点の日付等を利用する方法等がある。また、これらを併用してもよい。
アプリケーション５０１からは、世代によらず同一のファイル名でアクセスされる。
選択部５０２は、いずれかの世代のファイルを選択し、アプリケーション５０１からアクセス可能とする。ファイル名を選択するとき、世代を指定する必要があるが、アクセスのたび世代を指定する方法と、カレントの世代を保持しておき、その世代をアクセスする方法である。図３０において、世代指定情報５０４は、カレントの世代を保持する手段である。カレントの世代に対して、他の世代を指定する方法として、カレント世代を基準として、目的のファイルの世代との差分で指定するように出来る。
【０１４０】
また、図３１に示すように、ファイル改竄検出を行う場合に、各世代のファイル毎に署名を付加する。選択部５０２によってファイルを書き込む際に、署名鍵５１０に基づき、署名生成検証部５１１内の特定のアルゴリズムで署名を生成して、ファイルに挿入する。読み出す際には、署名鍵５１０に基づき、署名生成検証部５１１内の特定のアルゴリズムで署名を検証し、署名が正しくない場合には、そのメッセージをアプリケーション５０１へ渡す。
署名検証により、ファイルの改竄を検証できるほか、ファイルが機器の何らかの異常により一部が欠損した場合であっても、それを検出することが出来る。
【０１４１】
また、図３２に示すように、ファイルシステム５００を含む機器がネットワーク５２０に接続され、上位機器５２１によりファイルシステム５００がアクセスされる場合を示す。
署名を付加することにより、ネットワーク５２０上でのデータの改竄、欠損を検出することが出来る。
例えば、図３３に示すように、各ファイル内にレコードが複数存在する場合には、各レコードに署名を付加することが出来る。これにより、レコード毎に署名の検証を行うことが出来るため、特にネットワーク環境でファイルをアクセスする場合等で、ネットワークの状況が不安定な状況においても、上位機器側で受け取ったレコードまでで処理を行うことが可能となる。
【図面の簡単な説明】
【０１４２】
【図１】図１は、本実施形態の通信システムの全体構成図である。
【図２】図２は、図１に示すＩＣカードの機能ブロック図である。
【図３】図３は、図２に示すメモリを説明するための図である。
【図４】図４は、図１に示すＳＡＭモジュールのソフトウェア構造を説明するための図である。
【図５】図５は、図１に示す外部メモリの記憶領域を説明するための図である。
【図６】図６は、図５に示すアプリケーションプログラムＡＰを説明するための図である。
【図７】図７は、図６に示すアプリケーションエレメントデータＡＰＥの種別を説明するための図である。
【図８】図８は、図７に示す種別に対応したバージョンを説明するための図である。
【図９】図９は、図１に示すＳＡＭモジュールにおけるアプリケーションエレメントデータのバージョン管理の第１の例を説明するための図である。
【図１０】図１０は、図１に示すＳＡＭモジュールにおけるアプリケーションエレメントデータのバージョン管理の第２の例を説明するための図である。
【図１１】図１１は、図９に示すバージョン管理の適用例を説明するための図である。
【図１２】図１２は、ログデータのバージョン管理を説明するための図である。
【図１３】図１３は、示すＩＣカード操作用マクロコマンドスクリプトプログラムで使用されるコマンドを説明するための図である。
【図１４】図１４は、図５に示すＡＰ管理用記憶領域を説明するための図である。
【図１５】図１５は、図１４に示すＡＰ管理用テーブルデータを説明するための図である。
【図１６】図１６は、ＳＡＭ＿ＩＤを説明するための図である。
【図１７】図１７は、図１４に示すＡＰＰテーブルデータを説明するための図である。
【図１８】図１８は、図１４に示す内部リソース割当管理用データを説明するための図である。
【図１９】図１９は、ユーザと、当該ユーザが設定可能な項目との対応関係を説明するための図である。
【図２０】図２０は、図１８に示す内部リソース割当管理用データを用いたユーザ管理を説明するためのフローチャートである。
【図２１】図２１は、図１に示すＳＡＭモジュールの機能ブロック図である。
【図２２】図２２は、図２１に示すメモリに記憶されるタスク、プログラムおよびデータを説明するための図である。
【図２３】図２３は、ＩＣカードエンティティデータ７３＿ｘのフォーマットを説明するための図である。
【図２４】図２４は、図２３に示すエンティティステータスデータの状態遷移を説明するための図である。
【図２５】図２５は、ＩＣカード手続管理用タスクが行う処理のフローチャートである。
【図２６】図２６は、図２５のステップＳＴ４におけるジョブの実行時に、ＳＡＭモジュールがアプリケーションエレメントデータＡＰＥに規定された手順に従って、他のアプリケーションエレメントデータＡＰＥによって規定された処理またはデータにアクセスを行う場合の処理を説明するための図である。
【図２７】図２７は、図２５のステップＳＴ４におけるジョブの実行時に、ＳＡＭモジュールがアプリケーションエレメントデータＡＰＥに規定された手順に従って、他のアプリケーションエレメントデータＡＰＥによって規定された処理またはデータにアクセスを行う場合の処理を説明するための図である。
【図２８】図２８は、図１に示す通信システムの全体動作を説明するための図である。
【図２９】図２９は、図１に示す通信システムの全体動作を説明するための図である。
【図３０】図３０は、図１に示す実施形態におけるバージョン管理の概要を説明するための図である。
【図３１】図３１は、図１に示す実施形態における署名処理の概要を説明するための図である。
【図３２】図３２は、図１に示す実施形態における上記機器との間の署名処理の概要を説明するための図である。
【図３３】図３３は、図１に示す実施形態における上記機器との間の署名処理の概要を説明するための図である。
【符号の説明】
【０１４３】
１…通信システム、２…サーバ装置、３…ＩＣカード、３ａ…ＩＣモジュール、４…カードリーダ・ライタ、５…パーソナルコンピュータ、７，７ａ…外部メモリ、８…ＳＡＭモジュール、９，９ａ…ＳＡＭユニット、１５＿１〜１５＿３…サービス事業者、１９…ＡＳＰサーバ装置、４１…携帯通信装置、４２…ＩＣモジュール
【図１】
2008102943.tif 000003
【図２】
2008102943.tif 000004
【図３】
2008102943.tif 000005
【図４】
2008102943.tif 000006
【図５】
2008102943.tif 000007
【図６】
2008102943.tif 000008
【図７】
2008102943.tif 000009
【図８】
2008102943.tif 000010
【図９】
2008102943.tif 000011
【図１０】
2008102943.tif 000012
【図１１】
2008102943.tif 000013
【図１２】
2008102943.tif 000014
【図１３】
2008102943.tif 000015
【図１４】
2008102943.tif 000016
【図１５】
2008102943.tif 000017
【図１６】
2008102943.tif 000018
【図１７】
2008102943.tif 000019
【図１８】
2008102943.tif 000020
【図１９】
2008102943.tif 000021
【図２０】
2008102943.tif 000022
【図２１】
2008102943.tif 000023
【図２２】
2008102943.tif 000024
【図２３】
2008102943.tif 000025
【図２４】
2008102943.tif 000026
【図２５】
2008102943.tif 000027
【図２６】
2008102943.tif 000028
【図２７】
2008102943.tif 000029
【図２８】
2008102943.tif 000030
【図２９】
2008102943.tif 000031
【図３０】
2008102943.tif 000032
【図３１】
2008102943.tif 000033
【図３２】
2008102943.tif 000034
【図３３】
2008102943.tif 000035