説明

携帯可能電子装置、携帯可能電子装置のオペレーティングシステムプログラム、および、携帯可能電子装置の制御方法

【課題】ICカードにおいて、不揮発性メモリに格納されているデータへの不正なアクセスすることを防止でき、各アプリケーションによる不揮発性メモリに対する複雑なアクセス制限の制御も不要とすることができる。
【解決手段】アプリケーションによる不揮発性メモリに対するアクセスを禁止し、カードOSが不揮発性メモリの全領域に対するアクセス制限の制御を行う。上記アプリケーションを実行するには、カードOSが不揮発性メモリの全領域に対するアクセスを禁止した状態でカードOSからアプリケーションに移行し、当該アプリケーションからカードOSに対しデータのアクセス要求が出た場合にはカードOSが前記不揮発性メモリへのアクセスを許可状態とする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば、制御素子、通信インターフェース、不揮発性メモリなどを有するICチップが内蔵されたICカードなどの携帯可能電子装置、携帯可能電子装置にのオペレーティングシステムプログラム、および、携帯可能電子装置の制御方法に関する。
【背景技術】
【0002】
一般に、携帯可能電子装置としてのICカードは、プラスチックなどで形成されたカード状の筐体内に制御素子及び各種メモリなどを有するICチップが埋め込まれている。このようなICカード内の不揮発性メモリには、種々のアプリケーションプログラム、データファイルなどが格納されている。このようなICカードでは、上記オペレーティングシステム(OS)上で動作する各アプリケーションプログラムが様々な機能を実現している。また、上記不揮発性メモリに記憶されるデータファイルには、個人情報などの重要な情報が含まれることが多い。このため、ICカードでは、データファイルへの不正なアクセスを防止するための様々なセキュリティ技術が適用される。たとえば、外部からの不正なアクセスを防止するために、各アプリケーションが動作する場合に、当該アプリケーション以外のアプリケーションによるデータへのアクセスを制限するものがある。
【0003】
しかしながら、上記のような従来のICカードでは、各アプリケーションがデータファイルへのアクセスを制限するため、不正なアプリケーションが実行されると、データファイルへの不正なアクセスが行われる可能性がある。さらに、各アプリケーションが不揮発性メモリへのアクセス制限を制御するようにすると、アプリケーションの切換ごとに特定の領域に対するアクセス制限の状態を設定する必要があり、ICカードにおける処理が煩雑になったり、不正なアクセス制限の制御が行われる可能性が高くなったりするという問題点もある。
【特許文献1】特開2003−36206号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
この発明の一形態は、上記のような問題点を解決するものであり、セキュリティ性を向上させることができる携帯可能電子装置、携帯可能電子装置のオペレーティングシステムプログラム、および、携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
この発明の一形態としての携帯可能電子装置は、プログラムを実行することにより種々の処理を実行するものにおいて、オペレーティングシステムプログラムを記憶する第1の記憶手段と、アプリケーションプログラムを記憶する第2の記憶手段と、前記第2の記憶手段に記憶されているアプリケーションプログラムで用いられるデータを記憶する第3の記憶手段と、前記アプリケーションプログラムが実行中である場合、前記第3の記憶手段の全領域に対するアクセスを禁止するアクセス制限手段と、前記アプリケーションプログラムを実行中に前記第3の記憶手段に記憶されているデータへのアクセス要求が発生した場合、実行中のプログラムを前記アプリケーションプログラムから前記オペレーティングシステムプログラムに切り換え、前記オペレーティングシステムプログラムを実行することにより前記第3の記憶手段に記憶されているデータにアクセスするデータアクセス手段とを有する。
【0006】
この発明の一形態としての携帯可能電子装置のオペレーティングシステムプログラムは、前記携帯可能電子装置にアプリケーションプログラムに依存しない機能を実現させるためのプログラムであって、前記携帯可能電子装置に、前記アプリケーションプログラムが実行中である場合、前記アプリケーションプログラムで用いられるデータが記憶されている不揮発性メモリの全領域に対するアクセスを禁止するアクセス制限機能と、前記アプリケーションプログラムを実行中に発生した前記不揮発性メモリに記憶されているデータへのアクセス要求に対して前記第3の記憶手段に記憶されている当該データにアクセスするデータアクセス機能とを実現させる。
【0007】
この発明の一形態としての携帯可能電子装置の制御方法は、オペレーティングシステムプログラムを記憶する第1の記憶手段と、アプリケーションプログラムを記憶する第2の記憶手段と、前記第2の記憶手段に記憶されているアプリケーションプログラムで用いられるデータを記憶する第3の記憶手段と、前記オペレーティングシステムプログラムあるいはアプリケーションプログラムを実行する制御手段とを有する携帯可能電子装置に用いられる制御方法であって、前記アプリケーションプログラムが実行中である場合、前記第3の記憶手段の全領域に対するアクセスを禁止するアクセス制限工程と、前記アプリケーションプログラムを実行中に前記第3の記憶手段に記憶されているデータへのアクセス要求が発生した場合、実行中のプログラムを前記アプリケーションプログラムから前記オペレーティングシステムプログラムに切り換え、前記オペレーティングシステムプログラムを実行することにより前記第3の記憶手段に記憶されているデータにアクセスするデータアクセス工程とを有する。
【発明の効果】
【0008】
この発明の一形態によれば、セキュリティ性を向上させることができる携帯可能電子装置、携帯可能電子装置のオペレーティングシステムプログラム、および、携帯可能電子装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【0009】
以下、この発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るICカード(携帯可能電子装置)2、および、ICカード2との通信機能を有する外部装置としてのICカード処理装置1の構成例を概略的に示すブロック図である。
まず、上記ICカード処理装置1の構成について説明する。
上記ICカード処理装置1は、図1に示すように、端末装置11、ディスプレイ12、キーボード13、テンキー14、及び、カードリーダライタ15などを有している。
【0010】
上記端末装置11は、ICカード処理装置1全体の動作を制御するものである。上記端末装置11は、CPU、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、上記端末装置11は、パーソナルコンピュータ(PC)により構成される。
上記端末装置11は、上記カードリーダライタ15によりICカード2へコマンドを送信する機能、ICカード2から受信したデータを基に種々の処理を行う機能などを有している。たとえば、上記端末装置11は、カードリーダライタ15を介してICカード2にデータの書き込みコマンドを送信することによりICカード2内の不揮発性メモリにデータを書き込む制御を行う。また、上記端末装置11は、ICカード2に読み取りコマンドを送信することによりICカード2からデータを読み出す制御を行う。
【0011】
上記ディスプレイ12は、上記端末装置11の制御により種々の情報を表示する表示装置である。上記キーボード13は、当該ICカード処理装置1の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記テンキー14は、使用者IDあるいはパスワードなど数字などの情報を入力する為の入力部として機能する。
【0012】
上記カードリーダライタ15は、上記ICカード2との通信を行うためのインターフェース装置である。上記カードリーダライタ15は、上記ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、上記ICカード2が接触型のICカードである場合、上記カードリーダライタ15は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、上記ICカード2が非接触型のICカードである場合、上記カードリーダライタ15は、ICカード2との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記カードリーダライタ15では、上記ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ15は、上記端末装置11による制御に基づいて上記ICカード2の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【0013】
次に、上記ICカード2のハードウエア構成例について説明する。
上記ICカード2は、上記ICカード処理装置1などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード2が接触型の通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触型のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理装置1からの動作電源及び動 作クロックの供給を受けて活性化される。
【0014】
また、上記ICカード2が非接触型の通信方式によりICカード処理装置1と接続される場合、つまり、上記ICカード2が非接触式のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0015】
図2は、本実施の形態に係るICカード2のハードウエア構成例を概略的に示すブロック図である。上記ICカード2は、本体Cを構成する筐体内にモジュールMが内蔵されている。上記モジュールMは、1つまたは複数のICチップCaと通信用の外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、ICカード2の本体C内に埋設されている。また、上記ICカード2のモジュールMは、図2に示すように、制御部21、通信インターフェース22、ROM23、RAM24、不揮発性メモリ25などを有してしている。
【0016】
上記制御部21は、当該ICカード2全体の制御を司るものである。上記制御部21は、上記ROM23あるいは上記不揮発性メモリ25に記憶されている制御プログラムや制御データに基づいて動作することにより、種々の機能を実現する。たとえば、上記制御部21は、後述するオペレーティングシステムのプログラムを実行することにより、当該ICカード2の基本的な動作制御を行う。また、上記制御部21は、後述するアプリケーションプログラムを実行することにより、当該ICカード2の運用形態に応じた種々の動作制御を行う。
【0017】
上記通信インターフェース22は、上記ICカード処理装置1のカードリーダライタ15との通信を行うためのインターフェースである。当該ICカード2が接触型のICカードとして実現される場合、上記通信インターフェース22は、上記ICカード処理装置1のカードリーダライタ15と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ICカード2が非接触型のICカードとして実現される場合、通信インターフェース22は、上記ICカード処理装置1のカードリーダライタ15との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【0018】
上記ROM23は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ROM23は、製造段階で制御プログラムや制御データなどが記憶された状態でICカード2内に組み込まれるものである。つまり、上記ROM23に記憶されている制御プログラムや制御データは、予め当該ICカード2の仕様に応じて組み込まれる。
上記RAM24は、ワーキングメモリとして機能する揮発性のメモリである。また、上記RAM24は、制御部21が処理中のデータなどを一時保管するバッファとしても機能する。例えば、上記RAM24は、上記通信インターフェース22を介してICカード処理装置1から受信したデータを一時保管するようになっている。
【0019】
上記不揮発性メモリ25は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)あるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ25には、当該ICカード2の運用用途に応じて制御プログラムや種々のデータが書込まれる。たとえば、上記不揮発性メモリ25では、プログラムファイルあるいはデータファイルなどが定義され、それらのファイルに制御プログラムや種々のデータが書き込まれる。
【0020】
次に、上記ICカード2のソフトウエア構成例について説明する。
図3は、上記ICカード2におけるソフトウエア構成を模式的に示す図である。
上記ICカード2におけるソフトウエアは、ハードウエア(H/W)層31、OS(オペレーティングシステム)層32、および、アプリケーション層33から構成される。図3に示すように、上記ICカード2では、上記アプリケーション層33が最上位に位置し、上記OS層32が上記H/W層31の上位に位置するような構造となっている。
【0021】
上記H/W層31は、上記制御部21、通信インターフェース22、ROM23、RAM24、不揮発性メモリ25などのハードウエアから構成される。上記H/W層31の各ハードウエアは、上記OS層32からの処理要求に応じて処理を実行したり、実行した処理の結果を上記OS層32に送ったりするものである。
【0022】
上記OS層32は、当該ICカードにおける基本的な制御を実行するためのソフトウエアとしてのカードOS41を有する。なお、上記OS層32は、環境設定モジュール、アプリケーションインタフェース群などのモジュールなどを有するようにしても良い。上記カードOS41としてのソフトウエアは、当該ICカードの基本的な動作を司るプログラムであり、上記H/W層31の各ハードウエアを制御したり、各ハードウエアからの処理結果などの情報を受信したりプログラムである。上記カードOS41としてのソフトウエアは、ICカード内における不揮発性のメモリに予め記憶されているものであり、たとえば、上記ROM23などに記憶される。
【0023】
また、上記カードOS41は、当該ICカード2の基本動作を実現するためのH/W層の各ハードウエアを制御する基本機能に加えて、アクセス制限機能41a、ファイル処理機能41bを有している。上記アクセス制限機能41aは、上記不揮発性メモリ25へのアクセスを制限する機能である。つまり、上記カードOS41は、上記アクセス制限機能41aにより上記不揮発性メモリ25へのアクセスを禁止したり、上記不揮発性メモリ25へのアクセスを許可したりする機能を実現している。上記ファイル処理機能41bは、上記不揮発性メモリ25に記憶されているデータとしてのファイルに対してアクセス(読出し、書込み、書換え等)を行う機能である。たとえば、上記カードOS41では、上記ファイル処理機能41bにより、上記アプリケーション層33の各アプリケーションからの依頼(要求)に応じて、特定のデータ(ファイル)に対する読出し、書込み、書換えなどの処理を行うようになっている。
【0024】
上記アプリケーション層33は、各種の処理を実現するためのソフトウエアとしての各種のアプリケーション(第1アプリケーション42a、第2アプリケーション42b、第3アプリケーション42c、…)から構成される。上記各アプリケーションとしてのソフトウエアは、当該ICカード2の運用形態に応じた各種の処理を実現するためのプログラムおよびデータなどにより構成される。上記アプリケーションとしてのソフトウエアは、予めICカード内の不揮発性のメモリに記憶されたり、適宜外部装置からダウンロードしてICカード内の不揮発性メモリ25に記憶されたりするものである。
すなわち、上記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における特定のアプリケーションへ供給する。
【0025】
たとえば、上記H/W層31で外部装置からアプリケーション選択コマンドを受信した場合、上記カードOS41は、上記アプリケーション層33から当該アプリケーション選択コマンドで指定されたアプリケーションをカレント状態とする。この状態において上記H/W層31で外部装置からコマンドを受信した場合、上記カードOS41は、当該コマンドをカレント状態のアプリケーションへ供給する。これにより、アプリケーション層33の各アプリケーションは、上記OS層32のカードOS41から供給されるコマンドに応じた処理を実行する。すなわち、上記カードOS41は、カレント状態のアプリケーション(以下、カレントアプリケーションとも称する)を指定し、カレントアプリケーションに対してコマンドを供給するようになっている。
【0026】
次に、上記不揮発性メモリ25に記憶されるデータの構成について説明する。
図4は、上記不揮発性メモリ25におけるデータの構成例を示す図である。
図4に示す構成例では、上記不揮発性メモリ25には、共通情報51、各アプリケーションのファイル情報52(第1アプリケーションのファイル情報52A、第2アプリケーションのファイル情報52B、…、53N、…)、各アプリケーションの各ファイル53(第1アプリケーションのファイル群53a(53a1、53a2、…)、第2アプリケーションのファイル群53b(53b1、53b2、…)、…、53n(53n1、53n2、…)、…)などが格納されている。
【0027】
上記共通情報51は、各アプリケーションに依存しない、当該ICカード2に必要な情報(当該ICカードの固有情報)が格納されている。
第1アプリケーションのファイル情報52Aは、当該第1アプリケーションで使用する各ファイル53a1、53a2、…を定義する情報である。上記ファイル情報52Aには、各ファイル53a1、53a2、…の不揮発性メモリ25におけるアドレス情報などが含まれる。同様に、他のアプリケーションのファイル情報53B、…、53N、…は、各アプリケーションで使用する各ファイル53b(53b1、53b2、…)、…、53n(53n1、53n2、…)、…を定義する情報である。上記ファイル情報52Bには、各ファイル53b(53b1、53b2、…)、…、53n(53n1、53n2、…)、…の不揮発性メモリ25におけるアドレス情報などが含まれる。
【0028】
次に、上記不揮発性メモリ25に対するアクセス制限について説明する。
図5は、上記不揮発性メモリ25に対するアクセス制限の遷移を示す図である。
図5に示すように、上記ICカード2では、上記カードOS41のプログラムを実行中にのみ不揮発性メモリ25の全領域に対するアクセスが許可され、アプリケーション42のプログラムを実行中には不揮発性メモリ25の全領域に対するアクセスが禁止されるようになっている。言い換えれば、上記ICカード2では、カードOS41のみが不揮発性メモリ25にアクセスすることが可能であり、アプリケーション42から直接的に不揮発性メモリ25にはアクセスできないようになっている。
【0029】
上記のように、上記カードOS41では、アクセス制限機能により不揮発性メモリ25に対するアクセス制限を制御する機能を有している。これに対して、各アプリケーション42は、上記不揮発性メモリ25に対するアクセス制限を制御する機能は有していない。つまり、各アプリケーション42は、上記カードOS41により不揮発性メモリ25へのアクセスが禁止された状態で動作するように制御される。このため、不正なアプリケーションが実行された場合であっても、上記ICカード2では、不正に不揮発性メモリ25にアクセスされることがなく、上記不揮発性メモリ25から不正にデータが読み出されたり、上記不揮発性メモリ25に不正にデータを書込まれたり改ざんされたりすることを防止できる。
【0030】
また、上記カードOS41では、アプリケーション42が実行される前に不揮発性メモリ25へのアクセスを禁止し、アプリケーション42から当該カードOS41に移行した後に不揮発性メモリ25へのアクセスを許可する。通常、各アプリケーションは、カードOS41を介して外部からのコマンドを受けて動作する。このため、上記カードOS41では、アプリケーション42に外部から受信したコマンドを転送する前に不揮発性メモリ25に対するアクセスを禁止した状態でアプリケーションに外部から受信したコマンドを転送する。これにより、各アプリケーションは、不揮発性メモリに対するアクセスが禁止された状態で、コマンドに対応する動作を実行するようになっている。
【0031】
また、各アプリケーションは、不揮発性メモリ25へのアクセスが禁止された状態で動作するため、不揮発性メモリ25へのアクセスが必要なコマンドを受けた場合、上記カードOS41に不揮発性メモリ25へのアクセスを依頼(要求)し、カードOS41から不揮発性メモリ25へのアクセス結果を取得する。たとえば、あるアプリケーションのファイルの読出しを要求するコマンドを受信した場合、当該アプリケーションは、カードOS41に対して指定するファイルの読出しを要求する。このような要求に対して、カードOS41は、指定されたファイルのデータを読み出し、読み出したデータを当該アプリケーションが利用可能なRAM24上の領域に格納する。これにより、上記アプリケーションでは、上記カードOS41が不揮発性メモリ25から読み出したデータを取得できる。すなわち、各アプリケーションは、直接的に不揮発性メモリ25にアクセスすることなく、上記カードOS41を介して不揮発性メモリ25にアクセスするようになっている。
【0032】
次に、上記ICカード2におけるコマンド処理について説明する。
図6は、カードOS41とアプリケーション(カレントアプリケーション)42とにより実行される処理の手順を説明するためのフローチャートである。
まず、上記H/W層31の通信インターフェース22などのハードウエアがICカード処理装置1からのコマンドを受信したものとする。すると、上記OS層32のカードOS41には、上記H/W層31で受信したコマンドが供給される。すなわち、上記ICカード処理装置1からのコマンドを受信すると(ステップS11)、上記カードOS41は、受信したコマンドがカードOS41で処理すべきコマンドであるか、アプリケーション42で処理すべきコマンドであるかを判断する(ステップS12)。たとえば、アプリケーションの選択コマンド等は、カードOS41で処理すべきコマンドであると判断され、アプリケーションの各ファイルへのアクセスを要求するコマンドは、アプリケーション42で処理すべきコマンドであると判断される。
【0033】
上記判断により受信したコマンドがカードOS41で処理すべきコマンドであると判断した場合(ステップS12、YES)、上記カードOS41は、当該コマンドに応じた処理を行い(ステップS13)、その処理結果を上記コマンドに対するレスポンスとして上記H/W層31のハードウエアにより上記ICカード処理装置1へ送信する(ステップS14)。たとえば、アプリケーションの選択コマンドをICカード処理装置1から受信した場合、上記カードOS41は、当該コマンドで指定されたアプリケーションをカレントアプリケーションとし、その処理結果をレスポンスとしてICカード処理装置1へ送信する。
【0034】
また、上記判断により受信したコマンドがアプリケーションで処理すべきコマンドであると判断した場合(ステップS12、NO)、上記カードOS41は、アクセス制限機能41aにより不揮発性メモリ25の全領域に対するアクセスを禁止状態とする(ステップS15)。これは、不揮発性メモリ25へのアクセスを禁止した状態でアプリケーションを動作させるための準備段階の処理である。上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とすると、上記カードOS41は、カレントアプリケーションに対して当該コマンドを供給する(ステップS16)。ただし、上記カードOS41およびアプリケーション42は、上記制御部21により実行されるプログラムである。従って、上記ステップS16およびステップS21の処理は、当該ICカード2におけるハードウエアの動作として捉えると、上記制御部21が実行するプログラムをカードOS41からカレントアプリケーション42のプログラムに移行する処理である。
【0035】
上記コマンドが供給されると(ステップS21)、カレントアプリケーション42は、当該コマンドを解析し、当該コマンドに応じた処理内容を判別する。当該コマンドに応じた処理内容を判別すると、上記アプリケーション42は、当該コマンドに応じた処理が上記不揮発性メモリ25のデータ(たとえば、ファイル)に対するアクセスを含む処理(以下、アクセス処理と称する)であるか否かを判断する(ステップS22)。
【0036】
上記判断により不揮発性メモリ25へのアクセス処理を含む処理であると判断した場合(ステップS22、YES)、上記カレントアプリケーション42は、当該コマンドで指定されたデータへのアクセスをカードOS41に対して依頼(要求)する(ステップS23)。たとえば、ファイルAの読出コマンドを受信した場合、上記カレントアプリケーション42は、上記カードOS41に対してファイルAの読出しを要求する。なお、上記ステップS23およびステップS25の処理は、当該ICカード2におけるハードウエアの動作として捉えると、上記制御部21が実行するプログラムをカレントアプリケーション42からカードOS41に移行する処理である。
【0037】
上記カレントアプリケーション42から上記不揮発性メモリ25のデータへのアクセスが要求された場合(ステップS25)、上記カードOS41は、上記アクセス制限機能41aにより不揮発性メモリ25の全領域に対するアクセスを許可状態とする(ステップS26)。この際、上記カードOS41は、上記カレントアプリケーション42からの要求が正当なものであるか否かを判断するようにしても良い。たとえば、上記カードOS41は、指定されたデータが当該カレントアプリケーションに対応づけられているデータ(たとえば、当該カレントアプリケーションのファイル)であるか否かにより当該アクセス要求が正当か否かを判断することが可能である。
【0038】
上記不揮発性メモリ25の全領域に対するアクセスを許可状態とすると、上記カードOS41は、上記カレントアプリケーション42から指定されたデータ(上記コマンドで指定されたデータ)にアクセスする処理を行う(ステップS27)。たとえば、上記不揮発性メモリ25に格納されているファイルAの読出しを要求された場合、上記カードOS41は、上記不揮発性メモリ25からファイルAを読出し、読み出したデータを上記カレントアプリケーション42が利用可能なRAM24上の領域に格納する。
【0039】
上記のようなカレントアプリケーション42から要求されたアクセス処理が完了すると、上記カードOS41は、上記アクセス制限機能41aにより上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とし(ステップS28)、上記アクセス処理の結果を上記カレントアプリケーション42に通知する(ステップS29)。なお、上記ステップS29およびステップS31の処理は、当該ICカード2におけるハードウエアの動作として捉えると、上記制御部21が実行するプログラムをカードOS41からカレントアプリケーション42に移行する処理である。
【0040】
上記カードOS41からアクセス処理の結果を取得すると(ステップS31)、上記カレントアプリケーション42は、上記アクセス処理の処理結果に基づく当該コマンドの処理を実行し(ステップS32)、当該コマンドに対するレスポンスデータとしてのコマンドに対応する処理の完了通知をカードOS41へ供給する(ステップS33)。なお、上記ステップS33およびステップS35の処理は、当該ICカード2におけるハードウエアの動作として捉えると、上記制御部21が実行するプログラムをカレントアプリケーション42からカードOS41に移行する処理である。
【0041】
上記カレントアプリケーション42から完了通知を受信すると(ステップS35)、上記カードOS41は、上記不揮発性メモリ25の全領域に対するアクセスを許可状態とし(ステップS36)、上記カレントアプリケーション42から供給された完了通知を当該コマンドに対するレスポンスとして上記H/W層のハードウエアによりICカード処理装置1へ送信する(ステップS37)。
【0042】
以上のように、上記ICカード2では、上記制御部21により実行されるカードOS41とアプリケーション42とが連携してICカード処理装置1からのコマンドを処理する。また、ICカード処理装置1からのコマンドが不揮発性メモリ25のデータにアクセスする処理を含む処理を要求するものである場合、上記ICカード2では、アプリケーション42から直接不揮発性メモリ25にアクセスすることを禁止し、カードOS41が不揮発性メモリ25にアクセスするようになっている。これにより、不正なアプリケーション42が不揮発性メモリ25に格納されているデータに不正にアクセスすることを防止できるとともに、アプリケーションによる不揮発性メモリ25に対する複雑なアクセス制限の制御も不要となる。
【0043】
次に、上記のようなICカード2におけるコマンド処理の具体例について説明する。
図7及び図8は、順次受信する複数のコマンドに対する処理手順の具体例を説明するためのフローチャートである。図7及び図8では、第1アプリケーションAのアプリケーションデータであるファイルa1と第2アプリケーションBのアプリケーションデータであるファイルb1とを読み出す場合の動作例を示している。つまり、図7及び図8では、第1アプリケーションの選択コマンド、ファイルa1の読出コマンド、第2アプリケーションの選択コマンド、ファイルb1の読出コマンドを順に受信した場合の動作例を示している。
【0044】
まず、上記ICカード処理装置1では、上記ICカード2に対して、第1アプリケーション42Aの選択(第1アプリケーションをカレント状態とすること)を要求する第1アプリケーションの選択コマンドを送信する。これに対して、ICカード2では、上記H/W層31の通信インターフェース22などのハードウエアがICカード処理装置1からの第1アプリケーションの選択コマンドを受信する。すると、上記ICカード2のOS層32のカードOS41は、上記H/W層31から上記第1アプリケーションの選択コマンドを取得する(ステップS41)。上記第1アプリケーションの選択コマンドを取得すると、上記カードOS41は、上記第1アプリケーション42Aをカレント状態のアプリケーション(カレントアプリケーション)に設定する処理を実行する(ステップS42)。上記カレントアプリケーションを第1アプリケーション42Aに設定すると、上記カードOS41は、上記第1アプリケーションの選択コマンドに対するレスポンスとして、第1アプリケーション42Aをカレント状態とした旨をICカード処理装置1へ送信する(ステップS43)。
【0045】
上記第1アプリケーションの選択コマンドに対するレスポンスを受信したICカード処理装置1では、次のコマンドとして第1アプリケーション42Aのアプリケーションデータとしてのファイルa1(53a1)の読出しを要求する読出コマンドをICカード2へ送信する。これに対して、上記ICカード2では、上記H/W層31の通信インターフェース22などのハードウエアがICカード処理装置1からのファイルa1の読出コマンドを受信する(ステップS51)。
【0046】
上記H/W層31からファイルa1の読出コマンドを取得すると、上記OS層32のカードOS41は、当該コマンドを第1アプリケーション(カレントアプリケーション)で処理すべきコマンドであると判断する。すると、上記カードOS41は、アクセス制限機能41aにより不揮発性メモリ25の全領域に対するアクセスを禁止状態とする(ステップS52)。
【0047】
上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とすると、上記カードOS41は、当該読出コマンドをカレントアプリケーションとしての第1アプリケーション42Aへ供給する(ステップS53)。これにより、上記第1アプリケーション42Aでは、上記カードOS41からファイルa1の読出コマンドを取得する(ステップS54)。言い換えると、上記ファイルa1の読出コマンドを受信した場合、上記ICカード2の制御部21は、上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とした状態において、実行中のプログラムを上記カードOS41から第1アプリケーション42Aへ移行させる。
【0048】
上記第1アプリケーション42Aでは、取得したコマンドに含まれるパラメータ等により、当該コマンドに応じて実行すべき処理内容を解析する。ここでは、上記第1アプリケーション42Aは、当該コマンドがファイルa1の読み出しを要求するコマンドであることを特定する。この時点(第1アプリケーションが動作中)では、上記ファイルa1が格納されている不揮発性メモリ25の全領域がアクセス禁止となっており、上記第1アプリケーション42が直接的にファイルa1(不揮発性メモリ25)にアクセスできない。このため、上記第1アプリケーション42Aは、当該ファイルa1の読出しをカードOS41に要求(依頼)する(ステップS55)。言い換えると、上記ファイルa1の読出処理のために、上記ICカード2の制御部21は、実行中のプログラムを第1アプリケーション42Aから上記カードOS41へ移行させるようになっている。
【0049】
上記ファイルa1の読出要求を受けると(ステップS56)、上記カードOS41は、上記アクセス制限機能41aにより上記不揮発性メモリ25の全領域に対するアクセス禁止状態と解除し、上記不揮発性メモリ25の全領域に対するアクセスを許可状態とする(ステップS57)。上記不揮発性メモリ25へのアクセスを許可状態とすると、上記カードOS41は、上記不揮発性メモリ25から上記ファイルa1を読み出す読出処理を行う(ステップS58)。この読出処理において、上記カードOS41は、上記ファイル処理機能41bにより上記不揮発性メモリ25に格納されているファイルa1のデータを上記第1アプリケーション42Aが利用可能なRAM(ワーキングメモリ)24の領域に格納する。
【0050】
上記ファイルa1の読出し処理が終了すると、上記カードOS41は、再び、上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とし(ステップS59)、上記ファイルa1の読出処理の結果を第1アプリケーション42Aに供給する(ステップS60)。言い換えると、ファイルa1の読出しが完了すると、上記ICカード2の制御部21は、不揮発性メモリ25へのアクセスを禁止状態として、実行中のプログラムを上記カードOS41から第1アプリケーション42Aへ移行させる。
【0051】
上記ファイルa1の読出処理の結果を取得すると(ステップS61)、上記第1アプリケーション42Aは、RAM24上に格納されたファイルa1のデータなどの読出結果に基づいて上記読出コマンドに対するレスポンスデータを生成し、生成したレスポンスデータをコマンド処理の完了通知としてカードOS41へ供給する(ステップS62)。これは、上記ICカード2の制御部21が実行中のプログラムを第1アプリケーション42Aから上記カードOS41へ移行させる処理である。
【0052】
上記第1アプリケーション42Aから上記ファイルa1の読出コマンドに対する完了通知を取得すると(ステップS63)、上記カードOS41では、上記不揮発性メモリ25へのアクセス禁止状態を解除し(ステップS64)、第1アプリケーション42Aからの完了通知としてのレスポンスデータをH/W層31のハードウエアによりICカード処理装置1へ送信する処理を行う(ステップS65)。
【0053】
なお、上記不揮発性メモリ25へのアクセス禁止状態を解除するタイミングは、上記第1アプリケーションから上記読出コマンドに対する完了通知を取得する後であれば良い。たとえば、上記不揮発性メモリ25へのアクセス禁止状態を解除するタイミングは、上記第1アプリケーション42Aから上記ファイルa1の読出コマンドに対する完了通知を取得した時点であっても良いし、上記ファイルa1の読出コマンドに対するレスポンスデータをICカード処理装置1へ送信した後であっても良い。
【0054】
次に、上記ファイルa1の読出コマンドに対するレスポンスを受信したICカード処理装置1では、第2アプリケーションのファイルb1を読み出すために、上記ICカード2に対して、第2アプリケーション42Bの選択(第2アプリケーションをカレント状態とすること)を要求する第2アプリケーションの選択コマンドを送信する。これに対して、ICカード2では、上記H/W層31で第2アプリケーションの選択コマンドを受信し(ステップS71)、上記OS層32のカードOS41が上記第2アプリケーションの選択コマンドを取得する。上記第2アプリケーションの選択コマンドを取得した上記カードOS41は、上記第2アプリケーション42Bをカレント状態のアプリケーション(カレントアプリケーション)に設定する処理を実行する(ステップS72)。上記カレントアプリケーションを第2アプリケーション42Bに設定すると、上記カードOS41は、上記第2アプリケーションの選択コマンドに対するレスポンスとして、第2アプリケーション42Bをカレント状態とした旨をICカード処理装置1へ送信する(ステップS73)。
【0055】
上記第2アプリケーションの選択コマンドに対するレスポンスを受信したICカード処理装置1では、次のコマンドとして第2アプリケーション42Bのファイルb1(53b1)の読出しを要求する読出コマンドをICカード2へ送信する。これに対して、上記ICカード2では、上記H/W層31でファイルb1の読出コマンドを受信し(ステップS81)、上記OS層32のカードOS41がファイルb1の読出コマンドを取得する。すると、上記OS層32のカードOS41は、当該読出コマンドを第2アプリケーション(カレントアプリケーション)で処理すべきコマンドであると判断し、アクセス制限機能41aにより不揮発性メモリ25の全領域に対するアクセスを禁止状態とする(ステップS82)。
【0056】
上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とすると、上記カードOS41は、当該読出コマンドをカレントアプリケーションとしての第2アプリケーション42Bへ供給する(ステップS83)。これにより、上記第2アプリケーション42Bでは、上記カードOS41からファイルb1の読出コマンドを取得する(ステップS84)。言い換えると、上記ファイルb1の読出コマンドを受信した場合、上記ICカード2の制御部21は、上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とした状態において、実行中のプログラムを上記カードOS41から第2アプリケーション42Bへ移行させる。
【0057】
上記第2アプリケーション42Bでは、取得したコマンドに含まれるパラメータ等により、当該コマンドに応じて実行すべき処理内容を解析する。ここでは、上記第2アプリケーション42Bは、当該コマンドがファイルb1の読み出しを要求するコマンドであることを特定する。この時点(第2アプリケーションが動作中)では、上記ファイルb1が格納されている不揮発性メモリ25の全領域がアクセス禁止となっており、上記第2アプリケーション42Bが直接的にファイルb1(不揮発性メモリ25)にアクセスできない。このため、上記第2アプリケーション42bは、当該ファイルb1の読出しをカードOS41に要求(依頼)する(ステップS85)。言い換えると、上記ファイルb1の読出処理のために、上記ICカード2の制御部21は、実行中のプログラムを第2アプリケーション42Bから上記カードOS41へ移行させるようになっている。
【0058】
上記ファイルb1の読出要求を受けると(ステップS86)、上記カードOS41は、上記アクセス制限機能41aにより上記不揮発性メモリ25の全領域に対するアクセス禁止状態と解除し、上記不揮発性メモリ25の全領域に対するアクセスを許可状態とする(ステップS87)。上記不揮発性メモリ25へのアクセスを許可状態とすると、上記カードOS41は、上記不揮発性メモリ25から上記ファイルb1を読み出す読出処理を行う(ステップS88)。この読出処理において、上記カードOS41は、上記ファイル処理機能41bにより上記不揮発性メモリ25に格納されているファイルb1のデータを上記第2アプリケーション42Bが利用可能なRAM(ワーキングメモリ)24の領域に格納する。
【0059】
上記ファイルb1の読出し処理が終了すると、上記カードOS41は、再び、上記不揮発性メモリ25の全領域に対するアクセスを禁止状態とし(ステップS89)、上記ファイルb1の読出処理の結果を第2アプリケーション42Bに供給する(ステップS90)。言い換えると、ファイルb1の読出しが完了すると、上記ICカード2の制御部21は、不揮発性メモリ25へのアクセスを禁止状態として、実行中のプログラムを上記カードOS41から第2アプリケーション42Bへ移行させる。
【0060】
上記ファイルb1の読出処理の結果を取得すると(ステップS91)、上記第2アプリケーション42Bは、RAM24上に格納されたファイルb1のデータ等の読出結果に基づいて上記ファイルb1の読出コマンドに対するレスポンスデータを生成し、生成したレスポンスデータをコマンド処理の完了通知としてカードOS41へ供給する(ステップS92)。これは、上記ICカード2の制御部21が実行中のプログラムを第2アプリケーション42Bから上記カードOS41へ移行させる処理である。
【0061】
上記第2アプリケーション42Bから上記ファイルb1の読出コマンドに対する完了通知を取得すると(ステップS93)、上記カードOS41では、上記不揮発性メモリ25へのアクセス禁止状態を解除し(ステップS94)、第2アプリケーション42Bからの完了通知としてのレスポンスデータをH/W層31のハードウエアによりICカード処理装置1へ送信する処理を行う(ステップS95)。
【0062】
上記のように、不揮発性メモリ25に格納されているファイル43の読出しを要求するコマンドがICカード2に与えられた場合、上記ICカード2の制御部21により実行されているカードOS41は、アクセス制限機能により不揮発性メモリ25へのアクセスを禁止する。この状態において、当該アプリケーション42は、当該コマンドを解析し、当該コマンドで指定されているファイル43の読み出しをカードOS41に要求する。この要求に応じて、上記カードOS41は、前記不揮発性メモリ25へのアクセスを許可状態とし、上記ファイル43の読出しを行い、その読み出したデータを上記アプリケーション42が利用可能なRAM24上の記憶領域に格納する。この結果として、上記アプリケーション42は、上記RAM24上の記憶領域に格納されたファイル43の読出し結果を取得する。
【0063】
上記のような処理により、不正なアプリケーション42が不揮発性メモリ25に格納されているデータに不正に読み出すことを防止でき、アプリケーションによる不揮発性メモリ25に対する複雑なアクセス制限の制御も不要となる。
【0064】
なお、この発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0065】
【図1】ICカードと、ICカードとの通信機能を有するICカード処理装置の構成例を概略的に示すブロック図である。
【図2】ICカードのハードウエア構成例を概略的に示すブロック図である。
【図3】ICカードにおけるソフトウエア構成を模式的に示す図である。
【図4】不揮発性メモリにおけるデータの構成例を示す図である。
【図5】不揮発性メモリに対するアクセス制限の遷移を示す図である。
【図6】カードOSとアプリケーション(カレントアプリケーション)とにより実行される処理の手順を説明するためのフローチャートである。
【図7】順次受信する複数のコマンドに対する処理手順の具体例を説明するためのフローチャートである。
【図8】順次受信する複数のコマンドに対する処理手順の具体例を説明するためのフローチャートである。
【符号の説明】
【0066】
C…本体、M…モジュール、Ca…ICチップ、1…ICカード処理装置、2…ICカード、11…端末装置、12…ディスプレイ、13…キーボード、14…テンキー、15…カードリーダライタ、21…制御部、22…通信インターフェース、23…ROM、24…RAM、25…不揮発性メモリ、31…ハードウエア(H/W)層、32…OS層、33…アプリケーション層、41…カードOS、41a…アクセス制限機能、41b…ファイル処理機能、42(42A、42B、…)…アプリケーション、51…共通情報、52(52A、52B、…)…ファイル情報、53(53a1、53a2、…、53b1、53b2、…)…ファイル

