(57)【特許請求の範囲】
【請求項１】
外部からのコマンドを受信する受付手段と、
前記コマンドに応じて実行される複数のファイルを格納する第１記憶手段と、
前記第１記憶手段に格納されている複数のファイルのうち実行可能なファイルの候補を示すコマンドサポートデータを前記コマンド毎に対応付けるコマンドテーブルを格納する第２記憶手段と、
前記第１記憶手段に格納されている複数のファイルのうち現在処理の対象としているファイルを表わすファイル選択情報を格納する第３記憶手段と、
前記第２記憶手段と前記第３記憶手段を参照して、前記受信したコマンドに対応するコマンドサポートデータと前記ファイル選択情報に基づき、前記ファイル選択情報が示すファイルが現在処理の対象としているファイルに対応するものであって、かつ、前記コマンドサポートデータが示す実行可能なファイルの候補であるファイルを選択し、当該選択したファイルを実行し、当該実行したファイルに基づき前記ファイル選択情報を更新する制御手段と
を具備することを特徴とする情報記録媒体。
【請求項２】
前記コマンド実行手段は、
前記コマンドが前記現在処理対象となっているファイルに対して定義されたものでない場合には、前記コマンドの個別処理を実行する前に前記コマンドの送信元へエラーを送信する
ことを特徴とする請求項１に記載の情報記録媒体。
【請求項３】
前記判別手段は、
前記現在処理対象となっているファイルの一部であるエリアに対して前記コマンドが定義されたものであるか否かを判別し、
前記コマンド実行手段は、
前記エリアに対して前記コマンドが定義されたものである場合にのみ、前記コマンドを実行する
ことを特徴とする請求項１または請求項２のいずれかに記載の情報記録媒体。
【請求項４】
前記制御手段は、一のファイルの処理の途中で他のファイルを選択した場合、前記第３記憶手段に格納されている前記ファイル選択情報をクリアにし、当該選択されたファイルがアサインされている状態を表わす情報を前記ファイル情報に設定することを特徴とする請求項１から請求項３のいずれか一項に記載の情報記録媒体。
【請求項５】
前記制御手段は、「１」が実行可能なファイルの候補を示し「０」が実行不可能なファイルの候補を示すビット列である前記コマンドサポートデータと、「１」と「０」の組み合わせで選択されているファイルがアサインされている状態を表わすビット列である前記ファイル選択情報との論理積演算を行い、論理積演算の結果がゼロでない場合、前記コマンドが要求するファイルを実行できると判別することを特徴とする請求項１から請求項４のいずれか一項に記載の情報記録媒体。
【請求項６】
コマンドに応じて実行される複数のファイルを格納する第１記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち実行可能なファイルの候補を示すコマンドサポートデータを前記コマンド毎に対応付けるコマンドテーブルを格納する第２記憶手段と、
前記第１記憶手段に格納されている複数のファイルのうち現在処理の対象としているファイルを表わすファイル選択情報を格納する第３記憶手段と、を持つコンピュータに、
受付手段が、外部からのコマンドを受信する手順、
制御手段が、前記第２記憶手段と前記第３記憶手段を参照して、前記受信したコマンドに対応するコマンドサポートデータと前記ファイル選択情報に基づき、前記ファイル選択情報が示すファイルが現在処理の対象としているファイルに対応するものであって、かつ、前記コマンドサポートデータが示す実行可能なファイルの候補であるファイルを選択し、当該選択したファイルを実行し、当該実行したファイルに基づき前記ファイル選択情報を更新する手順、
を実行させるためのプログラム。
【請求項７】
コマンドに応じて実行される複数のファイルを格納する第１記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち実行可能なファイルの候補を示すコマンドサポートデータを前記コマンド毎に対応付けるコマンドテーブルを格納する第２記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち現在処理の対象としているファイルを表わすファイル選択情報を格納する第３記憶手段と、を持つ情報記録媒体において、
受付手段が、外部からのコマンドを受信し、
制御手段が、
前記第２記憶手段と前記第３記憶手段を参照して、前記受信したコマンドに対応するコマンドサポートデータと前記ファイル選択情報に基づき、前記ファイル選択情報が示すファイルが現在処理の対象としているファイルに対応するものであって、かつ、前記コマンドサポートデータが示す実行可能なファイルの候補であるファイルを選択し、
当該選択したファイルを実行し、
当該実行したファイルに基づき前記ファイル選択情報を更新する
ことを特徴とするコマンド実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）、携帯電話、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）等の情報記録媒体と、これを制御するためのプログラム、及びコマンド実行制御方法に関するものである。
【背景技術】
【０００２】
企業などでは社員証としてＩＣカードを採用するケースも多くある。また、信販会社ではクレジットカードとしてＩＣカードを顧客に配布することもある。従来の技術では、こうしたＩＣカードには複数のアプリケーションプログラム（以下、「アプリケーション」と略す）が登録されており、これらのアプリケーションは分割され、ＩＣカード内の記憶領域にファイルとして書き込まれている。また、アプリケーションは必要に応じて種々のデータを格納するファイルからのデータの読み出しや書き込みなどの処理を行うコマンドを実行する。そして、ユーザがＩＣカードを使用する際にどのファイルが選択されてもコマンドはそれら複数のファイルに共通して実行することが可能となっており、この点は問題となっている。この問題は例えば、社員証アプリケーションで使用するコマンドとして特殊な処理を実行するコマンドを準備した場合に、その特殊なコマンドがクレジットアプリケーションにも実行できてしまうため、その特殊なコマンドがあるデータを無条件に読み出すコマンドであったならば、クレジットアプリケーションで読み出してはいけないデータを読み出せてしまう危険性がある。
【０００３】
なお、従来の技術としては特許文献１に記載されるものが知られている。特許文献１はコマンドの実行そのものを禁止するための技術であり、本発明の課題であるファイルに対するコマンドの実行に関する問題点を解決するものではない。
【特許文献１】特開２００１−５６８４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は上記の事情を考慮してなされたもので、その目的は、ユーザがＩＣカードなどを利用する場合に、処理対象のファイルに対して必要の無いコマンドの実行を抑止することができる情報記録媒体とプログラム、及びコマンド実行制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
この発明は前述の課題を解決するためになされたもので、請求項１の発明は、外部からのコマンドを受信する受付手段と、前記コマンドに応じて実行される複数のファイルを格納する第１記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち実行可能なファイルの候補を示すコマンドサポートデータを前記コマンド毎に対応付けるコマンドテーブルを格納する第２記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち現在処理の対象としているファイルを表わすファイル選択情報を格納する第３記憶手段と、前記第２記憶手段と前記第３記憶手段を参照して、前記受信したコマンドに対応するコマンドサポートデータと前記ファイル選択情報に基づき、前記ファイル選択情報が示すファイルが現在処理の対象としているファイルに対応するものであって、かつ、前記コマンドサポートデータが示す実行可能なファイルの候補であるファイルを選択し、当該選択したファイルを実行し、当該実行したファイルに基づき前記ファイル選択情報を更新する制御手段と、を具備することを特徴とする情報記録媒体である。
【０００６】
請求項２に記載の発明は、請求項１に記載の情報記録媒体であって、前記コマンド実行手段は、前記コマンドが前記現在処理対象となっているファイルに対して定義されたものでない場合には、前記コマンドの個別処理を実行する前に前記コマンドの送信元へエラーを送信することを特徴とするものである。
【０００７】
請求項３に記載の発明は、請求項１または請求項２のいずれかに記載の情報記録媒体であって、前記判別手段は、前記現在処理対象となっているファイルの一部であるエリアに対して前記コマンドが定義されたものであるか否かを判別し、前記コマンド実行手段は、前記エリアに対して前記コマンドが定義されたものである場合にのみ、前記コマンドを実行することを特徴とするものである。
【０００８】
請求項４に記載の発明は、請求項１または２のいずれかに記載の情報記録媒体であって、前記制御手段が、一のファイルの処理の途中で他のファイルを選択した場合、前記第３記憶手段に格納されている前記ファイル選択情報をクリアにし、当該選択されたファイルがアサインされている状態を表わす情報を前記ファイル情報に設定することを特徴とするものである。
また、請求項５に記載の発明は、請求項１から４のいずれか一項に記載の情報記録媒体であって、前記制御手段が、「１」が実行可能なファイルの候補を示し「０」が実行不可能なファイルの候補を示すビット列である前記コマンドサポートデータと、「１」と「０」の組み合わせで選択されているファイルがアサインされている状態を表わすビット列である前記ファイル選択情報との論理積演算を行い、論理積演算の結果がゼロでない場合、前記コマンドが要求するファイルを実行できると判別することを特徴とするものである。
また、請求項６に記載の発明は、コマンドに応じて実行される複数のファイルを格納する第１記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち実行可能なファイルの候補を示すコマンドサポートデータを前記コマンド毎に対応付けるコマンドテーブルを格納する第２記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち現在処理の対象としているファイルを表わすファイル選択情報を格納する第３記憶手段と、を持つコンピュータに、受付手段が、外部からのコマンドを受信する手順、制御手段が、前記第２記憶手段と前記第３記憶手段を参照して、前記受信したコマンドに対応するコマンドサポートデータと前記ファイル選択情報に基づき、前記ファイル選択情報が示すファイルが現在処理の対象としているファイルに対応するものであって、かつ、前記コマンドサポートデータが示す実行可能なファイルの候補であるファイルを選択し、当該選択したファイルを実行し、当該実行したファイルに基づき前記ファイル選択情報を更新する手順、を実行させるためのプログラムである。
【０００９】
請求項７に記載の発明は、コマンドに応じて実行される複数のファイルを格納する第１記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち実行可能なファイルの候補を示すコマンドサポートデータを前記コマンド毎に対応付けるコマンドテーブルを格納する第２記憶手段と、前記第１記憶手段に格納されている複数のファイルのうち現在処理の対象としているファイルを表わすファイル選択情報を格納する第３記憶手段と、を持つ情報記録媒体において、受付手段が、外部からのコマンドを受信し、制御手段が、前記第２記憶手段と前記第３記憶手段を参照して、前記受信したコマンドに対応するコマンドサポートデータと前記ファイル選択情報に基づき、前記ファイル選択情報が示すファイルが現在処理の対象としているファイルに対応するものであって、かつ、前記コマンドサポートデータが示す実行可能なファイルの候補であるファイルを選択し、当該選択したファイルを実行し、当該実行したファイルに基づき前記ファイル選択情報を更新することを特徴とするコマンド実行制御方法である。
【発明の効果】
【００１０】
請求項１と、請求項４と、請求項５の発明によれば、ファイルごとに実行可能なコマンドを制限できるため、不正アクセスなどを抑止できる効果がある。
【００１１】
請求項２の発明によれば、ファイルに対して実行を許可されないコマンドの実行要求があった場合には、コマンド個別処理へ分岐する前にコマンドが未定義であることを示すエラー情報を返信するため、悪意あるユーザに対して情報記録媒体の格納するデータの構造などを漏洩しない効果がある。
【００１２】
請求項３の発明によれば、ファイルよりもさらに小さな単位でコマンドの実行可否を設定できるため、より柔軟なコマンドの実効制御ができる効果がある。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照し、この発明の実施の形態について説明する。図１は本実施の形態における情報記録媒体であり、キャッシュカードとしてユーザが使用するＩＣカード１００の構成と、ＩＣカード１００と電波信号の送受信を行うキャッシュレジスタである外部装置２００とを示した図である。ＩＣカード１００は外部装置２００と電気的に接触又は電波的に非接触にて通信及び電源の供給を受ける。制御部１０１は電波信号の送受信機能を備えたＩＣカード１００の制御機能であり、詳細は後述する。
【００１４】
ワークメモリ部１０２はデータを一時記憶しておくためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。ワークメモリ部１０２はまた、ＩＣカード１００が現在処理の対象としているファイルを表す情報であるファイル選択情報を格納する。図４はこのファイル選択情報を表している。制御部１０１はファイル選択情報を、ＩＣカード１００に電源が投入された直後、ＩＣカード１００の管理情報を含むファイルであるマスターファイルが選択された状態として「１０００００００」に設定する。また、制御部１０１が処理の途中で他のファイルを選択した場合には、制御部１０１はファイル選択情報の値をクリアし、図４のように該当するファイルがアサインされている状態を表すビット列をファイル選択情報に設定する。
【００１５】
データメモリ部１０３はＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）あるいはEPROM（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−ｏｎｌｙ  Ｍｅｍｏｒｙ）に代表される不揮発性の記憶領域である。データメモリ部１０３はアプリケーションが使用するデータであるファイルを複数格納する。データメモリ部１０３はまた、マスターファイルを格納する。
【００１６】
図２は、複数のコマンドに関する情報であるコマンドテーブルを表している。このテーブルはプログラムメモリ部１０４に格納される。コマンドテーブルはコマンド識別データとコマンドサポートデータ部分とが対になった構造を持っている。コマンド識別データは外部装置２００がコマンドの実行要求を送信する際にも電波信号に含まれるデータであり、制御部１０１はこのデータによってコマンドを判別する。
【００１７】
コマンドサポートデータはコマンドに対応するデータである。コマンドサポートデータの各ビット位置はファイルに対応している。あるコマンドに対応するコマンドサポートデータの中の１つのビットが「１」の場合には、制御部１０１は当該コマンドを実行可能であることを表し、「０」の場合には、当該コマンドを実行できないことを表す。図２中のコマンドサポートデータのビットアサインはコマンドサポートデータを理解のためにビット単位で表記したものである。
【００１８】
コマンドテーブルはこれらのデータによって、コマンドとファイルとの対応付けを行い、また、ＩＣカード１００が各ファイルを選択している状態において、制御部１０１が各コマンドを実行できるか否かを表している。例えば、コマンド識別データ中の「Ｆ８」に該当するクレジット取引コマンドは、ＩＣカード１００がクレジットアプリケーションのファイルを選択している場合には実行可能であるが、その他のファイルが選択された場合とマスターファイルが選択された状態には実行を許されない。
プログラムメモリ部１０４は不揮発性の記憶領域であり、ＩＣカード１００の制御部１０１が実行するプログラムを格納する。
【００１９】
次に、図を参照して本実施形態における情報記録媒体の動作について説明する。図３は、本実施の形態におけるＩＣカード１００の処理を示したフローチャートである。いま、例えばＩＣカード１００のユーザがショッピングの際にＩＣカード１００で支払いを行おうとしている。この支払いにおいて、店員が外部装置２００に金額を入力し、ＩＣカード１００を外部装置２００に挿入する。外部装置２００は電波信号をＩＣカード１００に送信し、これを受けてＩＣカード１００に電源が投入され、ＩＣカード１００は活性化する。ＩＣカード１００の制御部１０１は初期設定処理を実行し、この処理の中でワークメモリ部１０２にファイル選択情報を生成し、これを図４の活性化時のように設定してマスターファイル選択済みの状態である「１０００００００」とする（図３のステップＳ１１）。
【００２０】
次に、制御部１０１は、ＩＣカード１００の通信仕様などの情報であるＡｎｓｗｅｒ  ｔｏ  Ｒｅｓｅｔデータをプログラムメモリ部１０４から読み出し、これを外部装置２００へ送信する（図３のステップＳ１２）。そして、外部装置２００からのコマンド受信待ち状態となり、コマンドを受信するまで待機する（図３のステップＳ１３）。
【００２１】
いま、外部装置２００は、クレジットの引き落とし処理の対象となるファイルの選択を要求するため、処理の対象となるファイルを指定してこの要求を表すコマンド識別データ「Ｆ０」をＩＣカード１００に送信する。
制御部１０１は外部装置２００から電波信号を受信し、この信号に含まれるコマンド識別データ「Ｆ０」を得て、この要求が現在ＩＣカード１００の処理対象となっているマスターファイルに対して実行可能であるか否かの判定を試みる。この判定のため、制御部１０１はプログラムメモリ部１０４からコマンドテーブルを読み出し、受信したコマンドに対応するコマンドサポートデータ「８７」をこのコマンドテーブルより得る（図３のステップＳ１４）。そして、制御部１０１はワークメモリ部１０２からファイル選択情報を読み出し、コマンドサポートデータのビット列である「１００００１１１」と、ファイル選択情報「１０００００００」との論理積演算を行う（図３のステップＳ１５）。
【００２２】
論理積演算の結果は「１０００００００」であり、即ちゼロではないため（図３のステップＳ１６が“Ｎｏ”）、制御部１０１は当該コマンドが実行可能であると判断し、このコマンドを実行する（図３のステップＳ１８）。そして、制御部１０１は実行したコマンドがファイル選択コマンドであったか否かをチェックする（図３のステップＳ１９）。実行したコマンドはファイル選択コマンドであったので（図３のステップＳ１９が“Ｙｅｓ”）、制御部１０１は当該コマンドの実行結果が正常終了であった場合には（図３のステップＳ２０が“Ｙｅｓ”）、外部装置２００が指定したファイルに合わせてファイル選択情報を変更する（図３のステップＳ２１）。この結果、制御部１０１が以降に実行が可能なコマンドも変更される。そして、制御部１０１はこの処理結果を外部装置２００へ送信する（図３のステップＳ２２）。その後そして、制御部１０１は、次のコマンド受信のため待機状態となる（図３のステップＳ１３）。
【００２３】
また、制御部１０１はステップＳ１８で実行したコマンドがファイル選択コマンドではなかった場合（図３のステップＳ１９が“Ｎｏ”）、あるいは、ステップＳ１８で実行したコマンドはファイル選択コマンドであったが処理が正常終了しなかった場合には（図３のステップＳ２０が“Ｎｏ”）、ファイル選択情報の更新を行う必要は無いと判断してコマンドの処理結果を外部装置２００へ送信する（図３のステップＳ２２）。その後、そして制御部１０１は、次のコマンド受信のため待機状態となる（図３のステップＳ１３）。
【００２４】
また、制御部１０１は図３のステップＳ１６で、外部装置２００から実行を要求されたコマンドが実行できないコマンドであることを検知した場合、即ち、論理積演算の結果がゼロであった場合には、未定義コマンドエラーを表すエラーデータを作成し（図３のステップＳ１７）、外部装置にこのエラーデータを出力して（図３のステップＳ２２）次のコマンド受信のため待機状態となる（図３のステップＳ１３）。
【００２５】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、本実施の形態において制御部１０１は図２のようなコマンドテーブルを参照し、ファイル選択情報に合わせたコマンドの実行可否を判定した。このコマンドテーブルの代わりに、ＩＣカード１００はプログラムメモリ部に図５に示される形式のファイルごとのコマンドテーブルを持っても良い。図５のコマンドテーブルでは、例えば「活性化時のコマンドテーブル」は「０４、Ｆ０、Ｆ２、Ｆ４、Ｆ６」であるが、最初の「０４」は実行可能なコマンドの数であり、「Ｆ０、Ｆ２、Ｆ４、Ｆ６」は実行可能なコマンドのコマンド識別データである。これにより、制御部１０１は外部装置２００から受信したコマンドが実行可能であるか否かを判別する。また、図５のコマンドテーブルは、例えば「活性化時のコマンドテーブル」は「Ｆ０、Ｆ２、Ｆ４、Ｆ６、ＦＦ」のような形式であっても良い。最後の１バイトである「ＦＦ」はコマンド識別データでは使用されないデータであり、「活性化時のコマンドテーブル」の最後に配置することで「活性化時のコマンドテーブル」の終端を表し、このため図５のように先頭の１バイトでコマンドの数を表す必要は無くなる。
【００２６】
また、図６のようにＩＣカード１００のデータメモリ部１０３に格納されているファイルを、複数のデータであるエリアと認証情報とに区分けし、制御部１０１はこの認証情報を基にエリアのアクセス制御を行っても良い。図６では、ＩＣカード１００はマスターファイルの配下にクレジット、ポイント、社員証の３つのファイルを格納することを表し、また、それぞれのファイルが選択された状態で実行可能なコマンドを示している。図６ではファイルＡはエリアＡ１〜エリアＡ３と、認証情報Ａ４とからなる。制御部１０１は、例えばエリアＡ１を選択している状態で外部装置２００からコマンドの実行を要求された場合に、認証情報Ａ４の認証が既に成功していることを参照してエリアＡ１が当該コマンドの実行を許可しているか否かを判断する。このため、ＩＣカード１００はファイル単位よりももっと細かな単位でアクセス制御を行うことができる。
【００２７】
尚、図２に示すようなコマンドテーブルの格納、図３で云うＡｎｓｗｅｒ  ｔｏ  Ｒｅｓｅｔデータの格納、又は、図５に示すようなコマンドテーブルの格納などは、（主にセキュリティ対策の観点から書換え不能なように）前述のようにプログラムメモリ部１０４に行うのが一般的である。但し、必ずしもこれに限定されるわけではなく、例えば、追加として後から格納したい場合などはデータメモリ部１０３に格納するのが一般的である。
また、本実施の形態においては情報記録媒体としてＩＣカードの例を挙げたが、携帯電話やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）、あるいはＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）などの携帯型情報端末装置であってもよい。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施の形態における情報記録媒体のブロック図である。
【図２】本発明の実施の形態におけるコマンドテーブルのデータ構造を表す図である。
【図３】本発明の実施の形態における情報記録媒体のフローチャートである。
【図４】本発明の実施の形態におけるファイル選択情報のデータ構造を表す図である。
【図５】本発明の実施の形態におけるファイルごとのコマンドテーブルのデータ構造を表す図である。
【図６】本発明の実施の形態における情報記録媒体のデータ構造を表す図である。
【符号の説明】
【００２９】
１００…ＩＣカード（情報記録媒体）
１０１…制御部
１０２…ワークメモリ部
１０３…データメモリ部
１０４…プログラムメモリ部
２００…外部装置
【図１】
0004734838.tif 000002
【図２】
0004734838.tif 000003
【図３】
0004734838.tif 000004
【図４】
0004734838.tif 000005
【図５】
0004734838.tif 000006
【図６】
0004734838.tif 000007