(57)【特許請求の範囲】
【請求項１】
外部装置から与えられるコマンドに応じた処理を実行する携帯可能電子装置において、
ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報を記憶する記憶手段と、
外部装置からコマンドが与えられた場合、前記記憶手段に記憶されている当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認する確認手段と、
この確認手段により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行する実行手段と、
この実行手段により実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する保存手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
前記保存手段は、各ロジカルチャネルごとに、実行されたコマンドの命令識別情報と実行結果とを履歴情報として前記記憶手段に記憶する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記保存手段は、各ロジカルチャネルごとに、正常終了したコマンドの命令識別情報を履歴情報として前記記憶手段に記憶する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項４】
前記保存手段は、各ロジカルチャネルごとに、後続のコマンドが参照すべきコマンドの命令識別情報および実行結果とを前記記憶手段に記憶する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項５】
前記確認手段は、前記記憶手段に記憶されている当該コマンドのロジカルチャネルの履歴情報に基づいて、当該ロジカルチャネルにおいて実行されたコマンドと当該コマンドとの実行順序が所定の実行順序か否かにより前記コマンドの正当性を確認する、
ことを特徴とする前記請求項１乃至４の何れか１項に記載の携帯可能電子装置。
【請求項６】
前記確認手段は、当該ロジカルチャネルにおいて直前に実行されたコマンドと当該コマンドとの実行順序が所定の実行順序か否かにより前記コマンドの正当性を確認する、
ことを特徴とする前記請求項５に記載の携帯可能電子装置。
【請求項７】
前記各手段を有するモジュールと、
前記モジュールを内蔵した本体と、を有する、
ことを特徴とする前記請求項１乃至６の何れか１項に記載の携帯可能電子装置。
【請求項８】
外部装置から与えられるコマンドに応じて種々の処理を実行する制御素子を有する携帯可能電子装置に用いられる制御方法であって、
外部装置からコマンドが与えられた場合、ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報が記憶されている記憶手段における当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認し、
この確認により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行し、
この実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する、
を有することを特徴とする携帯可能電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、個人情報あるいは取引情報などが記憶されているＩＣチップが内蔵されているＩＣカードあるいはＩＣタグなどの携帯可能電子装置、および、上記携帯可能電子装置の制御方法などに関する。
【背景技術】
【０００２】
従来、一般的な接触式および非接触式ＩＣカードは、外部通信インターフェースとして半二重通信方式のシリアルインターフェースを有している。このようなＩＣカードには、ロジカルチャネルと称する機能を有しているものがある。上記ロジカルチャネルの機能を有するＩＣカードでは、物理的には１つのインターフェースを上記ロジカルチャネルの機能により擬似的に複数の通信インターフェースとして用いることが可能である。例えば、外部装置のアプリケーションＡがチャネル１、アプリケーションＢがチャネル２を指定することにより、タイムシェアリングでＩＣカードとの通信を行うことができる。この場合、ＩＣカードでは、指定されたチャネル毎に独立してアクセス対象のファイルあるいはフォルダを管理したり、制御したりすることが可能である。このため、アプリケーションＡとアプリケーションＢとは、それぞれＩＣカードと１対１で通信しているかのように動作することができる。
【０００３】
一方、ＩＣカードに外部装置から与えられる命令（コマンド）には、例えば、乱数発生命令と外部認証命令のように、複数の命令を所定の順序で実行しなければならないものがある。これは、不正なアクセスを防止するためのものであり、上記のような所定の実行順序を守らないと命令は正しく実行されない。
【０００４】
しかしながら、従来のＩＣカードでは、命令の実行順についてはロジカルチャネル毎に管理されていない。このため、複数のチャネルで外部装置から命令を受信している場合、従来のＩＣカードでは、各チャネルで受信する命令群の順序が正しくても、受信する命令の順序が所定の順序とならないことがありうる。たとえば、命令Ｘ、Ｙが連続して実行すべき命令であるものとする。この場合、チャネル１で命令Ｘを受信した直後に、チャネル２で命令Ｚを受信すると、従来のＩＣカードは、Ｘ、Ｚの順で命令が実行されるものと判断してしまう。この結果、従来のＩＣカードでは、チャネル１で受信する命令Ｘ、Ｙが所定の順序であっても、命令Ｘ、Ｙが正しく実行されないという問題点がある。
【特許文献１】特開２００５−１９６７３０号公報
【非特許文献１】ＩＳＯ７８１６−４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明の一形態は、セキュリティ性を維持しつつ利便性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の一形態としての携帯可能電子装置は、外部装置から与えられるコマンドに応じて種々の処理を実行する制御素子を有するものにおいて、ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報を記憶する記憶手段と、外部装置からコマンドが与えられた場合、前記記憶手段に記憶されている当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認する確認手段と、この確認手段により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行する実行手段と、この実行手段により実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する保存手段とを有する。
【０００７】
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置から与えられるコマンドに応じて種々の処理を実行する制御素子を有する携帯可能電子装置に用いられる方法であって、外部装置からコマンドが与えられた場合、ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報が記憶されている記憶手段における当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認し、この確認により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行し、この実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する。
【発明の効果】
【０００８】
この発明の一形態によれば、セキュリティ性を維持しつつ利便性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明に係る実施の形態について図面を参照しつつ説明する。  
図１は、本実施の形態に係る携帯可能電子装置としてのＩＣカード１およびＩＣカード１を含むＩＣカードシステムの構成例を示すブロック図である。  
上記ＩＣカード１は、外部装置としてのＩＣカード処理装置２からの電源供給により動作可能な状態となる（活性化される）。動作可能となったＩＣカード１は、上記ＩＣカード処理装置２からの種々のコマンドに応じて種々の処理を行う。すなわち、上記ＩＣカード処理装置２は、ＩＣカード１を動作させるための電源を供給するとともに、当該ＩＣカード１に対して種々の処理を要求するコマンドを供給する。上記ＩＣカード処理装置２がＩＣカード１に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
【００１０】
また、上記ＩＣカード１は、アンテナあるいは無線通信部等により上記ＩＣカード処理装置２と非接触の状態で無線通信を行う非接触式の携帯可能電子装置（非接触式ＩＣカード）であっても良し、上記ＩＣカード処理装置２と物理的に接触して通信を行う接触式の携帯可能電子装置（接触式ＩＣカード）であっても良い。さらには、上記ＩＣカード１は、非接触式ＩＣカードとしての通信機能と接触式ＩＣカードとしての通信機能とを有する複合型のＩＣカード（デュアルインターフェースＩＣカード）であっても良い。なお、本実施の形態では、主に、非接触式ＩＣカードを想定して説明する。非接触式ＩＣカードと接触式ＩＣカードとはＩＣカード処理装置２との通信方式等が異なるだけである。このため、以下に説明する実施の形態は、接触式ＩＣカードにも同様に適用できる。
【００１１】
次に、上記ＩＣカード１の構成例について説明する。  
図１に示すように、上記ＩＣカード１は、ＣＰＵ１０、プログラムメモリ１１、ワーキングメモリ１２、データメモリ１３、通信制御部１５、電源部１６、および、インターフェース１７などにより構成される。  
また、上記ＩＣカード１は、カード状の本体１ｃにより構成される。上記ＩＣカード１を形成するカード状の本体１ｃには、１つ（あるいは複数）のＩＣチップ１ａとアンテナ１７とが埋設される。上記ＩＣチップ１ａは、ＣＰＵ１０、プログラムメモリ１１、ワーキングメモリ１２、データメモリ１３、通信制御部１５および電源部１６などにより構成される。上記ＩＣチップ１ａは、上記インターフェース１７としてのアンテナに接続された状態でモジュール化され、当該ＩＣカード１を形成するカード状の本体１ｃ内に埋設される。たとえば、図２は、非接触式ＩＣカード全体の構成例を示す図である。図２に示す非接触式ＩＣカードは、カード状の本体１ｃを有している。この本体１ｃ内には、図２に点線で示すように、１つ（あるいは複数）のＩＣチップ１ａとアンテナ１７とを有するモジュール１ｂが埋め込まれている。
【００１２】
上記ＣＰＵ１０は、ＩＣカード１全体の制御を司るものである。上記ＣＰＵ１０は、上記プログラムメモリ１１あるいはデータメモリ１３に記憶された制御プログラムおよび制御データなどに基づいて動作する。上記ＣＰＵ１０は、基本的な動作を司る制御プログラムを実行することにより、ＩＣカード処理装置２から与えられるコマンドに応じた処理を実行する。また、上記ＣＰＵ１０は、当該ＩＣカード１の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
【００１３】
たとえば、ＩＣカード処理装置２から上記データメモリ１３へのデータの書込みを要求するコマンドが与えられれば、上記ＣＰＵ１０は、上記データメモリ１３へのデータの書き込み処理を実行する。また、ＩＣカード処理装置２から上記データメモリ１３に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記ＣＰＵ１０は、上記データメモリ１３からのデータの読み出し処理を実行する。さらに、上記ＣＰＵ１０は、後述する各ロジカルチャネルの履歴情報に基づいて実行しようとするコマンドの正当性を確認する機能を有している。
【００１４】
上記プログラムメモリ１１は、読み出し専用のメモリ（ＲＯＭ：リードオンリーメモリ）により構成される。上記プログラムメモリ１１には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。つまり、上記プログラムメモリ１１には、予め当該ＩＣカード１の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記ＣＰＵ１０は、上記プログラムメモリ１１に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。また、上記プログラムメモリ１１には、データメモリ１３におけるメモリ領域の属性などを指定するための情報なども記憶されている。さらに、上記プログラムメモリ１１には、特定の処理について各種コマンドの所定の実行順序を示す情報が記憶される。このような情報の一例として、上記プログラムメモリ１１には、認証処理において乱数発生命令（乱数発生コマンド）と外部認証命令（外部認証コマンド）とが所定の実行順序で実行すべきものであることを示す情報が記憶されている。なお、上記のような各コマンドの所定の実行順序を示す情報は、データメモリ１３に記憶されるようにしても良い。
【００１５】
上記ワーキングメモリ１２は、揮発性のメモリ（ＲＡＭ；ランダムアクセスメモリ）により構成される。上記ワーキングメモリ１２は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ１２には、ＩＣカード処理装置（外部装置）２との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ１２には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
【００１６】
また、上記ワーキングメモリ１２には、ロジカルチャネル管理テーブル１２ａと履歴管理テーブル１２ｂとが設けられる。ここでは、当該ＩＣカード１が活性化されるごとにリセットされるロジカルチャネル管理テーブル１２ａと履歴管理テーブル１２ｂとがワーキングメモリ１２に設けられるものとする。なお、ロジカルチャネル管理テーブル１２ａあるいは履歴管理テーブル１２ｂは、データメモリ１３に設けるようにしても良い。データメモリ１３にロジカルチャネル管理テーブル１２ａと履歴管理テーブル１２ｂとがもうけられる場合、ロジカルチャネル管理テーブル１２ａと履歴管理テーブル１２ｂに記憶された情報は、当該ＩＣカード１への電源がオフとなっても保持される。
【００１７】
ロジカルチャネル管理テーブル１２ａには、各ロジカルチャネルのカレント状態およびセキュリティ状態を示す情報が格納される。つまり、ロジカルチャネル管理テーブル１２ａに格納されている情報を参照することにより、各ロジカルチャネルのカレントフォルダあるいはカレントファイルが判別される。また、各ロジカルチャネルのセキュリティ状態は、ロジカルチャネル管理テーブル１２ａを参照することにより判別される。
【００１８】
履歴管理テーブル１２ｂには、各ロジカルチャネルごとに履歴情報が格納される。各ロジカルチャネルの履歴情報は、各ロジカルチャネルごとの実行したコマンドに関する情報である。ただし、各ロジカルチャネルの履歴情報としては、少なくとも後続のコマンドを実行する際に参照すべきコマンドの命令コードが保存される必要がある。たとえば、直前に実行したコマンドと実行しようとするコマンドとの順序のみをチェックする形態であれば、履歴情報としては、直前に実行したコマンドの命令コードが保存される。また、直前に実行したコマンドだけでなく２つ以上前のコマンドからの順序あるいは実行結果をチェックする形態であれば、履歴情報としては、複数のコマンドの命令コードおよび実行結果が保存される。
【００１９】
上記データメモリ（不揮発性メモリ）１３は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ１３は、例えば、ＥＥＰＲＯＭあるいはフラッシュメモリなどにより構成される。上記データメモリ１３には、当該ＩＣカード１の使用目的に応じた種々の情報が記憶される。上記データメモリ１３には、種々の設定情報などを記憶するためのデータテーブルなども設けられる。
【００２０】
また、当該ＩＣカードの使用目的に応じたアプリケーション（処理プログラムおよび運用データなど）は、上記データメモリ１３に記憶される。また、当該ＩＣカード１が複数の使用目的に使用される場合、上記データメモリ１３には、各使用目的に応じた複数のアプリケーションが記憶される。なお、当該ＩＣカード１の使用目的に応じたアプリケーションは、上記データメモリ１３上に定義された使用目的ごとのプログラムファイルおよびデータファイルなどの各ファイルに記憶される。このようなファイル構造は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４に基づくものである。つまり、上記ＩＣカード１のデータメモリ１３には、種々のアプリケーションおよび種々の運用データが記憶可能である。
【００２１】
上記通信制御部１５は、上記インターフェース１７を介して外部装置（たとえば、ＩＣカード処理装置２）とのデータ通信を制御するものである。外部装置からデータを受信する場合、上記通信制御部１５は、上記インターフェース１７により受信した電波としての送信データを復調し、復調した信号を上記ＣＰＵ１０に供給する。また、外部装置へデータを送信する場合、上記通信制御部１５は、上記ＣＰＵ１０から与えられるデータを変調し、変調したデータを上記インターフェース１７としてのアンテナにより電波として発信する。なお、接触式ＩＣカードの場合、上記インターフェース１７は、外部装置のコンタクト部と物理的に接触する端子などにより構成されるものとなる。
【００２２】
上記電源部１６は、上記インターフェース１７により受信した電波から当該ＩＣカード１の各部を動作させるための電源およびクロックパルスを生成する。上記電源部１６は、上記アンテナ１７により受信した電波から生成した電源電圧およびクロックパルスを各部に供給するようになっている。また、上記電源部１６からの電源供給により起動した場合、上記ＣＰＵ１０は、当該ＩＣカード１の処理状態をリセットする処理を行うようになっている。なお、接触式ＩＣカードの場合、インターフェース１７を介して外部装置から直接的に供給される電源およびクロックパルスにより各部が動作するようになっている。
【００２３】
次に、上記ＩＣカード処理装置２について説明する。  
上記ＩＣカード処理装置２は、図１に示すように、制御装置２１およびカードリーダライタ２２を有している。上記制御装置２１は、パーソナルコンピュータ（ＰＣ）などにより構成される。上記制御装置２１は、ＣＰＵなどの演算処理部、ＲＡＭ、ＲＯＭ、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置２１では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置２１は、ＩＣカード１とのデータ通信を行う上記カードリーダライタ２２とのデータの入出力を行うようになっている。
【００２４】
たとえば、上記制御装置２１には、上記ＩＣカード１を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置２１では、上記のような制御プログラムを実行することにより上記ＩＣカード１を用いた各種の処理を実行する。たとえば、上記ＩＣカード１を用いた各種の処理において、上記制御装置２１は、所定のコマンドを所定の手順で供給する。上記制御装置２１では、上記のような各コマンドに対するＩＣカード１からの各レスポンス（コマンドに対する処理結果等を示す情報）に基づいて各種の処理を行うようになっている。
【００２５】
上記カードリーダライタ２２は、上記ＩＣカード１とのデータ通信を行う通信手段として機能する。上記カードリーダライタ２２は、上記ＩＣカード１の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ２２を介して制御装置２１は、上記ＩＣカード１とのデータ通信を実現している。
【００２６】
上記ＩＣカード１が非接触型のＩＣカードである場合、上記カードリーダライタ２２は、上記ＩＣカード１との無線によるデータ通信を行うためのアンテナおよび通信制御部（変復調回路等）などにより構成される。非接触型のＩＣカード１へデータを送信する場合、上記カードリーダライタ２２では、上記制御装置２１から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のＩＣカード１からデータを受信する場合、上記カードリーダライタ２２では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置２１へ供給する。また、上記カードリーダライタ２２では、上記のようなデータの送受信とともに、上記ＩＣカード１を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
【００２７】
また、上記ＩＣカード１が接触型のＩＣカードである場合、上記カードリーダライタ２２は、ＩＣカード１と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のＩＣカードとのデータの送受信を行う場合、上記カードリーダライタ２２では、上記コンタクト部がＩＣカード１側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ２２では、ＩＣカード１に物理的に接触しているコンタクト部を介して当該ＩＣカード１に対して電源およびクロックパルスを供給するようになっている。
【００２８】
次に、上記ＩＣカード１における第１の動作例について説明する。  
上記履歴管理テーブル１２ｂには、各ロジカルチャネルごとに実行したコマンドに関する情報を履歴情報として保存されるようになっている。第１の動作例では、ロジカルチャネルごとに、実行したコマンドの命令コードおよび当該コマンドの実行結果が履歴情報として履歴管理テーブル１２ｂに保存されるようになっている。上述したように、各ロジカルチャネルの履歴情報としては、少なくとも後続のコマンドを実行する際に参照すべきコマンドの命令コードおよび実行結果などである。たとえば、各ロジカルチャネルの履歴情報としては、各ロジカルチャネルについて、直前に実行したコマンドの命令コードおよび実行結果を保存するようにしても良いし、当該ＩＣカード１がリセット後に実行した各コマンドの命令コードおよびお実行結果を保存するようにしても良いし、所定回数前までの各コマンドの命令コード及び実行結果を保存するようにしても良い。
【００２９】
第１の動作例のＩＣカード１は、ＩＣカード処理装置２から与えられたコマンドを実行する際、上記のような履歴情報を参照することにより、受信したコマンド（実行する命令）が所定の実行順序であるか否かを各ロジカルチャネルごとに判定する（受信したコマンドの正当性を確認する）。たとえば、受信したコマンドと直前に実行したコマンドとの関係をチェックする場合、ＩＣカード１は、受信したコマンドのロジカルチャネルで直前に実行したコマンドの命令コードおよび実行結果を当該ロジカルチャネルの履歴情報から読出し、直前に実行したコマンドの命令コードが所定の実行順序において受信したコマンドの直前に実行すべきものであり、かつ、直前に実行したコマンドの実行結果が正常終了であることを確認する。
【００３０】
図３は、ＩＣカード１における第１の動作例を説明するためのフローチャートである。  
まず、ＩＣカード１は、ＩＣカード処理装置２から送信されたコマンドをインターフェース１７および通信制御部１５を介して受信する（ステップＳ１１、ＹＥＳ）。ＩＣカード処理装置２からコマンドを受信すると、ＩＣカード１のＣＰＵ１０は、当該コマンドのロジカルチャネルと命令コードとを判別する（ステップＳ１２）。受信したコマンドのロジカルチャネルが判別すると、ＣＰＵ１０は、当該ロジカルチャネルの履歴情報を読み出す（ステップＳ１３）。当該ロジカルチャネルの履歴情報を読み出すと、ＣＰＵ１０は、読み出した当該ロジカルチャネルの履歴情報に基づいて、受信したコマンドの実行順序が所定の実行順序であるか否かを判断（確認）する（ステップＳ１４）。この判断において、ＣＰＵ１０は、当該ロジカルチャネルの履歴情報における直前の正常終了したコマンドの命令コード（あるいは直前までの正常終了した複数のコマンドの各命令コード）と、受信したコマンドの命令コードとの順序が所定の実行順序であるか否かを判断する。
【００３１】
受信したコマンドの実行順序が正しくないと判断した場合（ステップＳ１４、ＮＯ）、ＣＰＵ１０は、当該コマンドに応じた処理を行うことなく、エラー処理を行う（ステップＳ１５）。この場合、ＣＰＵ１０は、エラー処理として、たとえば、当該ＣＰＵ１０の動作を停止する処理を行う。このように実行順序が正しくないコマンドを与えられた場合、当該ＩＣカード１が動作を停止することにより、不正アクセスを防止することが可能となる。また、エラー処理としては、受信したコマンドの実行順序が正当でないため処理不可である旨のレスポンスをＩＣカード処理装置２へ送信するようにしても良い。
【００３２】
受信したコマンドの実行順序が正しいと判断した場合（ステップＳ１４、ＹＥＳ）、ＣＰＵ１０は、ロジカルチャネル管理テーブル１２ａに格納されている当該ロジカルチャネルのセキュリティ状態あるいはカレント状態を示す情報を参照しつつ、受信したコマンドに応じた処理を実行する（ステップＳ１６）。  
たとえば、受信したコマンドが照合あるいは認証などのコマンドである場合、ＣＰＵ１０は、当該コマンドに応じた照合あるいは認証などの処理を実行し、その実行結果に従ってロジカルチャネル管理テーブル１２ａに記憶されている当該コマンドのロジカルチャネルのセキュリティ状態を更新する。
【００３３】
また、受信したコマンドがファイルへのアクセス（読取り、書込み、書換えなど）を要求するコマンドである場合、ＣＰＵ１０は、当該コマンドで指定されているロジカルチャネルにおけるカレントフォルダあるいはカレントファイルを示す情報に基づいて、ロジカルチャネル管理テーブル１２ａに記憶されている当該コマンドのロジカルチャネルのカレントフォルダあるいはカレントファイルにアクセスする。  
また、受信したコマンドがセキュリティ状態を参照するコマンドである場合、ＣＰＵ１０は、ロジカルチャネル管理テーブル１２ａに記憶されている当該コマンドのロジカルチャネルのセキュリティ状態を参照して当該コマンドの命令コードに応じた処理を実行する。  
また、受信したコマンドがフォルダあるいはファイルのカレント状態を更新するコマンドである場合、ＣＰＵ１０は、ロジカルチャネル管理テーブル１２ａに記憶されている当該コマンドのロジカルチャネルにおけるフォルダあるいはファイルのカレント状態を更新する。
【００３４】
受信したコマンドに応じた処理が終了すると、ＣＰＵ１０は、当該コマンドの命令コードと実行結果とを当該ロジカルチャネルの履歴情報として保存する（ステップＳ１７）。すなわち、上記ＣＰＵ１０は、受信したコマンドに関する当該ロジカルチャネルの履歴情報として、当該コマンドの命令コードと、当該コマンドの命令コードに応じた処理が正常終了したかエラーとなったかを示す情報（実行結果）とを履歴管理テーブル１２ｂに保存する。
【００３５】
また、受信したコマンドに応じた処理が正常終了した場合（ステップＳ１８、ＹＥＳ）、ＣＰＵ１０は、当該コマンドに対するレスポンスとして、処理が正常終了したことを示す応答データを当該コマンドの発信元であるＩＣカード処理装置２へ送信する（ステップＳ１９）。また、受信したコマンドに応じた処理がエラーとなった場合（ステップＳ１８、ＮＯ）、ＣＰＵ１０は、当該コマンドに対するレスポンスとして、処理がエラー終了したことを示す応答データを当該コマンドの発信元であるＩＣカード処理装置２へ送信する（ステップＳ２０）。
【００３６】
以上の処理により、第１の動作例のＩＣカード１では、受信（実行）したコマンドの命令コードおよび実行結果をロジカルチャネルごとに履歴情報として履歴管理テーブル１２ｂに記憶しておき、ＩＣカード処理装置２から与えられたコマンドを実行する場合には、当該コマンドが指定するロジカルチャネルごとの履歴情報に基づいて、受信したコマンドの実行順序が当該ロジカルチャネルにおいて所定の実行順序であるか否かにより受信したコマンドの正当性を確認する。  
これにより、ロジカルチャネルごとにコマンドの実行順序をチェックすることができ、各ロジカルチャネルごとの任意のタイミングでのアクセスを容認しつつ、不正な順序で処理が実行されることを防止できる。
【００３７】
次に、上記ＩＣカード１における第２の動作例について説明する。  
第２の動作例では、ロジカルチャネルごとに実行したコマンドに関する情報を履歴情報として保存する。第２の動作例では、ロジカルチャネルごとに、正常終了したコマンド（実行結果が正常終了のコマンド）の命令コードが履歴情報として履歴管理テーブル１２ｂに保存されるようになっている。上述したように、各ロジカルチャネルの履歴情報としては、少なくとも後続のコマンドを実行する際に参照すべきコマンドの命令コードが履歴管理テーブル１２ｂに保存される。この場合も、各ロジカルチャネルの履歴情報としては、当該ロジカルチャネルにおいて、直前に実行して正常終了したコマンドの命令コードを保存するようにしても良いし、当該ＩＣカード１がリセット後に実行して正常終了した各コマンドの命令コードを保存するようにしても良いし、所定回数前までの正常終了した各コマンドの命令コードを保存するようにしても良い。
【００３８】
第２の動作例のＩＣカード１は、ＩＣカード処理装置２から与えられたコマンドを実行する際、上記のような履歴情報を参照することにより、受信したコマンド（実行する命令）が所定の実行順序であるか否かを各ロジカルチャネルごとに判定する。たとえば、受信したコマンドと直前に実行したコマンドとの関係をチェックする場合、ＩＣカード１は、受信したコマンドのロジカルチャネルで直前に実行したコマンドの命令コードを当該ロジカルチャネルの履歴情報から読出し、直前に実行したコマンドの命令コードが所定の実行順序において受信したコマンドの直前に実行すべきものであることを確認する。
【００３９】
図４は、ＩＣカード１における第２の動作例を説明するためのフローチャートである。なお、ステップＳ３１〜Ｓ３３、Ｓ３５〜Ｓ３６およびＳ３９〜Ｓ４０の各処理は、それぞれ図３に示すステップＳ１１〜Ｓ１３、Ｓ１５〜Ｓ１６およびＳ１９〜Ｓ２０と略同様な処理であるため、詳細な説明を省略するものとする。  
ＩＣカード処理装置２からコマンドを受信すると（ステップＳ３１、ＹＥＳ）、ＩＣカード１のＣＰＵ１０は、当該コマンドのロジカルチャネルと命令コードとを判別し（ステップＳ３２）、当該ロジカルチャネルの履歴情報を読み出す（ステップＳ３３）。
【００４０】
当該ロジカルチャネルの履歴情報を読み出すと、ＣＰＵ１０は、当該ロジカルチャネルの履歴情報における直前の正常終了したコマンドの命令コード（あるいは直前までの正常終了した複数のコマンドの各命令コード）と、受信したコマンドの命令コードとの順序が所定の実行順序であるか否かを判断する（ステップＳ３４）。
【００４１】
受信したコマンドの実行順序が正しくないと判断した場合（ステップＳ３４、ＮＯ）、ＣＰＵ１０は、当該コマンドに応じた処理を行うことなく、エラー処理を行う（ステップＳ３５）。この場合、ＣＰＵ１０は、エラー処理として、たとえば、動作を停止する処理を行う。このように実行順序が正しくないコマンドを与えられた場合、当該ＩＣカード１が動作を停止することにより、不正アクセスを防止することが可能となる。また、エラー処理としては、受信したコマンドの実行順序が正当でないため処理不可である旨のレスポンスをＩＣカード処理装置２へ送信するようにしても良い。
【００４２】
受信したコマンドの実行順序が正しいと判断した場合（ステップＳ３４、ＹＥＳ）、ＣＰＵ１０は、当該ロジカルチャネルのセキュリティ状態又はカレント状態を参照しつつ、受信したコマンドに応じた処理を実行する（ステップＳ３６）。  
受信したコマンドに応じた処理が正常終了すると（ステップＳ３７、ＹＥＳ）、ＣＰＵ１０は、当該コマンドの命令コードを当該ロジカルチャネルの履歴情報として履歴管理テーブル１２ｂに保存する（ステップＳ３８）。すなわち、ＣＰＵ１０は、正常終了したコマンドの命令コードを当該コマンドのロジカルチャネルの履歴情報として履歴管理テーブル１２ｂに保存する。また、受信したコマンドに応じた処理が正常終了した場合（ステップＳ３７、ＹＥＳ）、ＣＰＵ１０は、当該コマンドに対するレスポンスとして、処理が正常終了したことを示す応答データを当該コマンドの発信元であるＩＣカード処理装置２へ送信する（ステップＳ３９）。
【００４３】
また、受信したコマンドに応じた処理がエラーとなった場合（ステップＳ３７、ＮＯ）、ＣＰＵ１０は、当該コマンドに関する情報を履歴管理テーブル１２ｂに保存せずに、当該コマンドに対するレスポンスとして、処理がエラー終了したことを示す応答データを当該コマンドの発信元であるＩＣカード処理装置２へ送信する（ステップＳ４０）。
【００４４】
以上の処理により、第２の動作例のＩＣカード１では、正常終了したコマンドの命令コードをロジカルチャネルごとに履歴情報として履歴管理テーブル１２ｂに記憶しておき、ＩＣカード処理装置２から与えられたコマンドを実行する場合には、受信したコマンドが指定するロジカルチャネルの履歴情報に基づいて、受信したコマンドの実行順序が当該ロジカルチャネルにおいて所定の実行順序であるか否かにより受信したコマンドの正当性を確認する。
【００４５】
これにより、ロジカルチャネルごとにコマンドの実行順序をチェックすることができ、各ロジカルチャネルごとの任意のタイミングでのアクセスを容認しつつ、不正な順序で処理が実行されることを防止できる。  
また、第２の動作例では、履歴管理テーブル１２ｂに正常終了したコマンドの命令コードのみを格納すれば、上述した処理が実現できる。すなわち、第２の動作例では、少ないメモリ容量で履歴管理テーブル１２ｂを構成できる。
【００４６】
なお、この発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４７】
【図１】ＩＣカードと、ＩＣカードとの通信機能を有するＩＣカード処理装置の構成例を概略的に示すブロック図である。
【図２】図１に示すＩＣカードの構成例を概略的に示すブロック図である。
【図３】ＩＣカードの第１の動作例を説明するためのフローチャート。
【図４】ＩＣカードの第２の動作例を説明するためのフローチャート。
【符号の説明】
【００４８】
１…ＩＣカード、１ａ…ＩＣチップ、１ｃ…本体、１ｂ…モジュール、２…ＩＣカード処理装置、１０…ＣＰＵ、１１…プログラムメモリ、１２…ワーキングメモリ、１２ａ…ロジカルチャネル管理テーブル、１２ｂ…履歴管理テーブル、１３…データメモリ、１５…通信制御部、１６…電源部、１７…インターフェース
【図１】
0004896837.tif 000002
【図２】
0004896837.tif 000003
【図３】
0004896837.tif 000004
【図４】
0004896837.tif 000005