【特許請求の範囲】
【請求項1】
プログラムを実行することにより種々の処理を実行する携帯可能電子装置において、
オペレーティングシステムプログラムを記憶する第1の記憶手段と、
アプリケーションプログラムを記憶する第2の記憶手段と、
前記第2の記憶手段に記憶されているアプリケーションプログラムで用いられるデータを記憶する第3の記憶手段と、
前記アプリケーションプログラムが実行中である場合、前記第3の記憶手段の全領域に対するアクセスを禁止するアクセス制限手段と、
前記アプリケーションプログラムを実行中に前記第3の記憶手段に記憶されているデータへのアクセス要求が発生した場合、実行中のプログラムを前記アプリケーションプログラムから前記オペレーティングシステムプログラムに切り換え、前記オペレーティングシステムプログラムを実行することにより前記第3の記憶手段に記憶されているデータにアクセスするデータアクセス手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
前記アクセス制限手段は、実行中のプログラムが前記オペレーティングシステムプログラムからアプリケーションプログラムに移行する前に、前記第3の記憶手段の全領域に対するアクセスを禁止する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
前記アクセス制限手段は、実行中のプログラムが前記アプリケーションプログラムからオペレーティングシステムプログラムへ移行した後に、前記第3の記憶手段の全領域に対するアクセスを許可する、
ことを特徴とする前記請求項2に記載の携帯可能電子装置。
【請求項4】
前記アプリケーションプログラムを実行中にアクセス可能な記憶領域を有する第4の記憶手段を有し、
前記データアクセス手段は、前記オペレーティングシステムプログラムを実行することにより前記第3の記憶手段に記憶されているデータにアクセスした結果を前記第4の記憶手段における前記アプリケーションを実行中にアクセス可能な記憶領域に格納する、
ことを特徴とする前記請求項1乃至3に記載の携帯可能電子装置。
【請求項5】
前記各手段を具備するモジュールと、
前記モジュールが内蔵された本体とを
を有することを特徴とする前記請求項1乃至4に記載の携帯可能電子装置。
【請求項6】
携帯可能電子装置にアプリケーションプログラムに依存しない機能を実現させるためのオペレーティングシステムプログラムであって、
前記携帯可能電子装置に、
前記アプリケーションプログラムが実行中である場合、前記アプリケーションプログラムで用いられるデータが記憶されている不揮発性メモリの全領域に対するアクセスを禁止するアクセス制限機能と、
前記アプリケーションプログラムを実行中に発生した前記不揮発性メモリに記憶されているデータへのアクセス要求に対して前記第3の記憶手段に記憶されている当該データにアクセスするデータアクセス機能と、
を実現させるための携帯可能電子装置のオペレーティングシステムプログラム。
【請求項7】
前記アクセス制限機能は、前記携帯可能電子装置が実行中のプログラムを前記オペレーティングシステムプログラムからアプリケーションプログラムに移行する前に、前記不揮発性メモリの全領域に対するアクセスを禁止する、
ことを特徴とする前記請求項6に記載の携帯可能電子装置のオペレーティングシステムプログラム。
【請求項8】
前記アクセス制限機能は、前記携帯可能電子装置が実行中のプログラムを前記アプリケーションプログラムからオペレーティングシステムプログラムへ移行した後に、前記不揮発性メモリの全領域に対するアクセスを許可する、
ことを特徴とする前記請求項7に記載の携帯可能電子装置のオペレーティングシステムプログラム。
【請求項9】
前記アプリケーションプログラムを実行中にアクセス可能な記憶領域を有する第4の記憶手段を有し、
前記データアクセス機能は、前記オペレーティングシステムプログラムを実行することにより前記不揮発性メモリに記憶されているデータにアクセスした結果を前記アプリケーションを実行中にアクセス可能な記憶手段に格納する、
ことを特徴とする前記請求項6乃至8に記載の携帯可能電子装置のオペレーティングシステムプログラム。
【請求項10】
オペレーティングシステムプログラムを記憶する第1の記憶手段と、アプリケーションプログラムを記憶する第2の記憶手段と、前記第2の記憶手段に記憶されているアプリケーションプログラムで用いられるデータを記憶する第3の記憶手段と、前記オペレーティングシステムプログラムあるいはアプリケーションプログラムを実行する制御手段とを有する携帯可能電子装置に用いられる制御方法であって、
前記アプリケーションプログラムが実行中である場合、前記第3の記憶手段の全領域に対するアクセスを禁止するアクセス制限工程と、
前記アプリケーションプログラムを実行中に前記第3の記憶手段に記憶されているデータへのアクセス要求が発生した場合、実行中のプログラムを前記アプリケーションプログラムから前記オペレーティングシステムプログラムに切り換え、前記オペレーティングシステムプログラムを実行することにより前記第3の記憶手段に記憶されているデータにアクセスするデータアクセス工程と、
ことを特徴とする携帯可能電子装置の制御方法。
【請求項11】
前記アクセス制限工程は、前記制御部が実行中のプログラムを前記オペレーティングシステムプログラムからアプリケーションプログラムに移行する前に、前記第3の記憶手段の全領域に対するアクセスを禁止する、
ことを特徴とする前記請求項10に記載の携帯可能電子装置の制御方法。
【請求項12】
前記アクセス制限工程は、前記制御部が実行中のプログラムを前記アプリケーションプログラムからオペレーティングシステムプログラムへ移行した後に、前記第3の記憶手段の全領域に対するアクセスを許可する、
ことを特徴とする前記請求項11に記載の携帯可能電子装置の制御方法。
【請求項13】
前記データアクセス工程は、さらに、前記オペレーティングシステムプログラムを実行することにより前記第3の記憶手段に記憶されているデータにアクセスした結果を第4の記憶手段における前記アプリケーションを実行中にアクセス可能な記憶領域に格納する、
ことを特徴とする前記請求項10乃至12に記載の携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−15650(P2009−15650A)
【公開日】平成21年1月22日(2009.1.22)
【国際特許分類】
【出願番号】特願2007−177571(P2007−177571)
【出願日】平成19年7月5日(2007.7.5)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】