(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
以下、実施形態について、図面を参照して説明する。
図1は、ICカード処理システム10の構成例について説明するためのブロック図である。
図1が示すように、ICカード処理システム10は、ICカード処理装置1(外部装置)、及び、ICカード2(携帯可能電子装置)などから構成される。
【0008】
図1が示す構成例において、ICカード処理装置1は、基本的な構成として、CPU11、ROM12、RAM13、NVM14、カードリーダライタ15、操作部16、及び、ディスプレイ17などを有する。これらの各部は、データバスを介して互いに接続されている。なお、ICカード処理装置1は、
図1が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【0009】
CPU11は、ICカード処理装置1全体の動作を制御する機能を有する。CPU11は、内部キャッシュおよび各種のインターフェースなどを備えても良い。CPU11は、内部メモリ、ROM12あるいはNVM14に予め記憶したプログラムを実行することにより種々の処理を実現する。
【0010】
CPU11は、カードリーダライタ15によりICカード2へコマンドを送信する機能、ICカード2から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。たとえば、CPU11は、カードリーダライタ15を介して、操作部16などに入力されたデータ又は所定のデータなどを含む書き込みコマンドをICカード2に送信することにより、ICカード2に当該データの書き込み処理を要求する制御を行う。
【0011】
なお、CPU11がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU11は、ハードウエア回路により実行される機能を制御する。
【0012】
ROM12は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ROM12に記憶される制御プログラム及び制御データは、予めICカード処理装置1の仕様に応じて組み込まれる。ROM12は、たとえば、ICカード処理装置1の回路基板を制御するプログラム(例えば、BIOS)などを格納している。
【0013】
RAM13は、揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。RAM13は、CPU11からの命令に基づき種々のアプリケーションプログラムを格納している。また、RAM13は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【0014】
NVM14は、データの書き込み及び書き換えが可能な不揮発性のメモリである。NVM14は、例えば、ハードディスク、SSD、EEPROM又はフラッシュメモリなどにより構成される。NVM14は、ICカード処理装置1の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【0015】
カードリーダライタ15は、ICカード2との通信を行うためのインターフェース装置である。カードリーダライタ15は、ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、ICカード2が接触型のICカードである場合、カードリーダライタ15は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【0016】
また、ICカード2が非接触型のICカードである場合、カードリーダライタ15は、ICカード2との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ15では、ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【0017】
このような機能によってカードリーダライタ15は、CPU11による制御に基づいてICカード2に対する電源供給、ICカード2の活性化(起動)、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答(レスポンス)の受信などを行なう。
【0018】
操作部16は、ICカード処理装置1の操作者によって、種々の操作指示が入力される。操作部16は、操作者に入力された操作指示のデータをCPU11へ送信する。操作部16は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。また、操作部16は、生態情報の入力を受け付けてもよい。
【0019】
ディスプレイ17は、CPU11の制御により種々の情報を表示する表示装置である。ディスプレイ17は、たとえば、液晶モニタなどである。
【0020】
次に、ICカード2について説明する。
ICカード2は、ICカード処理装置1などの上位装置から電力などの供給を受けて活性化される(動作可能な状態になる)ようになっている。例えば、ICカード2が接触型の通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触型のICカードで構成される場合、ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
【0021】
また、ICカード2が非接触型の通信方式によりICカード処理装置1と接続される場合、つまり、ICカード2が非接触式のICカードで構成される場合、ICカード2は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0022】
次に、ICカード2の構成例について説明する。
図2は、実施形態に係るICカード2の構成例を概略的に示すブロック図である。
ICカード2は、プラスチックなどで形成されたカード状の本体Cを有する。ICカード2は、本体C内にモジュールMが内蔵されている。モジュールMは、1つまたは複数のICチップCaと通信部としての外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、ICカード2の本体C内に埋設されている。
【0023】
図2に示す構成例において、ICカード2は、CPU21、ROM22、RAM23、NVM24、及び、通信部25などを備えている。これらの各部は、データバスを介して互いに接続されている。また、CPU21、ROM22、RAM23、およびNVM24は、1つ又は複数のICチップCaにより構成され、通信部25に接続された状態でモジュールMを構成している。
【0024】
CPU21は、ICカード2全体の制御を司る制御部として機能する。CPU21は、ROM22あるいはNVM24に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、CPU21は、ROM22に記憶されているプログラムを実行することにより、ICカード2の動作制御あるいはICカード2の運用形態に応じた種々の処理を行う。
【0025】
なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU21は、ハードウエア回路により実行される機能を制御する。
【0026】
ROM22は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM22は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2に組み込まれる。即ち、ROM22に記憶される制御プログラム及び制御データは、予めICカード2の仕様に応じて組み込まれる。
【0027】
RAM23は、揮発性のメモリである。RAM23は、CPU21の処理中のデータなどを一時的に格納する。たとえば、RAM23は、計算用バッファ、受信用バッファ及び送信用バッファとして機能する。計算用バッファとしては、CPU21が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファとしては、通信部25を介してICカード処理装置1から受信するコマンドデータなどを保持する。送信用バッファとしては、通信部25を介してICカード処理装置1へ送信するメッセージ(レスポンスデータ)などを保持する。また、RAM23は、動作状態を示すフラグを記憶する。
【0028】
NVM24は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。NVM24は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、NVM24では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【0029】
通信部25は、ICカード処理装置1のカードリーダライタ15との通信を行うためのインターフェースである。ICカード2が接触型のICカードとして実現される場合、通信部25は、ICカード処理装置1のカードリーダライタ15と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、ICカード2が非接触型のICカードとして実現される場合、通信部25は、ICカード処理装置1のカードリーダライタ15との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【0030】
図3は、NVM24に格納されるファイルの構造例を示す図である。
図3が示すように、NVM24は、MF(Master File)、DF(Dedicated File)および、EF(Elementary File)などからなる階層構造を有する複数のファイル群が定義される。
【0031】
図3が示す例では、最上階層のMF101(マスターファイル)の下の階層には、DF102乃至104が存在する。たとえば、1つのDFは、ICカード2が具備する1つのアプリケーションを実現するためのデータが格納される。ICカードが複数のアプリケーションによって複数の機能を実現している場合は、NVM24は、各アプリケーションに対応する複数のDFを格納しても良い。また、DFの下の階層に、さらに他のDFが存在してもよい。
【0032】
また、
図3が示す例では、DF102乃至104の下の階層に、それぞれEF112乃至114が存在している。EF112乃至114は、各種のデータを格納するためのデータファイルである。EF112乃至114には、所定のデータ構造のうち何れかのデータ構造でデータが格納される。たとえば、EF112乃至114は、識別子(タグ(Tag))、長さ情報(レングス(Length))、および、データ部(バリュー(Value))が順に連結されるTLV構造のオブジェクトデータが格納されるファイルであっても良いし、バイナリーデータを記憶するファイルであっても良い。
【0033】
ここでは、DF102乃至104は、それぞれ1つのEFを格納する。DF102乃至104は、複数のEFを格納してもよい。DF102乃至104が格納するEFの個数は、特定の個数に限定されるものではない。
【0034】
なお、NVM24は、MFがなく各ファイルが横並びである構造であってもよい。たとえば、NVM24のファイル構造は、Java(登録商標)Cardのように階層構造を持たなくともよい。
【0035】
なお、NVM24に格納されるファイル構造は、特定の構造に限定されるものではない。
【0036】
次に、NVM24が格納するアプリケーションについて説明する。
図4は、NVM24が格納するアプリケーションを示すブロック図である。
ここでは、NVM24は、DF102乃至104にアプリケーションを格納しているものとする。
【0037】
NVM24は、DF102及び103(請求項1、7及び9の第1記憶部、又は、請求項5、8及び9の記憶部に対応)にそれぞれ通常アプリケーション31及び32を格納する。また、NVM24は、DF104(第2記憶部に対応)に管理アプリケーション33を格納する。
【0038】
通常アプリケーション31は、ICカード2の所定の機能を実現するためのアプリケーションである。たとえば、通常アプリケーション31は、ICカード処理装置1からのコマンドに従って、認証処理を実行する。また、たとえば、通常アプリケーション31は、ICカード処理装置1からのコマンドに従って、特定の領域にデータを書き込む処理を実行する。通常アプリケーション31が実現する機能は、特定の機能に限定されるものではない。
【0039】
通常アプリケーション31は、ICカード2の発行時にNVM24に格納されてもよい。また、通常アプリケーション31は、ICカード2の運用に応じて追加されたものであってもよい。
【0040】
通常アプリケーション31は、AID31a、アプリケーションデータ31b及びコード31cなどから構成される。なお、AID31a、アプリケーションデータ31b及びコード31cは、EF112に格納されてもよい。また、AID31a、アプリケーションデータ31b及びコード31cは、DF102にある複数個のEFにそれぞれ格納されてもよい。
【0041】
AID31aは、通常アプリケーション31を識別する識別子である。たとえば、AID31aは、数値、文字列又は両者の組合せなどであってもよい。
【0042】
アプリケーションデータ31bは、通常アプリケーション31を実行するために必要なデータである。たとえば、通常アプリケーション31が決済機能を実現する場合、アプリケーションデータ31bは、ICカード2にチャージされる金額などを示す。
【0043】
また、アプリケーションデータ31bは、通常アプリケーション31が生成するデータであってもよい。
【0044】
コード31cは、通常アプリケーション31のプログラムコードである。コード31cは、通常アプリケーション31が実現する内容に応じたプログラムコードである。
【0045】
通常アプリケーション32は、通常アプリケーション31と同様であるので説明を省略する。
【0046】
次に、管理アプリケーション33について説明する。
管理アプリケーション33は、通常アプリケーション31及び32などを管理するためのアプリケーションである。前述の通り、管理アプリケーション33は、DF104に格納される。即ち、管理アプリケーション33は、管理アプリケーション33が管理するアプリケーション(たとえば、通常アプリケーション31又は32)と同階層に格納される。同階層とは、MF101からの同一の深度にあるDFであることを示す。また、管理アプリケーション33は、管理アプリケーション33が管理するアプリケーションと異なる階層に格納されてもよい。
【0047】
管理アプリケーション33は、ICカード2の発行時にNVM24に格納されてもよい。また、管理アプリケーション33は、通常アプリケーション31又は32がインストールされたのちに、NVM24に格納されてもよい。
【0048】
図4が示すように、管理アプリケーション33は、AID33a、アプリケーションリスト33b、及び、コード34bなどを備える。
【0049】
AID33aは、管理アプリケーション33を識別する識別子である。
【0050】
アプリケーションリスト33bは、通常アプリケーション31及び32に対応するレコードを格納する。レコードについては、後述する。
【0051】
コード33cは、管理アプリケーション33のプログラムコードである。コード33cは、管理アプリケーション33の機能を実現するためのプログラムコードである。管理アプリケーション33が実現する機能について後述する。
【0052】
次に、アプリケーションリスト33bが格納するレコードについて説明する。
図5は、アプリケーションリスト33bが格納するレコードを示すブロック図である。
【0053】
アプリケーションリスト33bは、NVM24が格納するアプリケーションに対応するレコードを格納する。アプリケーションリスト33bは、NVM24が格納するアプリケーションの一部に対応するレコードを格納してもよい。
【0054】
図5が示すように、アプリケーションリスト33bは、レコード41及び42などを格納する。
【0055】
レコード41及び42は、通常アプリケーション31及び32にそれぞれ関する情報を格納する。
【0056】
ここでは、アプリケーションリスト33bは、2つのレコードを格納するが、アプリケーションリスト33bが格納するレコードの個数は、特定の個数に限定されるものではない。
【0057】
次に、レコードについて説明する。
図6は、レコードが格納するデータについて説明するための図である。
【0058】
図6は、レコード41の構成例を示す。
【0059】
図6が示すように、レコード41は、AID51、アプリ名52、管理者名53、利用開始日54、有効期限55、ステータス設定56、及び、電子署名57などを備える。
【0060】
AID51は、レコード41が対応するアプリケーションを識別する識別子である。AID51は、AID33aに対応する。AID51は、AID33aと同一であってもよいし、異なってもよい。
【0061】
アプリ名52は、レコード41が対応する通常アプリケーション31の名称である。アプリ名52は、利用者がICカード2からレコード41を取得した際にレコード41に対応するアプリケーションの表示用の文字列などである。
【0062】
管理者名53は、レコード41が対応する通常アプリケーション31を管理している管理者の名称である。管理者名53は、通常アプリケーション31をインストールした者の名称であってもよいし、通常アプリケーション31を発行している者の名称であってもよい。
【0063】
利用開始日54は、レコード41が対応する通常アプリケーション31の利用が開始する日付である。
【0064】
有効期限55は、レコード41が対応する通常アプリケーション31の利用が終了する日付である。また、有効期限55は、利用開始日54からの期間を示してもよい。
【0065】
ステータス設定56は、レコード41が対応する通常アプリケーション31のステータスを示す。ステータスは、アプリケーションの状態を示す。たとえば、ステータスは、「ロック」、「終了(論理的無効化)」、又は、「消去(論理的削除)」などである。
【0066】
「ロック」は、アプリケーションが利用不可能な状態であることを示す。
【0067】
「終了」は、アプリケーションが無効化されている状態であることを示す。無効化されてい
る状態とは、アプリケーションのコードは実行できないがアプリケーションのデータなどは利用可能である状態を示す。
【0068】
「消去」は、アプリケーションが論理的に消去されたことを示す。たとえば、消去は、NVM24の論理領域からアプリケーションに対応する記録が消去された状態を示す。
【0069】
なお、ステータスは、他の状態を示してもよい。ステータスが示す状態は、特定の構成に限定されるものではない。
【0070】
電子署名57は、レコード41が改ざんされていないことを示す署名である。
【0071】
次に、ICカード2のOSが実現する機能について説明する。
ICカード2のOSが実現する機能は、CPU21がROM22又はNVM24などが格納するコード又はデータなどを用いて実現する。
【0072】
ICカード2のOSは、通信部25を通じてアプリケーションリスト33b内のレコードを更新するコマンド(更新コマンド)を受信した場合に、当該コマンドに従って当該レコードを書き換える機能を有する(更新部に対応)。たとえば、ICカード処理装置1は、所定のレコード(たとえば、レコード41)のステータス設定(たとえば、ステータス設定56)を更新するコマンドをICカード2へ送信する。ICカード2のOSは、通信部25を通じて当該コマンドを受信すると、当該コマンドに従って、ステータス設定を更新する。
【0073】
ICカード2のOSは、通信部25を通じてアプリケーションリスト33b内のレコードを削除するコマンド(削除コマンド)を受信した場合に、当該コマンドに従って当該レコードを削除する機能を有する(レコード削除部に対応)。たとえば、ICカード処理装置1は、所定のレコード(たとえば、レコード41)を削除するコマンドをICカード2へ送信する。ICカード2のOSは、通信部25を通じて当該コマンドを受信すると、当該コマンドに従って、レコードを削除する。
【0074】
ICカード2のOSは、管理アプリケーションから前記アプリケーションのステータスを変更する変更命令を受信した場合に、前記変更命令に従ってアプリケーションのステータスを変更する機能を有する(変更部)。たとえば、管理アプリケーション33が所定のアプリケーションをロックさせる変更命令をOSへ送信すると、ICカード2のOSは、当該変更命令に従って、当該所定のアプリケーションをロックする。この場合、たとえば、ICカード2のOSは、当該変更命令に従って、当該所定のアプリケーションがロックされていることを示すフラグを立てる。
【0075】
また、管理アプリケーション33が所定のアプリケーションを論理的に無効にする変更命令(終了させる命令)をOSに送信すると、ICカード2のOSは、当該変更命令に従って、所定のアプリケーションを論理的に無効する。この場合、たとえば、ICカード2のOSは、当該変更命令に従って、所定のアプリケーションが論理的に無効になったことを示すフラグを立てる。
【0076】
また、管理アプリケーション33が所定のアプリケーションを論理的に削除する変更命令をOSに送信すると、ICカード2のOSは、当該変更命令に従って、所定のアプリケーションを論理的に削除する。この場合、たとえば、ICカード2のOSは、当該変更命令に従って、所定のアプリケーションに対応する論理領域に当該所定のアプリケーションのデータが削除されたことを示すフラグを立てる。
【0077】
また、ICカード2のOSは、管理アプリケーションからアプリケーションを物理的に削除する削除命令を受信した場合に、削除命令に従ってアプリケーションを物理的に削除する機能を有する(アプリケーション削除部に対応)。管理アプリケーション33が所定のアプリケーションを物理的に削除する削除命令をOSに送信すると、ICカード2のOSは、当該削除命令に従って、所定のアプリケーションを物理的に削除する。この場合、たとえば、ICカード2のOSは、削除命令に従って、所定のアプリケーションに対応する論理領域及び物理領域を削除する。
【0078】
次に、管理アプリケーション33が実現する機能について説明する。
管理アプリケーション33が実現する機能は、CPU21がコード33cを実行することで実現される。
【0079】
管理アプリケーション33は、レコード(たとえば、レコード41)のステータス設定(たとえば、ステータス設定56)が変更されたことを検知する機能を有する。たとえば、管理アプリケーション33は、OSが管理アプリケーション33のアプリケーションリスト33bへアクセスしたことを検知する。
【0080】
また、管理アプリケーション33は、レコード(たとえば、レコード41)のステータス設定(たとえば、ステータス設定56)が変更された場合に、ステータス設定に従って、当該レコードに対応するアプリケーション(たとえば、通常アプリケーション31)のステータスを変更させる変更命令をOSへ送信する。たとえば、管理アプリケーション33は、レコードのステータス設定が「ロック」に変更されると、当該レコードに対応するアプリケーションをロックさせる変更命令をOSへ送信する。
【0081】
また、管理アプリケーション33は、レコードのステータス設定が「終了」に変更されると、当該レコードに対応するアプリケーションを終了(論理的無効)させる変更命令をOSへ送信する。
【0082】
また、管理アプリケーション33は、レコードのステータス設定が「削除」に変更されると、当該レコードに対応するアプリケーションを論理的に削除させる変更命令をOSへ送信する。
【0083】
また、管理アプリケーション33は、レコード(たとえば、レコード41)が削除されたことを検知する機能を有する。たとえば、管理アプリケーション33は、OSが管理アプリケーション33のアプリケーションリスト33bからレコードを削除したことを検知する。
【0084】
また、管理アプリケーション33は、レコード(たとえば、レコード41)が削除されると、当該レコードに対応するアプリケーション(たとえば、通常アプリケーション31)を削除させる削除命令をOSへ送信する。
【0085】
なお、管理アプリケーション33が他のアプリケーションよりも後にNVM24にインストールされる場合、管理アプリケーション33は、他のアプリケーションに関する情報(たとえば、AID、アプリ名、管理者名、利用開始日、有効期限、ステータス、及び、電子署名など)を収集する機能を有する。たとえば、管理アプリケーション33は、PSEなどを参照して他のアプリケーションに関する情報を収集する。また、管理アプリケーション33は、アプリケーションに関する情報から当該アプリケーションに対応するレコードを生成し、アプリケーションリスト33bに格納する。
【0086】
次に、アプリケーションをインストールするためのインストールファイルについて説明する。
図7は、インストールファイルの構成例を説明するためのブロック図である。
インストールファイル60は、アプリケーションをインストールするためにICカード処理装置1がICカード2へ送信するファイルである。
【0087】
図7が示すように、インストールファイル60は、アプリケーションデータ61及びコード62などから構成される。
【0088】
アプリケーションデータ61は、アプリケーションを実行するために必要なデータである。
【0089】
コード62は、アプリケーションのプログラムコードである。
【0090】
なお、インストールファイル60は、アプリケーションデータ61を格納しなくともよい。
【0091】
次に、ICカード2のCPU21がアプリケーションをインストールする動作例について説明する。
図8は、CPU21がアプリケーションをインストールする動作例について説明するためのフローチャートである。
【0092】
なお、CPU21は、ICカード2のOSの動作としてアプリケーションをインストールしてもよい。
【0093】
まず、CPU21は、通信部25を通じて、インストールファイル60をICカード処理装置1から受信したか判定する(ステップS11)。インストールファイル60を受信していないと判定すると(ステップS11、NO)、CPU21は、ステップS11へ戻る。
【0094】
インストールファイル60を受信したと判定すると(ステップS11、YES)、CPU21は、受信されたインストールファイル60からアプリケーションデータ61及びコード62を抽出する(ステップS12)。
【0095】
アプリケーションデータ61及びコード62を抽出すると、CPU21は、NVM24にコード62を書き込む(ステップS13)。
【0096】
コード62を書き込むと、CPU21は、コード62を格納するDF内の所定の領域にアプリケーションデータ61を書き込む(ステップS14)。
【0097】
アプリケーションデータ61を書き込むと、CPU21は、インストールファイル60からアプリケーションに関する情報を抽出する(ステップS16)。たとえば、CPU21は、アプリケーションデータ61又はコード62から当該情報を抽出する。また、インストールファイル60がアプリケーションデータ61又はコード62に加えて当該情報を格納し、CPU21は、インストールファイル60から当該情報を取得してもよい。
【0098】
アプリケーションに関する情報を抽出すると、CPU21は、抽出された情報をアプリケーションに対応するレコードとしてアプリケーションリスト33bに書き込む(ステップS16)
抽出された情報をアプリケーションリスト33bに書き込むと、CPU21は、動作を終了する。
【0099】
次に、ICカード2がアプリケーションのステータスを変更する動作例について説明する。
まず、所定のレコードのステータス設定を更新するコマンドを受信した際におけるICカード2のOSの動作例について説明する。
図9は、所定のレコードのステータス設定を更新するコマンドを受信した際におけるICカード2のOSの動作例を説明するためのフローチャートである。
ここでは、ICカード処理装置1は、所定のレコードのステータス設定を更新するコマンドをICカード2へ送信するものとする。
【0100】
まず、ICカード2のOSは、通信部25を通じて、所定のレコードのステータス設定を変更するコマンドを受信したか判定する(ステップS21)。当該コマンドを受信していないと判定すると(ステップS21、NO)、OSは、ステップS21に戻る。
【0101】
当該コマンドを受信し
たと判定すると(ステップS21、
YES)、OSは、当該コマンドの認証処理を実行する(ステップS22)。
【0102】
認証処理に成功すると(ステップS23、YES)、OSは、当該コマンドに従って、アプリケーションリスト33b内のレコードのステータス設定を更新する(ステップS24)。
【0103】
認証処理に失敗した場合(ステップS23、NO)、又は、レコードのステータス設定を更新した場合(ステップS24)、OSは、動作を終了する。
【0104】
次に、アプリケーションリスト33b内のステータス設定が更新された際における管理アプリケーション33の動作例について説明する。
図10は、アプリケーションリスト33b内のステータス設定が更新された際における管理アプリケーション33の動作例を説明するためのフローチャートである。
【0105】
まず、管理アプリケーション33は、アプリケーションリスト33bが格納するレコードのステータス設定が更新されたか判定する(ステップS31)。レコードのステータス設定が更新されていないと判定する
と(ステップS31、NO)、管理アプリケーション33は、ステップS31へ戻る。
【0106】
レコードのステータス設定が更新されたと判定すると(ステップS31、YES)、管理アプリケーション33は、更新されたステータス設定に従って、当該レコードに対応するアプリケーションのステータスを変更する変更命令をOSに送信する(ステップS32)。
【0107】
当該変更命令をOSに送信すると、管理アプリケーション33は、動作を終了する。
【0108】
次に、変更命令を受信した際におけるICカード2のOSの動作例について説明する。
図11は、変更命令を受信した際におけるICカード2のOSの動作例を説明するためのフローチャートである。
【0109】
まず、OSは、アプリケーションのステータスを変更する変更命令を受信したか判定する(ステップS41)。当該変更命令を受信していないと判定する
と(ステップS41、NO)、OSは、ステップS41へ戻る。
【0110】
当該変更命令を受信したと判定する
と(ステップS41、YES)、OSは、当該変更命令に従って、当該アプリケーションのステータスを変更する(ステップS42)。
【0111】
当該アプリケーションのステータスを更新すると、OSは、動作を終了する。
【0112】
次に、ICカード2がアプリケーションを物理的に削除する動作例について説明する。
まず、所定のレコードを削除するコマンドを受信した際におけるICカード2のOSの動作例について説明する。
図12は、所定のレコードを削除するコマンドを受信した際におけるICカード2のOSの動作例を説明するためのフローチャートである。
ここでは、ICカード処理装置1は、所定のレコードを削除するコマンドをICカード2へ送信するものとする。
【0113】
まず、ICカード2のOSは、通信部25を通じて、所定のレコードを削除するコマンドを受信したか判定する(ステップS51)。当該コマンドを受信していないと判定すると(ステップS51、NO)、OSは、ステップ51に戻る。
【0114】
当該コマンドを受信していないと判定すると(ステップS51、NO)、OSは、当該コマンドの認証処理を実行する(ステップS52)。
【0115】
認証処理に成功すると(ステップS53、YES)、OSは、当該コマンドに従って、アプリケーションリスト33b内のレコードを削除する(ステップS54)。
【0116】
認証処理に失敗した場合(ステップS53、NO)、又は、アプリケーションリスト33b内のレコードを削除した場合(ステップS54)、OSは、動作を終了する。
【0117】
次に、アプリケーションリスト33b内のレコードが削除された際における管理アプリケーション33の動作例について説明する。
図13は、アプリケーションリスト33b内のレコードが削除された際における管理アプリケーション33の動作例を説明するためのフローチャートである。
【0118】
まず、管理アプリケーション33は、アプリケーションリスト33bが格納するレコードが削除されたか判定する(ステップS61)。レコードが削除されていないと判定する(ステップS61、NO)、管理アプリケーション33は、ステップS61へ戻る。
【0119】
レコードが削除されたと判定すると(ステップS61、YES)、管理アプリケーション33は、当該レコードに対応するアプリケーションを物理的に削除する削除命令をOSに送信する(ステップS62)。
【0120】
当該削除命令をOSに送信すると、管理アプリケーション33は、動作を終了する。
【0121】
次に、削除命令を受信した際におけるICカード2のOSの動作例について説明する。
図14は、削除命令を受信した際におけるICカード2のOSの動作例を説明するためのフローチャートである。
【0122】
まず、OSは、アプリケーションを物理的に削除する削除命令を受信したか判定する(ステップS71)。当該削除命令を受信していないと判定する(ステップS71、NO)、OSは、ステップS71へ戻る。
【0123】
当該削除命令を受信したと判定する(ステップS71、NO)、OSは、当該変更命令に従って、当該アプリケーションを物理的に削除する(ステップS72)。たとえば、OSは、当該アプリケーションに対応する論理領域及び物理領域を削除する。
【0124】
当該アプリケーションを物理的に削除すると、OSは、動作を終了する。
【0125】
なお、ICカード2のCPU21は、アプリケーションリスト33bが格納するレコードをICカード処理装置1へ送信する機能を有してもよい。たとえば、CPU21は、通信部25を通じてICカード処理装置1からレコードを取得する取得コマンドを受信する。CPU21は、当該取得コマンドに従って、通信部25を通じて、レコードを含むレスポンスをICカード処理装置1へ送信してもよい。
【0126】
以上のように構成されたICカード処理システムは、アプリケーションリストのレコードを書き換え又は削除することで、アプリケーションのステータスの変更又はアプリケーションの削除を行うことができる。その結果、ICカード処理システムは、アプリケーションリストが格納するレコードを用いてアプリケーションを管理することができる。
【0127】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
外部装置からのコマンドを実行するICカードであって、
外部装置とデータを送受信する通信部と、
アプリケーションを格納する第1記憶部と、
前記アプリケーションのステータス設定を含むレコードを格納する第2記憶部と、
前記通信部を通じてレコードのステータス設定を更新する更新コマンドを受信した場合、前記更新コマンドに従って、前記第2記憶部が格納する前記レコードの前記ステータス設定を更新する更新部と、
前記更新部が前記レコードの前記ステータス設定を更新すると、前記ステータス設定に従って、前記アプリケーションのステータスを変更する変更部と、
を備えるICカード。
[C2]
前記通信部を通じてレコードを削除する削除コマンドを受信した場合、前記削除コマンドに従って、前記第2記憶部が格納するレコードを削除するレコード削除部と、
前記レコード削除部が前記第2記憶部が格納する前記レコードを削除すると、前記レコードに対応するアプリケーションを物理的に削除するアプリケーション削除部と、
を備える、
前記C1に記載のICカード。
[C3]
前記ステータスは、ロック、論理的無効、又は、論理的削除の少なくとも1つを含む、
前記C1又は2に記載のICカード。
[C4]
前記レコードは、AID、アプリ名、管理者名、利用開始日、有効期限、又は、電子署名の少なくとも1つを含む、
前記C1乃至3の何れか1項に記載のICカード。
[C5]
前記第2記憶部は、前記第1記憶部と同階層にある、
前記C1乃至4の何れか1項に記載のICカード。
[C6]
外部装置からのコマンドを実行するICカードであって、
外部装置とデータを送受信する通信部と、
アプリケーションを格納する記憶部と、
前記アプリケーションのステータスを含むレコードを更新する更新部と、
管理アプリケーションから前記アプリケーションのステータスを変更する変更命令を受信した場合に、前記変更命令に従って前記アプリケーションの前記ステータスを変更する変更部と、
を備えるICカード。
[C7]
前記管理アプリケーションから前記アプリケーションを物理的に削除する削除命令を受信した場合に、前記削除命令に従って前記アプリケーションを物理的に削除するアプリケーション削除部を備える、
前記C6に記載のICカード。
[C8]
前記レコードは、前記記憶部と同階層に格納される、
前記C6又は7に記載のICカード。
[C9]
外部装置からのコマンドを実行するICカードであって、
外部装置とデータを送受信する通信部と、アプリケーションを格納する第1記憶部と、
前記アプリケーションのステータス設定を含むレコードを格納する第2記憶部と、前記通信部を通じてレコードのステータス設定を更新する更新コマンドを受信した場合、前記更新コマンドに従って、前記第2記憶部が格納する前記レコードの前記ステータス設定を更新する更新部と、前記更新部が前記レコードの前記ステータス設定を更新すると、前記ステータス設定に従って、前記アプリケーションのステータスを変更する変更部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるICカード。
[C10]
外部装置からのコマンドを実行するICカードであって、
外部装置からのコマンドを実行するICカードであって、外部装置とデータを送受信する通信部と、アプリケーションを格納する記憶部と、前記アプリケーションのステータスを含むレコードを更新する更新部と、管理アプリケーションから前記アプリケーションのステータスを変更する変更命令を受信した場合に、前記変更命令に従って前記アプリケーションの前記ステータスを変更する変更部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるICカード。
[C11]
外部装置からのコマンドを実行する携帯可能電子装置であって、
外部装置とデータを送受信する通信部と、
アプリケーションを格納する第1記憶部と、
前記アプリケーションのステータス設定を含むレコードを格納する第2記憶部と、
前記通信部を通じてレコードのステータス設定を更新する更新コマンドを受信した場合、前記更新コマンドに従って、前記第2記憶部が格納する前記レコードの前記ステータス設定を更新する更新部と、
前記更新部が前記レコードの前記ステータス設定を更新すると、前記ステータス設定に従って、前記アプリケーションのステータスを変更する変更部と、
を備える携帯可能電子装置。
[C12]
外部装置からのコマンドを実行する携帯可能電子装置であって、
外部装置とデータを送受信する通信部と、
アプリケーションを格納する記憶部と、
前記アプリケーションのステータスを含むレコードを更新する更新部と、
管理アプリケーションから前記アプリケーションのステータスを変更する変更命令を受信した場合に、前記変更命令に従って前記アプリケーションの前記ステータスを変更する変更部と、
を備える携帯可能電子装置。
[C13]
ICカード2が格納するアプリケーションを管理するプログラムコードであって、
アプリケーションリスト内においてレコードが格納するステータス設定が更新されたことを検知するコードと、
前記ステータス設定が更新されたことを検知すると、前記ステータス設定に従って、前記レコードに対応するアプリケーションのステータスを変更する変更命令を送信するコードと、
を備えるプログラムコード。
[C14]
前記アプリケーションリスト内においてレコードが削除されたことを検知するコードと、
前記レコードが削除されたことを検知すると、前記レコードに対応するアプリケーションを物理的に削除する削除命令を送信するコードと、
を備える、
前記C13に記載のプログラムコード。