(57)【要約】【課題】  マルチアプリケーションＩＣカードとホストコンピュータとから成るＩＣカードシステムにおいて、ホストコンピュータがアプリケーション間の依存関係に基づいて処理できるＩＣカードシステムを提供する。【解決手段】  マルチアプリケーションＩＣカード１０のセキュリティドメイン１２は、アプリケーション１３が有するオブジェクトの依存関係を示すアプリケーション属性管理情報１２０を有し、アプリケーション１３の追加搭載／削除などのコマンドの実行を管理する。アプリケーション属性管理情報１２０は、カードマネージャ１１のＳＥＬＥＣＴコマンド１１０のレスポンスとして、ホストコンピュータ２０に送信され、ホストコンピュータ２０は、アプリケーション属性管理情報１２０を参照し、ＩＣカード１０に送信するコマンドのスクリプトを生成し、ＩＣカード１０を処理する。【選択図】      図２
2006338311.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションを書換え可能な不揮発性メモリに実装できるＩＣチップを実装したデバイスにおいて、前記デバイスは、実装された各々の前記アプリケーション間における依存関係を含むアプリケーション属性管理情報を記憶し、更に、前記デバイスは、外部端末装置の指示に従い、前記アプリケーション属性管理情報を前記外部端末装置に送信する管理情報送信手段と、前記アプリケーション属性管理情報を参照することで、前記依存関係に影響を与えるコマンドの実行を判定し、このコマンドを実行したときは、このコマンドの実行内容に従い前記アプリケーション属性管理情報を更新する判定手段と、を備えていることを特徴とするデバイス。
【請求項２】
請求項１に記載のデバイスにおいて、前記デバイスが有する前記アプリケーション属性管理情報には、搭載された各々の前記アプリケーションが有するオブジェクトの相互利用に関する情報が含まれることを特徴とするデバイス。
【請求項３】
請求項１または請求項２に記載のデバイスにおいて、前記判定手段が判定するコマンドには、前記アプリケーションを前記デバイスに追加実装するコマンドが含まれ、前記判定手段は、前記アプリケーションを前記デバイスに追加実装する処理を実行するときに、前記外部端末装置から送信され、他の各々の前記アプリケーション間における依存関係を示す情報に基づいて、前記アプリケーション属性管理情報を更新することを特徴とするデバイス。
【請求項４】
請求項１から請求項３のいずれかに記載のデバイスにおいて、前記判定手段が管理するコマンドには、前記アプリケーションを前記デバイスから削除するコマンドが含まれ、前記判定手段は、前記アプリケーションを前記デバイスから削除する処理を実行するときに、削除する前記アプリケーションに基づいて、前記アプリケーション属性管理情報を更新することを特徴とするデバイス。
【請求項５】
請求項１から請求項４のいずれかに記載のデバイスにおいて、少なくとも、前記デバイスが前記外部端末装置の認証に成功した場合のみ、前記管理情報送信手段は、前記アプリケーション属性管理情報を前記外部端末装置に送信することを特徴とするデバイス。
【請求項６】
請求項１から請求項５のいずれかに記載のデバイスにおいて、前記デバイスは、マルチアプリケーションＩＣチップを実装したＩＣカードであることを特徴とするデバイス。
【請求項７】
請求項１から請求項６に記載の前記デバイスとホストコンピュータを利用したコンピュータシステムであって、前記ホストコンピュータは、前記デバイスから前記アプリケーション属性管理情報を取得する管理情報取得手段と、前記管理情報取得手段が取得した前記アプリケーション属性管理情報に従い、前記デバイスに送信するコマンドのスクリプトを生成し、生成した前記スクリプトを用いて前記デバイスを処理するデバイス処理手段とを備えていることを特徴とするコンピュータシステム。
【請求項８】
請求項７に記載のコンピュータシステムであって、前記ホストコンピュータの前記管理情報取得手段が取得した前記アプリケーション属性管理情報に従い、前記デバイスに送信するコマンドの一つは、前記デバイスにアプリケーションを追加実装するコマンドであることを特徴とするコンピュータシステム。
【請求項９】
請求項７または請求項８に記載のコンピュータシステムであって、前記ホストコンピュータの前記管理情報取得手段が取得した前記アプリケーション属性管理情報に従い、前記デバイスに送信するコマンドの一つは、前記デバイスからアプリケーションを削除するコマンドであることを特徴とするコンピュータシステム。
【請求項１０】
請求項７から請求項１０に記載のコンピュータシステムを構成するホストコンピュータに備えられた管理情報取得手段およびデバイス処理手段として、コンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションを書換え可能なメモリに搭載できるＩＣチップを実装したデバイス、およびこのデバイスを利用するコンピュータシステムに関し、更に詳しくは、このデバイスに実装された各アプリケーション間の依存関係に基づいてデバイスを処理する技術に関する。
【背景技術】
【０００２】
複数のアプリケーションを書換え可能な不揮発性メモリに搭載できるＩＣチップを実装したマルチアプリケーションＩＣカード、特にＪＡＶＡ（登録商標）に代表される中間言語の翻訳機能を備えたマルチアプリケーションＩＣカードにおいては、ＩＣカードのハードウェア資源（例えば、ＥＥＰＲＯＭ）を有効活用するため、複数のアプリケーション間でプログラムコードやデータが共有化されることが多い。
【０００３】
マルチアプリケーションＩＣカード内において、複数のアプリケーション間でプログラムコードやデータが共有化されると、アプリケーション間のアクセスに関するセキュリティが脆弱になる可能性がある。このため、本出願人は、特許文献１にて、マルチアプリケーションＩＣカードに実装された各アプリケーションが、アプリケーション管理情報、アクセス管理情報および認証管理情報などを含む共有管理情報を有することで、アプリケーション間のアクセスに対するセキュリティを高めることのできるＩＣカードを提供している。
【０００４】
しかしながら、特許文献１における共有管理情報は、マルチアプリケーションＩＣカード自身がアプリケーション間のアクセスを管理するための情報であって、ＩＣカードを処理するホストコンピュータは、この共有管理情報を活用することができない問題があった。
【０００５】
例えば、アプリケーションＢのプログラムコードをアプリケーションＡが流用している場合、アプリケーションＢを削除するとアプリケーションＡが正常に動作しないため、特許文献１などの技術が用いられ、アプリケーションＢのみを削除することは禁止される場合がある。この場合、アプリケーションＢを削除するときは、アプリケーションＡも同時に削除しなければならないが、ホストコンピュータ側はアプリケーション間の依存関係を知らないので、すみやかに、アプリケーションＢと共にアプリケーションＡを削除することはできない。
【特許文献１】特開２００２−７３１９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで上述の問題を鑑みて、本発明は、複数のアプリケーションを書換え可能な不揮発性メモリに搭載できるＩＣチップを実装したデバイス、好ましくはマルチアプリケーションＩＣカードを利用するコンピュータシステムにおいて、ホストコンピュータが、このデバイスに実装された各アプリケーション間の依存関係に基づいて、このデバイスの処理を行うことができるコンピュータシステム、このコンピュータシステムで使用されるデバイス、および、ホストコンピュータに組み込まれるプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決する第１の発明は、複数のアプリケーションを書換え可能な不揮発性メモリに搭載できるＩＣチップを実装したデバイスにおいて、前記デバイスは、搭載された各々の前記アプリケーション間における依存関係を含むアプリケーション属性管理情報を記憶し、更に、前記デバイスは、外部端末装置の指示に従い、前記アプリケーション属性管理情報を前記外部端末装置に送信する管理情報送信手段と、前記アプリケーション属性管理情報を参照することで、前記依存関係に影響を与えるコマンドの実行を判定し、前記依存関係に影響を与えるコマンドを実行するときは、コマンドの処理内容に基づいて前記アプリケーション属性管理情報を更新する判定手段と、を備えていることを特徴とする。
【０００８】
第１の発明に記載のデバイスによれば、前記デバイスが前記アプリケーション管理情報を記憶し、前記アプリケーション管理情報を前記外部端末装置に送信する前記管理情報送信手段を備えることで、前記デバイスを利用する前記外部端末装置に、前記アプリケーション管理情報を伝達することができ、加えて、前記デバイスが前記判定手段を備えることで、前記デバイスは、前記依存関係に影響を与えるコマンドの実行を管理することができ、前記依存関係に影響を与えるコマンドを実行するときのセキュリティを高めることができる。
【０００９】
更に、第２の発明は、第１の発明に記載のデバイスにおいて、前記デバイスが有する前記アプリケーション属性管理情報には、搭載された各々の前記アプリケーションが有するオブジェクトの相互利用に関する情報が含まれることを特徴とする。
【００１０】
更に、第３の発明は、第１の発明または第２の発明に記載のデバイスにおいて、前記判定手段が判定するコマンドには、前記アプリケーションを前記デバイスに追加搭載するコマンドが含まれ、前記判定手段は、前記アプリケーションを前記デバイスに追加搭載する処理を実行するときに、前記外部端末装置から送信され、他の各々の前記アプリケーション間における依存関係を示す情報に基づいて、前記アプリケーション属性管理情報を更新することを特徴とする。
【００１１】
更に、第４の発明は、第１の発明から第３の発明のいずれかに記載のデバイスにおいて、前記判定手段が管理するコマンドには、前記アプリケーションを前記デバイスから削除するコマンドが含まれ、前記判定手段は、前記アプリケーションを前記デバイスから削除する処理を実行するときに、削除する前記アプリケーションに基づいて、前記アプリケーション属性管理情報を更新することを特徴とする。
【００１２】
第２の発明から第４の発明に記載のデバイスによれば、記アプリケーション属性管理情報が、搭載された各々の前記アプリケーションが有するオブジェクトの相互利用に関する情報を含むことで、前記アプリケーションを前記デバイスに追加搭載するコマンドや、前記アプリケーションを前記デバイスから削除するコマンドを実行するときに、これらのコマンドの処理効率を高めると共に、これらのコマンドを実行したことによる悪影響（例えば、誤動作）を防ぐことができる。
【００１３】
更に、第５の発明は、第１の発明から第４の発明のいずれかに記載のデバイスにおいて、少なくとも、前記デバイスが前記外部端末装置の認証に成功した場合のみ、前記管理情報送信手段は、前記アプリケーション属性管理情報を前記外部端末装置に送信することを特徴とするデバイスである。
【００１４】
第５の発明によれば、予め認可された前記外部端末装置にのみ、前記アプリケーション属性管理情報を送信することができ、前記アプリケーション属性管理情報の悪用を防止できる。
【００１５】
更に、第６の発明は、第１の発明から第５の発明のいずれかに記載のデバイスにおいて、前記デバイスは、マルチアプリケーションＩＣチップを実装したＩＣカードであることを特徴とするデバイスである。
【００１６】
ここで、ＩＣカードとは、クレジットカードサイズのＩＣカード、携帯電話に内蔵されるＳＩＭカードなどを意味し、また、ＩＣカードの通信インターフェースは、接触型、非接触型、または、接触／非接触両用型のいずれかであってもよい。例えば、ＩＣカードをＳＩＭカードとすることで、携帯電話システムに本発明を適用することができる。
【００１７】
更に、第７の発明は、第１の発明から第６の発明のいずれかに記載の前記デバイスとホストコンピュータを利用したコンピュータシステムであって、前記ホストコンピュータは、前記デバイスから前記アプリケーション属性管理情報を取得する管理情報取得手段と、前記管理情報取得手段が取得した前記アプリケーション属性管理情報に従い、前記デバイスに送信するコマンドのスクリプトを生成し、生成した前記スクリプトを用いて前記デバイスを処理するデバイス処理手段とを備えていることを特徴とするコンピュータシステムである。
【００１８】
更に、第８の発明は、第７の発明に記載のコンピュータシステムであって、前記ホストコンピュータの前記管理情報取得手段が取得した前記アプリケーション属性管理情報に従い、前記デバイスに送信するコマンドの一つは、前記デバイスにアプリケーションを追加搭載するコマンドであることを特徴とするコンピュータシステムである。
【００１９】
更に、第９の発明は、第７の発明また第８の発明に記載のコンピュータシステムであって、前記ホストコンピュータの前記管理情報取得手段が取得した前記アプリケーション属性管理情報に従い、前記デバイスに送信するコマンドの一つは、前記デバイスからアプリケーションを削除するコマンドであることを特徴とするコンピュータシステムである。
【００２０】
第７の発明から第９の発明のいずれかによれば、前記ホストコンピュータが、前記アプリケーション管理情報を利用できることで、例えば、前記デバイスにアプリケーションを追加搭載する処理や、前記デバイスからアプリケーションを削除する処理を行うときに、前記コンピュータは無駄なコマンドを前記デバイスに送信することが無くなり、前記デバイスの処理効率を高めることができる。
【００２１】
更に、第１０の発明は、第７の発明から第１０の発明に記載のコンピュータシステムを構成するホストコンピュータに備えられた管理情報取得手段およびデバイス処理手段として、コンピュータを機能させるためのコンピュータプログラムである。
【発明の効果】
【００２２】
上述した本発明によれば、複数のアプリケーションを書換え可能な不揮発性メモリに搭載できるＩＣチップを実装したデバイス、好ましくはマルチアプリケーションＩＣカードを利用するコンピュータシステムにおいて、ホストコンピュータが、このデバイスに実装された各アプリケーション間の依存関係に基づいて、このデバイスの処理を行うことができるコンピュータシステム、このコンピュータシステムで使用されるデバイス、および、ホストコンピュータに組み込まれるプログラムを提供できる。
【発明を実施するための最良の形態】
【００２３】
ここから、本発明に係るコンピュータシステムであるＩＣカードシステム、このＩＣカードシステムで利用されるマルチアプリケーションＩＣカードについて、図を参照しながら詳細に説明する。図１は、ＩＣカードシステムの構成を説明する図である。図１に示したように、本発明に係るＩＣカードシステムは、本発明のデバイスであるマルチアプリケーションＩＣカード１０（以下、ＩＣカードと略す）と、カードリーダ（図示はしていない）を備え、ＩＣカード１０とデータ通信するホストコンピュータ２０とから構成される。
【００２４】
図２は、図１のＩＣカードシステムのブロック図である。まず、図２を用いてＩＣカード１０について説明する。図２に示したように、ＩＣカード１０にはソフトウェアとして、中間言語バーチャルマシーン１４と、中間言語バーチャルマシーン１４で動作するプログラムとして、カード発行者のセキュリティドメイン１２を有するカードマネージャ１１（以下、ＣＭ: Card Manager）と、複数のアプリケーション１３とが搭載される。
【００２５】
中間言語バーチャルマシーン１４とは、中間言語を解釈する機能を備え、アプリケーション１３等の実行環境となるプログラムであって、中間言語バーチャルマシーン１４のプログラムコードは、ＩＣカード１０の不揮発性メモリ（例えば、ＲＯＭ）に記憶される。ＩＣカード用の中間言語バーチャルマシーン１４としては、ＪＡＶＡ（登録商標）、ＭＵＬＴＯＳ（登録商標）が有名である。
【００２６】
中間言語バーチャルマシーン１４上で動作するアプリケーション１３とは、中間言語バーチャルマシーン１４に対応した中間言語で記述され、ある特定の用途のために設計されたプログラムである。アプリケーション１３のプログラムコードは、ＩＣカード１０の書換え可能な不揮発性メモリ（例えば、ＥＥＰＲＯＭ）に記憶される。
【００２７】
ＣＭ１１は、ＩＣカード１０内においてＩＣカード１０の発行者の代理人となるプログラムで、ＩＣカード１０の発行者のセキュリティドメイン１２を有し、ＣＭ１１は、後述するセキュリティドメイン１２の機能以外に、ＩＣカード１０の所有者を認証する機能などを有する。ＣＭ１１のプログラムコードは、中間言語バーチャルマシーン１４に対応した中間言語で記述され、好ましくはＩＣカード１０の不揮発性メモリ（例えば、ＲＯＭ）に搭載される。
【００２８】
ＣＭ１１が有するセキュリティドメイン１２は、ＩＣカード１０にアプリケーション１３をセキュアに追加搭載する機能、ＩＣカード１０に搭載されたアプリケーション１３をセキュアに削除する機能などを有する。セキュリティドメイン１２はセキュアにアプリケーション１３を追加搭載／削除するために、公開鍵を有し、アプリケーション１３を追加搭載／削除するときに、アプリケーション１３のデジタル署名を検証する。そして、デジタル署名の検証に成功したときのみ、セキュリティドメイン１２は、アプリケーション１３を追加搭載／削除する。
【００２９】
加えて、セキュリティドメイン１２は、アプリケーション１３を追加搭載／削除した後のＩＣカード１０の誤動作を防止するために、上述した機能に加え、ＩＣカード１０に搭載された各々のアプリケーション１３が有するオブジェクトの依存関係が少なくとも記述されたアプリケーション属性管理情報１２０を記憶し、アプリケーション１３を追加搭載／削除するときは、アプリケーション属性管理情報１２０を参照し、アプリケーション１３を追加搭載／削除の実行を管理する。
【００３０】
そしてセキュリティドメイン１２は、ＩＣカード１０にアプリケーション１３を追加搭載／削除するごとに、ＩＣカード１０にアプリケーション１３を追加搭載／削除した内容に従いアプリケーション属性管理情報１２０を更新する。
【００３１】
図３は、ＩＣカード１０に実装されたアプリケーション１３間のオブジェクトの依存関係を説明する図である。図３では、セキュリティドメイン１２に、３つのアプリケーションＡ〜Ｃが記憶されている（図３では、各々のアプリケーションには符号を付加していない）。アプリケーションＡ〜Ｃは、それぞれ複数のオブジェクト１３０を有し、図３においては、オブジェクト１３０の共有化として、アプリケーションＡはアプリケーションＢのオブジェクト１３０を参照し、アプリケーションＢはアプリケーションＣのオブジェクト１３０を参照している。
【００３２】
図３において、アプリケーションＢを削除することを考えると、アプリケーションＡはアプリケーションＢを参照しているため、アプリケーションＢを削除するとアプリケーションＡは正常に動作しない。よって、アプリケーションＢを単独で削除することはできず、アプリケーションＢを削除するときはアプリケーションＡも削除する必要がある。同様に、アプリケーションＣは単独で削除できず、アプリケーションＣを削除するときは、アプリケーションＡ及びアプリケーションＢを削除しなければならない。なお、アプリケーションＡは他のアプリケーションＢ，Ｃから参照されておらず、アプリケーションＡは単独で削除することができる。
【００３３】
図４は、図３で説明したアプリケーション１３の依存関係を示したアプリケーション属性管理情報１２０の一例を示した図で、本実施の形態においては、セキュリティドメイン１２は、アプリケーション属性管理情報１２０をマトリクス１２０ａで管理する。このマトリクス１２０ａにおいては、マトリクス１２０ａの行でアプリケーション１３の依存関係が示され、各列の「１」はその行のアプリケーション１３がその列のアプリケーション１３を参照していることを意味し、各列の「０」はその行のアプリケーション１３がその列のアプリケーション１３を参照していないことを意味する。図４では、アプリケーション属性管理情報１２０で、アプリケーションＡはアプリケーションＢを参照し、アプリケーションＢはアプリケーションＣを参照していることが示されている。
【００３４】
セキュリティドメイン１２は、アプリケーション１３がＩＣカード１０に追加搭載されるときは、ＣＭは、ＩＣカード１０に追加搭載するアプリケーション１３に対応する行と列とを図４のマトリクス１２０ａに新規に生成し、発行装置（例えば、ホストコンピュータ２０）からは、アプリケーション属性管理情報１２０の行に対応する情報が送信され、セキュリティドメイン１２は受信した上述の情報を新規行に書き込む。また、ＩＣカード１０からアプリケーション１３を削除するときは、ＩＣカード１０から削除するアプリケーション１３に対応する行と列を、図４のマトリクス１２０ａから削除する。
【００３５】
上述したようなアプリケーション１３間の依存関係をホストコンピュータが知らないと、ホストコンピュータ２０は思考錯誤でアプリケーション１３を削除することになるため、本来は削除する必要のないアプリケーション１３をも削除してしまう可能性がある。また、たとえホストコンピュータ２０がＩＣカード１０発行時の依存関係を知り得たとしても、ＩＣカード１０発行後にアプリケーション１３が追加された場合は、ＩＣカード１０発行時の依存関係は意味を持たない。
【００３６】
そこで、ホストコンピュータ２０がアプリケーション属性管理情報１２０を利用するために、ＩＣカード１０のＣＭ１１は、ホストコンピュータ２０にアプリケーション属性管理情報１２０を送信する管理情報送信手段を備える。この管理情報送信手段は、ホストコンピュータ２０から送信されるコマンドＡＰＤＵ（Application Protocol Data Unit)を処理するコマンドで実現され、本実施の形態においては、セキュリティドメイン１２やアプリケーション１３を選択するＳＥＬＥＣＴコマンド１１０で実現されている。
【００３７】
ＣＭ１１は、ホストコンピュータ２０から、セキュリティドメイン１２を選択するＳＥＬＥＣＴコマンドＡＰＤＵを受信すると、ＣＭ１１はＳＥＬＥＣＴコマンド１１０の実行結果と、ＳＥＬＥＣＴコマンド１１０の実行が正常に終了したときは、セキュリティドメイン１２が有するアプリケーション属性管理情報１２０とを含むレスポンスＡＰＤＵをホストコンピュータ２０に送信する。なお、上述の管理情報送信手段は読出しコマンド（例えば、ＲＥＡＤコマンド）でも実現できる。
【００３８】
ここから、図２で示したホストコンピュータ２０について説明する。ホストコンピュータ２０は、セキュリティドメイン１２を選択するＳＥＬＥＣＴコマンドＡＰＤＵをＩＣカード１０に送信し、ＩＣカード１０からアプリケーション属性管理情報１２０を取得する管理情報取得手段２１と、管理情報取得手段２１が取得したアプリケーション属性管理情報１２０に基づいて、ＩＣカード１０に送信するコマンドのスクリプトを生成し、生成したスクリプトを用いてＩＣカード１０を処理するＩＣカード処理手段２２を備えている。
【００３９】
ホストコンピュータ２０は、管理情報取得手段２１を用いてアプリケーション属性管理情報１２０を取得し、ＩＣカード処理手段２２は、取得したアプリケーション属性管理情報１２０を参照し、ＩＣカード１０に送信するコマンドのスクリプトを生成し、生成したスクリプトを用いてＩＣカード１０を処理する。
【００４０】
アプリケーション１３をＩＣカード１０に追加搭載するときは、アプリケーション属性管理情報１２０を参照し、追加搭載されるアプリケーション１３が参照するアプリケーション１３が搭載されていないときは、参照されるアプリケーション１３をも追加搭載する。また、アプリケーション１３をＩＣカード１０から削除するときは、アプリケーション属性管理情報１２０を参照し、削除されるアプリケーション１３を参照しているアプリケーション１３をも削除する。
【００４１】
例えば、図３でアプリケーションＢを削除するときは、ホストコンピュータ２０の管理情報取得手段２１はＳＥＬＥＣＴコマンドＡＰＤＵを送信し、セキュリティドメイン１２のアプリケーション属性管理情報１２０を取得する。そして、ＩＣカード処理手段２２は、取得したアプリケーション属性管理情報１２０から、アプリケーションＢに依存しているアプリケーション１３すべてを抽出し（ここでは、アプリケーションＡ）、アプリケーションＢと共にアプリケーションＡを削除するコマンドのスクリプトを生成し、アプリケーションＢとアプリケーションＡをＩＣカード１０から削除する。
【図面の簡単な説明】
【００４２】
【図１】本発明に係るＩＣカードシステムを説明する図。
【図２】ＩＣカードシステムのブロック図。
【図３】アプリケーション間のオブジェクトの共有化を説明する図。
【図４】アプリケーション属性管理情報を説明する図。
【符号の説明】
【００４３】
１０  ＩＣカード
１１  カードマネージャ
１１０  ＳＥＬＥＣＴコマンド
１２  セキュリティドメイン
１２０  アプリケーション属性管理情報
１３  アプリケーション
１３０  オブジェクト
１４  中間言語バーチャルマシーン
２０  ホストコンピュータ
２１  管理情報取得手段
２２  ＩＣカード処理手段
【図１】
2006338311.tif 000003
【図２】
2006338311.tif 000004
【図３】
2006338311.tif 000005
【図４】
2006338311.tif 000006