(57)【要約】【課題】  ＩＣカードへのコマンド転送に係るサービス提供者装置における処理負荷を軽減し、コマンド転送時における通信エラーの発生を低減する。【解決手段】  サービス提供者装置４０は、複数のコマンドからなるコマンドデータ群を端末装置２０へ一括して送信し、端末装置２０は、受信したコマンドデータ群に含まれるコマンドデータを１つずつＩＣカード１０へ送信する。ＩＣカード１０は、そのコマンドデータに対応付けられた処理を実行し、その実行結果の情報を返信情報として端末装置２０へ返信する。端末装置２０は、その返信情報を受信し、その返信情報がエラーを意味する情報であるか否かを検証し、エラーを意味する情報であった場合には、コマンド転送の失敗を意味する失敗通知をサービス提供者装置４０に送信する。【選択図】      図１
2007080083.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリとコマンド受信手段とを少なくとも備え、前記コマンド受信手段がコマンドデータを受信したとき、そのコマンドデータにあらかじめ対応付けられた処理を実行するＩＣカードと、
コンピュータによって構成され、複数の前記コマンドデータを含んで構成されたコマンドデータ群を生成し、前記生成したコマンドデータ群を前記ＩＣカードに転送することによって、所定の情報処理サービスを前記ＩＣカードに提供するサービス提供者装置と、
コンピュータによって構成され、前記サービス提供者装置にネットワークを介して接続されるとともに、前記ＩＣカードが接続される端末装置と
を含んで構成されたＩＣカード情報サービスシステムにおけるＩＣカードコマンド転送方法であって、
前記サービス提供者装置が、前記コマンドデータ群を前記端末装置へ一括して送信し、
前記端末装置が、前記コマンドデータ群を受信し、前記受信したコマンドデータ群に含まれるコマンドデータを１つずつＩＣカードへ送信し、
前記ＩＣカードが、前記コマンドデータを受信し、前記受信したコマンドデータに対応付けられた処理を実行し、その実行結果に係る情報を返信情報として前記端末装置へ返信し、
前記端末装置が、前記返信情報を受信し、前記受信した返信情報を検証する処理を実行すること
を特徴とするＩＣカードコマンド転送方法。
【請求項２】
請求項１に記載のＩＣカードコマンド転送方法であって、
前記端末装置が実行する返信情報を検証する処理は、前記返信情報にエラーを意味する情報を含むか否かを判定し、エラーを意味する情報であった場合には、コマンドデータ転送の失敗を意味する失敗通知情報を前記サービス提供者装置へ送信する処理であること
を特徴とするＩＣカードコマンド転送方法。
【請求項３】
請求項１に記載のＩＣカードコマンド転送方法であって、
前記サービス提供者装置が前記端末装置へ一括して送信する前記コマンドデータ群は、コマンドデータとそのコマンドデータに関連付けられた期待値との組の集合であり、
前記端末装置が実行する返信情報を検証する処理は、前記返信情報と、前記返信情報を得るために先に送信したコマンドデータに関連付けられた前記期待値とを比較し、前記返信情報と前記期待値とが不一致であった場合には、コマンドデータ転送の失敗を意味する失敗通知情報を前記サービス提供者装置へ送信する処理であること
を特徴とするＩＣカードコマンド転送方法。
【請求項４】
請求項１に記載のＩＣカードコマンド転送方法であって、
前記サービス提供者装置が前記端末装置へ一括して送信する前記コマンドデータ群は、コマンドデータと、そのコマンドデータに関連付けられた複数の期待値と、その複数の期待値それぞれに関連付けられた複数の処理名称との組の集合であり、
前記端末装置が実行する返信情報を検証する処理は、前記返信情報と、前記返信情報を得るために先に送信したコマンドデータに関連付けられた前記複数の期待値とを比較し、前記返信情報と一致する前記期待値に関連付けられた処理名称によって指示された処理を実行する処理であること
を特徴とするＩＣカードコマンド転送方法。
【請求項５】
ＣＰＵとメモリとコマンド受信手段とを少なくとも備え、前記コマンド受信手段がコマンドデータを受信したとき、そのコマンドデータにあらかじめ対応付けられた処理を実行するＩＣカードと、
コンピュータによって構成され、複数の前記コマンドデータを含んで構成されたコマンドデータ群を生成し、前記生成したコマンドデータ群を前記ＩＣカードに転送することによって、所定の情報処理サービスを前記ＩＣカードに提供するサービス提供者装置と、
コンピュータによって構成され、前記サービス提供者装置にネットワークを介して接続されるとともに、前記ＩＣカードが接続される端末装置と
を含んで構成されたＩＣカード情報サービスシステムであって、
前記サービス提供者装置が、前記コマンドデータ群を前記端末装置へ一括して送信し、
前記端末装置が、前記コマンドデータ群を受信し、前記受信したコマンドデータ群に含まれるコマンドデータを１つずつＩＣカードへ送信し、
前記ＩＣカードが、前記コマンドデータを受信し、前記受信したコマンドデータに対応付けられた処理を実行し、その実行結果に係る情報を返信情報として前記端末装置へ返信し、
前記端末装置が、前記返信情報を受信し、前記受信した返信情報を検証する処理を実行すること
を特徴とするＩＣカード情報サービスシステム。
【請求項６】
請求項５に記載のＩＣカード情報サービスシステムであって、
前記端末装置が実行する返信情報を検証する処理は、前記返信情報にエラーを意味する情報を含むか否かを判定し、エラーを意味する情報であった場合には、コマンドデータ転送の失敗を意味する失敗通知情報を前記サービス提供者装置へ送信する処理であること
を特徴とするＩＣカード情報サービスシステム。
【請求項７】
請求項５に記載のＩＣカード情報サービスシステムであって、
前記サービス提供者装置が前記端末装置へ一括して送信する前記コマンドデータ群は、コマンドデータとそのコマンドデータに関連付けられた期待値との組の集合であり、
前記端末装置が実行する返信情報を検証する処理は、前記返信情報と、前記返信情報を得るために先に送信したコマンドデータに関連付けられた前記期待値とを比較し、前記返信情報と前記期待値とが不一致であった場合には、コマンドデータ転送の失敗を意味する失敗通知情報を前記サービス提供者装置へ送信する処理であること
を特徴とするＩＣカード情報サービスシステム。
【請求項８】
請求項５に記載のＩＣカード情報サービスシステムであって、
前記サービス提供者装置が前記端末装置へ一括して送信する前記コマンドデータ群は、コマンドデータと、そのコマンドデータに関連付けられた複数の期待値と、その複数の期待値それぞれに関連付けられた複数の処理名称との組の集合であり、
前記端末装置が実行する返信情報を検証する処理は、前記返信情報と、前記返信情報を得るために先に送信したコマンドデータに関連付けられた前記複数の期待値とを比較し、前記返信情報と一致する前記期待値に関連付けられた処理名称によって指示された処理を実行する処理であること
を特徴とするＩＣカード情報サービスシステム。
【請求項９】
ＣＰＵとメモリとコマンド受信手段とを少なくとも備え、前記コマンド受信手段がコマンドデータを受信したとき、そのコマンドデータにあらかじめ対応付けられた処理を実行するＩＣカードと、
コンピュータによって構成され、複数の前記コマンドデータを含んで構成されたコマンドデータ群を生成し、前記生成したコマンドデータ群を前記ＩＣカードに転送することによって、所定の情報処理サービスを前記ＩＣカードに提供するサービス提供者装置と、
コンピュータによって構成され、前記サービス提供者装置にネットワークを介して接続されるとともに、前記ＩＣカードが接続される端末装置と
を含んで構成されたＩＣカード情報サービスシステムに用いられる端末装置であって、
前記サービス提供者装置から一括して送信される前記コマンドデータ群を一括して受信し、
前記受信したコマンドデータ群に含まれる前記コマンドデータを１つずつＩＣカードへ送信し、
前記ＩＣカードが前記コマンドデータに対応付けられた処理の実行結果に係る情報として返信する返信情報を受信し、
前記受信した返信情報を検証する処理を実行すること
を特徴とする端末装置。
【請求項１０】
請求項９に記載の端末装置であって、
前記返信情報を検証する処理は、前記返信情報にエラーを意味する情報を含むか否かを判定し、エラーを意味する情報であった場合には、コマンドデータ転送の失敗を意味する失敗通知情報を前記サービス提供者装置へ送信する処理であること
を特徴とする端末装置。
【請求項１１】
請求項９に記載の端末装置であって、
前記コマンドデータ群は、コマンドデータとそのコマンドデータに関連付けられた期待値との組の集合であり、
前記返信情報を検証する処理は、前記返信情報と、前記返信情報を得るために先に送信したコマンドデータに関連付けられた前記期待値とを比較し、前記返信情報と前記期待値とが不一致であった場合には、コマンドデータ転送の失敗を意味する失敗通知情報を前記サービス提供者装置へ送信する処理であること
を特徴とする端末装置。
【請求項１２】
請求項９に記載の端末装置であって、
前記コマンドデータ群は、コマンドデータと、そのコマンドデータに関連付けられた複数の期待値と、その複数の期待値それぞれに関連付けられた複数の処理名称との組の集合であり、
前記返信情報を検証する処理は、前記返信情報と、前記返信情報を得るために先に送信したコマンドデータに関連付けられた前記複数の期待値とを比較し、前記返信情報と一致する前記期待値に関連付けられた処理名称によって指示された処理を実行する処理であること
を特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣ（Integrated Circuits）カードを動作させるためのコマンドを、サービス提供者のサーバ装置からＩＣカードへ転送する際に用いられるＩＣカードコマンド転送方法、ＩＣカードコマンド転送システム、および、ＩＣカードコマンド転送端末装置に関する。
【背景技術】
【０００２】
近年、ＩＣカードやスマートカード（以下、ＩＣカードという）は、プリペイカード、病院のカルテ、企業における社員管理など広い分野で応用され始めている。ＩＣカードを応用した情報サービスシステムにおいては、１枚のＩＣカードが、例えば、社員の出退勤管理や社員食堂での利用管理などに用いられるなど、種々の複数のサービスに利用されている。そのＩＣカードが提供するサービスは、ＩＣカードに導入されたアプリケーションプログラム（以下、アプリケーションと略す）によって実現される。
【０００３】
アプリケーションは、サービスが限定されたＩＣカードの場合には、ＩＣカード発行時にあらかじめＩＣカードに内蔵されたマスクＲＯＭやフラッシュメモリなどの不揮発性メモリに書き込んだ形態で提供される。しかしながら、ＩＣカードの応用範囲が拡大するに従い、アプリケーションは、ＩＣカード発行後にサービス提供者のサーバ装置（以下、サービス提供者装置という）からＩＣカードへダウンロードする形態で提供されることが多くなってきた。
【０００４】
例えば、特許文献１または非特許文献１に開示されているＩＣカードでは、サービス提供者装置から送信されるコマンドを受信し、その受信したコマンドに応じた処理を実行し、その結果をサービス提供者装置へ返送する機能が埋め込まれている。
【０００５】
サービス提供者装置は、ＩＣカードへのアプリケーションのダウンロードを、複数のコマンドをＩＣカードへ送信することによって実現することができる。同様に、サービス提供者装置は、複数のコマンドを、適宜、組み合わせてＩＣカードへ送信することにより、ＩＣカードに種々の処理を実行させることができる。
【０００６】
なお、特許文献１または非特許文献１には、ＩＣカードが処理すべきコマンドの種類やその機能の仕様などが示されており、また、コマンド送信に際しての暗号化方法や改竄防止方法についても詳しく示されている。
【特許文献１】欧州特許出願公開第２００２／ＥＰ１２２３５６５Ａ１号明細書
【非特許文献１】「グローバルプラットフォーム  カード  スペシフィケーション  バージョン２．１（GlobalPlatform Card Specification Version2.1）」、米国、グローバルプラットフォーム社（GlobalPlatform Inc.）、２００１年６月
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１または非特許文献１によれば、サービス提供者装置があるサービスの処理を実行する複数のコマンドをＩＣカードへ送信する場合、サービス提供者装置は、コマンドを１つずつ、端末装置を介してＩＣカードへ送信し、ＩＣカードにそのコマンドに応じた処理を実行させ、その実行結果の応答情報を受信し、その応答情報を確認するという処理を繰り返し実行する。この場合、サービス提供者装置が当該サービスに係る複数のコマンドをＩＣカードへ送信し終える時間には、コマンドの純粋な送信時間に、ＩＣカードにおいてコマンドに対応した処理を実行する時間が加算されることになる。そのため、コマンドの送信が完結するまでの時間が長くなることがあった。
【０００８】
このようなＩＣカードへのコマンドの転送方式においては、サービス提供者装置がＩＣカードから返送される応答情報を１つのコマンドごとに確認しているので、サービス提供者装置が多数のＩＣカードへのサービスを担っている場合には、その処理負担が多大なものとなる。また、コマンドの送信が完結するまでの時間が長くなった場合、そして、サービス提供者装置と端末装置とをつなぐネットワークに、携帯電話回線などのモバイル端末用ネットワークが介在した場合には、通信エラーが生じる可能性が大きくなる。通信エラーが生じると、複数のコマンドの送信を最初からやり直さなければならない場合も多々生じることになる。
【０００９】
以上のような従来技術の問題点に鑑み、本発明の目的は、ＩＣカードへのコマンド転送に係るサービス提供者装置における処理負荷を軽減するとともに、コマンド転送時における通信エラーの発生の可能性を低減することができるＩＣカードコマンド転送方法、ＩＣカード情報サービスシステムおよび端末装置を提供することにある。
【課題を解決するための手段】
【００１０】
そこで、本発明においては、サービス提供者装置があるサービスの提供するための複数のコマンド（以下、コマンドデータ群という）をＩＣカードへ送信する場合には、コマンドデータ群を端末装置へ一括して送信し、そのコマンドデータ群を一括して受信した端末装置は、受信したコマンドデータ群に含まれるコマンドデータを１つずつＩＣカードへ送信するようにした。ＩＣカードは、そのコマンドデータを受信し、受信したコマンドデータに対応付けられた処理を実行し、その実行結果に係る情報を返信情報として端末装置へ返信する。端末装置は、その返信情報を受信し、その返信情報がエラーを意味する情報であるか否かを検証し、エラーを意味する情報であった場合には、コマンド転送の失敗を意味する失敗通知をサービス提供者装置に送信するようにした。
【００１１】
このように、本発明においては、サービス提供者装置から端末装置へコマンドデータ群を一括して送信した上で、端末装置からＩＣカードへそのコマンドデータ群に含まれるコマンド（コマンドデータ）を１つずつ送信するようにした。そして、その都度、ＩＣカードからは、ＩＣカードがそのコマンドデータに対応付けられた処理を実行した結果を示す情報の返信を受け、その返信情報を検証するようにし、その検証において、エラーがあったときに、サービス提供者装置に失敗通知を送信する。
【００１２】
そのため、サービス提供者装置は、ＩＣカードへの１つ１つのコマンドの送信およびコマンド処理結果の検証に関与する必要がない。従って、サービス提供者装置の処理負荷が軽減される。また、サービス提供者装置は、端末装置へのコマンドデータ群の送信において、ＩＣカードにおけるコマンド処理の終了を待つ必要がない。従って、コマンドデータ群の送信時間が短縮されるので、サービス提供者装置と端末装置との間にモバイル用ネットワークが介在していても、通信エラーの可能性を低減することができる。
【発明の効果】
【００１３】
本発明によれば、ＩＣカードへのコマンド転送に係るサービス提供者装置における処理負荷を軽減することができ、また、コマンド転送時における通信エラーの発生の可能性を低減することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施形態について詳しく説明する。
【００１５】
図１は、本実施形態に係るＩＣカード情報サービスシステムの全体構成の例を示した図である。図１に示すように、ＩＣカード情報サービスシステム１は、複数のサービス提供者装置４０と複数の端末装置２０とがインターネットなどのネットワーク３０を介して互いに接続され、さらに、ＩＣカード１０や外部記憶装置付ＩＣカード６０が必要に応じて端末装置２０に接続されて構成されたシステムにおいて適用される。
【００１６】
図１において、サービス提供者装置４０は、ＩＣカード１０に対し所定のサービスを提供するサーバ機能を有するコンピュータであり、その機能ブロックとして、通信部４０１と、コマンド生成部４０２と、鍵保管部４０３と、サービス提供部４０４とを含んで構成される。
【００１７】
ここで、サービス提供部４０４は、ＩＣカード１０に対して所定のサービスを提供する機能ブロックであり、コマンド生成部４０２は、サービス提供部４０４が提供するサービスに応じてＩＣカード１０に実行させるコマンドのコマンドデータ（以下、単にコマンドともいう）を生成する機能ブロックである。また、通信部４０１は、ネットワーク３０を介して、端末装置２０、さらには、ＩＣカード１０との間で、コマンドデータなどのデータの送受信を行う機能ブロックである。また、鍵保管部４０３は、コマンドデータを生成するときに使う鍵を保管する記憶装置の一部の領域である。
【００１８】
図１において、ＩＣカード１０は、ＣＰＵ（Central Processing Unit）とメモリとを含んで構成された情報処理機能を有する小さなコンピュータであり、その機能ブロックとしてデータ送受信部１０１と、コマンド解析部１０２と、アプリケーション１０３、鍵保管部１０４とを含んで構成される。
【００１９】
ここで、データ送受信部１０１は、サービス提供者装置４０からネットワーク３０および端末装置２０を介して送信されてくるコマンドデータを受信するとともに、そのコマンドデータに応じたレスポンスデータを、端末装置２０およびネットワーク３０を介してサービス提供者装置４０へ送信する機能ブロックである。また、コマンド解析部１０２は、データ送受信部１０１が受信したコマンドデータを解析し、そのコマンドに応じた処理を実行し、レスポンスデータを生成する機能ブロックである。また、鍵保管部１０４は、コマンドデータを解析するために使う鍵を保管するためのメモリの一領域である。
【００２０】
また、アプリケーション１０３は、サービス提供者装置４０が提供するサービスをＩＣカード１０側で処理する機能ブロックである。従って、ＩＣカード１０には、そのＩＣカード１０が提供するサービスに対応させるようにして、通常、複数のアプリケーション１０３が設けられる。このとき、あるアプリケーション１０３は、ＩＣカード１０発行前にあらかじめＩＣカード１０内蔵のメモリに書き込まれたプログラムによって構成され、また、他のアプリケーション１０３は、ＩＣカード１０発行後にサービス提供者装置４０からコマンドデータとしてダウンロードされるプログラムによって構成される。
【００２１】
また、外部記憶装置付ＩＣカード６０は、ＩＣカード１０の構成に加えて、さらに、コントローラ１６および記憶装置１７を備える。記憶装置１７は、フラッシュメモリなどの不揮発性メモリで構成される大容量のメモリである。また、コントローラ１６は、サービス提供者装置４０からネットワーク３０および端末装置２０を介して送信されてくるコマンドデータを受信し、そのコマンドデータの内容によってその送信先（記憶装置１７またはデータ送受信部１０１）を仕分けし、受信したコマンドデータを仕分けされた送信先へ送信する。なお、本明細書でＩＣカード１０という場合は、外部記憶装置付ＩＣカード６０も含むものとする。
【００２２】
図１において、端末装置２０は、ＩＣカード１０を、ネットワーク３０を介してサービス提供者装置４０に接続するための装置であり、後記するように、ＣＰＵとメモリとを含んだコンピュータによって構成される。そして、その端末装置２０は、機能ブロックとして、ＩＣカードアクセス部２０１と、データ送受信部２０２と、コマンド制御部２０３とを含んで構成される。
【００２３】
ここで、データ送受信部２０２は、サービス提供者装置４０からネットワーク３０を介して送信されてくるコマンドデータを受信するとともに、コマンド制御部２０３におけるコマンド制御の結果の情報およびＩＣカード１０から送信されてくるコマンドのレスポンスデータを、ネットワーク３０を介してサービス提供者装置４０へ送信する機能ブロックである。また、ＩＣカードアクセス部２０１は、データ送受信部２０２が受信したコマンドデータをＩＣカード１０に送信するとともに、ＩＣカード１０から送信されてくるレスポンスデータを受信する機能ブロックである。
【００２４】
また、コマンド制御部２０３は、データ送受信部２０２が受信したコマンドデータとＩＣカードアクセス部２０１が受信したレスポンスデータとを解析し、その結果に基づき、ＩＣカードアクセス部２０１におけるＩＣカード１０へのコマンドデータの送信や、データ送受信部２０２におけるサービス提供者装置４０へのレスポンスデータの送信を制御する機能ブロックである。
【００２５】
図２は、本実施形態に係る端末装置のハードウェア構成の例を示した図である。図２に示すように、端末装置２０は、ネットワーク３０に対する通信装置２１と、液晶ディスプレイ、キーボード、マウスなどからなる入出力装置２２と、ＩＣカード１０が接続されるＩＣカード入出力装置２３と、ハードディスク装置などからなる補助記憶装置２４と、ＣＰＵ２５と、半導体メモリなどからなる主記憶装置２６と、ＤＶＤ（Digital Versatile Disk）などの記憶媒体２８に記録されている情報を読み取る読取装置２７とを含んで構成され、さらに、これらの構成要素がバスなどの内部通信線２９によって相互に連結されて構成される。ここで、ＩＣカード入出力装置２３は、ＩＣカード１０を接続するための接触式のインターフェース装置または非接触式の無線通信装置によって構成される。
【００２６】
また、主記憶装置２６には、ＯＳ（Operating System）ほか所定のプログラムが格納され、ＣＰＵ２５がそれらのプログラムを実行することによって、図１に示したＩＣカードアクセス部２０１、データ送受信部２０２、コマンド制御部２０３などの機能ブロックの機能が実現される。なお、これらのプログラムは、記憶媒体２８から読取装置２７を介して、または、他のコンピュータなどからネットワーク３０を介して、補助記憶装置２４に読み込まれ、また、プログラムの実行に際しては、補助記憶装置２４から読み出されて、主記憶装置２６に格納される。
【００２７】
サービス提供者装置４０のハードウェア構成は、図示を省略するが、端末装置２０のハードウェア構成（図２参照）と同様である。ただし、サービス提供者装置４０が直接ＩＣカード１０へのアクセスを行わないとする場合には、ＩＣカード入出力装置２３は備えなくてもよい。
【００２８】
また、サービス提供者装置４０の主記憶装置（図示せず）には、ＯＳほか所定のプログラムが格納され、ＣＰＵ（図示せず）がそれらのプログラムを実行することによって、図１に示したサービス提供者装置４０の通信部４０１、コマンド生成部４０２、サービス提供部４０４などの機能ブロックの機能が実現される。
【００２９】
図３は、本実施形態に係るＩＣカードのハードウェア構成の例を示した図である。図３に示すように、ＩＣカード１０は、入出力部１１と、ＣＰＵ１２と、主記憶部１３と、補助記憶部１４とを含んで構成され、さらにこれらの構成要素がバスなどの内部通信線１５によって相互に連結されて構成される。
【００３０】
ここで、入出力部１１は、端末装置２０のＩＣカード入出力装置２３と有線で接続される場合の接触式のインターフェース回路、または、無線で接続される場合の非接触式の無線通信回路によって構成され、ＩＣカード入出力装置２３との間でデータの授受を行う。また、主記憶部１３は、高速のＲＯＭ（Read Only Memory），ＲＡＭ（Random Access Memory），フラッシュメモリなどで構成され、また、補助記憶部１４は、フラッシュメモリなどによる固体ファイルメモリによって構成される。このとき、主記憶部１３および補助記憶部１４は、好ましくは、対タンパ性を備えるものとする。
【００３１】
また、主記憶部１３には、ＯＳほか所定のプログラムが格納され、ＣＰＵ１２がそれらのプログラムを実行することによって、図１に示したＩＣカード１０のデータ送受信部１０１、コマンド解析部１０２、アプリケーション１０３などの機能ブロックの機能が実現される。
【００３２】
図４は、サービス提供者装置からＩＣカードへコマンドデータを転送する処理の流れの例を示した図である。サービス提供者装置４０は、この図４に示した処理を繰り返し実行することにより、ＩＣカード１０に対して様々な処理を行うことができる。
【００３３】
まず、端末装置２０は、データ送受信部２０２の処理として、サービス提供者装置４０に対しサービス提供依頼を行い（ステップＳ４００）、サービス提供者装置４０へサービス提供依頼Ａ４００を送信する。
【００３４】
次に、サービス提供者装置４０は、コマンド生成部４０２の処理として、通信部４０１が受信したサービス提供依頼Ａ４００に従い、ＩＣカード１０に対するシーケンス番号要求コマンドを生成する（ステップＳ４０１）。そして、通信部４０１の処理として、コマンド生成部４０２が生成したシーケンス番号要求コマンドＡ４０１を、端末装置２０を介してＩＣカード１０へ送信する。
【００３５】
続いて、ＩＣカード１０は、コマンド解析部１０２の処理として、データ送受信部１０１が受信したシーケンス番号要求コマンドＡ４０１に従って、自らが管理するシーケンス番号を提示する（ステップＳ４０２）。そして、データ送受信部１０１の処理として、コマンド解析部１０２が提示したシーケンス番号Ａ４０２をサービス提供者装置４０へ返信する。
【００３６】
続いて、サービス提供者装置４０は、コマンド生成部４０２の処理として、通信部４０１が受信したシーケンス番号Ａ４０２と鍵保管部４０３に保持している鍵とからセッション鍵を生成する（ステップＳ４０３）。そして、サービス提供者装置４０は、先に受信したサービス提供依頼Ａ４００に係るサービスを実現するための複数のコマンドからなるコマンド群を生成し（ステップＳ４０４）、ステップＳ４０３で生成したセッション鍵を使って、コマンド群を構成するコマンドそれぞれを暗号化する。
【００３７】
さらに、サービス提供者装置４０は、通信部４０１の処理として、コマンド生成部４０２が生成し、暗号化したコマンドデータ群Ａ４０３を一括して端末装置２０へ送信する。ここで、コマンドデータ群Ａ４０３は、ｎ個のそれぞれ暗号化されたコマンドデータ（コマンドデータ１，コマンドデータ２，…，コマンドデータｎ）からなるものとする。このとき、サービス提供者装置４０と端末装置２０との間の通信プロトコルとしては、例えば、インターネットなどで用いられているＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）などを利用することができ、特に、限定されるものではない。
【００３８】
続いて、端末装置２０は、コマンド制御部２０３の処理として、データ送受信部２０２が受信したコマンドデータ群Ａ４０３を解析する（ステップＳ４０５）。そして、その結果に基づき、端末装置２０は、ＩＣカードアクセス部２０１の処理として、コマンドデータ群Ａ４０３を構成するコマンドデータ（コマンドデータ１，コマンドデータ２，…，コマンドデータｎ）を順次１つずつ取り出し、取り出したコマンドデータＡ４０４をＩＣカード１０へ送信する。
【００３９】
続いて、ＩＣカード１０は、コマンド解析部１０２の処理として、データ送受信部１０１が受信した暗号化されたコマンドデータＡ４０４を復号化し、復号化されたコマンドデータを解析し（ステップＳ４０６）、そのコマンドデータによって指定されたアプリケーション１０３を実行するなど、そのコマンドデータが指定する処理を実行、つまり、当該コマンドを実行する（ステップＳ４０７）。そして、ＩＣカード１０は、コマンドを実行した結果として、ＩＣカード１０の内部状態を更新（ステップＳ４０８）、つまり、主記憶部１３や補助記憶部１４に記憶されている情報を更新する。さらに、ＩＣカード１０は、データ送受信部１０１の処理として、コマンドを実行した結果として得られるレスポンスＡ４０５を端末装置２０へ送信する。
【００４０】
続いて、端末装置２０は、コマンド制御部２０３の処理として、ＩＣカードアクセス部２０１によって受信されたレスポンスＡ４０５がエラーを意味したものであるか否かを判定する（ステップＳ４２０）。その判定の結果、レスポンスＡ４０５がエラーを意味したデータであった場合には（ステップＳ４２０でＹｅｓ）、サービス提供者装置４０に失敗通知Ａ４２０を送信する。
【００４１】
一方、レスポンスＡ４０５がエラーを意味したデータでなかった場合には（ステップＳ４２０でＮｏ）、端末装置２０は、コマンドデータ群Ａ４０３に含まれるコマンドデータ（コマンドデータ１，コマンドデータ２，…，コマンドデータｎ）のすべてをＩＣカード１０へ送信終了したか否かを判定する（ステップＳ４２１）。その結果、ＩＣカード１０へ送信していないコマンドデータが残っており、送信終了していない場合には（ステップＳ４２１でＮｏ）、ステップＳ４０５へ戻り、ステップＳ４０５〜ステップＳ４２１の処理を繰り返し実行する。また、ＩＣカード１０へのコマンドデータの送信が終了した場合には（ステップＳ４２１でＹｅｓ）、サービス提供者装置４０へ終了通知Ａ４２１を送信し、一連のサービス提供に係るコマンドデータの転送処理を終了する。
【００４２】
以上のように、本実施形態においては、サービス提供依頼Ａ４００に係るコマンドデータ群Ａ４０３に含まれるコマンドデータ（コマンドデータ１，コマンドデータ２，…，コマンドデータｎ）を、１つずつサービス提供者装置４０からＩＣカード１０へ送信するのではなく、コマンドデータ群Ａ４０３に含まれるコマンドデータをまとめて、いったん、端末装置２０へ送信し、端末装置２０が受信したコマンドデータ群Ａ４０３に含まれるコマンドデータを１つずつＩＣカード１０へ送信するようにしている。
【００４３】
従って、サービス提供者装置４０は、コマンドデータ群Ａ４０３をＩＣカード１０に送信する場合、ＩＣカード１０における１つ１つのコマンドの実行終了を待つ必要がない。そのため、サービス提供者装置４０がコマンドデータ群Ａ４０３の送信に係る所要時間が短縮され、その結果、特に、ネットワーク３０が携帯電話回線などのモバイル用ネットワークを含むような場合において、コマンド送信時における通信エラーの可能性を低減することができる。
【００４４】
また、本実施形態においては、ＩＣカード１０から１つのコマンドごとに返送されるレスポンスＡ４０５を端末装置２０で検証し、レスポンスＡ４０５にエラーがあったとき、または、コマンドデータ群Ａ４０３に含まれるすべてのコマンドの送信が終了したときにのみ、サービス提供者装置４０に失敗通知Ａ４２０または終了通知Ａ４２１を送信する。
【００４５】
従って、サービス提供者装置４０は、ＩＣカード１０から送信される１つ１つのコマンドごとに返送されるレスポンスＡ４０５に対応、または、レスポンスＡ４０５を検証する必要がないので、その処理負荷が大幅に軽減される。
【００４６】
図５は、サービス提供者装置からＩＣカードへコマンドデータを転送する処理の流れの第２の例を示した図である。なお、図５においては、図４に示した例と同じ処理について説明を省略し、相違箇所についてのみ説明する。
【００４７】
図５において、端末装置２０がサービス提供者装置４０に対しサービス提供依頼を行い（ステップＳ４００）、サービス提供者装置４０がセッション鍵を生成する（ステップＳ４０３）までの処理は、図４に示した例と同じである。
【００４８】
本例の図４に示した例との相違点は、コマンドデータ群Ａ４０３ａの構成にある。すなわち、サービス提供者装置４０は、ステップＳ４０４ａにおいて、コマンドデータとそのコマンドデータに対応する期待値とを関連付け、そのコマンドデータと期待値との組の集合（コマンドデータ１，期待値１，コマンドデータ２，期待値２，…，コマンドデータｎ，期待値ｎ）をコマンドデータ群Ａ４０３ａとして生成する。そして、生成したコマンドデータ群Ａ４０３ａを端末装置２０へ送信する。
【００４９】
端末装置２０は、サービス提供者装置４０からコマンドデータ群Ａ４０３ａを受信するが、端末装置２０がＩＣカード１０へ送信するのは、コマンドデータＡ４０４だけであって、期待値ｉは、コマンドデータｉと関連付けて、例えば、主記憶装置２６の作業領域に記憶される（ｉ＝１，…，ｎ）。従って、ステップＳ４０５以降の処理では、レスポンスＡ４０５の判定処理が異なるだけである。
【００５０】
すなわち、端末装置２０は、ステップＳ４２０ａにおいて、コマンド制御部２０３の処理として、ＩＣカード１０から送信されたレスポンスＡ４０５が前記の作業領域に記憶されている期待値と一致するか否かを判定する。そして、端末装置２０は、その判定においてレスポンスＡ４０５が期待値と一致しない場合には（ステップＳ４２０ａでＮｏ）、失敗通知Ａ４２０をサービス提供者装置４０へ送信する。
【００５１】
また、レスポンスＡ４０５が期待値と一致した場合には、端末装置２０は、図４に示した例の場合と同様に、ＩＣカード１０へコマンドデータ群Ａ４０３ａに含まれるすべてのコマンドデータの送信が終了したか否かを判定する（ステップＳ４２１）。以下、図４に示した例の場合と同様である。
【００５２】
本例の場合、端末装置２０は、ＩＣカード１０から１つのコマンドごとに返送されるレスポンスＡ４０５が用意した期待値と一致するか否かを判定することができるので、ＩＣカード１０におけるコマンドの動作の正否を１コマンドごとに検証することができるようになる。
【００５３】
図６は、サービス提供者装置からＩＣカードへコマンドデータを転送する処理の流れの第３の例を示した図である。なお、図６においては、図４に示した例と同じ処理について説明を省略し、相違箇所についてのみ説明する。
【００５４】
図６において、端末装置２０がサービス提供者装置４０に対しサービス提供依頼を行い（ステップＳ４００）、サービス提供者装置４０がセッション鍵を生成する（ステップＳ４０３）までの処理は、図４に示した例と同じである。
【００５５】
本例の図４に示した例との相違点は、第２の例と同様に、コマンドデータ群Ａ４０３ｂの構成にある。すなわち、サービス提供者装置４０は、ステップＳ４０４ｂにおいて、コマンドデータと、そのコマンドデータに対応する複数の期待値と、その複数の期待値それぞれに対応する処理とを関連付けた、コマンドデータと複数の期待値と複数の処理との組の集合（コマンドデータ１，期待値１１，…，期待値１ｋ，処理１１，…，処理１ｋ，コマンドデータ２，期待値２１，…，期待値２ｋ，処理２１，…，処理２ｋ，…，コマンドデータｎ，期待値ｎ１，…，期待値ｎｋ，処理ｎ１，…，処理ｎｋ）をコマンドデータ群Ａ４０３ｂとして生成する。そして、生成したコマンドデータ群Ａ４０３ｂを端末装置２０へ送信する。ここで、処理ｉｊは、期待値ｉｊに関連付けられて端末装置２０が実行する処理であり、その処理ｉｊによって、後続のコマンドの実行方法（例えば、即時中止する、何番目のコマンドデータをＩＣカード１０へ送信する）などが指示される。
【００５６】
端末装置２０は、サービス提供者装置４０からコマンドデータ群Ａ４０３ｂを受信するが、端末装置２０がＩＣカード１０へ送信するのは、コマンドデータＡ４０４だけであって、期待値ｉｊおよび処理ｉｊは、コマンドデータｉと関連付けて、例えば、主記憶装置２６の作業領域に記憶される（ｉ＝１，…，ｎ，ｊ＝１，…，ｋ）。従って、ステップＳ４０５以降の処理では、端末装置２０がＩＣカード１０からレスポンスＡ４０５を受信した後の処理が異なる。
【００５７】
すなわち、端末装置２０は、コマンド制御部２０３の処理として、ＩＣカード１０から送信されたレスポンスＡ４０５を前記の作業領域に記憶されている複数の期待値と比較し（ステップＳ４０９）、一致する期待値に関連付けられた処理を実行する（ステップＳ４１０）。つまり、端末装置２０は、コマンドデータｉに対して、作業領域にｋ個の期待値（期待値ｉ１，期待値ｉ２，…，期待値ｉｋ）を記憶しており、レスポンスＡ４０５がどの期待値に一致したかを判定し、その一致した期待値（期待値ｉｊ）に関連付けられた処理（処理ｉｊ）を実行する。
【００５８】
そして、端末装置２０は、図４に示した例の場合と同様に、ＩＣカード１０へコマンドデータ群Ａ４０３ｂに含まれるすべてのコマンドデータの送信が終了したか否かを判定する（ステップＳ４２１）。以下、図４に示した例の場合と同様である。
【００５９】
本例の場合、端末装置２０は、ＩＣカード１０から１つのコマンドごとに返送されるレスポンスＡ４０５が複数用意した期待値のどの期待値に一致するかを判定することができので、ＩＣカード１０におけるコマンドの動作の正否をより細かに検証することができるようになる。さらに、端末装置２０は、その一致した期待値に関連付けられた処理を実行することができるので、例えば、レスポンスＡ４０５が示す情報に応じて、コマンドの送信を即時中止したり、継続してコマンドの送信を行い、そのエラーの数をカウントしたりするなど、端末装置２０における検証処理のフレキシビリティを向上させることができるようになる。
【００６０】
本実施形態は、さらに、様々な変形が可能である。
【００６１】
例えば、図４において、サービス提供者装置４０にとってＩＣカード１０のシーケンス番号Ａ４０２が既知である場合には、サービス提供者装置４０がＩＣカード１０からシーケンス番号を取得する処理（ステップＳ４０１およびステップＳ４０２）を省略することができる。なお、これは、図５、図６においても同様である。
【００６２】
また、本実施形態では、図４のステップＳ４０３で、セッション鍵を生成し、その後、ステップＳ４０４で、そのセッション鍵を用いてコマンドデータ群Ａ４０３のコマンドデータを生成しているが、必要に応じて、セッション鍵を作り変えながらコマンドデータを生成するようにしてもよい。なお、これは、図５、図６においても同様である。
【００６３】
また、本実施形態では、コマンドデータ群Ａ４０３，Ａ４０３ａ，Ａ４０３ｂのコマンドデータは、暗号化されるものとしているが、改竄防止のデータを付加したコマンドデータであってもよく、また、暗号化しないコマンドデータであってもよい。
【００６４】
また、サービス提供者装置４０から端末装置２０へのコマンドデータ群Ａ４０３，Ａ４０３ａ，Ａ４０３ｂの送信に際しては、コマンドデータにその順序をあらわすコマンド番号を付加してもよい。この場合には、必要に応じて、端末装置２０からサービス提供者装置４０に対し、何番目のコマンドデータまでＩＣカードで処理されたかを表すデータを返送するようにしてもよい。
【００６５】
また、サービス提供者装置４０が端末装置２０へコマンドデータ群Ａ４０３，Ａ４０３ａ，Ａ４０３ｂを送信するに際して、そのデータを暗号化してもよく、圧縮してもよく、さらには、そのデータに改竄防止のデータを付加してもよい。
【００６６】
また、本実施形態では、図４、図５および図６において、その処理の流れを、ＩＣカード１０を例に用いて説明しているが、ＩＣカード１０の代わりに外部記憶装置付ＩＣカード６０を用いてもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施形態に係るＩＣカード情報サービスシステムの全体構成の例を示した図である。
【図２】本発明の実施形態に係る端末装置のハードウェア構成の例を示した図である。
【図３】本発明の実施形態に係るＩＣカードのハードウェア構成の例を示した図である。
【図４】本発明の実施形態において、サービス提供者装置からＩＣカードへコマンドデータを転送する処理の流れの例を示した図である。
【図５】本発明の実施形態において、サービス提供者装置からＩＣカードへコマンドデータを転送する処理の流れの第２の例を示した図である。
【図６】本発明の実施形態において、サービス提供者装置からＩＣカードへコマンドデータを転送する処理の流れの第３の例を示した図である。
【符号の説明】
【００６８】
１０    ＩＣカード
１１    入出力部
１２    ＣＰＵ
１３    主記憶部
１４    補助記憶部
１５    内部通信線
１６    コントローラ
１７    記憶装置
２０    端末装置
２１    通信装置
２２    入出力装置
２３    ＩＣカード入出力装置
２４    補助記憶装置
２５    ＣＰＵ
２６    主記憶装置
２７    読取装置
２８    記憶媒体
２９    内部通信線
３０    ネットワーク
４０    サービス提供者装置
６０    外部記憶装置付ＩＣカード
１０１  データ送受信部
１０２  コマンド解析部
１０３  アプリケーション
１０４  鍵保管部
２０１  ＩＣカードアクセス部
２０２  データ送受信部
２０３  コマンド制御部
４０１  通信部
４０２  コマンド生成部
４０３  鍵保管部
４０４  サービス提供部
【図１】
2007080083.tif 000003
【図２】
2007080083.tif 000004
【図３】
2007080083.tif 000005
【図４】
2007080083.tif 000006
【図５】
2007080083.tif 000007
【図６】
2007080083.tif 000008