説明

ICカード制御方法及びICカード制御システム

【課題】ICカードで実行可能なアプリケーションをICカード機能サーバに分散配置し、ICカードに対して、ICカードの記憶容量を超える複数のアプリケーションの実行を可能にするICカード制御方法及びICカード制御システムを提供する。
【解決手段】ICカードコマンドルータ40は、サービスプロバイダサーバ30から、端末20の端末ID及びICカード10のICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、ICカード10に対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、ICカード機能サーバ50に対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチアプリケーション型ICカードを利用するシステムに関し、特に、ICカードのメモリが不足することにより搭載出来ないアプリケーションを、ネットワーク上に用意したサーバ上で動作させることにより、利用者が利用できるアプリケーション数を増大させることを可能とするICカード制御方法及びICカード制御システムに関する。
【背景技術】
【0002】
従来は、単一機能のICカードが主流であったが、近年、ICカードに複数のアプリケーションを搭載可能なマルチアプリケーション型のICカードが実用化され、普及しつつある。マルチアプリケーション型ICカードの方式としては、GlobalPlatform仕様が業界標準となっており(例えば、非特許文献1参照)、様々なベンダから製品が販売されている(例えば、非特許文献2参照)。
【0003】
マルチアプリケーション型のICカードは、ICカードのメモリ内に複数のアプリケーションのプログラムコードやデータが格納されるが、一般的なICカードのメモリサイズは32KB〜64KB程度と小さく、数個のアプリケーションしか搭載できない。
【0004】
従来のICカードの運用方法では、新規のアプリケーション搭載時にメモリが不足した場合は、(1)ICカードから搭載済みのアプリケーションを削除し、新規のアプリケーションを搭載する方法、又は(2)別のICカードを用意し、新規のアプリケーションを搭載する方法がとられてきた。上記の(1)、(2)の方法でICカードを運用する製品例としては、日本電信電話株式会社(NTT)が開発した製品がある(例えば、非特許文献3参照)。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】“The Standard for Smart Card Infrastructure”、globalplatform、[online]、[2010年5月6日検索]、インターネット〈http://www.globalplatform.org〉
【非特許文献2】“IC CARD, DNP Standard-J Ax”、大日本印刷、[online]、[2010年5月6日検索]、インターネット〈http://www.dnp.co.jp/bf/ic_card/products/standard_ja.html〉
【非特許文献3】“情報通信用語集 NICE(Network-based IC Card Environment)”、平成20年3月17日報告、日本電信電話株式会社、[online]、[2010年5月6日検索]、インターネット〈http://www.ntt-review.jp/yougo/word.php?word_id=1447〉
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述したICカードの運用方法に関して、上記(1)の方法の場合は、利用シーンに応じて、アプリケーションを入れ替える必要があり利用者の手間が掛かるという問題があり、上記(2)の方法の場合は、利用シーンに応じて、利用者がICカードを使い分ける必要があり利便性が低下するという問題があった。
【0007】
これらの解決する方法としてICカードのメモリ増加が考えられるが、実際には、ICチップのサイズによる制限(約3mm角のチップサイズにCPU、メモリ、通信機能等の機能をパッケージングする必要がある)があるため、パーソナルコンピュータ(PC)のように容易にメモリ量を追加することができない。
【0008】
今後、公共サービス及び民間サービスで利用されるアプリケーションは増大化する方向であり、上記問題の解決が望まれている。
【0009】
そこで、本発明の目的は、ICカードのメモリが不足することにより搭載出来ないアプリケーションを、ネットワーク上に用意したサーバ上で動作させることにより、利用者が利用できるアプリケーション数を増大させることを可能とするICカード制御方法及びICカード制御システムを提供することにある。
【課題を解決するための手段】
【0010】
本発明は、ネットワーク上にICカードと同一のアプリケーションを実行できるサーバ(以降、「ICカード機能サーバ」と称する)を用意し、ICカードとICカード機能サーバにアプリケーションを分散配置して、ICカードとICカード機能サーバが仮想的に1枚のICカードとして動作するシステムを構築することにより、前述した問題を解決する。
【0011】
即ち、本発明によるICカード制御方法は、ICカードで実行可能なアプリケーションをICカード機能サーバに分散配置して構成されるICカード制御システムにて、前記ICカード機能サーバに対して、前記ICカードで実行可能なアプリケーションの実行を可能にするICカード制御方法であって、
前記ICカード制御システムは、ICカードコマンドルータと、ICカードと、前記ICカードとサービスプロバイダサーバとの通信を担う端末と、ICカード機能サーバとを備えており、
前記ICカードコマンドルータによって、前記サービスプロバイダサーバから、前記端末の端末ID及び前記ICカードのICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ICカードに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ICカード機能サーバに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ICカードか、又は前記ICカード機能サーバのいずれか一方に当該アプリケーションを実行可能にさせることを特徴とする。
【0012】
また、本発明のICカード制御方法において、
(A)前記ICカードコマンドルータによって、当該端末を識別する端末ID及び当該ICカードを識別するICカード識別番号を取得するサービスプロバイダサーバから、前記端末ID及び前記ICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末IDの端末を経由して、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードに送信するステップと、
(B)前記ICカードによって、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ICカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却するステップと、
(C)前記ICカードコマンドルータによって、前記ICカードから受信したレスポンスが正常終了の旨を示す場合、前記ICカード識別番号に対応する当該アプリケーションを実行するための全てのICカードコマンドの送信先情報に前記端末IDを設定し、前記ICカードから受信したレスポンスがエラーの旨を示す場合、前記ICカード識別番号及び前記ICカードコマンドを前記ICカード機能サーバに送信するステップと、
(D)前記ICカード機能サーバによって、前記ICカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ICカード識別番号及び前記ICカードコマンドを受信した際に、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ICカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ICカードコマンドルータに送信するステップと、
を含むことを特徴とする。
【0013】
また、本発明のICカード制御方法において、
(E)前記ステップ(D)の後に、前記ICカードコマンドルータによって、前記ICカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ICカード機能サーバを送信先とする旨を設定し、前記ICカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信するステップと、
(F)前記サービスプロバイダサーバによって、受信した当該レスポンスが正常終了を示す場合にのみ、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードコマンドルータに送信し、受信した当該レスポンスがエラーを示す場合に、前記ICカードコマンドに対応するアプリケーションを選択できない旨のメッセージを前記端末に送信するステップと、
(G)前記ICカードコマンドルータによって、前記ICカード識別番号に関連付けて設定された前記ICカードコマンドの送信先を示す送信先情報に従い、前記ICカードに向けて送信するか、又は前記ICカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ICカードコマンドを送信するステップと、
(H)前記ICカード、又は前記ICカード機能サーバのいずれか一方は、受信したICカードコマンドを実行し、この実行結果を示すレスポンスを前記ICカードコマンドルータに返信するステップと、
(I)前記ICカードコマンドルータによって、前記ICカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信するステップと、
(J)前記サービスプロバイダサーバによって、当該アプリケーションの処理に必要な全てのICカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すステップと、
を含むことを特徴とする。
【0014】
さらに、本発明のICカード制御システムは、ICカードで実行可能なアプリケーションをICカード機能サーバに分散配置し、ICカードに対して、ICカードの記憶容量を超える複数のアプリケーションの実行を可能にするICカード制御システムであって、
ICカードコマンドルータと、ICカードと、前記ICカードとサービスプロバイダサーバとの通信を担う端末と、ICカード機能サーバとを備え、
前記ICカードコマンドルータは、サービスプロバイダサーバから、前記端末の端末ID及び前記ICカードのICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ICカードに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ICカード機能サーバに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ICカードか、又は前記ICカード機能サーバのいずれか一方に当該アプリケーションを実行可能となるように構成されていることを特徴とする。
【0015】
また、本発明のICカード制御システムにおいて、
前記ICカードコマンドルータは、当該端末を識別する端末ID及び当該ICカードを識別するICカード識別番号を取得するサービスプロバイダサーバから、前記端末ID及び前記ICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末IDの端末を経由して、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードに送信する手段を有し、
前記ICカードは、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ICカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却する手段を有し、
前記ICカードコマンドルータは、さらに、前記ICカードから受信したレスポンスが正常終了の旨を示す場合、前記ICカード識別番号に対応する当該アプリケーションを実行するための全てのICカードコマンドの送信先情報に前記端末IDを設定し、前記ICカードから受信したレスポンスがエラーの旨を示す場合、前記ICカード識別番号及び前記ICカードコマンドを前記ICカード機能サーバに送信する手段を有し、
前記ICカード機能サーバは、前記ICカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ICカード識別番号及び前記ICカードコマンドを受信した際に、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ICカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ICカードコマンドルータに送信する手段を有する、
ことを特徴とする。
【0016】
また、本発明のICカード制御システムにおいて、
前記ICカードコマンドルータは、さらに、前記ICカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ICカード機能サーバを送信先とする旨を設定し、前記ICカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、受信した当該レスポンスが正常終了を示す場合にのみ、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードコマンドルータに送信し、受信した当該レスポンスがエラーを示す場合に、前記ICカードコマンドに対応するアプリケーションを選択できない旨のメッセージを前記端末に送信する手段を有し、
前記ICカードコマンドルータは、前記ICカード識別番号に関連付けて設定された前記ICカードコマンドの送信先を示す送信先情報に従い、前記ICカードに向けて送信するか、又は前記ICカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ICカードコマンドを送信する手段を有し、
前記ICカード、又は前記ICカード機能サーバのいずれか一方は、受信したICカードコマンドを実行し、この実行結果を示すレスポンスを前記ICカードコマンドルータに返信するように構成され、さらに、
前記ICカードコマンドルータは、前記ICカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、当該アプリケーションの処理に必要な全てのICカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すように構成されていることを特徴とする。
【発明の効果】
【0017】
本発明によれば、マルチアプリケーション型のICカードを利用するシステムにおいて、ICカードのメモリが不足することにより搭載できないアプリケーションを、ネットワーク上に用意したICカード機能サーバ上で動作させることが可能になり、利用者が利用できるICカードアプリケーションを増大化することが可能となる。
【0018】
また、本発明によれば、利用者及びサービス提供者は、ICカード上のアプリケーションとネットワーク上のICカード機能サーバで動作しているアプリケーションの切り替えを意識する必要が無いため、従来のICカードと変わらない方法で利用することができる。
【図面の簡単な説明】
【0019】
【図1】本発明による一実施例のICカード制御システムの概略図である。
【図2】本発明による一実施例のICカード制御システムにおけるデータベース部の構成を示す図である。
【図3】本発明による一実施例のICカード制御システムの動作フローを示す図である。
【図4】本発明による一実施例のICカード制御システムにおけるICカード機能サーバの動作フローを示す図である。
【発明を実施するための形態】
【0020】
以下、本発明による一実施例のICカード制御システムを説明する。本発明に係るICカード制御方法は、本実施例のICカード制御システムの説明から明らかになる。
【0021】
〔システム構成〕
図1は、本発明による一実施例のICカード制御システムの概略図である。また、図2は、本発明による一実施例のICカード制御システムにおけるデータベース部の構成を示す図である。本実施例のICカード制御システム100は、利用者が保有するICカード10と、ICカード10をネットワークに接続する機能を提供する端末20と、ネットワーク上で動作するサーバであり、ICカード10と同一の機能を提供するICカード機能サーバ50と、サービス提供者が管理し、利用者に対してICカード10を利用したサービスを提供するサービスプロバイダサーバ30と、実行するアプリケーションに応じてICカードコマンドを、ICカード10又はICカード機能サーバ50へ送信先を切り替える機能を提供するICカードコマンドルータ40とを備える。
【0022】
(ICカード)
ICカード10は、当該ICカード10を一意に識別するIDとしてのICカード識別番号を予め格納しており、このICカード識別番号を端末20に送信する機能と、ICカードコマンドに対応したアプリケーションを選択する機能と、当該アプリケーションを実行する機能(受信したICカードコマンドに対応した処理を実行し、その実行結果のレスポンスを端末20に送信する機能を含む)とを有する。
【0023】
(端末)
端末20は、端末20を一意に識別するIDとしての端末IDを予め保持しており、本実施例のICカード制御システム100にて事前に登録されているものとする。端末20は、ICカードリーダライタ(図示せず)を接続しており、ICカード10からICカード識別番号を取得する機能と、端末ID及びICカード識別番号をサービスプロバイダサーバ30に送信する機能と、サービスプロバイダサーバ30から送信されたメッセージを受信する機能と、ICカードコマンドルータ40から送信されたICカード識別番号及びICカードコマンドを受信する機能と、端末ID、ICカード識別番号、及びレスポンスをICカードコマンドルータ40に送信する機能とを有する。
【0024】
(ICカード機能サーバ)
ICカード機能サーバ50は、暗号処理部501と、データ管理部502と、仮想ICカード部503と、コマンド入出力部504と、アプリケーションリスト管理部505と、データベース部506とを有する。
【0025】
アプリケーションリスト管理部505は、コマンド入出力部504から送信されたICカード識別番号を受信する機能と、受信したICカード識別番号をキーに、データベース部506(データベース(#1))からアプリケーションIDを取得する機能と、ICカードコマンド(SELECTコマンド)のアプリケーションIDとデータベース部506(データベース(#1))から取得したアプリケーションIDとを照合する機能と、アプリケーションIDの照合結果のレスポンスをコマンド入出力部504に送信する機能とを有する。
【0026】
仮想ICカード部503は、ICカード10のCPU命令をICカード機能サーバ50のCPU命令に逐次変換しながらプログラムコードを実行するICカード用のエミュレーション機能と、ICカードコマンド形式のレスポンス(R−APDU)をコマンド入出力部504に送出する機能とを有する。尚、 “エミュレーション”についての更なる詳細は、例えば、
“http://e-words.jp/w/E382A8E3839FE383A5E383ACE383BCE382B7E383A7E383B3.html”
等を参照されたい。
【0027】
コマンド入出力部504は、ICカードコマンドルータ40から送信されたICカードコマンドを受信する機能と、ICカードコマンド(C−APDU)を図示しない自己のメモリ(RAM)にコピーする機能と、仮想ICカード部503から取得したICカードコマンドのレスポンス(R−APDU)をICカードコマンドルータ40に送信する機能と、ICカード10から得られるICカード識別番号をデータ管理部503に送出する機能と、ICカードコマンドの処理完了後に、ICカードコマンドの処理完了の旨をデータ管理部503に送出する機能とを有する。
【0028】
データ管理部502は、コマンド入出力部504から送出されたICカード識別番号を受信する機能と、ICカード識別番号をキーにデータベース部506からICカード情報(ICカードのプログラムコードとデータ)を取得する機能と、コマンド入出力部504から送信されたICカードコマンドの処理完了を受信し、ICカード情報(ICカードのプログラムコードとデータ)を図示しない自己のメモリ(RAM)にコピーする機能と、メモリ(RAM)内容を消去する機能と、ICカード10のCPU命令をICカード機能サーバ50のCPU命令に逐次変換しながらプログラムコードを実行させるために仮想ICカード部503を起動する機能とを有する。
【0029】
暗号処理部501は、データ管理部502から送出されたICカード情報を受信する機能と、ICカード情報(ICカードのプログラムコードとデータ)を暗号化及び復号する機能と、図示しない自己のメモリ(RAM)内に、復号したICカード情報を格納する機能とを有する。
【0030】
データベース部506は、図2示すように、ICカード識別番号をキーにアプリケーションIDを検索するために、ICカード識別番号とアプリケーションIDをそれぞれ1対n(ICカード機能サーバに格納されているアプリケーション数)の関係で関連付けて保持するデータベース(#1)と、ICカード識別番号をキーにICカード情報(ICカードのプログラムコードとデータ)を検索するために、ICカード識別番号とICカード情報(ICカードのプログラムコードとデータ)を関連付けて保持するデータベース(#2)からなる。
【0031】
(サービスプロバイダサーバ)
サービスプロバイダサーバ30は、端末20から送信される端末ID及びICカード識別番号を受信する機能と、端末ID、ICカード識別番号及びICカードコマンドをICカードコマンドルータ40に送信する機能と、ICカードコマンドルータ40から送信されるICカード識別番号及びレスポンス(ICカードコマンドの実行結果)を受信する機能と、ICカードコマンドの処理完了後に “ICカード処理完了”のメッセージを端末20に送信する機能とを有する。
【0032】
(ICカードコマンドルータ)
ICカードコマンドルータ40は、サービスプロバイダサーバ30から送信される端末ID、ICカード識別番号40a及びICカードコマンドを受信する機能と、サービスプロバイダサーバ30から送信されるICカードコマンドを、ICカード識別番号40aに基づいて端末20又はICカード機能サーバ50へディスパッチ(送信先情報40bに基づく送信先の選択)する機能と、ICカード識別番号及びICカードコマンドを端末20に送信する機能と、ICカード識別番号及びICカードコマンドをICカード機能サーバ50に送信する機能と、ICカード識別番号とICカードコマンドのレスポンスとをサービスプロバイダサーバ30に送信する機能とを有する。
【0033】
次に、本発明による一実施例のICカード制御システムの動作を説明する。図3は、本発明による一実施例のICカード制御システムの動作フローを示す図である。
【0034】
〔システム動作〕
利用者は、ICカード10を端末20に接続されたICカードリーダライタに挿入する(ステップS1)。
【0035】
端末20は、ICカード10からICカード識別番号を取得する(ステップS2)。ICカード識別番号は、ICカードを一意に識別するIDであり、事前にICカード10に格納されているものとする。
【0036】
端末20は、端末ID及びICカード識別番号をサービスプロバイダサーバ30に送信する(ステップS3)。端末IDは、端末20を一意に識別するIDであり、事前に端末20に登録されているものとする。
【0037】
以下の手順は、ICカードアプリケーションの実行手順に関する。
【0038】
サービスプロバイダサーバ30は、アプリケーション実行要求をICカードコマンドルータ40に送信する(ステップS4)。このアプリケーション実行要求は、端末ID、ICカード識別番号及びICカードコマンド(SELECTコマンド)を一組として構成される。尚、SELECTコマンドは、アプリケーションを選択するICカードコマンドであり、引数としてアプリケーションの識別子であるアプリケーションIDが付与される。
【0039】
ICカードコマンドルータ40は、アプリケーション実行要求を受信した後、当該端末IDの端末20に対して、ICカード識別番号及びICカードコマンド(SELECTコマンド)を送信する(ステップS5)。
【0040】
端末20は、ICカード識別番号に対応したICカード10に対して、ICカードコマンド(SELECTコマンド)を送信する(ステップS6)。
【0041】
ICカード10は、SELECTコマンドのアプリケーションIDに対応したアプリケーションを選択できた場合は、端末20に正常終了のレスポンスを返却し(当該SELECTコマンドの返却を含む)、該当のアプリケーションが存在しない場合は、エラーのレスポンスを返却する(ステップS7)。例えば、ICカード10がGlobalPlatform仕様のICカードの場合、アプリケーションを選択するICカードコマンド(SELECTコマンド)に対して、アプリケーションの選択が成功した場合、0x9000の正常終了のレスポンスを返却し(当該ICカードコマンドの返却を含む)、アプリケーションが存在しない場合は、0x6A82のエラーレスポンスを返却する。
【0042】
端末20は、端末ID、ICカード識別番号、及びICカード10から返却されたICカードコマンド(SELECTコマンド)のレスポンスをICカードコマンドルータ40に送信する(ステップS8)。
【0043】
ICカードコマンドルータ40は、受信したレスポンスが正常終了(0x9000)の場合、ICカード識別番号に対応する送信先情報に端末20の端末IDを設定する(ステップS9)。尚、送信先情報は、ICカード識別番号毎に保持される。また、サービスプロバイダサーバ30から送信されたICカードコマンドが、アプリケーションを選択するICカードコマンド(SELECTコマンド)の場合、ICカードコマンドルータ40は、サービスプロバイダサーバ30から送信されたICカードコマンドの受信時点で、ICカード識別番号に対応した送信先情報を消去する。
【0044】
ステップS9にて、ICカードコマンドルータ40は、受信したレスポンスがエラー(0x6A82)の場合、ICカード識別番号及びICカードコマンド(SELECTコマンド)をICカード機能サーバ50に送信して、以下のステップS10乃至S12の処理を実行する。
【0045】
ICカードコマンドルータ40は、ICカード識別番号及びICカードコマンド(SELECTコマンド)をICカード機能サーバ50に送信する(ステップS10)。
【0046】
ICカード機能サーバ50では、以下の処理を実行する。
【0047】
コマンド入出力部504は、ICカードコマンドルータ40からICカード識別番号及びICカードコマンド(SELECTコマンド)を受信すると、ICカード識別番号をアプリケーションリスト管理部505に送信し、アプリケーションリスト管理部505は、ICカード識別番号をキーに、データベース部506内のデータベース(#1)からアプリケーションIDを取得し、SELECTコマンドのアプリケーションIDとデータベース部506内のデータベース(#1)から取得したアプリケーションIDを照合する(ステップS11)。尚、ICカード識別番号とアプリケーションIDは1対n(ICカード機能サーバに格納されているアプリケーション数)の関係である。
【0048】
アプリケーションリスト管理部505は、データベース部506内のデータベース(#1)に該当するアプリケーションIDが存在すると判断した場合は、正常終了(0x9000)のレスポンスをコマンド入出力部504に送出し、コマンド入出力部504は、ICカード識別番号とICカードコマンド(SELECTコマンド)のレスポンスをICカードコマンドルータ40に送信する(ステップS12)。尚、アプリケーションリスト管理部505は、該当のアプリケーションが存在しないと判断した場合は、エラー(0x6A82)のレスポンスをコマンド入出力部504に送出し、コマンド入出力部504は、このレスポンスをICカードコマンドルータ40に送信する。
【0049】
ICカードコマンドルータ40は、ICカード機能サーバ50から受信したレスポンスが正常終了(0x9000)の場合、ICカード識別番号に対応する送信先を示す送信先情報に“ICカード機能サーバ50”を送信先とする旨を設定する(ステップS13)。
【0050】
ICカードコマンドルータ40は、ICカード識別番号と、当該レスポンス(正常終了(0x9000)又はエラー(0x6A82))をサービスプロバイダサーバ30に送信する(ステップS14)。
【0051】
サービスプロバイダサーバ30は、受信したレスポンスが正常終了(0x9000)の場合は、次に、ICカード識別番号及びICカードコマンド(アプリケーション用コマンド)をICカードコマンドルータ40に送信する(ステップS15)。一方、サービスプロバイダサーバ30は、受信したレスポンスがエラー(0x6A82)の場合は、端末20に“アプリケーションが存在しない”のメッセージを送信する。
【0052】
ICカードコマンドルータ40は、ICカード識別番号に関連付けて設定されたICカードコマンド(アプリケーション用コマンド)の送信先(端末20又はICカード機能サーバ50)を示す送信先情報に従い、端末20を経由してICカード10に向けて送信するか、又はICカード機能サーバ50に向けて送信するかを判別し、判別した送信先に向けてICカードコマンド(アプリケーション用コマンド)を送信する(ステップS16)。
【0053】
ICカード10又はICカード機能サーバ50のいずれか一方は、受信したICカードコマンド(アプリケーション用コマンド)を実行し、その実行結果を示すレスポンスをICカードコマンドルータ40に送信する(ステップS17a, 17b,17c)。ICカードコマンドルータ40は実行結果を示すレスポンスを受信すると、その旨をサービスプロバイダサーバ30に返信する。尚、ICカード機能サーバ50によるICカードコマンド実行手順は図4を参照して後述する。
【0054】
ICカードコマンドルータ40は、ICカード識別番号及び上記実行結果を示すレスポンスをサービスプロバイダサーバ30に送信する(ステップS18)。
【0055】
サービスプロバイダサーバ30は、アプリケーションの処理に必要な全てのICカードコマンドの送信が完了するまで、ステップS15乃至S18の処理を繰り返す(ステップS19)。
【0056】
サービスプロバイダサーバ30は、“ICカード処理完了”のメッセージを端末20に送信する(ステップS20)。
【0057】
このように、本実施例のICカード制御システム100によれば、マルチアプリケーション型のICカード10であるにも関わらず、ICカード10のメモリが不足することにより搭載できないアプリケーションについて、ネットワーク上に用意したICカード機能サーバ50で動作させることが可能になり、実質的に、利用者が利用できるICカードアプリケーションを増大化することが可能となり、さらに、利用者及びサービス提供者は、ICカード10上のアプリケーションとネットワーク上のICカード機能サーバ50で動作しているアプリケーションの切り替えを意識する必要もなく、従来からのICカードと変わらない方法で本実施例のICカード制御システム100を利用することができるようになる。
【0058】
以下、ICカード機能サーバ50によるICカードコマンド実行手順について、図4を参照して説明を加える。図4は、本発明による一実施例のICカード制御システムにおけるICカード機能サーバの動作フローを示す図である。
【0059】
ICカード機能サーバ50は、ICカードコマンドルータ40から送信されたICカード識別番号及びICカードコマンドを受信すると、図4に示す手順にて処理を実行する。
【0060】
コマンド入出力部504は、ICカードコマンドルータ40から送信されたICカード識別番号及びICカードコマンドを受信すると、ICカード識別番号をデータ管理部502に送出する(ステップS31)。また、コマンド入出力部504は、ICカードコマンドを、図示しない自己のメモリ(RAM)内にコピーする。
【0061】
データ管理部502は、ICカード識別番号をキーにデータベース部506内のデータベース(#2)からICカード情報(ICカードのプログラムコードとデータ)を取得し、図示しない自己のメモリ(RAM)にコピーする。
【0062】
ここで、データベース部506内のデータベース(#2)のICカード情報が暗号化されている場合は、データ管理部502は、暗号化されたICカード情報を暗号処理部501に送出し、暗号処理部501によって暗号化されたICカード情報を復号した後、図示しない自己のメモリ(RAM)にコピーし、仮想ICカード部503を起動させる(ステップS32)。暗号処理部50の暗号化方式は、例えば公開鍵暗号方式などがある。また、データベース部506内のデータベース(#2)には事前に、ICカード識別番号とアプリケーションに対応したICカード情報を一組にして格納されているものとする。
【0063】
仮想ICカード部503は、メモリ(RAM)内のプログラムコードを読み出し、ICカードのCPU命令をサーバPCのCPU命令に逐次変換しながらプログラムコードを実行し(エミュレーション機能)、図示しない自己のメモリ(RAM)内のICカードコマンド(C−APDU)を入力として、該入力に対応したプログラムコードを実行し、実行結果としてICカードコマンド形式のレスポンス(R−APDU)をコマンド入出力部504に出力する(ステップS33)。
【0064】
コマンド入出力部504は、ICカードレスポンス情報(ICカード識別番号、レスポンス(R−APDU))をサービスプロバイダサーバ30に送信する(ステップS34)。また、コマンド入出力部504は、ICカードコマンドの処理完了のメッセージをデータ管理部502に通知する。
【0065】
データ管理部502は、図示しないメモリ(RAM)上のICカード情報をデータベース部506に格納(データの更新)し、当該メモリ(RAM)の内容を消去する。このタイミングで当該メモリ(RAM)の内容を消去することにより、ICカード機能サーバ50に対する不正なメモリダンプが実行された場合でも、コマンドを実行中以外のICカード情報の漏えい、改ざんを防ぐことができる。セキュリティを向上させる場合は、データ管理部502は、当該メモリ(RAM)上のICカード情報を暗号処理部501に渡し、暗号鍵で暗号化し、その後、暗号化されたICカード情報をデータベース部506に格納(データの更新)する。これにより、不正にデータベースを閲覧された場合でも、ICカード情報は暗号化されているため、内容の漏えいを防ぐことができる。
【0066】
上記のように構成することにより、利用者及びサービス提供者は、ICカード10のアプリケーションがICカード10上又はICカード機能サーバ50上のどちらに格納されているかを意識することなく、アプリケーションを利用することが可能になる。また、一般的なサーバのメモリは、ICカードと比較して、数万倍のメモリサイズを持つことから、実質上、利用者が利用する現時点で運用されている全てのICカードアプリケーションを格納できるようになる。
【産業上の利用可能性】
【0067】
本発明によれば、利用者及びサービス提供者は、ICカード10のアプリケーションがICカード10上又はICカード機能サーバ50上のどちらに格納されているかを意識することなく、アプリケーションを利用することが可能になるから、マルチアプリケーション型のICカードの用途に有用である。
【符号の説明】
【0068】
10 ICカード
20 端末
30 サービスプロバイダサーバ
40 ICカードコマンドルータ
40a ICカード識別番号
40b 送信先情報
50 ICカード機能サーバ
100 ICカード制御システム
501 暗号処理部
502 データ管理部
503 仮想ICカード部
504 コマンド入出力部
505 アプリケーションリスト管理部
506 データベース部

【特許請求の範囲】
【請求項1】
ICカードで実行可能なアプリケーションをICカード機能サーバに分散配置して構成されるICカード制御システムにて、前記ICカード機能サーバに対して、前記ICカードで実行可能なアプリケーションの実行を可能にするICカード制御方法であって、
前記ICカード制御システムは、ICカードコマンドルータと、ICカードと、前記ICカードとサービスプロバイダサーバとの通信を担う端末と、ICカード機能サーバとを備えており、
前記ICカードコマンドルータによって、前記サービスプロバイダサーバから、前記端末の端末ID及び前記ICカードのICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ICカードに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ICカード機能サーバに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ICカードか、又は前記ICカード機能サーバのいずれか一方に当該アプリケーションを実行可能にさせることを特徴とする、ICカード制御方法。
【請求項2】
請求項1に記載のICカード制御方法において、
(A)前記ICカードコマンドルータによって、当該端末を識別する端末ID及び当該ICカードを識別するICカード識別番号を取得するサービスプロバイダサーバから、前記端末ID及び前記ICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末IDの端末を経由して、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードに送信するステップと、
(B)前記ICカードによって、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ICカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却するステップと、
(C)前記ICカードコマンドルータによって、前記ICカードから受信したレスポンスが正常終了の旨を示す場合、前記ICカード識別番号に対応する当該アプリケーションを実行するための全てのICカードコマンドの送信先情報に前記端末IDを設定し、前記ICカードから受信したレスポンスがエラーの旨を示す場合、前記ICカード識別番号及び前記ICカードコマンドを前記ICカード機能サーバに送信するステップと、
(D)前記ICカード機能サーバによって、前記ICカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ICカード識別番号及び前記ICカードコマンドを受信した際に、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ICカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ICカードコマンドルータに送信するステップと、
を含むことを特徴とする、ICカード制御方法。
【請求項3】
請求項2に記載のICカード制御方法において、
(E)前記ステップ(D)の後に、前記ICカードコマンドルータによって、前記ICカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ICカード機能サーバを送信先とする旨を設定し、前記ICカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信するステップと、
(F)前記サービスプロバイダサーバによって、受信した該レスポンスが正常終了を示す場合にのみ、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードコマンドルータに送信するステップと、
(G)前記ICカードコマンドルータによって、前記ICカード識別番号に関連付けて設定された前記ICカードコマンドの送信先を示す送信先情報に従い、前記ICカードに向けて送信するか、又は前記ICカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ICカードコマンドを送信するステップと、
(H)前記ICカード、又は前記ICカード機能サーバのいずれか一方は、受信したICカードコマンドを実行し、この実行結果を示すレスポンスを前記ICカードコマンドルータに返信するステップと、
(I)前記ICカードコマンドルータによって、前記ICカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信するステップと、
(J)前記サービスプロバイダサーバによって、当該アプリケーションの処理に必要な全てのICカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すステップと、
を含むことを特徴とする、ICカード制御方法。
【請求項4】
ICカードで実行可能なアプリケーションをICカード機能サーバに分散配置し、ICカードに対して、ICカードの記憶容量を超える複数のアプリケーションの実行を可能にするICカード制御システムであって、
ICカードコマンドルータと、ICカードと、前記ICカードとサービスプロバイダサーバとの通信を担う端末と、ICカード機能サーバとを備え、
前記ICカードコマンドルータは、前記サービスプロバイダサーバから、前記端末の端末ID及び前記ICカードのICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記ICカードに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、選択できない場合は、前記ICカード機能サーバに対して、当該ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別させ、前記ICカードか、又は前記ICカード機能サーバのいずれか一方が当該アプリケーションを実行可能となるように構成されていることを特徴とする、ICカード制御システム。
【請求項5】
請求項4に記載のICカード制御システムにおいて、
前記ICカードコマンドルータは、当該端末を識別する端末ID及び当該ICカードを識別するICカード識別番号を取得するサービスプロバイダサーバから、前記端末ID及び前記ICカード識別番号とアプリケーションを選択するためのICカードコマンドとを一組としたアプリケーション実行要求を受け付け、前記端末IDの端末を経由して、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードに送信する手段を有し、
前記ICカードは、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は、前記ICカードコマンドとともに正常終了のレスポンスを返却し、該当アプリケーションを選択できない場合は、エラーのレスポンスを返却する手段を有し、
前記ICカードコマンドルータは、さらに、前記ICカードから受信したレスポンスが正常終了の旨を示す場合、前記ICカード識別番号に対応する当該アプリケーションを実行するための全てのICカードコマンドの送信先情報に前記端末IDを設定し、前記ICカードから受信したレスポンスがエラーの旨を示す場合、前記ICカード識別番号及び前記ICカードコマンドを前記ICカード機能サーバに送信する手段を有し、
前記ICカード機能サーバは、前記ICカードコマンドルータから前記受信したレスポンスがエラーの旨を示す故に前記ICカード識別番号及び前記ICカードコマンドを受信した際に、前記ICカードコマンドに対応したアプリケーションを選択可能であるか否かを判別し、選択できる場合は正常終了を示すレスポンスを前記ICカードコマンドルータに送信し、選択できない場合はエラーを示すレスポンスを前記ICカードコマンドルータに送信する手段を有する、
ことを特徴とする、ICカード制御システム。
【請求項6】
請求項5に記載のICカード制御システムにおいて、
前記ICカードコマンドルータは、さらに、前記ICカード機能サーバから受信したレスポンスが正常終了を示す場合にのみ、前記送信先情報に前記ICカード機能サーバを送信先とする旨を設定し、前記ICカード識別番号と、当該正常終了か、又はエラーを示す当該レスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、受信した該レスポンスが正常終了を示す場合にのみ、前記ICカード識別番号及び前記ICカードコマンドを前記ICカードコマンドルータに送信する手段を有し、
前記ICカードコマンドルータは、前記ICカード識別番号に関連付けて設定された前記ICカードコマンドの送信先を示す送信先情報に従い、前記ICカードに向けて送信するか、又は前記ICカード機能サーバに向けて送信するかを判別し、判別した送信先に向けて前記ICカードコマンドを送信する手段を有し、
前記ICカード、又は前記ICカード機能サーバのいずれか一方は、受信したICカードコマンドを実行し、この実行結果を示すレスポンスを前記ICカードコマンドルータに返信するように構成され、さらに、
前記ICカードコマンドルータは、前記ICカード識別番号及び前記実行結果を示すレスポンスを前記サービスプロバイダサーバに送信する手段を有し、
前記サービスプロバイダサーバは、当該アプリケーションの処理に必要な全てのICカードコマンドの送信が完了するまで、アプリケーション実行要求の送信を繰り返すように構成されていることを特徴とする、ICカード制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate