説明

データファイルを共有化するICカードおよびICカード用プログラム

【課題】 ICカードに実装された複数のアプリケーションが、データファイルを共有化できるICカードを提供する。
【解決手段】ICカードのEEPROM24には、アプリケーションAのDFとアプリケーションBのDFが創生され、それぞれのDFの下階層には、共有ファイルと同じファイル番号を有するダミーファイルA、Bが創生されている。ダミーファイルA,Bはファイル管理情報のみで構成されるデータファイルで、このファイル管理情報には、共有領域に記憶されている共有ファイルのアドレス情報が含まれる。アプリケーションAが共有ファイルにアクセスするときは、ダミーファイルAからアドレス情報を取得し、取得したアドレス情報で示されるアドレスにアクセスすることで、共有ファイルにアクセスできる。また、同様にして、アプリケーションBも共有ファイルにアクセスできる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のアプリケーションが実装されたICカードにおいて、複数のアプリケーション間でデータファイルを共有することができるICカード及びICカードプログラムに関する。
【背景技術】
【0002】
複数のアプリケーションを一枚のICカードに実装したICカードが普及し、一枚のICカードに実装された複数のアプリケーション間で同一のデータを共有化したい要望が増えている。
【0003】
例えば、社員証をICカード化した場合、社内LAN(Local Area Network)へのログイン用のアプリケーションと社内食堂の決済用のアプリケーション間では、従業員の社員番号などの個人情報を共有化することで、ICカードのメモリ容量を節約できる。
【0004】
一枚のICカードに実装された複数のアプリケーション間で同一のデータを共有化する一つの発明として、特許文献1において、委任特性を備えたICカードが開示されている。ICカードが委任特性を備えることで、異なるアプリケーション間でデータの交換が可能になる。
【0005】
しかしながら、特許文献1の技術を実現するために、委任する側のアプリケーションと委任される側のアプリケーションとがそれぞれ利用するデータ空間を割当てることができる大きさの揮発性メモリを、ICカードは備えていなければならない問題がある。
【0006】
Java(登録商標)やMultos(登録商標)に代表されるプラットフォーム型のOSが実装されたマルチアプリケーションICカードには、ハイエンドのICチップが実装されることが多く、このICチップは、委任する側のアプリケーションと委任される側のアプリケーションとがそれぞれ利用するデータ空間を割当てることができる大きさの揮発性メモリ容量を備えることが多い。
【0007】
これに対し、アプリケーションのプログラムコードを読出し専用のメモリに実装する専用ICカード(NaitiveICカードとも呼ばれる)には、ローエンドのICチップが実装されることが多く、このICチップは、委任する側のアプリケーションと委任される側のアプリケーションとがそれぞれ利用するデータ空間を割当てられるほどの揮発性メモリを備えず、特許文献1の技術を実現することが困難である場合が多かった。
【特許文献1】特表2001−527674公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
そこで、上述の問題を鑑みて、本発明は、ICカードに実装されたICチップの揮発性メモリなどのメモリ容量が小さくても、1枚のICカードに実装された複数のアプリケーション間でデータを共有化することのできるICカード、および、ICカードプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した問題を解決する第1の発明は、複数のアプリケーションを実装したICカードにおいて、前記ICカードの書換え可能な不揮発性メモリには、前記アプリケーション間で共有化するデータファイルである共有ファイルを格納する共有領域が設けられ、前記共有ファイルを共有する各々の前記アプリケーションは、前記共有領域に記憶された前記共有ファイルにアクセスするためのデータファイルであるダミーファイルを有し、前記ダミーファイルには、前記共有領域に記憶された前記共有ファイルのアドレスを示すアドレス情報が記憶され、前記共有ファイルを共有する前記アプリケーションが、前記ダミーファイルに記憶された前記アドレス情報で示されるアドレスにアクセスすることで、前記共有ファイルにアクセスすることを特徴とするICカードである。
【0010】
第1の発明のICカードにおいて、前記ICカードに記憶されるデータファイルには、前記ダミーファイルと前記ダミーファイル以外のデータファイルを識別するためのファイル属性情報が設けられ、前記共有ファイルを共有する前記アプリケーションは、データファイルの前記ファイル属性情報が、前記ダミーファイルを示す情報であった場合のみ、前記ダミーファイルに記憶された前記アドレス情報で示されるアドレスにアクセスすることで、前記共有ファイルにアクセスすることを特徴とすることが望ましい。
【0011】
また、第2の発明は、複数のアプリケーションを実装し、前記アプリケーション間で共有化するデータファイルである共有ファイルを格納する共有領域が、前記ICカードの書換え可能な不揮発性メモリに設けられたICカードのCPUを動作させるためのICカード用プログラムであって、
ステップ1)前記共有領域に記憶された前記共有ファイルにアクセスするためのデータファイルであるダミーファイルにアクセスするステップ、
ステップ2)前記ダミーファイルから、前記共有領域に記憶された前記共有ファイルのアドレスを示すアドレス情報を取得するステップ、
ステップ3)前記ダミーファイルから取得した前記アドレス情報で示されるアドレスにアクセスし、前記共有ファイルにアクセスするステップ、
を順に実行する手順を含むことを特徴とするICカード用プログラムである。
【0012】
第2の発明のICカード用プログラムにおいて、前記ステップ1)を実行する前に、
前記ダミーファイルと前記ダミーファイル以外のデータファイルを識別するためのファイル属性情報をアクセスするデータファイルから取得し、アクセスするデータファイルが前記ダミーファイルであるか確認するステップを実行し、
アクセスするデータファイルが前記ダミーファイルである場合にのみ、前記ステップ1)以降のステップを実行することを特徴とするICカード用プログラムである。
【発明の効果】
【0013】
上述した本発明によれば、前記共有ファイルを共有するアプリケーションが、前記アドレス情報を記憶する前記ダミーファイルを備えることで、複数のアプリケーションがそれぞれ利用するデータ空間をICカードの揮発性メモリに割当てることなく、1枚のICカードに実装されたアプリケーション間でデータを共有化することができる。
【0014】
また、前記ダミーファイルと前記ダミーファイル以外のデータファイルを識別するためのファイル属性情報に従い処理を変更することで、前記共有ファイルと前記共有ファイル以外のデータファイルを区別して処理することができる。
【発明を実施するための最良の形態】
【0015】
ここから、本発明を適用したマルチアプリケーションICカードについて、図を参照しながら詳細に説明する。
【0016】
本発明に係るマルチアプリケーションICカードには、ISO/IEC7816規格やEMV規格などのファイルシステムに準拠したオペレーティングシステム(以下、OS:Operating System)が実装され、実装された複数のアプリケーション間で、特定のデータファイルを共有化できる。
【0017】
図1は、本発明に係るICカードの外観図である。図1で示したように、ICカード1はキャッシュカードやクレジットカードと同じ大きさのプラスチック製カードで、ICカード1には、ICチップ20がモールドされたICモジュール1aが実装されている。
【0018】
図1においては、ICカード1を接触ICカードとして図示しているが、本発明は何らICカード1の通信方式に依存するものではなく、無線でデータ通信する非接触ICカード、または、接触データ通信と非接触データ通信の2つの通信機能を備えたデュアルインターフェースICカードであってもよい。
加えて、ICカード1は、ICモジュール1aの近辺を短冊状に切り取った形状をしているSIM(Subscriber Identity Module)であってもよい。
【0019】
図2は、ICカードに埋め込まれるICチップ20のブロック図である。ICチップ20には、演算機能およびICチップ20が具備するデバイスを制御する機能を備えた中央演算装置21(CPU:Central Processing Unit)、揮発性メモリとしてランダムアクセスメモリ22(RAM:Random Access Memory)、読み出し専用の不揮発性メモリ23(ROM:Read Only Memory、)、電気的に書換え可能な不揮発性メモリとしてEEPROM24(EEPROM:Electrically Erasable Programmable Read-Only Memoryの略)、および、外部の端末装置とデータ通信するためのI/O回路25が、BUS26に接続されている。
【0020】
本発明は、ICカード1に実装されるICチップ20の仕様をなんら限定するものではなく、ICカード1の用途に適した仕様のICチップ20を選択することができる。
例えば、ROM23およびEEPROM24の容量については限定しないし、書換え可能な不揮発性メモリはフラッシュメモリ等のEEPROM以外のメモリであっても構わない。また、ICチップ20は、暗号演算回路などの図示していない他のデバイスを備えていても構わない。
【0021】
図3は、ICカード1のEEPROM24に記憶されたファイルの論理構成図である。ICカード1にはアプリケーションA及びアプリケーションBとが実装され、アプリケーションAのDF(Definition File)と、アプリケーションBのDFが創生されている。
【0022】
アプリケーションAのDFの下階層には、アプリケーションAが利用するデータファイルとして、アプリケーションBと共有化されるデータファイルである共有ファイルに、アプリケーションAがアクセスするときに使用されるデータファイルであるダミーファイルAと、アプリケーションAのみが使用するデータファイルである非共有ファイルAとが創生されている。
【0023】
アプリケーションBのDFの下階層には、アプリケーションBが利用するデータファイルとして、アプリケーションAと共有化されるデータファイルである共有ファイルに、アプリケーションBがアクセスするときに使用されるデータファイルであるダミーファイルBと、アプリケーションBのみが使用するデータファイルである非共有ファイルBとが創生されている。
【0024】
加えて、アプリケーションAのDF及びアプリケーションBのDFとは独立して、共有ファイルが創生されている。
【0025】
図4は、非共有ファイルA、Bおよび共有ファイルの構造を説明する図で、これらのデータファイルは、データファイルを管理するための情報であるファイル管理情報と、データ本体から構成される。
データファイルのファイル管理情報には、データファイルを識別するファイル識別情報(例えば、ファイル番号)に加え、データファイルとダミーファイルとを識別するファイル属性情報、データファイルの構造(例えば、レコード形式)を示すファイル構造情報、データ本体の長さを示すデータ長情報、データファイルのセキュリティ情報などが記憶される。
【0026】
図5は、ダミーファイルA、Bの構造を説明する図で、これらのダミーファイルは、データ本体を有さず、ファイル管理情報のみで構成され、ダミーファイルのファイル管理情報には、共有ファイルのファイル識別情報、データファイルとダミーファイルとを識別するファイル属性情報に加え、共有ファイルが記憶されているアドレスを示すアドレス情報が含まれる。
【0027】
共有ファイルのアドレスを示すアドレス情報は、共有ファイルの物理アドレスを絶対的にもしくは相対的に示されている。共有ファイルの物理アドレスを絶対的に示す場合は、共有ファイルの先頭アドレスなどの情報が利用できる。また、共有ファイルの物理アドレスは、共有ファイルが記憶される共有領域の先頭アドレスから共有ファイルの先頭アドレスまでのオフセット値で相対的に表すこともできる。
【0028】
図6は、ICカード1の不揮発性メモリ(ROM23とEEPROM24)の概略マップを説明する図である。図6に示したように、ICカード1のEEPROM24には、アプリケーションAのDFに関連付けて、ダミーファイルAと非共有ファイルAとが記憶されている。また、アプリケーションBのDFに関連付けて、ダミーファイルBと非共有ファイルBとが記憶されている。
【0029】
加えて、EEPROM24には、共有ファイルを記憶するための領域である共有領域が、ICカードのOSによって論理的に設けられ、この共有領域に共有ファイルは記憶されている。なお、上述しているように、共有ファイルが記憶されているアドレスは、ダミーファイルAおよびダミーファイルBのファイル管理情報で示されている。
【0030】
例えば、アプリケーションAが共有ファイルにアクセスするときは、アプリケーションAが有するダミーファイルAのファイル管理情報を参照することで、アプリケーションAは共有領域に記憶されている共有ファイルのアドレスを知ることができ、アプリケーションAはこのアドレスにアクセスすることで、共有領域に記憶されている共有ファイルにアクセスできる。
そして、アプリケーションAが共有ファイルを更新(例えば、新規レコードの追加)したときは、更新した内容は、共有ファイルのファイル管理情報に反映される。
【0031】
アプリケーションBが共有ファイルにアクセスするときも、上述した内容と同じ手順で、アプリケーションBは共有ファイルにアクセスできる。すなわち、アプリケーションAとアプリケーションBがそれぞれ、共有ファイルのアドレス情報を備えることで、共有領域に記憶された共有ファイルには、アプリケーションA及びアプリケーションBからアクセス可能になる。
【0032】
図6に示したように、ICカード1のROM23には、ファイルシステム用などOSの機能を実現するためのプログラム、アプリケーションAの機能およびアプリケーションBの機能を実現するためプログラム、アプリケーションのDF・データファイルなどを創生するICカード発行用のプログラムなどのプログラムが記憶されている、
【0033】
ここから、ICカード1のROM23に記憶されたプログラムの中で、共有ファイルを創生するプログラム、アプリケーションが共有ファイルにアクセスするためのプログラムについてそれぞれ説明する。
【0034】
図7は、共有ファイルを創生する手順を示したフロー図である。この手順の最初のステップS1は、ICカード1が、データファイルを創生するコマンドを受信するステップである。このステップが実行される前に、ICカード1は、図外の端末装置からISO/IEC7816規格のSELECTコマンドなど、アプリケーションのDFを選択するコマンドを受信し、ICカード1に創生されたアプリケーションのDFの中から、データファイルが創生されるアプリケーションのDFが選択される。
【0035】
DFが選択された後、ICカード1がデータファイルを創生するコマンドを受信すると、ROM23に記憶されたICカード発行用のプログラムの中から、データファイルを創生するプログラム(これ以降、データファイル創生プログラムと記す)が実行される。
【0036】
次のステップS2は、創生するデータファイルが共有ファイルであるか否かによって処理が分岐するステップである。創生するデータファイルが共有ファイルであるか否かは、データファイルを創生するコマンドのパラメータによって示され、データファイル創生プログラムは、このパラメータによって処理を分岐し、共有ファイルを創生する場合は、ステップS3に進み、非共有ファイルを創生する場合はステップS7に進む。
【0037】
非共有ファイルを創生する場合に実行されるステップS7は、データファイル創生プログラムは、選択されているDFに関連付けてデータファイルを創生し、この手順は終了する。
【0038】
共有ファイルを創生する場合に実行されるステップS3は、データファイル創生プログラムが創生する共有ファイルが創生済みであるか確認するステップである。
このステップにおいて、創生する共有ファイルのファイル識別情報は、データファイルを創生するコマンドのパラメータによって示され、データファイル創生プログラムは、ICカード1のEEPROM24に設けられた共有領域に、ファイル識別情報で識別される共有ファイルが創生されているか確認する。
【0039】
共有ファイルが未創生である場合はステップS4に進み、ステップS4において、データファイル創生プログラムは共有領域に共有ファイルを創生し、ステップS6に進む。共有ファイルが創生済みである場合はステップS5に進み、ステップS5において、データファイル創生プログラムは共有ファイルが記憶されているアドレスを取得し、ステップS6に進む。
【0040】
ステップS6は、選択されているDFに関連付けてダミーファイルが創生されるステップである。このステップでは、ステップS4で共有領域に共有ファイルを創生したアドレス、または、ステップS5で取得した共有ファイルのアドレスに基づいて、選択されているDFに関連付けてダミーファイルは創生される。このステップをもって、この手順は終了する。
【0041】
次に、共有ファイルにアクセスする手順について説明する。図8は、共有ファイルにアクセスする手順を示したフロー図である。
この手順の最初のステップS10は、アクセスするデータファイルが選択されるステップである。このステップでは、上述したSELECTコマンドもしくは他のコマンドのパラメータによって、選択するデータファイルのファイル識別情報は示される。
【0042】
次のステップS11は、選択されたデータファイルが共有ファイルであるか確認するステップである。このステップにおいては、アプリケーションは、ステップS10で選択したデータファイルのファイル管理情報のファイル属性情報を参照することで、アクセスするデータファイルがダミーファイルであるか否かを確認することができる。
【0043】
アクセスするデータファイルが非共有ファイルである場合には、ステップS14で選択された非共有ファイルにアクセスし、この手順は終了する。
【0044】
アクセスするデータファイルがダミーファイルである場合には、ステップS12において、ダミーファイルのファイル管理情報からアドレス情報を取得する。そして、ステップS13において、このアドレス情報で示されるアドレスにアクセスし、アドレス情報で示されるアドレスに記憶されている共有ファイルにアクセスする。このステップをもってこの手順は終了する。
【図面の簡単な説明】
【0045】
【図1】ICカードの外観図。
【図2】ICカードに埋め込まれるICチップのブロック図。
【図3】ICカードのファイルの論理構成図。
【図4】データファイルA、Bおよび共有ファイルの構造を説明する図。
【図5】ダミーファイルA、Bの構造を説明する図。
【図6】ICカード1の不揮発性メモリの概略マップを説明する図。
【図7】共有ファイルを創生する手順を示したフロー図。
【図8】共有ファイルにアクセスする手順を示したフロー図。
【符号の説明】
【0046】
1 ICカード
20 ICチップ
21 CPU
22 RAM
23 ROM
24 EEPROM
25 I/O回路



