JP4742469B2 - 複数のosを用いるicカード、icカード処理装置および処理方法 - Google Patents
複数のosを用いるicカード、icカード処理装置および処理方法 Download PDFInfo
- Publication number
- JP4742469B2 JP4742469B2 JP2001266292A JP2001266292A JP4742469B2 JP 4742469 B2 JP4742469 B2 JP 4742469B2 JP 2001266292 A JP2001266292 A JP 2001266292A JP 2001266292 A JP2001266292 A JP 2001266292A JP 4742469 B2 JP4742469 B2 JP 4742469B2
- Authority
- JP
- Japan
- Prior art keywords
- card
- command
- external device
- application
- loader
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims description 6
- 230000006870 function Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は複数のOSを搭載したICカード、それを用いるICカード処理装置および処理方法に関する。
【0002】
【従来の技術】
集積回路技術などの進展につれて、CPUとメモリを内蔵したICカードが実用されつつ、注目を集めている。高度なセキュリティ機能と多機能化が可能のため、種々の分野での使用が期待されている。
【0003】
最近のICカードのICチップには、一般的に、CPU、メモリ、及び、暗号処理専用回路などが含まれている。
そのメモリは通常、読み出し専用メモリ(ROM)、書き換え可能な不揮発性メモリ、たとえば、EEPROM、或は、FRAM、及び、ランダム・アクセス・メモリ(RAM)を含む。
【0004】
これまでは、特定の機能を実現する専用の機械語プログラムをROMに記憶してICカードに収容する場合がほとんどであった。例えば、ROMには、ICカードのオペレーティング・システム(OS)、各種OSレベルのプログラム、および、サービスを提供する応用プログラムを格納し、EEPROMにユーザの個人データを収容する。
最近では、マルチアプリケーション型カードOSと言われるインタプリタを常駐させた構成のICカードが出現している。このようなインタプリタを搭載したICカードにおいては、プログラム言語で記述されたプログラムを書き換え可能な不揮発性メモリに記録することにより、カードにOSを搭載後、さらに、カード発行後でも応用プログラムを追加することができる、また、不必要なプログラムを削除することもできる。
代表的なマルチアプリケーションOSとしては、MULTOS、JavaCard、Windows for SmartCardがある。
この種のICカードにおいては、OSカーネルがROMに格納され、各種OSレベルのプログラム、サービスを提供する応用プログラム、およびユーザの個人データなどが書き換え可能な不揮発性メモリに収容する事が多い。OSレベルのプログラムをROMに収容することもある。
【0005】
今までは、OSの処理能力やICカード内蔵メモリの容量等の理由で、マルチアプリケーションOSは、1種類のプログラム言語に対応するインタプリタしか持っていない。従って、所定のマルチアプリケーションOSを搭載したICカードは、そのOSに属するプログラム言語で作成されたアプロケーションプログラムしか使えない。例えば、MULTOSのICカードに搭載したアプリケーションはMEL言語(MULTOS Executable Language)で記述され、JavaCardではJava言語を使用し、また、Windows for SmartCardではVirtual Basic言語で書かれたアプリケーションしかサポートしない。
【0006】
図1は、マルチアプリケーションOSを用いるICカードおよびICカード処理装置の例示的な構成を示すブロック図である。
ICカード処理装置1は、ICカード10、端末装置20、例えば、リード・ライト装置、および、ホストコンピュータ30を有する。
端末装置20がICカード10を管理するホストコンピュータ30の端末装置であり、ホストコンピュータ30からの指示に基づいて、ICカード10に対して、様々な処理を行う。
【0007】
ICカード10は、図1に示すように、CPU11、インタフェース(I/F)12、暗号処理器13、ランダム・アクセス・メモリ(RAM)14、読み出し専用メモリ(ROM)15、および書き換え可能な不揮発性メモリEEPROM16を有する。各構成成分の機能は後述の本発明の実施の形態の記述において詳細に説明する。
【0008】
このようなハードウエアを有するICカードには、図2に示した構成のソフトウエアが搭載されている。
図2は、従来の1つのOSを収容したマルチアプリケーションOSのICカード(以降、シングルOSICカードと称する)におけるソフトウエア構成の一例を示す概略図である。
【0009】
この階層構造の中核はROM15に記憶されるOSのカーネル部21である。OSカーネル部21は、ICカードのハードウエア資源を管理し、上層のプログラムからICカードのハードウエアをアクセスするためのインタフェースを提供する。また、OSカーネル部21は上層のプログラムの動作を制御する。
【0010】
図2において、OSカーネル部21の上層には、OSレベルのソフトウエアである処理モジュールが配置されている。処理モジュールは、OSカーネルの多様な機能を上層の応用プログラムが便利に利用できるようにする。これら処理モジュールはEEPROM16、又は、ROM15に記録されている。ここでは、EEPROM16に記録されていることを例にして説明する。
【0011】
このような処理モジュールとしては、例えば、プログラム言語を処理するインタプリタ、プログラムの追加、または、更新するプログラムローダ、アプリケーション・プログラミング・インタフェース、暗号処理ライブラリなどがある。説明の便宜上、ここでは、インタプリタ以外の様々な処理モジュールをモジュール23とする。
OSカーネル21、インタプリタ22、および他の各種OSレベルの処理モジュール23を合わせて、ICカードのOSとなる。
処理モジュール23の上層には具体的なサービスを提供する様々なアプリケーションプログラムが配置されている。ここでは、アプリケーション1とアプリケーション2が配置されているとする。
【0012】
図3は図2に示されたソフトウエア構成を有するICカードにおいて、外部から受信したコマンドを処理する手順を示すフローチャートである。ここでは、ICカードにあるアプリケーション1を実行するコマンド、及びアプリケーションをICカードにダウンロードするコマンドの処理を例として説明する。
ホスト・コンピュ−タ30よりコマンドが送信され、I/F12がそれを受信すると、該コマンドはOSにより解釈され、その内容が確認される(ステップ31)。
【0013】
そのコマンドがICカードにすでに存在するアプリケーション1を実行するコマンドである場合は、コマンドに含まれているアプリケーション1のアドレス情報を用いて、ファイルマネージャ処理モジュールによって、ICカードのEEPROM16内にアプリケーション1を検索する(ステップ32)。見つけた場合は、アプリケーション1が実行される(ステップ33)、即ち、アプリケーション1がRAM14に読みこまれて、または、EEPROM16において直接に参照されて、CPU11においてアプリケーション1に記述された手続きを逐次実行する。
【0014】
そのコマンドがICカードにアプリケーション2をダウンロードするコマンドである場合は、OSのプログラムローダ処理モジュールは動作され、ロードコマンドに続いて送信される該アプリケーション2の構成成分を認証処理しながらEEPROM16の指定された領域に書き込む(ステップ34)。
【0015】
また、認証処理の結果、そのコマンドは搭載されているOSに属するコマンドではない場合は、そのコマンドの処理が拒否される(ステップ35)。
【0016】
【発明が解決しようとする課題】
以上に示すように、1枚ICカードに1つのOSしか搭載していない場合は、ICカードの用途が制限されて、カード所有者は該ICカードのOSに対応するプログラム言語で記述されたアプリケーションしか使えない。該OSサポートしないプログラム言語で作成されたアプリケーションを利用したい場合は、それらのアプリケ−ションが動作可能なOSを搭載したICカードを複数保持し、必要に応じて使い分ける必要がある。例えば、MULTOSのICカードに搭載可能なアプリケーションはJavaCardやWindows for SmartCardを搭載したICカードで利用できないので、3種類のカードを持つことになる。
さらに、新しいアプリケーションを利用したい場合は、ICカードOSの制御で、ICカードに該アプリケーションをロードする必要があるので、アプリケーションがどの言語で記述されているかを知らないと、そのアプリケーションのロード操作はできず、カード所有者はその異なる言語のアプリケーションを自分所有のICカードに搭載することができない。
ICカードは迅速に普及され、種々の目的に使用されて、異なる言語で書かれたアプリケーションが大量に出現することが予想される。従って、シングルOSのICカードは利便性を追求する上で問題になる。
【0017】
もし複数のOSを一枚のカードに搭載できれば、異なるプログラム言語のインタプリタを1枚のICカードに収納し、異なるプログラム言語で作成された多くのアプリケーションを1枚のカードで利用することが可能になる。
複数のOSを一枚のカードに搭載するには、まずは大容量メモリが必要である。現在ICカードに良く使われるROMの容量は32〜64kバイト程度であり、EEPROMは、16kバイト程度、または、32kバイト程度が主流である。一方、OSのカーネルのサイズは約数kバイト〜20kバイト程度であり、典型的なアプリケーションのサイズも数kバイト程度である。従って、現時点では、1枚のICカードに複数のOSおよび複数のアプリケーションを同時に搭載することはメモリ容量の制限で厳しい。
だが、ICカード内蔵メモリの大容量化が進化しつつ、近い将来にICカードメモリの容量はより大きくなり、より大きなサイズのソフトウエアをICカードに格納できると予想される。たとえば、64kバイトのEEPROMは間もなく実用化される可能性がある。従って、複数のOSを一枚のカードに搭載するには、メモリ容量の制限は問題にならない可能性がある。
【0018】
しかし、複数のOSを一枚のICカードに搭載する場合は、プログラミング技術上は難しさがある。例えば、図3のシングルOSのICカードのソフトウエアを基づいて、複数のOSのソフトウエアをどのような構造でICカードのROM15とEEPROM16に配置し、動作させるのか。また、ICカードは、例えば、コマンドを受信した後、どのように複数のOSから利用すべきOSを識別し、円滑にOSを切り替えるのか、また、どのようにアプリケーションの属するOSを気にせずに、カード所有者の指示だけに従い、希望のアプリケーションプログラムをロード、追加、または、実行等の処理を行うのか、などの問題がある。
【0019】
本発明は、このような問題点に鑑みてなされたものであり、本発明の目的は、複数のICカードOSを搭載したICカード、その複数のOSを搭載したICカードを用いるICカード処理装置および処理方法を提供することにある。
【0020】
【課題を解決するための手段】
上記目的を達成するために、本発明に係わるICカードは、CPUと、メモリと、外部装置と入出力を行うインタフェースとを有するICカードであって、該メモリには、少なくとも、該外部装置との入出力を制御するオペレーティング・システムの基本部(OS基本部)と、前記OS基本部を参照しながら、ICカードの所定の機能を提供するアプリケーション・プログラムを実行させ管理する複数のICカードOSと、前記インタフェースを介して外部装置から入力されたコマンドを解読し、当該コマンドの実行可能なICカードOSを識別して起動するOSローダとが記憶され、前記OS基本部の制御の下で前記インタフェースを介して外部装置からのコマンドを受信し、前記OSローダは当該コマンドを解読し、当該コマンドの実行可能なICカードOSを識別して起動し、当該ICカードOSによって当該コマンドを実行させる。
【0021】
また、好ましくは、前記外部装置から入力されたコマンドには、当該コマンドの実行可能なICカードOSの情報が含まれている。
【0022】
また、上記目的を達成するために、本発明に係わるICカード処理装置は、前記ICカードはCPUと、メモリと、外部装置と入出力を行うインタフェースとを有し、前記メモリには、少なくとも、前記外部装置との入出力を制御するオペレーティング・システムの基本部(OS基本部)と、前記OS基本部を参照しながら、ICカード所定の機能を提供するアプリケーション・プログラムを実行させ管理する複数のICカードOSと、前記インタフェースを介して外部装置から入力されたコマンドを解読し、当該コマンドの実行可能なICカードOSを識別して起動するOSローダとが記憶され、前記外部装置は属するICカードOSの情報を含むコマンドを前記ICカードへ送信し、当該ICカードは前記OS基本部の制御の下で前記インタフェースを介して当該コマンドを受信し、前記OSローダは当該コマンドに含まれているICカードOSの情報を解読し、該ICカードOSを起動し、該ICカードOSを介して当該コマンドを実行させる。
【0023】
また、上記目的を達成するために、本発明に係わるICカード処理方法は、CPUと、メモリと、外部装置と入出力を行うインタフェースとを有し、OS基本部と複数のICカードOSとOSローダとを搭載したICカードの処理方法であって、前記外部装置は属するICカードOSの情報を含むコマンドを前記ICカードへ送信し、前記ICカードは前記OS基本部の制御の下で前記インタフェースを介して当該コマンドを受信し、前記OSローダは当該コマンドに含まれているICカードOSの情報を解読し、該ICカードOSを識別して起動し、該ICカードOSによって当該コマンドを実行させる。
【0024】
OSローダを設けることによって、OS基本部の制御でOSローダが外部装置からICカードへ送られたコマンドを受信し、該コマンドに含まれるOS情報を解読し、利用すべきICカードOSを識別してから、そのOSに切り替え、該利用すべきカードOSによって、アプリケーションのロードや実行などの処理を行うことが可能になる。カード所有者は、複数のカードOSの存在やアプリケーションが何のプログラム言語で記述されたかを意識する必要がなく、便利且つ円滑にカードOSを選択し、アプリケーションをロードまたは実行することができる。
【0025】
【発明の実施の形態】
以下、本発明の一実施の形態を添付の図面を参照して説明する。
ICカードおよびICカード処理装置
本実施形態に係わるICカードおよびICカード処理装置は前述した図1に示されたICカード10およびICカード処理装置1と同じ構成を有し、以下、引き続き図1を参照して本実施形態を説明する。
【0026】
すでに述べたように、ICカード処理装置1は、ICカード10、端末装置20、例えば、リード・ライト装置、および、ホストコンピュータ30を有する。端末装置20がICカード10を管理するホストコンピュータ30からの指示に基づいて、ICカード10に対して、様々な処理を行う。
本実施形態には、ICカード10は、ICカード発行会社から発行され、管理されて、複数のOSとそれぞれのOSレベルのソフトウエアを搭載済み、ICカード所有者が携帯している複数のOSを用いるICカードである。また、ICカードの例として、接触型ICカードについて述べる。
ICカード10は、図1に示すように、例えば、CPU11、インタフェース(I/F)12、暗号処理器13、ランダム・アクセス・メモリ(RAM)14、読み出し専用メモリ(ROM)15、および書き換え可能な不揮発性メモリEEPROM16を有する。
【0027】
CPU11は、端末装置20からのコマンド、あるいは、予めICカードに設定されたコマンドに基づいて、EEPROM16に記憶されているアプリケーションに従って、I/F12を介して端末装置20と適宜通信を行いながら、所望の処理を行う、たとえば、所有者とICカードの認証、代金の決済、ICカードの診断などの処理を行う。
CPU11において処理を行う際に一時的に発生するデータをRAM14に記憶する。
【0028】
I/F12を介して、ICカード10が端末装置20に装着された場合に、電力とクロックの供給を受けるとともに、端末装置20と信号の送受信を行う。すなわち、I/F12は、端末装置20から受信した信号をCPU11に出力し、また、CPU11から入力された信号を端末装置20に送信する。
【0029】
暗号処理器13は、専用の暗号処理回路である。暗号処理器13は乱数の生成や、RSAなどの暗号の演算を行う。
【0030】
RAM14、ROM15、および、EEPROM16がICカード10のメモリシステムを構成する。それぞれの機能は次に述べるICカードのソフトウエアの構成で説明する。
【0031】
このようなハードウエアを有する複数のOSを有するICカードには、図4に示されたソフトウエア構成が配置されている。
図4は、本発明に係わる複数OSを収容したマルチアプリケーションOSのICカード(以降、マルチOSICカードと称する)におけるソフトウエア構成の一例を示す概念図である。
【0032】
前述したシングルOSICカードと同様に、マルチOSのICカードにおけるソフトウエア階層構造の中核には、ROM15に記憶されているOSのカーネル部41がある。OSカーネル部41は、ICカード10のハードウエアに対応して設計され、そのハードウエア資源を管理する。OSカーネル部41はICカード10のインタフェース(I/F)12を制御し、外部装置とのデータの入出力を行う。また、OSカーネル部41は、上層のプログラムからICカードのハードウエアをアクセスするためのインタフェースを提供する。以上の機能に基づいて、OSカネール41は上層の各プログラムの動作を制御する。
ROM15に記憶されるOSのカーネル部41はICカード製造会社がICカード発行前に搭載したもので、書き換えることはできない。
【0033】
本実施形態において、図4に示しているように、OSカーネル部41の上層には、OSローダ42がEEPROM16に配置されている。OSローダ42はOSカネール41の制御の下で、I/F12を介して外部装置から受信したコマンドの内容を解読し、コマンドやコマンドに付加されているアプリケーションの利用すべきOSを識別して選択する。
【0034】
OSローダ42の上層には、ICカードに搭載した複数のOSの処理モジュール部分である。この部分もEEPROM16に記録されている。OSカーネル41と各OSの複数の処理モジュールから各ICカードOSが構成される。各OSの処理モジュールは、OSカーネルの機能を上層の応用プログラムが便利に利用できるように設けられている。処理速度、容量、また、セキュリティの関係で、これらOSレベルのソフトウエアは機械語で記述することが望まれる。
このような処理モジュールとして、例えば、プログラム言語を処理するインタプリタや、コマンドを処理するコマンドインタプリタ、プログラムを外から追加又は更新するプログラムローダ、アプリケーション・プログラミング・インタフェース、暗号処理ライブラリなどがある。説明の便宜上、ここでは、インタプリタ以外の様々な処理モジュールを1つのモジュールで表す。
また、本発明の実施形態の例として、2つのOS(OSaとOSbと記する)を搭載する場合を例として説明する。2つのOSはそれぞれインタプリタa43と処理モジュールa44,インタプリタb45と処理モジュールb46を有する。
【0035】
OSローダ42は受信したコマンドの内容から属するOS認識し、対応するインタプリタなどのOSレベルのソフトウエアを起動させ、コマンドとアプリケーションの処理を行う。
OSローダ42と各OSの処理モジュール43、44、45、46を書き換え可能なEEPROM16に配置することによって、OSの追加や削除も可能になり、その場合、OSローダ42の内容を適切に修正して、新しく追加されたOSの識別と選択も容易に実現できる。
【0036】
各処理モジュールの上層には種々のサービスを提供するアプリケーションプログラムが配置されている。図4に示すように、OSaに属するアプリケーション1(47)とアプリケーション2(48)、OSbに属するアプリケーション3(49)とアプリケーション4(50)が配置されている。
【0037】
既に述べたように、プログラム言語で書かれた応用プログラムを実行するには、インタプリタが必要である。インタプリタは応用プログラムのソースコードを、逐次、実行形式のコードに変換する。必要に応じて、必要な処理モジュールを呼出し、ICカードのシステムデータを利用し、ICカードのハードウエアをアクセスしながら、ICカードの所定の機能を実現する。
なお、ICチップのCPUの機械語で動作し、プログラム言語のアプリケーションではないものもある、その場合は、インタプリタを動作させる必要がない。
【0038】
ICカードが提供するサービスにより、応用プログラムは様々あり、そのような応用プログラムは、通常カード発行前にICカードに搭載する。マルチアプリケーションOSを用いるICカードにおいては、ICカード発行後であっても、プログラムの追加、および、更新することが可能である。
【0039】
次は、OSローダ42の構成を図5と図6を参照して説明する。
OSローダ42はOSカーネルレベルで実行可能なプログラムである。例えば、図5に示されたように、EEPROM16の先頭に配置する。
図5は本発明の実施形態に係わる複数のOSを用いるICカードのOSローダのEEPROM16における配置の一例を示す図である。
図5においては、EEPROM16の容量は64kバイトであり、左側のアドレスはブロック(1ブロック=16バイト)を単位として、16進数で表示されている。OSローダ42のサイズは1kバイト以下、OSaの全ての処理モジュールはOSaシステムソフトウエアと称し、OSbの全ての処理モジュールはOSbシステムソフトウエアと称し、それぞれのサイズは2kバイト以下とする。
【0040】
OSローダ42には、図6に示された内容が含まれている。
図6は本発明の実施形態に係わる複数のOSを用いるICカードのOSローダの内容の一例を示す図である。
OSローダ42はI/F12から受け取ったコマンドを解読するプログラムであるコマンド解読部を有する。該コマンド解読部61は、受け取ったコマンドを解釈し、コマンドに付属されているICカードOS情報を識別する。
また、ICカードに搭載されている各OSの情報が定数としてOSローダ42登録されている。本実施形態には、例えば、第1番目のOSはOSa、記録された場所はEEPROM、アドレスは0041Hである、というように登録されている。同様に、第2番目のOSはOSb、記録された場所はEEPROM、アドレスは00C1Hであると登録されている。
【0041】
OSローダ42は、受け取ったコマンドに含まれているOSの情報に基づいて、該コマンドの属するOSを識別して、選択する。
図7は本発明に係わる複数のOSを用いるICカードが受信したコマンドのフォーマットを示す図である。
このコマンドの先頭に制御コードを含むコマンドヘッダ有し、該コマンドヘッダには、コマンドが実行可能なOSを識別するデータであるICカードOS識別子と、該コマンドの操作内容を示すコマンドの種別コードとがある。該種別コードにより、たとえば、アプリケーションのロード、実行などの操作を行うことを判明できる。コマンドの本体には、該コマンドが操作するアプリケーションやデータのアドレスがあり、必要な場合は、該コマンドが操作する対象となるデータも付加されている。
OSローダ42は、OSカーネル41の制御の下で、I/F12から受信したコマンドを受け取って、コマンドヘッダにあるOS識別子から、該コマンドの属するOSを識別して起動する。起動されたOSはコマンドインタプリタによりコマンドの種別を得て、指定されたアドレスにデータを書き込み、或は、指定されたアドレスにあるアプリケーションを実行する等の処理を行う。
以上が、ICカード処理装置1におけるICカード10のハードウエア及びソフトウエアの構成の説明である。
【0042】
このようなハードウエア構成およびソフトウエア構成のICカード10は、端末装置20に装着されると、I/F12を介して端末装置20より電源とクロック信号の供給を受けて起動される。そして、端末装置20を介して、ホストコンピュータ30からのコマンドに基づいて、ICカード10が処理を行う。
端末装置20は、例えば、通常店舗などで使用されている端末装置であり、ICカード製造会社、または、サービスを提供する会社のホストコンピュータ30に通信回線を介して接続されており、ホストコンピュータ30と装着されたICカード10との間の通信データを転送する。
【0043】
ICカード10が端末装置20に装着され起動されて、そして、ICカード自身の認証処理、即ち、ICカード10がICカード処理装置1で処理できるICカードか否かの処理を行う。後は、所有者が正当な所有者か否かがチェックされる。ICカード10が認定された場合には、端末装置20を介して、ICカード10はホストコンピュータ30と通信できる。ホストコンピュータ30とICカード10とは通信を順次に行いながら、ホストコンピュータ30より送信されたICカード10に対する指示を実行する。
【0044】
マルチOSのICカードの処理
以上のICカード処理装置1を用い、以上のハードウエアとソフトウエア構成を有するマルチOSのICカード10を処理する工程について、図8を参照して説明する。
図8は、本発明の実施形態に係わる複数のOSを用いるICカード10はOSローダにより利用すべきICカードOSを識別、選択して、起動する工程を示すフローチャートである。
ICカード10が端末装置20に装着されると、ICカード10が起動される(ステップS81)。即ち、OSカーネル41はRAM14に読み込まれて(または、ROM15において直接に参照されて)、端末装置20を介してホストコンピュータ30とのデータの入出力、ICカード10の認証処理、暗号処理などの動作を制御する。OSローダ42もRAM14に読み込まれて、ICカード10が端末装置20に装着される間に、RAM14に常駐させる。端末装置20を介してホストコンピュータ30からのコマンドをICカード10が受信するたびに、OSローダ42はそのコマンドの利用すべきOSの識別処理を行う。
【0045】
次は、OSカーネル41の制御で、ICカード10と端末装置20の間で認証処理が行われる(ステップS82)。例えば、ICカード所有者はパスワードを入力して、正当な所有者であり、かつ、ICカードは当該処理装置1で処理できるICカードであることが判明されたら、ホストコンピュータ30は所有者が希望する処理の指定を待つ。
【0046】
次は、ICカード10の所有者は端末装置20から入力し、ホストコンピュータ30が提供するサービスに対する操作を行うと指定すると(例えば、ダウンロード、実行など)、ホストコンピュータ30がその操作をするコマンドをICカードに送信し、端末装置20を介してICカード10が該コマンドを受信する(ステップS83)。
【0047】
ICカード10が該コマンドを受信すると、OSカーネル41はOSローダ42を呼出し、OSローダ42により、コマンドの解釈を行い(ステップS84)、即ち、コマンドヘッダにあるOS識別子を読み取って、コマンドの属するOSを識別する。
【0048】
次は、OSローダ42に登録されているICカード10に搭載したOSのリストから、OS識別子に対応するOSを検索し、そのOSの記憶場所、詳細なアドレスを特定する(ステップS85)。
【0049】
次は、特定された場所に記憶されたOSの必要なシステムソフトウエアをRAM14に読み込んで(または、EEPROM16において直接に実行し)、当該OSのインタプリタなどの処理モジュールを動作させる(ステップS86)。
【0050】
コマンド処理の制御は起動されたOSに移行し、以降の処理は当該OSの制御で行う(ステップS87)。当該OSはコマンドインタプリタによりコマンドを解読し続き、コマンドの種別コードからコマンドの種別を判別し、コマンドの操作を行うアドレスを得て、必要な場合、書き込みデータも得る。
ICカードOSによるコマンドの処理の具体的な例は図9と図10において説明する。
該ICカードOSによるコマンドの処理を終了した後、当該OSのソフトウエアがRAM14から退去させ、制御はOSカーネル41に戻り、次のコマンドの受信を待つ(ステップS88)。
以上が、ICカード処理装置1において、OSローダ42によるマルチOSのICカード10のOSを識別、選択、および起動する工程の説明である。
【0051】
図3に示された従来のシングルOSのICカードにおいてロードや実行コマンドの処理の流れと比べるために、以上に説明したマルチOSのICカード10が同じコマンドに対する処理は、図9と図10に示された。
図9は、本発明に係わるマルチOSのICカードを用いて、アプリケーションをロードするコマンドを受信した場合、ICカードの処理のフローチャートである。
【0052】
OSカーネル41の管理でホスト・コンピュ−タ30よりコマンドが送信されると、OSローダ42によって該コマンドが解釈され、コマンドヘッドにあるOS識別子から、該コマンドの利用すべきOSを識別する(ステップ91)。
【0053】
そのOSがOSaである場合は、OSaのシステムソフトウエアをRAM14に読み込んで(または、EEPROM16において直接に実行し)、以降は、OSaの制御の下で該コマンドの処理を行う(ステップ92)。
【0054】
OSaはコマンドインタプリタにより該コマンドを解読し、コマンドの種別コードからコマンドの種別を判別する(ステップ93)。そのコマンドはICカード10にアプリケーション1をダウンロードするコマンドであることを確認したら、OSaのプログラムローダは動作され、ロードコマンドに続いて送信されるアプリケーション1の構成成分を認証処理しながらEEPROM16の指定された領域に書き込む(ステップ94)。
【0055】
そのOSはOSbである場合は、OSbのシステムソフトウエアをRAM14に読み込んで(または、EEPROM16において直接に実行し)、以降は、OSbの制御の下で該コマンドの処理を行う(ステップ95)。
【0056】
OSbはコマンドインタプリタにより該コマンドを解読し、コマンドの種別コードからコマンドの種別を判別する(ステップ96)。そのコマンドはICカード10にアプリケーション3をダウンロードするコマンドであることを確認したら、OSbのプログラムローダは動作され、ロードコマンドに続いて送信されるアプリケーション3の構成成分を認証処理しながらEEPROM16の指定された領域に書き込む(ステップ97)。
アプリケーションプログラムを書き込んだ後、OSa、または、OSbがRAM14から退去され、OSa、または、OSbの処理が終了する。
【0057】
図10は、本発明に係わるマルチOSのICカードを用いて、アプリケーションを実行するコマンドを受信した場合、ICカードの処理のフローチャートである。
【0058】
OSカーネル41の管理でホスト・コンピュ−タ30よりコマンドが送信されると、OSローダ42によって該コマンドを解釈され、コマンドのヘッドにあるOS識別子から、該コマンドの利用すべきOSを識別する(ステップ101)。
【0059】
そのOSはOSaである場合は、OSaのシステムソフトウエアをRAM14に読み込んで(または、EEPROM16において直接に実行し)、以降は、OSaの制御の下で該コマンドの処理を行う(ステップ102)。
【0060】
OSaはコマンドインタプリタによりコマンドを解読し、コマンドの種別コードからコマンドの種別を判別する(ステップ103)。そのコマンドはICカード10に存在するアプリケーション2を実行するコマンドであることを確認したら、コマンド内容からアプリケーション2が記録されるアドレスを得る。
続いて、OSaのファイルマネージャによって、ICカード10のEEPROM16内にアプリケーション2を検索する(ステップ104)。発見したら、アプリケーション2を実行する(ステップ105)。即ち、アプリケーション2をRAM14に読み込んで(または、EEPROM16において直接に実行し)、CPU11においてアプリケーション2に記述された手続きを逐次実行する。
【0061】
そのOSはOSbである場合は、OSbのシステムソフトウエアをRAM14に読み込んで(または、EEPROM16において直接に実行し)、以降は、OSbの制御の下で該コマンドの処理を行う(ステップ106)。
【0062】
OSbはコマンドインタプリタによりコマンドを解読し、コマンドの種別コードからコマンドの種別を判別する(ステップ107)。そのコマンドはすでにICカード10に存在するアプリケーション4を実行するコマンドであることを確認したら、コマンド内容からアプリケーション4が記録されるアドレスを得る。
続いて、OSbのファイルマネージャによって、ICカード10のEEPROM16内にアプリケーション4を検索する(ステップ108)。発見したら、アプリケーション4を実行する(ステップ109)。即ち、アプリケーション4をRAM14に読み込んで(または、EEPROM16において直接に実行し)、CPU11においてアプリケーション4に記述された手続きを逐次実行する。
【0063】
アプリケーション2、又は、アプリケーション4を実行した後、OSa、または、OSbがRAM14から退去され、OSa、または、OSbの処理が終了する。
【0064】
本発明は以上に説明した実施の形態に限られるものではなく、種々の改変が可能である。
前述した実施の形態において、図4に示されたように、OSローダ42と各OSの処理モジュール43、44、45、46がEEPROM16に記憶されているが、これらのプログラム、または、その中の一部をROMに記憶してもいい。その場合、ICカードに搭載するOSとOSローダ42の内容を事前に決め、ICカード発行前にROMに搭載して、発行後は搭載するOSの修正はできない。
以上の方法では、例示として2つのOSを搭載した場合について述べたが、本発明において、2つ以上のOSを搭載することができるのは明らかである。
【0065】
また、本実施の形態においては、接触型のICカードを例示して本発明を説明した。しかし、インタフェース(I/F)12としては端子が設けられておらず、コイルを用いて電磁的に外部装置と接続されるような構成の非接触型のICカードであってもよい。
【0066】
【発明の効果】
本発明によれば、1枚のICカードに複数のOSを搭載することができ、ICカードの用途を大幅に広げ、ICカード使用上の便利性が優れている。
また、OSローダを設けることにより、コマンドを受信した度に、コマンドの属するOSの識別と選択が行われ、コマンドの属するOSの制御でアプリケーションの処理を行うことから、ICカードの所有者はカードに搭載されたOSの範囲内では利用すべきOSを意識する必要がなくICカードを使用することができ、あたかも1つのOSの上で、複数の言語を処理可能なマルチアプリケーションICカードとなる、汎用性及び便利性に優れている。
また、OSローダやOSの処理モジュールを書き換え可能なEEPROMに記録し、OSローダを修正可能となっていることから、新しいOSの追加も可能となり、さらに、不必要なOSを削除も可能であり、ICカードの使用上の柔軟性に優れている。
【図面の簡単な説明】
【図1】本発明に係わるICカード処理装置の構成を示すブロック図である。
【図2】従来のICカードのソフトウエア構成を示す概念図である。
【図3】図2に示されたソフトウエア構成を有する従来のICカードを用いて、コマンドを処理する工程を示すフローチャートである。
【図4】本発明に係わる複数OSを用いるICカードのソフトウエア構成を示す概念図である。
【図5】本発明に係わる複数OSを用いるICカードのOSローダと各OSのシステムソフトウエアがEEPROMにおける配置を示す図である。
【図6】本発明に係わる複数OSを用いるICカードのOSローダの概略な内容を示す図である。
【図7】本発明に係わる複数OSを用いるICカードが受信したコマンドのフォーマットを示す概略図である。
【図8】本発明に係わる複数OSを用いるICカードのOSローダによりICカードOSの識別、選択、および起動の工程を示すフローチャートである。
【図9】本発明に係わる複数OSを用いるICカードにおいて、アプリケーションプログラムをICカードにロードする工程を示すフローチャートである。
【図10】本発明に係わる複数OSを用いるICカードにおいて、すでにICカードに存在するアプリケーションを実行する工程を示すフローチャートである。
【符号の説明】
1…ICカード処理装置
10…ICカード
11…CPU
12…インタフェース(I/F)
13…暗号処理器
14…RAM
15…ROM
16…書き換え可能な不揮発性メモリ(EEPROM)
20…端末装置
21…OSのカーネル部
22…インタプリタ
23…処理モジュール
24…アプリケーション1
25…アプリケーション2
30…ホストコンピュータ
41…OSのカーネル部
42…OSローダ
43…インタプリタa
44…処理モジュールa
45…インタプリタb
46…処理モジュールb
47…アプリケーション1
48…アプリケーション2
49…アプリケーション3
50…アプリケーション4
Claims (4)
- CPUと、メモリと、外部装置と入出力を行うインタフェースとを有するICカードであって、
該メモリには、少なくとも、該外部装置との入出力を制御するオペレーティング・システムの基本部(OS基本部)と、前記OS基本部を参照しながら、ICカードの所定の機能を提供するアプリケーション・プログラムを実行させ管理する複数のICカードOSと、前記インタフェースを介して外部装置から入力されたコマンドを解読し、当該コマンドの実行可能なICカードOSを識別して起動するOSローダとが記憶され、
前記OS基本部の制御の下で前記インタフェースを介して外部装置からのコマンドを受信し、前記OSローダは当該コマンドを解読し、当該コマンドの実行可能なICカードOSを識別して起動し、当該ICカードOSによって当該コマンドを実行させる
ICカード。 - 前記外部装置から入力されたコマンドには、当該コマンドの実行可能なICカードOSの情報が含まれている
請求項1記載のICカード。 - ICカードの処理を行う外部装置と、該外部装置とデータの入出力を行うICカードとを有するICカード処理装置であって、
前記ICカードはCPUと、メモリと、外部装置と入出力を行うインタフェースとを有し、
前記メモリには、少なくとも、前記外部装置との入出力を制御するオペレーティング・システムの基本部(OS基本部)と、前記OS基本部を参照しながら、ICカード所定の機能を提供するアプリケーション・プログラムを実行させ管理する複数のICカードOSと、前記インタフェースを介して外部装置から入力されたコマンドを解読し、当該コマンドの実行可能なICカードOSを識別して起動するOSローダとが記憶され、
前記外部装置は属するICカードOSの情報を含むコマンドを前記ICカードへ送信し、当該ICカードは前記OS基本部の制御の下で前記インタフェースを介して当該コマンドを受信し、前記OSローダは当該コマンドに含まれているICカードOSの情報を解読し、該ICカードOSを起動し、該ICカードOSを介して当該コマンドを実行させる
ICカード処理装置。 - CPUと、メモリと、外部装置と入出力を行うインタフェースとを有し、OS基本部と複数のICカードOSとOSローダとを搭載したICカードの処理方法であって、
前記外部装置は属するICカードOSの情報を含むコマンドを前記ICカードへ送信し、
前記ICカードは前記OS基本部の制御の下で前記インタフェースを介して当該コマンドを受信し、前記OSローダは当該コマンドに含まれているICカードOSの情報を解読し、該ICカードOSを識別して起動し、該ICカードOSによって当該コマンドを実行させる
ICカード処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001266292A JP4742469B2 (ja) | 2001-09-03 | 2001-09-03 | 複数のosを用いるicカード、icカード処理装置および処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001266292A JP4742469B2 (ja) | 2001-09-03 | 2001-09-03 | 複数のosを用いるicカード、icカード処理装置および処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003076954A JP2003076954A (ja) | 2003-03-14 |
JP4742469B2 true JP4742469B2 (ja) | 2011-08-10 |
Family
ID=19092619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001266292A Expired - Fee Related JP4742469B2 (ja) | 2001-09-03 | 2001-09-03 | 複数のosを用いるicカード、icカード処理装置および処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4742469B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4717329B2 (ja) * | 2003-03-14 | 2011-07-06 | キヤノン株式会社 | デジタル署名生成装置 |
JP3958243B2 (ja) | 2003-04-14 | 2007-08-15 | 松下電器産業株式会社 | Icカードおよびそのos起動方法 |
WO2005114561A1 (ja) * | 2004-05-24 | 2005-12-01 | Matsushita Electric Industrial Co., Ltd. | リーダ・ライタのセキュアモジュールへのアクセス制御方法 |
DE102006021382B4 (de) * | 2006-05-08 | 2015-08-20 | Giesecke & Devrient Gmbh | Personalisierung von portablen Datenträgern |
JP2009086930A (ja) * | 2007-09-28 | 2009-04-23 | Toppan Printing Co Ltd | オペレーティングシステム起動制御装置、オペレーティングシステム起動制御方法、記録媒体、及び組み込み機器 |
JP4888742B2 (ja) | 2009-02-25 | 2012-02-29 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
JP2011118837A (ja) | 2009-12-07 | 2011-06-16 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
US9575777B2 (en) * | 2011-03-08 | 2017-02-21 | Sony Corporation | Information processing device for performing contactless communication with an external device using multiple communication standards |
JP6515850B2 (ja) * | 2012-01-17 | 2019-05-22 | ソニー株式会社 | 情報処理装置、icチップ、情報処理方法、プログラム、及び情報処理システム |
JP5910297B2 (ja) | 2012-01-17 | 2016-04-27 | ソニー株式会社 | 情報処理装置、icチップ、情報処理方法、プログラム、及び情報処理システム |
-
2001
- 2001-09-03 JP JP2001266292A patent/JP4742469B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003076954A (ja) | 2003-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0451936B1 (en) | Program control system for portable data storage device | |
US6390374B1 (en) | System and method for installing/de-installing an application on a smart card | |
US6220510B1 (en) | Multi-application IC card with delegation feature | |
US7140549B2 (en) | Method and apparatus for selecting a desired application on a smart card | |
US7165727B2 (en) | Method and apparatus for installing an application onto a smart card | |
JP2000514584A (ja) | 高級プログラミング言語を用いたマイクロコントローラ | |
JP2004272400A (ja) | メモリカード | |
CN105653470A (zh) | 用于交换mifare应用程序的移动通信设备及方法 | |
JP4742469B2 (ja) | 複数のosを用いるicカード、icカード処理装置および処理方法 | |
US8082395B2 (en) | Portable electronic device | |
CN107798256B (zh) | 一种基于密码算法分离存储的智能卡及设计方法 | |
JP3515417B2 (ja) | 非持続メモリ内にオブジェクトを作成する方法および装置、ならびにオブジェクトへのアクセス可能性を維持する方法 | |
JP7439798B2 (ja) | 電子情報記憶媒体、アプリケーション選択処理方法、及びプログラム | |
JP2001283160A (ja) | Icカードおよびicカードの更新装置とその方法 | |
JP2001067210A (ja) | Icカードとicカードにおけるアプリケーションのインストール方法 | |
JP5202634B2 (ja) | Mifareメモリをデフラギングするモバイル通信装置及び方法 | |
WO2001016865A1 (en) | System and method for installing/de-installing an application on a smart card | |
JP2002351567A (ja) | プログラム制御装置および方法、ならびにプログラム | |
CA2545292C (en) | A method for writing data and applications into identification media | |
EP3926504B1 (en) | Hiding and unhiding java card applet instances | |
JP3788886B2 (ja) | Icカード及びicカード利用装置 | |
JP7206942B2 (ja) | 電子情報記憶媒体、icチップ、初期設定方法、及び初期設定プログラム | |
JP2002244865A (ja) | データ処理方法および半導体回路 | |
JP2006338311A (ja) | 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム | |
JP2002245414A (ja) | データ処理方法および半導体回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080514 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110406 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110412 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110425 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140520 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |