(57)【要約】  携帯可能電子装置は、正当な処理内容を示す情報が記憶されている記憶部を有する。前記携帯可能電子装置は、外部装置からの処理を要求するコマンドを受信部に受信し、受信したコマンドに応じて実行すべき処理内容が前記記憶部に記憶している処理内容と一致するか否かを判断する。この判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記携帯可能電子装置は、前記受信部により受信したコマンドに応じた処理を実行する。【選択図】      図１
2009540395.tif 000002
【特許請求の範囲】
【請求項１】
携帯可能電子装置であって、
正当な処理内容を示す情報を記憶する記憶部と、
外部装置からの処理を要求するコマンドを受信する受信部と、
この受信部により受信したコマンドに応じて実行すべき処理内容が前記記憶部に記憶している処理内容と一致するか否かを判断する判断部と、
前記判断部により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する実行部と、
を有する。
【請求項２】
前記クレーム１に記載の携帯可能電子装置であって、
前記記憶部には、正当な処理内容を示す情報として、正当な各コマンドの種類および処理パラメータを示す情報を記憶し、
前記判断部は、前記受信部により受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致するか否かを判断し、
前記実行部は、前記受信部により受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する。
【請求項３】
前記クレーム２に記載の携帯可能電子装置であって、
前記記憶部には、処理パラメータとして複数の値が記憶可能である。
【請求項４】
前記クレーム２に記載の携帯可能電子装置であって、
前記記憶部には、正当な処理内容を示す情報として、さらに、正当な各コマンドの受信順序を示す情報を記憶し、
前記判断部は、前記受信部により順次受信する各コマンドについて、受信順序、コマンドの種類、および、処理パラメータが、前記記憶部に記憶している正当な各コマンドの受信順序、コマンドの種類、および、処理パラメータと一致するか否かを判断し、
前記実行部は、前記受信部により順次受信する各コマンドの、受信順序、コマンドの種類、および、処理パラメータが、前記記憶部に記憶している正当な各コマンドの受信順序、コマンドの種類、および、処理パラメータと一致すると判断した場合、前記受信部により順次受信するコマンドに応じた処理を順次実行する。
【請求項５】
前記クレーム１に記載の携帯可能電子装置であって、
前記記憶部には、正当な処理内容を示す情報として、さらに、正当な各コマンド間の受信間隔の許容範囲を示す情報を記憶し、
前記判断部は、さらに、前記受信部により受信したコマンドと前記受信部により当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であるか否かを判断し、
前記実行部は、前記受信部により受信したコマンドと前記受信部により当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する。
【請求項６】
前記クレーム５に記載の携帯可能電子装置であって、
前記記憶部には、正当な各コマンドの受信間隔の許容範囲を当該携帯可能電子装置の動作クロックの数で示す情報が記憶され、
前記判断部は、前記受信部により受信したコマンドと前記受信部により当該コマンドの直前に受信したコマンドとの受信間隔を示す動作クロックの数が、前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲を示す動作クロックの数の範囲内であるか否かを判断する。
【請求項７】
前記クレーム１に記載の携帯可能電子装置であって、
前記記憶部には、複数種類の一連の処理に対応して複数の正当な処理内容を示す情報が記憶され、
さらに、前記受信部により順次受信したコマンドの内容に基づいて前記記憶部に記憶されている複数の正当な処理内容を示す情報から正当な処理内容を示す情報を選択する選択部を有し、
前記判断部は、前記受信部により受信したコマンドに応じた処理内容が前記選択部により選択した正当な処理内容を示す情報と一致するか否かを判断し、
前記実行部は、前記受信部により受信したコマンドに応じた処理内容が前記選択した正当な処理内容を示す情報と一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する。
【請求項８】
前記クレーム７に記載の携帯可能電子装置であって、
さらに、種々の一連の処理を実行するための複数のアプリケーションが記憶されるアプリケーション記憶部を有し、
前記記憶部には、前記アプリケーション記憶部に記憶されている各アプリケーションに対応して複数の正当な処理内容を示す情報が記憶され、
前記選択部は、前記受信部により受信したアプリケーションの選択を要求するコマンドに基づいて、当該コマンドで選択が要求されたアプリケーションに対応する正当な処理内容を示す情報を、前記記憶部に記憶されている複数の正当な処理内容を示す情報から選択する。
【請求項９】
前記クレーム１に記載の携帯可能電子装置であって、
さらに、データを一時的に記憶する一時記憶部を有し、
前記実行部は、特定のコマンドについては処理内容を前記一時記憶部に記憶する処理を行い、
さらに、前記判断部により前記受信部にて受信したコマンドが前記記憶部に記憶している処理内容と一致しないと判断された場合、前記一時記憶部に記憶した処理内容を破棄する破棄部と、
前記判断部により一連の処理が完了するまでの全てのコマンドが前記記憶部に記憶している処理内容と一致すると判断された場合、前記一時記憶部に記憶した処理内容を実行する一括処理部と、有する。
【請求項１０】
前記クレーム９に記載の携帯可能電子装置であって、
さらに、種々のデータを記憶する不揮発性の記憶部を有し、
前記実行部は、前記不揮発性の記憶部へのデータの書込みを要求するコマンドについては前記不揮発性の記憶部に書込むべき書込みデータを前記一時記憶部に記憶する処理を行い、
前記破棄部は、前記判定部により前記受信部にて受信したコマンドが不正であると判定された場合、前記一時記憶部に記憶した書込みデータを破棄し、
前記一括処理部は、前記判断部により一連の処理が完了するまでの全てのコマンドが前記記憶部に記憶している処理内容と一致すると判断された場合、前記一時記憶部に記憶した書込みデータを前記不揮発性の記憶部に書込む処理を行う。
【請求項１１】
前記クレーム１に記載の携帯可能電子装置であって、
さらに、前記判断部により前記受信部にて受信したコマンドが前記記憶部に記憶している処理内容と一致しないと判断した場合、当該携帯可能電子装置の機能を停止させるエラー処理を行うエラー処理部を有する。
【請求項１２】
前記クレーム１１に記載の携帯可能電子装置であって、
さらに、前記エラー処理部により機能が停止された状態において外部装置からの管理鍵による認証要求を受け付け、前記管理鍵による認証が成功した場合に、前記エラー処理部により停止されている機能を回復させる処理を行う回復部を有する。
【請求項１３】
前記クレーム１に記載の携帯可能電子装置であって、
前記各部を具備するモジュールと、
前記モジュールが埋設された本体と、を有する。
【請求項１４】
携帯可能電子装置であって、
正規の一連の処理内容を示す正規処理情報が予め記憶されている第１の記憶部と、
外部装置からのコマンドを受信する受信部と、
この受信部により受信したコマンドに応じた処理を実行する実行部と、
この実行部により前記受信部にて受信したコマンドに応じて実行した処理内容を示す履歴情報を記憶する第２の記憶部と、
前記第１の記憶部に記憶されている正規の処理内容を示す情報に基づいて、この第２の記憶部に記憶されている履歴情報から不正なアクセスを検出する検出部と、を有する。
【請求項１５】
前記クレーム１４に記載の携帯可能電子装置であって、
前記検出部は、当該携帯可能電子装置が起動した場合に、前記第１の記憶部に記憶されている正規処理情報に基づいて前記第２の記憶部に記憶されている履歴情報から不正なアクセスを検出する。
【請求項１６】
前記クレーム１４に記載の携帯可能電子装置であって、
前記検出部は、当該携帯可能電子装置が起動した場合に、前記第１の記憶部に記憶されている正規処理情報に基づいて、前記第２の記憶部に記憶されている直前に実行した一連の処理内容を示す履歴情報からの不正なアクセスを検出する。
【請求項１７】
前記クレーム１４に記載の携帯可能電子装置であって、
前記第１の記憶部には、正規処理情報として、正規の一連の処理で用いられる各正規コマンドの種類および処理パラメータを示す情報を記憶しておき、
前記検出部は、前記第１の記憶部に記憶している各正規コマンドの種類および処理パラメータと前記第２の記憶部に記憶している履歴情報で示される実行した一連の処理で受信した各受信コマンドの種類および処理パラメータが一致するか否かにより不正アクセスの有無を検出する。
【請求項１８】
前記クレーム１７に記載の携帯可能電子装置であって、
前記第１の記憶部には、正規処理情報として、さらに、正規の一連の処理で用いられる各正規コマンドの順序を示す情報を記憶し、
前記検出部は、前記第１の記憶部に記憶している各正規コマンドの順序、種類、および、処理パラメータと、前記第２の記憶部に記憶している履歴情報で示される実行した一連の処理で受信した各受信コマンドの順序、種類、および、処理パラメータが一致するか否かにより不正アクセスの有無を検出する。
【請求項１９】
前記クレーム１４に記載の携帯可能電子装置であって、
前記第１の記憶部には、正規処理情報として、さらに、正規の一連の処理で用いられる各正規コマンドを受信すべきタイミングの許容範囲を示す情報を記憶し、
前記第２の記憶部には、履歴情報として、さらに、実行した一連の処理において各コマンドを受信したタイミングを示す情報を記憶し、
前記検出部は、さらに、前記第２の記憶部に記憶されている履歴情報で示される各コマンドを受信したタイミングが前記第１の記憶部に記憶されている各正規コマンドの受信すべきタイミングの許容範囲内であるか否かにより不正なアクセスの有無を検出する。
【請求項２０】
前記クレーム１４に記載の携帯可能電子装置であって、
前記第１の記憶部には、複数種類の一連の処理に対応して複数の正規処理情報が記憶され、
前記検出部は、さらに、前記第２の記憶部に記憶されている履歴情報で示される実行した一連の処理で受信した各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報が前記第１の記憶部に記憶されているか否かにより不正なアクセスを検出する。
【請求項２１】
前記クレーム１４に記載の携帯可能電子装置であって、
さらに、前記検出部により履歴情報から不正なアクセスが検出された場合、不正なアクセスを受けたことを外部へ通知する通知部を有する。
【請求項２２】
前記クレーム１４に記載の携帯可能電子装置であって、
さらに、前記検出部により履歴情報から不正なアクセスが検出された場合、当該携帯可能電子装置の機能を停止させる停止部を有する。
【請求項２３】
前記クレーム２２に記載の携帯可能電子装置であって、
さらに、前記停止部により機能が停止された状態において外部装置からの管理鍵による認証要求を受け付け、前記管理鍵による認証が成功した場合に、前記停止部により停止されている機能を回復させる処理を行う回復部を有する。
【請求項２４】
前記クレーム１４に記載の携帯可能電子装置であって、
前記各部を具備するモジュールと、
前記モジュールが埋設された本体と、を有する。
【請求項２５】
携帯可能電子装置の制御方法であって、
外部装置からの処理を要求するコマンドを受信することと、
この受信したコマンドに応じて実行すべき処理内容が記憶部に記憶している正当な処理内容を示す情報と一致するか否かを判断することと、
この判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信したコマンドに応じた処理を実行すること。
【請求項２６】
前記クレーム２５に記載の制御方法であって、
前記記憶部には、正当な処理内容を示す情報として、正当な各コマンドの種類および処理パラメータを示す情報が記憶され、
前記判断することは、前記受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致するか否かを判断し、
前記実行することは、前記受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致する場合、前記受信したコマンドに応じた処理を実行する。
【請求項２７】
前記クレーム２５に記載の制御方法であって、
前記記憶部には、正当な処理内容を示す情報として、さらに、正当な各コマンド間の受信間隔の許容範囲を示す情報を記憶し、
前記判断することは、さらに、前記受信したコマンドと当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であるか否かを判断し、
前記実行することは、前記判断により前記受信したコマンドと当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であると判断した場合、前記受信したコマンドに応じた処理を実行する。
【請求項２８】
前記クレーム２５に記載の制御方法であって、
前記記憶部には、複数種類の一連の処理に対応して複数の正当な処理内容を示す情報が記憶され、
さらに、順次受信したコマンドの内容に基づいて前記記憶部に記憶されている複数の正当な処理内容を示す情報から正当な処理内容を示す情報を選択すること、を有し、
前記判断することは、前記受信したコマンドに応じた処理内容が前記選択した正当な処理内容を示す情報と一致するか否かを判断し、
前記実行することは、前記判断により受信したコマンドに応じた処理内容が前記選択した正当な処理内容を示す情報と一致すると判断した場合、前記受信したコマンドに応じた処理を実行する。
【請求項２９】
前記クレーム２５に記載の制御方法であって、
前記実行することは、特定のコマンドについては処理内容をデータを一時的に記憶する一時記憶部に記憶する処理を行い、
さらに、前記判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致しないと判断した場合、前記一時記憶部に記憶している処理内容を破棄することと、
前記判断により一連の処理が完了するまでの全てのコマンドが前記記憶部に記憶している処理内容と一致すると判断された場合、前記一時記憶部に記憶した処理内容を実行すること、を有する。
【請求項３０】
前記クレーム２５に記載の制御方法であって、
さらに、前記判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致しないと判断した場合、当該携帯可能電子装置の機能を停止させるエラー処理を行うことと、
前記エラー処理により機能が停止された状態において外部装置からの管理鍵による認証要求を受け付け、前記管理鍵による認証が成功した場合に、前記エラー処理により停止されている機能を回復させる処理を行うこと。
【請求項３１】
携帯可能電子装置の制御方法であって、
外部装置からのコマンドを受信することと、
受信したコマンドに応じた処理を実行することと、
前記受信したコマンドに応じて実行した処理内容を示す履歴情報を第２の記憶部に記憶することと、
第１の記憶部に予め記憶されている正規の一連の処理内容を示す正規処理情報に基づいて、前記第２の記憶部に記憶されている履歴情報から不正なアクセスを検出すること。
【請求項３２】
前記クレーム３１に記載の制御方法であって、
前記不正なアクセスを検知することは、当該携帯可能電子装置が起動した場合に、前記第１の記憶部に記憶されている正規処理情報に基づいて、前記第２の記憶部に記憶されている直前に実行した一連の処理内容を示す履歴情報から不正なアクセスを検出する。
【請求項３３】
前記クレーム３１に記載の制御方法であって、
前記第１の記憶部には、正規処理情報として、正規の一連の処理で用いられる各正規コマンドの順序、種類、および、処理パラメータを示す情報が記憶され、
前記不正なアクセスを検出することは、前記第１の記憶部に記憶している各正規コマンドの順序、種類、および、処理パラメータと前記第２の記憶部に記憶している履歴情報で示される実行した一連の処理で受信した各受信コマンドの順序、種類、および、処理パラメータが一致するか否かにより不正なアクセスの有無を検出する。
【請求項３４】
前記クレーム３１に記載の制御方法であって、
正規の一連の処理内容を示す正規処理情報としては、正規の一連の処理で用いられる各正規コマンドを受信すべきタイミングの許容範囲を示す情報が前記第１の記憶部に予め記憶され、
前記履歴情報としては、実行した一連の処理において受信した各受信コマンドを受信したタイミングを示す情報が第２の記憶部に記憶され、
前記不正なアクセスを検出することは、さらに、前記第２の記憶部に記憶されている履歴情報で示される各受信コマンドを受信したタイミングが前記第１の記憶部に記憶されている各正規コマンドの受信すべきタイミングの許容範囲内であるか否かにより不正なアクセスの有無を検出する。
【請求項３５】
前記クレーム３１に記載の制御方法であって、
前記第１の記憶部には、複数種類の一連の処理に対応する複数の正規処理情報が予め記憶され、
前記不正なアクセスを検出することは、前記第２の記憶部に記憶されている履歴情報で示される実行した一連の処理で受信した各受信コマンドの内容と一致する各正規コマンドが規定されている正規処理情報が前記第２の記憶部に記憶されているか否かにより不正なアクセスを検出する。
【請求項３６】
前記クレーム３１に記載の制御方法であって、
さらに、前記履歴情報から不正なアクセスが検出された場合、不正なアクセスを受けたことを外部へ通知すること、を有する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、個人情報あるいは取引情報などが記憶されているＩＣカードと称される携帯可能電子装置、および、その制御方法などに関する。
【背景技術】
【０００２】
近年、ＩＣカードなどの携帯可能電子装置は、様々な用途に利用されている。特に、ＩＣカードには、個人情報や金銭的な取引情報などが記憶されることが多い。このようなＩＣカードあるいはＩＣカードを用いたシステムでは、高いセキュリティ性が求められており、不正なアクセスを防止する技術が求められている。
【０００３】
特開昭６０−２０７９５７号公報（文献１）、あるいは、特開平１１−２８２９９１号公報（文献２）には、ＩＣカードに対するコマンドの種類と実行順とに基づいて不正なアクセスを検出する技術が記載されている。これらの技術では、正しいコマンドの種類（コマンド名）と実行順とをデータテーブルに記憶しておき、上記データテーブルに記憶していない順序で各種のコマンドが与えられた場合、または、上記処理テーブルに記憶されていない種類のコマンド（コマンド名）が与えられた場合、当該ＩＣカードが、与えられたコマンドの実行を制限するものである。しかしながら、上記のような技術では、各コマンドによる処理内容についてはチェックされない。従って、各コマンドの処理内容が不正なものであっても、各コマンドをコマンド名ごとの所定の手順で与えれば、当該ＩＣカードは、不正を検出することができずに、各コマンドを実行してしまうという問題がある。
【０００４】
また、近年のＩＣカードは、多機能化されている。多機能化されたＩＣカードでは、種々の処理（機能）を複数のアプリケーションにより実現している。これらのアプリケーションは、それぞれ異なる処理手順で種々の処理を実現する。したがって、複数のアプリケーションが動作する１つのＩＣカードについては、従来の技術では、各アプリケーションごとの実行手順を制限することができないという問題点もある。
【０００５】
また、上記した従来の技術では、所定の手順で実行されている間、ＩＣカードは、それらのコマンドに応じた処理を実施してしまう。従って、コマンド名による実行順序の不正を検出して処理を中止しても、それまでに実行された処理結果は、取り消すことができない。たとえば、所定の実行順序で与えられた書き込みコマンドに応じてメモリに記憶しているデータを書き換えてしまうと、その後のコマンドの実行順序で不正を検出しても、書き換えられたデータは、元に戻すことができない。つまり、従来の技術では、不正アクセスを検知する前に、データが改ざんされてしまう可能性があるという問題点がある。
【０００６】
特に、上位装置との無線通信により種々の処理を実行する非接触式ＩＣカード（contactless IC card）では、ユーザが気がつかないまま不正なアクセスを受ける可能性がある。これは、ユーザが適切にＩＣカードを管理している場合であっても、ユーザに認識されないように、悪意のある第３者が、無線通信により当該ＩＣカードにアクセスする可能性があるためである。
【０００７】
また、上記ＩＣカードでは、装置自体の大きさなどに制限がある。このため、上記ＩＣカードでは、不揮発性メモリとして内蔵しているＥＥＰＲＯＭあるいはフラッシュメモリが低速かつ小容量である。すなわち、ＩＣカードでは、一般のコンピュータなどの情報処理装置と同様に、ハードディスク装置あるいは大容量の不揮発性メモリを用いた不正アクセスの検出処理を実施するのが困難である。
【０００８】
また、ＷＯ  ０１／０２２３５９（文献３）には、ＩＣカード上に不正なアクセスがあったことを示す情報を表示する技術が記載されている。しかしながら、文献３の技術では、ＩＣカードには、カード上に表示を行うための特別な回路及び部品が必要となる。また、ＩＣカード上に不正なアクセスがあったことを示す情報を表示しても、ユーザ自身が気づかない可能性もある。さらには、ＩＣカード上に不正なアクセスがあったことを示す情報を表示しても、不正のアクセスの内容を精査することは困難である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この発明の一形態は、セキュリティ性が高い携帯可能電子装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明の一形態としての携帯可能電子装置は、正当な処理内容を示す情報を記憶する記憶部と、外部装置からの処理を要求するコマンドを受信する受信部と、この受信部により受信したコマンドに応じて実行すべき処理内容が前記記憶部に記憶している処理内容と一致するか否かを判断する判断部と、前記判断部により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する実行部とを有する。
【００１１】
この発明の一形態としての携帯可能電子装置は、正規の一連の処理内容を示す正規処理情報が予め記憶されている第１の記憶部と、外部装置からのコマンドを受信する受信部と、この受信部により受信したコマンドに応じた処理を実行する実行部と、この実行部により前記受信部にて受信したコマンドに応じて実行した処理内容を示す履歴情報を記憶する第２の記憶部と、前記第１の記憶部に記憶されている正規の処理内容を示す情報に基づいて、この第２の記憶部に記憶されている履歴情報から不正なアクセスを検出する検出部とを有する。
【００１２】
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置からの処理を要求するコマンドを受信し、この受信したコマンドに応じて実行すべき処理内容が記憶部に記憶している正当な処理内容を示す情報と一致するか否かを判断し、この判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信したコマンドに応じた処理を実行する。
【００１３】
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置からのコマンドを受信し、受信したコマンドに応じた処理を実行し、前記受信したコマンドに応じて実行した処理内容を示す履歴情報を第２の記憶部に記憶し、第１の記憶部に予め記憶されている正規の一連の処理内容を示す正規処理情報に基づいて、前記第２の記憶部に記憶されている履歴情報から不正なアクセスを検出する。
【００１４】
本発明の他の目的及び利点は、以下の明細書に記載され、その一部は該開示から自明であるか、又は本発明の実行により得られるであろう。本発明の該目的及び利点は、ここに特に指摘される手段と組み合わせにより実現され、得られる。
【発明を実施するための最良の形態】
【００１５】
以下、この発明に係る第１および第２の実施例について図面を参照しつつ説明する。
【００１６】
図１は、第１および第２の実施例に係る携帯可能電子装置としてのＩＣカード１およびＩＣカード１を含むＩＣカードシステムの構成例を示すブロック図である。
【００１７】
上記ＩＣカード１は、外部装置としてのＩＣカード処理装置２からの電源供給により動作可能な状態となる。動作可能となったＩＣカード１は、上記ＩＣカード処理装置２からのコマンドに応じて種々の処理を行う。上記ＩＣカード処理装置２は、ＩＣカード１を動作させるための電源を供給するとともに、当該ＩＣカード１に対して種々の処理を要求するコマンドを供給する。上記ＩＣカード処理装置２がＩＣカード１に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
【００１８】
また、上記ＩＣカード１は、アンテナあるいは無線通信部等により上記ＩＣカード処理装置２と非接触の状態で無線通信を行う非接触式の携帯可能電子装置（非接触式ＩＣカード）であっても良し、上記ＩＣカード処理装置２と物理的或いは電気的に接触して通信を行う接触式の携帯可能電子装置（接触式ＩＣカード）であっても良い。さらには、上記ＩＣカード１は、非接触式ＩＣカードとしての通信機能と接触式ＩＣカードとしての通信機能とを有する複合型のＩＣカード（デュアルインターフェースＩＣカード）であっても良い。なお、第１および第２の実施例では、主に、非接触式ＩＣカードを想定して説明する。非接触式ＩＣカードと接触式ＩＣカードとはＩＣカード処理装置２との通信方式等が異なるだけである。このため、以下に説明する実施例は、接触式ＩＣカードにも同様に適用できる。
【００１９】
上記ＩＣカード１の構成例について説明する。  
図１に示すように、上記ＩＣカード１は、制御素子１１、プログラムメモリ１２、ワーキングメモリ１３、データメモリ１４、通信制御部１５、電源部１６、および、アンテナ（インターフェース）１７などにより構成される。  
また、上記ＩＣカード１は、カード状の本体により構成される。上記ＩＣカード１を形成するカード状の本体には、１つ（あるいは複数）のＩＣチップ１ａとアンテナ１７とが埋設される。上記ＩＣチップ１ａは、制御素子１１、プログラムメモリ１２、ワーキングメモリ１３、データメモリ１４、通信制御部１５および電源部１６などにより構成される。上記ＩＣチップ１ａは、上記アンテナ１７に接続された状態でモジュール化され、当該ＩＣカード１を形成するカード状の本体内に埋設される。たとえば、図２は、非接触式ＩＣカード全体の構成例を示す図である。図２に示す非接触式ＩＣカードは、カード状の本体Ｃを有している。この本体Ｃ内には、図２に点線で示すように、１つ（あるいは複数）のＩＣチップ１ａとアンテナ１７とを有するモジュールＭが埋め込まれている。
【００２０】
上記制御素子１１は、ＩＣカード１全体の制御を司るものである。上記制御素子１１は、上記プログラムメモリ１２あるいはデータメモリ１４に記憶された制御プログラムおよび制御データなどに基づいて動作する。上記制御素子１１は、基本的な動作を司る制御プログラムを実行することにより、外部装置から与えられるコマンドに応じた処理を実行する。たとえば、外部装置から上記データメモリ１４へのデータの書込みを要求するコマンドが与えられれば、上記制御素子１１は、上記データメモリ１４へのデータの書き込み処理を実行する。また、外部装置から上記データメモリ１４に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記制御素子１１は、上記データメモリ１４からのデータの読み出し処理を実行する。さらに、上記制御素子１１は、当該ＩＣカード１の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
【００２１】
上記プログラムメモリ１２は、読み出し専用のメモリ（ＲＯＭ：リードオンリーメモリ）により構成される。上記プログラムメモリ１２には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。上記プログラムメモリ１２には、予め当該ＩＣカード１の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記制御素子１１は、上記プログラムメモリ１２に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。
【００２２】
上記ワーキングメモリ１３は、揮発性のメモリ（ＲＡＭ；ランダムアクセスメモリ）により構成される。上記ワーキングメモリ１３は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ１３には、ＩＣカード処理装置（外部装置）２との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ１３には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
【００２３】
上記データメモリ（不揮発性メモリ）１４は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ１４は、例えば、ＥＥＰＲＯＭあるいはフラッシュメモリなどにより構成される。上記データメモリ１４には、当該ＩＣカード１の使用目的に応じたアプリケーション（処理プログラムおよび運用データなど）が記憶される。当該ＩＣカード１が複数の使用目的に使用される場合、上記データメモリ１４には、各使用目的に応じた複数のアプリケーションが記憶される。また、当該ＩＣカード１の使用目的に応じたアプリケーションは、上記データメモリ１４上に定義された使用目的ごとのプログラムファイルおよびデータファイルなどの各ファイルに記憶される。このようなファイル構造は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４に基づくものである。つまり、上記ＩＣカード１のデータメモリ１４には、種々のアプリケーションおよび種々の運用データが記憶可能である。
【００２４】
また、上記データメモリ１４には、種々の設定データなども記憶される。これらの設定データは、上記データメモリ１４に書き換えできない状態で書き込むようにしても良い。図１に示す構成例では、上記データメモリ１４には、正規処理情報Ｐ（Ｐ１、Ｐ２、Ｐ３、Ｐ４）を記憶するためのデータテーブル１４ａが設けられている。上記データテーブル１４ａに記憶される正規処理情報Ｐは、実行する一連の処理が正当な処理であるか否かを判定するための情報である。
【００２５】
たとえば、上記データテーブル１４ａに記憶される正規処理情報Ｐでは、一連の処理における各コマンドについて、実行順序（受信順序）、コマンドの種類（コマンドコード）、処理内容（処理パラメータ）、および、受信すべきタイミングなどを示す情報が含まれる。また、上記データテーブル１４ａには、各アプリケーションごとに、上記のような正規処理情報Ｐが記憶される。さらに、上記データテーブル１４ａには、各アプリケーションに対して、複数の正規処理情報Ｐを記憶するようにしても良い。なお、上記データテーブル１４ａに記憶される正規処理情報Ｐ（Ｐ１、Ｐ２、Ｐ３、Ｐ４）については、後で詳細に説明する。  
また、上記データメモリ１４には、外部から与えられたコマンドと外部からのコマンドに応じて当該ＩＣカード１が実行した一連の処理内容とを示す履歴情報（ログデータ）を記憶するようになっている。このようなデータメモリ１４に記憶されるログデータ（以下、単にログとも称する）については、後述する第２の実施例で詳細に説明する。
【００２６】
さらに、上記データメモリ１４には、外部からの不正アクセス（外部から与えられたコマンド群が不正）であると判断した場合、その内容を示すエラー履歴情報なども記録されるようにしても良い。
【００２７】
上記通信制御部１５は、上記アンテナ１７を介して外部装置（たとえば、ＩＣカード処理装置２）とのデータ通信を制御するものである。外部装置からデータを受信する場合、上記通信制御部１５は、上記アンテナ１７により受信した電波としての送信データを復調し、復調した信号を上記制御素子１１に供給する。また、外部装置へデータを送信する場合、上記通信制御部１５は、上記制御素子１１から与えられるデータを変調し、変調したデータを上記アンテナ１７により電波として発信する。なお、接触式ＩＣカードでは、アンテナ１７の代わりに、外部装置のコンタクト部と物理的に接触するインターフェースを介して外部装置とのデータ通信を行う。
【００２８】
上記電源部１６は、上記アンテナ１７により受信した電波から当該ＩＣカード１の各部を動作させるための電源およびクロックパルスを生成する。上記電源部１６は、上記アンテナ１７により受信した電波から生成した電源電圧およびクロックパルスを各部に供給するようになっている。また、上記電源部１６からの電源供給により起動した場合、上記制御素子１１は、当該ＩＣカード１の処理状態をリセットする処理を行うようになっている。なお、接触式ＩＣカードでは、インターフェースを介して外部装置から直接的に供給される電源およびクロックパルスにより各部が動作するようになっている。
【００２９】
次に、上記ＩＣカード処理装置２について説明する。  
上記ＩＣカード処理装置２は、図１に示すように、制御装置２１およびカードリーダライタ２２を有している。上記制御装置２１は、パーソナルコンピュータ（ＰＣ）などにより構成される。上記制御装置２１は、ＣＰＵなどの演算処理部、ＲＡＭ、ＲＯＭ、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置２１では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置２１は、ＩＣカード１とのデータ通信を行う上記カードリーダライタ２２とのデータの入出力を行うようになっている。
【００３０】
たとえば、上記制御装置２１には、上記ＩＣカード１を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置２１では、上記のような制御プログラムを実行することにより上記ＩＣカード１を用いた各種の処理を実行する。たとえば、上記ＩＣカード１を用いた各種の処理において、上記制御装置２１は、所定のコマンドを所定の手順で供給する。上記制御装置２１では、上記のような各コマンドに対するＩＣカード１からの各レスポンス（コマンドに対する処理結果等を示す情報）に基づいて各種の処理を行うようになっている。
【００３１】
上記カードリーダライタ２２は、上記ＩＣカード１とのデータ通信を行う通信手段として機能する。上記カードリーダライタ２２は、上記ＩＣカード１の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ２２を介して制御装置２１は、上記ＩＣカード１とのデータ通信を実現している。
【００３２】
上記ＩＣカード１が非接触型のＩＣカードである場合、上記カードリーダライタ２２は、上記ＩＣカード１との無線によるデータ通信を行うためのアンテナおよび通信制御部（変復調回路等）などにより構成される。非接触型のＩＣカード１へデータを送信する場合、上記カードリーダライタ２２では、通信制御部により上記制御装置２１から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のＩＣカード１からデータを受信する場合、上記カードリーダライタ２２では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置２１へ供給する。また、上記カードリーダライタ２２では、上記のようなデータの送受信とともに、上記ＩＣカード１を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
【００３３】
また、上記ＩＣカード１が接触型のＩＣカードである場合、上記カードリーダライタ２２は、ＩＣカード１と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のＩＣカードとのデータの送受信を行う場合、上記カードリーダライタ２２では、上記コンタクト部がＩＣカード１側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ２２では、ＩＣカード１に物理的に接触しているコンタクト部を介して当該ＩＣカード１に対して電源およびクロックパルスを供給するようになっている。
【００３４】
次に、上記ＩＣカード１における処理について概略的に説明する。  
上記ＩＣカード１では、上記ＩＣカード処理装置２から順次供給されるコマンドに応じて一連の処理を実行するようになっている。また、上記ＩＣカード処理装置２では、所定の処理手順に応じて、所定の順序で所定の処理内容のコマンドを上記ＩＣカード１に順次供給する。これらのコマンドに対して、上記ＩＣカード１では、各コマンドに応じた処理を行って、その処理結果を上記ＩＣカード処理装置２に返すようになっている。
【００３５】
たとえば、ＩＣカード１を用いて金銭的な取引を行う処理（取引処理）を行う場合、上記ＩＣカード処理装置２は、当該取引処理の所定の処理手順（つまり、当該取引処理のための所定の制御プログラム）に基づいて、所定のコマンドを順次ＩＣカード１に供給する。上記ＩＣカード処理装置２から順次供給される各コマンドに対しては、上記ＩＣカード１では、各コマンドに応じた処理を順次実行する。これにより、上記ＩＣカード処理装置２と上記ＩＣカード１とは、上記取引処理を実現している。
【００３６】
また、上記ＩＣカード１には、上記ＩＣカード処理装置２から要求される一連の処理に応じたアプリケーション（処理プログラムおよび運用データ等）が予め当該ＩＣカード１内のメモリ（たとえば、データメモリ１４）に記憶されている。上記ＩＣカード１内のメモリに記憶されているアプリケーションは、上記ＩＣカード１の使用目的に応じた種々の機能を実現させるものである。従って、種々の機能を実現するＩＣカード１では、複数のアプリケーションが当該ＩＣカード１内のメモリに記憶されていることもある。
【００３７】
次に、ＩＣカード１が、所定の処理手順で所定の処理内容の処理を順次行うことにより実現する一連の処理の例について説明する。  
ここでは、上記のような一連の処理の具体例として、金銭的な取引を行う処理（取引処理）について説明する。また、上記ＩＣカード１では、上記アプリケーションＡＰ１により上記取引処理を実現しているものとする。
【００３８】
上述したように取引処理は、所定の処理手順で所定の処理内容の処理を行うようになっている。このため、正当な取引処理では、上記ＩＣカード処理装置２が上記ＩＣカード１に対して、所定のコマンドを所定の順序で供給するようになっている。言い換えれば、当該取引処理において所定のコマンドが所定の順序で供給されれば、上記ＩＣカード処理装置２は、上記ＩＣカード１に対して正当なアクセスを行っていると判定できる。これに対して、当該取引処理において所定のコマンドが所定の順序で供給されていなければ、上記ＩＣカード処理装置２は、上記ＩＣカード１に対して不正なアクセスを行っていると判定できる。
【００３９】
ここで、ＩＣカード１が、正当な手順で取引処理を実行する場合の流れについて説明する。  
図３は、上記ＩＣカード１がアプリケーションＡＰ１により実行する正当な取引処理の例を説明するためのフローチャートである。  
ここで、正当な取引処理では、ＩＣカード１は、アプリケーションＡＰ１の選択処理、鍵情報Ｋ１による認証処理、第１の情報Ｄ１の読出処理、第２の情報Ｄ２の読出処理、第３の情報Ｄ３の読出処理、第４の情報Ｄ４の書込処理を順に実行するものとする。この場合、ＩＣカード１には、ＩＣカード処理装置２から、アプリケーションＡＰ１の選択を要求する「セレクト（選択）」コマンドＣ１、鍵情報Ｋ１による認証を要求する「ベリファイ（認証）」コマンドＣ２、第１の情報Ｄ１の読出を要求する「リード」コマンドＣ３、第２の情報Ｄ２の読出を要求する「リード」コマンドＣ４、第３の情報Ｄ３の読出を要求する「リード」コマンドＣ５、および、第４の情報Ｄ４の書込を要求する「ライト」コマンドＣ６が順に供給される。
【００４０】
まず、上記ＩＣカード処理装置２では、待機状態において、ＩＣカード１に対する応答要求信号として、ＩＣカード１が動作するための電源およびクロックパルスを電波として上記カードリーダライタ２２から発信している。  
上記のような状態のＩＣカード処理装置２のカードリーダライタ２２の通信圏内に上記ＩＣカード１が提示されると、当該ＩＣカード１は、上記アンテナ１７により上記ＩＣカード処理装置２からの応答要求信号としての電波を受信する。上記アンテナ１７により受信した電波は、上記電源部１６により当該ＩＣカード１が動作するための電源電圧およびクロックパルスに変換される。上記電源部１６は、受信した電波から生成した電源電圧およびクロックパルスを当該ＩＣカード１内の各部に供給する（ステップＳ１）。これにより、当該ＩＣカード１は、動作可能な状態となる。
【００４１】
動作可能な状態となったＩＣカード１の制御素子１１は、まず、各部をリセットする処理を行う（ステップＳ２）。リセット処理が完了すると、当該ＩＣカード１の制御素子１１は、処理可能な状態となったことを示すレスポンスをＩＣカード処理装置２へ送信する。  
上記ＩＣカード処理装置２では、ＩＣカード１からのレスポンスとしての電波を上記カードリーダライタ２２により受信する。上記カードリーダライタ２２によりＩＣカード１からのレスポンスを受信すると、上記ＩＣカード処理装置２の制御装置２１は、当該取引処理を実行するためのアプリケーションとしてアプリケーションＡＰ１の選択を要求するコマンド（セレクトコマンド）Ｃ１をＩＣカード１に対して送信する。  
上記セレクトコマンドＣ１のコマンドコードは、「アプリケーション（カレントディレクトリ）の選択を要求するコマンド」であること示す情報である。また、上記セレクトコマンドＣ１の処理パラメータには、「選択する対象がアプリケーションＡＰ１（アプリケーションＡＰ１のディレクトリ）」を示す情報が含まれる。
【００４２】
上記セレクトコマンドＣ１を受信すると、上記ＩＣカード１では、当該コマンドで指定されるアプリケーションを選択するアプリケーション選択処理を行う（ステップＳ３）。上記ＩＣカード処理装置２からのコマンドを受信したＩＣカード１の上記制御素子１１は、受信したコマンドに含まれるコマンドコードに基づいてコマンドの種類を判別し、受信したコマンドＣ１に含まれる処理パラメータに基づいて処理内容（処理対象）を判別する。ここでは、上記ＩＣカード１の制御素子１１は、受信したセレクトコマンドＣ１のコマンドコードと処理パラメータとによりアプリケーションＡＰ１を選択することがＩＣカード処理装置２から要求されたことを認識する。従って、上記セレクトコマンドＣ１を受信すると、当該ＩＣカード１の上記制御素子１１は、アプリケーションＡＰ１を選択する処理（アプリケーション選択処理）を行う。
【００４３】
上記アプリケーション選択処理によりアプリケーションＡＰ１を選択すると、上記制御素子１１は、ＩＣカード処理装置２に対してアプリケーションＡＰ１を選択したことを示すレスポンス（セレクトコマンドＣ１に対する処理結果等を示すレスポンス）を送信する。なお、上記アプリケーション選択処理により上記アプリケーションＡＰ１の選択ができなかった場合（つまり、アプリケーション選択処理がエラーとなった場合）、上記制御素子１１は、上記ＩＣカード処理装置２に対してアプリケーションＡＰ１の選択が失敗したことを示すレスポンス（セレクトコマンドＣ１に対する処理結果等を示すレスポンス）を送信する。
【００４４】
上記セレクトコマンドＣ１に対するレスポンスとして上記アプリケーションＡＰ１を選択したことを示すレスポンスを受信した場合、上記ＩＣカード処理装置２の制御装置２１では、上記アプリケーション選択処理に続く所定の処理として、鍵情報Ｋ１を使用した認証処理をＩＣカード１に要求する。上記鍵情報Ｋ１は、アプリケーションＡＰ１に対応する認証情報である。
【００４５】
すなわち、上記ＩＣカード処理装置２の制御装置２１は、当該ＩＣカード１のアプリケーションＡＰ１に対応づけられている鍵情報Ｋ１に基づく認証処理を要求するコマンド（ベリファイコマンド）Ｃ２をＩＣカード１へ送信する。上記ベリファイコマンドＣ２は、コマンドコードが認証要求であることを示す情報である。また、上記ベリファイコマンドＣ２の処理パラメータには、暗号化された鍵情報Ｋ１などが含まれる。
【００４６】
上記のようなベリファイコマンドＣ２を受信したＩＣカード１では、上記鍵情報Ｋ１を使用した認証処理（鍵の照合処理）を行う（ステップＳ４）。上記ＩＣカード処理装置２からのベリファイコマンドＣ２を受信した場合、上記ＩＣカード１の上記制御素子１１は、受信したベリファイコマンドＣ２のコマンドコードと処理パラメータとにより、上記鍵情報Ｋ１による認証処理がＩＣカード処理装置２から要求されたことを認識する。従って、上記ベリファイコマンドＣ２を受信すると、当該ＩＣカード１の上記制御素子１１は、上記ベリファイコマンドＣ２の処理パラメータに含まれる鍵情報Ｋ１を照合する処理（認証処理）を行う。
【００４７】
上記認証処理により上記鍵情報Ｋ１による認証処理が成功すると、上記制御素子１１は、ＩＣカード処理装置２に対して上記鍵情報Ｋ１による認証が成功したことを示すレスポンス（ベリファイコマンドＣ２に対する処理結果等を示すレスポンス）を送信する。また、上記認証処理により上記鍵情報Ｋ１による認証が失敗した場合、上記制御素子１１は、上記ＩＣカード処理装置２に対して上記鍵情報Ｋ１による照合が失敗したことを示すレスポンス（ベリファイコマンドＣ２に対する処理結果等を示すレスポンス）を送信する。
【００４８】
上記ベリファイコマンドＣ２に対するレスポンスとして上記鍵情報Ｋ１による認証が成功したことを示すレスポンスを受けた場合、上記ＩＣカード処理装置２の制御装置２１では、上記認証処理に続く所定の処理として、第１の情報（例えば、カード番号）Ｄ１の読出処理をＩＣカード１に要求する。上記第１の情報Ｄ１は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として保持している情報である。
【００４９】
すなわち、上記ＩＣカード処理装置２の制御装置２１は、当該ＩＣカード１のアプリケーションＡＰ１に対応づけられている第１の情報Ｄ１の読み出しを要求するコマンド（リードコマンド）Ｃ３をＩＣカード１へ送信する。上記リードコマンドＣ３は、コマンドコードがデータの読出し要求であることを示す情報である。また、上記リードコマンドＣ３の処理パラメータには、読出しの対象となるデータが第１の情報Ｄ１であることを示す情報などが含まれる。
【００５０】
上記のようなリードコマンドＣ３を受信したＩＣカード１では、第１の情報Ｄ１を読み出す処理（第１の読出処理）を行う（ステップＳ５）。上記ＩＣカード処理装置２からのリードコマンドＣ３を受信した場合、上記ＩＣカード１の上記制御素子１１は、受信したリードコマンドＣ３のコマンドコードと処理パラメータとにより、上記第１の情報Ｄ１読出処理がＩＣカード処理装置２から要求されたことを認識する。従って、上記リードコマンドＣ３を受信すると、当該ＩＣカード１の上記制御素子１１は、上記リードコマンドＣ３の処理パラメータで指定される第１の情報Ｄ１を読み出す処理（第１の読出処理）を行う。
【００５１】
上記第１の読出処理により第１の情報Ｄ１を読み出すと、上記ＩＣカード１の制御素子１１は、ＩＣカード処理装置２に対して上記第１の情報として読み出した情報を含むレスポンス（リードコマンドＣ３に対する処理結果等を示すレスポンス）を送信する。なお、上記第１の読出処理により上記第１の情報が読み出させなかった場合、上記制御素子１１は、上記ＩＣカード処理装置２に対して第１の情報の読出しが失敗したことを示すレスポンス（リードコマンドＣ３に対する処理結果等を示すレスポンス）を送信する。
【００５２】
上記リードコマンドＣ３に対するレスポンスとして上記第１の情報Ｄ１の読出しが成功したことを示すレスポンス（読み出した第１の情報Ｄ１を含むレスポンス）を受けた場合、上記ＩＣカード処理装置２の制御装置２１では、上記第１の読出処理に続く所定の処理として、第２の情報（例えば、氏名）Ｄ２の読出処理をＩＣカード１に要求する。上記第２の情報Ｄ２は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として保持している情報である。
【００５３】
すなわち、上記ＩＣカード処理装置２の制御装置２１は、当該ＩＣカード１のアプリケーションＡＰ１に対応づけられている第２の情報Ｄ２の読み出しを要求するコマンド（リードコマンド）Ｃ４をＩＣカード１へ送信する。上記リードコマンドＣ４は、コマンドコードがデータの読出し要求であることを示す情報である。また、上記リードコマンドＣ４の処理パラメータには、読出しの対象となるデータが第２の情報Ｄ２であることを示す情報などが含まれる。
【００５４】
上記のようなリードコマンドＣ４を受信したＩＣカード１では、第２の情報Ｄ２を読み出す処理（第２の読出処理）を行う（ステップＳ６）。上記ＩＣカード処理装置２からのリードコマンドＣ４を受信した場合、上記ＩＣカード１の上記制御素子１１は、受信したリードコマンドＣ４のコマンドコードと処理パラメータとにより、上記第２の情報Ｄ２読出処理がＩＣカード処理装置２から要求されたことを認識する。従って、上記リードコマンドＣ４を受信すると、当該ＩＣカード１の上記制御素子１１は、上記リードコマンドＣ４の処理パラメータで指定される第２の情報Ｄ２を読み出す処理（第２の読出処理）を行う。
【００５５】
上記第２の読出処理により第２の情報Ｄ２を読み出すと、上記制御素子１１は、ＩＣカード処理装置２に対して上記第２の情報として読み出した情報を含むレスポンス（リードコマンドＣ４に対する処理結果等を示すレスポンス）を送信する。なお、上記第２の読出処理により上記第２の情報が読み出させなかった場合、上記制御素子１１は、上記ＩＣカード処理装置２に対して第２の情報の読出しが失敗したことを示すレスポンス（リードコマンドＣ４に対する処理結果等を示すレスポンス）を送信する。
【００５６】
上記リードコマンドＣ４に対するレスポンスとして上記第２の情報Ｄ２の読出しが成功したことを示すレスポンス（読み出した第２の情報Ｄ２を含むレスポンス）を受けた場合、上記ＩＣカード処理装置２の制御装置２１では、上記第２の読出処理に続く所定の処理として、第３の情報（例えば、有効期限）Ｄ３の読出処理をＩＣカード１に要求する。上記第３の情報Ｄ３は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として保持している情報である。
【００５７】
すなわち、上記ＩＣカード処理装置２の制御装置２１は、当該ＩＣカード１のアプリケーションＡＰ１に対応づけられている第３の情報Ｄ３の読み出しを要求するコマンド（リードコマンド）Ｃ５をＩＣカード１へ送信する。上記リードコマンドＣ５は、コマンドコードがデータの読出し要求であることを示す情報である。また、上記リードコマンドＣ５の処理パラメータには、読出しの対象となるデータが第３の情報Ｄ３であることを示す情報などが含まれる。
【００５８】
上記のようなリードコマンドＣ５を受信したＩＣカード１では、第３の情報Ｄ３を読み出す処理（第３の読出処理）を行う（ステップＳ７）。上記ＩＣカード処理装置２からのリードコマンドＣ５を受信した場合、上記ＩＣカード１の上記制御素子１１は、受信したリードコマンドＣ５のコマンドコードと処理パラメータとにより、上記第３の情報Ｄ３読出処理がＩＣカード処理装置２から要求されたことを認識する。従って、上記リードコマンドＣ５を受信すると、当該ＩＣカード１の上記制御素子１１は、上記リードコマンドＣ５の処理パラメータで指定される第３の情報Ｄ３を読み出す処理（第３の読出処理）を行う。
【００５９】
上記第３の読出処理により第３の情報Ｄ３を読み出すと、上記制御素子１１は、ＩＣカード処理装置２に対して上記第３の情報として読み出した情報を含むレスポンス（リードコマンドＣ５に対する処理結果等を示すレスポンス）を送信する。なお、上記第３の読出処理により上記第３の情報が読み出させなかった場合、上記制御素子１１は、上記ＩＣカード処理装置２に対して第３の情報の読出しが失敗したことを示すレスポンス（リードコマンドＣ５に対する処理結果等を示すレスポンス）を送信する。
【００６０】
上記リードコマンドＣ５に対するレスポンスとして上記第３の情報Ｄ３の読出しが成功したことを示すレスポンス（読み出した第３の情報Ｄ３を含むレスポンス）を受信した場合、上記ＩＣカード処理装置２の制御装置２１では、上記第３の読出処理に続く所定の処理として、第４の情報（例えば、取引金額情報）Ｄ４の書込み処理をＩＣカード１に要求する。上記第４の情報Ｄ４は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として書き込まれる情報である。
【００６１】
すなわち、上記ＩＣカード処理装置２の制御装置２１は、当該ＩＣカード１のアプリケーションＡＰ１に対応づけられている第４の情報Ｄ４の書き込みを要求するコマンド（ライトコマンド）Ｃ６をＩＣカード１へ送信する。上記ライトコマンドＣ６は、コマンドコードがデータの書き込み要求であることを示す情報である。また、上記ライトコマンドＣ６の処理パラメータには、書き込みの対象となるデータが第４の情報Ｄ４であることを示す情報などが含まれる。
【００６２】
上記のようなライトコマンドＣ６を受信したＩＣカード１では、第４の情報Ｄ４を書き込む処理（書込処理）を行う（ステップＳ８）。上記ＩＣカード処理装置２からのライトコマンドＣ６を受信した場合、上記ＩＣカード１の上記制御素子１１は、受信したライトコマンドＣ６のコマンドコードと処理パラメータとにより、上記第４の情報Ｄ４をデータメモリ１４に書き込む処理がＩＣカード処理装置２から要求されたことを認識する。従って、上記ライトコマンドＣ６を受信すると、当該ＩＣカード１の上記制御素子１１は、上記ライトコマンドＣ６の処理パラメータで指定される第４の情報Ｄ４をデータメモリ１４に書き込む処理（書込処理）を行う。
【００６３】
上記書込処理により第４の情報Ｄ４をデータメモリ１４に書き込むと、上記制御素子１１は、ＩＣカード処理装置２に対して上記第４の情報の書込みが成功したことを示すレスポンス（ライトコマンドＣ６に対する処理結果等を示すレスポンス）を送信する。なお、上記書込処理により上記第４の情報が書き込めなかった場合、上記制御素子１１は、上記ＩＣカード処理装置２に対して第４の情報の書込みが失敗したことを示すレスポンス（ライトコマンドＣ６に対する処理結果等を示すレスポンス）を送信する。
【００６４】
上記ライトコマンドＣ６に対するレスポンスとして上記第４の情報Ｄ４の書込みが成功したことを示すレスポンスを受信した場合、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に対する一連の取引処理が正常に終了したものと判断する。また、各コマンドＣ１〜Ｃ６に対するレスポンスとして、コマンドに対する処理が正常に終了できなかった旨のレスポンスを受信した場合、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に対する一連の取引処理がエラーとなったものと判断する。なお、上記のようなエラーが発生した場合、上記ＩＣカード処理装置２の制御装置２１は、一連の取引処理を最初から再度実行するか、あるいは、一連の取引処理を中止するようにすれば良い。
【００６５】
上記のように、アプリケーションＡＰ１による正当な一連の取引処理では、上記ＩＣカード１には、所定の複数のコマンドが所定の順序で順次供給される。従って、アプリケーションＡＰ１による一連の取引処理において、所定の処理内容を要求する各コマンドが所定の順序でＩＣカードに与えられていなければ、不正な処理が外部装置から要求されている可能性が高いと判断できる。
【００６６】
以下、上記のようなＩＣカード１に適用される第１、第２の実施例について説明する。
【００６７】
後述する第１の実施例では、ＩＣカード１が、上述したような正規の処理手順および正規の処理内容などを示す正規処理情報を予めデータテーブルに記憶しておき、その正規処理情報と受信した各コマンドの内容とを比較することにより、不正なアクセスを検知するようになっている。
【００６８】
また、後述する第２の実施例では、ＩＣカード１が、一連の処理ごとに受信したコマンドと処理内容とをログデータとして記憶しておき、上記データテーブルに予め記憶されている正規処理情報と上記ログデータとを比較することにより、不正なアクセスを検知するようになっている。
【００６９】
まず、第１の実施例について説明する。
【００７０】
第１の実施例では、上記ＩＣカード１が、外部装置（ＩＣカード処理装置２）からの不正なアクセスを検知するための種々の手法（不正検知処理）について説明する。なお、第１の実施例では、不正なアクセスを検知するための手法として、第１の不正検知処理、第２の不正検知処理、第３の不正検知処理について説明するものとする。
【００７１】
ここで、上記ＩＣカード１に適用される第１の実施例としての第１の不正検知処理について説明する。  
この第１の不正検知処理では、前提条件として、正当な処理内容及び処理順序などを示す正規処理情報Ｐが予めＩＣカード１内のデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。すなわち、正当な処理において使用される命令（コマンド）の処理内容（コマンドの種類と処理対象）を示す情報とそれらの各命令の実行順とが、正規処理情報Ｐ１として、予め当該ＩＣカード１内のデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。なお、以下の説明では、上記正規処理情報において、処理内容が規定されている各コマンド（命令）を正規コマンドと称し、さらに、規定されている順序と組み合わせてｎ番目の正規コマンドとも称するものとする。
【００７２】
各正規コマンドの処理内容を示す情報は、少なくともコマンドの種類（命令の種類）を示す情報（コマンドコード）と、処理対象（当該命令の処理対象）を示す情報（処理パラメータ）とを示すものであるとする。また、上記処理パラメータとしては、各正規コマンドの処理対象として許容されるべきデータ（値）を示すものである。このため、上記処理パラメータは、１つの値であっても良いし、複数の値であっても良いし、値の範囲を示すものであっても良い。なお、本実施例では、上記コマンドコードとしては、１つのコマンドコードが設定されることを想定する。但し、上記コマンドコードも、複数のコマンドコードを設定できるようにしても良い。
【００７３】
上記ＩＣカード１では、上記のような正規処理情報Ｐに基づいて、ＩＣカード処理装置（外部装置）２から順次与えられるコマンドが正当な手順かつ正当な処理内容であるか否かを判断する。ＩＣカード処理装置２から与えられた各コマンドの処理内容が上記正規処理情報Ｐで指定されている正規コマンドの処理内容と一致しないと判断した場合、上記ＩＣカード１では、不正なコマンド（不正なアクセス）であると判定する。
【００７４】
たとえば、正規処理情報Ｐで指定されている正規コマンドの処理パラメータが複数の値であれば、上記ＩＣカード１は、受信したコマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている複数の値のうちの何れかと一致するか否かが判断される。また、正規処理情報Ｐで指定されている正規コマンドの処理パラメータが値の範囲であれば、上記ＩＣカード１は、受信したコマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている値の範囲内であるか否かにより、受信したコマンドと正規コマンドとが一致するか否かが判断される。
【００７５】
また、不正なアクセスであると判定した場合、上記ＩＣカード１では、当該一連の処理を中止し、エラー処理を行う。なお、上記エラー処理としては、当該ＩＣカード１の一部または全部の機能を停止あるいは規制する処理が行われる。
【００７６】
図４は、正規処理情報Ｐ１の例を示す図である。  
図４に示す正規処理情報Ｐ１の例では、正規の処理が、リセット処理の後、「選択（セレクト）処理」、「認証（ベリファイ）処理」、「読出し（リード）処理」、「読出し（リード）処理」、「読出し（リード）処理」、および、「書込み（ライト）処理」の順に実行されることを示している。言い換えれば、リセット処理後に、「セレクト」コマンドＣ１、「ベリファイ」コマンドＣ２、「リード」コマンドＣ３、「リード」コマンドＣ４、「リード」コマンドＣ５、および、「ライト」コマンドＣ６の順に各コマンドが外部装置（ＩＣカード処理装置２）からＩＣカード１に与えられた場合、当該ＩＣカード１では、各コマンドが正当なコマンドであると判定する。
【００７７】
さらに、図４に示す例において、実行順序が１番目の「セレクト」コマンドＣ１については、処理パラメータでアプリケーションＡＰ１が指定されている。これは、１番目に実行すべき「セレクト」コマンドＣ１の処理内容がアプリケーションＡＰ１の選択処理であることを示している。  
また、図４に示す例において、実行順序が２番目の「ベリファイ」コマンドＣ２については、処理パラメータで鍵情報Ｋ１が指定されている。これは、２番目に実行すべき「ベリファイ」コマンドの処理内容が鍵情報Ｋ１による認証処理を行うことであることを示している。
【００７８】
また、図４に示す例において、実行順序が３、４、５番目の「リード」コマンドＣ３、Ｃ４、Ｃ５については、それぞれ処理パラメータで第１の情報Ｄ１、第２の情報Ｄ２、第３の情報Ｄ３が指定されている。これらは、３、４、５番目に実行すべき「リード」コマンドＣ３、Ｃ４、Ｃ５の処理内容が、それぞれ第１の情報Ｄ１、第２の情報Ｄ２、第３の情報Ｄ３の読出処理であることを示している。たとえば、第１の情報Ｄ１、第２の情報Ｄ２、第３の情報Ｄ３としては、カード番号、氏名、有効期限などの当該ＩＣカード１を用いた取引処理に必要な情報などが想定される。
【００７９】
また、図４に示す例において、実行順序が６番目の「ライト」コマンドＣ６については、処理パラメータで第４の情報Ｄ４が指定されている。これは、６番目に実行すべき「ライト」コマンドの処理内容が第４の情報Ｄ４の書込み処理であることを示している。たとえば、第４の情報Ｄ４としては、取引金額などの当該ＩＣカード１を用いた取引処理に必要な情報などが想定される。
【００８０】
なお、正規処理情報では、各コマンドの処理パラメータを複数設定しても良い。つまり、コマンドの処理パラメータとしては、複数の情報のうちの何れかという設定を行っても良い。たとえば、正規処理情報において、リードコマンドの処理パラメータとして、データＡ、データＢ、または、データＣと設定するようにしても良い。
【００８１】
図４に示すような正規処理情報が設定されている場合、当該ＩＣカード１では、処理パラメータでアプリケーションＡＰ１が指定されているセレクトコマンドＣ１、処理パラーメータで鍵情報Ｋ１が指定されているベリファイコマンドＣ２、処理パラーメータで第１の情報Ｄ１が指定されているリードコマンドＣ３、処理パラーメータで第２の情報Ｄ２が指定されているリードコマンドＣ４、処理パラーメータで第３の情報Ｄ３が指定されているリードコマンドＣ５、および、処理パラーメータで第４の情報Ｄ４が指定されているライトコマンドＣ６が順に受信されなければ、不正なアクセスと判断し、一連の取引処理を中止する。
【００８２】
図５は、当該ＩＣカード１における第１の不正検知処理を説明するためのフローチャートである。  
まず、上記ＩＣカード１は、上記アンテナ１７により上記ＩＣカード処理装置２からの応答要求信号としての電波を受信する。上記アンテナ１７により受信した電波は、上記電源部１６により当該ＩＣカード１が動作するための電源電圧およびクロックパルスに変換される。上記電源部１６は、受信した電波から生成した電源電圧およびクロックパルスを当該ＩＣカード１内の各部に供給する（ステップＳ１１）。これにより、当該ＩＣカード１は、動作可能な状態となる。
【００８３】
動作可能な状態となったＩＣカード１の制御素子１１は、まず、各部をリセットする処理を行う（ステップＳ１２）。このリセット処理では、コマンドの受信（実行）順序を示す変数ｎの値を初期化（ｎ＝０）する。このリセット処理が正常に終了した場合、上記ＩＣカード１の制御素子１１は、ＩＣカード処理装置２にリセット完了を示すレスポンスを送信する。これに対して、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に供給すべき最初のコマンドを上記リーダライタ２２により送信する。
【００８４】
リセット完了を示すレスポンスを送信した上記ＩＣカード１の制御素子１１では、変数ｎをｎ＋１とし（ステップＳ１３）、コマンドの受信待ち状態となっている。この状態において上記アンテナ１７及び上記通信制御部１５により上記ＩＣカード処理装置２からのコマンドを受信すると（ステップＳ１４）、上記ＩＣカード１の制御素子１１は、受信したコマンドの種類（コマンドコード）と処理内容（処理パラメータ）とが正規処理情報で示されるｎ番目のコマンドと一致するか否かを判断する（ステップＳ１５）。
【００８５】
この判断により受信したコマンドがｎ番目のコマンドと一致すると判断した場合（ステップＳ１５、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、受信したコマンド（ｎ番目のコマンド）に応じた処理を実行する（ステップＳ１６）。受信したコマンドに対する処理が完了すると、上記ＩＣカード１の制御素子１１は、受信したコマンドに対する処理結果をレスポンスとしてＩＣカード処理装置２へ送信する。また、上記ＩＣカード１の制御素子１１は、一連の処理が終了するまで、上記ステップＳ１３へ戻り、上記ステップＳ１３〜Ｓ１９の処理を繰り返し実行する。
【００８６】
また、上記判断により受信したコマンドがｎ番目のコマンドと一致しないと判断した場合（ステップＳ１５、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ１７）。このエラー処理としては、種々の形態が可能である。たとえば、エラー処理としては、認証に用いられる鍵情報を使用不可（ロック状態）としたり、特定の機能を停止したり、特定の処理（特定のアプリケーション）による処理を停止したりするようにする。また、上記ＩＣカード１は、不正なアクセスと判断した場合、上記エラー処理において、一連の処理を中止する旨あるいは機能を停止する旨のレスポンスをＩＣカード処理装置２に返すようにしても良い。
【００８７】
なお、上記エラー処理によってＩＣカード１が有している一部の機能あるいは全ての機能が停止（制限）された場合、当該ＩＣカード１は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
【００８８】
次に、上記第１の不正検知処理によって検知される不正アクセスの３つの例について説明する。  
まず、上記第１の不正検知処理によって検知される不正アクセスの第１の例について説明する。  
図６は、上記第１の不正検知処理によって検知される不正アクセスの第１の例を説明するためのフローチャートである。ここでは、図４に示すような正規処理情報Ｐ１が予めデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。つまり、ここでは、上述したような手順で実施されるべき処理に上記第１の不正検知処理を適用した場合の動作例について説明する。
【００８９】
この第１の例では、ＩＣカード処理装置２が正規処理情報Ｐ１で規定されている第３の情報Ｄ３のリードコマンドが省略された場合を想定する。ここでは、ＩＣカードに、アプリケーションＡＰ１のセレクトコマンド、鍵情報（以下、単に鍵とも称する）Ｋ１によるベリファイコマンド、第１の情報Ｄ１のリードコマンド、第２の情報Ｄ２のリードコマンド、第４の情報Ｄ４のライトコマンドの順に各コマンドが供給された場合のＩＣカード１の動作例について説明するものである。
【００９０】
まず、上記ＩＣカード１は、上記ＩＣカード処理装置２からの電波により起動し、リセット処理を行う（ステップＳ２１）。上記ＩＣカード１からリセット処理が完了した旨の通知を受けたＩＣカード処理装置２が、１番目のコマンドとしてアプリケーションＡＰ１のセレクトコマンドを送信したものとする。  
すると、上記ＩＣカード１では、上記アプリケーションＡＰ１のセレクトコマンドをリセット後の１番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として登録されている１番目の正規コマンドとが一致するか否かを判断する（ステップＳ２２）。この判断では、受信コマンドのコマンドコードと１番目の正規コマンドのコマンドコードとを比較するとともに、受信コマンドの処理パラメータと１番目の正規コマンドの処理パラメータとを比較する。
【００９１】
ここでは、受信コマンドと１番目の正規コマンドは、共に、コマンドコードがセレクト（アプリケーションの選択要求）であり、処理パラメータでアプリケーションＡＰ１が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に１番目に受信したコマンドと１番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、アプリケーションＡＰ１の選択処理を実行する（ステップＳ２３）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、アプリケーションＡＰ１の選択完了を示すレスポンスをＩＣカード処理装置２へ返す。
【００９２】
上記アプリケーションＡＰ１の選択完了を示すレスポンスを受信したＩＣカード処理装置２は、２番目のコマンドとして鍵Ｋ１による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ＩＣカード１では、上記鍵Ｋ１によるベリファイコマンドをリセット後の２番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として登録されている２番目の正規コマンドとが一致するか否かを判断する（ステップＳ２４）。
【００９３】
ここでは、受信コマンドと２番目の正規コマンドは、共に、コマンドコードがベリファイ（認証要求）であり、処理パラメータで鍵Ｋ１が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に２番目に受信したコマンドと２番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、鍵Ｋ１による認証処理を実行する（ステップＳ２５）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、鍵Ｋ１による認証完了を示すレスポンスをＩＣカード処理装置２へ返す。
【００９４】
上記鍵Ｋ１による認証処理の完了を示すレスポンスを受信したＩＣカード処理装置２は、３番目のコマンドとして第１の情報Ｄ１の読み出しを要求するリードコマンドを送信したものとする。すると、上記ＩＣカード１では、上記第１の情報Ｄ１のリードコマンドをリセット後の３番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として登録されている３番目の正規コマンドとが一致するか否かを判断する（ステップＳ２６）。
【００９５】
ここでは、受信コマンドと３番目の正規コマンドは、共に、コマンドコードがリード（読出し要求）であり、処理パラメータで読出の対象となるデータとして第１の情報Ｄ１が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に３番目に受信したコマンドと３番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、第１の情報Ｄ１の読出し処理を実行する（ステップＳ２７）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、読み出した第１の情報Ｄ１を含む読出完了を示すレスポンスをＩＣカード処理装置２へ返す。
【００９６】
上記第１の情報Ｄ１の読出処理の完了を示すレスポンスを受信したＩＣカード処理装置２が、４番目のコマンドとして第２の情報Ｄ２の読み出しを要求するリードコマンドを送信したものとする。すると、ＩＣカード１では、上記第２の情報Ｄ２のリードコマンドをリセット後の４番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として登録されている４番目の正規コマンドとが一致するか否かを判断する（ステップＳ２８）。
【００９７】
ここでは、受信コマンドと４番目の正規コマンドは、共に、コマンドコードがリード（読出し要求）であり、処理パラメータで読出の対象となるデータとして第２の情報Ｄ２が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に４番目に受信したコマンドと４番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、第２の情報Ｄ２の読出処理を実行する（ステップＳ２９）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、読み出した第２の情報Ｄ２を含む読出完了を示すレスポンスをＩＣカード処理装置２へ返す。
【００９８】
上記第２の情報Ｄ２の読出処理の完了を示すレスポンスを受信したＩＣカード処理装置２が、５番目のコマンドとして第４の情報Ｄ４の書き込みを要求するライトコマンドを送信したものとする。すると、ＩＣカード１では、上記第４の情報Ｄ４のライトコマンドをリセット後の５番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として登録されている５番目の正規コマンドとが一致するか否かを判断する（ステップＳ３０）。
【００９９】
ここでは、リセット後の５番目に受信したコマンドは、コマンドコードがライト（書き込み要求）であり、処理パラメータで書込みの対象となるデータとして第４の情報Ｄ４が指定されている。これに対して、正規処理情報Ｐ１における５番目の正規コマンドは、コマンドコードがリードであり、処理パラメータで読出の対象となるデータとして第３の情報Ｄ３が指定されている。従って、リセット後の５番目に受信したコマンドと５番目の正規コマンドとは、命令の種類を示すコマンドコードも、処理対象を指定する処理パラメータも異なっている。
【０１００】
このように、受信コマンドと正規コマンドとが不一致となっている場合、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置（外部装置）２から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ＩＣカード１の制御素子１１は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う（ステップＳ３１）。このエラー処理としては、当該ＩＣカード１の一部または全ての機能を停止する処理などが行われる。
【０１０１】
次に、不正検知処理によって検知される不正アクセスの第２の例について説明する。  
図７は、第１の不正検知処理によって検知される不正アクセスの第２の例を説明するためのフローチャートである。ここでは、上記第１の例と同様に、図４に示すような正規処理情報Ｐ１が予めデータメモリ１４に記憶されているものとする。  
この第２の例では、ＩＣカード処理装置２が正規処理情報Ｐ１で規定されている第３の情報Ｄ３のリードコマンドが不正な順序で与えられた場合を想定する。つまり、第２の例では、ＩＣカードに、アプリケーションＡＰ１のセレクトコマンド、鍵Ｋ１によるベリファイコマンド、第３の情報Ｄ３のリードコマンドの順に各コマンドが供給された場合のＩＣカード１の動作例について説明する。
【０１０２】
上記ＩＣカード１は、リセット後に上記ＩＣカード処理装置２から与えられるアプリケーションＡＰ１のセレクトコマンド、鍵Ｋ１によるベリファイコマンドについて、上記第１の例のステップＳ２１〜Ｓ２５と同様な処理を行う（ステップＳ４１〜Ｓ４５）。すなわち、上記鍵Ｋ１によるベリファイコマンドが与えられた上記ＩＣカード１の制御素子１１は、鍵Ｋ１による認証処理が完了すると、鍵Ｋ１による認証完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０１０３】
上記鍵Ｋ１による認証処理の完了を示すレスポンスを受信したＩＣカード処理装置２は、３番目のコマンドとして第３の情報Ｄ３の読み出しを要求するリードコマンドを送信したものとする。すると、上記ＩＣカード１では、上記第３の情報Ｄ３のリードコマンドをリセット後の３番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として登録されている３番目の正規コマンドとが一致するか否かを判断する（ステップＳ４６）。
【０１０４】
ここでは、リセット後の３番目に受信したコマンドは、コマンドコードがリード（読出し要求）であり、処理パラメータで読出しの対象となるデータとして第３の情報Ｄ３が指定されている。これに対して、３番目の正規コマンドは、コマンドコードがリード（読出し要求）であり、処理パラメータで読出の対象となるデータとして第１の情報Ｄ１が指定されている。従って、リセット後の３番目に受信したコマンドと３番目の正規コマンドとは、命令の種類を示すコマンドコードは一致するが、処理対象を指定する処理パラメータが異なっている。
【０１０５】
このように、受信コマンドの処理内容（処理パラメータ）と正規コマンドの処理内容（処理パラメータ）とが不一致となっている場合、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置（外部装置）２から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ＩＣカード１の制御素子１１は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う（ステップＳ４７）。このエラー処理としては、当該ＩＣカード１の一部または全ての機能を停止する処理などが行われる。
【０１０６】
次に、上記第１の不正検知処理によって検知される不正アクセスの第３の例について説明する。  
図８は、上記第１の不正検知処理によって検知される不正アクセスの第３の例を説明するためのフローチャートである。ここでは、上記第１、第２の例と同様に、図４に示すような正規処理情報Ｐ１が予めデータメモリ１４に記憶されているものとする。  
この第３の例では、ＩＣカード処理装置２が正規処理情報Ｐ１に設定されていない第５の情報のリードコマンドが与えられた場合を想定する。つまり、ここでは、ＩＣカードに、アプリケーションＡＰ１のセレクトコマンド、鍵Ｋ１によるベリファイコマンド、第１の情報Ｄ１のリードコマンド、第２の情報Ｄ２のリードコマンド、第３の情報Ｄ３のリードコマンド、第５の情報のリードコマンドの順に各コマンドが供給された場合のＩＣカード１の動作例について説明するものである。
【０１０７】
上記ＩＣカード１は、リセット後に上記ＩＣカード処理装置２から与えられるアプリケーションＡＰ１のセレクトコマンド、鍵Ｋ１によるベリファイコマンド、第１の情報Ｄ１のリードコマンド、第２の情報Ｄ２のリードコマンドについて、上記第１の例のステップＳ２１〜Ｓ２９と同様な処理を行う（ステップＳ５１〜Ｓ５９）。すなわち、正規の手順で第２の情報Ｄ２のリードコマンドが与えられた上記ＩＣカード１の制御素子１１は、第２の情報Ｄ２の読出し処理が完了すると、読み出した第２の情報Ｄ２を含むレスポンスをＩＣカード処理装置２へ返す。
【０１０８】
上記第２の情報Ｄ２を含むレスポンスを受信したＩＣカード処理装置２は、５番目のコマンドとして第３の情報Ｄ３の読み出しを要求するリードコマンドを送信したものとする。すると、ＩＣカード１では、上記第３の情報Ｄ３のリードコマンドをリセット後の５番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として設定されている４番目の正規コマンドとが一致するか否かを判断する（ステップＳ６０）。
【０１０９】
ここでは、受信コマンドと５番目の正規コマンドは、共に、コマンドコードがリード（読出し要求）であり、処理パラメータで読出の対象となるデータとして第３の情報Ｄ３が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に５番目に受信したコマンドと５番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、第３の情報Ｄ３の読出処理を実行する（ステップＳ６１）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、読み出した第３の情報Ｄ３を含む読出完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０１１０】
上記第３の情報Ｄ３の読出処理の完了を示すレスポンスを受信したＩＣカード処理装置２が、６番目のコマンドとして第５の情報の読み出しを要求するリードコマンドを送信したものとする。すると、上記ＩＣカード１では、上記第５の情報のリードコマンドをリセット後の６番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として設定されている６番目の正規コマンドとが一致するか否かを判断する（ステップＳ６２）。
【０１１１】
ここでは、リセット後の６番目に受信したコマンドは、コマンドコードがリード（読出し要求）であり、処理パラメータで読出しの対象となるデータとして第５の情報が指定されている。これに対して、正規処理情報Ｐ１における６番目の正規コマンドは、コマンドコードがライト（書込み要求）であり、処理パラメータで書込みの対象となるデータとして第４の情報Ｄ４が指定されている。従って、リセット後の６番目に受信したコマンドと６番目の正規コマンドとは、命令の種類を示すコマンドコードも、処理対象を指定する処理パラメータも異なっている。
【０１１２】
このように、受信コマンドと正規コマンドとが不一致となっている場合、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置（外部装置）２から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ＩＣカード１の制御素子１１は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う（ステップＳ６３）。このエラー処理としては、当該ＩＣカード１の一部または全ての機能を停止する処理などが行われる。
【０１１３】
上記第１及び第３の例のように、上記第１の不正検知処理を適用したＩＣカード１は、正規の処理手順で与えられるべきコマンドが省略された場合、あるいは受信コマンドが正規処理情報で指定されている順序と処理内容とが一致しないことにより、不正なアクセスであることを判断する。これにより、上記第１の不正検知処理では、受信したコマンドの順序と処理内容とに基づいて外部装置からのアクセスが正当なものであるか否かを検知でき、不正なアクセスを防止できる。たとえば、上記第１の例のように、上記第１の不正検知処理を適用したＩＣカード１では、正規の処理手順では与えられるべきコマンドが省略された場合、不正なアクセスであることを判別できる。
【０１１４】
また、上記第２の例のように、上記第１の不正検知処理を適用したＩＣカード１は、コマンドコード（命令の種類）だけでなく、処理パラメータで示される処理内容についても正規の処理手順で与えられるべきコマンドの処理内容と受信したコマンドの処理内容とが一致するか否かを判断する。これにより、コマンドコードが一致しても（つまり、同種のコマンドであっても）、処理内容（処理パラメータ）が一致しない場合、受信したコマンドが不正であると判別し、不正なアクセスであることを判断できる。
【０１１５】
すなわち、上記第１の不正検知処理では、上記第２の例のように、処理パラメータを変更して不正にアクセスされることを防止できる。たとえば、リードコマンドの処理パラメータを不正に変更して、不正に情報を読み出したり、ライトコマンドの処理パラメータを不正に変更して、不正に情報を書き込んだりされることを防止できる。
【０１１６】
次に、上記ＩＣカード１に適用される第１の実施例としての第２の不正検知処理について説明する。  
この第２の不正検知処理では、前提条件として、正当な処理の手順および処理内容を示す情報とともに、各コマンドが受信されるべきタイミングが、正規処理情報Ｐ２として、予めＩＣカード１内のデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。すなわち、正当な処理において使用される命令の内容（コマンドの種類と処理内容）と、それらの各命令の実行順と、各命令が受信されるべきタイミングとを示す情報とが、正規処理情報Ｐ２として、予めＩＣカード１内のデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。
【０１１７】
上記正規処理情報Ｐ２において、各命令の内容を示す情報では、少なくとも、命令の種類（コマンドの種類）を示す情報（コマンドコード）と、当該命令の処理対象（処理内容）を示す情報（処理パラメータ）とを示すものであるとする。また、上記正規処理情報Ｐ２において、各命令が受信されるべきタイミングは、各コマンド間の時間間隔（許容時間）を示すものであるとする。各コマンド間の時間間隔としては、あるコマンドに対するレスポンスを発信してから次のコマンドを受信するまでの時間、あるいは、あるコマンドを受信してから次のコマンドを受信するまでの時間である。なお、ここで、各コマンド間の時間間隔は、あるコマンドに対するレスポンスを発信してから次のコマンドを受信するまでの時間であるものとする。
【０１１８】
上記ＩＣカード１では、上記のような正規処理情報Ｐ２に基づいて、ＩＣカード処理装置（外部装置）２から順次与えられるコマンドが正当な手順、正当な処理内容、かつ、正当な受信タイミングであるか否かを判断する。たとえば、ＩＣカード処理装置２から与えられた各コマンドが上記正規処理情報Ｐ２に設定されている正当な受信タイミングでないと判断した場合、上記ＩＣカード１では、不正なアクセスであると判定する。不正なアクセスであると判定した場合、上記ＩＣカード１では、当該処理を中止し、エラー処理を行う。なお、上記エラー処理としては、当該ＩＣカードの一部または全部の機能を停止あるいは規制する処理が行われる。
【０１１９】
図９は、正規処理情報Ｐ２の例を示す図である。図９に示す正規処理情報Ｐ２の例では、図４に示す正規処理情報Ｐ１と同様に、正規の処理が、リセット処理の後、「選択（セレクト）処理」、「認証（ベリファイ）処理」、「読出し（リード）処理」、「読出し（リード）処理」、「読出し（リード）処理」、および、「書込み（ライト）処理」の順に実行されることを示している。さらに、図９に示す正規処理情報Ｐ２では、各コマンドを受信すべきタイミングを示す情報として、各コマンド間の時間間隔（許容時間）が設定されている。すなわち、上記第２の不正検知処理では、上記第１の不正検知処理と同様に、各コマンドの内容と受信順序が正当であるか否かを判定するのに加えて、各コマンドが正当な時間間隔で受信されたか否かを判定する。
【０１２０】
なお、図９に示す正規処理情報Ｐ２の例では、説明を容易にするため、各コマンド間の時間間隔（許容時間）を秒数で示している。しかしながら、各コマンド間の時間間隔（許容時間）は、当該ＩＣカード１の動作クロックのクロック数で設定するのが好ましい。通常、バッテリレスのＩＣカード１は、外部装置としてのＩＣカード処理装置２から与えられる動作クロックにより動作している。このようなＩＣカード１では、所定の許容時間に相当する動作クロックのクロック数でコマンドを受信するタイミングを計時するのが効率的であると考えられる。以下の説明では、説明を容易にするために、各コマンド間の時間間隔（許容時間）が便宜的にクロック数ではなく秒数で設定されているものとする。
【０１２１】
また、図９に示す正規処理情報Ｐ２で規定される各コマンドの間隔（時間間隔）は、あるコマンドに対するレスポンス（当該コマンドに対する処理結果を示す応答）を送信してから次のコマンドを受信するまでの時間である。これは、正規の手順であれば、ＩＣカード処理装置２が、ＩＣカード１からのコマンドに対するレスポンスを受信してから次のコマンドを送信するまでの時間（つまり、ＩＣカード１があるコマンドに対するレスポンスを送信してから次のコマンドを受信するまでの時間）がほぼ一定となるためである。ただし、所定のコマンドに対するＩＣカード１における処理時間もほぼ一定となる。このため、各コマンドの間隔は、ＩＣカード１があるコマンドを受信してから次のコマンドを受信するまでの時間間隔であっても良い。
【０１２２】
図９に示す正規処理情報Ｐ２において、実行順序が１番目の正規コマンドは、コマンドの種類が「セレクト」であり、処理パラメータでアプリケーションＡＰ１が指定されている。  
また、図９に示す正規処理情報Ｐ２において、実行順序が２番目の正規コマンドは、コマンドの種類が「ベリファイ」で、処理パラメータで鍵情報Ｋ１が指定されている。さらに、実行順序が２番目の正規コマンドは、１番目のコマンドとの時間間隔（許容時間Ｔ１２＝０．２±０．１秒）であることが設定されている。これは、２番目に実行すべきコマンドが、１番目のコマンドのレスポンスを送信してから０．１〜０．３秒以内に受信すべきであることを示している。
【０１２３】
また、図９に示す正規処理情報Ｐ２において、実行順序が３、４、５番目の正規コマンドは、コマンドの種類が「リード」であり、それぞれ処理パラメータで第１の情報Ｄ１、第２の情報Ｄ２、第３の情報Ｄ３が指定されている。さらに、実行順序が３、４、５番目の正規コマンドは、それぞれ３、４、５番目のコマンドとの時間間隔（許容時間Ｔ２３、Ｔ３４、Ｔ４５）が０．５±０．１秒、０．４±０．１秒、０．６±０．１秒であることが設定されている。これらは、３番目に実行すべきコマンドが２番目のコマンドのレスポンスを送信してから０．４〜０．６秒以内、４番目に実行すべきコマンドが３番目のコマンドのレスポンスを送信してから０．３〜０．５秒以内、５番目に実行すべきコマンドが４番目のコマンドのレスポンスを送信してから０．５〜０．７秒以内に受信すべきであることを示している。
【０１２４】
また、図９に示す正規処理情報Ｐ２において、実行順序が６番目の正規コマンドは、コマンドの種類が「ライト」で、処理パラメータで第４の情報Ｄ４が指定されている。さらに、実行順序が６番目の正規コマンドは、５番目のコマンドとの時間間隔（許容時間Ｔ５６）が０．５±０．１秒に設定されている。これは、６番目に実行すべきコマンドが、５番目のコマンドに対するレスポンスを送信してから０．４〜０．６秒以内に受信すべきであることを示している。
【０１２５】
図９に示すような正規処理情報Ｐ２が設定されている場合、当該ＩＣカード１では、受信した各コマンドの内容（種類及び処理内容）と順序が正規処理情報と一致しても、各コマンドが所定のタイミングで受信されなければ、不正なアクセスと判断し、一連の取引処理を中止するようになっている。
【０１２６】
次に、上記ＩＣカード１に適用された第２の不正検知処理の動作例について説明する。
【０１２７】
図１０は、当該ＩＣカード１を用いた取引処理における第２の不正検知処理の例を説明するためのフローチャートである。  
なお、ここでは、図９に示すような正規処理情報Ｐ２がデータメモリ１４に記憶されていることを想定して説明する。  
まず、上記ＩＣカード１は、上記アンテナ１７により上記ＩＣカード処理装置２からの応答要求信号としての電波を受信する。上記アンテナ１７により受信した電波は、上記電源部１６により当該ＩＣカード１が動作するための電源電圧およびクロックパルスに変換される。上記電源部１６は、受信した電波から生成した電源電圧およびクロックパルスを当該ＩＣカード１内の各部に供給する（ステップＳ１０１）。これにより、当該ＩＣカード１は、所定のクロックで動作可能な状態となる。
【０１２８】
動作可能な状態となったＩＣカード１の制御素子１１は、まず、各部をリセットする処理を行う（ステップＳ１０２）。このリセット処理では、コマンドの受信（実行）順序を示す変数ｎの値を初期化（ｎ＝０）する。このリセット処理が正常に終了した場合、上記ＩＣカード１の制御素子１１は、ＩＣカード処理装置２にリセット完了を示すレスポンスを送信する。これに対して、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に供給すべき最初のコマンド（リセット後の１番目のコマンド）を上記カードリーダライタ２２により送信する。
【０１２９】
また、上記ＩＣカード処理装置２へリセット完了を示すレスポンスを送信した上記ＩＣカード１の制御素子１１では、変数ｎをｎ＋１（この場合はｎ＝０＋１）とし（ステップＳ１０３）、リセット後における１番目のコマンドの受信待ち状態となる。また、上記ＩＣカード処理装置２からリセット後の１番目のコマンドを受信すると、上記ＩＣカード１の制御素子１１は、１番目のコマンドには許容時間が設定されていないため、ステップＳ１０５を省略し、受信したコマンドの内容（種類（コマンドコード）および処理内容（処理パラメータ））が正規処理情報Ｐ２で示される１番目の正規コマンドの内容と一致するか否かを判断する（ステップＳ１０６）。
【０１３０】
この判断により１番目に受信したコマンドの内容が１番目の正規コマンドの内容と一致しないと判断した場合（ステップＳ１０６、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ１０８）。このエラー処理としては、上記第１の不正検知処理の場合と同様に、認証に用いられる鍵情報を使用不可（ロック状態）としたり、特定の機能を停止したり、特定の処理（特定のアプリケーション）による処理を停止したりするようにする。
【０１３１】
また、上記判断により１番目に受信したコマンドの内容が１番目の正規コマンドの内容と一致すると判断した場合（ステップＳ１０６、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、受信したコマンド（ｎ番目のコマンド）に応じた処理を実行する（ステップＳ１０７）。受信したコマンドに対する処理が完了すると、上記ＩＣカード１の制御素子１１は、受信したコマンドに対する処理結果をレスポンスとして上記ＩＣカード処理装置２へ送信する。
【０１３２】
ｎ（ここでは、ｎ＝１）番目に受信したコマンドに対するレスポンスを送信した際、上記ＩＣカード１の制御素子１１は、経過時間Ｔの計測（動作クロックのクロック数をカウント）を開始する（ステップＳ１０９）。このような状態において、上記ＩＣカード１の制御素子１１は、一連の処理が終了でなければ（ステップＳ１１０、ＮＯ）、上記ステップＳ１０３へ戻り、変数ｎをｎ＋１とし、次のコマンド（ｎ番目のコマンド）の受信待ち状態となる。
【０１３３】
このようなコマンドの受信待ち状態において上記ＩＣカード処理装置２からｎ番目のコマンドを受信した際、上記ＩＣカード１の制御素子１１は、直前のコマンド（ｎ−１番目のコマンド）に対するレスポンスを送信してからｎ番目のコマンドを受信するまでの経過時間Ｔを判別する。この経過時間Ｔを判別すると、上記ＩＣカード１の制御素子１１は、当該経過時間Ｔがｎ番目のコマンドを受信すべきタイミングとして設定されている許容時間Ｔ（ｎ−１）ｎの範囲内であるか否かを判断する。
【０１３４】
この判断により経過時間Ｔが許容時間外であると判断した場合（ステップＳ１０５、ＮＯ）、上記ＩＣカード１の制御素子１１は、当該コマンドが不正なタイミングで受信したものと判断する。この場合、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ１０８）。
【０１３５】
また、上記判断により経過時間が許容時間内であると判断した場合（ステップＳ１０５、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、当該コマンドを受信したタイミングが正当なタイミングであると判断する。この場合、上記ＩＣカード１の制御素子１１は、上記ステップＳ１０６へ進み、ｎ番目に受信したコマンドの内容が正規処理情報Ｐ２で示されるｎ番目の正規コマンドの内容と一致するか否かを判断する処理を行う。
【０１３６】
上記ステップＳ１０６では、上記ＩＣカード１の制御素子１１は、受信したｎ番目のコマンドの内容が正規処理情報Ｐ２で示されるｎ番目の正規コマンドの内容と一致するか否かを判断する。この判断によりｎ番目に受信したコマンドの内容がｎ番目の正規コマンドの内容と一致しないと判断した場合（ステップＳ１０６、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ１０８）。なお、上記エラー処理は、各コマンド間の時間間隔が正常でなかった場合と各コマンドの処理内容が正当な処理内容でなかった場合とで処理の内容を変えるようにしても良い。
【０１３７】
また、上記判断によりｎ番目に受信したコマンドの内容がｎ番目の正規コマンドの内容と一致すると判断した場合（ステップＳ１０６、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、受信したコマンド（ｎ番目のコマンド）に応じた処理を実行する（ステップＳ１０７）。受信したコマンドに対する処理が完了すると、上記ＩＣカード１の制御素子１１は、受信したコマンドに対する処理結果をレスポンスとして上記ＩＣカード処理装置２へ送信する。この際、上記ＩＣカード１の制御素子１１は、改めて経過時間Ｔの計測（動作クロックのクロック数をカウント）を開始する。
【０１３８】
このような状態において上記ＩＣカード１の制御素子１１は、一連の処理が終了でなければ（ステップＳ１１０、ＮＯ）、上記ステップＳ１０３へ戻り、変数ｎをｎ＋１とし、次のコマンド（ｎ番目のコマンド）の受信待ち状態となる。従って、上記ＩＣカード１の制御素子１１は、一連の処理が終了するまで、上記ステップＳ１０３〜Ｓ１１０の処理を繰り返し実行する。
【０１３９】
なお、各コマンド間の時間間隔（許容時間）が直前のコマンドを受信してから次のコマンドを受信するまでの時間で設定されている場合、上記ＩＣカード１の制御素子１１は、各コマンドを受信した際に、経過時間Ｔの計測（動作クロックのクロック数のカウント）を開始するようにすれば良い。この場合、上記ステップＳ１０９の経過時間Ｔの計測を開始するタイミングがＩＣカード処理装置２からコマンドを受信したときに変更される。
【０１４０】
次に、上記第２の不正検知処理によって検知される不正アクセスの例について説明する。  
図１１は、上記第２の不正検知処理によって検知される不正アクセスの例を説明するためのフローチャートである。ここでは、図９に示すような正規処理情報Ｐ２が予めデータメモリ１４のデータテーブル１４ａに記憶されているものとする。つまり、ここでは、上述したような手順で実施されるべき処理に上記第２の不正検知処理を適用した場合の動作例について説明する。ここでは、正規処理情報Ｐ２で規定されている第２の情報Ｄ２のリードコマンドが所定のタイミングで受信できなかった場合のＩＣカード１の動作例について説明するものである。
【０１４１】
まず、上記ＩＣカード１は、上記ＩＣカード処理装置２からの電波により起動し、リセット処理を行う（ステップＳ１２１）。上記ＩＣカード１からリセット処理が完了した旨の通知を受けたＩＣカード処理装置２が、１番目のコマンドとしてアプリケーションＡＰ１のセレクトコマンドを送信したものとする。  
すると、上記ＩＣカード１では、上記アプリケーションＡＰ１のセレクトコマンドをリセット後の１番目のコマンドとして受信する。上記正規処理情報Ｐ２では、１番目のコマンドについては許容時間が設定されていない。このため、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ１として登録されている１番目の正規コマンドとが一致するか否かを判断する（ステップＳ１２２）。この判断では、受信コマンドのコマンドコードと１番目の正規コマンドのコマンドコードとを比較するとともに、受信コマンドの処理パラメータと１番目の正規コマンドの処理パラメータとを比較する。
【０１４２】
ここでは、受信コマンドと１番目の正規コマンドは、共に、コマンドコードがセレクト（アプリケーションの選択要求）であり、処理パラメータでアプリケーションＡＰ１が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に１番目に受信したコマンドと１番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、アプリケーションＡＰ１の選択処理を実行する（ステップＳ１２３）。
【０１４３】
このような１番目の受信コマンドに応じた処理（アプリケーションＡＰ１の選択処理）が完了すると、上記ＩＣカード１の制御素子１１は、アプリケーションＡＰ１の選択完了を示すレスポンスをＩＣカード処理装置２へ返す。また、リセット後の１番目の受信コマンドに対するレスポンスを送信した際、上記ＩＣカード１の制御素子１１は、次のコマンドとしてリセット後の２番目の受信コマンドを受信するまでの経過時間Ｔの計測を開始する。
【０１４４】
上記アプリケーションＡＰ１の選択完了を示すレスポンスを受信したＩＣカード処理装置２は、２番目のコマンドとして鍵Ｋ１による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ＩＣカード１では、上記鍵Ｋ１によるベリファイコマンドをリセット後の２番目のコマンドとして受信する。リセット後の２番目のコマンドを受信した際、上記ＩＣカード１の制御素子１１は、１番目のコマンドに対するレスポンスを送信してから当該２番目のコマンドを受信するまでの経過時間Ｔを判別する。２番目のコマンドを受信するまでの経過時間Ｔを判別すると、上記ＩＣカードの制御素子１１は、経過時間Ｔが２番目の正規コマンドの受信タイミングとして設定されている許容時間Ｔ１２（０．２±０．１秒）の時間内であるか否かを判断する（ステップＳ１２４）。
【０１４５】
ここでは、２番目のコマンドを受信するまでの経過時間Ｔが０．２秒であったものとする。従って、上記ステップＳ１２４において、上記ＩＣカード１の制御素子１１は、２番目のコマンドを受信するまでの経過時間Ｔ（０．２秒）が所定の許容時間Ｔ１２（０．１〜０．３秒）内であったと判断する。これは、リセット後の２番目の受信コマンドが正規処理情報Ｐ２で設定されている正当なタイミングで受信されたことが確認できたことを意味する。
【０１４６】
２番目のコマンドを受信するまでの経過時間Ｔが所定の許容時間Ｔ１２内であったと判断した場合、つまり、リセット後の２番目の受信コマンドが正当なタイミングで受信されたことが確認できた場合、上記ＩＣカード１の制御素子１１は、２番目に受信したコマンドの内容と正規処理情報Ｐ１として登録されている２番目の正規コマンドとが一致するか否かを判断する（ステップＳ１２５）。ここでは、受信コマンドと２番目の正規コマンドは、共に、コマンドコードがベリファイ（認証要求）であり、処理パラメータで鍵Ｋ１が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に２番目に受信したコマンドと２番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、鍵Ｋ１による認証処理を実行する（ステップＳ１２６）。
【０１４７】
このような２番目の受信コマンドに応じた処理（鍵Ｋ１による認証処理）が完了すると、上記ＩＣカード１の制御素子１１は、鍵Ｋ１による認証完了を示すレスポンスをＩＣカード処理装置２へ返す。また、このように、リセット後の２番目の受信コマンドに対するレスポンスを送信した際、上記ＩＣカード１の制御素子１１は、次のコマンドとしてリセット後の３番目のコマンドを受信するまでの経過時間Ｔの計測を開始する。
【０１４８】
上記鍵Ｋ１による認証処理の完了を示すレスポンスを受信したＩＣカード処理装置２は、３番目のコマンドとして第１の情報Ｄ１の読み出しを要求するリードコマンドを送信したものとする。すると、上記ＩＣカード１では、上記第１の情報Ｄ１のリードコマンドをリセット後の３番目のコマンドとして受信する。
【０１４９】
リセット後の３番目のコマンドを受信した際、上記ＩＣカード１の制御素子１１は、２番目のコマンドに対するレスポンスを送信してから３番目のコマンドを受信するまでの経過時間Ｔを判別する。３番目のコマンドを受信するまでの経過時間Ｔを判別すると、上記ＩＣカードの制御素子１１は、当該経過時間Ｔが３番目の正規コマンドの受信タイミングとして設定されている許容時間Ｔ２３（０．５±０．１秒）の時間内であるか否かを判断する（ステップＳ１２７）。
【０１５０】
ここでは、３番目のコマンドを受信するまでの経過時間Ｔが０．５秒であったものとする。従って、上記ステップＳ１２７において、上記ＩＣカード１の制御素子１１は、３番目のコマンドを受信するまでの経過時間Ｔ（０．５秒）が所定の許容時間Ｔ２３（０．４〜０．６秒）内であったと判断する。これは、リセット後の３番目の受信コマンドが正規処理情報Ｐ２で設定されている正当なタイミングで受信されたことが確認できたことを意味する。
【０１５１】
３番目のコマンドを受信するまでの経過時間Ｔが所定の許容時間Ｔ２３内であったと判断した場合、つまり、リセット後の３番目の受信コマンドが正当なタイミングで受信されたことが確認できた場合、上記ＩＣカード１の制御素子１１は、３番目に受信したコマンドの内容と正規処理情報Ｐ２として登録されている３番目の正規コマンドの内容とが一致するか否かを判断する（ステップＳ１２８）。ここでは、リセット後の２番目の受信コマンドと２番目の正規コマンドとは、共に、コマンドコードがリード（読出し要求）であり、処理パラメータで第１の情報Ｄ１が指定されている。このため、上記ＩＣカード１の制御素子１１は、リセット後に３番目に受信したコマンドと３番目の正規コマンドとが一致（コマンドコードと処理パラメータとが一致）と判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、第１の情報Ｄ１の読出し処理を実行する（ステップＳ１２９）。
【０１５２】
このような３番目の受信コマンドに応じた処理（第１の情報Ｄ１の読出し処理）が完了すると、上記ＩＣカード１の制御素子１１は、第１の情報Ｄ１を含むレスポンスをＩＣカード処理装置２へ返す。また、このように、リセット後の３番目の受信コマンドに対するレスポンスを送信した際、上記ＩＣカード１の制御素子１１は、次のコマンドとしてリセット後の４番目のコマンドを受信するまでの経過時間Ｔの計測を開始する。
【０１５３】
上記第１の情報Ｄ１を含むレスポンスを受信したＩＣカード処理装置２は、当該レスポンスを受信してから０．６秒後に、４番目のコマンドとして第２の情報Ｄ２の読み出しを要求するリードコマンドを送信したものとする。すると、上記ＩＣカード１では、上記第２の情報Ｄ２のリードコマンドをリセット後の４番目のコマンドとして受信する。
【０１５４】
リセット後の４番目のコマンドを受信した際、上記ＩＣカード１の制御素子１１は、３番目のコマンドに対するレスポンスを送信してから４番目のコマンドを受信するまでの経過時間Ｔを判別する。４番目のコマンドを受信するまでの経過時間Ｔを判別すると、上記ＩＣカードの制御素子１１は、当該経過時間Ｔが４番目の正規コマンドの受信タイミングとして設定されている許容時間Ｔ３４（０．４±０．１秒）の時間内であるか否かを判断する（ステップＳ１３０）。
【０１５５】
ここでは、４番目のコマンドを受信するまでの経過時間Ｔが０．６秒であったものとする。従って、上記ステップＳ１３０において、上記ＩＣカード１の制御素子１１は、４番目のコマンドを受信するまでの経過時間Ｔ（０．６秒）が所定の許容時間Ｔ３４（０．３〜０．５秒）内でないと判断する。これは、リセット後の４番目の受信コマンドが正規処理情報Ｐ２で設定されている正当なタイミングで受信されたことが確認できなかったことを意味する。
【０１５６】
４番目のコマンドを受信するまでの経過時間Ｔが所定の許容時間Ｔ３４内でないと判断した場合、つまり、リセット後の４番目の受信コマンドが正当なタイミングで受信されたことが確認できなかった場合、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置（外部装置）２から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ＩＣカード１の制御素子１１は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う（ステップＳ１３１）。このエラー処理としては、当該ＩＣカード１の一部または全ての機能を停止する処理などが行われる。
【０１５７】
上記のように、上記第２の不正検知処理を適用したＩＣカード１では、一連の処理を行うための各コマンドが正規の手順で与えられる場合であっても、各コマンドを受信する時間間隔が所定のタイミングで受信されなければ、不正なアクセスであることを判断する。これにより、上記第２の不正検知処理では、受信したコマンドの内容を順序だけでなく、各コマンドが正当なタイミングで与えられたか否かによって不正なアクセスを検知できる。この結果として、外部装置が正規の制御プログラム以外の不正な制御プログラムなどを用いて複数のコマンドをＩＣカードに与えるような不正アクセスを防止できる。
【０１５８】
次に、上記ＩＣカード１に適用される第１の実施例としての第３の不正検知処理について説明する。  
この第３の不正検知処理では、前提条件として、当該ＩＣカード１のデータメモリ１４におけるデータテーブル１４ａに複数の正規処理情報Ｐ３ａ、Ｐ３ｂ、…が予め記憶されているものとする。各正規処理情報は、それぞれ、図４あるいは図９に示すような構成を有しているものとする。各正規処理情報は、当該ＩＣカード１が実行する種々の処理に対応するものである。たとえば、種々の機能を実現するための複数のアプリケーションがデータメモリ１４に記憶されている場合、それらの各アプリケーションには、それぞれ正規処理情報Ｐ３ａ、Ｐ３ｂ、…が設定される。さらには、１つのアプリケーションにも、複数の正規処理情報が設定されるようにしても良い。
【０１５９】
複数の正規処理情報がデータテーブル１４ａに記憶されている場合、第３の不正検知処理が適用されたＩＣカード１では、ＩＣカード処理装置（外部装置）２から順次与えられるコマンドが正当なコマンドとして判定される正規処理情報が存在するか否かを判断する。つまり、第３の不正検知処理が適用されたＩＣカード１では、ＩＣカード処理装置からのコマンドを受信するごとに、受信したコマンドの内容と一致する内容の正規コマンドが設定されている正規処理情報が存在するか否かを判断する。
【０１６０】
たとえば、ＩＣカード処理装置２から与えられたコマンドの内容と一致する正規処理情報が存在しないと判断した場合、上記ＩＣカード１では、不正なアクセスであると判定する。不正なアクセスであると判定した場合、上記ＩＣカード１では、当該処理を中止し、一部または全部の機能を停止あるいは規制するエラー処理を行う。
【０１６１】
図１２は、データテーブル１４ａに記憶される複数の正規処理情報Ｐ３ａ、Ｐ３ｂの例を示す図である。
【０１６２】
図１２に示す正規処理情報Ｐ３ａは、上述した図４と同様な内容の情報である。また、図１２に示す正規処理情報Ｐ３ｂは、一連の正規の処理において、リセット処理の完了後、アプリケーションＡＰ２の選択を要求する「セレクトコマンド」、鍵情報Ｋ２による認証を要求する「ベリファイコマンド」、第５の情報Ｄ５の読出しを要求する「リードコマンド」、第６の情報Ｄ６の書込みを要求する「ライトコマンド」の順に受信されるべきであることを示している。
【０１６３】
図１２に示す正規処理情報Ｐ３ａと正規処理情報Ｐ３ｂとは、実行順が１番目のコマンドで選択すべきアプリケーションが異なっている。従って、これらの正規処理情報がデータテーブル１４ａに記憶されている場合、上記ＩＣカード１は、リセット後に最初に受信したコマンドの処理パラメータがアプリケーションＡＰ１の選択要求かアプリケーションＡＰ２の選択要求かにより、正規処理情報Ｐ３ａあるいは正規処理情報Ｐ３ｂの何れかを選択する。
【０１６４】
図１２に示すような正規処理情報Ｐ３ａ、Ｐ３ｂがデータテーブル１４ａに記憶されている場合、上記ＩＣカード１は、リセット後に最初に受信したコマンドがアプリケーションＡＰ１の選択要求（処理パラメータがアプリケーションＡＰ１）であれば、当該処理については正規処理情報Ｐ３ａを用いて第１の不正検知処理と同様な不正検知処理を行う。また、リセット後に最初に受信したコマンドがアプリケーションＡＰ２の選択要求（処理パラメータがアプリケーションＡＰ２）であれば、上記ＩＣカード１は、当該処理については正規処理情報Ｐ３ｂを用いて第１の不正検知処理と同様な不正検知処理を行う。
【０１６５】
図１３は、当該ＩＣカード１を用いた取引処理における第３の不正検知処理の例を説明するためのフローチャートである。  
なお、ここでは、図１２に示すような２つの正規処理情報Ｐ３ａ及びＰ３ｂがデータメモリ１４におけるデータテーブル１４ａに記憶されていることを想定して説明する。  
まず、上記ＩＣカード１は、上記アンテナ１７により上記ＩＣカード処理装置２からの応答要求信号としての電波を受信する。上記アンテナ１７により受信した電波は、上記電源部１６により当該ＩＣカード１が動作するための電源電圧およびクロックパルスに変換される。上記電源部１６は、受信した電波から生成した電源電圧およびクロックパルスを当該ＩＣカード１内の各部に供給する（ステップＳ２０１）。これにより、当該ＩＣカード１は、動作可能な状態となる。
【０１６６】
動作可能な状態となったＩＣカード１の制御素子１１は、まず、各部をリセットする処理を行う（ステップＳ２０２）。このリセット処理では、コマンドの受信（実行）順序を示す変数ｎの値を初期化（ｎ＝０）する。このリセット処理が正常に終了した場合、上記ＩＣカード１の制御素子１１は、ＩＣカード処理装置２にリセット完了を示すレスポンスを送信する。これに対して、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に供給すべき次のコマンドを上記カードリーダライタ２２により送信する。
【０１６７】
リセット完了を示すレスポンスを送信した上記ＩＣカード１の制御素子１１では、変数ｎをｎ＋１とし（ステップＳ２０３）、コマンドの受信待ち状態となっている。この状態において上記アンテナ１７及び上記通信制御部１５により上記ＩＣカード処理装置２からのコマンドを受信すると（ステップＳ２０４）、上記ＩＣカード１の制御素子１１は、ｎ番目に受信したコマンドの内容（種類（コマンドコード）と処理内容（処理パラメータ））と一致するｎ番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する（ステップＳ２０５）。ここでは、選択されている正規処理情報からｎ番目に受信したコマンドの内容と一致するｎ番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する。
【０１６８】
上記判断によりｎ番目に受信したコマンドの内容と一致するｎ番目の正規コマンドが設定されている正規処理情報が存在すると判断した場合（ステップＳ２０５、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、ｎ番目の受信コマンドと一致するｎ番目の正規コマンドが設定されている正規処理情報を選択する（ステップＳ２０６）。
【０１６９】
受信したコマンドと一致する正規コマンドが設定されている正規処理情報を選択すると、上記ＩＣカード１の制御素子１１は、受信したコマンド（ｎ番目のコマンド）に応じた処理を実行する（ステップＳ２０７）。受信したコマンドに対する処理が完了すると、上記ＩＣカード１の制御素子１１は、受信したコマンドに対する処理結果をレスポンスとしてＩＣカード処理装置２へ送信する。また、上記ＩＣカード１の制御素子１１は、一連の処理が終了するまで（ステップＳ２０９、ＮＯ）、上記ステップＳ２０３へ戻り、上記ステップＳ２０３〜Ｓ２０９の処理を繰り返し実行する。
【０１７０】
また、上記判断によりｎ番目の受信コマンドと一致するｎ番目の正規コマンドが設定されている正規処理情報が存在しないと判断した場合（ステップＳ２０５、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ２０８）。このエラー処理としては、種々の形態可能が可能である。たとえば、エラー処理としては、認証に用いられる鍵情報を使用不可（ロック状態）としたり、特定の機能を停止したり、特定の処理（特定のアプリケーション）による処理を停止したりするようにする。また、エラー処理として、ＩＣカード１は、不正なアクセスと判断したため、処理を中止する旨あるいは機能を停止する旨のレスポンスをＩＣカード処理装置２に返すようにしても良い。
【０１７１】
なお、ｎ番目の受信コマンドと一致するｎ番目の正規コマンドが設定されている正規処理情報が複数存在する場合、上記ＩＣカード１の制御素子１１は、それらの正規処理情報を候補として選択する。この場合、順次受信するコマンドについては、候補となっている正規処理情報から一致する正規コマンドが設定されている正規処理情報を絞り込む。言い換えると、上記ステップＳ２０５では、１〜ｎ番目に受信したコマンドと一致する１〜ｎ番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断するようになっている。これにより、一部に順序が同一の正規コマンドが設定されている正規処理情報が複数存在する場合であっても、順次受信するコマンドと一致する正規コマンドが設定されている正規処理情報が存在するかを判断できる。
【０１７２】
次に、上記第３の不正検知処理によって検知される不正アクセスの例について説明する。  
図１４は、上記第３の不正検知処理によって検知される不正アクセスの例を説明するためのフローチャートである。ここでは、図１２に示すような正規処理情報Ｐ３ａおよびＰ３ｂが予めデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。この例では、ＩＣカード１に、アプリケーションＡＰ２のセレクトコマンド、鍵Ｋ１によるベリファイコマンドが順に供給された場合の不正アクセスの検知について説明するものである。
【０１７３】
まず、上記ＩＣカード１は、上記ＩＣカード処理装置２からの電波により起動し、リセット処理を行う（ステップＳ２２１）。上記ＩＣカード１からリセット処理が完了した旨の通知を受けたＩＣカード処理装置２が、１番目のコマンドとしてアプリケーションＡＰ２のセレクトコマンドを送信したものとする。  
すると、上記ＩＣカード１では、上記アプリケーションＡＰ２のセレクトコマンドをリセット後の１番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドの内容と各正規処理情報における１番目の正規コマンドの内容とを比較することにより、当該受信コマンドと一致する１番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する（ステップＳ２２２）。この判断では、当該受信コマンドのコマンドコードと各正規処理情報における１番目の正規コマンドのコマンドコードとを比較するとともに、当該受信コマンドの処理パラメータと各正規処理情報における１番目の正規コマンドの処理パラメータとを比較する。
【０１７４】
ここでは、当該受信コマンドと正規処理情報Ｐ３ａにおける１番目の正規コマンドとは、コマンドコードは一致するが、処理パラメータが一致しない。これに対して、当該受信コマンドと正規処理情報Ｐ３ｂにおける１番目の正規コマンドとは、コマンドコード及び処理パラメータが共に一致する。
【０１７５】
すなわち、リセット後の１番目に受信したコマンドは、コマンドコードがセレクト（選択要求）であり、処理パラメータでアプリケーションＡＰ２が指定されている。正規処理情報Ｐ３ａにおける１番目の正規コマンドは、コマンドコードがセレクトであり、処理パラメータでアプリケーションＡＰ１が指定されている。また、正規処理情報Ｐ３ｂにおける１番目の正規コマンドは、コマンドコードがセレクトであり、処理パラメータでアプリケーションＡＰ２が指定されている。
【０１７６】
従って、リセット後の１番目に受信したコマンドと正規処理情報Ｐ３ａにおける１番目の正規コマンドとは、命令の種類を示すコマンドコードは一致するが、処理対象を指定する処理パラメータが異なっている。これに対して、リセット後の１番目に受信したコマンドと正規処理情報Ｐ３ｂにおける１番目の正規コマンドとは、命令の種類を示すコマンドコードと処理対象を指定する処理パラメータとが共に一致している。
【０１７７】
上記のように、ここでは、上記ＩＣカード１の制御素子１１は、リセット後の１番目に受信したコマンドと正規処理情報Ｐ３ｂにおける１番目の正規コマンドとが一致するものと判断する。このため、上記ＩＣカード１の制御素子１１は、受信したコマンドと一致する正規コマンドが設定されている正規処理情報として、正規処理情報Ｐ３ｂを選択する（ステップＳ２２３）。この場合、その後の一連の処理では、順次受信する各コマンドと正規処理情報Ｐ３ｂの正規コマンドとが一致するか否かが判断される。
【０１７８】
すなわち、１番目に受信したコマンドと一致する１番目の正規コマンドが設定されている正規処理情報Ｐ３ｂを選択した場合、上記ＩＣカード１の制御素子１１は、１番目の受信コマンドに応じた処理として、アプリケーションＡＰ２の選択処理を実行する（ステップＳ２２４）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、アプリケーションＡＰ２の選択完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０１７９】
上記アプリケーションＡＰ２の選択完了を示すレスポンスを受信したＩＣカード処理装置２は、２番目のコマンドとして鍵Ｋ１による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ＩＣカード１では、上記鍵Ｋ１によるベリファイコマンドをリセット後の２番目のコマンドとして受信する。ここでは、上記ステップＳ２２３で、正規処理情報Ｐ３ｂが選択されている。このため、上記ＩＣカード１の制御素子１１は、当該受信コマンドの内容と正規処理情報Ｐ３ｂに設定されている２番目の正規コマンドとを比較する（ステップＳ２２５）。
【０１８０】
ここでは、リセット後の２番目に受信したコマンドは、コマンドコードがベリファイ（認証要求）であり、処理パラメータで鍵Ｋ１が指定されている。これに対して、選択されている正規処理情報Ｐ３ｂにおける２番目の正規コマンドは、コマンドコードがベリファイであり、処理パラメータで鍵Ｋ２が指定されている。すなわち、リセット後の２番目に受信したコマンドと正規処理情報Ｐ３ｂにおける２番目の正規コマンドとは、命令の種類を示すコマンドコードは一致するが、処理対象を指定する処理パラメータが異なっている。
【０１８１】
このように、受信コマンドと選択されている正規処理情報における正規コマンドとが不一致となっている場合、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置（外部装置）２から不正なコマンドが与えられたと判定する。不正なコマンドが与えられたことを判定した場合、上記ＩＣカード１の制御素子１１は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う（ステップＳ２２６）。このエラー処理としては、当該ＩＣカード１の一部または全ての機能を停止する処理などが行われる。
【０１８２】
上記のように、上記第３の不正検知処理を適用したＩＣカード１では、複数の正規処理情報がデータテーブル１４ａに記憶されている場合、順次受信したコマンドの内容と一致する正規コマンドが設定されている正規処理情報が存在するか否かを判断する。この判断により受信したコマンドと一致する正規コマンドが設定されている正規処理情報が存在しないと判断した場合、上記ＩＣカード１は、不正なアクセスを受けたと判断する。これにより、上記第３の不正検知処理では、複数種類の処理に対して、受信したコマンドの内容を順序に基づいて不正なアクセスを検知できる。この結果として、種々の機能を有するＩＣカードであっても、外部装置から要求された処理内容が正当なものであるか否かを検知し、不正なアクセスを防止できる。
【０１８３】
なお、上記第３の不正検知処理は、上記第２の不正検知処理と組み合わせて実施することも可能である。つまり、上記のような第３の不正検知処理が適用される複数の正規処理情報において、図９に示すように、各コマンドに正規の受信タイミングを示す情報（許容時間）を設定するようにしても良い。この場合、各コマンドを受信するごとに、上記ＩＣカード１は、受信したコマンドの内容とともに、当該コマンドを受信する時間間隔が正当な受信タイミングであるか否かを判断するようにすれば良い。この場合、種々の機能を有するＩＣカードであっても、外部装置から要求された各コマンドの処理内容および受信タイミングが正当なものであるか否かを検知でき、不正なアクセスを防止できる。
【０１８４】
次に、上記第１、第２あるいは第３の不正検知処理に適用可能な各コマンドの実行方法について説明する。  
上述した第１、第２あるいは第３の不正検知処理では、コマンドを受信するごとに、各コマンドの内容、順序、あるいは、受信したタイミングなどが正当であるか否かにより不正なアクセスを検知するようになっている。しかしながら、上述した第１、第２あるいは第３の不正検知処理の例では、不正なコマンドを受信する前に実行された処理は、取り消されない。これは、不正アクセスを検知した時点で処理を中止すると、不正アクセスを検知する前に実行された処理の結果が残ってしまうことがあるということを意味する。たとえば、不正なコマンドを受信する前に書き換えられたデータは、元に戻すことができない可能性がある。
【０１８５】
このため、上記第１、第２あるいは第３の不正検知処理に適用可能なコマンドの実行方法としては、一連の処理に伴う全ての正規コマンドに応じた処理が終了した時点、あるいは、一連の処理に伴う全ての正規コマンドを受信した時点で、特定のコマンドに対する処理を実行する。すなわち、特定のコマンドの処理内容は、一連の処理に伴う各コマンドに応じた処理が終了するまで、あるいは、一連の処理に伴う全ての正規コマンドを受信するまで、当該ＩＣカード１内のワーキングメモリ１３などに保留される。ワーキングメモリ１３に保留している処理内容は、不正アクセスを検知した場合には全てキャンセルされる。また、ワーキングメモリ１３に保留している処理内容は、不正アクセスが検知されなかった場合には、一連の処理に伴う各コマンドに応じた処理が終了した後、あるいは、一連の処理に伴う全ての正規コマンドを受信した後に、一括して実行される。
【０１８６】
ここでは、不揮発性メモリに書き込むべきデータ（書込みデータ）をワーキングメモリに保留しておき、一連の処理が終了した時点、あるいは、一連の処理を行うための全てのコマンドを受信した時点で、ワーキングメモリに保留した書込みデータを一括して不揮発性メモリに書き込む処理について説明する。
【０１８７】
図１５は、上記第１、第２あるいは第３の不正検知処理に適用可能なコマンドの実行方法を説明するためのフローチャートである。  
なお、図１５では、上記第１の不正検知処理に上記のようなコマンドの実行方法を適用した場合の処理例を示している。ただし、上記のようなコマンドの実行方法は、上記第２あるいは第３の不正検知処理にも同様に適用可能である。
【０１８８】
まず、上記ＩＣカード１は、上記アンテナ１７により上記ＩＣカード処理装置２からの応答要求信号としての電波を受信する。上記アンテナ１７により受信した電波は、上記電源部１６により当該ＩＣカード１が動作するための電源電圧およびクロックパルスに変換される。上記電源部１６は、受信した電波から生成した電源電圧およびクロックパルスを当該ＩＣカード１内の各部に供給する（ステップＳ３０１）。これにより、当該ＩＣカード１は、動作可能な状態となる。
【０１８９】
動作可能な状態となったＩＣカード１の制御素子１１は、まず、各部をリセットする処理を行う（ステップＳ３０２）。このリセット処理では、コマンドの受信（実行）順序を示す変数ｎの値を初期化（ｎ＝０）する。このリセット処理が正常に終了した場合、上記ＩＣカード１の制御素子１１は、ＩＣカード処理装置２にリセット完了を示すレスポンスを送信する。これに対して、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に供給すべき最初のコマンドを上記カードリーダライタ２２により送信する。
【０１９０】
リセット完了を示すレスポンスを送信した上記ＩＣカード１の制御素子１１では、変数ｎをｎ＋１とし（ステップＳ３０３）、コマンドの受信待ち状態となっている。この状態において上記アンテナ１７及び上記通信制御部１５により上記ＩＣカード処理装置２からのコマンドを受信すると（ステップＳ３０４）、上記ＩＣカード１の制御素子１１は、受信したコマンドの種類（コマンドコード）と処理内容（処理パラメータ）とが正規処理情報で示されるｎ番目の正規コマンドと一致するか否かを判断する（ステップＳ３０５）。
【０１９１】
この判断により受信したコマンドがｎ番目の正規コマンドと一致しないと判断した場合（ステップＳ３０５、ＮＯ）、上記ＩＣカード１の制御素子１１は、受信したコマンドが不正であると判定し、一連の処理を中止する。この場合、上記ＩＣカード１の制御素子１１は、当該一連の処理によりワーキングメモリ１３に記憶された書込みデータを全て破棄し（ステップＳ３０９）、エラー処理を行う（ステップＳ３１０）。このエラー処理としては、上述したように、種々の形態が可能である。
【０１９２】
また、上記判断により受信したコマンドがｎ番目の正規コマンドと一致すると判断した場合（ステップＳ３０５、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、さらに、受信したコマンド（ｎ番目のコマンド）の処理内容がデータメモリ１４へのデータ書込みを行うべき処理内容であるか否かを判断する（ステップＳ３０６）。この判断では、受信したコマンドの処理内容が、一連の処理が完了した時点あるいは一連の処理のコマンドを受信した時点で実行すべきものであるか否かを判断する。ここでは、データメモリ１４へのデータ書込みを一連の処理が完了した後に実行するものとしている。このため、データメモリ１４に書き込むべきデータは、一時的にデータを保持できるＲＡＭなどで構成されるワーキングメモリ１３に記憶される。
【０１９３】
すなわち、上記判断により受信したコマンド（ｎ番目のコマンド）の処理内容がデータメモリ１４へのデータ書込みを行うべき処理内容であると判断した場合（ステップＳ３０６、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、データメモリ１４に書き込むべき書込みデータをワーキングメモリ１３に保持しつつ、当該受信コマンドに応じた処理を実行する（ステップＳ３０７）。
【０１９４】
また、上記判断により受信したコマンド（ｎ番目のコマンド）の処理内容がデータメモリ１４へのデータ書込みを行うべき処理内容でないと判断した場合（ステップＳ３０６、ＮＯ）、上記ＩＣカード１の制御素子１１は、当該受信コマンドに応じた処理を実行する（ステップＳ３０８）。
【０１９５】
上記ステップＳ３０７あるいは上記ステップＳ３０８で受信したコマンドに対する処理が完了すると、上記ＩＣカード１の制御素子１１は、受信したコマンドに対する処理結果をレスポンスとしてＩＣカード処理装置２へ送信する。これとともに、上記ＩＣカード１の制御素子１１は、当該一連の処理の各コマンドに応じた処理が終了したか否かを判断する（ステップＳ３１１）。この判断により当該一連の処理の各コマンドに応じた処理が終了していないと判断した場合（ステップＳ３１１、ＮＯ）、上記ＩＣカード１の制御素子１１は、上記ステップＳ３０３へ戻り、上記ステップＳ３０３〜Ｓ３１１の処理を繰り返し実行する。
【０１９６】
また、当該一連の処理に伴う各コマンドに応じた終了したものと判断した場合(ステップＳ３１１、ＹＥＳ)、上記ＩＣカード１の制御素子１１は、当該一連の処理において上記ワーキングメモリ１３に保持した全ての書込みデータをデータメモリ１４に書き込む処理を実行する（ステップＳ３１２）。これにより、上記ワーキングメモリ１３に保留された全ての書込みデータがデータメモリ１４に書き込まれる。
【０１９７】
次に、上記コマンドの実行方法の例について説明する。  
図１６及び図１７は、上記コマンドの実行方法を適用した処理例を説明するためのフローチャートである。ここでは、正規処理情報Ｐ４として、１番目の正規コマンドとしてアプリケーションＡＰ１のセレクトコマンド、２番目の正規コマンドとして鍵Ｋ１によるベリファイコマンド、３番目の正規コマンドとして第１の情報Ｄ１のリードコマンド、４番目の正規コマンドとして第２の情報Ｄ２のライトコマンド、５番目の正規コマンドとして第３の情報Ｄ３のリードコマンド、６番目の正規コマンドとして第４の情報Ｄ４のライトコマンドが設定されているものとする。また、図１６では、全ての正規コマンドが正しく受信された場合の処理例を示している。また、図１７では、６番目に受信したコマンドが６番目の正規コマンドと一致しない場合の処理例を示している。
【０１９８】
まず、上記ＩＣカード１は、上記ＩＣカード処理装置２からの電波により起動し、リセット処理を行う（ステップＳ３２１）。上記ＩＣカード１からリセット処理が完了した旨の通知を受けたＩＣカード処理装置２が、１番目のコマンドとしてアプリケーションＡＰ１のセレクトコマンドを送信したものとする。  
すると、上記ＩＣカード１では、上記アプリケーションＡＰ１のセレクトコマンドをリセット後の１番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドの内容（コマンドコードと処理パラメータ）と正規処理情報Ｐ４として設定されている１番目の正規コマンドの内容とが一致すると判断する（ステップＳ３２２）。この判断に基づいて、上記ＩＣカード１の制御素子１１は、アプリケーションＡＰ１の選択処理を実行する（ステップＳ３２３）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、アプリケーションＡＰ１の選択完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０１９９】
上記アプリケーションＡＰ１の選択完了を示すレスポンスを受信したＩＣカード処理装置２は、２番目のコマンドとして鍵Ｋ１による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ＩＣカード１では、上記鍵Ｋ１によるベリファイコマンドをリセット後の２番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドの処理内容と正規処理情報Ｐ４として設定されている２番目の正規コマンドの処理内容とが一致すると判断する（ステップＳ３２４）。この判断に基づいて、上記ＩＣカード１の制御素子１１は、鍵Ｋ１による認証処理を実行する（ステップＳ３２５）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、鍵Ｋ１による認証完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０２００】
上記鍵Ｋ１による認証処理の完了を示すレスポンスを受信したＩＣカード処理装置２は、３番目のコマンドとして第１の情報Ｄ１の読み出しを要求するリードコマンドを送信したものとする。すると、上記ＩＣカード１では、上記第１の情報Ｄ１のリードコマンドをリセット後の３番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと、正規処理情報Ｐ４として設定されている３番目の正規コマンドとが一致すると判断する（ステップＳ３２６）。この判断に基づいて、上記ＩＣカード１の制御素子１１は、第１の情報Ｄ１の読出し処理を実行する（ステップＳ３２７）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、読み出した第１の情報Ｄ１を含む読出完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０２０１】
上記第１の情報Ｄ１の読出処理の完了を示すレスポンスを受信したＩＣカード処理装置２が、４番目のコマンドとして第２の情報Ｄ２の書込みを要求するライトコマンドを送信したものとする。すると、ＩＣカード１では、上記第２の情報Ｄ２のライトコマンドをリセット後の４番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドの処理内容と正規処理情報Ｐ４として設定されている４番目の正規コマンドとが一致すると判断する（ステップＳ３２８）。
【０２０２】
この判断に基づいて、上記ＩＣカード１の制御素子１１は、第２の情報Ｄ２の書込み処理を実行する（ステップＳ３２９）。この場合、当該受信コマンドがライトコマンドであるため、上記ＩＣカード１の制御素子１１は、当該受信コマンドがデータメモリ１４にデータを書き込むべき処理内容であると判断する。この判断により上記ＩＣカード１の制御素子１１は、当該受信コマンド（第２の情報Ｄ２のライトコマンド）に対する処理において、上記データメモリ１４に第２の情報Ｄ２としての書込みデータを書き込む代わりに、当該書込みデータをワーキングメモリ１３に書き込む（保持する）。  
上記のような第２の情報Ｄ２のライトコマンドに応じた処理が完了すると、上記ＩＣカード１の制御素子１１は、第２の情報Ｄ２の書込み完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０２０３】
上記第２の情報Ｄ２の書込処理の完了を示すレスポンスを受信したＩＣカード処理装置２が、５番目のコマンドとして第３の情報Ｄ３の読み出しを要求するリードコマンドを送信したものとする。すると、上記ＩＣカード１では、上記第３の情報Ｄ３のリードコマンドをリセット後の５番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドと正規処理情報Ｐ４として設定されている５番目の正規コマンドとが一致すると判断する（ステップＳ３３０）。この判断に基づいて、上記ＩＣカード１の制御素子１１は、第３の情報Ｄ３の読出し処理を実行する（ステップＳ３３１）。この処理が完了すると、上記ＩＣカード１の制御素子１１は、読み出した第３の情報Ｄ３を含む読出完了を示すレスポンスをＩＣカード処理装置２へ返す。
【０２０４】
ここで、図１６に示す例では、上記第３の情報Ｄ３の読み出し処理の完了を示すレスポンスを受信したＩＣカード処理装置２が、６番目のコマンドとして第４の情報Ｄ４の書込みを要求するライトコマンドを送信したものとする。すると、ＩＣカード１では、上記第４の情報Ｄ４のライトコマンドをリセット後の６番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドの処理内容と正規処理情報Ｐ４として設定されている６番目の正規コマンドとを比較することにより（ステップＳ３３２）、両者が一致するか否かを判断する。
【０２０５】
図１６に示す例では、上記ＩＣカード１の制御素子１１は、６番目に受信したコマンドの処理内容と正規処理情報Ｐ４として設定されている６番目の正規コマンドとが一致すると判断する。この判断に基づいて、上記ＩＣカード１の制御素子１１は、６番目のコマンドに応じた処理として第４の情報Ｄ４の書込み処理を実行する（ステップＳ３３３）。この場合、６番目の受信コマンドがライトコマンドであるため、上記ＩＣカード１の制御素子１１は、当該受信コマンドがデータメモリ１４にデータを書き込むべき処理内容であると判断する。この判断により上記ＩＣカード１の制御素子１１は、当該受信コマンド（第４の情報Ｄ４のライトコマンド）に対する処理において、上記データメモリ１４に第４の情報Ｄ４としての書込みデータを書き込む代わりに、当該書込みデータをワーキングメモリ１３に書き込む（保持する）処理を行う。
【０２０６】
上記のような第４の情報Ｄ４のライトコマンドに応じた処理が完了すると、上記ＩＣカード１の制御素子１１は、第４の情報Ｄ４の書込み完了を示すレスポンスをＩＣカード処理装置２へ返す。また、この場合、上記ＩＣカード１の制御素子１１は、第４の情報Ｄ４の書込み完了とともに、当該一連の処理が正常に終了したことを判断する。当該一連の処理の終了は、ＩＣカード処理装置２からの一連の処理終了の通知に基づいて判定するようにしても良い。
【０２０７】
当該一連の処理が正常に終了したことを判断すると、上記ＩＣカードの制御素子１１は、ワーキングメモリ１３に保持している書込みデータを一括してデータメモリ１４に書き込む処理を実行する（ステップＳ３３４）。このようなワーキングメモリ１３に保持した書込みデータを全てデータメモリ１４に書き込んだ際、当該一連の処理が全て完了したこととなる。
【０２０８】
また、図１７に示す例では、上記第３の情報Ｄ３の読み出し処理の完了を示すレスポンスを受信したＩＣカード処理装置２が、６番目のコマンドとして第５の情報の書込みを要求するライトコマンドを送信したものとする。すると、ＩＣカード１では、上記第５の情報のライトコマンドをリセット後の６番目のコマンドとして受信する。この場合、上記ＩＣカード１の制御素子１１は、当該受信コマンドの処理内容と正規処理情報Ｐ４として設定されている６番目の正規コマンドとを比較することにより（ステップＳ３３２）、両者が一致するか否かを判断する。
【０２０９】
図１７に示す例では、上記ＩＣカード１の制御素子１１は、６番目に受信したコマンドの処理内容と正規処理情報Ｐ４として設定されている６番目の正規コマンドとが一致しないと判断する。これは、６番目に受信したコマンドが不正なコマンドであるため、ＩＣカード処理装置（外部装置）２から不正なアクセスを受けたものと判断するものである。  
このように、不正なアクセスを受けたと判断した場合、上記ＩＣカード１の制御素子１１は、当該一連の処理を中止すると判断する。不正アクセスを検知したことにより一連の処理を中止すると判断した場合、上記ＩＣカード１の制御素子１１は、ワーキングメモリ１３に保持している書込みデータを全て破棄するとともに（ステップＳ３４３）、エラー処理を実行する（ステップＳ３４４）。なお、上記ワーキングメモリ１３は、上述したように、ＲＡＭなどにより構成される。このため、上記ワーキングメモリ１３上に保持している書込みデータは、容易に破棄することができる。
【０２１０】
上記のようなコマンドの処理を適用したＩＣカード１では、不正なコマンドを受信する前、つまり、不正なアクセスを検知する前に、受信したコマンドによって不揮発性メモリ１４への書き込みが要求された書込みデータについては、実際には不揮発性メモリ１４に書き込むことなく、ワーキングメモリ１３に保留する。上記ワーキングメモリ１３に保留した書込みデータは、一連の処理の全てのコマンドが正当なコマンドであると判断された後に、一括して不揮発性メモリ１４に書き込まれる。また、一連の処理が完了するまでに不正なコマンドが検知された場合、上記ワーキングメモリ１３に保留した書込みデータは全て破棄される。  
これにより、当該ＩＣカードでは、一連の処理において、不正なコマンドを受信する前、つまり、不正なアクセスを検知する前に、受信したコマンドに応じた処理の結果を残さないようにすることができる。
【０２１１】
上記のように、第１の実施例を適用したＩＣカードでは、データメモリ１４ａに正当な処理内容を示す情報を記憶しておき、外部装置２から与えられたコマンドの処理内容が前記記憶手段１４ａに記憶している処理内容と一致するか否かを判断し、前記受信したコマンドの処理内容が前記記憶手段１４ａに記憶されている正当な処理内容を示す情報と一致すると判断した場合には前記受信したコマンドに応じた処理を実行し、前記受信したコマンドの処理内容が前記記憶手段１４ａに記憶されている処理内容と一致しないと判断した場合には前記受信したコマンドが不正なコマンドであると判定する。
【０２１２】
これにより、第１の実施例によれば、外部装置２からＩＣカード１に与えられた不正なコマンドを検出でき、不正なアクセスを防止できる。
【０２１３】
次に、上記ＩＣカード１に適用される第２の実施例について説明する。
【０２１４】
まず、上記第２の実施例に係る処理について概略的に説明する。  
上記ＩＣカード１では、上述したように、上記ＩＣカード処理装置（外部装置）２から順次供給される一連のコマンドに応じて一連の処理を実行するようになっている。さらに、上記第２の実施例に係るＩＣカード１では、上記のような一連の処理において、上記ＩＣカード処理装置２から受信したコマンドと各コマンドに応じて実行した処理内容とを示すログデータをデータメモリ１４に保存する。このようなログデータに基づいて、当該ＩＣカード１では、リセット直後に、不正アクセスの有無を検出する処理を行う。すなわち、上記第２の実施例に係るＩＣカード１では、リセットされるごとに、直前のログデータに対して不正アクセスの有無を検知するようになっている。
【０２１５】
図１８は、第２の実施例に係る処理（ログデータによる不正検知処理を含むＩＣカードの処理）を概略的に説明するためのフローチャートである。また、図１９は、ログデータから不正アクセスが検出された場合のエラー処理の例を説明するためのフローチャートである。  
まず、上記ＩＣカード処理装置２では、待機状態において、ＩＣカード１に対する応答要求信号として、ＩＣカード１が動作するための電源およびクロックパルスを電波として上記カードリーダライタ２２から発信している。
【０２１６】
このような状態のＩＣカード処理装置２のカードリーダライタ２２の通信圏内に上記ＩＣカード１が提示されると、当該ＩＣカード１は、上記アンテナ１７により上記ＩＣカード処理装置２からの応答要求信号としての電波を受信する。上記アンテナ１７により受信した電波は、上記電源部１６により当該ＩＣカード１が動作するための電源電圧およびクロックパルスに変換される。上記電源部１６は、受信した電波から生成した電源電圧およびクロックパルスを当該ＩＣカード１内の各部に供給する。これにより、当該ＩＣカード１は、動作可能な状態となる。動作可能な状態となったＩＣカード１の制御素子１１は、まず、各部をリセットする処理を行う（ステップＳ４０１）。
【０２１７】
リセット処理が完了すると、当該ＩＣカード１の制御素子１１は、まず、上記データメモリ１４から直前の一連の処理内容を示す１つのログデータを読み出す。１つのログデータは、たとえば、直前の一連の処理において、受信した各コマンドの内容、あるいは、実行した各処理内容を示す情報である。ログデータを読み出すと、上記ＩＣカード１の制御素子１１は、ログデータで示されるコマンドの内容あるいは実行した処理内容が適正な内容であるか否かを判定する不正アクセスの検出処理（不正検知処理）を行う（ステップＳ４０３）。ログデータからの不正検知処理については、後で詳細に説明する。
【０２１８】
上記不正検知処理により当該ログデータにおいて不正アクセスが検知された場合（ステップＳ４０４、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、エラー処理を行う（ステップＳ４０５）。このエラー処理では、たとえば、図１９に示すように、不正アクセスが検出されたことをＩＣカード処理装置２に通知し（ステップＳ４２１）、当該ＩＣカードの機能の一部あるいは全部を停止する処理を行う（ステップＳ４２２）。
【０２１９】
上記不正検知処理により当該ログデータにおいて不正アクセスが検知されなかった場合（ステップＳ４０４、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理が実行可能な状態となったことを示すレスポンスをＩＣカード処理装置２へ送信する（ステップＳ４０６）。このようなレスポンスを送信したＩＣカード１は、上記ＩＣカード処理装置２から順次供給されるコマンドに応じて一連の処理を行う（ステップＳ４０７）。この場合、上記ＩＣカード１の制御素子１１は、当該一連の処理において、受信した各コマンドの内容とそれらのコマンドに応じて実行した各処理内容とを示す情報を１つのログデータとしてデータメモリ１４に記憶するようになっている（ステップＳ４０８）。
【０２２０】
なお、上記データメモリ１４に保存されるログデータは、適宜、削除されるようになっている。本第２の実施例では、少なくとも直前のログデータが不正アクセスの判定処理までに、データメモリ１４に保持されていれば良い。従って、たとえば、上記ＩＣカード１の制御素子１１は、不正アクセスが検出されなかったログデータを順次削除する。ただし、運用形態によっては、できるだけ多くのログデータを保存しておく方が良い場合もありうる。このような場合、上記ＩＣカード１の制御素子１１は、データメモリ１４にログデータとして記憶可能な容量に応じて、ログデータを順次削除するようにすれば良い。
【０２２１】
次に、１つの具体例として、アプリケーションＡＰ１により実現される取引処理とその取引処理のログデータの収集処理とについて説明する。  
アプリケーションＡＰ１により実現される取引処理は、上述したように、所定の手順で所定の内容の処理を行うようになっているものとする。このため、正当な取引処理では、上記ＩＣカード処理装置２が上記ＩＣカード１に対して、所定のコマンドを所定の手順で供給するようになっている。言い換えれば、当該取引処理のログデータにおいて所定のコマンドが所定の順序で供給されなかったことが検出されれば、上記ＩＣカード１は、不正なアクセスを受けた可能性があると判定できる。
【０２２２】
図２０は、上記ＩＣカード１により実行される正当な取引処理とその取引処理のログデータの収集処理とを説明するためのフローチャートである。  
ここで、正当な取引処理は、アプリケーションＡＰ１の選択処理、鍵情報Ｋ１による認証処理、第１の情報Ｄ１の読出処理、第２の情報Ｄ２の読出処理、第３の情報Ｄ３の読出処理、第４の情報Ｄ４の書込処理の順に実行されるものとする。  
上述したように、上記ＩＣカード処理装置２からの電波を受けて起動したＩＣカード１は、リセット処理を行っている。リセット処理したＩＣカード１では、ログデータに基づいて直前の一連の処理が正当なものであると判断した場合、処理可能な状態となったことを示すレスポンスをＩＣカード処理装置２へ送信する。リセット処理した上記ＩＣカード１の制御素子１１は、リセットしたことを示す情報を、これから実施する一連の処理（取引処理）のログデータＬ０としてデータメモリ１４に記憶する（ステップＳ４３１）。
【０２２３】
上記ＩＣカード１からのリセット完了を示すレスポンスを受信したＩＣカード処理装置２の制御装置２１は、当該取引処理を実行するための１番目のコマンドとしてアプリケーションＡＰ１の選択を要求するコマンド（セレクトコマンド）Ｃ１をＩＣカード１に送信する。このセレクトコマンドＣ１のコマンドコードは、「選択要求（セレクト）」であること示す情報である。また、上記セレクトコマンドＣ１の処理パラメータは、「アプリケーションＡＰ１」を示す情報が含まれる。
【０２２４】
上記セレクトコマンドＣ１を受信したＩＣカード１の制御素子１１は、リセット後の１番目に受信したコマンドに応じた処理としてアプリケーションの選択処理を行う（ステップＳ４３２）。ここで、上記ＩＣカード１の制御素子１１は、当該取引処理のログデータＬ０として、上記セレクトコマンドＣ１（リセット後の１番目に受信したコマンド）の内容を示す情報をデータメモリ１４に記憶する。なお、当該取引処理における１番目の受信コマンド（セレクトコマンドＣ１）の内容を示す情報としては、コマンドコード（ここでは、セレクト）、処理パラメータ（ここでは、アプリケーションＡＰ１）などがデータメモリ１４に記憶される。
【０２２５】
また、上記アプリケーションＡＰ１の選択が完了すると、上記ＩＣカード１の制御素子１１は、セレクトコマンドＣ１（１番目の受信コマンド）の処理結果を示す情報を当該取引処理のログデータＬ０として上記データメモリ１４に記憶するとともに、ＩＣカード処理装置２に対してアプリケーションＡＰ１を選択したことを示すレスポンス（セレクトコマンドＣ１に対する処理結果等を示すレスポンス）を送信する。
【０２２６】
上記アプリケーションＡＰ１を選択したことを示すレスポンスを受信したＩＣカード処理装置２の制御装置２１では、上記アプリケーションの選択処理に続く所定の処理として、鍵情報Ｋ１による認証処理をＩＣカード１に要求するコマンド（ベリファイコマンド）Ｃ２をＩＣカード１へ送信する。なお、上記鍵情報Ｋ１は、アプリケーションＡＰ１に対応する認証情報である。また、上記ベリファイコマンドＣ２は、コマンドコードが認証要求であることを示す情報である。また、上記ベリファイコマンドＣ２の処理パラメータには、暗号化された鍵情報Ｋ１などが含まれる。
【０２２７】
上記ベリファイコマンドＣ２を受信したＩＣカード１の制御素子１１は、リセット後の２番目に受信したコマンドに応じた処理として鍵Ｋ１による認証処理を行う（ステップＳ４３３）。ここで、上記ベリファイコマンドＣ２を受信したＩＣカード１の制御素子１１は、当該取引処理のログデータＬ０として、ベリファイコマンドＣ２（リセット後の２番目に受信したコマンド）の内容を示す情報をデータメモリ１４に記憶する。なお、当該取引処理における２番目の受信コマンド（ベリファイコマンドＣ２）の内容を示す情報としては、コマンドコード（ここでは、ベリファイ）、処理パラメータ（ここでは、鍵Ｋ１）などがデータメモリ１４に記憶される。
【０２２８】
また、上記鍵Ｋ１による認証処理が完了すると、上記ＩＣカード１の制御素子１１は、２番目の受信コマンド（ベリファイコマンドＣ２）の処理結果を示す情報を当該取引処理のログデータＬ０として上記データメモリ１４に記憶するとともに、ＩＣカード処理装置２に対して上記鍵情報Ｋ１による認証が成功したことを示すレスポンス（ベリファイコマンドＣ２に対する処理結果等を示すレスポンス）を送信する。
【０２２９】
上記鍵情報Ｋ１による認証が成功したことを示すレスポンスを受けたＩＣカード処理装置２の制御装置２１では、上記認証処理に続く所定の処理として、第１の情報（例えば、カード番号）Ｄ１の読み出しを要求するコマンド（リードコマンド）Ｃ３をＩＣカード１へ送信する。なお、上記第１の情報Ｄ１は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として保持している情報である。ここで、上記リードコマンドＣ３は、コマンドコードが「読出要求（リード）」であることを示す情報である。また、上記リードコマンドＣ３の処理パラメータには、読出しの対象となるデータが「第１の情報Ｄ１」であることを示す情報などが含まれる。
【０２３０】
上記のようなリードコマンドＣ３を受信したＩＣカード１では、リセット後の３番目に受信したコマンドに応じた処理として第１の情報Ｄ１の読出処理を行う（ステップＳ４３４）。ここで、上記ＩＣカード１の制御素子１１は、当該取引処理のログデータＬ０として、上記リードコマンドＣ３（リセット後の３番目に受信したコマンド）の内容を示す情報をデータメモリ１４に記憶する。なお、当該取引処理における３番目の受信コマンド（リードコマンドＣ３）の内容を示す情報としては、コマンドコード（ここでは、リード）、処理パラメータ（ここでは、第１の情報Ｄ１）などがデータメモリ１４に記憶される。
【０２３１】
また、上記第１の情報Ｄ１の読み出しが完了すると、上記ＩＣカード１の制御素子１１は、３番目の受信コマンド（リードコマンドＣ３）の処理結果を示す情報を当該取引処理のログデータＬ０として上記データメモリ１４に記憶するとともに、ＩＣカード処理装置２に対して上記第１の情報として読み出した情報を含むレスポンス（リードコマンドＣ３に対する処理結果等を示すレスポンス）を送信する。
【０２３２】
上記第１の情報Ｄ１の読出しが成功したことを示すレスポンス（読み出した第１の情報Ｄ１を含むレスポンス）を受けたＩＣカード処理装置２の制御装置２１では、上記第１の情報Ｄ１の読出処理に続く所定の処理として、第２の情報（例えば、氏名）Ｄ２の読出処理をＩＣカード１に要求するコマンド（リードコマンド）Ｃ４をＩＣカード１へ送信する。なお、上記第２の情報Ｄ２は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として保持している情報である。また、上記リードコマンドＣ４は、コマンドコードが「読出要求（リード）」であることを示す情報（リード）である。また、上記リードコマンドＣ４の処理パラメータには、読出しの対象となるデータが「第２の情報Ｄ２」であることを示す情報などが含まれる。
【０２３３】
上記のようなリードコマンドＣ４を受信したＩＣカード１では、リセット後の４番目に受信したコマンドに応じた処理として第２の情報Ｄ２の読出処理を行う（ステップＳ４３５）。ここで、上記ＩＣカード１の制御素子１１は、当該取引処理のログデータＬ０として、上記リードコマンドＣ４（リセット後の４番目に受信したコマンド）の内容を示す情報をデータメモリ１４に記憶する。なお、当該取引処理における４番目の受信コマンド（リードコマンドＣ４）の内容を示す情報としては、コマンドコード（ここでは、リード）、処理パラメータ（ここでは、第２の情報Ｄ２）などがデータメモリ１４に記憶される。
【０２３４】
また、上記第２の情報Ｄ２の読み出しが完了すると、上記ＩＣカード１の制御素子１１は、４番目の受信コマンド（リードコマンドＣ４）の処理結果を示す情報を当該取引処理のログデータＬ０として上記データメモリ１４に記憶するとともに、ＩＣカード処理装置２に対して上記第２の情報Ｄ２として読み出した情報を含むレスポンス（リードコマンドＣ４に対する処理結果等を示すレスポンス）を送信する。
【０２３５】
上記第２の情報Ｄ２の読出しが成功したことを示すレスポンス（読み出した第２の情報Ｄ２を含むレスポンス）を受けたＩＣカード処理装置２の制御装置２１では、上記第２の情報Ｄ２の読出処理に続く所定の処理として、第３の情報（例えば、有効期限）Ｄ３の読出処理をＩＣカード１に要求するコマンド（リードコマンド）Ｃ５をＩＣカード１へ送信する。なお、上記第３の情報Ｄ３は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として保持している情報である。また、上記リードコマンドＣ５は、コマンドコードが「読出要求（リード）」であることを示す情報（リード）である。また、上記リードコマンドＣ５の処理パラメータには、読出しの対象となるデータが「第３の情報Ｄ３」であることを示す情報などが含まれる。
【０２３６】
上記のようなリードコマンドＣ５を受信したＩＣカード１では、リセット後の５番目に受信したコマンドに応じた処理として第３の情報Ｄ３の読出処理を行う（ステップＳ４３６）。ここで、上記ＩＣカード１の制御素子１１は、当該取引処理のログデータＬ０として、上記リードコマンドＣ５（リセット後の５番目に受信したコマンド）の内容を示す情報をデータメモリ１４に記憶する。なお、当該取引処理における５番目の受信コマンド（リードコマンドＣ５）の内容を示す情報としては、コマンドコード（ここでは、リード）、処理パラメータ（ここでは、第３の情報Ｄ３）などがデータメモリ１４に記憶される。
【０２３７】
また、上記第３の情報Ｄ３の読み出しが完了すると、上記ＩＣカード１の制御素子１１は、５番目の受信コマンド（リードコマンドＣ５）の処理結果を示す情報を当該取引処理のログデータＬ０として上記データメモリ１４に記憶するとともに、ＩＣカード処理装置２に対して上記第３の情報Ｄ３として読み出した情報を含むレスポンス（リードコマンドＣ５に対する処理結果等を示すレスポンス）を送信する。
【０２３８】
上記第３の情報Ｄ３の読出しが成功したことを示すレスポンス（読み出した第３の情報Ｄ３を含むレスポンス）を受けたＩＣカード処理装置２の制御装置２１では、上記第３の情報Ｄ３の読出処理に続く所定の処理として、第４の情報（例えば、取引金額）Ｄ４の書込処理をＩＣカード１に要求するコマンド（ライトコマンド）Ｃ６をＩＣカード１へ送信する。なお、上記第４の情報Ｄ４は、上記ＩＣカード１が上記アプリケーションＡＰ１に対応するデータ（アプリケーションＡＰ１のディレクトリに存在するデータファイル）として保持している情報である。また、上記ライトコマンドＣ６は、コマンドコードが「書込要求（ライト）」であることを示す情報である。また、上記ライトコマンドＣ６の処理パラメータには、書込みの対象となるデータが「第４の情報Ｄ４」であることを示す情報などが含まれる。
【０２３９】
上記のようなライトコマンドＣ６を受信したＩＣカード１では、リセット後の６番目に受信したコマンドに応じた処理として第４の情報Ｄ４の書込処理を行う（ステップＳ４３７）。ここで、上記ＩＣカード１の制御素子１１は、当該取引処理のログデータＬ０として、上記ライトコマンドＣ６（リセット後の６番目に受信したコマンド）の内容を示す情報をデータメモリ１４に記憶する。なお、当該取引処理における６番目の受信コマンド（ライトコマンドＣ６）の内容を示す情報としては、コマンドコード（ここでは、ライト）、処理パラメータ（ここでは、第４の情報Ｄ４）などがデータメモリ１４に記憶される。
【０２４０】
また、上記第４の情報Ｄ４の書込みが完了すると、上記ＩＣカード１の制御素子１１は、６番目の受信コマンド（ライトコマンドＣ６）の処理結果を示す情報を当該取引処理のログデータＬ０として上記データメモリ１４に記憶するとともに、ＩＣカード処理装置２に対して上記第４の情報Ｄ４の書込みが成功したことを示すレスポンス（ライトコマンドＣ６に対する処理結果等を示すレスポンス）を送信する。
【０２４１】
上記ライトコマンドＣ６に対するレスポンスとして上記第４の情報Ｄ４の書込みが成功したことを示すレスポンスを受信した場合、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に対する一連の取引処理が正常に終了したものと判断する。また、各コマンドＣ１〜Ｃ６に対するレスポンスとして、コマンドに対する処理が正常に終了できなかった旨のレスポンスを受信した場合、上記ＩＣカード処理装置２の制御装置２１では、当該ＩＣカード１に対する一連の取引処理がエラーとなったものと判断する。なお、上記のようなエラーが発生した場合、上記ＩＣカード処理装置２の制御装置２１は、一連の取引処理を最初から再度実行するか、あるいは、一連の取引処理を中止するようにすれば良い。
【０２４２】
また、上記のような一連の処理によれば、各コマンドに対する処理を実行するとともに、各コマンドの内容（コマンドコード、処理パラメータ）、および、処理結果などを示すログデータＬ０がデータメモリ１４に保存される。つまり、一連の処理に対するログデータＬ０では、リセット処理から一連の処理における最後のコマンドに対する処理までの処理結果が示される。これにより、次に外部装置からアクセスされた場合、つまり、次にＩＣカード１が起動した場合、当該ＩＣカード１では、上記のようなログデータにおける不正なアクセスを検出する処理（不正検知処理）を行うことが可能となる。
【０２４３】
次に、上記のように、ログデータから不正なアクセスを検出する不正検知処理について詳細に説明する。  
本第２の実施例では、ＩＣカード１が、予めＩＣカード１内のメモリ（たとえばデータメモリ１４）に記憶されている正規の処理手順および正規の処理内容などを示す正規処理情報Ｐに基づいて、ログデータにおける不正アクセスを検出する。上述したように、正当な一連の取引処理では、上記ＩＣカード１には、所定の複数のコマンドが所定の手順で順次供給される。このため、ＩＣカード１では、一連の処理のログデータが所定の処理内容と一致しなければ、外部装置から不正なアクセスを受けたと判断する処理（不正検知処理）を行う。また、ログデータにおける不正なアクセスを検出する不正検知処理には、種々の手法がある。本第２の実施例では、ログデータから不正なアクセスを検知する手法として、第４、第５、第６の不正検出処理について説明する。
【０２４４】
なお、以下の説明では、前提条件として、正当な処理内容及び処理順序などを示す正規処理情報Ｐが予めＩＣカード１内のデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。また、上記データメモリ１４には、実行済みの一連の処理の内容（受信コマンドの内容および処理結果など）を示すログデータＬが保存されているものとする。また、上記正規処理情報において命令の種類および処理内容が規定されている各コマンドを正規コマンドと称し、正規処理情報において順序がｎ番目に規定されているコマンドをｎ番目の正規コマンドと称するものとする。
【０２４５】
次に、上記ＩＣカード１に適用される第２の実施例としての第４の不正検知処理について説明する。  
ここで、この第４の不正検知処理では、図４に示すような正規処理情報Ｐ１に基づいてログデータにおける不正なアクセスが検出されるものとする。  
図４に示すように、正規処理情報Ｐ１では、各正規コマンドの内容として、少なくともコマンドの種類（命令の種類）を示すコマンドコードと処理対象を示す処理パラメータとが規定されている。上記正規処理情報Ｐ１では、上記処理パラメータが、各正規コマンドの処理対象として許容されるべきデータ（値）で示される。なお、上記正規処理情報Ｐ１において規定する各正規コマンドの処理パラメータは、１つの値であっても良いし、複数の値であっても良いし、値の範囲を示すものであっても良い。また、上記正規処理情報Ｐ１において規定するコマンドコードも、１つのコマンドコードであっても良いし、複数のコマンドコードであっても良い。
【０２４６】
上記ＩＣカード１では、第４の不正検知処理として、図４に示すような正規処理情報Ｐ１とログデータとを比較することにより、ログデータにおける各コマンドが正当な手順であり、かつ、正当な処理内容であったか否かを判断する。たとえば、正規処理情報Ｐ１で規定されている正規コマンドの処理パラメータが複数の値であれば、上記ＩＣカード１は、ログデータにおける各コマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている複数の値のうちの何れかと一致するか否かを判断する。また、正規処理情報Ｐ１で規定されている正規コマンドの処理パラメータが数値範囲であれば、上記ＩＣカード１は、ログデータにおける各コマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている数値範囲内であるか否かにより、受信したコマンドと正規コマンドとが一致するか否かを判断する。
【０２４７】
すなわち、ログデータにおけるあるコマンドの内容が上記正規処理情報Ｐ１で指定されている各正規コマンドの内容と一致しないと判断した場合、あるいは、ログデータにおける各コマンドの受信順序が上記正規処理情報Ｐ１で規定されている各正規コマンドの順序と一致ないと判断した場合、上記ＩＣカード１は、不正なコマンドが与えられていた（不正なアクセスがあった）と判定する。また、不正なアクセスがあったと判定した場合、上記ＩＣカード１では、エラー処理を行う。また、上記エラー処理としては、上述したように、不正なアクセスがあったことを外部へ通知するとともに、当該ＩＣカード１の一部または全部の機能を停止あるいは規制する処理が行われる。
【０２４８】
すなわち、図４に示すような正規処理情報Ｐ１が設定されている場合、当該ＩＣカード１では、処理パラメータでアプリケーションＡＰ１が指定されているセレクトコマンドＣ１、処理パラーメータで鍵情報Ｋ１が指定されているベリファイコマンドＣ２、処理パラーメータで第１の情報Ｄ１が指定されているリードコマンドＣ３、処理パラーメータで第２の情報Ｄ２が指定されているリードコマンドＣ４、処理パラーメータで第３の情報Ｄ３が指定されているリードコマンドＣ５、および、処理パラーメータで第４の情報Ｄ４が指定されているライトコマンドＣ６が順に受信されたことを示すログデータでなければ、不正なアクセスをうけたものと判断する。
【０２４９】
図２１は、第４の不正検知処理を説明するためのフローチャートである。なお、図２１に示す処理は、上述した図１８のステップＳ４０２〜Ｓ４０５に相当する処理であり、上記ＩＣカード１が起動（リセット）した直後に実行される。  
まず、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置２からの電波を受けて起動した場合（リセットした場合）、変数ｎを初期化（ｎ＝０）し（ステップＳ５００）、直前に実行された一連の処理に対応するログデータを読み込む（ステップＳ５０１）。次に、上記ＩＣカード１の制御素子１１は、変数ｎを初期化し変数ｎをｎ＋１とし（ステップＳ５０２）、当該ログデータにおけるｎ番目の受信コマンドの内容と正規処理情報におけるｎ番目の正規コマンドの内容とを比較する（ステップＳ５０３）。
【０２５０】
この比較の結果として当該ログデータにおけるｎ番目の受信コマンドの内容と正規処理情報におけるｎ番目の正規コマンドの内容とが一致すると判断した場合（ステップＳ５０４、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、ログデータにおける全ての受信コマンドと正規処理情報Ｐ１における各正規コマンドとの比較が完了したか否かにより、当該ログデータに対する不正アクセスの検出処理が完了したか否かを判断する（ステップＳ５０６）。この判断により不正アクセスの検出処理が完了したと判断するまで、上記ＩＣカード１の制御素子１１は、上記ステップＳ５０２へ戻り、上記ステップＳ５０２〜Ｓ５０６の処理を繰り返し実行する。
【０２５１】
また、上記ログデータにおけるｎ番目の受信コマンドの内容と上記正規処理情報Ｐ１におけるｎ番目の正規コマンドの内容とが一致しないと判断した場合（ステップＳ５０４、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ５０５）。このエラー処理としては、上述したように、たとえば、不正なアクセスを検知したことをＩＣカード処理装置２に通知したり、当該ＩＣカード１が有している一部の機能あるいは全部の機能を停止したりする。なお、上記エラー処理によってＩＣカード１が有している一部の機能あるいは全ての機能が停止（制限）された場合、当該ＩＣカード１は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
【０２５２】
次に、上記第４の不正検知処理によって検出される不正アクセスの２つの例について説明する。  
まず、上記第４の不正検知処理によって検出される不正アクセスの第１の例について説明する。  
図２２は、上記第４の不正検知処理によって検出される不正アクセスの第１の例を説明するための図である。ここでは、図４に示すような正規処理情報Ｐ１が予めデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。また、図２２に示す第１の例では、正規処理情報Ｐ１で規定されている第３の情報Ｄ３のリードコマンドが省略されているログデータＬ１を想定する。
【０２５３】
上記第４の不正検知処理によれば、上記ＩＣカード１の制御素子１１は、１番目から順に、ログデータＬ１における受信コマンドと正規処理情報Ｐ１における正規コマンドとを比較する。すると、図２２に示すように、１番目〜４番目の受信コマンドと正規コマンドとは一致するものの、５番目の受信コマンドと正規コマンドとは不一致となる。つまり、ログデータＬ１における５番目の受信コマンドと正規処理情報Ｐ１における５番目の正規コマンドとは、コマンドコードおよび処理パラメータが共に異なっている。従って、上記ＩＣカード１の制御素子１１は、当該ログデータが示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
【０２５４】
次に、上記第４の不正検知処理によって検出される不正アクセスの第２の例について説明する。  
図２３は、上記第４の不正検知処理によって検出される不正アクセスの第２の例を説明するための図である。ここでは、図４に示すような正規処理情報Ｐ１が予めデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。また、図２３に示すログデータＬ２では、正規処理情報Ｐ１と比較すると、第３の情報Ｄ３のリードコマンドと第２の情報Ｄ２のリードコマンドの順序が入れ替わっている。つまり、図２３に示す第２の例では、正規処理情報Ｐ１で規定されている第３の情報Ｄ３のリードコマンドを不正な順序で受信したことを示すログデータＬ２を想定する。
【０２５５】
上記第４の不正検知処理によれば、上記ＩＣカード１の制御素子１１は、１番目から順に、ログデータＬ２における受信コマンドと正規処理情報Ｐ１における正規コマンドとを比較する。すると、図２３に示すように、１番目〜３番目の受信コマンドと正規コマンドとは一致するものの、４番目の受信コマンドと正規コマンドとは不一致となる。つまり、図２３に示すように、ログデータＬ２における４番目の受信コマンドと正規処理情報Ｐ１における４番目の正規コマンドとは、コマンドコードは一致するものの、処理パラメータが異なっている。従って、上記ＩＣカード１の制御素子１１は、当該ログデータが示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
【０２５６】
上記のように、上記第４の不正検知処理を適用したＩＣカード１では、ログデータにおける各受信コマンドの内容と正規処理情報における各正規コマンドの内容とを順に照合し、受信コマンドと正規コマンドとが一致しない場合、当該ログデータで示される一連の処理において不正なアクセスがあったことを検出する。これにより、上記第４の不正検知処理では、ログとして記録した受信コマンドの内容と受信順序とが正規のものであったか否かを判定でき、その結果として不正なアクセスを受けたＩＣカードに適切な処理を講じることが可能となる。
【０２５７】
たとえば、上記第１の例のように、上記第４の不正検知処理を適用したＩＣカード１では、ログデータにおいて正規の処理手順で与えられるべきコマンドが省略されていた場合、不正なアクセスがあったことを判別できる。また、上記第２の例のように、上記第４の不正検知処理を適用したＩＣカード１では、ログデータにおいて正規の処理手順で与えられるべき各コマンドが不正な順序で与えられた場合、不正なアクセスがあったことを判別できる。
【０２５８】
また、上記第２の例のように、上記第４の不正検知処理を適用したＩＣカード１は、コマンドコード（命令の種類）だけでなく、処理パラメータで示される処理内容についても、正規の処理手順で与えられるべきコマンドの処理内容とログデータにおける受信コマンドの処理内容とが一致するか否かを判断する。これにより、コマンドコードが一致しても（つまり、同種のコマンドであっても）、処理内容（処理パラメータ）が一致しない場合、受信したコマンドが不正であったと判別し、不正なアクセスを受けたと判断できる。
【０２５９】
すなわち、上記第４の不正検知処理では、上記第２の例のように、処理パラメータを変更して不正にアクセスされたことを検出できる。たとえば、リードコマンドの処理パラメータを不正に変更して、不正に情報が読み出されたり、ライトコマンドの処理パラメータを不正に変更して、不正に情報を書込まれたりしたことを検出することができる。
【０２６０】
次に、上記ＩＣカード１に適用される第２の実施例としての第５の不正検知処理について説明する。  
ここで、この第５の不正検知処理では、上記第１の実施例で説明した図９に示すような正規処理情報Ｐ２に基づいてログデータにおける不正なアクセスが検出されるものとする。  
上記正規処理情報Ｐ２では、図９に示すように、各正規コマンドの内容として、図４に示すような各コマンドの種類（命令の種類）を示すコマンドコードと各コマンドの処理対象を示す処理パラメータとに加えて、各コマンドを受信すべきタイミングが規定されている。上記正規処理情報Ｐ２において、各コマンドを受信すべきタイミングは、各コマンドの間隔として許容される値で示されるものである。なお、上記正規処理情報Ｐ２は、上記正規処理情報Ｐ１と同様に、上記処理パラメータあるいはコマンドコードが複数の値で規定されていても良い。
【０２６１】
なお、上述したように、図９に示す正規処理情報Ｐ２の例では、説明を容易にするため、各コマンドの間隔を時間（秒数）の許容値で示している。各コマンドの間隔は、当該ＩＣカード１の動作クロックのクロック数で設定するのが好ましい。これは、通常、バッテリレスのＩＣカード１は、外部装置としてのＩＣカード処理装置２から与えられる動作クロックにより動作しているためである。また、図９に示す正規処理情報Ｐ２で規定される各コマンドの間隔（時間間隔）は、あるコマンドに対するレスポンス（当該コマンドに対する処理結果を示す応答）を送信してから次のコマンドを受信するまでの時間である。ただし、各コマンドの間隔は、ＩＣカード１があるコマンドを受信してから次のコマンドを受信するまでの時間間隔であっても良い。
【０２６２】
上記第５の不正検知処理では、上記のような正規処理情報Ｐ２で規定されている各コマンドの間隔に基づいて、ログデータにおける各コマンドの間隔が正当であるか否かを判定する。このため、第５の不正検知処理が適用されるＩＣカード１では、ログデータとして各コマンドの間隔を示す情報を記憶するようになっている。すなわち、第５の不正検知処理が適用されるＩＣカード１では、上述した取引処理などの一連の処理において、各コマンドに対するレスポンスを送信してから次のコマンドを受信するまでの時間（クロック数）を計時する。計時した各コマンドの間隔（受信した時間間隔）は、各コマンドの間隔を示す情報として、各コマンドの内容および処理結果とともに、ログデータとして保存されるようになっている。
【０２６３】
このようなログデータを保存したＩＣカード１では、図９に示すような正規処理情報Ｐ２とログデータとを比較することにより、ログデータにおける各コマンドが正当な手順、正当な処理内容、かつ、正当な受信タイミングであったか否かを判断する。つまり、上記第５の不正検知処理では、上記第４の不正検知処理と同様な各コマンドの内容と順序とが正当であるか否かの判定に加えて、各コマンドが正当な時間間隔で受信されたか否かを判定する。
【０２６４】
たとえば、ログデータにおける各コマンドの受信タイミングが上記正規処理情報Ｐ２に設定されている正当な受信タイミングでないと判断した場合、上記ＩＣカード１では、不正なアクセスであると判定する。また、不正なアクセスであったと判定した場合、上記ＩＣカード１では、エラー処理を行う。このエラー処理としては、上述したように、ログデータから不正なアクセスが検出されたことを外部へ通知するとともに、当該ＩＣカード１の一部または全部の機能を停止あるいは規制する処理が行われる。
【０２６５】
すなわち、図９に示すような正規処理情報Ｐ２が設定されている場合、当該ＩＣカード１では、ログデータにおける各受信コマンドの内容（種類及び処理内容）及び順序が正規処理情報Ｐ２で規定されている各正規コマンドの内容及び順序と一致しても、各受信コマンドが正規処理情報Ｐ２で規定されているタイミングで受信されたことを示すログデータでなければ、不正なアクセスを受けたものと判断するようになっている。
【０２６６】
次に、上記第５の不正検知処理の処理例について説明する。  
図２４は、第５の不正検知処理を説明するためのフローチャートである。なお、図２４に示す処理は、上述した図１８のステップＳ４０２〜Ｓ４０５に相当する処理であり、上記ＩＣカード１が起動（リセット）した直後に実行される。  
まず、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置２からの電波を受けて起動した場合、変数ｎを初期化（ｎ＝０）し（ステップＳ６００）、直前に実行された一連の処理に対応するログデータを読み込む（ステップＳ６０１）。次に、上記ＩＣカード１の制御素子１１は、変数ｎをｎ＋１とし（ステップＳ６０２）、当該ログデータにおけるリセット後のｎ番目の受信コマンドに関する情報と正規処理情報におけるｎ番目の正規コマンドに関する情報とを比較する（ステップＳ６０３）。
【０２６７】
当該ログデータにおけるｎ番目の受信コマンドの内容と正規処理情報におけるｎ番目の正規コマンドの内容とが一致すると判断した場合（ステップＳ６０４、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、さらに、ログデータとして記録されているｎ番目のコマンドを受信するまでの時間（クロック数）が正規処理情報Ｐ２で規定されているｎ番目のコマンドを受信するまでの許容時間Ｔ（ｎ−１）ｎ内であるか否かを判断する（ステップＳ６０５）。
【０２６８】
この判断によりｎ番目のコマンドを受信するまでの時間が許容時間Ｔ（ｎ−１）ｎ内であると判断した場合（ステップＳ６０５、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、ログデータにおける全ての受信コマンドと正規処理情報Ｐ１における各正規コマンドとの比較が完了したか否かにより、当該ログデータに対する不正アクセスの検出処理が完了したか否かを判断する（ステップＳ６０７）。この判断により不正アクセスの検出処理が完了したと判断するまで、上記ＩＣカード１の制御素子１１は、上記ステップＳ６０２へ戻り、上記ステップＳ６０２〜Ｓ６０７の処理を繰り返し実行する。
【０２６９】
また、上記ログデータにおけるｎ番目の受信コマンドの内容がｎ番目の正規コマンドの内容と一致しないと判断した場合（ステップＳ６０４、ＮＯ）、あるいは、上記ログデータにおけるｎ番目のコマンドを受信するまでの時間が許容時間Ｔ（ｎ−１）ｎ内でないと判断した場合（ステップＳ６０５、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ６０６）。このエラー処理としては、上述したように、たとえば、不正なアクセスを検知したことをＩＣカード処理装置２に通知したり、当該ＩＣカード１が有している一部の機能あるいは全部の機能を停止したりする。なお、上記エラー処理によってＩＣカード１が有している一部の機能あるいは全ての機能が停止（制限）された場合、当該ＩＣカード１は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
【０２７０】
次に、上記第５の不正検知処理によって検出される不正アクセスの例について説明する。  
図２５は、上記第５の不正検知処理によって検出される不正アクセスの例を説明するための図である。ここでは、図９に示すような正規処理情報Ｐ２が予めデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。また、図２５に示す例では、ログデータＬ３において４番目のコマンドを受信するまでの間隔が正規処理情報Ｐ２で規定されている許容時間Ｔ３４を超えている場合を想定する。
【０２７１】
上記第５の不正検知処理によれば、上記ＩＣカード１の制御素子１１は、１番目から順に、ログデータＬ３における各受信コマンドと正規処理情報Ｐ２における各正規コマンドとを比較する。すると、図２５に示すように、各受信コマンドの内容と各正規コマンドの内容とは一致する。しかし、４番目の受信コマンドを受信するまでの間隔は、正規処理情報Ｐ２で規定されている許容時間Ｔ３４を超えている。従って、上記ＩＣカード１の制御素子１１は、当該ログデータＬ３が示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
【０２７２】
上記のように、上記第５の不正検知処理を適用したＩＣカード１では、実行した一連の処理の内容を示すログデータにおいて、各コマンドが正規の手順で正規の内容が与えられている場合であっても、各コマンドを受信するまでの間隔が予め正規処理情報において規定されている所定の許容時間内でなければ、不正なアクセスがあったと判断する。  
これにより、上記第５の不正検知処理では、実行した各コマンドの内容および順序だけでなく、各コマンドが正当なタイミングで与えられたか否かによって不正なアクセスを検出できる。この結果として、外部装置が正規の制御プログラム以外の不正な制御プログラムなどを用いて複数のコマンドをＩＣカードに与えたような不正アクセスをログデータから検出することができる。
【０２７３】
次に、上記ＩＣカード１に適用される第２の実施例としての第６の不正検知処理について説明する。  
ここで、この第６の不正検知処理では、図１２に示すような正規処理情報Ｐ３（Ｐ３ａ、Ｐ３ｂ）に基づいてログデータにおける不正なアクセスが検出されるものとする。  
上記第６の不正検知処理では、前提条件として、当該ＩＣカード１のデータメモリ１４におけるデータテーブル１４ａに複数の正規処理情報Ｐ３ａ、Ｐ３ｂ、…が予め記憶されているものとする。各正規処理情報Ｐ３ａ、Ｐ３ｂは、それぞれ、図４あるいは図９に示すような構成を有している。各正規処理情報Ｐ３ａ、Ｐ３ｂは、当該ＩＣカード１が実行する種々の一連の処理に対応するものである。たとえば、種々の機能を実現するための複数のアプリケーションがデータメモリ１４に記憶されている場合、それらの各アプリケーションには、それぞれ正規処理情報Ｐ３ａ、Ｐ３ｂ、…が設定される。さらには、１つのアプリケーションにも、複数の正規処理情報が設定されるようにしても良い。
【０２７４】
上記第６の不正検知処理では、ログデータにおける各コマンドが正規コマンドとして規定されている正規処理情報が存在するか否かを判断する。この判断によりログデータにおける各コマンドの内容及び順序と一致する正規コマンドが規定されている正規処理情報が存在しないと判断した場合、上記ＩＣカード１では、不正なアクセスがあったと判定する。不正なアクセスがあったと判定した場合、上記ＩＣカード１では、ログデータから不正なアクセスが検出された旨を外部装置に通知し、一部または全部の機能を停止あるいは規制するエラー処理を行う。
【０２７５】
すなわち、図１２に示すような正規処理情報Ｐ３ａ、Ｐ３ｂがデータテーブル１４ａに記憶されている場合、上記ＩＣカード１は、１番目の受信コマンドがアプリケーションＡＰ１の選択要求であれば、当該ログデータについては、正規処理情報Ｐ３ａを用いて第４あるいは第５の不正検知処理と同様な不正検知処理を行う。また、１番目の受信コマンドがアプリケーションＡＰ２の選択要求であれば、上記ＩＣカード１は、当該ログデータについては正規処理情報Ｐ３ｂを用いて第４あるいは第５の不正検知処理と同様な不正検知処理を行う。
【０２７６】
次に、上記第６の不正検知処理の処理例について説明する。  
図２６は、第６の不正検知処理を説明するためのフローチャートである。なお、図２６に示す処理は、上述した図１８のステップＳ４０２〜Ｓ４０５に相当する処理であり、上記ＩＣカード１が起動（リセット）した直後に実行される。  
まず、上記ＩＣカード１の制御素子１１は、上記ＩＣカード処理装置２からの電波を受けて起動した場合、変数ｎを初期化（ｎ＝０）し（ステップＳ７００）、直前に実行された一連の処理に対応するログデータを読み込む（ステップＳ７０１）。次に、上記ＩＣカード１の制御素子１１は、変数ｎをｎ＋１とし（ステップＳ７０２）、当該ログデータにおけるリセット後のｎ番目の受信コマンドの内容と各正規処理情報におけるｎ番目の正規コマンドの内容とを比較する（ステップＳ７０３）。
【０２７７】
この比較結果に基づいて、上記ＩＣカード１の制御素子１１は、当該ログデータにおけるｎ番目の受信コマンドの内容と一致するｎ番目の正規コマンドが規定されている正規処理情報が存在するか否かを判断する（ステップＳ７０４）。なお、ここでは、後述するステップＳ７０５で選択された各正規処理情報におけるｎ番目の正規コマンドと当該ログデータにおけるｎ番目の受信コマンドの内容とが比較される。従って、上記判断では、後述するステップＳ７０５で選択された正規処理情報のうち当該ログデータにおけるｎ番目の受信コマンドの内容と一致するｎ番目の正規コマンドが規定されている正規処理情報が存在するか否かが判断される。
【０２７８】
上記判断によりｎ番目の受信コマンドの内容と一致するｎ番目の正規コマンドが規定されている正規処理情報が存在すると判断した場合（ステップＳ７０４、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、ｎ番目の受信コマンドと一致するｎ番目の正規コマンドが設定されている正規処理情報を選択する（ステップＳ７０５）。  
なお、ｎ番目の受信コマンドと一致するｎ番目の正規コマンドが設定されている正規処理情報が複数存在する場合、上記ＩＣカード１の制御素子１１は、それらの正規処理情報を候補として選択する。この結果として、上記ＩＣカード１の制御素子１１は、ログデータにおける各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報を順次絞り込むことができる。言い換えると、上記ステップＳ７０４では、１〜ｎ番目に受信したコマンドと一致する１〜ｎ番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する。これにより、一部に順序が同一の正規コマンドが規定されている正規処理情報が複数存在する場合であっても、上記ＩＣカード１では、順次、受信コマンドと一致する正規コマンドが設定されている正規処理情報が存在するか否かを判断できる。
【０２７９】
当該ログデータにおける各受信コマンドと一致する正規コマンドが規定されている正規処理情報を選択すると、上記ＩＣカード１の制御素子１１は、当該ログデータにおける全ての受信コマンドと選択されている正規処理情報における各正規コマンドとの比較が完了したか否かにより、当該ログデータに対する不正アクセスの検出処理が完了したか否かを判断する（ステップＳ７０７）。この判断により不正アクセスの検出処理が完了したと判断するまで、上記ＩＣカード１の制御素子１１は、上記ステップＳ７０２へ戻り、上記ステップＳ７０２〜Ｓ７０７の処理を繰り返し実行する。
【０２８０】
また、上記ログデータにおけるｎ番目の受信コマンドの内容と一致するｎ番目の正規コマンドが規定されている正規処理情報が存在しないと判断した場合（ステップＳ７０４、ＮＯ）、上記ＩＣカード１の制御素子１１は、一連の処理を中止し、エラー処理を行う（ステップＳ７０６）。このエラー処理としては、上述したように、たとえば、不正なアクセスを検知したことをＩＣカード処理装置２に通知したり、当該ＩＣカード１が有している一部の機能あるいは全部の機能を停止したりする。なお、上記エラー処理によってＩＣカード１が有している一部の機能あるいは全ての機能が停止（制限）された場合、当該ＩＣカード１は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
【０２８１】
次に、上記第６の不正検知処理によって検出される不正アクセスの例について説明する。  
図２７は、上記第６の不正検知処理によって検出される不正アクセスの例を説明するための図である。ここでは、図１２に示すような正規処理情報Ｐ３ａ、Ｐ３ｂが予めデータメモリ１４におけるデータテーブル１４ａに記憶されているものとする。第６の不正検知処理によれば、上記ＩＣカード１の制御素子１１は、１番目から順に、ログデータＬ４における各受信コマンドと一致する正規コマンドが規定される正規処理情報が存在するか否かを判断する。
【０２８２】
図２７に示すように、上記第６の不正検知処理が適用されたＩＣカード１は、ログデータＬ４における１番目の受信コマンドと一致する正規コマンドが規定されている正規処理情報として正規処理情報Ｐ３ｂを選択する。これは、ログデータＬ４における１番目の受信コマンドの処理パラメータ「ＡＰ２」が、正規処理情報Ｐ３ａにおける１番目の正規コマンドの処理パラメータ「ＡＰ１」と一致せず、正規処理情報Ｐ３ｂにおける１番目の正規コマンドの処理パラメータ「ＡＰ２」と一致するためである。この場合、ログデータにおける２番目以降の受信コマンドについては、正規処理情報Ｐ３ｂの各正規コマンドと一致するか否かが判断される。
【０２８３】
図２７に示すように、ログデータにおける２番目の受信コマンドは、処理パラメータが「鍵Ｋ１」となっている。これに対して、正規処理情報Ｐ３ｂの３番目の正規コマンドの処理パラメータは「鍵Ｋ２」となっている。従って、上記ＩＣカード１は、２番目の受信コマンドの内容が選択されている正規処理情報Ｐ３ｂの２番目の正規コマンドの内容と一致ないと判定する。これは、言い換えれば、２番目の受信コマンドと一致する正規処理情報が存在しないと判断するものである。従って、図２７に示す例では、上記ＩＣカード１の制御素子１１は、当該ログデータＬ４が示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
【０２８４】
上記のように、上記第６の不正検知処理を適用したＩＣカード１では、複数の正規処理情報が設定されている場合、実行した一連の処理の内容を示すログデータにおける各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報が存在するか否かを順次判定する。ログデータにおける各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報が存在しないと判定した場合、上記ＩＣカード１の制御素子１１は、当該ログデータから不正なアクセスが検出されたと判断する。  
これにより、上記第６の不正検知処理では、種々に処理に応じた複数の正規処理情報を記憶しておくことができ、複数の正規処理情報が記憶されている場合であっても、ログデータから不正なアクセスを検出できる。つまり、種々の機能を有するＩＣカードであっても、ログデータから処理内容が正当なものであるか否かを検知し、不正なアクセスを受けたことを検出することができる。
【０２８５】
なお、上記第６の不正検知処理は、上記第５の不正検知処理と組み合わせて実施することも可能である。つまり、上記のような第６の不正検知処理が適用される複数の正規処理情報において、図９に示すように、各コマンドに正規の受信タイミングを示す情報（許容時間）を設定するようにしても良い。この場合、上記ＩＣカード１は、ログデータにおける各受信コマンドの内容及び順序とともに、当該受信コマンドが正当なタイミングで受信されていたか否かを判断するようにすれば良い。この場合、種々の機能を有するＩＣカードであっても、ログデータから処理内容および受信タイミングが正当なものであるか否かを検知し、不正なアクセスを受けたことを検出することができる。
【０２８６】
上記のような第２の実施例が適用されるＩＣカードでは、外部からのコマンドに応じて実行した一連の処理の内容を示すログデータを保存しておき、次に起動した際に、ログデータにおける各受信コマンドの内容と正規処理情報における各正規コマンドの内容とを順に照合し、受信コマンドと正規コマンドとが一致しない場合、当該ログデータで示される一連の処理において不正なアクセスがあったことを検出する。
【０２８７】
これにより、第２の実施例によれば、ログデータから受信したコマンドの内容と順序とが予め規定されている正規のものであったか否かを判定でき、その結果として不正なアクセスを受けことをログデータから検出できるセキュリティ性の高いＩＣカードを提供できる。
【０２８８】
次に、一部あるいは全部の機能が制限（使用停止）されたＩＣカード１の機能を回復させるための回復処理について説明する。  
上述したように、上記第１の実施例としての第１、第２、第３の不正検知処理、あるいは、上記第２の実施例として説明した第４、第５、第６の不正検知処理により不正アクセスを検知した場合、上記ＩＣカード１は、エラー処理を行う。また、エラー処理では、上述したように、ＩＣカード１が有している一部あるいは全部の機能が制限（使用停止）される。機能の制限では、たとえば、特定の鍵情報を使用不能（ロック）としたり、当該機能を実現するためのアプリケーションの選択要求（セレクトコマンド）に応じた処理の実行を拒否したりする。
【０２８９】
このような機能が制限されたＩＣカード１は、所定の手続きによって制限された機能を使用可能な状態に回復させる回復処理を行う必要がある。制限された機能を回復させるのに必要な手続きは、当該ＩＣカード１の運用形態に応じて適宜決められる。ここでは、ＩＣカード１あるいはＩＣカード１における特定の機能を管理する管理者がユーザによる所定の手続きに応じて当該ユーザが所持するＩＣカード１の機能を回復させることを認めた場合に、管理者が操作するＩＣカード処理装置２によりＩＣカード１に回復処理を実行させることを想定する。
【０２９０】
図２８は、制限されているＩＣカード１の機能を回復させるための回復処理の例を説明するためのフローチャートである。なお、図２８に示すフローチャートは、機能が制限されているＩＣカード１における処理を示すものである。また、ここでは、上記ＩＣカード１は、機能の制限として、管理者鍵による認証要求以外のコマンドを受け付けない（実行を拒否する）ものとする。
【０２９１】
上記ＩＣカード処理装置２からの電波を受信したＩＣカード１は、上記電源部１６に生成された電源電圧およびクロックパルスが各部に供給され（ステップＳ８０１）、リセット処理を行う（ステップＳ８０２）。このリセット処理が完了すると、上記ＩＣカード１は、上記ＩＣカード処理装置２からのコマンドが受信可能な状態となる（ステップＳ８０３）。この状態において、上記ＩＣカード１の制御素子１１は、受信したコマンドが管理者鍵による認証要求のコマンドか否かを判断する（ステップＳ８０４）。上記のように機能が制限されているＩＣカード１では、管理者鍵による認証要求のコマンドのみを受け付けるようになっている。  
すなわち、上記判断により受信したコマンドが管理者鍵による認証要求以外のコマンドであると判断した場合（ステップＳ８０４、ＮＯ）、当該ＩＣカード１の制御素子１１は、管理者鍵による認証要求以外のコマンドに応じた処理の実行を拒否するようになっている（ステップＳ８０５）。
【０２９２】
また、上記判断により受信したコマンドが管理者鍵による認証要求のコマンドであると判断した場合（ステップＳ８０４、ＹＥＳ）、上記ＩＣカード１の制御素子１１は、当該コマンドに応じて管理者鍵による認証処理を実行する（ステップＳ８０６）。ここでは、この管理者鍵による認証処理は、回復処理の前に必ず実施されるものとする。つまり、上記管理者鍵による認証処理が成功することが、回復処理を実施するための条件となっているものとする。  
上記管理者鍵による認証処理が失敗した場合、上記ＩＣカード１の制御素子１１は、一連の処理を中止する。つまり、上記管理者鍵による認証処理が失敗した場合、上記ＩＣカード１の制御素子１１は、機能の回復を要求するコマンドに応じた回復処理の実行を拒否する。
【０２９３】
また、上記管理者鍵による認証処理が成功した場合、上記ＩＣカード１の制御素子１１は、機能の回復を要求するコマンドを受け付ける可能な状態となる。この状態において上記ＩＣカード処理装置２から機能の回復を要求するコマンドを受信した場合（ステップＳ８０８）、上記ＩＣカード１の制御素子１１は、当該コマンドに応じた機能を回復させるための回復処理を実行する（ステップＳ８０９）。このような回復処理が完了すると、上記ＩＣカード１は、制限されていた機能が使用可能な状態となる。
【０２９４】
さらなる特徴及び変更は、当該技術分野の当業者には着想されるところである。それ故に、本発明はより広い観点に立つものであり、特定の詳細な及びここに開示された体表的な実施例に限定されるものではない。従って、添付されたクレームに定義された広い発明概念及びその均等物の解釈と範囲において、そこから離れること無く、種々の変更をおこなうことができる。
【図面の簡単な説明】
【０２９５】
【図１】図１は、第１、第２の実施例に係るＩＣカードおよびＩＣカードを含むシステムの構成例を示すブロック図である。
【図２】図２は、非接触式ＩＣカードの全体の構成例を示す。
【図３】図３は、ＩＣカードにおける正当な処理の例を説明するためのフローチャートである。
【図４】図４は、正当な処理内容を示す情報としての正規処理情報の例を示す。
【図５】図５は、第２の実施例に係る第１の不正検知処理を説明するためのフローチャートである。
【図６】図６は、第１の不正検知処理により検知される不正アクセスの第１の例を説明するためのフローチャートである。
【図７】図７は、第１の不正検知処理により検知される不正アクセスの第２の例を説明するためのフローチャートである。
【図８】図８は、第１の不正検知処理により検知される不正アクセスの第３の例を説明するためのフローチャートである。
【図９】図９は、正当な各コマンドの受信間隔としての許容時間間隔を含む正規処理情報の例を示す。
【図１０】図１０は、第２の不正検知処理を説明するためのフローチャートである。
【図１１】図１１は、第２の不正検知処理により検知される不正アクセスの例を説明するためのフローチャートである。
【図１２】図１２は、各アプリケーションごとに設定される複数の正規処理情報の例を示す。
【図１３】図１３は、第３の不正検知処理を説明するためのフローチャートである。
【図１４】図１４は、第３の不正検知処理により検知される不正アクセスの例を説明するためのフローチャートである。
【図１５】図１５は、第１、第２、第３の不正検知処理に適用可能なコマンドの実行方法を説明するためのフローチャートである。
【図１６】図１６は、図１５のコマンドの実行方法が適用された一連の処理において不正なコマンドが検出されなった場合の処理例を説明するためのフローチャートである。
【図１７】図１７は、図１５のコマンドの実行方法が適用された一連の処理において不正なコマンドが検出された場合の処理例を説明するためのフローチャートである。
【図１８】図１８は、第２の実施例に係るＩＣカードの処理例を説明するためのフローチャートである。
【図１９】図１９は、エラー処理の例を説明するためのフローチャートである。
【図２０】図２０は、正当な取引処理とその取引処理のログデータの収集処理の例を説明するためのフローチャートである。
【図２１】図２１は、第４の不正検知処理を説明するためのフローチャート。
【図２２】図２２は、第４の不正検知処理により検出される不正アクセスの第１の例を示す。
【図２３】図２３は、第４の不正検知処理により検出される不正アクセスの第２の例を示す。
【図２４】図２４は、第５の不正検知処理を説明するためのフローチャートである。
【図２５】図２５は、第５の不正検知処理により検出される不正アクセスの例を示す。
【図２６】図２６は、第６の不正検知処理を説明するためのフローチャートである。
【図２７】図２７は、第６の不正検知処理により検出される不正アクセスの例を示す。
【図２８】図２８は、ＩＣカードにおいて制限されている機能を回復させる回復処理を説明するためのフローチャートである。
【図１】
2009540395.tif 000003
【図２】
2009540395.tif 000004
【図３】
2009540395.tif 000005
【図４】
2009540395.tif 000006
【図５】
2009540395.tif 000007
【図６】
2009540395.tif 000008
【図７】
2009540395.tif 000009
【図８】
2009540395.tif 000010
【図９】
2009540395.tif 000011
【図１０】
2009540395.tif 000012
【図１１】
2009540395.tif 000013
【図１２】
2009540395.tif 000014
【図１３】
2009540395.tif 000015
【図１４】
2009540395.tif 000016
【図１５】
2009540395.tif 000017
【図１６】
2009540395.tif 000018
【図１７】
2009540395.tif 000019
【図１８】
2009540395.tif 000020
【図１９】
2009540395.tif 000021
【図２０】
2009540395.tif 000022
【図２１】
2009540395.tif 000023
【図２２】
2009540395.tif 000024
【図２３】
2009540395.tif 000025
【図２４】
2009540395.tif 000026
【図２５】
2009540395.tif 000027
【図２６】
2009540395.tif 000028
【図２７】
2009540395.tif 000029
【図２８】
2009540395.tif 000030
【国際調査報告】
2009540395.tif 000031
2009540395.tif 000032