【特許請求の範囲】
【請求項1】
複数のアプリケーションを実装したICカードにおいて、前記ICカードの書換え可能な不揮発性メモリには、前記アプリケーション間で共有化するデータファイルである共有ファイルを格納する共有領域が設けられ、前記共有ファイルを共有する各々の前記アプリケーションは、前記共有領域に記憶された前記共有ファイルにアクセスするためのデータファイルであるダミーファイルを有し、前記ダミーファイルには、前記共有領域に記憶された前記共有ファイルのアドレスを示すアドレス情報が記憶され、前記共有ファイルを共有する前記アプリケーションが、前記ダミーファイルに記憶された前記アドレス情報で示されるアドレスにアクセスすることで、前記共有ファイルにアクセスすることを特徴とするICカード。
【請求項2】
請求項1のICカードにおいて、前記ICカードに記憶されるデータファイルには、前記ダミーファイルと前記ダミーファイル以外のデータファイルを識別するためのファイル属性情報が設けられ、前記共有ファイルを共有する前記アプリケーションは、データファイルの前記ファイル属性情報が、前記ダミーファイルを示す情報であった場合のみ、前記ダミーファイルに記憶された前記アドレス情報で示されるアドレスにアクセスすることで、前記共有ファイルにアクセスすることを特徴とするICカード。
【請求項3】
複数のアプリケーションを実装し、前記アプリケーション間で共有化するデータファイルである共有ファイルを格納する共有領域が、前記ICカードの書換え可能な不揮発性メモリに設けられたICカードのCPUを動作させるためのICカード用プログラムであって、
ステップ1)前記共有領域に記憶された前記共有ファイルにアクセスするためのデータファイルであるダミーファイルにアクセスするステップ、
ステップ2)前記ダミーファイルから、前記共有領域に記憶された前記共有ファイルのアドレスを示すアドレス情報を取得するステップ、
ステップ3)前記ダミーファイルから取得した前記アドレス情報で示されるアドレスにアクセスし、前記共有ファイルにアクセスするステップ、
を順に実行する手順を含むことを特徴とするICカード用プログラム。
【請求項4】
請求項3のICカード用プログラムにおいて、前記ステップ1)を実行する前に、
前記ダミーファイルと前記ダミーファイル以外のデータファイルを識別するためのファイル属性情報をアクセスするデータファイルから取得し、アクセスするデータファイルが前記ダミーファイルであるか確認するステップを実行し、
アクセスするデータファイルが前記ダミーファイルである場合にのみ、前記ステップ1)以降のステップを実行することを特徴とするICカード用プログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate