(57)【要約】      （修正有）【課題】複数の通信Ｉ／Ｆを備えたＩＣカードにおいて、アプリケーションの実行が通信インターフェース（Ｉ／Ｆ）に制限されず、かつ、アプリケーションが使用するリソースをセキュアに保てるＩＣカードを提供する。【解決手段】ＩＣカードには、複数のアプリケーションと、アプリケーションが使用するリソースを管理するカードマネージャ３０（ＣＭ）が実装される。予め、アプリケーションには、アプリケーションが動作するときの標準の通信Ｉ／Ｆを意味するＩ／Ｆ情報が設定され、ＣＭ３０は、Ｉ／Ｆ情報に基づいて、アプリケーションが利用できるリソースの範囲を制限する。アプリケーションが使用できるリソースの範囲は、ＩＣカードが動作している通信Ｉ／Ｆに依存せず、前記Ｉ／Ｆ情報に依存するため、アプリケーションはＩ／Ｆ情報とは異なる通信Ｉ／Ｆで動作でき、アプリケーションが使用するリソースはセキュアに保たれる。【選択図】図３
2006301692.tif 000002
【特許請求の範囲】
【請求項１】
外部装置とそれぞれ異なる方式で通信を行う複数の通信インターフェースを備えたＩＣチップが実装されたＩＣカードにおいて、前記ＩＣカードは、複数のアプリケーションと、前記アプリケーションの実行を管理する機能を少なくとも備えたカードマネージャを有し、
前記カードマネージャは、前記アプリケーションごとに設定され、前記アプリケーションが動作する標準の前記通信インターフェースを意味するインターフェース情報と、前記インターフェース情報ごとに設定され、標準の前記通信インターフェースが前記インターフェース情報である前記アプリケーションが利用できる前記ＩＣチップのリソースの範囲を示すリソース制限情報とを記憶し、
前記カードマネージャは、実行している前記アプリケーションの前記インターフェース情報から特定される前記リソース制限情報に基づいて、実行している前記アプリケーションが使用する前記リソースを制限することを特徴するＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、前記通信インターフェースは、接触インターフェースおよび非接触インターフェースであることを特徴とするＩＣカード。
【請求項３】
請求項１または請求項２に記載のＩＣカードに備えられた前記カードマネジャーとして、ＩＣカード用ＩＣチップを動作させるためのＩＣカードプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションを実装可能で、かつ、複数の通信インターフェースを備えるＩＣカード、および、このＩＣカードに実装されるＩＣカードプログラムに関するものである。
【背景技術】
【０００２】
従来、ＩＣカードが動作する通信インターフェース（以下、Ｉ／Ｆ）は、ＩＣカードの用途、すなわち、実行するアプリケーションによって規定されている場合が多かった。例えば、クレジット等の金融決済のアプリケーションは、安全性の高い接触Ｉ／Ｆで動作しなければならないし、交通用途で使用される定期券のアプリケーションは、利便性を高めるべく非接触Ｉ／Ｆで動作しなければならない。
【０００３】
しかしながら、接触Ｉ／Ｆと非接触Ｉ／Ｆを有するデュアルインターフェースＩＣカードに、接触Ｉ／Ｆで動作するアプリケーションと非接触Ｉ／Ｆで動作するアプリケーションを実装すると、接触Ｉ／Ｆで動作するアプリケーションが使用するリソースに、非接触Ｉ／Ｆで動作するアプリケーションがアクセスしてしまう危険性がある。
【０００４】
このため、本出願人は特許文献１において、接触Ｉ／Ｆで通信を行うことを検知した場合には、アプリケーションがアクセス可能な範囲を接触Ｉ／Ｆ用メモリ領域内に制限し、非接触Ｉ／Ｆで通信を行うことを検知した場合には、アプリケーションがアクセス可能な範囲を非接触Ｉ／Ｆ用メモリ領域内に制限することで、接触Ｉ／Ｆで動作するアプリケーションが使用するメモリ領域に、非接触Ｉ／Ｆで動作するアプリケーションがアクセスすることの無い（その逆も）、ＩＣカードを開示している。
【特許文献１】特開２００４−２０６５４２号公報
【０００５】
しかしながら、複数のアプリケーションを実装できるマルチアプリケーションＯＳ（Operating System）を有するデュアルインターフェースＩＣカードに実装されたアプリケーションは、ＩＣカードのユーザの利便性を高めるべく、定められ通信Ｉ／Ｆ以外でも動作することが要求されつつある。
【０００６】
例えば、クレジットアプリケーションで定期券アプリケーションの代金を決済する場合は、本来、非接触Ｉ／Ｆで動作する定期券アプリケーションは接触Ｉ／Ｆでも動作することが望まれるし、非接触Ｉ／Ｆで動作する電子マネーアプリケーションの残高超過分をクレジットで決済するときは、本来、接触Ｉ／Ｆで動作するクレジットアプリケーションは非接触Ｉ／Ｆでも動作することが望まれる。
【０００７】
しかしながら、これまでの技術では、通信Ｉ／Ｆによって実行できるアプリケーションが定まっていたり、また、通信Ｉ／Ｆによって使用できるリースが限定されていたりするため、予め、動作する通信Ｉ／Ｆが定められているアプリケーションは、他の通信Ｉ／Ｆでセキュアに動作することができなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
そこで、上述した問題を鑑みて、本発明は、複数のアプリケーションが実装可能で、複数の通信Ｉ／Ｆを備えたＩＣカードにおいて、あるアプリケーションが、他のアプリケーションの実行途中で呼び出された場合でも、呼び出されたアプリケーションの動作が、ＩＣカードが動作している通信Ｉ／Ｆによって制限されることがなく、かつ、本来は異なる通信Ｉ／Ｆで動作するアプリケーションが使用するリソース（例えば、データ領域）をセキュアに保つことができるＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決する第１の発明は、外部装置とそれぞれ異なる方式で通信を行う複数の通信インターフェースを備えたＩＣチップが実装されたＩＣカードにおいて、前記ＩＣカードは、複数のアプリケーションと、前記アプリケーションの実行を管理する機能を少なくとも備えたカードマネージャを有し、前記カードマネージャは、前記アプリケーションごとに設定され、前記アプリケーションが動作する標準の前記通信インターフェースを意味するインターフェース情報と、前記インターフェース情報ごとに設定され、標準の前記通信インターフェースが前記インターフェース情報である前記アプリケーションが利用できる前記ＩＣチップのリソースの範囲を示すリソース制限情報とを記憶し、前記カードマネージャは、実行している前記アプリケーションの前記インターフェース情報から特定される前記リソース制限情報に基づいて、実行している前記アプリケーションが利用する前記リソースを制限することを特徴するＩＣカードである。
【００１０】
なお、第１の発明に記載のＩＣカードにおいて、前記通信インターフェースは、接触インターフェースおよび非接触インターフェースであることが望ましい。
【００１１】
上述した第１の発明によれば、前記アプリケーションが利用できるリソースの範囲は、前記ＩＣカードが動作している前記通信インターフェースに依存せず、前記アプリケーションごとに設定された前記インターフェース情報に依存するため、前記アプリケーションは、標準の前記通信インターフェース以外でも動作することができる。
【００１２】
また、前記インターフェース情報ごとに、前記アプリケーションが使用できるリソースの範囲が異なるので、例えば、前記インターフェース情報が接触Ｉ／Ｆの前記アプリケーションが使用するリソースに、前記インターフェース情報が非接触Ｉ／Ｆの前記アプリケーションがアクセスすることを防止できる。
【００１３】
更に、上述した課題を解決する第２の発明は、第１の発明に記載のＩＣカードに備えられた前記カードマネジャーとして、ＩＣカード用ＩＣチップを動作させるためのＩＣカードプログラムである。このＩＣカードプログラムを、ＩＣカード用ＩＣチップに実装することで、第１の発明に記載のＩＣカードを実現できる。
【発明の効果】
【００１４】
上述した本発明によれば、複数のアプリケーションが実装可能で、複数の通信Ｉ／Ｆを備えたＩＣカードにおいて、あるアプリケーションが、他のアプリケーションの実行途中で呼び出された場合でも、呼び出されたアプリケーションの動作が、ＩＣカードが動作している通信Ｉ／Ｆによって制限されることがなく、かつ、本来は異なる通信Ｉ／Ｆで動作するアプリケーションが使用するリソース（例えば、データ領域）をセキュアに保つことができるＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１５】
ここから、本発明に係り、プラットフォーム型ＯＳ（Operating System）を有するデュアルインターフェースＩＣカード（以下、単にＩＣカードと略す）について、図を参照しながら詳細に説明する。
【００１６】
図１は、本発明が適用されたＩＣカード１の外観および内部構造を説明する図である。図１（ａ）に示したように、ＩＣカード１とは、キャッシュカードサイズのカードにＩＣチップ２が実装されたカードで、本発明において、ＩＣチップ２は、図外の外部端末とコンタクト端子１１を介して通信する接触Ｉ／Ｆと、図外の外部端末と無線で通信する非接触Ｉ／Ｆとを備えた、デュアルインターフェースＩＣチップである。
【００１７】
図１（ｂ）はＩＣカード１の内部構造を説明する図で、ＩＣカード１に実装されるＩＣチップ２にはアンテナ１２が接続され、ＩＣカード１が非接触Ｉ／Ｆで動作するときは、このアンテナ１２を利用して、図外の外部端末と無線で通信を行う。
【００１８】
図２はＩＣカード１に実装されるＩＣチップ２のハードウェア構造図である。ＩＣチップ２には、中央演算装置２０（Central Processing Unit、以下ＣＰＵと記す）に、バス２６を介して、読み出し専用メモリ２１（Read Only Memory、以下ROMと記す）、書換え可能なメモリとしてＥＥＰＲＯＭ２３（Electrically Erasable Programmable Read-Only Memoryの略）、揮発性メモリとしてランダムアクセスメモリ２２（Random Access Memory、以下ＲＡＭと記す）、および、図外の外部端末とデータを通信するための接触Ｉ／Ｆ回路２４、非接触Ｉ／Ｆ回路２５などが接続されている。
【００１９】
なお、本発明は、ＩＣチップ２の仕様を限定するものではなく、ＩＣカード１の用途に適した仕様のＩＣチップ２を選択することができる。例えばＲＯＭ２１およびＥＥＰＲＯＭ２３の容量については限定しないし、書換え可能なメモリは強誘電体メモリまたはフラッシュメモリ等のＥＥＰＲＯＭ以外のメモリであっても構わない。またＩＣチップ２はタイマー回路、暗号演算回路またはコプロセッサ回路等の図示していない他のデバイスを備えていても構わない。
【００２０】
図３、ＩＣカード１に実装されるソフトウェアの構成の一例である。ＩＣチップ２にはソフトウェアとして、プラットフォーム型ＯＳ３１、プラットフォーム型ＯＳ３１で動作するプログラムであるアプリケーション３２，３３と、アプリケーション３２，３３を管理する機能を有するカードマネージャ３０（Card Manager、以下ＣＭ）が組み込まれる。なお、今後、アプリケーション３２、３３を区別しないときは、アプリケーションと記述し符号は付けない。
【００２１】
プラットフォーム型ＯＳ３１とは、中間言語を解釈する機能を備え、アプリケーションの実行環境となるプログラムであって、プラットフォーム型ＯＳ３１のプログラムコードは、好ましくはＲＯＭ２１に記憶される。ＩＣカード用のプラットフォーム型ＯＳ３１としては、ＪＡＶＡ（登録商標）、ＭＵＬＴＯＳ（登録商標）が有名である。
【００２２】
プラットフォーム型ＯＳ３１上で動作するアプリケーションとは、プラットフォーム型ＯＳ３１に対応した中間言語で記述され、ある特定の用途のために設計されたプログラムである。アプリケーションのプログラムコードは、好ましくはＥＥＰＲＯＭ２３に記憶される。
【００２３】
本実施の形態においては、ＩＣカード１に実装されるアプリケーションには、ＩＣカード業務を行う団体によって、アプリケーションが動作する標準の通信Ｉ／Ｆが定められ、図３では、標準の通信Ｉ／Ｆが接触Ｉ／Ｆであるアプリケーション３２（以下、接触アプリケーションと記す）と、標準の通信Ｉ／Ｆが非接触Ｉ／Ｆであるアプリケーション３３（以下、非接触アプリケーションと記す）が、それぞれＩＣカード１に実装されている。
【００２４】
ＣＭ３０とは、ＥＥＰＲＯＭ２３に実装されるアプリケーションを管理するプログラムであり、ＣＭ３０のプログラムコードは、好ましくはＲＯＭ２１に実装される。なお、ＣＭ３０は、必ずしも、プラットフォーム型ＯＳ３１に対応した中間言語で記述される必要はない。
【００２５】
ＣＭ３０は、アプリケーションをＥＥＰＲＯＭ２３にロードする機能、ＥＥＰＲＯＭ２３にロードしたアプリケーションを削除する機能、外部端末と接触Ｉ／Ｆもしくは非接触Ｉ／Ｆを用いて通信する伝送制御機能、実行するアプリケーションを選択する機能などを有する。
【００２６】
本実施の形態において、ＣＭ３０は、上述した機能に加えて、実行するアプリケーションが使用するリソースを管理するリソース管理機能を備えている。ここで、リソースとは、ＩＣチップ２に備えられた外部メモリ（ＲＡＭ２２およびＥＥＰＲＯＭ２３）やＣＰＵ２０に備えられた内部メモリを意味する。
【００２７】
ＣＭ３０はリソース管理機能を実現するために、すなわち、実行するアプリケーションが使用するリソースを管理するために、標準の通信Ｉ／Ｆごとに、アプリケーションが使用できるリソースの領域を論理的に設定する。
【００２８】
本実施の形態においては、ＩＣチップ２は通信Ｉ／Ｆとして、接触Ｉ／Ｆ回路２４と非接触Ｉ／Ｆ回路２５を備えているので、ＣＭ３０はリソース内に、接触アプリケーション３２が使用できるリソースの領域（以下、接触領域）と、非接触アプリケーション３３が使用できるリソースの領域（以下、非接触領域）とを論理的に設定する。
【００２９】
ＣＭ３０がアプリケーションをＥＥＰＲＯＭ２３にロードするときは、外部端末からＣＭ３０にアプリケーションのプログラムコードと共に、制御情報が送信される。この、制御情報には、ロードするアプリケーションの識別子（AID:Application Identification）に加え、ロードするアプリケーションの標準の通信Ｉ／Ｆを示すＩ／Ｆ情報が含まれる。
【００３０】
ＣＭ３０は、この制御情報に含まれるＩ／Ｆ情報を参照し、Ｉ／Ｆ情報に対応するＥＥＰＲＯＭの領域に、アプリケーションをロードする。図３においては、Ｉ／Ｆ情報が接触Ｉ／Ｆである接触アプリケーション３２がＥＥＰＲＯＭ２３の接触領域にロードされ、Ｉ／Ｆ情報が非接触Ｉ／Ｆである非接触アプリケーション３３がＥＥＰＲＯＭ２３の非接触領域にロードされている。
【００３１】
ＣＭ３０は、例えば、図３の接触アプリケーション３２を実行するときは、接触アプリケーション３２が使用できるリソースの範囲を接触領域に設定し、実行する接触アプリケーション３２が接触領域以外のリソースにアクセスしないように、例えば、接触アプリケーション３２がアクセスするメモリのアドレスをチェックするなどして管理する。
【００３２】
同じく、図３の非接触用アプリケーション３３を実行するときは、非接触アプリケーション３３が使用できるリソースの領域を非接触領域に設定し、実行する非接触アプリケーション３３が非接触領域以外のリソースにアクセスしないよう管理する。
【００３３】
すなわち、ＣＭ３０によって管理されるアプリケーションのリソースの領域は、ＩＣカード１が動作している通信Ｉ／Ｆとは関係がなく、予め設定されたアプリケーションの標準の通信Ｉ／Ｆ、すなわちＩ／Ｆ情報によって規定される。このため、例えば、図３において、ＩＣカード１が接触Ｉ／Ｆで動作中でも、非接触アプリケーション３３の実行は可能であるが、非接触アプリケーション３３が利用できるリソースは非接触領域に限定される（非接触アプリケーション３３は接触領域にはアクセスできない）。
【００３４】
ここから、本発明の効果を分かり易く説明するために、図３において、ＩＣカード１が接触Ｉ／Ｆで動作し、接触アプリケーション３２が実行されているときに、非接触アプリケーション３３が呼び出されたときのＩＣカード１の振る舞いについて説明する。
【００３５】
この動作の最初のステップＳ１０は、ＩＣカード１が活性化されるステップである。ここでは、ＩＣカード１は、しかるべき手順で接触Ｉ／Ｆから活性化される。
【００３６】
次のステップＳ１１は、接触アプリケーション３２の実行要求を、ＩＣカード１が図外の外部端末から受信するステップである。ここでは、接触アプリケーション３２の実行要求は、外部端末から送信されるコマンド（例えば、ＳＥＬＣＴコマンド）で、外部装置からＩＣカード１に伝達される。
【００３７】
次のステップＳ１２は、実行される接触アプリケーション３２が使用できるリソースの領域を設定するステップである。ここでは、接触アプリケーション３２が実行されるため、ＣＭ３０は、接触アプリケーション３２が利用できるリソースの領域として接触領域を設定する。
【００３８】
次のステップＳ１３では、接触アプリケーション３２が実行されるステップである。ここでは、接触Ｉ／Ｆにて外部端末から送信されたコマンドが、ＣＭ３０から接触アプリケーション３２に受け渡され、接触アプリケーション３２はコマンドの処理を実行する。
【００３９】
次のステップＳ１４は、ＩＣカード１が、接触アプリケーション３２が実行中に、非接触アプリケーション３３の実行要求を受けるステップである。ここでは、非接触アプリケーション３３の実行要求は、外部端末から受信するコマンド（例えば、ＳＥＬＣＴコマンド）で、外部装置からＣＭ３０に伝達される。
【００４０】
次のステップＳ１５は、非接触アプリケーション３３が利用できるリソースの領域を設定するステップである。ここでは、ＣＭ３０が、非接触アプリケーション３３が利用できるリソースの領域として非接触領域を設定する。
【００４１】
次のステップＳ１６は、非接触アプリケーション３３が実行されるステップである。ここでは、ＣＭ３０が、接触Ｉ／Ｆで外部端末から送信される非接触用アプリケーション３３のコマンドを、非接触アプリケーション３３に受け渡し、非接触アプリケーション３３はコマンドの処理を実行する。
【００４２】
なお、非接触アプリケーション３３が使用できるリソースの領域は非接触領域に限定されるため、接触アプリケーションが使用していたリソースの領域に、非接触アプリケーション３３はアクセスできない。
【００４３】
次のステップＳ１７は、非接触アプリケーション３３が実行中に、接触アプリケーション３２の実行要求を受けるステップである。ここでは、外部端末から送信されるプロトコルの情報から、ＣＭ３０が接触アプリケーション３２の実行要求を認識する。このステップＳ１７で、非接触アプリケーション３３が実行中に、接触アプリケーション３２の実行要求を受けると、手順はステップＳ１２に戻る。
【００４４】
そして、すべてのＩＣカード１の処理が終了すると、ＩＣカード終了工程Ｓ１８に進み、ＩＣカード終了工程Ｓ１８では、ステップＳ１９でＩＣカード１が非活性化されて、この手順は終了する。
【図面の簡単な説明】
【００４５】
【図１】ＩＣカードの外観図・内部構造を説明する図。
【図２】ＩＣカードに実装されるＩＣチップのハードウェア構造図。
【図３】ＩＣカードに実装されるソフトウェアの構成図。
【図４】ＩＣカードの振る舞いを説明するフロー図。
【符号の説明】
【００４６】
１  ＩＣカード
２  ＩＣチップ
２０  ＣＰＵ
２１  ＲＯＭ
２２  ＲＡＭ
２３  ＥＥＰＲＯＭ
２４  接触Ｉ／Ｆ回路
２５  非接触Ｉ／Ｆ回路
３０  カードマネージャ
３１  プラットフォーム型ＯＳ
３２  接触アプリケーション
３３  非接触アプリケーション
【図１】
2006301692.tif 000003
【図２】
2006301692.tif 000004
【図３】
2006301692.tif 000005
【図４】
2006301692.tif 000006