説明

携帯可能電子装置および携帯可能電子装置の制御方法

【課題】 ロジカルチャネルごとにコマンドの実行順序をチェックすることができ、各ロジカルチャネルごとの任意のタイミングでのアクセスを容認しつつ、不正な順序で処理が実行されることを防止できる。
【解決手段】 ロジカルチャネルごとにカレント状態あるいはセキュリティ状態を保持することが可能なICカード1において、正常終了したコマンドの命令コードおよび実行結果をロジカルチャネルごとに履歴情報として履歴管理テーブル12bに記憶しておき、ICカード処理装置2から与えられたコマンドを実行する場合には、当該コマンドが指定するロジカルチャネルごとの履歴情報に基づいて、受信したコマンドの実行順序が当該ロジカルチャネルにおいて所定の実行順序であるか否かを確認する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、個人情報あるいは取引情報などが記憶されているICチップが内蔵されているICカードあるいはICタグなどの携帯可能電子装置、および、上記携帯可能電子装置の制御方法などに関する。
【背景技術】
【0002】
従来、一般的な接触式および非接触式ICカードは、外部通信インターフェースとして半二重通信方式のシリアルインターフェースを有している。このようなICカードには、ロジカルチャネルと称する機能を有しているものがある。上記ロジカルチャネルの機能を有するICカードでは、物理的には1つのインターフェースを上記ロジカルチャネルの機能により擬似的に複数の通信インターフェースとして用いることが可能である。例えば、外部装置のアプリケーションAがチャネル1、アプリケーションBがチャネル2を指定することにより、タイムシェアリングでICカードとの通信を行うことができる。この場合、ICカードでは、指定されたチャネル毎に独立してアクセス対象のファイルあるいはフォルダを管理したり、制御したりすることが可能である。このため、アプリケーションAとアプリケーションBとは、それぞれICカードと1対1で通信しているかのように動作することができる。
【0003】
一方、ICカードに外部装置から与えられる命令(コマンド)には、例えば、乱数発生命令と外部認証命令のように、複数の命令を所定の順序で実行しなければならないものがある。これは、不正なアクセスを防止するためのものであり、上記のような所定の実行順序を守らないと命令は正しく実行されない。
【0004】
しかしながら、従来のICカードでは、命令の実行順についてはロジカルチャネル毎に管理されていない。このため、複数のチャネルで外部装置から命令を受信している場合、従来のICカードでは、各チャネルで受信する命令群の順序が正しくても、受信する命令の順序が所定の順序とならないことがありうる。たとえば、命令X、Yが連続して実行すべき命令であるものとする。この場合、チャネル1で命令Xを受信した直後に、チャネル2で命令Zを受信すると、従来のICカードは、X、Zの順で命令が実行されるものと判断してしまう。この結果、従来のICカードでは、チャネル1で受信する命令X、Yが所定の順序であっても、命令X、Yが正しく実行されないという問題点がある。
【特許文献1】特開2005−196730号公報
【非特許文献1】ISO7816−4
【発明の開示】
【発明が解決しようとする課題】
【0005】
この発明の一形態は、セキュリティ性を維持しつつ利便性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
この発明の一形態としての携帯可能電子装置は、外部装置から与えられるコマンドに応じて種々の処理を実行する制御素子を有するものにおいて、ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報を記憶する記憶手段と、外部装置からコマンドが与えられた場合、前記記憶手段に記憶されている当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認する確認手段と、この確認手段により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行する実行手段と、この実行手段により実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する保存手段とを有する。
【0007】
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置から与えられるコマンドに応じて種々の処理を実行する制御素子を有する携帯可能電子装置に用いられる方法であって、外部装置からコマンドが与えられた場合、ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報が記憶されている記憶手段における当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認し、この確認により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行し、この実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する。
【発明の効果】
【0008】
この発明の一形態によれば、セキュリティ性を維持しつつ利便性が高い携帯可能電子装置および携帯可能電子装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【0009】
以下、この発明に係る実施の形態について図面を参照しつつ説明する。
図1は、本実施の形態に係る携帯可能電子装置としてのICカード1およびICカード1を含むICカードシステムの構成例を示すブロック図である。
上記ICカード1は、外部装置としてのICカード処理装置2からの電源供給により動作可能な状態となる(活性化される)。動作可能となったICカード1は、上記ICカード処理装置2からの種々のコマンドに応じて種々の処理を行う。すなわち、上記ICカード処理装置2は、ICカード1を動作させるための電源を供給するとともに、当該ICカード1に対して種々の処理を要求するコマンドを供給する。上記ICカード処理装置2がICカード1に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
【0010】
また、上記ICカード1は、アンテナあるいは無線通信部等により上記ICカード処理装置2と非接触の状態で無線通信を行う非接触式の携帯可能電子装置(非接触式ICカード)であっても良し、上記ICカード処理装置2と物理的に接触して通信を行う接触式の携帯可能電子装置(接触式ICカード)であっても良い。さらには、上記ICカード1は、非接触式ICカードとしての通信機能と接触式ICカードとしての通信機能とを有する複合型のICカード(デュアルインターフェースICカード)であっても良い。なお、本実施の形態では、主に、非接触式ICカードを想定して説明する。非接触式ICカードと接触式ICカードとはICカード処理装置2との通信方式等が異なるだけである。このため、以下に説明する実施の形態は、接触式ICカードにも同様に適用できる。
【0011】
次に、上記ICカード1の構成例について説明する。
図1に示すように、上記ICカード1は、CPU10、プログラムメモリ11、ワーキングメモリ12、データメモリ13、通信制御部15、電源部16、および、インターフェース17などにより構成される。
また、上記ICカード1は、カード状の本体1cにより構成される。上記ICカード1を形成するカード状の本体1cには、1つ(あるいは複数)のICチップ1aとアンテナ17とが埋設される。上記ICチップ1aは、CPU10、プログラムメモリ11、ワーキングメモリ12、データメモリ13、通信制御部15および電源部16などにより構成される。上記ICチップ1aは、上記インターフェース17としてのアンテナに接続された状態でモジュール化され、当該ICカード1を形成するカード状の本体1c内に埋設される。たとえば、図2は、非接触式ICカード全体の構成例を示す図である。図2に示す非接触式ICカードは、カード状の本体1cを有している。この本体1c内には、図2に点線で示すように、1つ(あるいは複数)のICチップ1aとアンテナ17とを有するモジュール1bが埋め込まれている。
【0012】
上記CPU10は、ICカード1全体の制御を司るものである。上記CPU10は、上記プログラムメモリ11あるいはデータメモリ13に記憶された制御プログラムおよび制御データなどに基づいて動作する。上記CPU10は、基本的な動作を司る制御プログラムを実行することにより、ICカード処理装置2から与えられるコマンドに応じた処理を実行する。また、上記CPU10は、当該ICカード1の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
【0013】
たとえば、ICカード処理装置2から上記データメモリ13へのデータの書込みを要求するコマンドが与えられれば、上記CPU10は、上記データメモリ13へのデータの書き込み処理を実行する。また、ICカード処理装置2から上記データメモリ13に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記CPU10は、上記データメモリ13からのデータの読み出し処理を実行する。さらに、上記CPU10は、後述する各ロジカルチャネルの履歴情報に基づいて実行しようとするコマンドの正当性を確認する機能を有している。
【0014】
上記プログラムメモリ11は、読み出し専用のメモリ(ROM:リードオンリーメモリ)により構成される。上記プログラムメモリ11には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。つまり、上記プログラムメモリ11には、予め当該ICカード1の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記CPU10は、上記プログラムメモリ11に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。また、上記プログラムメモリ11には、データメモリ13におけるメモリ領域の属性などを指定するための情報なども記憶されている。さらに、上記プログラムメモリ11には、特定の処理について各種コマンドの所定の実行順序を示す情報が記憶される。このような情報の一例として、上記プログラムメモリ11には、認証処理において乱数発生命令(乱数発生コマンド)と外部認証命令(外部認証コマンド)とが所定の実行順序で実行すべきものであることを示す情報が記憶されている。なお、上記のような各コマンドの所定の実行順序を示す情報は、データメモリ13に記憶されるようにしても良い。
【0015】
上記ワーキングメモリ12は、揮発性のメモリ(RAM;ランダムアクセスメモリ)により構成される。上記ワーキングメモリ12は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ12には、ICカード処理装置(外部装置)2との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ12には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
【0016】
また、上記ワーキングメモリ12には、ロジカルチャネル管理テーブル12aと履歴管理テーブル12bとが設けられる。ここでは、当該ICカード1が活性化されるごとにリセットされるロジカルチャネル管理テーブル12aと履歴管理テーブル12bとがワーキングメモリ12に設けられるものとする。なお、ロジカルチャネル管理テーブル12aあるいは履歴管理テーブル12bは、データメモリ13に設けるようにしても良い。データメモリ13にロジカルチャネル管理テーブル12aと履歴管理テーブル12bとがもうけられる場合、ロジカルチャネル管理テーブル12aと履歴管理テーブル12bに記憶された情報は、当該ICカード1への電源がオフとなっても保持される。
【0017】
ロジカルチャネル管理テーブル12aには、各ロジカルチャネルのカレント状態およびセキュリティ状態を示す情報が格納される。つまり、ロジカルチャネル管理テーブル12aに格納されている情報を参照することにより、各ロジカルチャネルのカレントフォルダあるいはカレントファイルが判別される。また、各ロジカルチャネルのセキュリティ状態は、ロジカルチャネル管理テーブル12aを参照することにより判別される。
【0018】
履歴管理テーブル12bには、各ロジカルチャネルごとに履歴情報が格納される。各ロジカルチャネルの履歴情報は、各ロジカルチャネルごとの実行したコマンドに関する情報である。ただし、各ロジカルチャネルの履歴情報としては、少なくとも後続のコマンドを実行する際に参照すべきコマンドの命令コードが保存される必要がある。たとえば、直前に実行したコマンドと実行しようとするコマンドとの順序のみをチェックする形態であれば、履歴情報としては、直前に実行したコマンドの命令コードが保存される。また、直前に実行したコマンドだけでなく2つ以上前のコマンドからの順序あるいは実行結果をチェックする形態であれば、履歴情報としては、複数のコマンドの命令コードおよび実行結果が保存される。
【0019】
上記データメモリ(不揮発性メモリ)13は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ13は、例えば、EEPROMあるいはフラッシュメモリなどにより構成される。上記データメモリ13には、当該ICカード1の使用目的に応じた種々の情報が記憶される。上記データメモリ13には、種々の設定情報などを記憶するためのデータテーブルなども設けられる。
【0020】
また、当該ICカードの使用目的に応じたアプリケーション(処理プログラムおよび運用データなど)は、上記データメモリ13に記憶される。また、当該ICカード1が複数の使用目的に使用される場合、上記データメモリ13には、各使用目的に応じた複数のアプリケーションが記憶される。なお、当該ICカード1の使用目的に応じたアプリケーションは、上記データメモリ13上に定義された使用目的ごとのプログラムファイルおよびデータファイルなどの各ファイルに記憶される。このようなファイル構造は、たとえば、ISO/IEC7816−4に基づくものである。つまり、上記ICカード1のデータメモリ13には、種々のアプリケーションおよび種々の運用データが記憶可能である。
【0021】
上記通信制御部15は、上記インターフェース17を介して外部装置(たとえば、ICカード処理装置2)とのデータ通信を制御するものである。外部装置からデータを受信する場合、上記通信制御部15は、上記インターフェース17により受信した電波としての送信データを復調し、復調した信号を上記CPU10に供給する。また、外部装置へデータを送信する場合、上記通信制御部15は、上記CPU10から与えられるデータを変調し、変調したデータを上記インターフェース17としてのアンテナにより電波として発信する。なお、接触式ICカードの場合、上記インターフェース17は、外部装置のコンタクト部と物理的に接触する端子などにより構成されるものとなる。
【0022】
上記電源部16は、上記インターフェース17により受信した電波から当該ICカード1の各部を動作させるための電源およびクロックパルスを生成する。上記電源部16は、上記アンテナ17により受信した電波から生成した電源電圧およびクロックパルスを各部に供給するようになっている。また、上記電源部16からの電源供給により起動した場合、上記CPU10は、当該ICカード1の処理状態をリセットする処理を行うようになっている。なお、接触式ICカードの場合、インターフェース17を介して外部装置から直接的に供給される電源およびクロックパルスにより各部が動作するようになっている。
【0023】
次に、上記ICカード処理装置2について説明する。
上記ICカード処理装置2は、図1に示すように、制御装置21およびカードリーダライタ22を有している。上記制御装置21は、パーソナルコンピュータ(PC)などにより構成される。上記制御装置21は、CPUなどの演算処理部、RAM、ROM、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置21では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置21は、ICカード1とのデータ通信を行う上記カードリーダライタ22とのデータの入出力を行うようになっている。
【0024】
たとえば、上記制御装置21には、上記ICカード1を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置21では、上記のような制御プログラムを実行することにより上記ICカード1を用いた各種の処理を実行する。たとえば、上記ICカード1を用いた各種の処理において、上記制御装置21は、所定のコマンドを所定の手順で供給する。上記制御装置21では、上記のような各コマンドに対するICカード1からの各レスポンス(コマンドに対する処理結果等を示す情報)に基づいて各種の処理を行うようになっている。
【0025】
上記カードリーダライタ22は、上記ICカード1とのデータ通信を行う通信手段として機能する。上記カードリーダライタ22は、上記ICカード1の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ22を介して制御装置21は、上記ICカード1とのデータ通信を実現している。
【0026】
上記ICカード1が非接触型のICカードである場合、上記カードリーダライタ22は、上記ICカード1との無線によるデータ通信を行うためのアンテナおよび通信制御部(変復調回路等)などにより構成される。非接触型のICカード1へデータを送信する場合、上記カードリーダライタ22では、上記制御装置21から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のICカード1からデータを受信する場合、上記カードリーダライタ22では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置21へ供給する。また、上記カードリーダライタ22では、上記のようなデータの送受信とともに、上記ICカード1を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
【0027】
また、上記ICカード1が接触型のICカードである場合、上記カードリーダライタ22は、ICカード1と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のICカードとのデータの送受信を行う場合、上記カードリーダライタ22では、上記コンタクト部がICカード1側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ22では、ICカード1に物理的に接触しているコンタクト部を介して当該ICカード1に対して電源およびクロックパルスを供給するようになっている。
【0028】
次に、上記ICカード1における第1の動作例について説明する。
上記履歴管理テーブル12bには、各ロジカルチャネルごとに実行したコマンドに関する情報を履歴情報として保存されるようになっている。第1の動作例では、ロジカルチャネルごとに、実行したコマンドの命令コードおよび当該コマンドの実行結果が履歴情報として履歴管理テーブル12bに保存されるようになっている。上述したように、各ロジカルチャネルの履歴情報としては、少なくとも後続のコマンドを実行する際に参照すべきコマンドの命令コードおよび実行結果などである。たとえば、各ロジカルチャネルの履歴情報としては、各ロジカルチャネルについて、直前に実行したコマンドの命令コードおよび実行結果を保存するようにしても良いし、当該ICカード1がリセット後に実行した各コマンドの命令コードおよびお実行結果を保存するようにしても良いし、所定回数前までの各コマンドの命令コード及び実行結果を保存するようにしても良い。
【0029】
第1の動作例のICカード1は、ICカード処理装置2から与えられたコマンドを実行する際、上記のような履歴情報を参照することにより、受信したコマンド(実行する命令)が所定の実行順序であるか否かを各ロジカルチャネルごとに判定する(受信したコマンドの正当性を確認する)。たとえば、受信したコマンドと直前に実行したコマンドとの関係をチェックする場合、ICカード1は、受信したコマンドのロジカルチャネルで直前に実行したコマンドの命令コードおよび実行結果を当該ロジカルチャネルの履歴情報から読出し、直前に実行したコマンドの命令コードが所定の実行順序において受信したコマンドの直前に実行すべきものであり、かつ、直前に実行したコマンドの実行結果が正常終了であることを確認する。
【0030】
図3は、ICカード1における第1の動作例を説明するためのフローチャートである。
まず、ICカード1は、ICカード処理装置2から送信されたコマンドをインターフェース17および通信制御部15を介して受信する(ステップS11、YES)。ICカード処理装置2からコマンドを受信すると、ICカード1のCPU10は、当該コマンドのロジカルチャネルと命令コードとを判別する(ステップS12)。受信したコマンドのロジカルチャネルが判別すると、CPU10は、当該ロジカルチャネルの履歴情報を読み出す(ステップS13)。当該ロジカルチャネルの履歴情報を読み出すと、CPU10は、読み出した当該ロジカルチャネルの履歴情報に基づいて、受信したコマンドの実行順序が所定の実行順序であるか否かを判断(確認)する(ステップS14)。この判断において、CPU10は、当該ロジカルチャネルの履歴情報における直前の正常終了したコマンドの命令コード(あるいは直前までの正常終了した複数のコマンドの各命令コード)と、受信したコマンドの命令コードとの順序が所定の実行順序であるか否かを判断する。
【0031】
受信したコマンドの実行順序が正しくないと判断した場合(ステップS14、NO)、CPU10は、当該コマンドに応じた処理を行うことなく、エラー処理を行う(ステップS15)。この場合、CPU10は、エラー処理として、たとえば、当該CPU10の動作を停止する処理を行う。このように実行順序が正しくないコマンドを与えられた場合、当該ICカード1が動作を停止することにより、不正アクセスを防止することが可能となる。また、エラー処理としては、受信したコマンドの実行順序が正当でないため処理不可である旨のレスポンスをICカード処理装置2へ送信するようにしても良い。
【0032】
受信したコマンドの実行順序が正しいと判断した場合(ステップS14、YES)、CPU10は、ロジカルチャネル管理テーブル12aに格納されている当該ロジカルチャネルのセキュリティ状態あるいはカレント状態を示す情報を参照しつつ、受信したコマンドに応じた処理を実行する(ステップS16)。
たとえば、受信したコマンドが照合あるいは認証などのコマンドである場合、CPU10は、当該コマンドに応じた照合あるいは認証などの処理を実行し、その実行結果に従ってロジカルチャネル管理テーブル12aに記憶されている当該コマンドのロジカルチャネルのセキュリティ状態を更新する。
【0033】
また、受信したコマンドがファイルへのアクセス(読取り、書込み、書換えなど)を要求するコマンドである場合、CPU10は、当該コマンドで指定されているロジカルチャネルにおけるカレントフォルダあるいはカレントファイルを示す情報に基づいて、ロジカルチャネル管理テーブル12aに記憶されている当該コマンドのロジカルチャネルのカレントフォルダあるいはカレントファイルにアクセスする。
また、受信したコマンドがセキュリティ状態を参照するコマンドである場合、CPU10は、ロジカルチャネル管理テーブル12aに記憶されている当該コマンドのロジカルチャネルのセキュリティ状態を参照して当該コマンドの命令コードに応じた処理を実行する。
また、受信したコマンドがフォルダあるいはファイルのカレント状態を更新するコマンドである場合、CPU10は、ロジカルチャネル管理テーブル12aに記憶されている当該コマンドのロジカルチャネルにおけるフォルダあるいはファイルのカレント状態を更新する。
【0034】
受信したコマンドに応じた処理が終了すると、CPU10は、当該コマンドの命令コードと実行結果とを当該ロジカルチャネルの履歴情報として保存する(ステップS17)。すなわち、上記CPU10は、受信したコマンドに関する当該ロジカルチャネルの履歴情報として、当該コマンドの命令コードと、当該コマンドの命令コードに応じた処理が正常終了したかエラーとなったかを示す情報(実行結果)とを履歴管理テーブル12bに保存する。
【0035】
また、受信したコマンドに応じた処理が正常終了した場合(ステップS18、YES)、CPU10は、当該コマンドに対するレスポンスとして、処理が正常終了したことを示す応答データを当該コマンドの発信元であるICカード処理装置2へ送信する(ステップS19)。また、受信したコマンドに応じた処理がエラーとなった場合(ステップS18、NO)、CPU10は、当該コマンドに対するレスポンスとして、処理がエラー終了したことを示す応答データを当該コマンドの発信元であるICカード処理装置2へ送信する(ステップS20)。
【0036】
以上の処理により、第1の動作例のICカード1では、受信(実行)したコマンドの命令コードおよび実行結果をロジカルチャネルごとに履歴情報として履歴管理テーブル12bに記憶しておき、ICカード処理装置2から与えられたコマンドを実行する場合には、当該コマンドが指定するロジカルチャネルごとの履歴情報に基づいて、受信したコマンドの実行順序が当該ロジカルチャネルにおいて所定の実行順序であるか否かにより受信したコマンドの正当性を確認する。
これにより、ロジカルチャネルごとにコマンドの実行順序をチェックすることができ、各ロジカルチャネルごとの任意のタイミングでのアクセスを容認しつつ、不正な順序で処理が実行されることを防止できる。
【0037】
次に、上記ICカード1における第2の動作例について説明する。
第2の動作例では、ロジカルチャネルごとに実行したコマンドに関する情報を履歴情報として保存する。第2の動作例では、ロジカルチャネルごとに、正常終了したコマンド(実行結果が正常終了のコマンド)の命令コードが履歴情報として履歴管理テーブル12bに保存されるようになっている。上述したように、各ロジカルチャネルの履歴情報としては、少なくとも後続のコマンドを実行する際に参照すべきコマンドの命令コードが履歴管理テーブル12bに保存される。この場合も、各ロジカルチャネルの履歴情報としては、当該ロジカルチャネルにおいて、直前に実行して正常終了したコマンドの命令コードを保存するようにしても良いし、当該ICカード1がリセット後に実行して正常終了した各コマンドの命令コードを保存するようにしても良いし、所定回数前までの正常終了した各コマンドの命令コードを保存するようにしても良い。
【0038】
第2の動作例のICカード1は、ICカード処理装置2から与えられたコマンドを実行する際、上記のような履歴情報を参照することにより、受信したコマンド(実行する命令)が所定の実行順序であるか否かを各ロジカルチャネルごとに判定する。たとえば、受信したコマンドと直前に実行したコマンドとの関係をチェックする場合、ICカード1は、受信したコマンドのロジカルチャネルで直前に実行したコマンドの命令コードを当該ロジカルチャネルの履歴情報から読出し、直前に実行したコマンドの命令コードが所定の実行順序において受信したコマンドの直前に実行すべきものであることを確認する。
【0039】
図4は、ICカード1における第2の動作例を説明するためのフローチャートである。なお、ステップS31〜S33、S35〜S36およびS39〜S40の各処理は、それぞれ図3に示すステップS11〜S13、S15〜S16およびS19〜S20と略同様な処理であるため、詳細な説明を省略するものとする。
ICカード処理装置2からコマンドを受信すると(ステップS31、YES)、ICカード1のCPU10は、当該コマンドのロジカルチャネルと命令コードとを判別し(ステップS32)、当該ロジカルチャネルの履歴情報を読み出す(ステップS33)。
【0040】
当該ロジカルチャネルの履歴情報を読み出すと、CPU10は、当該ロジカルチャネルの履歴情報における直前の正常終了したコマンドの命令コード(あるいは直前までの正常終了した複数のコマンドの各命令コード)と、受信したコマンドの命令コードとの順序が所定の実行順序であるか否かを判断する(ステップS34)。
【0041】
受信したコマンドの実行順序が正しくないと判断した場合(ステップS34、NO)、CPU10は、当該コマンドに応じた処理を行うことなく、エラー処理を行う(ステップS35)。この場合、CPU10は、エラー処理として、たとえば、動作を停止する処理を行う。このように実行順序が正しくないコマンドを与えられた場合、当該ICカード1が動作を停止することにより、不正アクセスを防止することが可能となる。また、エラー処理としては、受信したコマンドの実行順序が正当でないため処理不可である旨のレスポンスをICカード処理装置2へ送信するようにしても良い。
【0042】
受信したコマンドの実行順序が正しいと判断した場合(ステップS34、YES)、CPU10は、当該ロジカルチャネルのセキュリティ状態又はカレント状態を参照しつつ、受信したコマンドに応じた処理を実行する(ステップS36)。
受信したコマンドに応じた処理が正常終了すると(ステップS37、YES)、CPU10は、当該コマンドの命令コードを当該ロジカルチャネルの履歴情報として履歴管理テーブル12bに保存する(ステップS38)。すなわち、CPU10は、正常終了したコマンドの命令コードを当該コマンドのロジカルチャネルの履歴情報として履歴管理テーブル12bに保存する。また、受信したコマンドに応じた処理が正常終了した場合(ステップS37、YES)、CPU10は、当該コマンドに対するレスポンスとして、処理が正常終了したことを示す応答データを当該コマンドの発信元であるICカード処理装置2へ送信する(ステップS39)。
【0043】
また、受信したコマンドに応じた処理がエラーとなった場合(ステップS37、NO)、CPU10は、当該コマンドに関する情報を履歴管理テーブル12bに保存せずに、当該コマンドに対するレスポンスとして、処理がエラー終了したことを示す応答データを当該コマンドの発信元であるICカード処理装置2へ送信する(ステップS40)。
【0044】
以上の処理により、第2の動作例のICカード1では、正常終了したコマンドの命令コードをロジカルチャネルごとに履歴情報として履歴管理テーブル12bに記憶しておき、ICカード処理装置2から与えられたコマンドを実行する場合には、受信したコマンドが指定するロジカルチャネルの履歴情報に基づいて、受信したコマンドの実行順序が当該ロジカルチャネルにおいて所定の実行順序であるか否かにより受信したコマンドの正当性を確認する。
【0045】
これにより、ロジカルチャネルごとにコマンドの実行順序をチェックすることができ、各ロジカルチャネルごとの任意のタイミングでのアクセスを容認しつつ、不正な順序で処理が実行されることを防止できる。
また、第2の動作例では、履歴管理テーブル12bに正常終了したコマンドの命令コードのみを格納すれば、上述した処理が実現できる。すなわち、第2の動作例では、少ないメモリ容量で履歴管理テーブル12bを構成できる。
【0046】
なお、この発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0047】
【図1】ICカードと、ICカードとの通信機能を有するICカード処理装置の構成例を概略的に示すブロック図である。
【図2】図1に示すICカードの構成例を概略的に示すブロック図である。
【図3】ICカードの第1の動作例を説明するためのフローチャート。
【図4】ICカードの第2の動作例を説明するためのフローチャート。
【符号の説明】
【0048】
1…ICカード、1a…ICチップ、1c…本体、1b…モジュール、2…ICカード処理装置、10…CPU、11…プログラムメモリ、12…ワーキングメモリ、12a…ロジカルチャネル管理テーブル、12b…履歴管理テーブル、13…データメモリ、15…通信制御部、16…電源部、17…インターフェース

