説明

携帯可能電子装置

【課題】複数チャネルでの確実なアクセス制御を実現でき、別のロジカルチャネルとカレント設定が競合する場合のコマンドに対する処理内容をアプリケーションごとに運用形態などに応じて設計できるICカード1を提供できる。
【解決手段】ICカード1において、オペレーティングシステム41がチャネル管理テーブル42aにより各ファイルに対する各チャネルのアクセス順番を管理し、アプリケーションがチャネル管理テーブル42aにより管理されるアクセス順番に基づいて各ファイルへのアクセスを制御する。上記チャネル管理テーブル42aでは、各ロジカルチャネルが各ファイルをカレントに設定した順番をアクセス順番として記憶する。特定のロジカルチャネルによるカレント設定が解除された場合、テーブル更新機能42bは、上記チャネル管理テーブル42aに記憶されている当該ロジカルチャネルを削除し、当該ロジカルチャネル以降のアクセス順番であった各ロジカルチャネルのアクセス順番を繰り上げる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、たとえば、データの書込み、書換え可能な不揮発性メモリおよびCPUなどの制御素子を有したモジュールを内蔵し、外部から入力されるコマンドに対応した処理を実行するICカードなどの携帯可能電子装置に関する。
【背景技術】
【0002】
従来、携帯可能電子装置としては、たとえば、メモリやCPUなどの機能を有したICモジュールがプラスチック板などで構成される筐体内に埋設されているICカードがある。このようなICカードでは、外部装置からのコマンドに応じて書き換え可能な不揮発性メモリにデータを書き込んだり、不揮発性メモリからデータを読み出したりするようになっている。このようなICカードは、セキュリティの重要性から、入退出管理、クレジットカード、携帯電話機、電子商取引など様々な分野で利用されている。さらに、近年では、1つのICカードを様々な用途で利用するために、複数のアプリケーションを動作させる運用形態も多くなってきている。
【0003】
一般に、ICカードと上位装置(端末)のデータの送受信は、ロジカルチャネルと呼ばれる「通信のためのチャネル」を経由して実施される。従来、一般的な運用形態では、ICカードと端末とが1対1で通信を行うことが多いため、1つのチャネルのみで処理が完結することが多い。ただし、近年では、1つのICカードと複数の端末とで通信を行うケースが増えてきている。これは、ICカードの基本性能が向上したこと、あるいは、外部との複数のインターフェース(接触型、非接触型、あるいは、高速タイプの接触型など)を有するICカードが多くなってきていることなどが要因である。複数の端末と通信を行う場合、ICカードは、複数のチャネルを開設し、それぞれのチャネルがそれぞれの対象ファイル(あるいはアプリケーション)にアクセスする制御を行う。
【0004】
しかしながら、ICカードにおける各ファイルへのアクセスは、複数のチャネルごとに管理されていないのが現状である。つまり、従来のICカードでは、複数のチャネルから各ファイルに無条件にアクセスことが可能となっている。このように複数のチャネルから無条件で各ファイルにアクセス可能であると、ICカード内で、様々が問題が発生することがある。たとえば、第1のチャネルでアクセス中のファイルが第2のチャネルで書換えられてしまうようなことが起こりうる。このような現象が起こると、第1のチャネルで期待された処理が実現できなくなってしまうという問題がある。
【特許文献1】特開2005−11147号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
この発明は、複数のチャネルでのアクセス制御を確実かつ効率的に行うことができる携帯可能電子装置を提供することを目的する。
【課題を解決するための手段】
【0006】
この発明の一形態としての携帯可能電子装置は、オペレーティングシステムプログラムを記憶する第1の記憶手段と、アプリケーションプログラムを記憶する第2の記憶手段と、ファイルを記憶する第3の記憶手段と、前記オペレーティングシステムプログラムおよび前記アプリケーションプログラムを実行する制御手段とを有するものであって、前記オペレーティングシステムプログラムは、前記第3の記憶手段に記憶しているファイルへアクセスするための複数のチャネルを管理するチャネル管理機能と、前記チャネル管理機能により管理される各チャネルが前記第3の記憶手段に記憶しているファイルをカレント状態とした順番をアクセス順番として管理するアクセス順番管理機能と、前記チャネル管理機能により管理される第1のチャネルが前記第3の記憶手段に記憶しているファイルに対するカレント状態を解除した場合、前記第1のチャネルを当該ファイルに対するアクセス順番の管理対象から外し、前記第1のチャネルよりもアクセス順番が後であった全チャネルのアクセス順番を繰り上げるアクセス順番更新機能と、前記第3の記憶手段に記憶しているファイルに対するチャネルのアクセス順番を示す情報を前記第2の記憶手段に記憶しているアプリケーションプログラムへ提供する提供機能と、を有し、前記アプリケーションプログラムは、前記オペレーティングシステムプログラムから提供される前記ファイルに対するチャネルのアクセス順番に基づいて、当該アプリケーションプログラムに割り当てられているチャネルでの前記ファイルに対するアクセスを制御するアクセス制御機能を有する。
【発明の効果】
【0007】
この発明によれば、複数のチャネルでのアクセス制御を確実かつ効率的に行うことができる携帯可能電子装置を提供することができる。
【発明を実施するための最良の形態】
【0008】
以下、この発明を実施するための最良の形態について図面を参照して説明する。
図1は、この実施の形態に係る携帯可能電子装置としてのICカード1のハードウエア構成を概略的に示すものである。
図1に示すように、ICカード1は、CPU(セントラル・プロセッシング・ユニット)11、ROM(リード・オンリ・メモリ)12、RAM(ランダム・アクセス・メモリ)13、通信ユニット(UART)14、不揮発性メモリ(NV(EEPROM))15、および、コプロセッサ(Co−Processor)16などを有している。
【0009】
上記CPU11、ROM12、RAM13、通信ユニット14、コプロセッサ15および不揮発性メモリ16は、ICチップなどにより一体的に形成されたモジュールCaにより構成される。このモジュールCaは、当該ICカード1を形成する筐体Cの内部に埋設される。すなわち、上記ICカード1は、モジュールCaが埋設された筐体Cにより構成されている。
また、上記ICカード1は、上位装置としての上記ICカード処理装置2から電力などの供給を受けた際、活性化し(動作可能な状態となり)、上記ICカード処理装置2からのコマンドに応じて動作するようになっている。
【0010】
上記CPU11は、全体的な管理や制御を司るものである。上記CPU11は、処理手段や判断手段として機能する。上記CPU11は、制御プログラム等に基づいて動作することにより種々の処理を行う。上記ROM12は、制御用プログラムや制御データなどが予め格納されている不揮発性メモリである。上記RAM13は、ワーキングメモリとして機能する揮発性のメモリである。
【0011】
上記通信ユニット14は、通信手段として機能し、上位装置としてのICカード処理装置2とのデータ通信を制御するものである。また、上記通信ユニット14は、上記ICカード1が動作するための電源を受給する手段としても機能する。上記コプロセッサ15は、暗号化あるいは復号化などの演算の補助を行うものである。上記不揮発性メモリ16は、各種データやアプリケーション(アプリケーションプログラム)などを記憶する書き換え可能な不揮発性メモリである。なお、上記不揮発性メモリ16に記憶されるデータの構造については、後で詳細に説明する。
【0012】
また、上記通信ユニット14は、ICカード1の通信方式に応じた構成を有している。たとえば、上記ICカード1の通信方式が接触式の通信方式である場合、上記通信ユニット14は、上位装置としてのICカード処理装置2のコンタクト部と物理的に接触するためのコンタクト部などにより構成される。この場合、ICカード1は、ICカード処理装置2と物理的に接触している上記通信ユニット14によりICカード処理装置2からの電源を受給する。つまり、上記ICカード1が接触式ICカードである場合、上記ICカード1は、通信ユニット14としてのコンタクト部を介してICカード処理装置2からの動作電源および動作クロックの供給を受けて活性化される。
【0013】
また、上記ICカード1の通信方式が非接触式(無線式)の通信方式である場合、上記通信ユニット14は、電波の送受信を行うアンテナおよび通信を制御する通信制御部等により構成される。この場合、上記ICカード1は、通信ユニット14により受信した電波から図示しない電源部により動作電源および動作クロックを生成するようになっている。つまり、上記ICカード2が非接触式ICカードである場合、上記ICカード2は、通信ユニット14としてのアンテナおよび通信制御部等を介してICカード処理装置2からの電波を受信し、その電波から図示しない電源部により動作電源および動作クロックを生成して活性化するようになっている。
【0014】
次に、上記不揮発性メモリ16に記憶されるデータの構成について説明する。
上記不揮発性メモリ16には、たとえば、ISO/IEC7816において定義されたファイル構造で各種のデータが記憶される。たとえば、上記不揮発性メモリ16には、複数階層構造(ツリー構造)で管理されるデータファイルとしてのファイル(EF:Elementary File)、および、データフォルダとしてのファイル(DF:Dedicated File)が記憶されている。
【0015】
図2は、上記不揮発性メモリ16に記憶されているファイル構造の例を示す図である。
図2に示す例では、最上位がマスタファイルとしてのファイル(MF:Master File)21である。上記MF21の配下には、フォルダとしてのDF(アプリケーションA)22A、および、フォルダとしてのDF(2アプリケーションB)22Bが設けられている。さらに、上記DF(アプリケーションA)22Aの配下には、データの格納などに使用されるEF(ファイルA1)23A1およびEF(ファイルA2)23A2が設けられている構成になっている。さらに、上記DF(アプリケーションB)22Bの配下には、データの格納などに使用されるEF(ファイルB1)23B1が設けられている構成になっている。このようなファイル構造では、各種のデータは、データファイルとしてのEFに記憶される。
【0016】
次に、上記ICカード1におけるソフトウエア構成について説明する。
上記ICカード1では、上述したように、CPU11がROM12あるいは不揮発性メモリ16に記憶されているプログラムを実行することにより、種々の処理を実現している。すなわち、上記ICカード1では、CPU11が実行するソフトウエアによってROM12、RAM13、不揮発性メモリ16、UART14あるいはコプロセッサ15などを制御することにより種々の処理を実現している。
【0017】
図3は、上記ICカード1におけるソフトウエア構成を模式的に示す図である。
上記ICカード1におけるソフトウエアは、ハードウエア(H/W)層31、OS(オペレーティングシステム)層32、および、アプリケーション層33から構成される。図3に示すように、上記ICカード1では、上記アプリケーション層33が最上位に位置し、上記OS層32が上記H/W層31の上位に位置するような構造となっている。
【0018】
上記H/W層31は、上記CPU11、ROM12、RAM13、UART14、コプロセッサ15、不揮発性メモリ16などのハードウエアから構成される。上記H/W層31の各ハードウエアは、上記OS層32からの処理要求に応じて処理を実行したり、実行した処理の結果を上記OS層32に送ったりするものである。
【0019】
上記OS層32は、当該ICカード1における基本的な制御を実行するためのプログラムとしてのカードOS(オペレーティングシステム)41を有する。なお、上記OS層32は、環境設定モジュール、アプリケーションインタフェース群などのモジュールなどを有するようにしても良い。上記カードOS41としてのソフトウエアは、当該ICカードの基本的な動作を司るプログラムであり、上記H/W層31の各ハードウエアを制御したり、各ハードウエアからの処理結果などの情報を受けて動作したりするプログラムである。上記カードOS41としてのソフトウエアは、ICカード内における不揮発性のメモリに予め記憶されているものであり、たとえば、上記ROM23などに記憶される。
【0020】
また、上記カードOS41は、当該ICカード1の基本動作を実現するためのH/W層の各ハードウエアを制御する基本機能に加えて、ロジカルチャネル管理機能42を有している。ロジカルチャネルとは、上記不揮発性メモリ16内の各ファイルあるいは各アプリケーションに対してアクセスするための論理的なチャネルを管理するものである。たとえば、複数の通信方式で通信を行っている場合、各通信方式ごとにロジカルチャネルが割り当てられる。このようなロジカルチャネルによる制御を行うことにより、ICカード1では、各チャネルごとに複数系列のコマンド群を処理することができる。たとえば、アプリケーションAでは、第1のチャネルでコマンド処理を実行し、アプリケーションBでは、第2のチャネルでコマンド処理を実行するという処理が可能となっている。
【0021】
上記ロジカルチャネル管理機能42は、上記のようなロジカルチャネルを管理する機能である。すなわち、上記ロジカルチャネル管理機能42は、ロジカルチャネルのオープン及びクローズを制御したり、アプリケーションプログラムに対してロジカルチャネルを割り当てたり、チャネル管理テーブル42aを用いてファイルあるいはアプリケーションに対する各ロジカルチャネルのアクセス順番を管理したりするものである。また、上記チャネル管理テーブル42aに記憶される情報は、各ロジカルチャネルでカレントとして設定するファイルあるいはアプリケーションプログラムなどの変更に応じて、テーブル更新機能42bにより更新される。
【0022】
上記アプリケーション層33は、各種の処理を実現するためのプログラムとしての各種のアプリケーション(アプリケーションA、アプリケーションB、…)から構成される。上記各アプリケーションとしてのソフトウエアは、当該ICカード1の運用形態に応じた各種の処理を実現するためのプログラムおよびデータなどにより構成される。上記アプリケーションとしてのソフトウエアは、予めICカード1内の不揮発性のメモリ16に記憶されたり、適宜外部装置からダウンロードしてICカード1内の不揮発性メモリ16に記憶されたりするものである。
すなわち、上記H/W層31の各ハードウエアは、上記OS層32のカードOS41により制御される。上記OS層32のカードOS41は、上記アプリケーション層33の各アプリケーションから要求に応じて各ハードウエアの動作を制御する。また、上記H/W層31の各ハードウエアによる処理結果等は、上記OS層32のカードOS41を介してアプリケーションへ供給される。たとえば、外部装置からのコマンドは、上記H/W層31のハードウエアにより受信され、上記OS層32のカードOS41へ供給される。上記カードOS41では、上記H/W層31で受信したコマンドを選択的にアプリケーション層33における特定のアプリケーションへ供給する。
【0023】
たとえば、上記H/W層31で外部装置からアプリケーション選択コマンドを受信した場合、上記カードOS41は、上記アプリケーション層33から当該アプリケーション選択コマンドで指定されたアプリケーションをカレント状態とする。この状態において上記H/W層31で外部装置からコマンドを受信した場合、上記カードOS41は、当該コマンドをカレント状態のアプリケーションへ供給する。これにより、アプリケーション層33の各アプリケーションは、上記OS層32のカードOS41から供給されるコマンドに応じた処理を実行する。すなわち、上記カードOS41は、カレント状態のアプリケーション(以下、カレントアプリケーションとも称する)を指定し、カレントアプリケーションに対してコマンドを供給するようになっている。
【0024】
次に、上記ロジカルチャネル管理機能42について説明する。
図4、図5及び図6は、上記チャネル管理テーブル42aの構成例を示す図である。
すなわち、図4、図5及び図6に示すように、上記チャネル管理テーブル42aは、各アプリケーションおよび各ファイルごとに各ロジカルチャネルのアクセス順番が格納されている。つまり、上記チャネル管理テーブル42aに格納されるアクセス順番は、各ロジカルチャネルが各ファイルあるいは各アプリケーションをカレントに設定した順番(アクセスした順番)を示す情報である。
【0025】
上記チャネル管理テーブル42aに格納される情報は、上記テーブル更新機能42bにより適宜更新される。たとえば、新たなロジカルチャネルをオープンした場合、上記テーブル更新機能42bは、当該ロジカルチャネルでカレントに設定するファイルあるいはアプリケーションに追加する。この場合、カレントに設定するファイルあるいはアプリケーションに対する当該ロジカルチャネルのアクセス順番は、アクセス中のロジカルチャネルの後(つまり、アクセス順番が最後尾)とする。また、既存のロジカルチャネルをクローズした場合、上記テーブル更新機能42bは、当該ロジカルチャネルをチャネル管理テーブル42aから削除する。この場合、上記テーブル更新機能42bは、当該ロジカルチャネルをチャネル管理テーブル42aから削除するとともに、当該ロジカルチャネルよりも後のアクセス順番となっている全ロジカルチャネルのアクセス順番を繰り上げる。
【0026】
まず、上記テーブル更新機能42bがチャネル管理テーブル42aに格納されるアクセス順番にロジカルチャネルを追加する処理について説明する。
【0027】
図4に示すチャネル管理テーブル42aでは、アプリケーションAは、ロジカルチャネル「ch.1」、「ch.3」、「ch.0」の順にカレント設定され、ファイルA1は、ロジカルチャネル「ch.1」、「ch.3」の順にカレント設定されていることを示している。すなわち、図4に示すチャネル管理テーブル42aでは、ロジカルチャネル「ch.1」は、アプリケーションAとファイルA1とをそれぞれカレント設定していることを示している。また、図4に示すチャネル管理テーブル42aにおいて、アプリケーションBは、ロジカルチャネル「ch.2」でカレント設定されている。
【0028】
チャネル管理テーブル42aが図4に示すような状態において、ロジカルチャネル「ch.2」でアプリケーションAのファイルA1を選択する処理(ロジカルチャネル「ch.2」でアプリケーションA及びファイルA1をカレント設定する処理)を実施したものとする。この場合、上記テーブル更新機能42bは、チャネル管理テーブル42aの状態を図5に示すような状態に遷移させる。
【0029】
すなわち、ロジカルチャネル「ch.2」のカレントファイルをアプリケーションAのファイルA1にする場合、上記テーブル更新機能42bは、上記チャネル管理テーブル42aにおけるアプリケーションBに対するアクセス順番からロジカルチャネル「ch.2」を削除すると共に、チャネル管理テーブル42aにおけるアプリケーションA及びファイルA1に対するアクセス順番の最後尾にそれぞれロジカルチャネル「ch.2」を追加する。これにより、チャネル管理テーブル42aは、図5に示すように、アプリケーションA及びファイルA1を最後にカレントに設定したロジカルチャネルが「ch.2」であることを示す状態となる。図5に示すようなチャネル管理テーブル42aによれば、ロジカルチャネル「ch.2」のファイルA1へのアクセス順番は、ロジカルチャネル「ch.1」及び「ch.3」の次であることが判別できる。
【0030】
次に、上記テーブル更新機能42bがチャネル管理テーブル42aに格納されるアクセス順番からロジカルチャネルを削除する処理について説明する。
ここでは、上記チャネル管理テーブル42aが図5に示すような状態において、ロジカルチャネル「ch.1」をクローズする処理が実施される場合を想定するものとする。この場合、上記テーブル更新機能42bは、クローズされるロジカルチャネル「Ch.1」を上記チャネル管理テーブル42aから削除する(ロジカルチャネル「Ch.1」を管理対象から外す)ことにより、チャネル管理テーブル42aの状態を図6に示すような状態に遷移させる。
【0031】
すなわち、ロジカルチャネル「ch.1」をクローズする場合、上記テーブル更新機能42bは、チャネル管理テーブル42aにおけるロジカルチャネル「ch.1」を削除すると共に、ロジカルチャネル「ch.1」以外に続く各ロジカルチャネルのアクセス順番をそれぞれ繰り上げる。たとえば、図5に示すチャネル管理テーブル42aでは、アプリケーションA及びファイルA1に対するアクセス順番が最上位のロジカルチャネル「ch.1」が削除される。このため、上記チャネル管理テーブル42aは、図6に示すように、アプリケーションAに対するアクセス順番がロジカルチャネル「Ch.3」、「Ch.0」、「Ch.2」となり、ファイルA1に対するアクセス順番がロジカルチャネル「Ch.3」、「Ch.2」となる。
【0032】
上記のように、チャネル管理テーブル42aにおいて、各アプリケーション及び各ファイルに対する各ロジカルチャネルのアクセス順番は、各ロジカルチャネルがカレントに設定した順番を示すものである。ロジカルチャネルがクローズされた場合、あるいは、ロジカルチャネルのカレント設定が変更された場合、各ロジカルチャネルに与えられていたアクセス順番は変更される。言い換えると、本ICカード1では、特定のロジカルチャネルに対してクローズ及びオープン、あるいは、各ロジカルチャネルのカレント設定の変更を行うことにより、チャネル管理テーブル42aにおける各ロジカルチャネルのアクセス順番を変更することが可能である。
【0033】
すなわち、特定のロジカルチャネルがクローズされた場合、上記チャネル管理テーブル42aでは、クローズされたロジカルチャネルが管理対象から除外され、それ以外の各ロジカルチャネルのアクセス順番が繰り上がる。これにより、ロジカルチャネルがクローズされた場合であっても、他のロジカルチャネルでのアプリケーションあるいはファイルに対するアクセスに矛盾が生じることのない管理を実現できる。言い換えると、特定のロジカルチャネルに対してクローズとオープンとを行うことにより、当該ロジカルチャネルのアクセス順番を最後尾にすることが可能となっている。
【0034】
次に、ICカード処理装置2からのコマンドに対するICカード1における処理について説明する。
上記のようなチャネル管理テーブル42aによって、上記カードOS41のロジカルチャネル管理機能42では、各アプリケーションに処理を実施しているチャネル番号を通知したり、各ファイルあるいは各アプリケーションに対する各ロジカルチャネルの優先権(アクセス順序)を通知したりする。これにより、コマンドを受けた各アプリケーションでは、カードOS41から提供される優先権を示す情報に基づいて、当該コマンドに対する処理内容を決定することが可能となる。
【0035】
各アプリケーションでは、カードOS41を介してICカード処理装置2からのコマンドが与えられる。この場合、アプリケーションは、自身のロジカルチャネルの優先順位に基づいて受信したコマンドに対する処理を実行するか否かを判断する。さらに、各アプリケーションでは、自身のロジカルチャネルの優先順位と受信したコマンドの種類とに基づいて、当該コマンドに対する処理を実行するか否かを判断するようにしても良い。言い換えると、受信したコマンドを実行するか否かを判断するか否かは、各アプリケーションがカードOS41から提供されるロジカルチャネルのアクセス順序(優先権)を示す情報により決定するようになっている。
【0036】
たとえば、コマンドを受信したアプリケーションでは、自身のロジカルチャネルの優先順位が最上位である場合、全てのコマンドに対する処理を実行可を判断するようにする。また、コマンドを受信したアプリケーションでは、自身のロジカルチャネルの優先順位が最上位でない場合、受信したコマンドがファイルの状態を変更するコマンド(たとえば、書換えあるいは削除などのコマンド)に対する処理を実行不可と判断し、受信したコマンドがファイルの状態を変更しないコマンド(たとえば、読出しなどのコマンド)に対する処理を実行可と判断するようにする。
【0037】
上記のように、受信したコマンドに対する処理内容(実行の可否)は、アプリケーションが決定ようにすることができる。従って、各アプリケーションにより実現される処理は、上述した例にかかわらずに、以下のような種々の形態が可能である。
たとえば、特定のアプリケーション(最優先とするアプリケーション)は、ロジカルチャネルの優先順位によらずに、常に全てのコマンドに対する処理を実行するようにしても良い。また、受信したコマンドの種類によらずに、最上位のロジカルチャネルでなければ、全てのコマンドに対する処理を実行しないようにしても良い。さらには、たとえば、履歴情報をレコード単位で順次格納する特定のファイルについては、ロジカルチャネルの優先順位によらずに、書込み処理を許可するようにしても良い。
上記のように、本ICカード1では、アプリケーションごとに、別のロジカルチャネルとカレント設定が競合する場合のコマンドに対する処理内容に自由に設計でき、運用形態などに応じた自由度の高いシステムを実現できる。
【0038】
図7は、ICカード処理装置2からのコマンドに対する処理例を説明するためのフローチャートである。なお、カードOS41および各アプリケーションの動作は、CPU11により実現されるものであるが、以下の処理例では、カードOS41の動作と各アプリケーション22(22A、22B、…)の動作とに分けて説明するものとする。
まず、ICカード処理装置2からのコマンドをUART14により受信すると(ステップS10)、CPU11により実行されるカードOS41は、受信したコマンドをアプリケーション(ここではアプリケーション22Aとする)に通知する(ステップS11)。
【0039】
上記カードOS41からコマンドを取得すると(ステップS12)、上記アプリケーション22Aは、自身のロジカルチャネルをカードOS41に対して問合せる(ステップS13)。
この問合せに対して、カードOS41は、ロジカルチャネル管理機能42によりチャネル管理テーブル42aを参照し、当該アプリケーション22Aのロジカルチャネルを判別する(ステップS14)。上記アプリケーション22Aのロジカルチャネルを判別すると、カードOS41は、上記アプリケーション22Aに対してロジカルチャネルを示す情報を通知する(ステップS15)。
これにより、上記アプリケーション22Aは、自身のロジカルチャネルを確認する。なお、コマンドを受信したアプリケーションが自身に割り当てられたロジカルチャネルを確認する方法としては、上記ステップS13〜S16の処理に限らず、受信したコマンドのCLASSバイトから直接確認する方法、あるいは、カード仕様によって予め用意されてる専用のAPIにより取得する方法なども適用可能である。
【0040】
上記カードOS41から自身のロジカルチャネルを示す情報を取得すると、上記アプリケーション22Aは、当該コマンドにおいてアクセス対象となるファイルを判別し、アクセス対象となるファイルの各ロジカルチャネルによるアクセス状況をカードOS41に問い合わせる(ステップS21)。
この問合せに対して、カードOS41は、上記ロジカルチャネル管理機能42によりチャネル管理テーブル42aを参照して、アクセス対象とするファイルに対する各ロジカルチャネルのアクセス順番(優先順位)を判定する(ステップS22)。上記アクセス対象のファイルに対する各ロジカルチャネルのアクセス順番を判別すると、カードOS41は、上記アプリケーション22Aに対して当該ファイルに対する各ロジカルチャネルのアクセス順番を示す情報を通知する(ステップS23)。
【0041】
上記アクセス対象とするファイルに対する各ロジカルチャネルのアクセス順番を示す情報を取得すると(ステップS24)、アプリケーション22Aは、当該コマンドに対する処理を実行するか否かを判定する処理を行う(ステップS25〜S26)。すなわち、アプリケーション22Aは、当該コマンドがアクセス対象とするファイルにアクセスしている(当該ファイルをカレントに設定している)別のロジカルチャネルが存在するか否かを判断する(ステップS25)。
【0042】
別のロジカルチャネルで当該ファイルへのアクセスが無いと判断した場合(ステップS25、NO)、上記アプリケーション22Aは、当該コマンドに対する処理を実行し(ステップS28)、その処理結果をカードOS41へ通知する(ステップS29)。なお、上記ステップS28のコマンドに対する処理では、アプリケーション22Aは、カードOS41と共同して当該ファイルが格納されているメモリへのアクセスなどを実現するようになっている。
【0043】
また、別のロジカルチャネルで当該ファイルへのアクセスが有ると判断した場合(ステップS25、NO)、上記アプリケーション22Aは、カードOS41から取得した各ロジカルチャネルのアクセス順番を示す情報に基づいて、自身のロジカルチャネルに当該ファイルに対する優先権があるか否かを判断する(ステップS26)。たとえば、上記アプリケーション22Aは、カードOS41から取得した各ロジカルチャネルのアクセス順番において、自身のロジカルチャネルが最上位であるか否かにより、当該ファイルに対する優先権があるか否かを判断する。
【0044】
上記判断により自身のロジカルチャネルに優先権があると判断した場合(ステップS26、YES)、上記アプリケーション22Aは、当該コマンドに対する処理を実行し(ステップS28)、その処理結果をカードOS41へ通知する(ステップS29)。
【0045】
また、上記判断により自身のロジカルチャネルに優先権がないと判断した場合(ステップS26、NO)、上記アプリケーション22Aは、当該コマンドの種類が実行可能なコマンドであるか否かを判断する(ステップS27)。上記ステップS27の処理は、各アプリケーションごとの設定に応じて判断されるものである。たとえば、ライト系のコマンドを実行不可とし、リード系のコマンドを実行可能となるような形態が可能である。また、全コマンドを実行不可としたり、全コマンドを実行可としたりする形態も可能である。さらには、アクセス対象となるファイルのタイプによって、実行の可否を判定するような形態も可能である。
【0046】
たとえば、アプリケーション22Aでは、書換えなどのファイルの状態を書き換えてしまうようなコマンドを実行不可とし、それ以外のコマンドを実行可と設定されているものとする。このような場合、上記アプリケーション22Aは、受信したコマンドが書換えコマンドであれば、当該コマンドの処理を実行不可を判断する。また、受信したコマンドが読出しコマンドであれば、上記アプリケーション22Aは、当該コマンドの処理を実行可と判断する。
【0047】
上記判断により受信したコマンドの処理を実行可と判断した場合(ステップS27、YES)、上記アプリケーション22Aは、当該コマンドに対する処理を実行し(ステップS28)、その処理結果をカードOS41へ通知する(ステップS29)。また、上記判断により受信したコマンドの処理を実行不可と判断した場合(ステップS27、NO)、上記アプリケーション22Aは、当該コマンドに対する処理を実行不可(中断)し、当該コマンドに対する処理を中断した旨を処理結果としてカードOS41へ通知する(ステップS29)。
【0048】
上記アプリケーション22Aから受信したコマンドに対する処理を取得すると(ステップS30)、カードOS41は、上記アプリケーション22Aから通知された処理結果を受信したコマンドに対するレスポンスデータとしてICカード処理装置2へ送信する(ステップS31)
上記のように、本ICカード1のカードOS41では、各ファイルに対してカレント設定しているチャネルとそれらのチャネルのアクセス順番とを管理しておき、アプリケーションが、受信したコマンドに応じてアクセスしようとするファイルについて、「既に他のチャネルが対象のファイルをカレント設定しているか」、「アクセスする優先権(アクセスした順番)はどのチャネルにあるか」をカードOS41から提供される情報により確認することにより、複数のチャネルでのカレント設定に応じたアクセス制御を行う。
上記のような処理により、あるアプリケーションのコマンド処理において、アクセスするファイルが他のチャネルで既にカレント設定されていなかをカードOS41が確認することができ、複数のロジカルチャネルでカレント設定されているファイルに対する処理を確実に管理することができる。
【0049】
つまり、本実施の形態のICカードでは、オペレーティングシステムが、不揮発性メモリに記憶されている各ファイルに対してアクセス中のチャネルを示す情報をチャネル管理テーブルにより管理し、前記チャネル管理テーブルで管理されている情報を参照することにより受信したコマンドがアクセス対象とするファイルにアクセス中のロジカルチャネルを示す情報を当該コマンドを処理するアプリケーションに提供し、前記アプリケーションが前記オペレーティングシステムから提供された情報に基づいて前記コマンドに対する処理の実行の可否を判定する。これにより、複数のロジカルチャネルでのアクセス制御において、別のロジカルチャネルとカレント設定(アクセス中のファイル)が競合する場合のコマンドに対する処理内容をアプリケーションごとに運用形態などに応じて設計できる。
【図面の簡単な説明】
【0050】
【図1】この発明の実施の形態に係る携帯可能電子装置としてのICカードのハードウエア構成を概略的に示すブロック図。
【図2】不揮発性メモリに記憶されるデータのファイル構成例を示す図。
【図3】ICカードにおけるソフトウエア構成を説明するための模式図。
【図4】チャネルのアクセス順序を管理するためのチャネル管理テーブルの構成例を示す図。
【図5】チャネルのアクセス順序を管理するためのチャネル管理テーブルの構成例を示す図。
【図6】チャネルのアクセス順序を管理するためのチャネル管理テーブルの構成例を示す図。
【図7】ICカードにおけるコマンドに対する処理例を説明するためのフローチャート。
【符号の説明】
【0051】
1…ICカード、2…ICカード処理装置、11…CPU、12…ROM、13…RAM、14…通信ユニット(UART)、15…コプロセッサ、16…不揮発性メモリ、Ca…モジュール、C…本体、31…ハードウエア層、32…OS層、33…アプリケーション層、41…カードOS、42…ロジカルチャネル管理機能、42a…チャネル管理テーブル、42b…テーブル更新機能。

【特許請求の範囲】
【請求項1】
オペレーティングシステムプログラムを記憶する第1の記憶手段と、アプリケーションプログラムを記憶する第2の記憶手段と、ファイルを記憶する第3の記憶手段と、前記オペレーティングシステムプログラムおよび前記アプリケーションプログラムを実行する制御手段とを有する携帯可能電子装置であって、
前記オペレーティングシステムプログラムは、
前記第3の記憶手段に記憶しているファイルへアクセスするための複数のチャネルを管理するチャネル管理機能と、
前記チャネル管理機能により管理される各チャネルが前記第3の記憶手段に記憶しているファイルをカレント状態とした順番をアクセス順番として管理するアクセス順番管理機能と、
前記チャネル管理機能により管理される第1のチャネルが前記第3の記憶手段に記憶しているファイルに対するカレント状態を解除した場合、前記第1のチャネルを当該ファイルに対するアクセス順番の管理対象から外し、前記第1のチャネルよりもアクセス順番が後であった全チャネルのアクセス順番を繰り上げるアクセス順番更新機能と、
前記第3の記憶手段に記憶しているファイルに対するチャネルのアクセス順番を示す情報を前記第2の記憶手段に記憶しているアプリケーションプログラムへ提供する提供機能と、を有し、
前記アプリケーションプログラムは、
前記オペレーティングシステムプログラムから提供される前記ファイルに対するチャネルのアクセス順番に基づいて、当該アプリケーションプログラムに割り当てられているチャネルでの前記ファイルに対するアクセスを制御するアクセス制御機能を有する、
ことを特徴とする携帯可能電子装置。
【請求項2】
前記アプリケーションプログラムのアクセス制御機能は、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番に応じて、前記ファイルに対するアクセスを制限する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
前記アプリケーションプログラムのアクセス制御機能は、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番が最上位である場合に、前記ファイルに対して制限無しでアクセスする、
ことを特徴とする前記請求項2に記載の携帯可能電子装置。
【請求項4】
前記アプリケーションプログラムのアクセス制御機能は、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番が最上位である場合には前記ファイルに対して制限無しでアクセスし、それ以外の場合には前記ファイルに対して一律の制限を加える、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項5】
前記アプリケーションプログラムのアクセス制御機能は、前記ファイルに対してファイルの状態を変更する処理を実行する場合、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番が最上位でなければ、前記ファイルへのアクセスを禁止とする、
ことを特徴とする前記請求項1乃至4の何れか1項に記載の携帯可能電子装置。
【請求項6】
前記アプリケーションプログラムのアクセス制御機能は、前記ファイルに対してファイルの状態を変更させない処理を実行する場合、前記ファイルに対するアクセス順番にかかわらず、前記ファイルへのアクセスを許可する、
ことを特徴とする前記請求項1乃至5の何れか1項に記載の携帯可能電子装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−146410(P2010−146410A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−324631(P2008−324631)
【出願日】平成20年12月19日(2008.12.19)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】