説明

ICカード、携帯可能電子装置、ICカードの制御方法

【課題】 より利便性の高いICカード、携帯可能電子装置、ICカードの制御方法を提供する。
【解決手段】 一実施形態に係るICカードは、外部機器から送信されたコマンドに応じて処理を実行するICカードであって、複数の構成を有するアプリケーションを予め記憶する第1の記憶手段と、前記外部機器から送信されたコマンドを受信する受信手段と、前記第1の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを前記受信手段により受信した場合、前記第1の記憶手段により記憶されている前記アプリケーションで不足している構成を特定し、特定した構成を記憶する第2の記憶手段と、を具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ICカード、携帯可能電子装置、ICカードの制御方法に関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるICカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUと、CPUの処理に利用されるRAMメモリなどを有している。
【0003】
ICカードは、例えば、国際標準規格ISO/IEC7816に準拠したICカードである。ICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0004】
ICカードは、ICカードを処理する処理装置からコマンドを受信した場合、受信したコマンドに応じてアプリケーションを実行する。これにより、ICカードは、種々の機能を実現することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−348146号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のようなアプリケーションは、ICカードのROMまたは不揮発性メモリなどに格納される。ICカードは、アプリケーションを実行する場合、ROMまたは不揮発性メモリからアプリケーションを読み出し、不揮発性メモリまたはRAMに実行可能な状態で展開する。ICカードは、展開されたアプリケーションを実行することにより、種々の処理を行う。
【0007】
しかし、近年、ICカードが種々の分野に利用されており、ICカードの一次発行の段階でICカードが種々のアプリケーションがROMまたは不揮発性メモリに格納される。1つのアプリケーションは、この全体がROMまたは不揮発性メモリに格納される。この為、ICカードがROMに格納することができるアプリケーションの数が少なくなるという課題がある。この結果、用途に応じてROMを用意する必要が生じ、コストの増加を招くという課題がある。また、ROMが持ち出された場合、アプリケーションが不正に動作させられる可能性があるという課題もある。
【0008】
そこで、より利便性の高いICカード、携帯可能電子装置、ICカードの制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
一実施形態に係るICカードは、外部機器から送信されたコマンドに応じて処理を実行するICカードであって、複数の構成を有するアプリケーションを予め記憶する第1の記憶手段と、前記外部機器から送信されたコマンドを受信する受信手段と、前記第1の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを前記受信手段により受信した場合、前記第1の記憶手段により記憶されている前記アプリケーションで不足している構成を特定し、特定した構成を記憶する第2の記憶手段と、を具備する。
【図面の簡単な説明】
【0010】
【図1】図1は、一実施形態に係るICカード処理システムの構成例について説明するための図である。
【図2】図2は、一実施形態に係るICカードの例について説明するための図である。
【図3】図3は、一実施形態に係るICカードの例について説明するための図である。
【図4】図4は、一実施形態に係るICカードの例について説明するための図である。
【図5】図5は、一実施形態に係るICカードの例について説明するための図である。
【図6】図6は、一実施形態に係るICカードの例について説明するための図である。
【図7】図7は、一実施形態に係るICカードの例について説明するための図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、一実施形態に係るICカード、携帯可能電子装置、ICカードの制御方法について詳細に説明する。
【0012】
本実施形態に係る携帯可能電子装置(ICカード)20及びICカード20を処理する処理装置(端末装置)10は、例えば、接触通信、及び/または非接触通信の機能を備える。これにより、ICカード20及び端末装置10は、互いにデータの送受信を行うことができる。
【0013】
また、本実施形態では、Java script(登録商標)などにより構成されるJavaアプレット(以下アプレットと称する)などを実行することにより種々の処理を実行するICカード20について説明する。なお、ICカード20は、他のアプリケーションなどを実行することにより処理を実行する構成であっても同様に本実施形態を適用することができる。
【0014】
図1は、一実施形態に係るICカード処理システム1の構成例を示す。
ICカード処理システム1は、ICカード20を処理する端末装置10と、ICカード20と、を備える。
【0015】
端末装置10は、CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、ディスプレイ18、及び電源部19を備える。CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、及びディスプレイ18は、それぞれバスを介して互いに接続されている。
【0016】
CPU11は、端末装置10全体の制御を司る制御部として機能する。CPU11は、ROM12又は不揮発性メモリ14に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、CPU11は、カードリーダライタ15を介してICカード20とコマンド及びレスポンスの送受信を行う。
【0017】
ROM12は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。RAM13は、ワーキングメモリとして機能する揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。例えば、RAM13は、カードリーダライタ15を介して外部の機器と送受信するデータを一時的に格納する。また、RAM13は、CPU11が実行するプログラムを一時的に格納する。
【0018】
不揮発性メモリ14は、例えばEEPROM、FRAMなどを備える。不揮発性メモリ14は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【0019】
カードリーダライタ15は、ICカード20と通信を行うためのインターフェース装置である。カードリーダライタ15は、接触通信、または非接触通信によりICカード20とデータの送受信を行う。
【0020】
接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、ICカード20が装着されるスロットと、ICカード20が備えるコンタクトパターンと接続される複数の接触端子を備える。
【0021】
スロットにICカード20が装着される場合、カードリーダライタ15の複数の接触端子は、ICカード20のコンタクトパターンに接続される。これにより、端末装置10とICカード20とは電気的に接続される。カードリーダライタ15は、スロットに装着されるICカード20に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【0022】
また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。
【0023】
カードリーダライタ15は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ15は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置10は、通信可能範囲に存在するICカード20に対してデータを非接触で送信することができる。
【0024】
さらに、カードリーダライタ15のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ15は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置10は、ICカード20から送信された元のデータを取得することができる。
【0025】
操作部17は、例えば操作キーなどを備え、操作者により入力される操作に基づいて、操作信号を生成する。操作部17は、生成した操作信号をCPUに入力する。これにより、CPU11は、操作者により入力された操作に基づいて処理を実行することができる。
【0026】
ディスプレイ18は、CPU11、または図示されないグラフィックコントローラなどの表示処理モジュールから入力される映像を表示するための信号に基づいて種々の情報を表示する。
【0027】
電源部19は、端末装置10の各部に電力を供給する。電源部19は、例えば、商用電源より電力を受け取り、所定の電圧に変換し、端末装置10の各部に供給する。
【0028】
図2は、一実施形態に係るICカード20の構成例を示す。
図2に示すように、ICカード20は、例えば、矩形状の本体21と、本体21内に内蔵されたICモジュール22とを備える。ICモジュール22は、ICチップ23と、通信部24とを備える。ICチップ23と通信部24とは、互いに接続された状態でICモジュール22内に形成されている。
【0029】
なお、本体21は、少なくとも通信部24が配設されるICモジュール22を設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
【0030】
ICチップ23は、通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32などを備える。通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32は、バスを介して互いに接続されている。
【0031】
通信部24は、端末装置(外部機器)10のカードリーダライタ15と通信を行うためのインターフェースである。通信部24は、接触通信、または非接触通信により、端末装置10とデータの送受信を行う。
【0032】
接触通信のインターフェースとして用いられる場合、通信部24は、カードリーダライタ15の接触端子と接続されるコンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりICモジュール22の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置10のカードリーダライタ15の接触端子と接触可能に形成されている。
【0033】
コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれ端子として機能する。通信部24は、コンタクトパターンを介してカードリーダライタ15とデータの送受信を行うことができる。
【0034】
また、非接触通信のインターフェースとして用いられる場合、通信部24は、信号処理部とアンテナとを備える。
【0035】
信号処理部は、端末装置10に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置10に送信するデータの変調(増幅)を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。
【0036】
アンテナは、例えば、ICモジュール22内に所定の形状で配設される金属線により構成される。ICカード20は、端末装置10に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ICカード20は、端末装置10に対してデータを送信することができる。また、ICカード20は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置10から送信されるデータを認識する。
【0037】
例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信部24は、2値の論理データを取得する。通信部24は、解析したデータをバスを介してCPU25に送信する。
【0038】
CPU25は、ICカード20全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置10から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【0039】
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード20内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード20の仕様に応じて組み込まれる。本実施形態では、ROM26は、予め複数のアプレットが格納された状態でICカード20内に組み込まれる。
【0040】
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、通信部24を介して端末装置10から受信したデータを一時的に格納する。またRAM27は、通信部24を介して端末装置10に送信するデータを一時的に格納する。またさらに、RAM27は、CPU25が実行するプログラムを一時的に格納する。
【0041】
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ28は、ICカード20の運用用途に応じて制御プログラム及び種々のデータを格納する。本実施形態では、不揮発性メモリ28には、発行段階でアプレット、またはアプレットの一部が格納される。
【0042】
電源部31は、端末装置10の各部に電力を供給する。ICカード20が接触通信を行う構成を備える場合、電源部31は、通信部24のコンタクトパターンを介してカードリーダライタ15から供給される電力をICカード20の各部に供給する。
【0043】
また、ICカード20が非接触通信を行う構成を備える場合、カードリーダライタ15のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部31は、動作クロックを生成する。電源部31は、発生させた電力及び動作クロックをICカード20の各部に電力を供給する。ICカード20の各部は、電力の供給を受けた場合、動作可能な状態になる。
【0044】
ロジック部32は、演算処理をハードウエアにより行う演算部である。例えば、ロジック部32は、端末装置10からのコマンドに基づいて、暗号化、復号、及び乱数の生成などの処理を行う。例えば、端末装置10から相互認証コマンドを受信する場合、ロジック部32は、乱数を生成し、生成した乱数をCPU25に伝送する。
【0045】
ICカード20は、一次発行と二次発行とにより発行される。端末装置10は、一次発行において、ICカード20の不揮発性メモリ28に種々のデータを格納する為のファイルを創成する。これにより、不揮発性メモリ28には、Master File(MF)、Dedicated File(DF)、及びElementary File(EF)などが創成される。
【0046】
MFは、ファイル構造の根幹となるファイルである。DFは、MFの下位に創成される。DFは、アプレット及びアプレットが有するコンポーネントなどをグループ化して格納するファイルである。EFは、DFの下位に創成される。EFは、様々なデータを格納するためのファイルである。また、MFの直下にEFが置かれる場合もある。
【0047】
EFには、Working Elementary File(WEF)とInternal Elementary File(IEF)などの種類がある。WEFは、作業用EFであり、個人情報などを格納する。IEFは、内部EFであり、例えば、セキュリティのための暗号鍵(暗証番号)などのデータを記憶する。
【0048】
二次発行では、EFに例えば顧客データなどの個別データが格納される。これにより、ICカード20が運用可能な状態になる。
【0049】
なお、本実施形態では、ICカード20の不揮発性メモリ28内には、一次発行の段階で上記したアプレットの全体、または一部が格納される。
【0050】
図3は、アプレットの例を示す。なお、Javaアプレットは、所定のコンポーネントに備える。図3により示されるように、アプレットは、「Header Component(コンポーネント1)」、「Directory Component(コンポーネント2)」、「Applet Component(コンポーネント3)」、「Import Component(コンポーネント4)」、「Constant Pool Component(コンポーネント5)」、「Class Component(コンポーネント6)」、「Method Component(コンポーネント7)」、「Static Field Component(コンポーネント8)」、「Reference Location Component(コンポーネント9)」、「Export Component(コンポーネント10)」、「Descriptor Component(コンポーネント11)」、及び「Debug Component(コンポーネント12)」を有する。
【0051】
アプレットは、これらのコンポーネントのうちコンポーネント11及びコンポーネント12を除くコンポーネントがそろっている場合に正常にCPU25により実行される。即ち、アプレットのコンポーネント1乃至10は、動作に必要な最低限のコンポーネント(主要コンポーネント)である。
【0052】
図4は、一次発行前のICカード20のROM26及び不揮発性メモリ28の例を示す。本例では、図4により示されるようにROM26にアプレット1、アプレット2、及びアプレット3が格納されている。なお、予めROM26に書き込まれているアプレットをROMアプレットと称する。なお、各アプレットは、それぞれ自身を示す識別子を有する。これにより、ICカード20のCPU25は、各アプレットを識別することができる。
【0053】
なお、アプレット1は、コンポーネント1乃至4、コンポーネント6及び7、コンポーネント9乃至12を有する。アプレット2は、コンポーネント1乃至4、コンポーネント6及び7、コンポーネント9乃至12を有する。また、アプレット3は、コンポーネント1乃至12を有する。なお、不揮発性メモリ28には、この時点ではまだデータが書き込まれていない。
【0054】
ここで、端末装置10は、ICカード20にLOADコマンドを送信することにより、アプレットの全体、または一部をICカード20の不揮発性メモリ28に書き込むロードをICカード20に実行させる。即ち、ロードは、データ領域(EEPROM)へアプレットを書き込むことを示す。この場合、ICカード20は、端末装置10からのLOADコマンドによりROM26内のROMアプレットをロードし、不揮発性メモリ28上に書込む。
【0055】
例えば、端末装置10は、ICカード20の不揮発性メモリ28にLOADコマンドを送信する。これにより、端末装置10は、ROM26に存在しないアプレット4を不揮発性メモリ28に書き込む通常のロードを行う。この場合、端末装置10は、アプレット4のコンポーネント1乃至12を不揮発性メモリ28に書き込む。
【0056】
ICカード20は、アプレット4の書き込みが完了した場合、「LOADコマンド完了(正常終了)」を端末装置10に送信する。これにより、端末装置10は、ICカード20にアプレット4のコンポーネント1乃至12が書き込まれたことを認識する。
【0057】
なお、アプレット全体をロードの対象とする場合、ROMアプレットと同じ識別子を持つアプレットがLOADされた場合、ROMアプレットを論理的に削除する。
【0058】
また、ICカード20は、コンポーネント単位でアプレットをロードすることができる。なお、ICカード20は、1回のLOADコマンドで複数のコンポーネントが指定されている場合、指定されたコンポーネントを不揮発性メモリ28にロードすることができる。この場合、ICカード20は、ROMアプレットと同じ識別子を持つアプレットの一部のコンポーネントを追加的に不揮発性メモリ28にロードすることができる。
【0059】
例えば、端末装置10は、ICカード20の不揮発性メモリ28にアプレット1のコンポーネントの一部(コンポーネント5及び8)を書き込む為のLOADコマンドを送信する。
【0060】
アプレット1はROM26に格納されているアプレットである為、ICカード20は、受信したLOADコマンドが追加のロードを指示するものであることを認識する。ICカード20は、ROM26に格納されているアプレット1で不足しているコンポーネントを特定する。ICカード20は、特定したコンポーネントを不揮発性メモリ28に格納する。
【0061】
図4の例の場合、ICカード20は、ROM26に格納されているアプレット1でコンポーネント5及び8が不足していることを認識する。この場合、ICカード20は、コンポーネント5及び8を不揮発性メモリ28に格納する。これにより、端末装置10は、ROM26に存在するアプレット1の不足しているコンポーネント5及び8を不揮発性メモリ28に書き込む追加のロードを行うことができる。
【0062】
ICカード20は、アプレット1のコンポーネント5及び8の書き込みが完了した場合、「LOADコマンド完了(正常終了)」を端末装置10に送信する。これにより、端末装置10は、ICカード20にアプレット1のコンポーネント5及び8が不揮発性メモリ28に書き込まれたことを認識する。
【0063】
上記の処理により、図5により示されるように、不揮発性メモリ28にアプレット1及びアプレット4が書き込まれる。即ち、不揮発性メモリ28は、アプレット1、及びアプレット4を格納している。
【0064】
不揮発性メモリ28に格納されているアプレット1は、コンポーネント5及び8を有する。また、不揮発性メモリ28に格納されているアプレット2は、コンポーネント1乃至12を有する。
【0065】
次に、端末装置10は、ICカード20にINSTALLコマンドを送信することにより、ROM26または不揮発性メモリ28上の対象アプレットからインスタンスを不揮発性メモリ28上に生成するインストールを行う。
【0066】
インスタンスは、CPU25に1つの作業、または一連の作業を実行させる為のコードを含む。即ち、インストールは、ROM26または不揮発性メモリ28により格納されているアプレットをCPU25により実行可能な状態に変換することを示す。
【0067】
例えば、アプレットの全体がROM26または不揮発性メモリ28に格納されている場合、ICカード20は、INSTALLコマンドにより指定されたアプレットをROM26または不揮発性メモリ28から読み出し、読み出したアプレットのインスタンスを不揮発性メモリ28に生成する。
【0068】
図6は、ICカード20によるインストールの例を示す。
まず、ICカード20は、INSTALLコマンドを受信した場合、INSTALLコマンドにより指定されたアプレット(対象アプレット)が不揮発性メモリ28により格納されているか否か判断する(ステップS11)。
【0069】
対象アプレットが不揮発性メモリ28により格納されている場合、ICカード20は、INSTALLコマンドにより指定された対象アプレットの主要コンポーネントが不揮発性メモリ28により格納されているか否か判断する(ステップS12)。
【0070】
対象アプレットの主要コンポーネントが不揮発性メモリ28により格納されている場合、ICカード20は、不揮発性メモリ28上の対象アプレットからインスタンスを生成し、不揮発性メモリ28に格納する(ステップS13)。
【0071】
また、ICカード20は、対象アプレットの主要コンポーネントが不足している場合、ROM26上の同一の識別子のアプレット(ROMアプレット)を検索する。これにより、ICカード20は、対象のアプレットがROM26により格納されているか否か判定する(ステップS14)。
【0072】
対象のアプレットがROM26により格納されている場合、ICカード20は、対象のアプレットをROM26から読み出す。これにより、ICカード20は、不足しているコンポーネントをROM26から読み出す。ICカード20は、対象アプレットの主要コンポーネントが揃ったか否か判断する(ステップS15)。
【0073】
主要コンポーネントが揃った場合、ICカード20は、ROM26と不揮発性メモリ28との両方から対象アプレットを読み出し、1つのインスタンスを生成する(ステップS16)。即ち、ICカード20は、不足しているコンポーネントをROM26から読み出し、主要コンポーネントを集め、集めた主要コンポーネントからインスタンスを生成する。ICカード20は、生成したインスタンスを不揮発性メモリ28に格納する。
【0074】
また、ステップS11において、対象アプレットが不揮発性メモリ28により格納されていないと判断した場合、ICカード20は、INSTALLコマンドにより指定された対象アプレットがROM26により格納されているか否か判断する(ステップS17)。
【0075】
対象アプレットがROM26により格納されている場合、ICカード20は、INSTALLコマンドにより指定された対象アプレットの主要コンポーネントがROM26により格納されているか否か判断する(ステップS18)。
【0076】
対象アプレットの主要コンポーネントがROM26により格納されている場合、ICカード20は、ROM26上の対象アプレットからインスタンスを生成し、不揮発性メモリ28に格納する(ステップS19)。
【0077】
ICカード20は、ステップS13、ステップS16、またはステップS19において、インスタンスを生成することができた場合、端末装置10にインストールが正常に完了したことを示す「INSTALL完了(正常終了)」をレスポンスとして通知する(ステップS20)。
【0078】
また、ステップS14において対象のアプレットがROM26により格納されていなかった場合、ステップS15において主要コンポーネントが揃わなかった場合、ステップS17において対象アプレットがROM26により格納されていない場合、または、ステップS18において対象アプレットの主要コンポーネントがROM26により格納されていない場合、ICカード20は、異常終了する。
【0079】
即ち、ICカード20は、ROM26と不揮発性メモリ28との両方を参照しても主要コンポーネントが揃わなかった場合、端末装置10に「INSTALLエラー(異常終了)」をレスポンスとして通知する(ステップS21)。
【0080】
図7は、ICカード20によるインストールの例を示す。ここでは、図5に示すようにROM26及び不揮発性メモリ28が構成されている場合、アプレット1乃至4をインストールする例を示す。
【0081】
まず、端末装置10は、アプレット4のインストールを指示するINSTALLコマンドをICカード20に送信する。アプレット4は、主要コンポーネントが全て不揮発性メモリ28に格納されている。この為、ICカード20は、不揮発性メモリ28内のアプレット4からインスタンスを作成し、不揮発性メモリ28に書き込む。さらに、ICカード20は、端末装置10にインストールが正常に完了したことを示す「INSTALL完了(正常終了)」をレスポンスとして通知する。
【0082】
次に、端末装置10は、アプレット3のインストールを指示するINSTALLコマンドをICカード20に送信する。アプレット3は不揮発性メモリ28により格納されていない為、ICカード20は、ROM26を検索する。ROM26は、アプレット3の主要コンポーネントを全て格納している。この為、ICカード20は、ROM26内のアプレット3からインスタンスを作成し、不揮発性メモリ28に書き込む。さらに、ICカード20は、端末装置10にインストールが正常に完了したことを示す「INSTALL完了(正常終了)」をレスポンスとして通知する。
【0083】
次に、端末装置10は、アプレット1のインストールを指示するINSTALLコマンドをICカード20に送信する。アプレット1は不揮発性メモリ28により格納されている。しかし、主要コンポーネントのうち、コンポーネント1乃至4、コンポーネント6及び7、コンポーネント9及び10が不足している。この為、ICカード20は、ROM26を検索する。ROM26は、アプレット1のコンポーネント1乃至4、コンポーネント6及び7、コンポーネント9及び10を格納している。
【0084】
ICカード20は、不揮発性メモリ28により格納されているコンポーネントと、ROM26により格納されているコンポーネントと、を組み合わせてアプレット1の主要コンポーネントを揃えることができる。ICカード20は、ROM26及び不揮発性メモリ28内のアプレット1からインスタンスを作成し、不揮発性メモリ28に書き込む。さらに、ICカード20は、端末装置10にインストールが正常に完了したことを示す「INSTALL完了(正常終了)」をレスポンスとして通知する。
【0085】
次に、端末装置10は、アプレット2のインストールを指示するINSTALLコマンドをICカード20に送信する。アプレット2は不揮発性メモリ28により格納されていない為、ICカード20は、ROM26を検索する。アプレット2はROM26により格納されている。しかし、主要コンポーネントのうち、コンポーネント5及び8が不足している。この場合、アプレット2の主要コンポーネントが揃わないため、ICカード20は、インスタンスの作成を行わない。また、ICカード20は、端末装置10に「INSTALLエラー(異常終了)」をレスポンスとして通知する。
【0086】
上記したように、本実施形態に係るICカード20は、アプレットを構成する複数のコンポーネントの一部がROM26に格納し、残りのコンポーネントが不揮発性メモリ28に格納する。ICカード20は、アプレットのインストールを行う場合、不揮発性メモリ28を参照し、インストールするアプレットの主要コンポーネントが揃っているか否か判断し、揃っていない場合、ROM26を参照する。ICカード20は、ROM26に格納されているコンポーネントと不揮発性メモリ28により格納されているコンポーネントとにより主要コンポーネントが揃う場合、インスタンスを生成し、不揮発性メモリ28に書き込む。
【0087】
これにより、アプレットの主要コンポーネントがROM26と不揮発性メモリ28とに分割されて格納されている場合であっても、ICカード20は、インスタンスを生成することができる。このような構成によると、アプレットをROM26と不揮発性メモリ28とにコンポーネント単位で分割して格納することができる。
【0088】
これにより、ROMにさらにアプレットを格納することができる。この結果、種々の用途に対応するアプレットをROM26に格納することができるようになる為、ICカード20のコストを抑えることができる。即ち、ROMアプレットのサイズを抑えることができ、ROM容量を抑えることができ、ハードウェアコストを抑えることができる。
【0089】
また、アプレットのコンポーネントを変更が入りにくいものと頻繁に変更されるものに分け、変更が入りにくいものをROM26に格納することにより、アプレットのバージョンアップ時にロードデータ、即ち不揮発性メモリ28内のデータの差し替えのみで対応可能となる。また、ROM26を持ち去られた場合であっても、コンポーネントが揃わないため、アプレットが実行及び解析されるというリスクを抑えることができる。
【0090】
この結果、より利便性の高いICカード、携帯可能電子装置、ICカードの制御方法を提供することができる。
【0091】
また、ICカード20は、インスタンスの生成に失敗したアプレットに基づくインスタンスの生成を禁止する構成であってもよい。例えば、ICカード20は、インストールコマンドにより指定されたアプレットの主要コンポーネントが不揮発性メモリ28にもROM26にも記憶されていなかった場合、インストールコマンドにより指定されたアプレットに基づくインスタンスの生成を禁止するように設定する。具体的には、ICカード20は、このアプレットに基づくインスタンスの生成を許可するか否かを示す情報を不揮発性メモリ28内に書き込む。これにより、ICカード20は、所定のアプレットに基づくインスタンスの生成を禁止することができる。
【0092】
また、ICカード20は、インスタンスの生成に用いられなかったアプレットのロード及びインスタンスの生成に用いられなかったアプレットに基づくインスタンスの生成を禁止する構成であってもよい。例えば、ICカード20は、インストールコマンドにより指定されたアプレットに基づくインスタンスの生成した場合、不揮発性メモリ28への他のアプレットのロード及びROM26及び不揮発性メモリ28により記憶されている他のアプレットに基づくインスタンスの生成を禁止する。即ち、ICカード20は、インストールコマンドにより指定されたアプレット以外のアプレットに基づくインスタンスの生成を禁止する。これにより、ICカード20の不正利用及び改竄などを防ぐことが出来る。
【0093】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0094】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0095】
1…ICカード処理システム、10…端末装置、11…CPU、12…ROM、13…RAM、14…不揮発性メモリ、15…カードリーダライタ、17…操作部、18…ディスプレイ、19…電源部、20…ICカード、21…本体、22…ICモジュール、23…ICチップ、24…通信部、25…CPU、26…ROM、27…RAM、28…不揮発性メモリ、31…電源部、32…ロジック部。

【特許請求の範囲】
【請求項1】
外部機器から送信されたコマンドに応じて処理を実行するICカードであって、
複数の構成を有するアプリケーションを予め記憶する第1の記憶手段と、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記第1の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを前記受信手段により受信した場合、前記第1の記憶手段により記憶されている前記アプリケーションで不足している構成を特定し、特定した構成を記憶する第2の記憶手段と、
を具備するICカード。
【請求項2】
前記第1の記憶手段は、複数のコンポーネントを有するアプリケーションが予め記憶されたROMを有し、
前記第2の記憶手段は、書換可能な不揮発性メモリを有し、前記書き込みコマンドが、ロードコマンドである場合、前記ROMにより記憶されている前記アプリケーションで不足しているコンポーネントを特定し、特定したコンポーネントを前記不揮発性メモリに記憶する、
請求項1に記載のICカード。
【請求項3】
インストールコマンドを前記受信手段により受信した場合、前記ROMにより記憶されている前記アプリケーションのコンポーネントと、前記不揮発性メモリにより記憶されている前記アプリケーションのコンポーネントと、に基づいてインスタンスを生成する制御手段をさらに具備する、請求項2に記載のICカード。
【請求項4】
前記制御手段は、前記インストールコマンドを前記受信手段により受信した場合、前記インストールコマンドにより指定されたアプリケーションの主要コンポーネントが前記不揮発性メモリに記憶されているか否か判断し、前記主要コンポーネントが前記不揮発性メモリに記憶されている場合、前記不揮発性メモリにより記憶されている前記主要コンポーネントに基づいてインスタンスを生成する、請求項3に記載のICカード。
【請求項5】
前記制御手段は、前記主要コンポーネントが前記不揮発性メモリに記憶されていない場合、不足する主要コンポーネントが前記ROMに記憶されているか否か判断し、不足する前記主要コンポーネントが前記ROMに記憶されている場合、前記不揮発性メモリにより記憶されている前記主要コンポーネントと、前記ROMにより記憶されている前記主要コンポーネントと、を組み合わせてインスタンスを生成する、請求項4に記載のICカード。
【請求項6】
前記制御手段は、不足する前記主要コンポーネントが前記ROMに記憶されていない場合、前記インストールコマンドにより指定されたアプリケーションに基づくインスタンスの生成を禁止する、請求項5に記載のICカード。
【請求項7】
前記制御手段は、インスタンスを生成した場合、前記不揮発性メモリへのロードと、前記ROM及び前記不揮発性メモリにより記憶されている他のアプリケーションに基づくインスタンスの生成とを禁止する、請求項3乃至5のいずれかに記載のICカード。
【請求項8】
前記各手段を備えるICモジュールと、
前記ICモジュールが配設される本体と、
を具備する請求項1に記載のICカード。
【請求項9】
外部機器から送信されたコマンドに応じて処理を実行する携帯可能電子装置であって、
複数の構成を有するアプリケーションを予め記憶する第1の記憶手段と、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記第1の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを前記受信手段により受信した場合、前記第1の記憶手段により記憶されている前記アプリケーションで不足している構成を特定し、特定した構成を記憶する第2の記憶手段と、
を具備する携帯可能電子装置。
【請求項10】
複数の構成を有するアプリケーションを予め記憶する第1の記憶手段と、書換可能な第2の記憶手段とを具備し、外部機器から送信されたコマンドに応じて処理を実行するICカードの制御方法であって、
前記外部機器から送信されたコマンドを受信し、
前記第1の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを受信した場合、前記第1の記憶手段により記憶されている前記アプリケーションで不足している構成を特定し、特定した構成を前記第2の記憶手段に記憶する、
ICカードの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−69057(P2013−69057A)
【公開日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2011−206168(P2011−206168)
【出願日】平成23年9月21日(2011.9.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.EEPROM
2.FRAM
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】