【特許請求の範囲】
【請求項1】
外部装置から与えられるコマンドに応じた処理を実行する携帯可能電子装置において、
ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報を記憶する記憶手段と、
外部装置からコマンドが与えられた場合、前記記憶手段に記憶されている当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認する確認手段と、
この確認手段により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行する実行手段と、
この実行手段により実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する保存手段と、
を有することを特徴とする携帯可能電子装置。
【請求項2】
前記保存手段は、各ロジカルチャネルごとに、実行されたコマンドの命令識別情報と実行結果とを履歴情報として前記記憶手段に記憶する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
前記保存手段は、各ロジカルチャネルごとに、正常終了したコマンドの命令識別情報を履歴情報として前記記憶手段に記憶する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項4】
前記保存手段は、各ロジカルチャネルごとに、後続のコマンドが参照すべきコマンドの命令識別情報および実行結果とを前記記憶手段に記憶する、
ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項5】
前記確認手段は、前記記憶手段に記憶されている当該コマンドのロジカルチャネルの履歴情報に基づいて、当該ロジカルチャネルにおいて実行されたコマンドと当該コマンドとの実行順序が所定の実行順序か否かにより前記コマンドの正当性を確認する、
ことを特徴とする前記請求項1乃至4の何れか1項に記載の携帯可能電子装置。
【請求項6】
前記確認手段は、当該ロジカルチャネルにおいて直前に実行されたコマンドと当該コマンドとの実行順序が所定の実行順序か否かにより前記コマンドの正当性を確認する、
ことを特徴とする前記請求項5に記載の携帯可能電子装置。
【請求項7】
前記各手段を有するモジュールと、
前記モジュールを内蔵した本体と、を有する、
ことを特徴とする前記請求項1乃至6の何れか1項に記載の携帯可能電子装置。
【請求項8】
外部装置から与えられるコマンドに応じて種々の処理を実行する制御素子を有する携帯可能電子装置に用いられる制御方法であって、
外部装置からコマンドが与えられた場合、ロジカルチャネルごとに実行したコマンドに関する情報を示す履歴情報が記憶されている記憶手段における当該コマンドで指定されているロジカルチャネルの履歴情報に基づいて、前記コマンドの正当性を確認し、
この確認により前記コマンドの正当性が確認された場合、前記コマンドに応じた処理を実行し、
この実行したコマンドに関する情報を当該ロジカルチャネルの履歴情報として前記記憶手段に保存する、
を有することを特徴とする携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−48415(P2009−48415A)
【公開日】平成21年3月5日(2009.3.5)
【国際特許分類】
【出願番号】特願2007−213879(P2007−213879)
【出願日】平成19年8月20日(2007.8.20)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】