(57)【特許請求の範囲】
【請求項１】
必要に応じて外部装置と接続し、この外部装置との間でコマンドおよびレスポンスのやりとりを行うことにより、記録対象となるユーザデータを内部に記録するとともに種々の処理を行う機能をもった携帯可能情報記録媒体において、
外部装置との交信を行うＩ／Ｏ部と、
ＯＳプログラムを格納するＯＳ格納部と、
複数のアプリケーションプログラムを格納するアプリケーション格納部と、
ユーザデータを格納するユーザデータ格納部と、
外部装置から与えられたコマンドを、前記ＯＳプログラムまたは前記アプリケーションプログラムに基づいて実行し、実行結果をレスポンスとして外部装置へと返す処理を行う処理実行部と、
前記処理実行部のための作業エリアとして利用され、少なくとも前記ＯＳプログラムのための作業用データを格納するＯＳ用作業領域を確保するための作業用データ格納部と、
を備え、
前記処理実行部は、
外部装置から、特定のアプリケーションプログラムを指定する情報と、指定されたアプリケーションプログラムに付与すべき固有の識別子と、を含んだ準備コマンドが与えられたときに、前記作業用データ格納部内に、指定されたアプリケーションプログラムのための作業用データを格納するアプリケーション用作業領域を確保し、指定されたアプリケーションプログラムとこれに付与すべき固有の識別子との対応関係を定義する情報と、確保された前記アプリケーション用作業領域を特定する情報とを、前記ＯＳ用作業領域内に格納する処理を行い、
複数のアプリケーションプログラムについて、それぞれ前記準備コマンドが与えられた場合には、前記作業用データ格納部内に、個々のアプリケーションプログラムのためのアプリケーション用作業領域を、そのいずれもが利用できるようにそれぞれ別個に確保し、各アプリケーション用作業領域には、対応するアプリケーションプログラムに関して行われた認証処理の結果が格納されるようにし、個々のアプリケーションプログラムとこれに付与すべき固有の識別子との対応関係を定義する情報と、確保された個々のアプリケーション用作業領域を特定する情報とを、前記ＯＳ用作業領域内に、そのいずれもが利用できるようにそれぞれ別個に格納する処理を行い、複数のアプリケーションプログラムのいずれもが、コマンドの実行が可能な準備状態を維持するようにし、
外部装置から、識別子によって指定されたアプリケーションプログラムに対して所定の処理を実行させるための処理実行コマンドが与えられたときに、当該アプリケーションプログラムのために確保されたアプリケーション用作業領域を用いて、当該アプリケーションプログラムにより前記所定の処理を実行することを特徴とする携帯可能情報記録媒体。
【請求項２】
請求項１に記載の携帯可能情報記録媒体において、
処理実行部が、
外部装置から、識別子によって指定されたアプリケーションプログラムに関する認証を行うための認証コマンドが与えられたときに、この認証コマンドに応じた認証処理を実行し、認証結果を当該アプリケーションプログラムのために確保されたアプリケーション用作業領域に格納する処理を行い、
外部装置から、識別子によって指定されたアプリケーションプログラムに対して所定の処理を実行させるための処理実行コマンドが与えられたときに、当該アプリケーションプログラムのために確保されたアプリケーション用作業領域に格納されている認証結果を参照して、与えられた処理実行コマンドの実行が許可されうるものか否かを判定し、許可されうるものと判定された場合には、当該アプリケーションプログラムにより前記所定の処理を実行することを特徴とする携帯可能情報記録媒体。
【請求項３】
請求項２に記載の携帯可能情報記録媒体において、
外部装置から所定のアプリケーションプログラムに関する認証コマンドが与えられたときに、処理実行部が、当該アプリケーションプログラムによって実行が許可されうるコマンドのリストを示す情報を、認証結果としてアプリケーション用作業領域に格納することを特徴とする携帯可能情報記録媒体。
【請求項４】
請求項１〜３のいずれかに記載の携帯可能情報記録媒体において、
作業用データ格納部内に確保されたアプリケーション用作業領域を特定する情報として、当該領域の先頭アドレスと当該領域のサイズと、をＯＳ用作業領域内に格納することを特徴とする携帯可能情報記録媒体。
【請求項５】
請求項１〜４のいずれかに記載の携帯可能情報記録媒体において、
外部装置から準備コマンドが与えられたときに、処理実行部が、アプリケーション格納部に格納されているアプリケーションプログラムの内容を調査し、調査結果に応じたサイズのアプリケーション用作業領域を確保することを特徴とする携帯可能情報記録媒体。
【請求項６】
請求項５に記載の携帯可能情報記録媒体において、
アプリケーションプログラム内で用いられている変数および配列に関する情報に基づいて、当該アプリケーションプログラムのためのアプリケーション用作業領域のサイズを決定することを特徴とする携帯可能情報記録媒体。
【請求項７】
請求項１〜６のいずれかに記載の携帯可能情報記録媒体において、
外部装置から新たに使用可能な識別子を照会する照会コマンドが与えられたときに、処理実行部が、ＯＳ用作業領域を調査することにより定義済または未定義状態の識別子を認識し、認識した識別子をレスポンスとして外部装置に返す処理を行うことを特徴とする携帯可能情報記録媒体。
【請求項８】
請求項１〜７のいずれかに記載の携帯可能情報記録媒体において、
ＯＳ格納部、アプリケーション格納部、ユーザデータ格納部を不揮発性メモリによって構成し、作業用データ格納部を揮発性メモリによって構成したことを特徴とする携帯可能情報記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は携帯可能情報記録媒体に関し、特に、必要に応じて外部装置と接続し、この外部装置との間でコマンドおよびレスポンスのやりとりを行うことにより、記録対象となるユーザデータを内部に記録するとともに種々の処理を行う機能をもった携帯可能情報記録媒体に関する。
【０００２】
【従来の技術】
近年、半導体回路の集積化の進歩とともに、携帯可能情報記録媒体の情報記録容量も飛躍的に向上してきており、特に、ＩＣカードをはじめとするＣＰＵを内蔵した携帯可能情報記録媒体は、今後も様々な分野での需要が期待されている。たとえば、ＣＰＵ内蔵型のＩＣカードの場合、必要に応じて外部装置（リーダライタ装置）と接続され、この外部装置との間でコマンドおよびレスポンスをやりとりすることにより所定の処理を実行する機能を有している。どのようなコマンドを与えると、ＩＣカード内部でどのような処理が実行されるかは、ＩＣカードに組み込まれたＯＳプログラムおよびアプリケーションプログラムによって定まるため、通常、個々の用途に応じた処理機能を有する専用のアプリケーションプログラムがＩＣカード内に組み込まれる。たとえば、同一のＩＣカードを、病院の診察カードとして利用するとともに、金融口座用カードとして利用する場合であれば、診察カード用アプリケーションプログラムと、金融口座用アプリケーションプログラムとの双方が、当該ＩＣカードに組み込まれることになる。このように、最近では、ＩＣカードに内蔵されるメモリ容量も飛躍的に向上してきたため、複数のアプリケーションプログラムを予め組み込んだ多用途向けのＩＣカードが一般化してきている。また、発行後に、必要に応じて新たなアプリケーションプログラムを追加する機能を備えたＩＣカードも広く利用されている。たとえば、特開平１０−７９０００号公報には、バージョンアップなどのためにプログラムを追加する機能をもったＩＣカードが開示されている。
【０００３】
ＣＰＵを内蔵した携帯可能情報記録媒体の大きな特徴は、高度なセキュリティの確保が可能になるという点である。たとえば、現在普及している一般的なＩＣカードの場合、ＩＣカードを外部装置と接続して、両者間での交信セッションを開始する際に、認証処理が実行される。通常は、外部装置からの認証データを伴う認証コマンドを受けて、ＩＣカード内部で与えられた認証データの当否を判定し、その結果をＩＣカードの内部メモリに格納する、という認証段階が実行される。外部装置から与えられる認証データによっては、ＩＣカード内に格納されたデータの読み出しのみが許可される場合、新たなデータの追記のみが許可される場合、既存のデータの書換えまでもが許可される場合、など、様々な認証結果が得られることになる。そこで、通常は、交信セッションの開始時点において、上述した認証処理を実行し、認証結果をＩＣカード内のメモリに格納しておき、外部装置側から種々のコマンドが与えられたときに、メモリに格納されている認証結果を参照して、与えられたコマンドの実行が許可されうるものであるか否かを判定し、許可されうるものと判定された場合にのみ、当該コマンドが実行されるような構成がとられる。認証結果を格納するメモリとしては、ＲＡＭなどの揮発性メモリが用いられ、１回の交信セッションが完了して外部装置と切り離された時点で、認証結果はＩＣカード内から消去される。このように、認証処理は、各交信セッションごとに行う必要があるため、ＩＣカードを紛失したような場合でも、十分なセキュリティを確保することが可能になる。
【０００４】
【発明が解決しようとする課題】
上述したように、ＩＣカードに代表されるＣＰＵ内蔵型の携帯可能情報記録媒体では、用途に応じた複数のアプリケーションプログラムがインストールされるのが一般的になってきており、今後も、１枚の携帯可能情報記録媒体に組み込まれるアプリケーションプログラムの数は、益々増加してゆく傾向になるものと予想される。もちろん、外部装置から与えるアプリケーション用コマンドは、インストールされている複数のアプリケーションプログラムのうちのいずれか１つのプログラムによって処理される。そこで、アプリケーション用コマンドを与える際には、事前に、処理を行うアプリケーションプログラムを特定するための準備が必要になる。通常は、特定のアプリケーションを選択する情報を含むアプリケーション選択コマンドを与えることにより、この準備が行われる。
【０００５】
たとえば、診察カード用アプリケーションプログラムと、金融口座用アプリケーションプログラムとの双方がインストールされたＩＣカードを、病院の窓口で利用する場合には、ＩＣカードを病院の窓口に設置された外部装置に接続した後、外部装置からＩＣカードへ診察カード用アプリケーションプログラムを選択する旨の選択コマンドを与えて、当該アプリケーションを選択状態とし、当該アプリケーションに固有の認証処理を行い、その結果をメモリ（ＲＡＭ）に格納する準備段階を行う必要がある。こうして、診察カード用アプリケーションが選択された状態になった後は、外部装置側から与えられる通常のコマンドは、すべて選択状態にある診察カード用アプリケーションによって処理されることになる。このとき、個々のコマンドの実行の可否が、メモリに格納された認証結果に基づいて決定されることは上述したとおりである。
【０００６】
上述した多用途向けのＩＣカードなどにおいて、高度なセキュリティを確保するためには、認証処理を個々のアプリケーションごとに行うようにしておく必要がある。このため、従来の多用途向けのＩＣカードなどでは、新たにアプリケーションを選択するたびに、当該選択アプリケーションについての認証処理を行う必要がある。たとえば、病院の窓口において、診察カードとしてのＩＣカードに診療記録を書き込むとともに、金融口座用カードとしてのＩＣカードを利用して診療費用の精算を行うような場合、ＩＣカードを病院の窓口に設置された外部装置に接続した後、まず、外部装置からＩＣカードへ診察カード用アプリケーションプログラムを選択する旨の選択コマンドを与えて、診察カード用アプリケーションを選択状態にして診療記録を書き込む処理を実行した後、続けて、外部装置からＩＣカードへ金融口座用アプリケーションプログラムを選択する旨の選択コマンドを与えて、金融口座用アプリケーションを選択状態にして診療費用の精算情報を書き込む処理を実行することになる。このように、同一の交信セッションにおいて、複数のアプリケーションを利用して、一連の連携処理を進めるような利用形態は、今後も益々増えてゆくものと予想される。
【０００７】
しかしながら、従来の携帯可能情報記録媒体の場合、アプリケーションを切り替えるたびに選択コマンドを与え、しかもその都度、当該アプリケーションに関する認証処理を行う必要がある。このため、同一の交信セッションにおいて、複数のアプリケーションを切り替えながら一連の連携処理を行おうとすると、携帯可能情報記録媒体内部の処理負荷および外部装置との間の通信負荷が過大になるという問題が生じていた。
【０００８】
そこで本発明は、個々のアプリケーションごとのセキュリティを十分に確保しつつ、同一の交信セッションにおいて、複数のアプリケーションを切り替えながら一連の連携処理をスムーズに行うことが可能な携帯可能情報記録媒体を提供することを目的とする。
【０００９】
【課題を解決するための手段】
(1)   本発明の第１の態様は、必要に応じて外部装置と接続し、この外部装置との間でコマンドおよびレスポンスのやりとりを行うことにより、記録対象となるユーザデータを内部に記録するとともに種々の処理を行う機能をもった携帯可能情報記録媒体において、
外部装置との交信を行うＩ／Ｏ部と、
ＯＳプログラムを格納するＯＳ格納部と、
複数のアプリケーションプログラムを格納するアプリケーション格納部と、
ユーザデータを格納するユーザデータ格納部と、
外部装置から与えられたコマンドを、ＯＳプログラムまたはアプリケーションプログラムに基づいて実行し、実行結果をレスポンスとして外部装置へと返す処理を行う処理実行部と、
処理実行部のための作業エリアとして利用され、少なくともＯＳプログラムのための作業用データを格納するＯＳ用作業領域を確保するための作業用データ格納部と、
を設け、
処理実行部が、
外部装置から、特定のアプリケーションプログラムを指定する情報と、指定されたアプリケーションプログラムに付与すべき固有の識別子と、を含んだ準備コマンドが与えられたときに、作業用データ格納部内に、指定されたアプリケーションプログラムのための作業用データを格納するアプリケーション用作業領域を確保し、指定されたアプリケーションプログラムとこれに付与すべき固有の識別子との対応関係を定義する情報と、確保されたアプリケーション用作業領域を特定する情報とを、ＯＳ用作業領域内に格納する処理を行い、
複数のアプリケーションプログラムについて、それぞれ準備コマンドが与えられた場合には、作業用データ格納部内に、個々のアプリケーションプログラムのためのアプリケーション用作業領域を、そのいずれもが利用できるようにそれぞれ別個に確保し、各アプリケーション用作業領域には、対応するアプリケーションプログラムに関して行われた認証処理の結果が格納されるようにし、個々のアプリケーションプログラムとこれに付与すべき固有の識別子との対応関係を定義する情報と、確保された個々のアプリケーション用作業領域を特定する情報とを、ＯＳ用作業領域内に、そのいずれもが利用できるようにそれぞれ別個に格納する処理を行い、複数のアプリケーションプログラムのいずれもが、コマンドの実行が可能な準備状態を維持するようにし、
外部装置から、識別子によって指定されたアプリケーションプログラムに対して所定の処理を実行させるための処理実行コマンドが与えられたときに、当該アプリケーションプログラムのために確保されたアプリケーション用作業領域を用いて、当該アプリケーションプログラムにより所定の処理を実行するようにしたものである。
【００１０】
(2)   本発明の第２の態様は、上述の第１の態様に係る携帯可能情報記録媒体において、
処理実行部が、
外部装置から、識別子によって指定されたアプリケーションプログラムに関する認証を行うための認証コマンドが与えられたときに、この認証コマンドに応じた認証処理を実行し、認証結果を当該アプリケーションプログラムのために確保されたアプリケーション用作業領域に格納する処理を行い、
外部装置から、識別子によって指定されたアプリケーションプログラムに対して所定の処理を実行させるための処理実行コマンドが与えられたときに、当該アプリケーションプログラムのために確保されたアプリケーション用作業領域に格納されている認証結果を参照して、与えられた処理実行コマンドの実行が許可されうるものか否かを判定し、許可されうるものと判定された場合には、
当該アプリケーションプログラムにより所定の処理を実行するようにしたものである。
【００１１】
(3)   本発明の第３の態様は、上述の第２の態様に係る携帯可能情報記録媒体において、
外部装置から所定のアプリケーションプログラムに関する認証コマンドが与えられたときに、処理実行部が、当該アプリケーションプログラムによって実行が許可されうるコマンドのリストを示す情報を、認証結果としてアプリケーション用作業領域に格納するようにしたものである。
【００１２】
(4)   本発明の第４の態様は、上述の第１〜第３の態様に係る携帯可能情報記録媒体において、
作業用データ格納部内に確保されたアプリケーション用作業領域を特定する情報として、当該領域の先頭アドレスと当該領域のサイズと、をＯＳ用作業領域内に格納するようにしたものである。
【００１３】
(5)   本発明の第５の態様は、上述の第１〜第４の態様に係る携帯可能情報記録媒体において、
外部装置から準備コマンドが与えられたときに、処理実行部が、アプリケーション格納部に格納されているアプリケーションプログラムの内容を調査し、調査結果に応じたサイズのアプリケーション用作業領域を確保するようにしたものである。
【００１４】
(6)   本発明の第６の態様は、上述の第５の態様に係る携帯可能情報記録媒体において、
アプリケーションプログラム内で用いられている変数および配列に関する情報に基づいて、当該アプリケーションプログラムのためのアプリケーション用作業領域のサイズを決定するようにしたものである。
【００１５】
(7)   本発明の第７の態様は、上述の第１〜第６の態様に係る携帯可能情報記録媒体において、
外部装置から新たに使用可能な識別子を照会する照会コマンドが与えられたときに、処理実行部が、ＯＳ用作業領域を調査することにより定義済または未定義状態の識別子を認識し、認識した識別子をレスポンスとして外部装置に返す処理を行うようにしたものである。
【００１６】
(8)   本発明の第８の態様は、上述の第１〜第７の態様に係る携帯可能情報記録媒体において、
ＯＳ格納部、アプリケーション格納部、ユーザデータ格納部を不揮発性メモリによって構成し、作業用データ格納部を揮発性メモリによって構成するようにしたものである。
【００１７】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。なお、本発明は一般的な携帯可能情報記録媒体に広く適用可能であるが、ここでは最も一般的な携帯可能情報記録媒体であるＩＣカードに本発明を適用した例を述べることにする。
【００１８】
§１．本発明に係るＩＣカードの基本構成
図１は、本発明の一実施形態に係るＩＣカード１００（携帯可能情報記録媒体）を、外部装置２００に接続した状態を示すブロック図である。外部装置２００は、一般に、リーダライタ装置と呼ばれている装置であり、通常は、パソコンなどに接続して利用される。ＩＣカード１００には、外部装置２００と交信を行うためのＩ／Ｏ部１１０と、ＩＣカード内で種々の処理を実行する処理実行部１２０と、種々のデータやプログラムを格納するメモリ部１３０とが内蔵されている。ＩＣカード１００と外部装置２００との間の交信は、コマンドおよびレスポンスのやりとりによって行われる。すなわち、外部装置２００側から所定のコマンドをＩＣカード１００に対して送信すると、このコマンドは、Ｉ／Ｏ部１１０において受信されて処理実行部１２０へと伝達される。処理実行部１２０は、このコマンドを解釈実行し、処理結果をレスポンスとしてＩ／Ｏ部１１０へと引き渡す。こうして、このレスポンスは、Ｉ／Ｏ部１１０から外部装置２００へと送信されることになる。処理実行部１２０は、メモリ部１３０内に格納されているプログラムに基づいて、与えられたコマンドの実行を行い、このコマンドの実行に伴い、必要に応じて、メモリ部１３０内に格納されているデータへのアクセスを行うことになる。図示のとおり、メモリ部１３０は、ＯＳ格納部１３１、アプリケーション格納部１３２、ユーザデータ格納部１３３、作業用データ格納部１３４の４つの格納部によって構成されている。
【００１９】
もっとも、これらの各構成要素は、本発明を説明する便宜上、機能面に着目して捉えた構成要素であり、実際のハードウエア上の構成要素に対応しているものではない。実際には、処理実行部１２０は、ＩＣカード内に埋め込まれたＣＰＵやその他の論理装置によって実現される。もちろん、処理実行部１２０は、ＣＰＵなどのハードウエア単独で実現できる構成要素ではなく、メモリ部１３０内に格納されているプログラムに基づく動作が前提となって実現される構成要素である。また、メモリ部１３０は、ＲＯＭ，ＲＡＭ，ＥＥＰＲＯＭなどのメモリによって実現されることになる。ここに示す実施形態の場合、ＯＳ格納部１３１はＲＯＭ、アプリケーション格納部１３２およびユーザデータ格納部１３３はＥＥＰＲＯＭ、作業用データ格納部１３４はＲＡＭによって実現されている。本発明を実施する上でのメモリ構成は、必ずしもこの実施形態のとおりでなくてもかまわないが、電源を内蔵しない一般的なタイプの携帯可能情報記録媒体の場合（別言すれば、外部装置２００と接続されたときに、外部装置２００側から電源供給を受けるタイプの携帯可能情報記録媒体の場合）、ＯＳ格納部１３１、アプリケーション格納部１３２、ユーザデータ格納部１３３は、外部装置２００と切り離された後もデータを保持できるように不揮発性メモリにしておく必要がある。また、少なくとも、ユーザデータ格納部１３３については、書換えが可能な不揮発性メモリ（ＥＥＰＲＯＭ）にしておく必要がある。実用上は、アプリケーション格納部１３２も、書換え可能な不揮発性メモリ（ＥＥＰＲＯＭ）としておき、必要に応じて、新たなアプリケーションプログラムをインストールすることができるようにしておくのが好ましい。一方、作業用データ格納部１３４は、セキュリティを確保する上で、書換え可能な揮発性メモリ（ＲＡＭ）にしておくようにする。このような構成にしておけば、ＩＣカード１００を外部装置２００から切り離して携帯している状態では、作業用データ格納部１３４内のデータのみが消去された状態となる。
【００２０】
続いて、メモリ部１３０を構成する各格納部に格納される情報について説明する。まず、ＯＳ格納部１３１には、このＩＣカード１００の基本動作を記述したＯＳプログラムが格納される。現在、ＩＣカード用のＯＳプログラムとしては、ＪａｖａＣａｒｄやＭＵＬＴＯＳなどが普及しており、処理実行部１２０は、このＯＳプログラムに基づいて基本的な動作を行うことになる。これに対して、アプリケーション格納部１３２には、複数のアプリケーションプログラムが格納される。ここに示す実施形態の場合、アプリケーション格納部１３２はＥＥＰＲＯＭ内のメモリ領域に設けられており、ＩＣカードの発行後に、任意にアプリケーションプログラムを追加することができる仕様となっている。図１に示す例では、３つのアプリケーションプログラムＡＰ１，ＡＰ２，ＡＰ３が既に格納された状態が示されている。ユーザデータ格納部１３３は、このＩＣカード１００の所有者であるユーザに関する個人データや取引データなど、このＩＣカード１００に記録すべき対象となるユーザデータ（ＩＣカードの発行者に関するデータも含む）が格納される。図示の例では、アプリケーションプログラムＡＰ１，ＡＰ２，ＡＰ３のそれぞれに利用されるユーザデータＵＤ１，ＵＤ２，ＵＤ３が別個独立して格納された状態が示されている。もちろん、図示の例では示されていないが、この他に、複数のアプリケーションで共通して利用される共通ユーザデータを格納するようにしてもかまわない。
【００２１】
また、作業用データ格納部１３４は、処理実行部１２０のための作業エリアとして利用される領域である。処理実行部１２０は、外部装置２００から与えられたコマンドがＯＳ用コマンドであった場合には、ＯＳ格納部１３１内のＯＳプログラムに基づいてこれを実行し、外部装置２００から与えられたコマンドがアプリケーション用コマンドであった場合には、アプリケーション格納部１３２内の所定のアプリケーションプログラムに基づいてこれを実行し、それぞれ実行結果をレスポンスとして外部装置２００へと返す処理を行う。いずれの場合にも、作業用データ格納部１３４が作業エリアとして利用される。後述するように、処理実行部１２０がＯＳプログラムを実行する際には、作業用データ格納部１３４内のＯＳ用作業領域が作業エリアとして利用され、処理実行部１２０が所定のアプリケーションプログラムを実行する際には、作業用データ格納部１３４内の当該アプリケーション用に確保されたアプリケーション用作業領域が作業エリアとして利用されることになる。ここで、ＯＳ用作業領域は、ＩＣカード１００を外部装置２００に接続して交信セッションを開始した時点の初期設定動作により、作業用データ格納部１３４内に自動的に確保されることになるが、個々のアプリケーション用作業領域は、後述するように、外部装置２００側から準備コマンドを与えることにより、確保されることになる。
【００２２】
§２．本発明に係るＩＣカードの基本動作
続いて、図１に示すＩＣカードの基本動作についての説明を行う。ＩＣカード１００は、代表的な携帯可能情報記録媒体であり、通常は、ユーザによって携帯されることになる。上述したように、この実施形態では、ＩＣカード１００への電源供給は外部装置２００側から行われるため、携帯時にはＩＣカード１００への電源供給は行われていないが、ＯＳ格納部１３１、アプリケーション格納部１３２、ユーザデータ格納部１３３は不揮発性メモリによって構成されているため、これらの各格納部に記録されたデータは失われることはない。一方、作業用データ格納部１３４は揮発性メモリ（ＲＡＭ）によって構成されているため、携帯時には、作業用データ格納部１３４内のデータは失われた状態となる。
【００２３】
前述した例のように、病院の窓口で診療記録を行ったり、金融口座に関する精算を行ったりする際には、このＩＣカード１００を外部装置２００に接続して、両者間での交信を行うことになる。交信開始時には、外部装置２００側からＩＣカード１００へと電源供給が行われ、ＩＣカード１００側のＣＰＵにリセットがかかり、処理実行部１２０は、ＯＳ格納部１３１に格納されているＯＳプログラムの初期ルーチンを実行して、交信セッションのための環境を整える作業を行う。作業用データ格納部１３４内のＯＳ用作業領域は、この時点で確保されることになる。こうして、交信セッションを行うための環境が整備されたら、以後は、外部装置２００側からコマンドを与えると、ＩＣカード１００側からこれに応じたレスポンスが返ってくる、という相互交信が繰り返されることになる。１回の交信セッションが完了したら、ＩＣカード１００は、外部装置２００から切り離され、再び、ユーザによって携帯されることになる。このとき、揮発性メモリ（ＲＡＭ）からなる作業用データ格納部１３４の内容はすべて失われる。上述したように、作業用データ格納部１３４内には、認証結果が記録されることになるが、この認証結果は各交信セッションごとにクリアされることになり、セキュリティを確保する上では都合がよい。
【００２４】
処理実行部１２０は、外部装置２００側からコマンドが与えられると、当該コマンドがＯＳ用コマンドである場合には、ＯＳ格納部１３１内のＯＳプログラムに基づいてこれを実行し、これに応じたレスポンスを外部装置２００側へ返す処理を行い、当該コマンドがアプリケーション用コマンドである場合には、アプリケーション格納部１３２内のいずれかのアプリケーションプログラムに基づいてこれを実行し、これに応じたレスポンスを外部装置２００側へ返す処理を行う。ただし、アプリケーション用コマンドを実行する際には、前もって当該アプリケーションについての準備を行う必要がある。
【００２５】
従来の一般的なＩＣカードの場合、特定のアプリケーションについての準備は、外部装置２００側から当該特定のアプリケーションを選択する選択コマンドによって行われていた。このような選択コマンドによる従来の準備方法では、いずれか１つのアプリケーションプログラムしか準備状態にすることができず、別なアプリケーションプログラムに切り替える際には、新たな選択コマンドを与える必要がある。しかも前述したように、アプリケーションを切り替えるために新たな選択コマンドを与えた場合、その都度、当該アプリケーションに関する認証処理を行う必要があるので、同一の交信セッションにおいて、複数のアプリケーションを切り替えながら一連の連携処理を行おうとすると、ＩＣカード１００内部の処理負荷および外部装置２００との間の通信負荷が過大になるという問題が生じていた。
【００２６】
本発明の基本概念は、複数のアプリケーションプログラムを同時に準備状態にしておき、この準備状態になっている個々のアプリケーションにそれぞれ識別子を定義し、外部装置２００側から与える個々のコマンドにそれぞれ識別子を付加することにより、同時に準備状態になっている複数のアプリケーションのうちの１つを特定し、特定されたアプリケーションプログラムによって、与えられたコマンドを処理させよう、という考え方に基づくものである。このように、複数のアプリケーションの同時準備状態を維持するため、本発明では、作業用データ格納部１３４内に、個々のアプリケーションごとにそれぞれ別個の作業領域を確保するようにし、これら各作業領域内に各アプリケーションごとの認証結果をそれぞれ格納しておくようにしている。
【００２７】
以下、このような基本概念に基づく具体的な動作を、図２に示す一連のコマンド(1) 〜(10)を用いた例に基づいて説明する。図示のコマンドのうち、(1) ，(2) は個々のアプリケーションプログラムを準備状態にするための準備コマンド（ＯＳ用コマンド）であり、(3) 〜(8) は個々のアプリケーションプログラムについての認証を行うための認証コマンド（アプリケーション用コマンド）であり、(9) ，(10)は個々のアプリケーションプログラムを用いて所定の処理を実行させるための処理実行コマンド（アプリケーション用コマンド）である。ここでは、図１に示すように、アプリケーション格納部１３２内に３つのアプリケーションプログラムＡＰ１，ＡＰ２，ＡＰ３が格納されており、説明の便宜上、ＡＰ１が病院の診察カード用アプリケーション、ＡＰ２が金融口座用アプリケーション、ＡＰ３がガソリンスタンドでのサービス用アプリケーションである例について、以下の説明を行うことにする。結局、このＩＣカード１００は、診察カード、金融口座用カード、ガソリンスタンドでのサービスカード、という３つの用途に利用されることになる。
【００２８】
いま、このＩＣカード１００のユーザが、病院の窓口において、診察カードとしてのＩＣカードに診療記録を書き込むとともに、金融口座用カードとしてのＩＣカードを利用して診療費用の精算を行う場合を考えてみる。この場合、従来のＩＣカードでは、ＩＣカードを病院の窓口に設置された外部装置に接続した後、まず、外部装置からＩＣカードへ診察カード用アプリケーションプログラムを選択する旨の選択コマンドを与えて、診察カード用アプリケーションを選択状態にして診療記録を書き込む処理を実行した後、続けて、外部装置からＩＣカードへ金融口座用アプリケーションプログラムを選択する旨の選択コマンドを与えて、金融口座用アプリケーションを選択状態にして診療費用の精算情報を書き込む処理を実行することになる。そして、各選択コマンドを与えるたびに、各アプリケーションごとに定められた認証処理を行う必要がある。これに対して本発明では、図２に示されているように、まず、準備コマンド(1) ，(2) を与え、一連の処理に必要な２つのアプリケーションＡＰ１，ＡＰ２を同時に準備状態にした上で、アプリケーションＡＰ１についての認証コマンド(3) 〜(5) およびアプリケーションＡＰ２についての認証コマンド(6) 〜(8) を与え、これら両アプリケーションについてのそれぞれの認証処理を行い、その結果を作業用データ格納部１３４に格納する。この状態では、既に、アプリケーションＡＰ１，ＡＰ２が同時に準備完了かつ認証完了の状態となっている。そこで、個々のアプリケーションに対して所定の処理実行コマンド(9) ，(10)を与え、各アプリケーションプログラムにより所定の処理を実行させればよい。
【００２９】
図２に示す準備コマンド(1) ，(2) は、特定のアプリケーションプログラムを指定する情報と、指定されたアプリケーションプログラムに付与すべき固有の識別子と、を含んでいる。たとえば、準備コマンド(1) は、当該コマンドが準備コマンドであることを示すコマンド名「ＰＲＥＰＡＲＥ」と、アプリケーションＡＰ１（診察カード用アプリケーション）を指定する情報（たとえば、アプリケーション名）と、この指定されたアプリケーションプログラムに付与すべき固有の識別子「Ｃｈ１」と、によって構成されている。処理実行部１２０は、このような準備コマンドが与えられると、作業用データ格納部１３４内に、指定されたアプリケーションプログラムのための作業用データを格納するアプリケーション用作業領域を確保し、指定されたアプリケーションプログラムとこれに付与すべき固有の識別子との対応関係を定義する情報と、確保されたアプリケーション用作業領域を特定する情報とを、ＯＳ用作業領域内に格納することにより、当該特定のアプリケーションプログラムを利用可能状態とする処理を行う。
【００３０】
具体的には、準備コマンド(1) が与えられた場合、作業用データ格納部１３４内に、アプリケーションＡＰ１の作業エリアとして、図１に示すようにＡＰ１用作業領域が確保される。そして更に、作業用データ格納部１３４内のＯＳ用作業領域（前述したように、ＩＣカード１００を外部装置２００に接続した直後に行われる交信セッションの環境整備段階において既に確保されている）に、アプリケーションＡＰ１とこれに付与すべき固有の識別子「Ｃｈ１」との対応関係を定義する情報と、確保されたＡＰ１用作業領域を特定する情報とが書き込まれることになる。同様に、準備コマンド(2) が与えられた場合、作業用データ格納部１３４内に、アプリケーションＡＰ２の作業エリアとして、ＡＰ２用作業領域が確保される。そして更に、作業用データ格納部１３４内のＯＳ用作業領域に、アプリケーションＡＰ２とこれに付与すべき固有の識別子「Ｃｈ２」との対応関係を定義する情報と、確保されたＡＰ２用作業領域を特定する情報とが書き込まれることになる。
【００３１】
図３は、上述した準備コマンド(1) ，(2) の実行により、ＯＳ用作業領域に書き込まれた情報の一例を示す図である。図３(a) に示す情報は準備コマンド(1) によって書き込まれた情報であり、図３(b) に示す情報は準備コマンド(2) によって書き込まれた情報である。この例では、アプリケーションプログラムとこれに付与すべき固有の識別子との対応関係を定義する情報として、識別子とこれに対応するアプリケーションプログラムの先頭アドレスとが対応づけて書き込まれている。たとえば、図３(a) の例では、識別子「Ｃｈ１」とアドレス「Ａｄｄ１１」（アプリケーション格納部１３２内に格納されたアプリケーションプログラムＡＰ１の先頭アドレス）とを対応づけて格納することにより、アプリケーションプログラムＡＰ１が識別子「Ｃｈ１」に対応することが示されている。また、作業用データ格納部１３４内に確保されたアプリケーション用作業領域を特定する情報としては、当該領域の先頭アドレスと当該領域のサイズとが格納されている。たとえば、図３(a) の例では、アプリケーションＡＰ１用作業領域の先頭アドレス「Ａｄｄ１２」（作業用データ格納部１３４内に確保された領域の先頭アドレス）と、当該領域のサイズ「２ｋＢ」とによって、ＡＰ１用作業領域が特定されている。図３(b) に示す情報は、アプリケーションＡＰ２に関する同様の情報である。
【００３２】
結局、準備コマンド(1) ，(2) の実行により、図１に示す作業用データ格納部１３４内に、２つのアプリケーション用作業領域（ＡＰ１用作業領域とＡＰ２用作業領域：図１に示されているＡＰ３用作業領域は、図２に示す動作例では確保されない）が確保され、ＯＳ用作業領域には、図３に示すような情報が格納された状態となる。このような準備コマンドの実行により、２つのアプリケーションＡＰ１，ＡＰ２が同時に利用可能状態となる。このように、本発明における準備コマンドは、従来のＩＣカードで用いられている選択コマンドとは異なり、同時に複数のアプリケーションプログラムを利用可能状態にすることができる。もっとも、個々のアプリケーションプログラムを実質的に利用するには、次のような認証処理を経る必要がある。
【００３３】
図２に示す認証コマンド(3) 〜(8) は、従来のＩＣカードにおいても一般に利用されている認証コマンドであり、これらのコマンドによって実行される認証処理の実体は、従来のＩＣカードで行われていた認証処理と同じである。ただ、本発明における認証コマンドの特徴は、コマンド内に、特定の識別子が含まれており、この特定の識別子によって認証処理の対象となる特定のアプリケーションプログラムが指定されている点である。たとえば、認証コマンド(3) 〜(5) には、いずれも「Ｃｈ１」なる識別子が含まれており、これらの認証コマンドがアプリケーションプログラムＡＰ１についてのコマンドであることが示されており、認証コマンド(6) 〜(8) には、いずれも「Ｃｈ２」なる識別子が含まれており、これらの認証コマンドがアプリケーションプログラムＡＰ２についてのコマンドであることが示されている。本発明では、同時に複数のアプリケーションプログラムが利用可能状態となっているため、アプリケーション用の認証コマンドを与える場合には、利用可能状態となっている複数のアプリケーションのうちの１つを特定するための識別子が必要になる。
【００３４】
認証コマンド(3) は、外部装置２００側から与えられたパスワード（コマンドに含まれている「Password」なるデータ）が、ＩＣカード１００側に記録されているアプリケーションＡＰ１に関するパスワード（ユーザデータ格納部１３３内のユーザデータＵＤ１内に格納されている）と一致しているか否かを確認するコマンドであり、この認証コマンドに応じた認証処理を実行することにより得られる認証結果が、ＡＰ１用作業領域内に書き込まれることになる。具体的には、パスワードの一致／不一致の結果（ＩＣカード１００側に複数のパスワードが格納されている場合には、いずれのパスワードと一致したかを示す結果）が、認証結果として格納される。
【００３５】
一方、認証コマンド(4) ，(5) は、２つのコマンドにより１つの認証処理を実行させるためのコマンド対である。まず、認証コマンド(4) は、ＩＣカード１００の内部で任意の乱数を発生させ、これを外部装置２００側にレスポンスとして返すことを要求するコマンドである。処理実行部１２０は、このコマンド内に含まれている識別子「Ｃｈ１」に応じて、アプリケーションＡＰ１に関して乱数を発生し、これを外部装置２００側にレスポンスとして返す処理を行う。このとき、発生させた乱数は、いずれかの場所（たとえば、ＡＰ１用作業領域内）に記録しておくようにする。外部装置２００側では、この返された乱数を所定のアルゴリズムに従って暗号化し、得られた暗号データ「AuthData」を含む認証コマンド(5) を、ＩＣカード１００へと与える処理を行う。すなわち、図２に示す認証コマンド(5) 内の「AuthData」は、認証コマンド(4) のレスポンスとして得られた乱数に基づいて作成された暗号データということになる。認証コマンド(5) を受け取った処理実行部１２０は、先程発生させた乱数を、外部装置２００側で行われた暗号化と同等のアルゴリズム（アプリケーションプログラムＡＰ１内に含まれている）によって暗号化し、その結果が認証コマンド(5) 内に含まれていた暗号データ「AuthData」と一致するか否かを認証する。もちろん、この認証結果も、ＡＰ１用作業領域内に書き込まれる。
【００３６】
かくして、認証コマンド(3) 〜(5) の実行により、アプリケーションＡＰ１に関する認証処理が行われ、認証結果が作業用データ格納部１３４内のＡＰ１用作業領域内に格納されることになる。認証コマンド(6) 〜(8) は、アプリケーションＡＰ２に関する同様の認証コマンドであり、これらの認証コマンドに基づく認証処理の結果は、作業用データ格納部１３４内のＡＰ２用作業領域内に格納されることになる。なお、図２に示す例では、２つのアプリケーションについての準備コマンド(1) ，(2) を実行した後、アプリケーションＡＰ１についての認証コマンド(3) 〜(5) を実行し、続いて、アプリケーションＡＰ２についての認証コマンド(6) 〜(8) を実行しているが、特定のアプリケーションに関して「準備コマンドを実行した後に認証コマンドを実行する」という条件が満たされる限り、これら各コマンドの順序は自由に変更することが可能である。たとえば、認証コマンド(3) の直後に、認証コマンド(6) を実行するようにしてもかまわないし、準備コマンド(1) の直後に、認証コマンド(3) 〜(5) を実行するようにしてもかまわない。各コマンドには識別子が含まれているので、この識別子により、各コマンドがいずれのアプリケーションに関するコマンドであるかを識別することが可能である。
【００３７】
こうして、図２の準備コマンド(1) ，(2) および認証コマンド(3) 〜(8) が完了すると、２つのアプリケーションＡＰ１，ＡＰ２の準備処理および認証処理が完了したことになり、両アプリケーションを利用する環境がすべて整ったことになる。この状態になれば、外部装置２００側から、これら２つのアプリケーション用の処理実行コマンドを与え、これを実行させることができる。ただ、複数のアプリケーションが同時に利用可能状態となっているため、個々の処理実行コマンドには、当該コマンドを実行させるアプリケーションを特定するための識別子を含ませておくようにする。処理実行部１２０は、このように、識別子によって指定されたアプリケーションプログラムに対して所定の処理を実行させるための処理実行コマンドが与えられると、当該アプリケーションプログラムのために確保されたアプリケーション用作業領域に格納されている認証結果を参照して、与えられた処理実行コマンドの実行が許可されうるものか否かを判定し、許可されうるものと判定された場合には、当該アプリケーションプログラムを用いて、所定の処理を実行する。
【００３８】
たとえば、図２の処理実行コマンド(9) には、「Ｃｈ１」なる識別子が含まれているので、処理実行部１２０は、このコマンドをアプリケーションＡＰ１に基づいて実行する。このとき、まず、ＡＰ１用作業領域に格納されている認証結果（認証コマンド(3) 〜(5) の実行により得られた認証結果）を参照して、当該コマンドの実行が許可されうるものか否かを判定する。たとえば、認証成功か失敗かのいずれかの情報が認証結果として格納されていた場合（具体的には、パスワードなどの一致か不一致かを示す情報が記録されていた場合）は、認証成功なる情報が格納されていた場合に限り、当該コマンドの実行が許可されうるものと判定することになる。そして肯定的な判定がなされた場合には、当該コマンドを実行してこれに応じたレスポンスを返し、否定的な判定がなされた場合には、エラーを示すレスポンスを返す。具体的には、処理実行コマンド(9) は、ファイル「File３」内のレコード「Record２」のデータを読み出すコマンドであり、ユーザデータ格納部１３３内のユーザデータＵＤ１内の該当データが読み出され、レスポンスとして外部装置２００側に返されることになる。
【００３９】
一方、図２の処理実行コマンド(10)には、「Ｃｈ２」なる識別子が含まれているので、処理実行部１２０は、このコマンドをアプリケーションＡＰ２に基づいて実行する。このとき、まず、ＡＰ２用作業領域に格納されている認証結果（認証コマンド(6) 〜(8) の実行により得られた認証結果）を参照して、当該コマンドの実行が許可されうるものか否かを判定する。そして肯定的な判定がなされた場合にのみ、当該コマンドの実行が行われる。具体的には、処理実行コマンド(10)は、ファイル「File２」内のレコード「Record１」を直前に読み出されたデータに更新するコマンドであり、処理実行コマンド(9) によって読み出されたデータによって、ユーザデータ格納部１３３内のユーザデータＵＤ２内の該当レコードの内容が書き替えられ、書き替え成功を示すレスポンスが外部装置２００側に返されることになる。
【００４０】
このように、本発明に係るＩＣカードを利用すれば、病院の窓口において、診察カードとしてのＩＣカードに診療記録を書き込むとともに、金融口座用カードとしてのＩＣカードを利用して診療費用の精算を行うような場合、診察カード用アプリケーションＡＰ１と、金融口座用アプリケーションＡＰ２との双方を利用可能状態、かつ、認証完了状態としておけば、識別子でいずれかのアプリケーションを指定した処理実行コマンドを与えることにより、所望のアプリケーションに対して所望の処理を実行させることが可能になる。図２に示す例では、２つの処理実行コマンド(9) ，(10)を与えた例が示されているが、アプリケーションＡＰ１，ＡＰ２についての処理実行コマンドであれば、この後にも、多数のコマンドを連続して与えることが可能になる。しかも、コマンドの対象となるアプリケーションは、識別子によって指定することができ、アプリケーション切り替え時には、新たな認証処理を行う必要はない。このように、本発明に係るＩＣカードによれば、同一の交信セッションにおいて、複数のアプリケーションを利用して、一連の連携処理を進めるような利用形態をスムーズに行うことができるようになる。
【００４１】
§３．本発明に係る携帯可能情報記録媒体の変形例
これまで、本発明をＩＣカードに適用した基本的な実施形態を述べたが、ここでは、本発明の変形例をいくつか述べておく。
【００４２】
(1)   上述したように、本発明では、外部装置から所定のアプリケーションプログラムに関する認証コマンドが与えられたときに、処理実行部１２０は、この認証コマンドに基づく認証処理を実行し、認証結果を当該アプリケーションに関するアプリケーション用作業領域に格納し、以後、当該アプリケーションに関する処理実行コマンドが与えられた場合には、この認証結果を参照して、当該コマンドの実行可否を決定することになる。ここで留意すべき点は、アプリケーション用作業領域に格納される認証結果は、必ずしも「認証成功か認証失敗の２通りの結果」ではないという点である。すなわち、実用上は、外部装置２００側のもつアクセス権に応じて、複数通りの認証結果を格納するようにすることができる。たとえば、データの読み出しの権限のみを与える第１のパスワード、データの読み出しおよびデータの追記の権限を与える第２のパスワード、データの書き替えも含めたすべての権限を与える第３のパスワードなどを予め定めておき、いずれのパスワードを用いた認証コマンドが行われたかによって、それぞれ異なる認証結果を格納することが可能である。この場合であれば、第１のパスワードによる認証が行われた場合には、データの読み出しのみが可能である旨の認証結果を書き込むようにし、第２のパスワードによる認証が行われた場合には、データの読み出しおよびデータの追記が可能である旨の認証結果を書き込むようにし、第３のパスワードによる認証が行われた場合には、すべての処理が可能である旨の認証結果を書き込むようにすればよい。
【００４３】
図４に示す例は、認証対象となった個々のアプリケーションプログラムによって実行が許可されうるコマンドのリストを示す情報を、認証結果としてアプリケーション用作業領域に格納した例を示す図である。この例では、アプリケーションＡＰ１用作業領域には、「READ RECORD （１レコードデータの読み出しコマンド）」、「UPDATE RECORD （１レコードデータの更新コマンド）」、「WRITE RECORD（１レコードデータの追記コマンド）」なる３つのコマンドを示す情報が認証結果として格納されており、アプリケーションＡＰ２用作業領域には、「READ RECORD 」、「UPDATE RECORD 」なる２つのコマンドを示す情報が認証結果として格納されている。このような実行可能コマンドリストを認証結果として格納しておくようにすれば、任意の処理実行コマンドが与えられたときに、当該コマンドの実行の可否を直ちに判定することが可能になる。
【００４４】
(2)   本発明では、特定のアプリケーションプログラムに関する準備コマンドが与えられると、作業用データ格納部１３４内に、当該アプリケーションについてのアプリケーション用作業領域が処理実行部１２０によって確保されることになる。ただ、確保すべき作業領域のサイズは、通常、個々のアプリケーションごとに異なり、大きなサイズの作業領域が必要なアプリケーションもあれば、小さなサイズの作業領域ですむアプリケーションもある。そこで、実用上は、処理実行部１２０が、アプリケーション格納部１３２に格納されている当該アプリケーションプログラムの内容を調査し、調査結果に応じたサイズのアプリケーション用作業領域を確保するようにするのが好ましい。たとえば、図２に示す準備コマンド(1) が与えられた場合、処理実行部１２０は、アプリケーション格納部１３２に格納されているアプリケーションプログラムＡＰ１の内容を調査し、このプログラムに応じたサイズのＡＰ１用作業領域を確保するようにすればよい。具体的には、プログラム内の変数の定義文や、配列宣言文などを認識し、利用される変数および配列に応じて、必要なサイズを所定のアルゴリズムで決定するようにすればよい。
【００４５】
(3)   上述の実施形態では、識別子として、「Ｃｈ１」，「Ｃｈ２」のような文字列を用いた例を示したが、識別子は、各アプリケーションごとにユニークなものであれば、どのようなデータを用いてもかまわない。本発明を実施する上では、アプリケーションごとの認証コマンドや処理実行コマンドには、必ず、アプリケーションを特定するための識別子を含ませる必要があるので、実用上は、できるだけ短いデータからなる識別子を用いるのが好ましい。たとえば、最大限、４つのアプリケーションが同時に利用可能状態になるように設計されたＩＣカードであれば、「００」，「０１」，「１０」，「１１」の２ビットからなる識別子を用いるようにすれば足りる。
【００４６】
また、本発明を実施する上では、同時に利用可能状態となっている複数のアプリケーションについては、それぞれ互いに異なるユニークな識別子を付与する必要がある。そこで、外部装置２００側から、異なる複数のアプリケーションに同一の識別子を付与するような準備コマンドが誤って発せられることがないように、準備コマンドに先立って、照会コマンドを用いた照会が行えるようにしておくのが好ましい。すなわち、外部装置２００から新たに使用可能な識別子を照会する照会コマンド（ＯＳ用コマンド）を与えることができるようにしておき、処理実行部１２０は、このような照会コマンドを受け取ったときに、ＯＳ用作業領域を調査することにより定義済または未定義状態の識別子を認識し、認識した識別子をレスポンスとして外部装置２００に返す処理を行うことができるようにしておけばよい。
【００４７】
図５は、このような照会コマンドと、これに応じたレスポンスの具体例を示す図である。この例では、照会コマンドは、「MANAGE CHANNNEL 」なる文字列からなるＯＳ用コマンドである。ＯＳ用プログラムの一部に、このような照会コマンドを処理するルーチンを用意しておけば、処理実行部１２０は、このルーチンに応じて、上述した調査を実施し、レスポンスを返す処理を行うことができる。図５には、定義済の識別子（Ｃｈ１，Ｃｈ２）をレスポンスとして返す例と、未定義状態の識別子（Ｃｈ３〜Ｃｈ８：この例では、識別子としてＣｈ１〜Ｃｈ８の８通りの識別子が予め用意されているという前提である）をレスポンスとして返す例とが示されている。外部装置２００は、このようなレスポンスを受け取った後、このレスポンスの内容を考慮した上で、既に定義済みの識別子を重複定義することのない正しい準備コマンドを与えることができる。
【００４８】
(4)   上述の実施形態では、特定のアプリケーションに対する準備コマンドを与えて当該アプリケーションを利用するための準備を行った上で、当該アプリケーションに関する認証コマンドを与えて認証処理を実行し、この認証処理の結果に基づいて当該アプリケーションに対する処理実行コマンドの実行の可否を判定していた。しかしながら、処理実行に認証を行う必要がない利用形態では、必ずしも認証コマンドを与える必要はなく、準備コマンドにより準備が完了したアプリケーションに対しては、直ちに処理実行コマンドを与えてこれを実行させるようにしてもかまわない。
【００４９】
(5)   上述の実施形態における処理実行部１２０は、ＯＳ格納部１３１に格納されているＯＳプログラムか、アプリケーション格納部１３２に格納されているいずれかのアプリケーションプログラムに基づいて種々の処理を実行する。ここで、所定のアプリケーションプログラムを利用可能状態とするための準備コマンドは、当該準備コマンドの対象となるアプリケーションプログラム自身によって実行することはできないので、通常は、ＯＳプログラムによって実行することになるが（場合によっては、別なアプリケーションプログラムによって、実行するようにしてもかまわない。）、認証コマンドやその他の処理実行コマンドは、ＯＳプログラムによって実行しても、アプリケーションプログラムにより実行してもかまわない。ただ、一般的なＩＣカードの場合、ＯＳプログラムはカード発行時に既に組み込まれているが、各アプリケーションプログラムは発行後に適宜追加する利用形態が採られることが多く、ＯＳプログラムに比べて自由度が高い。したがって、実用上は、認証コマンドやその他の処理実行コマンドの実体的な処理部分は各アプリケーションプログラムにより実行させるようにし、ＯＳプログラムは、これらのコマンドを各アプリケーションプログラムに引き渡す役割を果たすように設計するのが好ましい。
【００５０】
【発明の効果】
以上のとおり、本発明に係る携帯可能情報記録媒体によれば、個々のアプリケーションごとのセキュリティを十分に確保しつつ、同一の交信セッションにおいて、複数のアプリケーションを切り替えながら一連の連携処理をスムーズに行うことが可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るＩＣカード１００を、外部装置２００に接続した状態を示すブロック図である。
【図２】外部装置から本発明に係るＩＣカードへ与えられる一連のコマンド例を示す図である。
【図３】図２に示す準備コマンド(1) ，(2) の実行により、ＯＳ用作業領域に書き込まれた情報の一例を示す図である。
【図４】アプリケーション用作業領域に書き込む認証結果として、実行が許可されるコマンドのリストを用いた例を示す図である。
【図５】現時点で空いている識別子を照会するための照会コマンドと、これに応じたレスポンスの例を示す図である。
【符号の説明】
１００…ＩＣカード（携帯可能情報記録媒体）
１１０…Ｉ／Ｏ部
１２０…処理実行部
１３０…メモリ部
１３１…ＯＳ格納部
１３２…アプリケーション格納部
１３３…ユーザデータ格納部
１３４…作業用データ格納部
ＡＰ１〜ＡＰ３…アプリケーションプログラム
Ｃｈ１〜Ｃｈ８…アプリケーションに付与される識別子
ＵＤ１〜ＵＤ３…各アプリケーションプログラムで利用されるユーザデータ
Ａｄｄ１１…アプリケーションプログラムＡＰ１の先頭アドレス
Ａｄｄ１２…ＡＰ１用作業領域の先頭アドレス
Ａｄｄ２１…アプリケーションプログラムＡＰ２の先頭アドレス
Ａｄｄ２２…ＡＰ２用作業領域の先頭アドレス
【図１】
0004393733.tif 000002
【図２】
0004393733.tif 000003
【図３】
0004393733.tif 000004
【図４】
0004393733.tif 000005
【図５】
0004393733.tif 000006