(57)【要約】      （修正有）【課題】ＩＣカードで実行可能なアプリケーションをＩＣカード機能サーバに分散配置し、ＩＣカードに対して、ＩＣカードの記憶容量を超える複数のアプリケーションの実行を可能にするＩＣカード制御方法及びＩＣカード制御システムを提供する。【解決手段】ＩＣカードコマンドルータ４０は、サービスプロバイダサーバ３０から、端末２０の端末ＩＤ及びＩＣカード１０のＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、ＩＣカード１０に対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、ＩＣカード機能サーバ５０に対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させる。【選択図】図１
2011238138.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードで実行可能なアプリケーションをＩＣカード機能サーバに分散配置して構成されるＩＣカード制御システムにて、前記ＩＣカード機能サーバに対して、前記ＩＣカードで実行可能なアプリケーションの実行を可能にするＩＣカード制御方法であって、
前記ＩＣカード制御システムは、ＩＣカードコマンドルータと、ＩＣカードと、前記ＩＣカードとサービスプロバイダサーバとの通信を担う端末と、ＩＣカード機能サーバとを備えており、
前記ＩＣカードコマンドルータによって、前記サービスプロバイダサーバから、前記端末の端末ＩＤ及び前記ＩＣカードのＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ＩＣカードに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ＩＣカード機能サーバに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ＩＣカードか、又は前記ＩＣカード機能サーバのいずれか一方に当該アプリケーションを実行可能にさせることを特徴とする、ＩＣカード制御方法。
【請求項２】
請求項１に記載のＩＣカード制御方法において、
（Ａ）前記ＩＣカードコマンドルータによって、当該端末を識別する端末ＩＤ及び当該ＩＣカードを識別するＩＣカード識別番号を取得するサービスプロバイダサーバから、前記端末ＩＤ及び前記ＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末ＩＤの端末を経由して、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードに送信するステップと、
（Ｂ）前記ＩＣカードによって、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ＩＣカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却するステップと、
（Ｃ）前記ＩＣカードコマンドルータによって、前記ＩＣカードから受信したレスポンスが正常終了の旨を示す場合、前記ＩＣカード識別番号に対応する当該アプリケーションを実行するための全てのＩＣカードコマンドの送信先情報に前記端末ＩＤを設定し、前記ＩＣカードから受信したレスポンスがエラーの旨を示す場合、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカード機能サーバに送信するステップと、
（Ｄ）前記ＩＣカード機能サーバによって、前記ＩＣカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ＩＣカード識別番号及び前記ＩＣカードコマンドを受信した際に、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ＩＣカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ＩＣカードコマンドルータに送信するステップと、
を含むことを特徴とする、ＩＣカード制御方法。
【請求項３】
請求項２に記載のＩＣカード制御方法において、
（Ｅ）前記ステップ（Ｄ）の後に、前記ＩＣカードコマンドルータによって、前記ＩＣカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ＩＣカード機能サーバを送信先とする旨を設定し、前記ＩＣカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信するステップと、
（Ｆ）前記サービスプロバイダサーバによって、受信した該レスポンスが正常終了を示す場合にのみ、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードコマンドルータに送信するステップと、
（Ｇ）前記ＩＣカードコマンドルータによって、前記ＩＣカード識別番号に関連付けて設定された前記ＩＣカードコマンドの送信先を示す送信先情報に従い、前記ＩＣカードに向けて送信するか、又は前記ＩＣカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ＩＣカードコマンドを送信するステップと、
（Ｈ）前記ＩＣカード、又は前記ＩＣカード機能サーバのいずれか一方は、受信したＩＣカードコマンドを実行し、この実行結果を示すレスポンスを前記ＩＣカードコマンドルータに返信するステップと、
（Ｉ）前記ＩＣカードコマンドルータによって、前記ＩＣカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信するステップと、
（Ｊ）前記サービスプロバイダサーバによって、当該アプリケーションの処理に必要な全てのＩＣカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すステップと、
を含むことを特徴とする、ＩＣカード制御方法。
【請求項４】
ＩＣカードで実行可能なアプリケーションをＩＣカード機能サーバに分散配置し、ＩＣカードに対して、ＩＣカードの記憶容量を超える複数のアプリケーションの実行を可能にするＩＣカード制御システムであって、
ＩＣカードコマンドルータと、ＩＣカードと、前記ＩＣカードとサービスプロバイダサーバとの通信を担う端末と、ＩＣカード機能サーバとを備え、
前記ＩＣカードコマンドルータは、前記サービスプロバイダサーバから、前記端末の端末ＩＤ及び前記ＩＣカードのＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ＩＣカードに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ＩＣカード機能サーバに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ＩＣカードか、又は前記ＩＣカード機能サーバのいずれか一方が当該アプリケーションを実行可能となるように構成されていることを特徴とする、ＩＣカード制御システム。
【請求項５】
請求項４に記載のＩＣカード制御システムにおいて、
前記ＩＣカードコマンドルータは、当該端末を識別する端末ＩＤ及び当該ＩＣカードを識別するＩＣカード識別番号を取得するサービスプロバイダサーバから、前記端末ＩＤ及び前記ＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末ＩＤの端末を経由して、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードに送信する手段を有し、
前記ＩＣカードは、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ＩＣカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却する手段を有し、
前記ＩＣカードコマンドルータは、さらに、前記ＩＣカードから受信したレスポンスが正常終了の旨を示す場合、前記ＩＣカード識別番号に対応する当該アプリケーションを実行するための全てのＩＣカードコマンドの送信先情報に前記端末ＩＤを設定し、前記ＩＣカードから受信したレスポンスがエラーの旨を示す場合、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカード機能サーバに送信する手段を有し、
前記ＩＣカード機能サーバは、前記ＩＣカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ＩＣカード識別番号及び前記ＩＣカードコマンドを受信した際に、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ＩＣカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ＩＣカードコマンドルータに送信する手段を有する、
ことを特徴とする、ＩＣカード制御システム。
【請求項６】
請求項５に記載のＩＣカード制御システムにおいて、
前記ＩＣカードコマンドルータは、さらに、前記ＩＣカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ＩＣカード機能サーバを送信先とする旨を設定し、前記ＩＣカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、受信した該レスポンスが正常終了を示す場合にのみ、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードコマンドルータに送信する手段を有し、
前記ＩＣカードコマンドルータは、前記ＩＣカード識別番号に関連付けて設定された前記ＩＣカードコマンドの送信先を示す送信先情報に従い、前記ＩＣカードに向けて送信するか、又は前記ＩＣカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ＩＣカードコマンドを送信する手段を有し、
前記ＩＣカード、又は前記ＩＣカード機能サーバのいずれか一方は、受信したＩＣカードコマンドを実行し、この実行結果を示すレスポンスを前記ＩＣカードコマンドルータに返信するように構成され、さらに、
前記ＩＣカードコマンドルータは、前記ＩＣカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、当該アプリケーションの処理に必要な全てのＩＣカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すように構成されていることを特徴とする、ＩＣカード制御システム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチアプリケーション型ＩＣカードを利用するシステムに関し、特に、ＩＣカードのメモリが不足することにより搭載出来ないアプリケーションを、ネットワーク上に用意したサーバ上で動作させることにより、利用者が利用できるアプリケーション数を増大させることを可能とするＩＣカード制御方法及びＩＣカード制御システムに関する。
【背景技術】
【０００２】
従来は、単一機能のＩＣカードが主流であったが、近年、ＩＣカードに複数のアプリケーションを搭載可能なマルチアプリケーション型のＩＣカードが実用化され、普及しつつある。マルチアプリケーション型ＩＣカードの方式としては、ＧｌｏｂａｌＰｌａｔｆｏｒｍ仕様が業界標準となっており（例えば、非特許文献１参照）、様々なベンダから製品が販売されている（例えば、非特許文献２参照）。
【０００３】
マルチアプリケーション型のＩＣカードは、ＩＣカードのメモリ内に複数のアプリケーションのプログラムコードやデータが格納されるが、一般的なＩＣカードのメモリサイズは３２ＫＢ〜６４ＫＢ程度と小さく、数個のアプリケーションしか搭載できない。
【０００４】
従来のＩＣカードの運用方法では、新規のアプリケーション搭載時にメモリが不足した場合は、（１）ＩＣカードから搭載済みのアプリケーションを削除し、新規のアプリケーションを搭載する方法、又は（２）別のＩＣカードを用意し、新規のアプリケーションを搭載する方法がとられてきた。上記の（１）、（２）の方法でＩＣカードを運用する製品例としては、日本電信電話株式会社（ＮＴＴ）が開発した製品がある（例えば、非特許文献３参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“The Standard for Smart Card Infrastructure”、globalplatform、［online]、［２０１０年５月６日検索］、インターネット〈http://www.globalplatform.org〉
【非特許文献２】“IC CARD, DNP Standard-J Ax”、大日本印刷、［online]、［２０１０年５月６日検索］、インターネット〈http://www.dnp.co.jp/bf/ic_card/products/standard_ja.html〉
【非特許文献３】“情報通信用語集  ＮＩＣＥ（Network-based IC Card Environment）”、平成２０年３月１７日報告、日本電信電話株式会社、［online]、［２０１０年５月６日検索］、インターネット〈http://www.ntt-review.jp/yougo/word.php?word_id=1447〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述したＩＣカードの運用方法に関して、上記（１）の方法の場合は、利用シーンに応じて、アプリケーションを入れ替える必要があり利用者の手間が掛かるという問題があり、上記（２）の方法の場合は、利用シーンに応じて、利用者がＩＣカードを使い分ける必要があり利便性が低下するという問題があった。
【０００７】
これらの解決する方法としてＩＣカードのメモリ増加が考えられるが、実際には、ＩＣチップのサイズによる制限（約３ｍｍ角のチップサイズにＣＰＵ、メモリ、通信機能等の機能をパッケージングする必要がある）があるため、パーソナルコンピュータ（ＰＣ）のように容易にメモリ量を追加することができない。
【０００８】
今後、公共サービス及び民間サービスで利用されるアプリケーションは増大化する方向であり、上記問題の解決が望まれている。
【０００９】
そこで、本発明の目的は、ＩＣカードのメモリが不足することにより搭載出来ないアプリケーションを、ネットワーク上に用意したサーバ上で動作させることにより、利用者が利用できるアプリケーション数を増大させることを可能とするＩＣカード制御方法及びＩＣカード制御システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、ネットワーク上にＩＣカードと同一のアプリケーションを実行できるサーバ（以降、「ＩＣカード機能サーバ」と称する）を用意し、ＩＣカードとＩＣカード機能サーバにアプリケーションを分散配置して、ＩＣカードとＩＣカード機能サーバが仮想的に１枚のＩＣカードとして動作するシステムを構築することにより、前述した問題を解決する。
【００１１】
即ち、本発明によるＩＣカード制御方法は、ＩＣカードで実行可能なアプリケーションをＩＣカード機能サーバに分散配置して構成されるＩＣカード制御システムにて、前記ＩＣカード機能サーバに対して、前記ＩＣカードで実行可能なアプリケーションの実行を可能にするＩＣカード制御方法であって、
前記ＩＣカード制御システムは、ＩＣカードコマンドルータと、ＩＣカードと、前記ＩＣカードとサービスプロバイダサーバとの通信を担う端末と、ＩＣカード機能サーバとを備えており、
前記ＩＣカードコマンドルータによって、前記サービスプロバイダサーバから、前記端末の端末ＩＤ及び前記ＩＣカードのＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ＩＣカードに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ＩＣカード機能サーバに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ＩＣカードか、又は前記ＩＣカード機能サーバのいずれか一方に当該アプリケーションを実行可能にさせることを特徴とする。
【００１２】
また、本発明のＩＣカード制御方法において、
（Ａ）前記ＩＣカードコマンドルータによって、当該端末を識別する端末ＩＤ及び当該ＩＣカードを識別するＩＣカード識別番号を取得するサービスプロバイダサーバから、前記端末ＩＤ及び前記ＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末ＩＤの端末を経由して、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードに送信するステップと、
（Ｂ）前記ＩＣカードによって、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ＩＣカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却するステップと、
（Ｃ）前記ＩＣカードコマンドルータによって、前記ＩＣカードから受信したレスポンスが正常終了の旨を示す場合、前記ＩＣカード識別番号に対応する当該アプリケーションを実行するための全てのＩＣカードコマンドの送信先情報に前記端末ＩＤを設定し、前記ＩＣカードから受信したレスポンスがエラーの旨を示す場合、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカード機能サーバに送信するステップと、
（Ｄ）前記ＩＣカード機能サーバによって、前記ＩＣカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ＩＣカード識別番号及び前記ＩＣカードコマンドを受信した際に、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ＩＣカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ＩＣカードコマンドルータに送信するステップと、
を含むことを特徴とする。
【００１３】
また、本発明のＩＣカード制御方法において、
（Ｅ）前記ステップ（Ｄ）の後に、前記ＩＣカードコマンドルータによって、前記ＩＣカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ＩＣカード機能サーバを送信先とする旨を設定し、前記ＩＣカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信するステップと、
（Ｆ）前記サービスプロバイダサーバによって、受信した当該レスポンスが正常終了を示す場合にのみ、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードコマンドルータに送信し、受信した当該レスポンスがエラーを示す場合に、前記ＩＣカードコマンドに対応するアプリケーションを選択できない旨のメッセージを前記端末に送信するステップと、
（Ｇ）前記ＩＣカードコマンドルータによって、前記ＩＣカード識別番号に関連付けて設定された前記ＩＣカードコマンドの送信先を示す送信先情報に従い、前記ＩＣカードに向けて送信するか、又は前記ＩＣカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ＩＣカードコマンドを送信するステップと、
（Ｈ）前記ＩＣカード、又は前記ＩＣカード機能サーバのいずれか一方は、受信したＩＣカードコマンドを実行し、この実行結果を示すレスポンスを前記ＩＣカードコマンドルータに返信するステップと、
（Ｉ）前記ＩＣカードコマンドルータによって、前記ＩＣカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信するステップと、
（Ｊ）前記サービスプロバイダサーバによって、当該アプリケーションの処理に必要な全てのＩＣカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すステップと、
を含むことを特徴とする。
【００１４】
さらに、本発明のＩＣカード制御システムは、ＩＣカードで実行可能なアプリケーションをＩＣカード機能サーバに分散配置し、ＩＣカードに対して、ＩＣカードの記憶容量を超える複数のアプリケーションの実行を可能にするＩＣカード制御システムであって、
ＩＣカードコマンドルータと、ＩＣカードと、前記ＩＣカードとサービスプロバイダサーバとの通信を担う端末と、ＩＣカード機能サーバとを備え、
前記ＩＣカードコマンドルータは、サービスプロバイダサーバから、前記端末の端末ＩＤ及び前記ＩＣカードのＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ＩＣカードに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ＩＣカード機能サーバに対して、当該ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ＩＣカードか、又は前記ＩＣカード機能サーバのいずれか一方に当該アプリケーションを実行可能となるように構成されていることを特徴とする。
【００１５】
また、本発明のＩＣカード制御システムにおいて、
前記ＩＣカードコマンドルータは、当該端末を識別する端末ＩＤ及び当該ＩＣカードを識別するＩＣカード識別番号を取得するサービスプロバイダサーバから、前記端末ＩＤ及び前記ＩＣカード識別番号とアプリケーションを選択するためのＩＣカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末ＩＤの端末を経由して、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードに送信する手段を有し、
前記ＩＣカードは、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ＩＣカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却する手段を有し、
前記ＩＣカードコマンドルータは、さらに、前記ＩＣカードから受信したレスポンスが正常終了の旨を示す場合、前記ＩＣカード識別番号に対応する当該アプリケーションを実行するための全てのＩＣカードコマンドの送信先情報に前記端末ＩＤを設定し、前記ＩＣカードから受信したレスポンスがエラーの旨を示す場合、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカード機能サーバに送信する手段を有し、
前記ＩＣカード機能サーバは、前記ＩＣカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ＩＣカード識別番号及び前記ＩＣカードコマンドを受信した際に、前記ＩＣカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ＩＣカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ＩＣカードコマンドルータに送信する手段を有する、
ことを特徴とする。
【００１６】
また、本発明のＩＣカード制御システムにおいて、
前記ＩＣカードコマンドルータは、さらに、前記ＩＣカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ＩＣカード機能サーバを送信先とする旨を設定し、前記ＩＣカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、受信した当該レスポンスが正常終了を示す場合にのみ、前記ＩＣカード識別番号及び前記ＩＣカードコマンドを前記ＩＣカードコマンドルータに送信し、受信した当該レスポンスがエラーを示す場合に、前記ＩＣカードコマンドに対応するアプリケーションを選択できない旨のメッセージを前記端末に送信する手段を有し、
前記ＩＣカードコマンドルータは、前記ＩＣカード識別番号に関連付けて設定された前記ＩＣカードコマンドの送信先を示す送信先情報に従い、前記ＩＣカードに向けて送信するか、又は前記ＩＣカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ＩＣカードコマンドを送信する手段を有し、
前記ＩＣカード、又は前記ＩＣカード機能サーバのいずれか一方は、受信したＩＣカードコマンドを実行し、この実行結果を示すレスポンスを前記ＩＣカードコマンドルータに返信するように構成され、さらに、
前記ＩＣカードコマンドルータは、前記ＩＣカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、当該アプリケーションの処理に必要な全てのＩＣカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すように構成されていることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、マルチアプリケーション型のＩＣカードを利用するシステムにおいて、ＩＣカードのメモリが不足することにより搭載できないアプリケーションを、ネットワーク上に用意したＩＣカード機能サーバ上で動作させることが可能になり、利用者が利用できるＩＣカードアプリケーションを増大化することが可能となる。
【００１８】
また、本発明によれば、利用者及びサービス提供者は、ＩＣカード上のアプリケーションとネットワーク上のＩＣカード機能サーバで動作しているアプリケーションの切り替えを意識する必要が無いため、従来のＩＣカードと変わらない方法で利用することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明による一実施例のＩＣカード制御システムの概略図である。
【図２】本発明による一実施例のＩＣカード制御システムにおけるデータベース部の構成を示す図である。
【図３】本発明による一実施例のＩＣカード制御システムの動作フローを示す図である。
【図４】本発明による一実施例のＩＣカード制御システムにおけるＩＣカード機能サーバの動作フローを示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明による一実施例のＩＣカード制御システムを説明する。本発明に係るＩＣカード制御方法は、本実施例のＩＣカード制御システムの説明から明らかになる。
【００２１】
〔システム構成〕
図１は、本発明による一実施例のＩＣカード制御システムの概略図である。また、図２は、本発明による一実施例のＩＣカード制御システムにおけるデータベース部の構成を示す図である。本実施例のＩＣカード制御システム１００は、利用者が保有するＩＣカード１０と、ＩＣカード１０をネットワークに接続する機能を提供する端末２０と、ネットワーク上で動作するサーバであり、ＩＣカード１０と同一の機能を提供するＩＣカード機能サーバ５０と、サービス提供者が管理し、利用者に対してＩＣカード１０を利用したサービスを提供するサービスプロバイダサーバ３０と、実行するアプリケーションに応じてＩＣカードコマンドを、ＩＣカード１０又はＩＣカード機能サーバ５０へ送信先を切り替える機能を提供するＩＣカードコマンドルータ４０とを備える。
【００２２】
（ＩＣカード）
ＩＣカード１０は、当該ＩＣカード１０を一意に識別するＩＤとしてのＩＣカード識別番号を予め格納しており、このＩＣカード識別番号を端末２０に送信する機能と、ＩＣカードコマンドに対応したアプリケーションを選択する機能と、当該アプリケーションを実行する機能（受信したＩＣカードコマンドに対応した処理を実行し、その実行結果のレスポンスを端末２０に送信する機能を含む）とを有する。
【００２３】
（端末）
端末２０は、端末２０を一意に識別するＩＤとしての端末ＩＤを予め保持しており、本実施例のＩＣカード制御システム１００にて事前に登録されているものとする。端末２０は、ＩＣカードリーダライタ（図示せず）を接続しており、ＩＣカード１０からＩＣカード識別番号を取得する機能と、端末ＩＤ及びＩＣカード識別番号をサービスプロバイダサーバ３０に送信する機能と、サービスプロバイダサーバ３０から送信されたメッセージを受信する機能と、ＩＣカードコマンドルータ４０から送信されたＩＣカード識別番号及びＩＣカードコマンドを受信する機能と、端末ＩＤ、ＩＣカード識別番号、及びレスポンスをＩＣカードコマンドルータ４０に送信する機能とを有する。
【００２４】
（ＩＣカード機能サーバ）
ＩＣカード機能サーバ５０は、暗号処理部５０１と、データ管理部５０２と、仮想ＩＣカード部５０３と、コマンド入出力部５０４と、アプリケーションリスト管理部５０５と、データベース部５０６とを有する。
【００２５】
アプリケーションリスト管理部５０５は、コマンド入出力部５０４から送信されたＩＣカード識別番号を受信する機能と、受信したＩＣカード識別番号をキーに、データベース部５０６（データベース（＃１））からアプリケーションＩＤを取得する機能と、ＩＣカードコマンド（ＳＥＬＥＣＴコマンド）のアプリケーションＩＤとデータベース部５０６（データベース（＃１））から取得したアプリケーションＩＤとを照合する機能と、アプリケーションＩＤの照合結果のレスポンスをコマンド入出力部５０４に送信する機能とを有する。
【００２６】
仮想ＩＣカード部５０３は、ＩＣカード１０のＣＰＵ命令をＩＣカード機能サーバ５０のＣＰＵ命令に逐次変換しながらプログラムコードを実行するＩＣカード用のエミュレーション機能と、ＩＣカードコマンド形式のレスポンス（Ｒ−ＡＰＤＵ）をコマンド入出力部５０４に送出する機能とを有する。尚、 “エミュレーション”についての更なる詳細は、例えば、
“http://e-words.jp/w/E382A8E3839FE383A5E383ACE383BCE382B7E383A7E383B3.html”
等を参照されたい。
【００２７】
コマンド入出力部５０４は、ＩＣカードコマンドルータ４０から送信されたＩＣカードコマンドを受信する機能と、ＩＣカードコマンド（Ｃ−ＡＰＤＵ）を図示しない自己のメモリ（ＲＡＭ）にコピーする機能と、仮想ＩＣカード部５０３から取得したＩＣカードコマンドのレスポンス（Ｒ−ＡＰＤＵ）をＩＣカードコマンドルータ４０に送信する機能と、ＩＣカード１０から得られるＩＣカード識別番号をデータ管理部５０３に送出する機能と、ＩＣカードコマンドの処理完了後に、ＩＣカードコマンドの処理完了の旨をデータ管理部５０３に送出する機能とを有する。
【００２８】
データ管理部５０２は、コマンド入出力部５０４から送出されたＩＣカード識別番号を受信する機能と、ＩＣカード識別番号をキーにデータベース部５０６からＩＣカード情報（ＩＣカードのプログラムコードとデータ）を取得する機能と、コマンド入出力部５０４から送信されたＩＣカードコマンドの処理完了を受信し、ＩＣカード情報（ＩＣカードのプログラムコードとデータ）を図示しない自己のメモリ（ＲＡＭ）にコピーする機能と、メモリ（ＲＡＭ）内容を消去する機能と、ＩＣカード１０のＣＰＵ命令をＩＣカード機能サーバ５０のＣＰＵ命令に逐次変換しながらプログラムコードを実行させるために仮想ＩＣカード部５０３を起動する機能とを有する。
【００２９】
暗号処理部５０１は、データ管理部５０２から送出されたＩＣカード情報を受信する機能と、ＩＣカード情報（ＩＣカードのプログラムコードとデータ）を暗号化及び復号する機能と、図示しない自己のメモリ（ＲＡＭ）内に、復号したＩＣカード情報を格納する機能とを有する。
【００３０】
データベース部５０６は、図２示すように、ＩＣカード識別番号をキーにアプリケーションＩＤを検索するために、ＩＣカード識別番号とアプリケーションＩＤをそれぞれ１対ｎ（ＩＣカード機能サーバに格納されているアプリケーション数）の関係で関連付けて保持するデータベース（＃１）と、ＩＣカード識別番号をキーにＩＣカード情報（ＩＣカードのプログラムコードとデータ）を検索するために、ＩＣカード識別番号とＩＣカード情報（ＩＣカードのプログラムコードとデータ）を関連付けて保持するデータベース（＃２）からなる。
【００３１】
（サービスプロバイダサーバ）
サービスプロバイダサーバ３０は、端末２０から送信される端末ＩＤ及びＩＣカード識別番号を受信する機能と、端末ＩＤ、ＩＣカード識別番号及びＩＣカードコマンドをＩＣカードコマンドルータ４０に送信する機能と、ＩＣカードコマンドルータ４０から送信されるＩＣカード識別番号及びレスポンス（ＩＣカードコマンドの実行結果）を受信する機能と、ＩＣカードコマンドの処理完了後に “ＩＣカード処理完了”のメッセージを端末２０に送信する機能とを有する。
【００３２】
（ＩＣカードコマンドルータ）
ＩＣカードコマンドルータ４０は、サービスプロバイダサーバ３０から送信される端末ＩＤ、ＩＣカード識別番号４０ａ及びＩＣカードコマンドを受信する機能と、サービスプロバイダサーバ３０から送信されるＩＣカードコマンドを、ＩＣカード識別番号４０ａに基づいて端末２０又はＩＣカード機能サーバ５０へディスパッチ（送信先情報４０ｂに基づく送信先の選択）する機能と、ＩＣカード識別番号及びＩＣカードコマンドを端末２０に送信する機能と、ＩＣカード識別番号及びＩＣカードコマンドをＩＣカード機能サーバ５０に送信する機能と、ＩＣカード識別番号とＩＣカードコマンドのレスポンスとをサービスプロバイダサーバ３０に送信する機能とを有する。
【００３３】
次に、本発明による一実施例のＩＣカード制御システムの動作を説明する。図３は、本発明による一実施例のＩＣカード制御システムの動作フローを示す図である。
【００３４】
〔システム動作〕
利用者は、ＩＣカード１０を端末２０に接続されたＩＣカードリーダライタに挿入する（ステップＳ１）。
【００３５】
端末２０は、ＩＣカード１０からＩＣカード識別番号を取得する（ステップＳ２）。ＩＣカード識別番号は、ＩＣカードを一意に識別するＩＤであり、事前にＩＣカード１０に格納されているものとする。
【００３６】
端末２０は、端末ＩＤ及びＩＣカード識別番号をサービスプロバイダサーバ３０に送信する（ステップＳ３）。端末ＩＤは、端末２０を一意に識別するＩＤであり、事前に端末２０に登録されているものとする。
【００３７】
以下の手順は、ＩＣカードアプリケーションの実行手順に関する。
【００３８】
サービスプロバイダサーバ３０は、アプリケーション実行要求をＩＣカードコマンドルータ４０に送信する（ステップＳ４）。このアプリケーション実行要求は、端末ＩＤ、ＩＣカード識別番号及びＩＣカードコマンド（ＳＥＬＥＣＴコマンド）を一組として構成される。尚、ＳＥＬＥＣＴコマンドは、アプリケーションを選択するＩＣカードコマンドであり、引数としてアプリケーションの識別子であるアプリケーションＩＤが付与される。
【００３９】
ＩＣカードコマンドルータ４０は、アプリケーション実行要求を受信した後、当該端末ＩＤの端末２０に対して、ＩＣカード識別番号及びＩＣカードコマンド（ＳＥＬＥＣＴコマンド)を送信する（ステップＳ５）。
【００４０】
端末２０は、ＩＣカード識別番号に対応したＩＣカード１０に対して、ＩＣカードコマンド（ＳＥＬＥＣＴコマンド）を送信する（ステップＳ６）。
【００４１】
ＩＣカード１０は、ＳＥＬＥＣＴコマンドのアプリケーションＩＤに対応したアプリケーションを選択できた場合は、端末２０に正常終了のレスポンスを返却し（当該ＳＥＬＥＣＴコマンドの返却を含む）、該当のアプリケーションが存在しない場合は、エラーのレスポンスを返却する（ステップＳ７）。例えば、ＩＣカード１０がＧｌｏｂａｌＰｌａｔｆｏｒｍ仕様のＩＣカードの場合、アプリケーションを選択するＩＣカードコマンド（ＳＥＬＥＣＴコマンド）に対して、アプリケーションの選択が成功した場合、０ｘ９０００の正常終了のレスポンスを返却し（当該ＩＣカードコマンドの返却を含む）、アプリケーションが存在しない場合は、０ｘ６Ａ８２のエラーレスポンスを返却する。
【００４２】
端末２０は、端末ＩＤ、ＩＣカード識別番号、及びＩＣカード１０から返却されたＩＣカードコマンド（ＳＥＬＥＣＴコマンド）のレスポンスをＩＣカードコマンドルータ４０に送信する（ステップＳ８）。
【００４３】
ＩＣカードコマンドルータ４０は、受信したレスポンスが正常終了（０ｘ９０００）の場合、ＩＣカード識別番号に対応する送信先情報に端末２０の端末ＩＤを設定する（ステップＳ９）。尚、送信先情報は、ＩＣカード識別番号毎に保持される。また、サービスプロバイダサーバ３０から送信されたＩＣカードコマンドが、アプリケーションを選択するＩＣカードコマンド（ＳＥＬＥＣＴコマンド）の場合、ＩＣカードコマンドルータ４０は、サービスプロバイダサーバ３０から送信されたＩＣカードコマンドの受信時点で、ＩＣカード識別番号に対応した送信先情報を消去する。
【００４４】
ステップＳ９にて、ＩＣカードコマンドルータ４０は、受信したレスポンスがエラー（０ｘ６Ａ８２）の場合、ＩＣカード識別番号及びＩＣカードコマンド（ＳＥＬＥＣＴコマンド）をＩＣカード機能サーバ５０に送信して、以下のステップＳ１０乃至Ｓ１２の処理を実行する。
【００４５】
ＩＣカードコマンドルータ４０は、ＩＣカード識別番号及びＩＣカードコマンド（ＳＥＬＥＣＴコマンド）をＩＣカード機能サーバ５０に送信する（ステップＳ１０）。
【００４６】
ＩＣカード機能サーバ５０では、以下の処理を実行する。
【００４７】
コマンド入出力部５０４は、ＩＣカードコマンドルータ４０からＩＣカード識別番号及びＩＣカードコマンド（ＳＥＬＥＣＴコマンド）を受信すると、ＩＣカード識別番号をアプリケーションリスト管理部５０５に送信し、アプリケーションリスト管理部５０５は、ＩＣカード識別番号をキーに、データベース部５０６内のデータベース（＃１）からアプリケーションＩＤを取得し、ＳＥＬＥＣＴコマンドのアプリケーションＩＤとデータベース部５０６内のデータベース（＃１）から取得したアプリケーションＩＤを照合する（ステップＳ１１）。尚、ＩＣカード識別番号とアプリケーションＩＤは１対ｎ（ＩＣカード機能サーバに格納されているアプリケーション数）の関係である。
【００４８】
アプリケーションリスト管理部５０５は、データベース部５０６内のデータベース（＃１）に該当するアプリケーションＩＤが存在すると判断した場合は、正常終了（０ｘ９０００）のレスポンスをコマンド入出力部５０４に送出し、コマンド入出力部５０４は、ＩＣカード識別番号とＩＣカードコマンド（ＳＥＬＥＣＴコマンド）のレスポンスをＩＣカードコマンドルータ４０に送信する（ステップＳ１２）。尚、アプリケーションリスト管理部５０５は、該当のアプリケーションが存在しないと判断した場合は、エラー（０ｘ６Ａ８２）のレスポンスをコマンド入出力部５０４に送出し、コマンド入出力部５０４は、このレスポンスをＩＣカードコマンドルータ４０に送信する。
【００４９】
ＩＣカードコマンドルータ４０は、ＩＣカード機能サーバ５０から受信したレスポンスが正常終了（０ｘ９０００）の場合、ＩＣカード識別番号に対応する送信先を示す送信先情報に“ＩＣカード機能サーバ５０”を送信先とする旨を設定する（ステップＳ１３）。
【００５０】
ＩＣカードコマンドルータ４０は、ＩＣカード識別番号と、当該レスポンス（正常終了（０ｘ９０００）又はエラー（０ｘ６Ａ８２））をサービスプロバイダサーバ３０に送信する（ステップＳ１４）。
【００５１】
サービスプロバイダサーバ３０は、受信したレスポンスが正常終了（０ｘ９０００）の場合は、次に、ＩＣカード識別番号及びＩＣカードコマンド（アプリケーション用コマンド）をＩＣカードコマンドルータ４０に送信する（ステップＳ１５）。一方、サービスプロバイダサーバ３０は、受信したレスポンスがエラー（０ｘ６Ａ８２）の場合は、端末２０に“アプリケーションが存在しない”のメッセージを送信する。
【００５２】
ＩＣカードコマンドルータ４０は、ＩＣカード識別番号に関連付けて設定されたＩＣカードコマンド（アプリケーション用コマンド）の送信先（端末２０又はＩＣカード機能サーバ５０）を示す送信先情報に従い、端末２０を経由してＩＣカード１０に向けて送信するか、又はＩＣカード機能サーバ５０に向けて送信するかを判別し、判別した送信先に向けてＩＣカードコマンド（アプリケーション用コマンド）を送信する（ステップＳ１６）。
【００５３】
ＩＣカード１０又はＩＣカード機能サーバ５０のいずれか一方は、受信したＩＣカードコマンド（アプリケーション用コマンド）を実行し、その実行結果を示すレスポンスをＩＣカードコマンドルータ４０に送信する（ステップＳ１７ａ, １７ｂ，１７ｃ）。ＩＣカードコマンドルータ４０は実行結果を示すレスポンスを受信すると、その旨をサービスプロバイダサーバ３０に返信する。尚、ＩＣカード機能サーバ５０によるＩＣカードコマンド実行手順は図４を参照して後述する。
【００５４】
ＩＣカードコマンドルータ４０は、ＩＣカード識別番号及び上記実行結果を示すレスポンスをサービスプロバイダサーバ３０に送信する（ステップＳ１８）。
【００５５】
サービスプロバイダサーバ３０は、アプリケーションの処理に必要な全てのＩＣカードコマンドの送信が完了するまで、ステップＳ１５乃至Ｓ１８の処理を繰り返す（ステップＳ１９）。
【００５６】
サービスプロバイダサーバ３０は、“ＩＣカード処理完了”のメッセージを端末２０に送信する（ステップＳ２０）。
【００５７】
このように、本実施例のＩＣカード制御システム１００によれば、マルチアプリケーション型のＩＣカード１０であるにも関わらず、ＩＣカード１０のメモリが不足することにより搭載できないアプリケーションについて、ネットワーク上に用意したＩＣカード機能サーバ５０で動作させることが可能になり、実質的に、利用者が利用できるＩＣカードアプリケーションを増大化することが可能となり、さらに、利用者及びサービス提供者は、ＩＣカード１０上のアプリケーションとネットワーク上のＩＣカード機能サーバ５０で動作しているアプリケーションの切り替えを意識する必要もなく、従来からのＩＣカードと変わらない方法で本実施例のＩＣカード制御システム１００を利用することができるようになる。
【００５８】
以下、ＩＣカード機能サーバ５０によるＩＣカードコマンド実行手順について、図４を参照して説明を加える。図４は、本発明による一実施例のＩＣカード制御システムにおけるＩＣカード機能サーバの動作フローを示す図である。
【００５９】
ＩＣカード機能サーバ５０は、ＩＣカードコマンドルータ４０から送信されたＩＣカード識別番号及びＩＣカードコマンドを受信すると、図４に示す手順にて処理を実行する。
【００６０】
コマンド入出力部５０４は、ＩＣカードコマンドルータ４０から送信されたＩＣカード識別番号及びＩＣカードコマンドを受信すると、ＩＣカード識別番号をデータ管理部５０２に送出する（ステップＳ３１）。また、コマンド入出力部５０４は、ＩＣカードコマンドを、図示しない自己のメモリ（ＲＡＭ）内にコピーする。
【００６１】
データ管理部５０２は、ＩＣカード識別番号をキーにデータベース部５０６内のデータベース（＃２）からＩＣカード情報（ＩＣカードのプログラムコードとデータ）を取得し、図示しない自己のメモリ（ＲＡＭ）にコピーする。
【００６２】
ここで、データベース部５０６内のデータベース（＃２）のＩＣカード情報が暗号化されている場合は、データ管理部５０２は、暗号化されたＩＣカード情報を暗号処理部５０１に送出し、暗号処理部５０１によって暗号化されたＩＣカード情報を復号した後、図示しない自己のメモリ（ＲＡＭ）にコピーし、仮想ＩＣカード部５０３を起動させる（ステップＳ３２）。暗号処理部５０の暗号化方式は、例えば公開鍵暗号方式などがある。また、データベース部５０６内のデータベース（＃２）には事前に、ＩＣカード識別番号とアプリケーションに対応したＩＣカード情報を一組にして格納されているものとする。
【００６３】
仮想ＩＣカード部５０３は、メモリ（ＲＡＭ）内のプログラムコードを読み出し、ＩＣカードのＣＰＵ命令をサーバＰＣのＣＰＵ命令に逐次変換しながらプログラムコードを実行し（エミュレーション機能）、図示しない自己のメモリ（ＲＡＭ）内のＩＣカードコマンド（Ｃ−ＡＰＤＵ）を入力として、該入力に対応したプログラムコードを実行し、実行結果としてＩＣカードコマンド形式のレスポンス（Ｒ−ＡＰＤＵ）をコマンド入出力部５０４に出力する（ステップＳ３３）。
【００６４】
コマンド入出力部５０４は、ＩＣカードレスポンス情報（ＩＣカード識別番号、レスポンス（Ｒ−ＡＰＤＵ））をサービスプロバイダサーバ３０に送信する（ステップＳ３４）。また、コマンド入出力部５０４は、ＩＣカードコマンドの処理完了のメッセージをデータ管理部５０２に通知する。
【００６５】
データ管理部５０２は、図示しないメモリ（ＲＡＭ）上のＩＣカード情報をデータベース部５０６に格納（データの更新）し、当該メモリ（ＲＡＭ）の内容を消去する。このタイミングで当該メモリ（ＲＡＭ）の内容を消去することにより、ＩＣカード機能サーバ５０に対する不正なメモリダンプが実行された場合でも、コマンドを実行中以外のＩＣカード情報の漏えい、改ざんを防ぐことができる。セキュリティを向上させる場合は、データ管理部５０２は、当該メモリ（ＲＡＭ）上のＩＣカード情報を暗号処理部５０１に渡し、暗号鍵で暗号化し、その後、暗号化されたＩＣカード情報をデータベース部５０６に格納（データの更新）する。これにより、不正にデータベースを閲覧された場合でも、ＩＣカード情報は暗号化されているため、内容の漏えいを防ぐことができる。
【００６６】
上記のように構成することにより、利用者及びサービス提供者は、ＩＣカード１０のアプリケーションがＩＣカード１０上又はＩＣカード機能サーバ５０上のどちらに格納されているかを意識することなく、アプリケーションを利用することが可能になる。また、一般的なサーバのメモリは、ＩＣカードと比較して、数万倍のメモリサイズを持つことから、実質上、利用者が利用する現時点で運用されている全てのＩＣカードアプリケーションを格納できるようになる。
【産業上の利用可能性】
【００６７】
本発明によれば、利用者及びサービス提供者は、ＩＣカード１０のアプリケーションがＩＣカード１０上又はＩＣカード機能サーバ５０上のどちらに格納されているかを意識することなく、アプリケーションを利用することが可能になるから、マルチアプリケーション型のＩＣカードの用途に有用である。
【符号の説明】
【００６８】
１０  ＩＣカード
２０  端末
３０  サービスプロバイダサーバ
４０  ＩＣカードコマンドルータ
４０ａ  ＩＣカード識別番号
４０ｂ  送信先情報
５０  ＩＣカード機能サーバ
１００  ＩＣカード制御システム
５０１  暗号処理部
５０２  データ管理部
５０３  仮想ＩＣカード部
５０４  コマンド入出力部
５０５  アプリケーションリスト管理部
５０６  データベース部
【図１】
2011238138.tif 000003
【図２】
2011238138.tif 000004
【図３】
2011238138.tif 000005
【図４】
2011238138.tif 000006