(57)【要約】【課題】 書き換え可能なメモリに実装したアプリケーション間に相関があり、あるアプリケーションの実行条件が別のアプリケーションの実行状況に依存する場合でも、ＯＳを修正することなく対応が図れるマルチアプリケーション型ＩＣカードを提供する。【解決手段】 マルチアプリケーション型ＩＣカード１０には、マネージャアプリケーション３０を書き換え可能なメモリに実装される。マネージャアプリケーション３０に、アプリケーションの実行状況を監視する監視手段３１０と、アプリケーションの実行状況に応じてアプリケーションの振舞いを管理する管理手段３２０を備えることで、実装するアプリケーションに相関がある場合でも、ＯＳを変更する必要はなくなる。【選択図】      図１
2006023791.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションを書き換え可能なメモリに実装できるマルチアプリケーション型ＩＣカードにおいて、前記書き換え可能なメモリに実装されている他のアプリケーションの実行を監視する監視手段と、前記アプリケーションの実行状況に基いて前記アプリケーションを管理する管理手段とを備えたマネージャアプリケーションを実装していることを特徴とするマルチアプリケーション型ＩＣカード。
【請求項２】
請求項１に記載のマルチアプリケーション型ＩＣカードにおいて、
前記マネージャアプリケーションは、前記アプリケーションの実行状況を記憶する実行情報を有し、前記マネージャアプリケーションに備えられた前記監視手段は、コマンドを処理したアプリケーションから返送されるレスポンスからコマンドの処理状況を判断し、前記実行情報を操作するルールを規定した実行情報操作ルールに従い、コマンドの処理状況に応じて前記実行情報を操作する実行情報操作手段を備えていることを特徴とするマルチアプリケーション型ＩＣカード。
【請求項３】
請求項２に記載のマルチアプリケーション型ＩＣカードにおいて、
前記マネージャアプリケーションに備えられた前記管理手段は、前記実行情報に基いた前記アプリケーションの振舞いを記述したアプリケーション実行ルールに従い、前記実行情報を参照して外部装置から送信されたコマンドの実行を管理するコマンド実行管理手段を備えていることを特徴とするマルチアプリケーション型ＩＣカード。
【請求項４】
前記マルチアプリケーション型ＩＣカードに実装されるマネージャアプリケーションプログラムであって、前記外部装置から受信したコマンドを取得するステップ、前記実行情報と前記アプリケーション実行ルールに基いて前記コマンドの実行可否を判断するステップ、コマンドの処理を他のアプリケーションもしくはオペレーティングシステムに委託するステップ、アプリケーションにコマンド処理を委託した場合は、アプリケーションから返されたレスポンスと前記実行情報操作ルールとに基いて前記実行情報を操作するステップ、コマンドの処理結果を意味するレスポンスを外部装置に返信するステップを順に実行することを特徴とするマネージャアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クレジットカードサイズのプラスチックカードに半導体集積回路（以下、ＩＣチップと記す）を埋め込んだＩＣカードに関し、特に書き換え可能なメモリに複数のアプリケーションを実装できるマルチアプリケーション型ＩＣカードに関する。
【背景技術】
【０００２】
ＩＣカードとは、クレジットカードサイズのプラスチックカードにＩＣチップを埋め込み、前記ＩＣチップのメモリにデータを記録するカードである。近年、ＩＣカードはキャッシュカード、クレジットカードまたは電子マネーなどに幅広く応用されている。
【０００３】
従来、ＩＣカードには用途ごとに単一のアプリケーションを読み出し専用メモリ（Read Only Memory 、以下ＲＯＭと記す）に実装することが主流であったため、一枚のＩＣカードは単一の機能しか持たず、用途ごとにＩＣカードが必要であった。このため、利用者側は複数枚のＩＣカードを常に所持する必要があり大変不便であった。この問題を解消すべく、現在は一枚のＩＣカードに複数のアプリケーションを組み込むことができるマルチアプリケーション型ＩＣカードが主流になりつつある。
【０００４】
マルチアプリケーション型ＩＣカードとは、複数のアプリケーションを書き換え可能なメモリに実装することができるＩＣカードで、ＩＣチップが備えているＲＯＭに基本処理を行うマルチアプリケーションオペレーティングシステム（Operating System、以下ＯＳと記す）を実装し、同じくＩＣチップが備えている電気的に消去・書き換えができるＲＯＭ（Electrically Erasable Programmable Read Only Memory、以下ＥＥＰＲＯＭと記す）等の書き換え可能なメモリに一つまたは複数のアプリケーションを実装する。
【０００５】
マルチアプリケーション型ＩＣカードにおいては、利用者が必要とする複数のアプリケーションを実装できるメリットがあるが、実装したアプリケーションはそれぞれ独立したアプリケーションとして扱われるため、ＩＣカードを使用するシステム側からすると、マルチアプリケーション型ＩＣカードならではの問題が生じてしまうケースがある。
【０００６】
例えば、信販会社のクレジットアプリケーションと家電量販店のポイントアプリケーションの二つのアプリケーションをマルチアプリケーション型ＩＣカードに実装した場合、クレジットアプリケーションの処理とポイントアプリケーションの処理を切替えるごとに、システム側はそれぞれのアプリケーションの認証作業（パスワード認証等）を実行しなければならず、処理時間がかかってしまう問題があった。
【０００７】
特許文献１は上記問題を解決する発明で、アプリケーションが切り替わる毎に、実行しているアプリケーションの認証情報（セキュリティステータス）を退避・復帰させることで、アプリケーションを切替える毎に認証作業が必要なくなり、処理時間を短縮させることができるマルチアプリケーション型ＩＣカードを開示している。
【特許文献１】特開２００１−３０７０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した問題以外にも、マルチアプリケーション型ＩＣカードに複数のアプリケーションを実装した場合、解決しなければならない課題も依然として残っている。
【０００９】
この課題の一つは、実装したアプリケーション間に相関があり、あるアプリケーションの実行条件が別のアプリケーションの実行状況に依存した場合、従来のマルチアプリケーション型ＩＣカードでは対応が取れない問題である。例えば、クレジットアプリケーションが正常に終了した場合にのみ、ポイントアプリケーションにおいてポイントが加算されることが許可されるケースである。
【００１０】
マルチアプリケーション型ＩＣカードにおいては、アプリケーションの管理はＯＳの役割であるため、上記問題を解決するには、ＲＯＭに実装されているマルチアプリケーションＯＳを修正したＲＯＭを作成しなければならない。しかしながら、ＩＣカード製造会社においては、実装するアプリケーションによってマルチアプリケーションＯＳのＩＣチップが異なることは大変不経済であるし、更に、製造工程の間違いも発生しやすくなる。
【００１１】
前述の問題を鑑みて本発明は、マルチアプリケーション型ＩＣカードにおいて、書き換え可能なメモリに実装されたアプリケーション間に、上述したような相関がある場合でも、ＲＯＭに実装されたマルチアプリケーションＯＳを修正することなく対応が取れるマルチアプリケーション型ＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するために、本発明のマルチアプリケーション型ＩＣカードには、アプリケーションの実行を監視する監視手段と、アプリケーションの実行を管理する管理手段とを備え、アプリケーションの実行状況を記憶する実行情報を有するマネージャアプリケーションを書き換え可能なメモリに実装する。前記監視手段は、前記アプリケーションが処理したコマンドと処理結果であるレスポンスとから、アプリケーションの実行状況を監視し、監視した内容を実行情報に反映させる実行情報操作手段を備えている。前記実行情報操作手段が、アプリケーションの実行状況を実行情報に反映させるルールは、実行情報操作ルールに記述され、実行情報操作ルールの内容は任意に設定できる。また、前記管理手段は、前記実行情報に基いて外部装置から送信されたコマンドの実行可否を判断することでアプリケーションの振舞いを管理するコマンド実行管理手段を備えている。前記コマンド実行管理手段が前記実行情報に基いて外部装置から送信されたコマンドの実行可否を判断するルールは、アプリケーション実行ルールに記述され、アプリケーション実行ルールの内容は任意に設定できる。
【００１３】
マルチアプリケーション型ＩＣカードに実装される前記マネージャアプリケーションが前記監視手段および前記管理手段を備えることで、前記マネージャアプリケーションはアプリケーションの実行状況を判断し、実行状況の判断結果に基いて、アプリケーションの振舞いを管理することができる。よって、マルチアプリケーション型ＩＣカードに実装される複数のアプリケーション間に相関がある場合でも、前記マネージャアプリケーションを実装すれば、ＲＯＭを修正することなく、前記アプリケーション間の相関に対応が図れる。
【００１４】
また、前記マルチアプリケーション型ＩＣカードに実装されるマネージャアプリケーションは、以下のプログラムで実現される。前記マネージャアプリケーションのプログラムは、前記外部装置から受信したコマンドを取得するステップ、前記実行情報と前記アプリケーション実行ルールに基き、前記コマンドの実行可否を判断するステップ、コマンドの処理を他のアプリケーションもしくはオペレーティングシステムに委託するステップ、アプリケーションにコマンド処理を委託した場合は、アプリケーションから返されるレスポンスと前記実行情報操作ルールとに基いて前記実行情報を操作するステップ、コマンドの処理結果を意味するレスポンスを外部装置に返信するステップを順に実行することを特徴とするマネージャアプリケーションプログラムである。
【発明の効果】
【００１５】
本発明では、マルチアプリケーション型ＩＣカードに実装される複数のアプリケーション間の相関に対応するため、前記マネージャアプリケーションを書き換え可能なメモリに実装する。前記マネージャアプリケーションを書き換え可能なメモリに実装することで、前記マネージャアプリケーションがアプリケーションの実行状況を監視する内容、またはアプリケーションの振舞いを管理する内容は任意に設定でき、様々なアプリケーション間の相関をカバーできる。また、前記マネージャアプリケーションを書き換え可能なメモリに実装することで、ＩＣカード製造会社においては、実装するアプリケーションに応じて、使用するマルチアプリケーション型ＩＣカード用ＩＣチップを変更する必要はなくなる。
【発明を実施するための最良の形態】
【００１６】
まず初めに本実施の形態のマネージャアプリケーションを備えたマルチアプリケーション型ＩＣカードの構造について説明する。図１は本実施の形態に係わるマルチアプリケーション型ＩＣカードの構造を説明するためのブロック図である。
【００１７】
（マルチアプリケーション型ＩＣカードのブロック図）
図１に示すようにマルチアプリケーション型ＩＣカード１０には、ＯＳとしてマルチアプリケーションＯＳ２０が備えられ、アプリケーションとしてマネージャアプリケーション３０およびアプリケーション４０、４１が実装されている。なお、これ以降は、符号を付けずにアプリケーションと記載した場合は、アプリケーション４０あるいはアプリケーション４１を意味する。
【００１８】
マルチアプリケーションＯＳ２０は、アプリケーションまたはマネージャアプリケーション３０をＥＥＰＲＯＭにロードする機能、ＥＥＰＲＯＭに実装したマネージャアプリケーション３０またはアプリケーションを削除する機能、外部インターフェース５０を制御し、外部装置であるリーダライタ５１と通信する機能、アプリケーションを選択する機能等のマルチアプリケーション型ＩＣカード１０が動作するための基本機能を備えている。
【００１９】
なお、現在マルチアプリケーションＯＳとしては、ＪＡＶＡ（登録商標）、Ｍｕｌｔｏｓ（登録商標）が知られているが、本発明は何らマルチアプリケーションＯＳの種類を限定するものではない。
【００２０】
アプリケーションはある用途ために設計されたソフトウェアであり、ＥＥＰＲＯＭに利用者が必要とする複数のアプリケーションがロードされる。なお実装されるアプリケーションは、マルチアプリケーションＯＳ２０が対応している中間言語で記述されることが一般的である。例えば、クレジットカードとして用いられる場合は、信販会社で規格化されているクレジットアプリケーションがロードされる。
【００２１】
本実施の形態に係わるマネージャアプリケーション３０（以下、マネージャアプリと略す）とは、ＥＥＰＲＯＭにロードされるアプリケーションの実行状況を監視し、アプリケーションの実行を管理するソフトウェアである。マネージャアプリ３０は、リーダライタ５１から送信されたコマンドと前記コマンドの実行結果であるレスポンスからアプリケーションの実行状況を監視する監視手段３１０と、アプリケーションの実行状況に基いてアプリケーションの実行を管理する管理手段３２０とを備え、アプリケーションの実行状況を記憶する実行情報３３０を有している。
【００２２】
マネージャアプリ３０がＥＥＰＲＯＭに実装されていると、リーダライタ５１から送信されたすべてのコマンドは、マルチアプリケーションＯＳ２０からマネージャアプリ３０に受け渡される。この仕組みについて、例えば特許文献２で開示されている発明で実現される。
【特許文献２】特表２００１−５２５９５８号公報
【００２３】
マネージャアプリ３０の管理手段３２０に備えられ、リーダライタ５１から送信されるコマンドの実行を管理するコマンド管理手段３２１は、コマンドを受け取ると、アプリケーションの実行状況を示す実行情報３３０と、実行情報３３０の値に応じてアプリケーションの振舞いを規定したアプリケーション実行ルール３２２（以下、実行ルールと略す）とに基き、受け渡されたコマンドの実行を管理する。
【００２４】
受け渡されたコマンドを実行する場合、マルチアプリケーションＯＳ２０のコマンドであれば、コマンド処理をマルチアプリケーションＯＳ２０に委託し、前記コマンドがアプリケーションのコマンドであれば、コマンド処理を実行中のアプリケーションに委託する。マネージャアプリ３０が管理できるマルチアプリケーションＯＳ２０のコマンドを事前に設定し、マネージャアプリ３０がマルチアプリケーションＯＳ２０のコマンドとアプリケーションのコマンドとを区別することで、コマンドの振分けは可能になる。
【００２５】
また、アプリケーションにコマンド処理を委託した場合、監視手段３１０に備えられた実行情報操作手段３１１は、処理するコマンドを記憶し、コマンド処理を委託したアプリケーションから返送されるレスポンスと、実行情報３３０の操作を規定した実行情報操作ルール３１２とに基いて、実行中のアプリケーションに対応する実行情報３３０を操作する。実行情報３３０を操作した内容は、次回のコマンド処理実行を判断する際に反映される。
【００２６】
図２は、アプリケーションの実行状況が記憶される実行情報３３０を説明するための図である。図２（ａ）に示したように実行情報３３０は、アプリケーションを識別するＡＩＤ（Application IDentifier）が記憶されるＡＩＤ部３３１と、ＡＩＤで示されるアプリケーションの実行状況を示すフラグ部３３２から構成される。
【００２７】
実行情報操作ルール３１２には、アプリケーションのコマンド処理結果が成功したとき、すなわちアプリケーションから返されるレスポンスがコマンド処理成功を意味するデータでったとき（例えば、ＩＳＯ７８１６規格ではレスポンスＡＰＤＵのＳＷが９０００であった時）に、前記アプリケーションが有するＡＩＤと同一のＡＩＤ部３３１を有する実行情報３３０のフラグ部３３２を、処理したコマンドに対応して操作するルールが規定されている。実行情報操作ルール３１２の例としては、図２（ｂ）に示したように、ＰＩＮ（Personal Identification Number）の照合に成功した場合は、実行情報３３０のフラグ部３３２の１ビット目を「１」にするルールがあげられる。なお、図２（ｂ）においては、フラグ部３３２の長さは１バイトとし、フラグ部３３２はビット単位で記述している。
【００２８】
また、実行ルール３２２には、実行情報３３０のフラグ部３３２の値に応じてアプリケーションの振舞いを管理するルールが記載されている。ここで、アプリケーションの振舞いを管理するルールとは、アプリケーションの選択が許可される条件、すなわち、マルチアプリケーションＯＳ２０に備えられたＳＥＬＥＣＴコマンドの実行条件と、アプリケーションのコマンド（例えば、ＰＩＮ照合コマンド）の実行条件とが含まれる。実行ルール３２２の例としては、アプリケーション４０の実行情報３３０のフラグ部３３２の１ビット目が「１」でなければ、アプリケーション４１を選択するＳＥＬＥＣＴコマンドが実行できないルールがあげられる。
【００２９】
このように、マルチアプリケーション型ＩＣカード１０にマネージャアプリ３０を実装することで、アプリケーションの実行状況に応じてアプリケーションの振舞いを管理することが可能になる。例えば、図１において、アプリケーション４０をクレジットアプリケーションとし、アプリケーション４１をポイントアプリケーションとし、クレジットアプリケーションが正常に終了した場合にのみ、ポイントアプリケーションのポイントを加算するコマンドが実行できる仕様があると仮定する。
【００３０】
この場合、クレジットアプリケーション（アプリケーション４０）で定められている一連の処理のコマンドが正常終了した後に、クレジットアプリケーション（アプリケーション４０）の実行情報３３０のフラグ部３３２のあるビットを「１」（ここでは、１ビット目）にするようにクレジットアプリケーション（アプリケーション４０）の実行情報操作ルール３１２を定め、ポイントアプリケーション（アプリケーション４１）のポイントを加算するコマンドの実行条件を、クレジットアプリケーション（アプリケーション４０）の実行情報３３０のフラグ部３３２の１ビット目が「１」であることに設定すればよい。
【００３１】
（メモリ構造）
図３は、本実施の形態に係わるマルチアプリケーション型ＩＣカード１０のＩＣチップのメモリ構造を説明するための図である。図３に示したように、ＩＣチップはメモリとして、読出し専用メモリとしてＲＯＭ６０（Read Only Memory）、揮発性メモリとしてＲＡＭ６１（Random Access Memory）、そして書き換え可能なメモリとしてＥＥＰＲＯＭ６２（Electrically Erasable Programmable Read-Only Memory）を備なえている。
【００３２】
ＩＣチップのＲＯＭ６０には、マルチアプリケーションＯＳプログラム６００が記憶される。
【００３３】
ＩＣチップのＥＥＰＲＯＭ６２は、マルチアプリケーションＯＳ２０によって３つの領域に分割されている。一つ目の領域はマルチアプリケーションＯＳ２０が使用するデータが記憶される領域６２０（以下、ＥＥＰ＿ＯＳ領域と記す）であり、二つ目の領域はマネージャアプリ３０のコードおよびデータが記憶される領域６２１（以下、ＥＥＰ#ＭＡｐｐ領域と記す）であり、そして、三つ目の領域はアプリケーションのコードおよびデータが記憶される領域６２２（以下、ＥＥＰ#Ａｐｐ領域と記す）である。
【００３４】
ＥＥＰ＿ＭＡｐｐ領域６２１には、マネージャアプリ３０がアプリケーションの実行状況に応じて実行情報３３０を操作するルールを規定した実行情報操作ルール３１２と、アプリケーションの実行状況に応じてアプリケーションの振舞いを管理するルールを規定した実行ルール３２２が記憶されている。
【００３５】
ＩＣチップのＲＡＭ６１は、ＥＥＰＲＯＭ６２と同じくマルチアプリケーションＯＳ２０によって３つの領域に分割されている。一つ目の領域はマルチアプリケーションＯＳ２０が使用する領域６１０（以下、ＲＡＭ＿ＯＳ領域と記す）で、二つ目の領域はマネージャアプリ３０が使用する領域６１１（以下、ＲＡＭ＿ＭＡｐｐ領域と記す）で、そして、三つ目の領域はアプリケーション４０が使用する領域６１２（以下、ＲＡＭ＿Ａｐｐ領域と記す）である。
【００３６】
ＲＡＭ＿ＭＡｐｐ領域６１１には、アプリケーションの実行状況を示す情報であり、マネージャアプリ３０がアプリケーションを管理する際に参照される実行情報３３０が記憶される。
【００３７】
図４は、ＲＡＭ＿ＭＡｐｐ領域６１１に生成・保持される実行情報３３０を説明するための図である。図４（ａ）は生成時の実行情報３３０を示している。マルチアプリケーション型ＩＣカード１０が起動すると、マネージャアプリ３０が自動的に起動し、マネージャアプリ３０はＲＡＭ＿ＭＡｐｐ領域６１１に実行情報３３０を生成する。生成時の実行情報３３０の初期値は、実行情報３３０のＡＩＤ部３３１およびフラグ部３３２がすべて「０」である。
【００３８】
図４（ｂ）は、アプリケーションが選択されたときの実行情報３３０を説明するための図である。図４（ｂ）に示したように、マルチアプリケーションＯＳ２０に備えられたＳＥＬＥＣＴコマンドにてアプリケーションが選択されると、選択されたアプリケーションのＡＩＤ（ここでは、０１２３４５６７ｈ、ｈは１６進表記）が、実行情報３３０のＡＩＤ部３３１に書き込まれる。実行情報のフラグ部３３２は、前述したように、アプリケーションの実行状況に応じて、マネージャアプリ３０に備えられた実行情報操作手段３１１で操作される。
【００３９】
（マネージアプリケーションプログラムの動作手順）
ここから、本実施の形態に係わるマルチアプリケーション型ＩＣカード１０に実装されるマネージャアプリ３０のプログラムの動作手順について説明する。図５は、マネージャアプリ３０のプログラムの動作手順を示したフロー図である。
【００４０】
最初のステップＳ１０は、マルチアプリケーションＯＳ２０から受信したコマンドのデータをマネージャアプリ３０が取得するステップである。コマンドは、ＣＰＵに備えられたレジスタやＲＡＭを利用して、マルチアプリケーションＯＳ２０からマネージャアプリ３０に受け渡しされる。
【００４１】
次のステップＳ１１は、ＲＡＭ＿ＭＡｐｐ領域６１１に保持している実行情報３３０とＥＥＰＲＯＭ＿ＭＡｐｐ領域６２１に記憶している実行ルール３２２とに基き、マネージャアプリ３０が取得したコマンドの実行可否を判断するステップである。コマンドを実行する場合はステップＳ１２に進み、コマンドを実行しない場合は実行ルール３２２に基きコマンドを実行できないことを意味するレスポンス（レスポンスのデータがＮｕｌｌの場合も含む）を返信し（ステップＳ１５ａ）、手順は終了する。
【００４２】
ステップＳ１２は、コマンドの処理を委託する先を判定するステップである。マルチアプリケーションＯＳ２０にコマンド処理する場合はステップＳ１３ａに進み、ステップにてコマンドが処理され、マルチアプリケーションＯＳ２０でコマンド処理した結果がステップＳ１５で返信され、手順は終了する。アプリケーションにコマンド処理を委託する場合は、ステップＳ１３に進む。
【００４３】
ステップＳ１３はアプリケーションにコマンド処理を委託するステップである。マネージャアプリケーション３０は、アプリケーションからレスポンスを受け取ると、ステップＳ１４に進む。
【００４４】
次のステップＳ１４は、レスポンスと実行情報操作ルール３１２とに基き、実行情報３３０を操作するステップである。実行情報３３０を操作した後、ステップＳ１５でアプリケーション４０から返信されたレスポンスが返送され、手順は終了する。
【００４５】
なお、マネージャアプリケーション３０は、リーダライタ５１からコマンドを受信するたびに、上述した手順を繰り返し実行する。
【図面の簡単な説明】
【００４６】
【図１】マルチアプリケーション型ＩＣカードのブロック図。
【図２】実行情報の構造を説明する図。
【図３】メモリ構造を説明する図。
【図４】ＲＡＭに生成された実行情報を説明する図。
【図５】マネージャアプリケーションプログラムの手順を示したフロー図。
【符号の説明】
【００４７】
１０  マルチアプリケーション型ＩＣカード
２０  マルチアプリケーションＯＳ
３０  マネージャアプリケーション
３１０  監視手段
３１１  実行情報操作手段
３１２  実行情報操作ルール
３２０  管理手段
３２１  コマンド管理手段
３２２  アプリケーション実行ルール
３３０  実行情報
４０、４１  アプリケーション
【図１】
2006023791.tif 000003
【図２】
2006023791.tif 000004
【図３】
2006023791.tif 000005
【図４】
2006023791.tif 000006
【図５】
2006023791.tif 000007