JP2009540395A - 携帯可能電子装置およびその制御方法 - Google Patents

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

Info

Publication number
JP2009540395A
JP2009540395A JP2008554955A JP2008554955A JP2009540395A JP 2009540395 A JP2009540395 A JP 2009540395A JP 2008554955 A JP2008554955 A JP 2008554955A JP 2008554955 A JP2008554955 A JP 2008554955A JP 2009540395 A JP2009540395 A JP 2009540395A
Authority
JP
Japan
Prior art keywords
command
processing
card
received
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008554955A
Other languages
English (en)
Inventor
哲 関谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of JP2009540395A publication Critical patent/JP2009540395A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10792Special measures in relation to the object to be scanned
    • G06K7/10801Multidistance reading
    • G06K7/10811Focalisation

Landscapes

  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

携帯可能電子装置は、正当な処理内容を示す情報が記憶されている記憶部を有する。前記携帯可能電子装置は、外部装置からの処理を要求するコマンドを受信部に受信し、受信したコマンドに応じて実行すべき処理内容が前記記憶部に記憶している処理内容と一致するか否かを判断する。この判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記携帯可能電子装置は、前記受信部により受信したコマンドに応じた処理を実行する。
【選択図】 図1

Description

本発明は、例えば、個人情報あるいは取引情報などが記憶されているICカードと称される携帯可能電子装置、および、その制御方法などに関する。
近年、ICカードなどの携帯可能電子装置は、様々な用途に利用されている。特に、ICカードには、個人情報や金銭的な取引情報などが記憶されることが多い。このようなICカードあるいはICカードを用いたシステムでは、高いセキュリティ性が求められており、不正なアクセスを防止する技術が求められている。
特開昭60−207957号公報(文献1)、あるいは、特開平11−282991号公報(文献2)には、ICカードに対するコマンドの種類と実行順とに基づいて不正なアクセスを検出する技術が記載されている。これらの技術では、正しいコマンドの種類(コマンド名)と実行順とをデータテーブルに記憶しておき、上記データテーブルに記憶していない順序で各種のコマンドが与えられた場合、または、上記処理テーブルに記憶されていない種類のコマンド(コマンド名)が与えられた場合、当該ICカードが、与えられたコマンドの実行を制限するものである。しかしながら、上記のような技術では、各コマンドによる処理内容についてはチェックされない。従って、各コマンドの処理内容が不正なものであっても、各コマンドをコマンド名ごとの所定の手順で与えれば、当該ICカードは、不正を検出することができずに、各コマンドを実行してしまうという問題がある。
また、近年のICカードは、多機能化されている。多機能化されたICカードでは、種々の処理(機能)を複数のアプリケーションにより実現している。これらのアプリケーションは、それぞれ異なる処理手順で種々の処理を実現する。したがって、複数のアプリケーションが動作する1つのICカードについては、従来の技術では、各アプリケーションごとの実行手順を制限することができないという問題点もある。
また、上記した従来の技術では、所定の手順で実行されている間、ICカードは、それらのコマンドに応じた処理を実施してしまう。従って、コマンド名による実行順序の不正を検出して処理を中止しても、それまでに実行された処理結果は、取り消すことができない。たとえば、所定の実行順序で与えられた書き込みコマンドに応じてメモリに記憶しているデータを書き換えてしまうと、その後のコマンドの実行順序で不正を検出しても、書き換えられたデータは、元に戻すことができない。つまり、従来の技術では、不正アクセスを検知する前に、データが改ざんされてしまう可能性があるという問題点がある。
特に、上位装置との無線通信により種々の処理を実行する非接触式ICカード(contactless IC card)では、ユーザが気がつかないまま不正なアクセスを受ける可能性がある。これは、ユーザが適切にICカードを管理している場合であっても、ユーザに認識されないように、悪意のある第3者が、無線通信により当該ICカードにアクセスする可能性があるためである。
また、上記ICカードでは、装置自体の大きさなどに制限がある。このため、上記ICカードでは、不揮発性メモリとして内蔵しているEEPROMあるいはフラッシュメモリが低速かつ小容量である。すなわち、ICカードでは、一般のコンピュータなどの情報処理装置と同様に、ハードディスク装置あるいは大容量の不揮発性メモリを用いた不正アクセスの検出処理を実施するのが困難である。
また、WO 01/022359(文献3)には、ICカード上に不正なアクセスがあったことを示す情報を表示する技術が記載されている。しかしながら、文献3の技術では、ICカードには、カード上に表示を行うための特別な回路及び部品が必要となる。また、ICカード上に不正なアクセスがあったことを示す情報を表示しても、ユーザ自身が気づかない可能性もある。さらには、ICカード上に不正なアクセスがあったことを示す情報を表示しても、不正のアクセスの内容を精査することは困難である。
この発明の一形態は、セキュリティ性が高い携帯可能電子装置およびその制御方法を提供することを目的とする。
この発明の一形態としての携帯可能電子装置は、正当な処理内容を示す情報を記憶する記憶部と、外部装置からの処理を要求するコマンドを受信する受信部と、この受信部により受信したコマンドに応じて実行すべき処理内容が前記記憶部に記憶している処理内容と一致するか否かを判断する判断部と、前記判断部により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する実行部とを有する。
この発明の一形態としての携帯可能電子装置は、正規の一連の処理内容を示す正規処理情報が予め記憶されている第1の記憶部と、外部装置からのコマンドを受信する受信部と、この受信部により受信したコマンドに応じた処理を実行する実行部と、この実行部により前記受信部にて受信したコマンドに応じて実行した処理内容を示す履歴情報を記憶する第2の記憶部と、前記第1の記憶部に記憶されている正規の処理内容を示す情報に基づいて、この第2の記憶部に記憶されている履歴情報から不正なアクセスを検出する検出部とを有する。
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置からの処理を要求するコマンドを受信し、この受信したコマンドに応じて実行すべき処理内容が記憶部に記憶している正当な処理内容を示す情報と一致するか否かを判断し、この判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信したコマンドに応じた処理を実行する。
この発明の一形態としての携帯可能電子装置の制御方法は、外部装置からのコマンドを受信し、受信したコマンドに応じた処理を実行し、前記受信したコマンドに応じて実行した処理内容を示す履歴情報を第2の記憶部に記憶し、第1の記憶部に予め記憶されている正規の一連の処理内容を示す正規処理情報に基づいて、前記第2の記憶部に記憶されている履歴情報から不正なアクセスを検出する。
本発明の他の目的及び利点は、以下の明細書に記載され、その一部は該開示から自明であるか、又は本発明の実行により得られるであろう。本発明の該目的及び利点は、ここに特に指摘される手段と組み合わせにより実現され、得られる。
以下、この発明に係る第1および第2の実施例について図面を参照しつつ説明する。
図1は、第1および第2の実施例に係る携帯可能電子装置としてのICカード1およびICカード1を含むICカードシステムの構成例を示すブロック図である。
上記ICカード1は、外部装置としてのICカード処理装置2からの電源供給により動作可能な状態となる。動作可能となったICカード1は、上記ICカード処理装置2からのコマンドに応じて種々の処理を行う。上記ICカード処理装置2は、ICカード1を動作させるための電源を供給するとともに、当該ICカード1に対して種々の処理を要求するコマンドを供給する。上記ICカード処理装置2がICカード1に対して供給するコマンドは、用途あるいは運用形態などに応じた処理を要求するものである。
また、上記ICカード1は、アンテナあるいは無線通信部等により上記ICカード処理装置2と非接触の状態で無線通信を行う非接触式の携帯可能電子装置(非接触式ICカード)であっても良し、上記ICカード処理装置2と物理的或いは電気的に接触して通信を行う接触式の携帯可能電子装置(接触式ICカード)であっても良い。さらには、上記ICカード1は、非接触式ICカードとしての通信機能と接触式ICカードとしての通信機能とを有する複合型のICカード(デュアルインターフェースICカード)であっても良い。なお、第1および第2の実施例では、主に、非接触式ICカードを想定して説明する。非接触式ICカードと接触式ICカードとはICカード処理装置2との通信方式等が異なるだけである。このため、以下に説明する実施例は、接触式ICカードにも同様に適用できる。
上記ICカード1の構成例について説明する。
図1に示すように、上記ICカード1は、制御素子11、プログラムメモリ12、ワーキングメモリ13、データメモリ14、通信制御部15、電源部16、および、アンテナ(インターフェース)17などにより構成される。
また、上記ICカード1は、カード状の本体により構成される。上記ICカード1を形成するカード状の本体には、1つ(あるいは複数)のICチップ1aとアンテナ17とが埋設される。上記ICチップ1aは、制御素子11、プログラムメモリ12、ワーキングメモリ13、データメモリ14、通信制御部15および電源部16などにより構成される。上記ICチップ1aは、上記アンテナ17に接続された状態でモジュール化され、当該ICカード1を形成するカード状の本体内に埋設される。たとえば、図2は、非接触式ICカード全体の構成例を示す図である。図2に示す非接触式ICカードは、カード状の本体Cを有している。この本体C内には、図2に点線で示すように、1つ(あるいは複数)のICチップ1aとアンテナ17とを有するモジュールMが埋め込まれている。
上記制御素子11は、ICカード1全体の制御を司るものである。上記制御素子11は、上記プログラムメモリ12あるいはデータメモリ14に記憶された制御プログラムおよび制御データなどに基づいて動作する。上記制御素子11は、基本的な動作を司る制御プログラムを実行することにより、外部装置から与えられるコマンドに応じた処理を実行する。たとえば、外部装置から上記データメモリ14へのデータの書込みを要求するコマンドが与えられれば、上記制御素子11は、上記データメモリ14へのデータの書き込み処理を実行する。また、外部装置から上記データメモリ14に記憶されているデータの読み出しを要求するコマンドが与えられれば、上記制御素子11は、上記データメモリ14からのデータの読み出し処理を実行する。さらに、上記制御素子11は、当該ICカード1の用途などに応じてインストールされる処理プログラムを実行することにより、用途に応じた処理を実現するようになっている。
上記プログラムメモリ12は、読み出し専用のメモリ(ROM:リードオンリーメモリ)により構成される。上記プログラムメモリ12には、予め基本動作を司る制御プログラムおよび制御データなどが記憶されている。上記プログラムメモリ12には、予め当該ICカード1の仕様に応じた制御プログラム及び制御データが記憶される。たとえば、上記制御素子11は、上記プログラムメモリ12に記憶される制御プログラムにより外部から与えられるコマンドに応じた処理を実現する。
上記ワーキングメモリ13は、揮発性のメモリ(RAM;ランダムアクセスメモリ)により構成される。上記ワーキングメモリ13は、データを一時保管するバッファメモリとして機能する。例えば、上記ワーキングメモリ13には、ICカード処理装置(外部装置)2との通信処理において、送受信されるデータが一時的に保管される。また、上記ワーキングメモリ13には、種々の書込みデータなどを一時的に保持するメモリとしても利用される。
上記データメモリ(不揮発性メモリ)14は、データの書き込みが可能な不揮発性のメモリである。上記データメモリ14は、例えば、EEPROMあるいはフラッシュメモリなどにより構成される。上記データメモリ14には、当該ICカード1の使用目的に応じたアプリケーション(処理プログラムおよび運用データなど)が記憶される。当該ICカード1が複数の使用目的に使用される場合、上記データメモリ14には、各使用目的に応じた複数のアプリケーションが記憶される。また、当該ICカード1の使用目的に応じたアプリケーションは、上記データメモリ14上に定義された使用目的ごとのプログラムファイルおよびデータファイルなどの各ファイルに記憶される。このようなファイル構造は、たとえば、ISO/IEC7816−4に基づくものである。つまり、上記ICカード1のデータメモリ14には、種々のアプリケーションおよび種々の運用データが記憶可能である。
また、上記データメモリ14には、種々の設定データなども記憶される。これらの設定データは、上記データメモリ14に書き換えできない状態で書き込むようにしても良い。図1に示す構成例では、上記データメモリ14には、正規処理情報P(P1、P2、P3、P4)を記憶するためのデータテーブル14aが設けられている。上記データテーブル14aに記憶される正規処理情報Pは、実行する一連の処理が正当な処理であるか否かを判定するための情報である。
たとえば、上記データテーブル14aに記憶される正規処理情報Pでは、一連の処理における各コマンドについて、実行順序(受信順序)、コマンドの種類(コマンドコード)、処理内容(処理パラメータ)、および、受信すべきタイミングなどを示す情報が含まれる。また、上記データテーブル14aには、各アプリケーションごとに、上記のような正規処理情報Pが記憶される。さらに、上記データテーブル14aには、各アプリケーションに対して、複数の正規処理情報Pを記憶するようにしても良い。なお、上記データテーブル14aに記憶される正規処理情報P(P1、P2、P3、P4)については、後で詳細に説明する。
また、上記データメモリ14には、外部から与えられたコマンドと外部からのコマンドに応じて当該ICカード1が実行した一連の処理内容とを示す履歴情報(ログデータ)を記憶するようになっている。このようなデータメモリ14に記憶されるログデータ(以下、単にログとも称する)については、後述する第2の実施例で詳細に説明する。
さらに、上記データメモリ14には、外部からの不正アクセス(外部から与えられたコマンド群が不正)であると判断した場合、その内容を示すエラー履歴情報なども記録されるようにしても良い。
上記通信制御部15は、上記アンテナ17を介して外部装置(たとえば、ICカード処理装置2)とのデータ通信を制御するものである。外部装置からデータを受信する場合、上記通信制御部15は、上記アンテナ17により受信した電波としての送信データを復調し、復調した信号を上記制御素子11に供給する。また、外部装置へデータを送信する場合、上記通信制御部15は、上記制御素子11から与えられるデータを変調し、変調したデータを上記アンテナ17により電波として発信する。なお、接触式ICカードでは、アンテナ17の代わりに、外部装置のコンタクト部と物理的に接触するインターフェースを介して外部装置とのデータ通信を行う。
上記電源部16は、上記アンテナ17により受信した電波から当該ICカード1の各部を動作させるための電源およびクロックパルスを生成する。上記電源部16は、上記アンテナ17により受信した電波から生成した電源電圧およびクロックパルスを各部に供給するようになっている。また、上記電源部16からの電源供給により起動した場合、上記制御素子11は、当該ICカード1の処理状態をリセットする処理を行うようになっている。なお、接触式ICカードでは、インターフェースを介して外部装置から直接的に供給される電源およびクロックパルスにより各部が動作するようになっている。
次に、上記ICカード処理装置2について説明する。
上記ICカード処理装置2は、図1に示すように、制御装置21およびカードリーダライタ22を有している。上記制御装置21は、パーソナルコンピュータ(PC)などにより構成される。上記制御装置21は、CPUなどの演算処理部、RAM、ROM、不揮発性メモリおよびハードディスクドライブなどの各種メモリ、通信インターフェースなどの各種インターフェースなどにより構成される。上記制御装置21では、上記演算処理部がメモリに記憶されている各種の制御プログラムを実行することにより各種の処理を実現している。また、上記制御装置21は、ICカード1とのデータ通信を行う上記カードリーダライタ22とのデータの入出力を行うようになっている。
たとえば、上記制御装置21には、上記ICカード1を用いた各種の処理に応じた制御プログラムが予め記憶されている。上記制御装置21では、上記のような制御プログラムを実行することにより上記ICカード1を用いた各種の処理を実行する。たとえば、上記ICカード1を用いた各種の処理において、上記制御装置21は、所定のコマンドを所定の手順で供給する。上記制御装置21では、上記のような各コマンドに対するICカード1からの各レスポンス(コマンドに対する処理結果等を示す情報)に基づいて各種の処理を行うようになっている。
上記カードリーダライタ22は、上記ICカード1とのデータ通信を行う通信手段として機能する。上記カードリーダライタ22は、上記ICカード1の通信方式に応じた通信方式によるデータ通信を行うためのものである。つまり、上記カードリーダライタ22を介して制御装置21は、上記ICカード1とのデータ通信を実現している。
上記ICカード1が非接触型のICカードである場合、上記カードリーダライタ22は、上記ICカード1との無線によるデータ通信を行うためのアンテナおよび通信制御部(変復調回路等)などにより構成される。非接触型のICカード1へデータを送信する場合、上記カードリーダライタ22では、通信制御部により上記制御装置21から与えられる送信データを変調し、変調した信号を電波としてアンテナにより発信する。また、非接触型のICカード1からデータを受信する場合、上記カードリーダライタ22では、アンテナにより受信した電波としての信号を通信制御部により復調し、復調したデータを受信データとして上記制御装置21へ供給する。また、上記カードリーダライタ22では、上記のようなデータの送受信とともに、上記ICカード1を動作させるための電源およびクロックパルスとなる電波をアンテナにより発信するようになっている。
また、上記ICカード1が接触型のICカードである場合、上記カードリーダライタ22は、ICカード1と物理的に接触してデータ通信を行うためのコンタクト部および通信制御部などにより構成される。接触型のICカードとのデータの送受信を行う場合、上記カードリーダライタ22では、上記コンタクト部がICカード1側に設けられているコンタクト部と物理的に接触して各種のデータ通信を行う。また、上記カードリーダライタ22では、ICカード1に物理的に接触しているコンタクト部を介して当該ICカード1に対して電源およびクロックパルスを供給するようになっている。
次に、上記ICカード1における処理について概略的に説明する。
上記ICカード1では、上記ICカード処理装置2から順次供給されるコマンドに応じて一連の処理を実行するようになっている。また、上記ICカード処理装置2では、所定の処理手順に応じて、所定の順序で所定の処理内容のコマンドを上記ICカード1に順次供給する。これらのコマンドに対して、上記ICカード1では、各コマンドに応じた処理を行って、その処理結果を上記ICカード処理装置2に返すようになっている。
たとえば、ICカード1を用いて金銭的な取引を行う処理(取引処理)を行う場合、上記ICカード処理装置2は、当該取引処理の所定の処理手順(つまり、当該取引処理のための所定の制御プログラム)に基づいて、所定のコマンドを順次ICカード1に供給する。上記ICカード処理装置2から順次供給される各コマンドに対しては、上記ICカード1では、各コマンドに応じた処理を順次実行する。これにより、上記ICカード処理装置2と上記ICカード1とは、上記取引処理を実現している。
また、上記ICカード1には、上記ICカード処理装置2から要求される一連の処理に応じたアプリケーション(処理プログラムおよび運用データ等)が予め当該ICカード1内のメモリ(たとえば、データメモリ14)に記憶されている。上記ICカード1内のメモリに記憶されているアプリケーションは、上記ICカード1の使用目的に応じた種々の機能を実現させるものである。従って、種々の機能を実現するICカード1では、複数のアプリケーションが当該ICカード1内のメモリに記憶されていることもある。
次に、ICカード1が、所定の処理手順で所定の処理内容の処理を順次行うことにより実現する一連の処理の例について説明する。
ここでは、上記のような一連の処理の具体例として、金銭的な取引を行う処理(取引処理)について説明する。また、上記ICカード1では、上記アプリケーションAP1により上記取引処理を実現しているものとする。
上述したように取引処理は、所定の処理手順で所定の処理内容の処理を行うようになっている。このため、正当な取引処理では、上記ICカード処理装置2が上記ICカード1に対して、所定のコマンドを所定の順序で供給するようになっている。言い換えれば、当該取引処理において所定のコマンドが所定の順序で供給されれば、上記ICカード処理装置2は、上記ICカード1に対して正当なアクセスを行っていると判定できる。これに対して、当該取引処理において所定のコマンドが所定の順序で供給されていなければ、上記ICカード処理装置2は、上記ICカード1に対して不正なアクセスを行っていると判定できる。
ここで、ICカード1が、正当な手順で取引処理を実行する場合の流れについて説明する。
図3は、上記ICカード1がアプリケーションAP1により実行する正当な取引処理の例を説明するためのフローチャートである。
ここで、正当な取引処理では、ICカード1は、アプリケーションAP1の選択処理、鍵情報K1による認証処理、第1の情報D1の読出処理、第2の情報D2の読出処理、第3の情報D3の読出処理、第4の情報D4の書込処理を順に実行するものとする。この場合、ICカード1には、ICカード処理装置2から、アプリケーションAP1の選択を要求する「セレクト(選択)」コマンドC1、鍵情報K1による認証を要求する「ベリファイ(認証)」コマンドC2、第1の情報D1の読出を要求する「リード」コマンドC3、第2の情報D2の読出を要求する「リード」コマンドC4、第3の情報D3の読出を要求する「リード」コマンドC5、および、第4の情報D4の書込を要求する「ライト」コマンドC6が順に供給される。
まず、上記ICカード処理装置2では、待機状態において、ICカード1に対する応答要求信号として、ICカード1が動作するための電源およびクロックパルスを電波として上記カードリーダライタ22から発信している。
上記のような状態のICカード処理装置2のカードリーダライタ22の通信圏内に上記ICカード1が提示されると、当該ICカード1は、上記アンテナ17により上記ICカード処理装置2からの応答要求信号としての電波を受信する。上記アンテナ17により受信した電波は、上記電源部16により当該ICカード1が動作するための電源電圧およびクロックパルスに変換される。上記電源部16は、受信した電波から生成した電源電圧およびクロックパルスを当該ICカード1内の各部に供給する(ステップS1)。これにより、当該ICカード1は、動作可能な状態となる。
動作可能な状態となったICカード1の制御素子11は、まず、各部をリセットする処理を行う(ステップS2)。リセット処理が完了すると、当該ICカード1の制御素子11は、処理可能な状態となったことを示すレスポンスをICカード処理装置2へ送信する。
上記ICカード処理装置2では、ICカード1からのレスポンスとしての電波を上記カードリーダライタ22により受信する。上記カードリーダライタ22によりICカード1からのレスポンスを受信すると、上記ICカード処理装置2の制御装置21は、当該取引処理を実行するためのアプリケーションとしてアプリケーションAP1の選択を要求するコマンド(セレクトコマンド)C1をICカード1に対して送信する。
上記セレクトコマンドC1のコマンドコードは、「アプリケーション(カレントディレクトリ)の選択を要求するコマンド」であること示す情報である。また、上記セレクトコマンドC1の処理パラメータには、「選択する対象がアプリケーションAP1(アプリケーションAP1のディレクトリ)」を示す情報が含まれる。
上記セレクトコマンドC1を受信すると、上記ICカード1では、当該コマンドで指定されるアプリケーションを選択するアプリケーション選択処理を行う(ステップS3)。上記ICカード処理装置2からのコマンドを受信したICカード1の上記制御素子11は、受信したコマンドに含まれるコマンドコードに基づいてコマンドの種類を判別し、受信したコマンドC1に含まれる処理パラメータに基づいて処理内容(処理対象)を判別する。ここでは、上記ICカード1の制御素子11は、受信したセレクトコマンドC1のコマンドコードと処理パラメータとによりアプリケーションAP1を選択することがICカード処理装置2から要求されたことを認識する。従って、上記セレクトコマンドC1を受信すると、当該ICカード1の上記制御素子11は、アプリケーションAP1を選択する処理(アプリケーション選択処理)を行う。
上記アプリケーション選択処理によりアプリケーションAP1を選択すると、上記制御素子11は、ICカード処理装置2に対してアプリケーションAP1を選択したことを示すレスポンス(セレクトコマンドC1に対する処理結果等を示すレスポンス)を送信する。なお、上記アプリケーション選択処理により上記アプリケーションAP1の選択ができなかった場合(つまり、アプリケーション選択処理がエラーとなった場合)、上記制御素子11は、上記ICカード処理装置2に対してアプリケーションAP1の選択が失敗したことを示すレスポンス(セレクトコマンドC1に対する処理結果等を示すレスポンス)を送信する。
上記セレクトコマンドC1に対するレスポンスとして上記アプリケーションAP1を選択したことを示すレスポンスを受信した場合、上記ICカード処理装置2の制御装置21では、上記アプリケーション選択処理に続く所定の処理として、鍵情報K1を使用した認証処理をICカード1に要求する。上記鍵情報K1は、アプリケーションAP1に対応する認証情報である。
すなわち、上記ICカード処理装置2の制御装置21は、当該ICカード1のアプリケーションAP1に対応づけられている鍵情報K1に基づく認証処理を要求するコマンド(ベリファイコマンド)C2をICカード1へ送信する。上記ベリファイコマンドC2は、コマンドコードが認証要求であることを示す情報である。また、上記ベリファイコマンドC2の処理パラメータには、暗号化された鍵情報K1などが含まれる。
上記のようなベリファイコマンドC2を受信したICカード1では、上記鍵情報K1を使用した認証処理(鍵の照合処理)を行う(ステップS4)。上記ICカード処理装置2からのベリファイコマンドC2を受信した場合、上記ICカード1の上記制御素子11は、受信したベリファイコマンドC2のコマンドコードと処理パラメータとにより、上記鍵情報K1による認証処理がICカード処理装置2から要求されたことを認識する。従って、上記ベリファイコマンドC2を受信すると、当該ICカード1の上記制御素子11は、上記ベリファイコマンドC2の処理パラメータに含まれる鍵情報K1を照合する処理(認証処理)を行う。
上記認証処理により上記鍵情報K1による認証処理が成功すると、上記制御素子11は、ICカード処理装置2に対して上記鍵情報K1による認証が成功したことを示すレスポンス(ベリファイコマンドC2に対する処理結果等を示すレスポンス)を送信する。また、上記認証処理により上記鍵情報K1による認証が失敗した場合、上記制御素子11は、上記ICカード処理装置2に対して上記鍵情報K1による照合が失敗したことを示すレスポンス(ベリファイコマンドC2に対する処理結果等を示すレスポンス)を送信する。
上記ベリファイコマンドC2に対するレスポンスとして上記鍵情報K1による認証が成功したことを示すレスポンスを受けた場合、上記ICカード処理装置2の制御装置21では、上記認証処理に続く所定の処理として、第1の情報(例えば、カード番号)D1の読出処理をICカード1に要求する。上記第1の情報D1は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として保持している情報である。
すなわち、上記ICカード処理装置2の制御装置21は、当該ICカード1のアプリケーションAP1に対応づけられている第1の情報D1の読み出しを要求するコマンド(リードコマンド)C3をICカード1へ送信する。上記リードコマンドC3は、コマンドコードがデータの読出し要求であることを示す情報である。また、上記リードコマンドC3の処理パラメータには、読出しの対象となるデータが第1の情報D1であることを示す情報などが含まれる。
上記のようなリードコマンドC3を受信したICカード1では、第1の情報D1を読み出す処理(第1の読出処理)を行う(ステップS5)。上記ICカード処理装置2からのリードコマンドC3を受信した場合、上記ICカード1の上記制御素子11は、受信したリードコマンドC3のコマンドコードと処理パラメータとにより、上記第1の情報D1読出処理がICカード処理装置2から要求されたことを認識する。従って、上記リードコマンドC3を受信すると、当該ICカード1の上記制御素子11は、上記リードコマンドC3の処理パラメータで指定される第1の情報D1を読み出す処理(第1の読出処理)を行う。
上記第1の読出処理により第1の情報D1を読み出すと、上記ICカード1の制御素子11は、ICカード処理装置2に対して上記第1の情報として読み出した情報を含むレスポンス(リードコマンドC3に対する処理結果等を示すレスポンス)を送信する。なお、上記第1の読出処理により上記第1の情報が読み出させなかった場合、上記制御素子11は、上記ICカード処理装置2に対して第1の情報の読出しが失敗したことを示すレスポンス(リードコマンドC3に対する処理結果等を示すレスポンス)を送信する。
上記リードコマンドC3に対するレスポンスとして上記第1の情報D1の読出しが成功したことを示すレスポンス(読み出した第1の情報D1を含むレスポンス)を受けた場合、上記ICカード処理装置2の制御装置21では、上記第1の読出処理に続く所定の処理として、第2の情報(例えば、氏名)D2の読出処理をICカード1に要求する。上記第2の情報D2は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として保持している情報である。
すなわち、上記ICカード処理装置2の制御装置21は、当該ICカード1のアプリケーションAP1に対応づけられている第2の情報D2の読み出しを要求するコマンド(リードコマンド)C4をICカード1へ送信する。上記リードコマンドC4は、コマンドコードがデータの読出し要求であることを示す情報である。また、上記リードコマンドC4の処理パラメータには、読出しの対象となるデータが第2の情報D2であることを示す情報などが含まれる。
上記のようなリードコマンドC4を受信したICカード1では、第2の情報D2を読み出す処理(第2の読出処理)を行う(ステップS6)。上記ICカード処理装置2からのリードコマンドC4を受信した場合、上記ICカード1の上記制御素子11は、受信したリードコマンドC4のコマンドコードと処理パラメータとにより、上記第2の情報D2読出処理がICカード処理装置2から要求されたことを認識する。従って、上記リードコマンドC4を受信すると、当該ICカード1の上記制御素子11は、上記リードコマンドC4の処理パラメータで指定される第2の情報D2を読み出す処理(第2の読出処理)を行う。
上記第2の読出処理により第2の情報D2を読み出すと、上記制御素子11は、ICカード処理装置2に対して上記第2の情報として読み出した情報を含むレスポンス(リードコマンドC4に対する処理結果等を示すレスポンス)を送信する。なお、上記第2の読出処理により上記第2の情報が読み出させなかった場合、上記制御素子11は、上記ICカード処理装置2に対して第2の情報の読出しが失敗したことを示すレスポンス(リードコマンドC4に対する処理結果等を示すレスポンス)を送信する。
上記リードコマンドC4に対するレスポンスとして上記第2の情報D2の読出しが成功したことを示すレスポンス(読み出した第2の情報D2を含むレスポンス)を受けた場合、上記ICカード処理装置2の制御装置21では、上記第2の読出処理に続く所定の処理として、第3の情報(例えば、有効期限)D3の読出処理をICカード1に要求する。上記第3の情報D3は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として保持している情報である。
すなわち、上記ICカード処理装置2の制御装置21は、当該ICカード1のアプリケーションAP1に対応づけられている第3の情報D3の読み出しを要求するコマンド(リードコマンド)C5をICカード1へ送信する。上記リードコマンドC5は、コマンドコードがデータの読出し要求であることを示す情報である。また、上記リードコマンドC5の処理パラメータには、読出しの対象となるデータが第3の情報D3であることを示す情報などが含まれる。
上記のようなリードコマンドC5を受信したICカード1では、第3の情報D3を読み出す処理(第3の読出処理)を行う(ステップS7)。上記ICカード処理装置2からのリードコマンドC5を受信した場合、上記ICカード1の上記制御素子11は、受信したリードコマンドC5のコマンドコードと処理パラメータとにより、上記第3の情報D3読出処理がICカード処理装置2から要求されたことを認識する。従って、上記リードコマンドC5を受信すると、当該ICカード1の上記制御素子11は、上記リードコマンドC5の処理パラメータで指定される第3の情報D3を読み出す処理(第3の読出処理)を行う。
上記第3の読出処理により第3の情報D3を読み出すと、上記制御素子11は、ICカード処理装置2に対して上記第3の情報として読み出した情報を含むレスポンス(リードコマンドC5に対する処理結果等を示すレスポンス)を送信する。なお、上記第3の読出処理により上記第3の情報が読み出させなかった場合、上記制御素子11は、上記ICカード処理装置2に対して第3の情報の読出しが失敗したことを示すレスポンス(リードコマンドC5に対する処理結果等を示すレスポンス)を送信する。
上記リードコマンドC5に対するレスポンスとして上記第3の情報D3の読出しが成功したことを示すレスポンス(読み出した第3の情報D3を含むレスポンス)を受信した場合、上記ICカード処理装置2の制御装置21では、上記第3の読出処理に続く所定の処理として、第4の情報(例えば、取引金額情報)D4の書込み処理をICカード1に要求する。上記第4の情報D4は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として書き込まれる情報である。
すなわち、上記ICカード処理装置2の制御装置21は、当該ICカード1のアプリケーションAP1に対応づけられている第4の情報D4の書き込みを要求するコマンド(ライトコマンド)C6をICカード1へ送信する。上記ライトコマンドC6は、コマンドコードがデータの書き込み要求であることを示す情報である。また、上記ライトコマンドC6の処理パラメータには、書き込みの対象となるデータが第4の情報D4であることを示す情報などが含まれる。
上記のようなライトコマンドC6を受信したICカード1では、第4の情報D4を書き込む処理(書込処理)を行う(ステップS8)。上記ICカード処理装置2からのライトコマンドC6を受信した場合、上記ICカード1の上記制御素子11は、受信したライトコマンドC6のコマンドコードと処理パラメータとにより、上記第4の情報D4をデータメモリ14に書き込む処理がICカード処理装置2から要求されたことを認識する。従って、上記ライトコマンドC6を受信すると、当該ICカード1の上記制御素子11は、上記ライトコマンドC6の処理パラメータで指定される第4の情報D4をデータメモリ14に書き込む処理(書込処理)を行う。
上記書込処理により第4の情報D4をデータメモリ14に書き込むと、上記制御素子11は、ICカード処理装置2に対して上記第4の情報の書込みが成功したことを示すレスポンス(ライトコマンドC6に対する処理結果等を示すレスポンス)を送信する。なお、上記書込処理により上記第4の情報が書き込めなかった場合、上記制御素子11は、上記ICカード処理装置2に対して第4の情報の書込みが失敗したことを示すレスポンス(ライトコマンドC6に対する処理結果等を示すレスポンス)を送信する。
上記ライトコマンドC6に対するレスポンスとして上記第4の情報D4の書込みが成功したことを示すレスポンスを受信した場合、上記ICカード処理装置2の制御装置21では、当該ICカード1に対する一連の取引処理が正常に終了したものと判断する。また、各コマンドC1〜C6に対するレスポンスとして、コマンドに対する処理が正常に終了できなかった旨のレスポンスを受信した場合、上記ICカード処理装置2の制御装置21では、当該ICカード1に対する一連の取引処理がエラーとなったものと判断する。なお、上記のようなエラーが発生した場合、上記ICカード処理装置2の制御装置21は、一連の取引処理を最初から再度実行するか、あるいは、一連の取引処理を中止するようにすれば良い。
上記のように、アプリケーションAP1による正当な一連の取引処理では、上記ICカード1には、所定の複数のコマンドが所定の順序で順次供給される。従って、アプリケーションAP1による一連の取引処理において、所定の処理内容を要求する各コマンドが所定の順序でICカードに与えられていなければ、不正な処理が外部装置から要求されている可能性が高いと判断できる。
以下、上記のようなICカード1に適用される第1、第2の実施例について説明する。
後述する第1の実施例では、ICカード1が、上述したような正規の処理手順および正規の処理内容などを示す正規処理情報を予めデータテーブルに記憶しておき、その正規処理情報と受信した各コマンドの内容とを比較することにより、不正なアクセスを検知するようになっている。
また、後述する第2の実施例では、ICカード1が、一連の処理ごとに受信したコマンドと処理内容とをログデータとして記憶しておき、上記データテーブルに予め記憶されている正規処理情報と上記ログデータとを比較することにより、不正なアクセスを検知するようになっている。
まず、第1の実施例について説明する。
第1の実施例では、上記ICカード1が、外部装置(ICカード処理装置2)からの不正なアクセスを検知するための種々の手法(不正検知処理)について説明する。なお、第1の実施例では、不正なアクセスを検知するための手法として、第1の不正検知処理、第2の不正検知処理、第3の不正検知処理について説明するものとする。
ここで、上記ICカード1に適用される第1の実施例としての第1の不正検知処理について説明する。
この第1の不正検知処理では、前提条件として、正当な処理内容及び処理順序などを示す正規処理情報Pが予めICカード1内のデータメモリ14におけるデータテーブル14aに記憶されているものとする。すなわち、正当な処理において使用される命令(コマンド)の処理内容(コマンドの種類と処理対象)を示す情報とそれらの各命令の実行順とが、正規処理情報P1として、予め当該ICカード1内のデータメモリ14におけるデータテーブル14aに記憶されているものとする。なお、以下の説明では、上記正規処理情報において、処理内容が規定されている各コマンド(命令)を正規コマンドと称し、さらに、規定されている順序と組み合わせてn番目の正規コマンドとも称するものとする。
各正規コマンドの処理内容を示す情報は、少なくともコマンドの種類(命令の種類)を示す情報(コマンドコード)と、処理対象(当該命令の処理対象)を示す情報(処理パラメータ)とを示すものであるとする。また、上記処理パラメータとしては、各正規コマンドの処理対象として許容されるべきデータ(値)を示すものである。このため、上記処理パラメータは、1つの値であっても良いし、複数の値であっても良いし、値の範囲を示すものであっても良い。なお、本実施例では、上記コマンドコードとしては、1つのコマンドコードが設定されることを想定する。但し、上記コマンドコードも、複数のコマンドコードを設定できるようにしても良い。
上記ICカード1では、上記のような正規処理情報Pに基づいて、ICカード処理装置(外部装置)2から順次与えられるコマンドが正当な手順かつ正当な処理内容であるか否かを判断する。ICカード処理装置2から与えられた各コマンドの処理内容が上記正規処理情報Pで指定されている正規コマンドの処理内容と一致しないと判断した場合、上記ICカード1では、不正なコマンド(不正なアクセス)であると判定する。
たとえば、正規処理情報Pで指定されている正規コマンドの処理パラメータが複数の値であれば、上記ICカード1は、受信したコマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている複数の値のうちの何れかと一致するか否かが判断される。また、正規処理情報Pで指定されている正規コマンドの処理パラメータが値の範囲であれば、上記ICカード1は、受信したコマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている値の範囲内であるか否かにより、受信したコマンドと正規コマンドとが一致するか否かが判断される。
また、不正なアクセスであると判定した場合、上記ICカード1では、当該一連の処理を中止し、エラー処理を行う。なお、上記エラー処理としては、当該ICカード1の一部または全部の機能を停止あるいは規制する処理が行われる。
図4は、正規処理情報P1の例を示す図である。
図4に示す正規処理情報P1の例では、正規の処理が、リセット処理の後、「選択(セレクト)処理」、「認証(ベリファイ)処理」、「読出し(リード)処理」、「読出し(リード)処理」、「読出し(リード)処理」、および、「書込み(ライト)処理」の順に実行されることを示している。言い換えれば、リセット処理後に、「セレクト」コマンドC1、「ベリファイ」コマンドC2、「リード」コマンドC3、「リード」コマンドC4、「リード」コマンドC5、および、「ライト」コマンドC6の順に各コマンドが外部装置(ICカード処理装置2)からICカード1に与えられた場合、当該ICカード1では、各コマンドが正当なコマンドであると判定する。
さらに、図4に示す例において、実行順序が1番目の「セレクト」コマンドC1については、処理パラメータでアプリケーションAP1が指定されている。これは、1番目に実行すべき「セレクト」コマンドC1の処理内容がアプリケーションAP1の選択処理であることを示している。
また、図4に示す例において、実行順序が2番目の「ベリファイ」コマンドC2については、処理パラメータで鍵情報K1が指定されている。これは、2番目に実行すべき「ベリファイ」コマンドの処理内容が鍵情報K1による認証処理を行うことであることを示している。
また、図4に示す例において、実行順序が3、4、5番目の「リード」コマンドC3、C4、C5については、それぞれ処理パラメータで第1の情報D1、第2の情報D2、第3の情報D3が指定されている。これらは、3、4、5番目に実行すべき「リード」コマンドC3、C4、C5の処理内容が、それぞれ第1の情報D1、第2の情報D2、第3の情報D3の読出処理であることを示している。たとえば、第1の情報D1、第2の情報D2、第3の情報D3としては、カード番号、氏名、有効期限などの当該ICカード1を用いた取引処理に必要な情報などが想定される。
また、図4に示す例において、実行順序が6番目の「ライト」コマンドC6については、処理パラメータで第4の情報D4が指定されている。これは、6番目に実行すべき「ライト」コマンドの処理内容が第4の情報D4の書込み処理であることを示している。たとえば、第4の情報D4としては、取引金額などの当該ICカード1を用いた取引処理に必要な情報などが想定される。
なお、正規処理情報では、各コマンドの処理パラメータを複数設定しても良い。つまり、コマンドの処理パラメータとしては、複数の情報のうちの何れかという設定を行っても良い。たとえば、正規処理情報において、リードコマンドの処理パラメータとして、データA、データB、または、データCと設定するようにしても良い。
図4に示すような正規処理情報が設定されている場合、当該ICカード1では、処理パラメータでアプリケーションAP1が指定されているセレクトコマンドC1、処理パラーメータで鍵情報K1が指定されているベリファイコマンドC2、処理パラーメータで第1の情報D1が指定されているリードコマンドC3、処理パラーメータで第2の情報D2が指定されているリードコマンドC4、処理パラーメータで第3の情報D3が指定されているリードコマンドC5、および、処理パラーメータで第4の情報D4が指定されているライトコマンドC6が順に受信されなければ、不正なアクセスと判断し、一連の取引処理を中止する。
図5は、当該ICカード1における第1の不正検知処理を説明するためのフローチャートである。
まず、上記ICカード1は、上記アンテナ17により上記ICカード処理装置2からの応答要求信号としての電波を受信する。上記アンテナ17により受信した電波は、上記電源部16により当該ICカード1が動作するための電源電圧およびクロックパルスに変換される。上記電源部16は、受信した電波から生成した電源電圧およびクロックパルスを当該ICカード1内の各部に供給する(ステップS11)。これにより、当該ICカード1は、動作可能な状態となる。
動作可能な状態となったICカード1の制御素子11は、まず、各部をリセットする処理を行う(ステップS12)。このリセット処理では、コマンドの受信(実行)順序を示す変数nの値を初期化(n=0)する。このリセット処理が正常に終了した場合、上記ICカード1の制御素子11は、ICカード処理装置2にリセット完了を示すレスポンスを送信する。これに対して、上記ICカード処理装置2の制御装置21では、当該ICカード1に供給すべき最初のコマンドを上記リーダライタ22により送信する。
リセット完了を示すレスポンスを送信した上記ICカード1の制御素子11では、変数nをn+1とし(ステップS13)、コマンドの受信待ち状態となっている。この状態において上記アンテナ17及び上記通信制御部15により上記ICカード処理装置2からのコマンドを受信すると(ステップS14)、上記ICカード1の制御素子11は、受信したコマンドの種類(コマンドコード)と処理内容(処理パラメータ)とが正規処理情報で示されるn番目のコマンドと一致するか否かを判断する(ステップS15)。
この判断により受信したコマンドがn番目のコマンドと一致すると判断した場合(ステップS15、YES)、上記ICカード1の制御素子11は、受信したコマンド(n番目のコマンド)に応じた処理を実行する(ステップS16)。受信したコマンドに対する処理が完了すると、上記ICカード1の制御素子11は、受信したコマンドに対する処理結果をレスポンスとしてICカード処理装置2へ送信する。また、上記ICカード1の制御素子11は、一連の処理が終了するまで、上記ステップS13へ戻り、上記ステップS13〜S19の処理を繰り返し実行する。
また、上記判断により受信したコマンドがn番目のコマンドと一致しないと判断した場合(ステップS15、NO)、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS17)。このエラー処理としては、種々の形態が可能である。たとえば、エラー処理としては、認証に用いられる鍵情報を使用不可(ロック状態)としたり、特定の機能を停止したり、特定の処理(特定のアプリケーション)による処理を停止したりするようにする。また、上記ICカード1は、不正なアクセスと判断した場合、上記エラー処理において、一連の処理を中止する旨あるいは機能を停止する旨のレスポンスをICカード処理装置2に返すようにしても良い。
なお、上記エラー処理によってICカード1が有している一部の機能あるいは全ての機能が停止(制限)された場合、当該ICカード1は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
次に、上記第1の不正検知処理によって検知される不正アクセスの3つの例について説明する。
まず、上記第1の不正検知処理によって検知される不正アクセスの第1の例について説明する。
図6は、上記第1の不正検知処理によって検知される不正アクセスの第1の例を説明するためのフローチャートである。ここでは、図4に示すような正規処理情報P1が予めデータメモリ14におけるデータテーブル14aに記憶されているものとする。つまり、ここでは、上述したような手順で実施されるべき処理に上記第1の不正検知処理を適用した場合の動作例について説明する。
この第1の例では、ICカード処理装置2が正規処理情報P1で規定されている第3の情報D3のリードコマンドが省略された場合を想定する。ここでは、ICカードに、アプリケーションAP1のセレクトコマンド、鍵情報(以下、単に鍵とも称する)K1によるベリファイコマンド、第1の情報D1のリードコマンド、第2の情報D2のリードコマンド、第4の情報D4のライトコマンドの順に各コマンドが供給された場合のICカード1の動作例について説明するものである。
まず、上記ICカード1は、上記ICカード処理装置2からの電波により起動し、リセット処理を行う(ステップS21)。上記ICカード1からリセット処理が完了した旨の通知を受けたICカード処理装置2が、1番目のコマンドとしてアプリケーションAP1のセレクトコマンドを送信したものとする。
すると、上記ICカード1では、上記アプリケーションAP1のセレクトコマンドをリセット後の1番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として登録されている1番目の正規コマンドとが一致するか否かを判断する(ステップS22)。この判断では、受信コマンドのコマンドコードと1番目の正規コマンドのコマンドコードとを比較するとともに、受信コマンドの処理パラメータと1番目の正規コマンドの処理パラメータとを比較する。
ここでは、受信コマンドと1番目の正規コマンドは、共に、コマンドコードがセレクト(アプリケーションの選択要求)であり、処理パラメータでアプリケーションAP1が指定されている。このため、上記ICカード1の制御素子11は、リセット後に1番目に受信したコマンドと1番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、アプリケーションAP1の選択処理を実行する(ステップS23)。この処理が完了すると、上記ICカード1の制御素子11は、アプリケーションAP1の選択完了を示すレスポンスをICカード処理装置2へ返す。
上記アプリケーションAP1の選択完了を示すレスポンスを受信したICカード処理装置2は、2番目のコマンドとして鍵K1による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ICカード1では、上記鍵K1によるベリファイコマンドをリセット後の2番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として登録されている2番目の正規コマンドとが一致するか否かを判断する(ステップS24)。
ここでは、受信コマンドと2番目の正規コマンドは、共に、コマンドコードがベリファイ(認証要求)であり、処理パラメータで鍵K1が指定されている。このため、上記ICカード1の制御素子11は、リセット後に2番目に受信したコマンドと2番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、鍵K1による認証処理を実行する(ステップS25)。この処理が完了すると、上記ICカード1の制御素子11は、鍵K1による認証完了を示すレスポンスをICカード処理装置2へ返す。
上記鍵K1による認証処理の完了を示すレスポンスを受信したICカード処理装置2は、3番目のコマンドとして第1の情報D1の読み出しを要求するリードコマンドを送信したものとする。すると、上記ICカード1では、上記第1の情報D1のリードコマンドをリセット後の3番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として登録されている3番目の正規コマンドとが一致するか否かを判断する(ステップS26)。
ここでは、受信コマンドと3番目の正規コマンドは、共に、コマンドコードがリード(読出し要求)であり、処理パラメータで読出の対象となるデータとして第1の情報D1が指定されている。このため、上記ICカード1の制御素子11は、リセット後に3番目に受信したコマンドと3番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、第1の情報D1の読出し処理を実行する(ステップS27)。この処理が完了すると、上記ICカード1の制御素子11は、読み出した第1の情報D1を含む読出完了を示すレスポンスをICカード処理装置2へ返す。
上記第1の情報D1の読出処理の完了を示すレスポンスを受信したICカード処理装置2が、4番目のコマンドとして第2の情報D2の読み出しを要求するリードコマンドを送信したものとする。すると、ICカード1では、上記第2の情報D2のリードコマンドをリセット後の4番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として登録されている4番目の正規コマンドとが一致するか否かを判断する(ステップS28)。
ここでは、受信コマンドと4番目の正規コマンドは、共に、コマンドコードがリード(読出し要求)であり、処理パラメータで読出の対象となるデータとして第2の情報D2が指定されている。このため、上記ICカード1の制御素子11は、リセット後に4番目に受信したコマンドと4番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、第2の情報D2の読出処理を実行する(ステップS29)。この処理が完了すると、上記ICカード1の制御素子11は、読み出した第2の情報D2を含む読出完了を示すレスポンスをICカード処理装置2へ返す。
上記第2の情報D2の読出処理の完了を示すレスポンスを受信したICカード処理装置2が、5番目のコマンドとして第4の情報D4の書き込みを要求するライトコマンドを送信したものとする。すると、ICカード1では、上記第4の情報D4のライトコマンドをリセット後の5番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として登録されている5番目の正規コマンドとが一致するか否かを判断する(ステップS30)。
ここでは、リセット後の5番目に受信したコマンドは、コマンドコードがライト(書き込み要求)であり、処理パラメータで書込みの対象となるデータとして第4の情報D4が指定されている。これに対して、正規処理情報P1における5番目の正規コマンドは、コマンドコードがリードであり、処理パラメータで読出の対象となるデータとして第3の情報D3が指定されている。従って、リセット後の5番目に受信したコマンドと5番目の正規コマンドとは、命令の種類を示すコマンドコードも、処理対象を指定する処理パラメータも異なっている。
このように、受信コマンドと正規コマンドとが不一致となっている場合、上記ICカード1の制御素子11は、上記ICカード処理装置(外部装置)2から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ICカード1の制御素子11は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う(ステップS31)。このエラー処理としては、当該ICカード1の一部または全ての機能を停止する処理などが行われる。
次に、不正検知処理によって検知される不正アクセスの第2の例について説明する。
図7は、第1の不正検知処理によって検知される不正アクセスの第2の例を説明するためのフローチャートである。ここでは、上記第1の例と同様に、図4に示すような正規処理情報P1が予めデータメモリ14に記憶されているものとする。
この第2の例では、ICカード処理装置2が正規処理情報P1で規定されている第3の情報D3のリードコマンドが不正な順序で与えられた場合を想定する。つまり、第2の例では、ICカードに、アプリケーションAP1のセレクトコマンド、鍵K1によるベリファイコマンド、第3の情報D3のリードコマンドの順に各コマンドが供給された場合のICカード1の動作例について説明する。
上記ICカード1は、リセット後に上記ICカード処理装置2から与えられるアプリケーションAP1のセレクトコマンド、鍵K1によるベリファイコマンドについて、上記第1の例のステップS21〜S25と同様な処理を行う(ステップS41〜S45)。すなわち、上記鍵K1によるベリファイコマンドが与えられた上記ICカード1の制御素子11は、鍵K1による認証処理が完了すると、鍵K1による認証完了を示すレスポンスをICカード処理装置2へ返す。
上記鍵K1による認証処理の完了を示すレスポンスを受信したICカード処理装置2は、3番目のコマンドとして第3の情報D3の読み出しを要求するリードコマンドを送信したものとする。すると、上記ICカード1では、上記第3の情報D3のリードコマンドをリセット後の3番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として登録されている3番目の正規コマンドとが一致するか否かを判断する(ステップS46)。
ここでは、リセット後の3番目に受信したコマンドは、コマンドコードがリード(読出し要求)であり、処理パラメータで読出しの対象となるデータとして第3の情報D3が指定されている。これに対して、3番目の正規コマンドは、コマンドコードがリード(読出し要求)であり、処理パラメータで読出の対象となるデータとして第1の情報D1が指定されている。従って、リセット後の3番目に受信したコマンドと3番目の正規コマンドとは、命令の種類を示すコマンドコードは一致するが、処理対象を指定する処理パラメータが異なっている。
このように、受信コマンドの処理内容(処理パラメータ)と正規コマンドの処理内容(処理パラメータ)とが不一致となっている場合、上記ICカード1の制御素子11は、上記ICカード処理装置(外部装置)2から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ICカード1の制御素子11は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う(ステップS47)。このエラー処理としては、当該ICカード1の一部または全ての機能を停止する処理などが行われる。
次に、上記第1の不正検知処理によって検知される不正アクセスの第3の例について説明する。
図8は、上記第1の不正検知処理によって検知される不正アクセスの第3の例を説明するためのフローチャートである。ここでは、上記第1、第2の例と同様に、図4に示すような正規処理情報P1が予めデータメモリ14に記憶されているものとする。
この第3の例では、ICカード処理装置2が正規処理情報P1に設定されていない第5の情報のリードコマンドが与えられた場合を想定する。つまり、ここでは、ICカードに、アプリケーションAP1のセレクトコマンド、鍵K1によるベリファイコマンド、第1の情報D1のリードコマンド、第2の情報D2のリードコマンド、第3の情報D3のリードコマンド、第5の情報のリードコマンドの順に各コマンドが供給された場合のICカード1の動作例について説明するものである。
上記ICカード1は、リセット後に上記ICカード処理装置2から与えられるアプリケーションAP1のセレクトコマンド、鍵K1によるベリファイコマンド、第1の情報D1のリードコマンド、第2の情報D2のリードコマンドについて、上記第1の例のステップS21〜S29と同様な処理を行う(ステップS51〜S59)。すなわち、正規の手順で第2の情報D2のリードコマンドが与えられた上記ICカード1の制御素子11は、第2の情報D2の読出し処理が完了すると、読み出した第2の情報D2を含むレスポンスをICカード処理装置2へ返す。
上記第2の情報D2を含むレスポンスを受信したICカード処理装置2は、5番目のコマンドとして第3の情報D3の読み出しを要求するリードコマンドを送信したものとする。すると、ICカード1では、上記第3の情報D3のリードコマンドをリセット後の5番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として設定されている4番目の正規コマンドとが一致するか否かを判断する(ステップS60)。
ここでは、受信コマンドと5番目の正規コマンドは、共に、コマンドコードがリード(読出し要求)であり、処理パラメータで読出の対象となるデータとして第3の情報D3が指定されている。このため、上記ICカード1の制御素子11は、リセット後に5番目に受信したコマンドと5番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、第3の情報D3の読出処理を実行する(ステップS61)。この処理が完了すると、上記ICカード1の制御素子11は、読み出した第3の情報D3を含む読出完了を示すレスポンスをICカード処理装置2へ返す。
上記第3の情報D3の読出処理の完了を示すレスポンスを受信したICカード処理装置2が、6番目のコマンドとして第5の情報の読み出しを要求するリードコマンドを送信したものとする。すると、上記ICカード1では、上記第5の情報のリードコマンドをリセット後の6番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として設定されている6番目の正規コマンドとが一致するか否かを判断する(ステップS62)。
ここでは、リセット後の6番目に受信したコマンドは、コマンドコードがリード(読出し要求)であり、処理パラメータで読出しの対象となるデータとして第5の情報が指定されている。これに対して、正規処理情報P1における6番目の正規コマンドは、コマンドコードがライト(書込み要求)であり、処理パラメータで書込みの対象となるデータとして第4の情報D4が指定されている。従って、リセット後の6番目に受信したコマンドと6番目の正規コマンドとは、命令の種類を示すコマンドコードも、処理対象を指定する処理パラメータも異なっている。
このように、受信コマンドと正規コマンドとが不一致となっている場合、上記ICカード1の制御素子11は、上記ICカード処理装置(外部装置)2から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ICカード1の制御素子11は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う(ステップS63)。このエラー処理としては、当該ICカード1の一部または全ての機能を停止する処理などが行われる。
上記第1及び第3の例のように、上記第1の不正検知処理を適用したICカード1は、正規の処理手順で与えられるべきコマンドが省略された場合、あるいは受信コマンドが正規処理情報で指定されている順序と処理内容とが一致しないことにより、不正なアクセスであることを判断する。これにより、上記第1の不正検知処理では、受信したコマンドの順序と処理内容とに基づいて外部装置からのアクセスが正当なものであるか否かを検知でき、不正なアクセスを防止できる。たとえば、上記第1の例のように、上記第1の不正検知処理を適用したICカード1では、正規の処理手順では与えられるべきコマンドが省略された場合、不正なアクセスであることを判別できる。
また、上記第2の例のように、上記第1の不正検知処理を適用したICカード1は、コマンドコード(命令の種類)だけでなく、処理パラメータで示される処理内容についても正規の処理手順で与えられるべきコマンドの処理内容と受信したコマンドの処理内容とが一致するか否かを判断する。これにより、コマンドコードが一致しても(つまり、同種のコマンドであっても)、処理内容(処理パラメータ)が一致しない場合、受信したコマンドが不正であると判別し、不正なアクセスであることを判断できる。
すなわち、上記第1の不正検知処理では、上記第2の例のように、処理パラメータを変更して不正にアクセスされることを防止できる。たとえば、リードコマンドの処理パラメータを不正に変更して、不正に情報を読み出したり、ライトコマンドの処理パラメータを不正に変更して、不正に情報を書き込んだりされることを防止できる。
次に、上記ICカード1に適用される第1の実施例としての第2の不正検知処理について説明する。
この第2の不正検知処理では、前提条件として、正当な処理の手順および処理内容を示す情報とともに、各コマンドが受信されるべきタイミングが、正規処理情報P2として、予めICカード1内のデータメモリ14におけるデータテーブル14aに記憶されているものとする。すなわち、正当な処理において使用される命令の内容(コマンドの種類と処理内容)と、それらの各命令の実行順と、各命令が受信されるべきタイミングとを示す情報とが、正規処理情報P2として、予めICカード1内のデータメモリ14におけるデータテーブル14aに記憶されているものとする。
上記正規処理情報P2において、各命令の内容を示す情報では、少なくとも、命令の種類(コマンドの種類)を示す情報(コマンドコード)と、当該命令の処理対象(処理内容)を示す情報(処理パラメータ)とを示すものであるとする。また、上記正規処理情報P2において、各命令が受信されるべきタイミングは、各コマンド間の時間間隔(許容時間)を示すものであるとする。各コマンド間の時間間隔としては、あるコマンドに対するレスポンスを発信してから次のコマンドを受信するまでの時間、あるいは、あるコマンドを受信してから次のコマンドを受信するまでの時間である。なお、ここで、各コマンド間の時間間隔は、あるコマンドに対するレスポンスを発信してから次のコマンドを受信するまでの時間であるものとする。
上記ICカード1では、上記のような正規処理情報P2に基づいて、ICカード処理装置(外部装置)2から順次与えられるコマンドが正当な手順、正当な処理内容、かつ、正当な受信タイミングであるか否かを判断する。たとえば、ICカード処理装置2から与えられた各コマンドが上記正規処理情報P2に設定されている正当な受信タイミングでないと判断した場合、上記ICカード1では、不正なアクセスであると判定する。不正なアクセスであると判定した場合、上記ICカード1では、当該処理を中止し、エラー処理を行う。なお、上記エラー処理としては、当該ICカードの一部または全部の機能を停止あるいは規制する処理が行われる。
図9は、正規処理情報P2の例を示す図である。図9に示す正規処理情報P2の例では、図4に示す正規処理情報P1と同様に、正規の処理が、リセット処理の後、「選択(セレクト)処理」、「認証(ベリファイ)処理」、「読出し(リード)処理」、「読出し(リード)処理」、「読出し(リード)処理」、および、「書込み(ライト)処理」の順に実行されることを示している。さらに、図9に示す正規処理情報P2では、各コマンドを受信すべきタイミングを示す情報として、各コマンド間の時間間隔(許容時間)が設定されている。すなわち、上記第2の不正検知処理では、上記第1の不正検知処理と同様に、各コマンドの内容と受信順序が正当であるか否かを判定するのに加えて、各コマンドが正当な時間間隔で受信されたか否かを判定する。
なお、図9に示す正規処理情報P2の例では、説明を容易にするため、各コマンド間の時間間隔(許容時間)を秒数で示している。しかしながら、各コマンド間の時間間隔(許容時間)は、当該ICカード1の動作クロックのクロック数で設定するのが好ましい。通常、バッテリレスのICカード1は、外部装置としてのICカード処理装置2から与えられる動作クロックにより動作している。このようなICカード1では、所定の許容時間に相当する動作クロックのクロック数でコマンドを受信するタイミングを計時するのが効率的であると考えられる。以下の説明では、説明を容易にするために、各コマンド間の時間間隔(許容時間)が便宜的にクロック数ではなく秒数で設定されているものとする。
また、図9に示す正規処理情報P2で規定される各コマンドの間隔(時間間隔)は、あるコマンドに対するレスポンス(当該コマンドに対する処理結果を示す応答)を送信してから次のコマンドを受信するまでの時間である。これは、正規の手順であれば、ICカード処理装置2が、ICカード1からのコマンドに対するレスポンスを受信してから次のコマンドを送信するまでの時間(つまり、ICカード1があるコマンドに対するレスポンスを送信してから次のコマンドを受信するまでの時間)がほぼ一定となるためである。ただし、所定のコマンドに対するICカード1における処理時間もほぼ一定となる。このため、各コマンドの間隔は、ICカード1があるコマンドを受信してから次のコマンドを受信するまでの時間間隔であっても良い。
図9に示す正規処理情報P2において、実行順序が1番目の正規コマンドは、コマンドの種類が「セレクト」であり、処理パラメータでアプリケーションAP1が指定されている。
また、図9に示す正規処理情報P2において、実行順序が2番目の正規コマンドは、コマンドの種類が「ベリファイ」で、処理パラメータで鍵情報K1が指定されている。さらに、実行順序が2番目の正規コマンドは、1番目のコマンドとの時間間隔(許容時間T12=0.2±0.1秒)であることが設定されている。これは、2番目に実行すべきコマンドが、1番目のコマンドのレスポンスを送信してから0.1〜0.3秒以内に受信すべきであることを示している。
また、図9に示す正規処理情報P2において、実行順序が3、4、5番目の正規コマンドは、コマンドの種類が「リード」であり、それぞれ処理パラメータで第1の情報D1、第2の情報D2、第3の情報D3が指定されている。さらに、実行順序が3、4、5番目の正規コマンドは、それぞれ3、4、5番目のコマンドとの時間間隔(許容時間T23、T34、T45)が0.5±0.1秒、0.4±0.1秒、0.6±0.1秒であることが設定されている。これらは、3番目に実行すべきコマンドが2番目のコマンドのレスポンスを送信してから0.4〜0.6秒以内、4番目に実行すべきコマンドが3番目のコマンドのレスポンスを送信してから0.3〜0.5秒以内、5番目に実行すべきコマンドが4番目のコマンドのレスポンスを送信してから0.5〜0.7秒以内に受信すべきであることを示している。
また、図9に示す正規処理情報P2において、実行順序が6番目の正規コマンドは、コマンドの種類が「ライト」で、処理パラメータで第4の情報D4が指定されている。さらに、実行順序が6番目の正規コマンドは、5番目のコマンドとの時間間隔(許容時間T56)が0.5±0.1秒に設定されている。これは、6番目に実行すべきコマンドが、5番目のコマンドに対するレスポンスを送信してから0.4〜0.6秒以内に受信すべきであることを示している。
図9に示すような正規処理情報P2が設定されている場合、当該ICカード1では、受信した各コマンドの内容(種類及び処理内容)と順序が正規処理情報と一致しても、各コマンドが所定のタイミングで受信されなければ、不正なアクセスと判断し、一連の取引処理を中止するようになっている。
次に、上記ICカード1に適用された第2の不正検知処理の動作例について説明する。
図10は、当該ICカード1を用いた取引処理における第2の不正検知処理の例を説明するためのフローチャートである。
なお、ここでは、図9に示すような正規処理情報P2がデータメモリ14に記憶されていることを想定して説明する。
まず、上記ICカード1は、上記アンテナ17により上記ICカード処理装置2からの応答要求信号としての電波を受信する。上記アンテナ17により受信した電波は、上記電源部16により当該ICカード1が動作するための電源電圧およびクロックパルスに変換される。上記電源部16は、受信した電波から生成した電源電圧およびクロックパルスを当該ICカード1内の各部に供給する(ステップS101)。これにより、当該ICカード1は、所定のクロックで動作可能な状態となる。
動作可能な状態となったICカード1の制御素子11は、まず、各部をリセットする処理を行う(ステップS102)。このリセット処理では、コマンドの受信(実行)順序を示す変数nの値を初期化(n=0)する。このリセット処理が正常に終了した場合、上記ICカード1の制御素子11は、ICカード処理装置2にリセット完了を示すレスポンスを送信する。これに対して、上記ICカード処理装置2の制御装置21では、当該ICカード1に供給すべき最初のコマンド(リセット後の1番目のコマンド)を上記カードリーダライタ22により送信する。
また、上記ICカード処理装置2へリセット完了を示すレスポンスを送信した上記ICカード1の制御素子11では、変数nをn+1(この場合はn=0+1)とし(ステップS103)、リセット後における1番目のコマンドの受信待ち状態となる。また、上記ICカード処理装置2からリセット後の1番目のコマンドを受信すると、上記ICカード1の制御素子11は、1番目のコマンドには許容時間が設定されていないため、ステップS105を省略し、受信したコマンドの内容(種類(コマンドコード)および処理内容(処理パラメータ))が正規処理情報P2で示される1番目の正規コマンドの内容と一致するか否かを判断する(ステップS106)。
この判断により1番目に受信したコマンドの内容が1番目の正規コマンドの内容と一致しないと判断した場合(ステップS106、NO)、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS108)。このエラー処理としては、上記第1の不正検知処理の場合と同様に、認証に用いられる鍵情報を使用不可(ロック状態)としたり、特定の機能を停止したり、特定の処理(特定のアプリケーション)による処理を停止したりするようにする。
また、上記判断により1番目に受信したコマンドの内容が1番目の正規コマンドの内容と一致すると判断した場合(ステップS106、YES)、上記ICカード1の制御素子11は、受信したコマンド(n番目のコマンド)に応じた処理を実行する(ステップS107)。受信したコマンドに対する処理が完了すると、上記ICカード1の制御素子11は、受信したコマンドに対する処理結果をレスポンスとして上記ICカード処理装置2へ送信する。
n(ここでは、n=1)番目に受信したコマンドに対するレスポンスを送信した際、上記ICカード1の制御素子11は、経過時間Tの計測(動作クロックのクロック数をカウント)を開始する(ステップS109)。このような状態において、上記ICカード1の制御素子11は、一連の処理が終了でなければ(ステップS110、NO)、上記ステップS103へ戻り、変数nをn+1とし、次のコマンド(n番目のコマンド)の受信待ち状態となる。
このようなコマンドの受信待ち状態において上記ICカード処理装置2からn番目のコマンドを受信した際、上記ICカード1の制御素子11は、直前のコマンド(n−1番目のコマンド)に対するレスポンスを送信してからn番目のコマンドを受信するまでの経過時間Tを判別する。この経過時間Tを判別すると、上記ICカード1の制御素子11は、当該経過時間Tがn番目のコマンドを受信すべきタイミングとして設定されている許容時間T(n−1)nの範囲内であるか否かを判断する。
この判断により経過時間Tが許容時間外であると判断した場合(ステップS105、NO)、上記ICカード1の制御素子11は、当該コマンドが不正なタイミングで受信したものと判断する。この場合、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS108)。
また、上記判断により経過時間が許容時間内であると判断した場合(ステップS105、YES)、上記ICカード1の制御素子11は、当該コマンドを受信したタイミングが正当なタイミングであると判断する。この場合、上記ICカード1の制御素子11は、上記ステップS106へ進み、n番目に受信したコマンドの内容が正規処理情報P2で示されるn番目の正規コマンドの内容と一致するか否かを判断する処理を行う。
上記ステップS106では、上記ICカード1の制御素子11は、受信したn番目のコマンドの内容が正規処理情報P2で示されるn番目の正規コマンドの内容と一致するか否かを判断する。この判断によりn番目に受信したコマンドの内容がn番目の正規コマンドの内容と一致しないと判断した場合(ステップS106、NO)、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS108)。なお、上記エラー処理は、各コマンド間の時間間隔が正常でなかった場合と各コマンドの処理内容が正当な処理内容でなかった場合とで処理の内容を変えるようにしても良い。
また、上記判断によりn番目に受信したコマンドの内容がn番目の正規コマンドの内容と一致すると判断した場合(ステップS106、YES)、上記ICカード1の制御素子11は、受信したコマンド(n番目のコマンド)に応じた処理を実行する(ステップS107)。受信したコマンドに対する処理が完了すると、上記ICカード1の制御素子11は、受信したコマンドに対する処理結果をレスポンスとして上記ICカード処理装置2へ送信する。この際、上記ICカード1の制御素子11は、改めて経過時間Tの計測(動作クロックのクロック数をカウント)を開始する。
このような状態において上記ICカード1の制御素子11は、一連の処理が終了でなければ(ステップS110、NO)、上記ステップS103へ戻り、変数nをn+1とし、次のコマンド(n番目のコマンド)の受信待ち状態となる。従って、上記ICカード1の制御素子11は、一連の処理が終了するまで、上記ステップS103〜S110の処理を繰り返し実行する。
なお、各コマンド間の時間間隔(許容時間)が直前のコマンドを受信してから次のコマンドを受信するまでの時間で設定されている場合、上記ICカード1の制御素子11は、各コマンドを受信した際に、経過時間Tの計測(動作クロックのクロック数のカウント)を開始するようにすれば良い。この場合、上記ステップS109の経過時間Tの計測を開始するタイミングがICカード処理装置2からコマンドを受信したときに変更される。
次に、上記第2の不正検知処理によって検知される不正アクセスの例について説明する。
図11は、上記第2の不正検知処理によって検知される不正アクセスの例を説明するためのフローチャートである。ここでは、図9に示すような正規処理情報P2が予めデータメモリ14のデータテーブル14aに記憶されているものとする。つまり、ここでは、上述したような手順で実施されるべき処理に上記第2の不正検知処理を適用した場合の動作例について説明する。ここでは、正規処理情報P2で規定されている第2の情報D2のリードコマンドが所定のタイミングで受信できなかった場合のICカード1の動作例について説明するものである。
まず、上記ICカード1は、上記ICカード処理装置2からの電波により起動し、リセット処理を行う(ステップS121)。上記ICカード1からリセット処理が完了した旨の通知を受けたICカード処理装置2が、1番目のコマンドとしてアプリケーションAP1のセレクトコマンドを送信したものとする。
すると、上記ICカード1では、上記アプリケーションAP1のセレクトコマンドをリセット後の1番目のコマンドとして受信する。上記正規処理情報P2では、1番目のコマンドについては許容時間が設定されていない。このため、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P1として登録されている1番目の正規コマンドとが一致するか否かを判断する(ステップS122)。この判断では、受信コマンドのコマンドコードと1番目の正規コマンドのコマンドコードとを比較するとともに、受信コマンドの処理パラメータと1番目の正規コマンドの処理パラメータとを比較する。
ここでは、受信コマンドと1番目の正規コマンドは、共に、コマンドコードがセレクト(アプリケーションの選択要求)であり、処理パラメータでアプリケーションAP1が指定されている。このため、上記ICカード1の制御素子11は、リセット後に1番目に受信したコマンドと1番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、アプリケーションAP1の選択処理を実行する(ステップS123)。
このような1番目の受信コマンドに応じた処理(アプリケーションAP1の選択処理)が完了すると、上記ICカード1の制御素子11は、アプリケーションAP1の選択完了を示すレスポンスをICカード処理装置2へ返す。また、リセット後の1番目の受信コマンドに対するレスポンスを送信した際、上記ICカード1の制御素子11は、次のコマンドとしてリセット後の2番目の受信コマンドを受信するまでの経過時間Tの計測を開始する。
上記アプリケーションAP1の選択完了を示すレスポンスを受信したICカード処理装置2は、2番目のコマンドとして鍵K1による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ICカード1では、上記鍵K1によるベリファイコマンドをリセット後の2番目のコマンドとして受信する。リセット後の2番目のコマンドを受信した際、上記ICカード1の制御素子11は、1番目のコマンドに対するレスポンスを送信してから当該2番目のコマンドを受信するまでの経過時間Tを判別する。2番目のコマンドを受信するまでの経過時間Tを判別すると、上記ICカードの制御素子11は、経過時間Tが2番目の正規コマンドの受信タイミングとして設定されている許容時間T12(0.2±0.1秒)の時間内であるか否かを判断する(ステップS124)。
ここでは、2番目のコマンドを受信するまでの経過時間Tが0.2秒であったものとする。従って、上記ステップS124において、上記ICカード1の制御素子11は、2番目のコマンドを受信するまでの経過時間T(0.2秒)が所定の許容時間T12(0.1〜0.3秒)内であったと判断する。これは、リセット後の2番目の受信コマンドが正規処理情報P2で設定されている正当なタイミングで受信されたことが確認できたことを意味する。
2番目のコマンドを受信するまでの経過時間Tが所定の許容時間T12内であったと判断した場合、つまり、リセット後の2番目の受信コマンドが正当なタイミングで受信されたことが確認できた場合、上記ICカード1の制御素子11は、2番目に受信したコマンドの内容と正規処理情報P1として登録されている2番目の正規コマンドとが一致するか否かを判断する(ステップS125)。ここでは、受信コマンドと2番目の正規コマンドは、共に、コマンドコードがベリファイ(認証要求)であり、処理パラメータで鍵K1が指定されている。このため、上記ICカード1の制御素子11は、リセット後に2番目に受信したコマンドと2番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、鍵K1による認証処理を実行する(ステップS126)。
このような2番目の受信コマンドに応じた処理(鍵K1による認証処理)が完了すると、上記ICカード1の制御素子11は、鍵K1による認証完了を示すレスポンスをICカード処理装置2へ返す。また、このように、リセット後の2番目の受信コマンドに対するレスポンスを送信した際、上記ICカード1の制御素子11は、次のコマンドとしてリセット後の3番目のコマンドを受信するまでの経過時間Tの計測を開始する。
上記鍵K1による認証処理の完了を示すレスポンスを受信したICカード処理装置2は、3番目のコマンドとして第1の情報D1の読み出しを要求するリードコマンドを送信したものとする。すると、上記ICカード1では、上記第1の情報D1のリードコマンドをリセット後の3番目のコマンドとして受信する。
リセット後の3番目のコマンドを受信した際、上記ICカード1の制御素子11は、2番目のコマンドに対するレスポンスを送信してから3番目のコマンドを受信するまでの経過時間Tを判別する。3番目のコマンドを受信するまでの経過時間Tを判別すると、上記ICカードの制御素子11は、当該経過時間Tが3番目の正規コマンドの受信タイミングとして設定されている許容時間T23(0.5±0.1秒)の時間内であるか否かを判断する(ステップS127)。
ここでは、3番目のコマンドを受信するまでの経過時間Tが0.5秒であったものとする。従って、上記ステップS127において、上記ICカード1の制御素子11は、3番目のコマンドを受信するまでの経過時間T(0.5秒)が所定の許容時間T23(0.4〜0.6秒)内であったと判断する。これは、リセット後の3番目の受信コマンドが正規処理情報P2で設定されている正当なタイミングで受信されたことが確認できたことを意味する。
3番目のコマンドを受信するまでの経過時間Tが所定の許容時間T23内であったと判断した場合、つまり、リセット後の3番目の受信コマンドが正当なタイミングで受信されたことが確認できた場合、上記ICカード1の制御素子11は、3番目に受信したコマンドの内容と正規処理情報P2として登録されている3番目の正規コマンドの内容とが一致するか否かを判断する(ステップS128)。ここでは、リセット後の2番目の受信コマンドと2番目の正規コマンドとは、共に、コマンドコードがリード(読出し要求)であり、処理パラメータで第1の情報D1が指定されている。このため、上記ICカード1の制御素子11は、リセット後に3番目に受信したコマンドと3番目の正規コマンドとが一致(コマンドコードと処理パラメータとが一致)と判断する。この判断に基づいて、上記ICカード1の制御素子11は、第1の情報D1の読出し処理を実行する(ステップS129)。
このような3番目の受信コマンドに応じた処理(第1の情報D1の読出し処理)が完了すると、上記ICカード1の制御素子11は、第1の情報D1を含むレスポンスをICカード処理装置2へ返す。また、このように、リセット後の3番目の受信コマンドに対するレスポンスを送信した際、上記ICカード1の制御素子11は、次のコマンドとしてリセット後の4番目のコマンドを受信するまでの経過時間Tの計測を開始する。
上記第1の情報D1を含むレスポンスを受信したICカード処理装置2は、当該レスポンスを受信してから0.6秒後に、4番目のコマンドとして第2の情報D2の読み出しを要求するリードコマンドを送信したものとする。すると、上記ICカード1では、上記第2の情報D2のリードコマンドをリセット後の4番目のコマンドとして受信する。
リセット後の4番目のコマンドを受信した際、上記ICカード1の制御素子11は、3番目のコマンドに対するレスポンスを送信してから4番目のコマンドを受信するまでの経過時間Tを判別する。4番目のコマンドを受信するまでの経過時間Tを判別すると、上記ICカードの制御素子11は、当該経過時間Tが4番目の正規コマンドの受信タイミングとして設定されている許容時間T34(0.4±0.1秒)の時間内であるか否かを判断する(ステップS130)。
ここでは、4番目のコマンドを受信するまでの経過時間Tが0.6秒であったものとする。従って、上記ステップS130において、上記ICカード1の制御素子11は、4番目のコマンドを受信するまでの経過時間T(0.6秒)が所定の許容時間T34(0.3〜0.5秒)内でないと判断する。これは、リセット後の4番目の受信コマンドが正規処理情報P2で設定されている正当なタイミングで受信されたことが確認できなかったことを意味する。
4番目のコマンドを受信するまでの経過時間Tが所定の許容時間T34内でないと判断した場合、つまり、リセット後の4番目の受信コマンドが正当なタイミングで受信されたことが確認できなかった場合、上記ICカード1の制御素子11は、上記ICカード処理装置(外部装置)2から不正なコマンドが与えられたと判定する。ここでは、不正なコマンドが与えられたことを判定した場合、上記ICカード1の制御素子11は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う(ステップS131)。このエラー処理としては、当該ICカード1の一部または全ての機能を停止する処理などが行われる。
上記のように、上記第2の不正検知処理を適用したICカード1では、一連の処理を行うための各コマンドが正規の手順で与えられる場合であっても、各コマンドを受信する時間間隔が所定のタイミングで受信されなければ、不正なアクセスであることを判断する。これにより、上記第2の不正検知処理では、受信したコマンドの内容を順序だけでなく、各コマンドが正当なタイミングで与えられたか否かによって不正なアクセスを検知できる。この結果として、外部装置が正規の制御プログラム以外の不正な制御プログラムなどを用いて複数のコマンドをICカードに与えるような不正アクセスを防止できる。
次に、上記ICカード1に適用される第1の実施例としての第3の不正検知処理について説明する。
この第3の不正検知処理では、前提条件として、当該ICカード1のデータメモリ14におけるデータテーブル14aに複数の正規処理情報P3a、P3b、…が予め記憶されているものとする。各正規処理情報は、それぞれ、図4あるいは図9に示すような構成を有しているものとする。各正規処理情報は、当該ICカード1が実行する種々の処理に対応するものである。たとえば、種々の機能を実現するための複数のアプリケーションがデータメモリ14に記憶されている場合、それらの各アプリケーションには、それぞれ正規処理情報P3a、P3b、…が設定される。さらには、1つのアプリケーションにも、複数の正規処理情報が設定されるようにしても良い。
複数の正規処理情報がデータテーブル14aに記憶されている場合、第3の不正検知処理が適用されたICカード1では、ICカード処理装置(外部装置)2から順次与えられるコマンドが正当なコマンドとして判定される正規処理情報が存在するか否かを判断する。つまり、第3の不正検知処理が適用されたICカード1では、ICカード処理装置からのコマンドを受信するごとに、受信したコマンドの内容と一致する内容の正規コマンドが設定されている正規処理情報が存在するか否かを判断する。
たとえば、ICカード処理装置2から与えられたコマンドの内容と一致する正規処理情報が存在しないと判断した場合、上記ICカード1では、不正なアクセスであると判定する。不正なアクセスであると判定した場合、上記ICカード1では、当該処理を中止し、一部または全部の機能を停止あるいは規制するエラー処理を行う。
図12は、データテーブル14aに記憶される複数の正規処理情報P3a、P3bの例を示す図である。
図12に示す正規処理情報P3aは、上述した図4と同様な内容の情報である。また、図12に示す正規処理情報P3bは、一連の正規の処理において、リセット処理の完了後、アプリケーションAP2の選択を要求する「セレクトコマンド」、鍵情報K2による認証を要求する「ベリファイコマンド」、第5の情報D5の読出しを要求する「リードコマンド」、第6の情報D6の書込みを要求する「ライトコマンド」の順に受信されるべきであることを示している。
図12に示す正規処理情報P3aと正規処理情報P3bとは、実行順が1番目のコマンドで選択すべきアプリケーションが異なっている。従って、これらの正規処理情報がデータテーブル14aに記憶されている場合、上記ICカード1は、リセット後に最初に受信したコマンドの処理パラメータがアプリケーションAP1の選択要求かアプリケーションAP2の選択要求かにより、正規処理情報P3aあるいは正規処理情報P3bの何れかを選択する。
図12に示すような正規処理情報P3a、P3bがデータテーブル14aに記憶されている場合、上記ICカード1は、リセット後に最初に受信したコマンドがアプリケーションAP1の選択要求(処理パラメータがアプリケーションAP1)であれば、当該処理については正規処理情報P3aを用いて第1の不正検知処理と同様な不正検知処理を行う。また、リセット後に最初に受信したコマンドがアプリケーションAP2の選択要求(処理パラメータがアプリケーションAP2)であれば、上記ICカード1は、当該処理については正規処理情報P3bを用いて第1の不正検知処理と同様な不正検知処理を行う。
図13は、当該ICカード1を用いた取引処理における第3の不正検知処理の例を説明するためのフローチャートである。
なお、ここでは、図12に示すような2つの正規処理情報P3a及びP3bがデータメモリ14におけるデータテーブル14aに記憶されていることを想定して説明する。
まず、上記ICカード1は、上記アンテナ17により上記ICカード処理装置2からの応答要求信号としての電波を受信する。上記アンテナ17により受信した電波は、上記電源部16により当該ICカード1が動作するための電源電圧およびクロックパルスに変換される。上記電源部16は、受信した電波から生成した電源電圧およびクロックパルスを当該ICカード1内の各部に供給する(ステップS201)。これにより、当該ICカード1は、動作可能な状態となる。
動作可能な状態となったICカード1の制御素子11は、まず、各部をリセットする処理を行う(ステップS202)。このリセット処理では、コマンドの受信(実行)順序を示す変数nの値を初期化(n=0)する。このリセット処理が正常に終了した場合、上記ICカード1の制御素子11は、ICカード処理装置2にリセット完了を示すレスポンスを送信する。これに対して、上記ICカード処理装置2の制御装置21では、当該ICカード1に供給すべき次のコマンドを上記カードリーダライタ22により送信する。
リセット完了を示すレスポンスを送信した上記ICカード1の制御素子11では、変数nをn+1とし(ステップS203)、コマンドの受信待ち状態となっている。この状態において上記アンテナ17及び上記通信制御部15により上記ICカード処理装置2からのコマンドを受信すると(ステップS204)、上記ICカード1の制御素子11は、n番目に受信したコマンドの内容(種類(コマンドコード)と処理内容(処理パラメータ))と一致するn番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する(ステップS205)。ここでは、選択されている正規処理情報からn番目に受信したコマンドの内容と一致するn番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する。
上記判断によりn番目に受信したコマンドの内容と一致するn番目の正規コマンドが設定されている正規処理情報が存在すると判断した場合(ステップS205、YES)、上記ICカード1の制御素子11は、n番目の受信コマンドと一致するn番目の正規コマンドが設定されている正規処理情報を選択する(ステップS206)。
受信したコマンドと一致する正規コマンドが設定されている正規処理情報を選択すると、上記ICカード1の制御素子11は、受信したコマンド(n番目のコマンド)に応じた処理を実行する(ステップS207)。受信したコマンドに対する処理が完了すると、上記ICカード1の制御素子11は、受信したコマンドに対する処理結果をレスポンスとしてICカード処理装置2へ送信する。また、上記ICカード1の制御素子11は、一連の処理が終了するまで(ステップS209、NO)、上記ステップS203へ戻り、上記ステップS203〜S209の処理を繰り返し実行する。
また、上記判断によりn番目の受信コマンドと一致するn番目の正規コマンドが設定されている正規処理情報が存在しないと判断した場合(ステップS205、NO)、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS208)。このエラー処理としては、種々の形態可能が可能である。たとえば、エラー処理としては、認証に用いられる鍵情報を使用不可(ロック状態)としたり、特定の機能を停止したり、特定の処理(特定のアプリケーション)による処理を停止したりするようにする。また、エラー処理として、ICカード1は、不正なアクセスと判断したため、処理を中止する旨あるいは機能を停止する旨のレスポンスをICカード処理装置2に返すようにしても良い。
なお、n番目の受信コマンドと一致するn番目の正規コマンドが設定されている正規処理情報が複数存在する場合、上記ICカード1の制御素子11は、それらの正規処理情報を候補として選択する。この場合、順次受信するコマンドについては、候補となっている正規処理情報から一致する正規コマンドが設定されている正規処理情報を絞り込む。言い換えると、上記ステップS205では、1〜n番目に受信したコマンドと一致する1〜n番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断するようになっている。これにより、一部に順序が同一の正規コマンドが設定されている正規処理情報が複数存在する場合であっても、順次受信するコマンドと一致する正規コマンドが設定されている正規処理情報が存在するかを判断できる。
次に、上記第3の不正検知処理によって検知される不正アクセスの例について説明する。
図14は、上記第3の不正検知処理によって検知される不正アクセスの例を説明するためのフローチャートである。ここでは、図12に示すような正規処理情報P3aおよびP3bが予めデータメモリ14におけるデータテーブル14aに記憶されているものとする。この例では、ICカード1に、アプリケーションAP2のセレクトコマンド、鍵K1によるベリファイコマンドが順に供給された場合の不正アクセスの検知について説明するものである。
まず、上記ICカード1は、上記ICカード処理装置2からの電波により起動し、リセット処理を行う(ステップS221)。上記ICカード1からリセット処理が完了した旨の通知を受けたICカード処理装置2が、1番目のコマンドとしてアプリケーションAP2のセレクトコマンドを送信したものとする。
すると、上記ICカード1では、上記アプリケーションAP2のセレクトコマンドをリセット後の1番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドの内容と各正規処理情報における1番目の正規コマンドの内容とを比較することにより、当該受信コマンドと一致する1番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する(ステップS222)。この判断では、当該受信コマンドのコマンドコードと各正規処理情報における1番目の正規コマンドのコマンドコードとを比較するとともに、当該受信コマンドの処理パラメータと各正規処理情報における1番目の正規コマンドの処理パラメータとを比較する。
ここでは、当該受信コマンドと正規処理情報P3aにおける1番目の正規コマンドとは、コマンドコードは一致するが、処理パラメータが一致しない。これに対して、当該受信コマンドと正規処理情報P3bにおける1番目の正規コマンドとは、コマンドコード及び処理パラメータが共に一致する。
すなわち、リセット後の1番目に受信したコマンドは、コマンドコードがセレクト(選択要求)であり、処理パラメータでアプリケーションAP2が指定されている。正規処理情報P3aにおける1番目の正規コマンドは、コマンドコードがセレクトであり、処理パラメータでアプリケーションAP1が指定されている。また、正規処理情報P3bにおける1番目の正規コマンドは、コマンドコードがセレクトであり、処理パラメータでアプリケーションAP2が指定されている。
従って、リセット後の1番目に受信したコマンドと正規処理情報P3aにおける1番目の正規コマンドとは、命令の種類を示すコマンドコードは一致するが、処理対象を指定する処理パラメータが異なっている。これに対して、リセット後の1番目に受信したコマンドと正規処理情報P3bにおける1番目の正規コマンドとは、命令の種類を示すコマンドコードと処理対象を指定する処理パラメータとが共に一致している。
上記のように、ここでは、上記ICカード1の制御素子11は、リセット後の1番目に受信したコマンドと正規処理情報P3bにおける1番目の正規コマンドとが一致するものと判断する。このため、上記ICカード1の制御素子11は、受信したコマンドと一致する正規コマンドが設定されている正規処理情報として、正規処理情報P3bを選択する(ステップS223)。この場合、その後の一連の処理では、順次受信する各コマンドと正規処理情報P3bの正規コマンドとが一致するか否かが判断される。
すなわち、1番目に受信したコマンドと一致する1番目の正規コマンドが設定されている正規処理情報P3bを選択した場合、上記ICカード1の制御素子11は、1番目の受信コマンドに応じた処理として、アプリケーションAP2の選択処理を実行する(ステップS224)。この処理が完了すると、上記ICカード1の制御素子11は、アプリケーションAP2の選択完了を示すレスポンスをICカード処理装置2へ返す。
上記アプリケーションAP2の選択完了を示すレスポンスを受信したICカード処理装置2は、2番目のコマンドとして鍵K1による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ICカード1では、上記鍵K1によるベリファイコマンドをリセット後の2番目のコマンドとして受信する。ここでは、上記ステップS223で、正規処理情報P3bが選択されている。このため、上記ICカード1の制御素子11は、当該受信コマンドの内容と正規処理情報P3bに設定されている2番目の正規コマンドとを比較する(ステップS225)。
ここでは、リセット後の2番目に受信したコマンドは、コマンドコードがベリファイ(認証要求)であり、処理パラメータで鍵K1が指定されている。これに対して、選択されている正規処理情報P3bにおける2番目の正規コマンドは、コマンドコードがベリファイであり、処理パラメータで鍵K2が指定されている。すなわち、リセット後の2番目に受信したコマンドと正規処理情報P3bにおける2番目の正規コマンドとは、命令の種類を示すコマンドコードは一致するが、処理対象を指定する処理パラメータが異なっている。
このように、受信コマンドと選択されている正規処理情報における正規コマンドとが不一致となっている場合、上記ICカード1の制御素子11は、上記ICカード処理装置(外部装置)2から不正なコマンドが与えられたと判定する。不正なコマンドが与えられたことを判定した場合、上記ICカード1の制御素子11は、不正なアクセスを受けたものと判断し、不正アクセスに伴うエラー処理を行う(ステップS226)。このエラー処理としては、当該ICカード1の一部または全ての機能を停止する処理などが行われる。
上記のように、上記第3の不正検知処理を適用したICカード1では、複数の正規処理情報がデータテーブル14aに記憶されている場合、順次受信したコマンドの内容と一致する正規コマンドが設定されている正規処理情報が存在するか否かを判断する。この判断により受信したコマンドと一致する正規コマンドが設定されている正規処理情報が存在しないと判断した場合、上記ICカード1は、不正なアクセスを受けたと判断する。これにより、上記第3の不正検知処理では、複数種類の処理に対して、受信したコマンドの内容を順序に基づいて不正なアクセスを検知できる。この結果として、種々の機能を有するICカードであっても、外部装置から要求された処理内容が正当なものであるか否かを検知し、不正なアクセスを防止できる。
なお、上記第3の不正検知処理は、上記第2の不正検知処理と組み合わせて実施することも可能である。つまり、上記のような第3の不正検知処理が適用される複数の正規処理情報において、図9に示すように、各コマンドに正規の受信タイミングを示す情報(許容時間)を設定するようにしても良い。この場合、各コマンドを受信するごとに、上記ICカード1は、受信したコマンドの内容とともに、当該コマンドを受信する時間間隔が正当な受信タイミングであるか否かを判断するようにすれば良い。この場合、種々の機能を有するICカードであっても、外部装置から要求された各コマンドの処理内容および受信タイミングが正当なものであるか否かを検知でき、不正なアクセスを防止できる。
次に、上記第1、第2あるいは第3の不正検知処理に適用可能な各コマンドの実行方法について説明する。
上述した第1、第2あるいは第3の不正検知処理では、コマンドを受信するごとに、各コマンドの内容、順序、あるいは、受信したタイミングなどが正当であるか否かにより不正なアクセスを検知するようになっている。しかしながら、上述した第1、第2あるいは第3の不正検知処理の例では、不正なコマンドを受信する前に実行された処理は、取り消されない。これは、不正アクセスを検知した時点で処理を中止すると、不正アクセスを検知する前に実行された処理の結果が残ってしまうことがあるということを意味する。たとえば、不正なコマンドを受信する前に書き換えられたデータは、元に戻すことができない可能性がある。
このため、上記第1、第2あるいは第3の不正検知処理に適用可能なコマンドの実行方法としては、一連の処理に伴う全ての正規コマンドに応じた処理が終了した時点、あるいは、一連の処理に伴う全ての正規コマンドを受信した時点で、特定のコマンドに対する処理を実行する。すなわち、特定のコマンドの処理内容は、一連の処理に伴う各コマンドに応じた処理が終了するまで、あるいは、一連の処理に伴う全ての正規コマンドを受信するまで、当該ICカード1内のワーキングメモリ13などに保留される。ワーキングメモリ13に保留している処理内容は、不正アクセスを検知した場合には全てキャンセルされる。また、ワーキングメモリ13に保留している処理内容は、不正アクセスが検知されなかった場合には、一連の処理に伴う各コマンドに応じた処理が終了した後、あるいは、一連の処理に伴う全ての正規コマンドを受信した後に、一括して実行される。
ここでは、不揮発性メモリに書き込むべきデータ(書込みデータ)をワーキングメモリに保留しておき、一連の処理が終了した時点、あるいは、一連の処理を行うための全てのコマンドを受信した時点で、ワーキングメモリに保留した書込みデータを一括して不揮発性メモリに書き込む処理について説明する。
図15は、上記第1、第2あるいは第3の不正検知処理に適用可能なコマンドの実行方法を説明するためのフローチャートである。
なお、図15では、上記第1の不正検知処理に上記のようなコマンドの実行方法を適用した場合の処理例を示している。ただし、上記のようなコマンドの実行方法は、上記第2あるいは第3の不正検知処理にも同様に適用可能である。
まず、上記ICカード1は、上記アンテナ17により上記ICカード処理装置2からの応答要求信号としての電波を受信する。上記アンテナ17により受信した電波は、上記電源部16により当該ICカード1が動作するための電源電圧およびクロックパルスに変換される。上記電源部16は、受信した電波から生成した電源電圧およびクロックパルスを当該ICカード1内の各部に供給する(ステップS301)。これにより、当該ICカード1は、動作可能な状態となる。
動作可能な状態となったICカード1の制御素子11は、まず、各部をリセットする処理を行う(ステップS302)。このリセット処理では、コマンドの受信(実行)順序を示す変数nの値を初期化(n=0)する。このリセット処理が正常に終了した場合、上記ICカード1の制御素子11は、ICカード処理装置2にリセット完了を示すレスポンスを送信する。これに対して、上記ICカード処理装置2の制御装置21では、当該ICカード1に供給すべき最初のコマンドを上記カードリーダライタ22により送信する。
リセット完了を示すレスポンスを送信した上記ICカード1の制御素子11では、変数nをn+1とし(ステップS303)、コマンドの受信待ち状態となっている。この状態において上記アンテナ17及び上記通信制御部15により上記ICカード処理装置2からのコマンドを受信すると(ステップS304)、上記ICカード1の制御素子11は、受信したコマンドの種類(コマンドコード)と処理内容(処理パラメータ)とが正規処理情報で示されるn番目の正規コマンドと一致するか否かを判断する(ステップS305)。
この判断により受信したコマンドがn番目の正規コマンドと一致しないと判断した場合(ステップS305、NO)、上記ICカード1の制御素子11は、受信したコマンドが不正であると判定し、一連の処理を中止する。この場合、上記ICカード1の制御素子11は、当該一連の処理によりワーキングメモリ13に記憶された書込みデータを全て破棄し(ステップS309)、エラー処理を行う(ステップS310)。このエラー処理としては、上述したように、種々の形態が可能である。
また、上記判断により受信したコマンドがn番目の正規コマンドと一致すると判断した場合(ステップS305、YES)、上記ICカード1の制御素子11は、さらに、受信したコマンド(n番目のコマンド)の処理内容がデータメモリ14へのデータ書込みを行うべき処理内容であるか否かを判断する(ステップS306)。この判断では、受信したコマンドの処理内容が、一連の処理が完了した時点あるいは一連の処理のコマンドを受信した時点で実行すべきものであるか否かを判断する。ここでは、データメモリ14へのデータ書込みを一連の処理が完了した後に実行するものとしている。このため、データメモリ14に書き込むべきデータは、一時的にデータを保持できるRAMなどで構成されるワーキングメモリ13に記憶される。
すなわち、上記判断により受信したコマンド(n番目のコマンド)の処理内容がデータメモリ14へのデータ書込みを行うべき処理内容であると判断した場合(ステップS306、YES)、上記ICカード1の制御素子11は、データメモリ14に書き込むべき書込みデータをワーキングメモリ13に保持しつつ、当該受信コマンドに応じた処理を実行する(ステップS307)。
また、上記判断により受信したコマンド(n番目のコマンド)の処理内容がデータメモリ14へのデータ書込みを行うべき処理内容でないと判断した場合(ステップS306、NO)、上記ICカード1の制御素子11は、当該受信コマンドに応じた処理を実行する(ステップS308)。
上記ステップS307あるいは上記ステップS308で受信したコマンドに対する処理が完了すると、上記ICカード1の制御素子11は、受信したコマンドに対する処理結果をレスポンスとしてICカード処理装置2へ送信する。これとともに、上記ICカード1の制御素子11は、当該一連の処理の各コマンドに応じた処理が終了したか否かを判断する(ステップS311)。この判断により当該一連の処理の各コマンドに応じた処理が終了していないと判断した場合(ステップS311、NO)、上記ICカード1の制御素子11は、上記ステップS303へ戻り、上記ステップS303〜S311の処理を繰り返し実行する。
また、当該一連の処理に伴う各コマンドに応じた終了したものと判断した場合(ステップS311、YES)、上記ICカード1の制御素子11は、当該一連の処理において上記ワーキングメモリ13に保持した全ての書込みデータをデータメモリ14に書き込む処理を実行する(ステップS312)。これにより、上記ワーキングメモリ13に保留された全ての書込みデータがデータメモリ14に書き込まれる。
次に、上記コマンドの実行方法の例について説明する。
図16及び図17は、上記コマンドの実行方法を適用した処理例を説明するためのフローチャートである。ここでは、正規処理情報P4として、1番目の正規コマンドとしてアプリケーションAP1のセレクトコマンド、2番目の正規コマンドとして鍵K1によるベリファイコマンド、3番目の正規コマンドとして第1の情報D1のリードコマンド、4番目の正規コマンドとして第2の情報D2のライトコマンド、5番目の正規コマンドとして第3の情報D3のリードコマンド、6番目の正規コマンドとして第4の情報D4のライトコマンドが設定されているものとする。また、図16では、全ての正規コマンドが正しく受信された場合の処理例を示している。また、図17では、6番目に受信したコマンドが6番目の正規コマンドと一致しない場合の処理例を示している。
まず、上記ICカード1は、上記ICカード処理装置2からの電波により起動し、リセット処理を行う(ステップS321)。上記ICカード1からリセット処理が完了した旨の通知を受けたICカード処理装置2が、1番目のコマンドとしてアプリケーションAP1のセレクトコマンドを送信したものとする。
すると、上記ICカード1では、上記アプリケーションAP1のセレクトコマンドをリセット後の1番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドの内容(コマンドコードと処理パラメータ)と正規処理情報P4として設定されている1番目の正規コマンドの内容とが一致すると判断する(ステップS322)。この判断に基づいて、上記ICカード1の制御素子11は、アプリケーションAP1の選択処理を実行する(ステップS323)。この処理が完了すると、上記ICカード1の制御素子11は、アプリケーションAP1の選択完了を示すレスポンスをICカード処理装置2へ返す。
上記アプリケーションAP1の選択完了を示すレスポンスを受信したICカード処理装置2は、2番目のコマンドとして鍵K1による認証処理を要求するベリファイコマンドを送信したものとする。すると、上記ICカード1では、上記鍵K1によるベリファイコマンドをリセット後の2番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドの処理内容と正規処理情報P4として設定されている2番目の正規コマンドの処理内容とが一致すると判断する(ステップS324)。この判断に基づいて、上記ICカード1の制御素子11は、鍵K1による認証処理を実行する(ステップS325)。この処理が完了すると、上記ICカード1の制御素子11は、鍵K1による認証完了を示すレスポンスをICカード処理装置2へ返す。
上記鍵K1による認証処理の完了を示すレスポンスを受信したICカード処理装置2は、3番目のコマンドとして第1の情報D1の読み出しを要求するリードコマンドを送信したものとする。すると、上記ICカード1では、上記第1の情報D1のリードコマンドをリセット後の3番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと、正規処理情報P4として設定されている3番目の正規コマンドとが一致すると判断する(ステップS326)。この判断に基づいて、上記ICカード1の制御素子11は、第1の情報D1の読出し処理を実行する(ステップS327)。この処理が完了すると、上記ICカード1の制御素子11は、読み出した第1の情報D1を含む読出完了を示すレスポンスをICカード処理装置2へ返す。
上記第1の情報D1の読出処理の完了を示すレスポンスを受信したICカード処理装置2が、4番目のコマンドとして第2の情報D2の書込みを要求するライトコマンドを送信したものとする。すると、ICカード1では、上記第2の情報D2のライトコマンドをリセット後の4番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドの処理内容と正規処理情報P4として設定されている4番目の正規コマンドとが一致すると判断する(ステップS328)。
この判断に基づいて、上記ICカード1の制御素子11は、第2の情報D2の書込み処理を実行する(ステップS329)。この場合、当該受信コマンドがライトコマンドであるため、上記ICカード1の制御素子11は、当該受信コマンドがデータメモリ14にデータを書き込むべき処理内容であると判断する。この判断により上記ICカード1の制御素子11は、当該受信コマンド(第2の情報D2のライトコマンド)に対する処理において、上記データメモリ14に第2の情報D2としての書込みデータを書き込む代わりに、当該書込みデータをワーキングメモリ13に書き込む(保持する)。
上記のような第2の情報D2のライトコマンドに応じた処理が完了すると、上記ICカード1の制御素子11は、第2の情報D2の書込み完了を示すレスポンスをICカード処理装置2へ返す。
上記第2の情報D2の書込処理の完了を示すレスポンスを受信したICカード処理装置2が、5番目のコマンドとして第3の情報D3の読み出しを要求するリードコマンドを送信したものとする。すると、上記ICカード1では、上記第3の情報D3のリードコマンドをリセット後の5番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドと正規処理情報P4として設定されている5番目の正規コマンドとが一致すると判断する(ステップS330)。この判断に基づいて、上記ICカード1の制御素子11は、第3の情報D3の読出し処理を実行する(ステップS331)。この処理が完了すると、上記ICカード1の制御素子11は、読み出した第3の情報D3を含む読出完了を示すレスポンスをICカード処理装置2へ返す。
ここで、図16に示す例では、上記第3の情報D3の読み出し処理の完了を示すレスポンスを受信したICカード処理装置2が、6番目のコマンドとして第4の情報D4の書込みを要求するライトコマンドを送信したものとする。すると、ICカード1では、上記第4の情報D4のライトコマンドをリセット後の6番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドの処理内容と正規処理情報P4として設定されている6番目の正規コマンドとを比較することにより(ステップS332)、両者が一致するか否かを判断する。
図16に示す例では、上記ICカード1の制御素子11は、6番目に受信したコマンドの処理内容と正規処理情報P4として設定されている6番目の正規コマンドとが一致すると判断する。この判断に基づいて、上記ICカード1の制御素子11は、6番目のコマンドに応じた処理として第4の情報D4の書込み処理を実行する(ステップS333)。この場合、6番目の受信コマンドがライトコマンドであるため、上記ICカード1の制御素子11は、当該受信コマンドがデータメモリ14にデータを書き込むべき処理内容であると判断する。この判断により上記ICカード1の制御素子11は、当該受信コマンド(第4の情報D4のライトコマンド)に対する処理において、上記データメモリ14に第4の情報D4としての書込みデータを書き込む代わりに、当該書込みデータをワーキングメモリ13に書き込む(保持する)処理を行う。
上記のような第4の情報D4のライトコマンドに応じた処理が完了すると、上記ICカード1の制御素子11は、第4の情報D4の書込み完了を示すレスポンスをICカード処理装置2へ返す。また、この場合、上記ICカード1の制御素子11は、第4の情報D4の書込み完了とともに、当該一連の処理が正常に終了したことを判断する。当該一連の処理の終了は、ICカード処理装置2からの一連の処理終了の通知に基づいて判定するようにしても良い。
当該一連の処理が正常に終了したことを判断すると、上記ICカードの制御素子11は、ワーキングメモリ13に保持している書込みデータを一括してデータメモリ14に書き込む処理を実行する(ステップS334)。このようなワーキングメモリ13に保持した書込みデータを全てデータメモリ14に書き込んだ際、当該一連の処理が全て完了したこととなる。
また、図17に示す例では、上記第3の情報D3の読み出し処理の完了を示すレスポンスを受信したICカード処理装置2が、6番目のコマンドとして第5の情報の書込みを要求するライトコマンドを送信したものとする。すると、ICカード1では、上記第5の情報のライトコマンドをリセット後の6番目のコマンドとして受信する。この場合、上記ICカード1の制御素子11は、当該受信コマンドの処理内容と正規処理情報P4として設定されている6番目の正規コマンドとを比較することにより(ステップS332)、両者が一致するか否かを判断する。
図17に示す例では、上記ICカード1の制御素子11は、6番目に受信したコマンドの処理内容と正規処理情報P4として設定されている6番目の正規コマンドとが一致しないと判断する。これは、6番目に受信したコマンドが不正なコマンドであるため、ICカード処理装置(外部装置)2から不正なアクセスを受けたものと判断するものである。
このように、不正なアクセスを受けたと判断した場合、上記ICカード1の制御素子11は、当該一連の処理を中止すると判断する。不正アクセスを検知したことにより一連の処理を中止すると判断した場合、上記ICカード1の制御素子11は、ワーキングメモリ13に保持している書込みデータを全て破棄するとともに(ステップS343)、エラー処理を実行する(ステップS344)。なお、上記ワーキングメモリ13は、上述したように、RAMなどにより構成される。このため、上記ワーキングメモリ13上に保持している書込みデータは、容易に破棄することができる。
上記のようなコマンドの処理を適用したICカード1では、不正なコマンドを受信する前、つまり、不正なアクセスを検知する前に、受信したコマンドによって不揮発性メモリ14への書き込みが要求された書込みデータについては、実際には不揮発性メモリ14に書き込むことなく、ワーキングメモリ13に保留する。上記ワーキングメモリ13に保留した書込みデータは、一連の処理の全てのコマンドが正当なコマンドであると判断された後に、一括して不揮発性メモリ14に書き込まれる。また、一連の処理が完了するまでに不正なコマンドが検知された場合、上記ワーキングメモリ13に保留した書込みデータは全て破棄される。
これにより、当該ICカードでは、一連の処理において、不正なコマンドを受信する前、つまり、不正なアクセスを検知する前に、受信したコマンドに応じた処理の結果を残さないようにすることができる。
上記のように、第1の実施例を適用したICカードでは、データメモリ14aに正当な処理内容を示す情報を記憶しておき、外部装置2から与えられたコマンドの処理内容が前記記憶手段14aに記憶している処理内容と一致するか否かを判断し、前記受信したコマンドの処理内容が前記記憶手段14aに記憶されている正当な処理内容を示す情報と一致すると判断した場合には前記受信したコマンドに応じた処理を実行し、前記受信したコマンドの処理内容が前記記憶手段14aに記憶されている処理内容と一致しないと判断した場合には前記受信したコマンドが不正なコマンドであると判定する。
これにより、第1の実施例によれば、外部装置2からICカード1に与えられた不正なコマンドを検出でき、不正なアクセスを防止できる。
次に、上記ICカード1に適用される第2の実施例について説明する。
まず、上記第2の実施例に係る処理について概略的に説明する。
上記ICカード1では、上述したように、上記ICカード処理装置(外部装置)2から順次供給される一連のコマンドに応じて一連の処理を実行するようになっている。さらに、上記第2の実施例に係るICカード1では、上記のような一連の処理において、上記ICカード処理装置2から受信したコマンドと各コマンドに応じて実行した処理内容とを示すログデータをデータメモリ14に保存する。このようなログデータに基づいて、当該ICカード1では、リセット直後に、不正アクセスの有無を検出する処理を行う。すなわち、上記第2の実施例に係るICカード1では、リセットされるごとに、直前のログデータに対して不正アクセスの有無を検知するようになっている。
図18は、第2の実施例に係る処理(ログデータによる不正検知処理を含むICカードの処理)を概略的に説明するためのフローチャートである。また、図19は、ログデータから不正アクセスが検出された場合のエラー処理の例を説明するためのフローチャートである。
まず、上記ICカード処理装置2では、待機状態において、ICカード1に対する応答要求信号として、ICカード1が動作するための電源およびクロックパルスを電波として上記カードリーダライタ22から発信している。
このような状態のICカード処理装置2のカードリーダライタ22の通信圏内に上記ICカード1が提示されると、当該ICカード1は、上記アンテナ17により上記ICカード処理装置2からの応答要求信号としての電波を受信する。上記アンテナ17により受信した電波は、上記電源部16により当該ICカード1が動作するための電源電圧およびクロックパルスに変換される。上記電源部16は、受信した電波から生成した電源電圧およびクロックパルスを当該ICカード1内の各部に供給する。これにより、当該ICカード1は、動作可能な状態となる。動作可能な状態となったICカード1の制御素子11は、まず、各部をリセットする処理を行う(ステップS401)。
リセット処理が完了すると、当該ICカード1の制御素子11は、まず、上記データメモリ14から直前の一連の処理内容を示す1つのログデータを読み出す。1つのログデータは、たとえば、直前の一連の処理において、受信した各コマンドの内容、あるいは、実行した各処理内容を示す情報である。ログデータを読み出すと、上記ICカード1の制御素子11は、ログデータで示されるコマンドの内容あるいは実行した処理内容が適正な内容であるか否かを判定する不正アクセスの検出処理(不正検知処理)を行う(ステップS403)。ログデータからの不正検知処理については、後で詳細に説明する。
上記不正検知処理により当該ログデータにおいて不正アクセスが検知された場合(ステップS404、YES)、上記ICカード1の制御素子11は、エラー処理を行う(ステップS405)。このエラー処理では、たとえば、図19に示すように、不正アクセスが検出されたことをICカード処理装置2に通知し(ステップS421)、当該ICカードの機能の一部あるいは全部を停止する処理を行う(ステップS422)。
上記不正検知処理により当該ログデータにおいて不正アクセスが検知されなかった場合(ステップS404、NO)、上記ICカード1の制御素子11は、一連の処理が実行可能な状態となったことを示すレスポンスをICカード処理装置2へ送信する(ステップS406)。このようなレスポンスを送信したICカード1は、上記ICカード処理装置2から順次供給されるコマンドに応じて一連の処理を行う(ステップS407)。この場合、上記ICカード1の制御素子11は、当該一連の処理において、受信した各コマンドの内容とそれらのコマンドに応じて実行した各処理内容とを示す情報を1つのログデータとしてデータメモリ14に記憶するようになっている(ステップS408)。
なお、上記データメモリ14に保存されるログデータは、適宜、削除されるようになっている。本第2の実施例では、少なくとも直前のログデータが不正アクセスの判定処理までに、データメモリ14に保持されていれば良い。従って、たとえば、上記ICカード1の制御素子11は、不正アクセスが検出されなかったログデータを順次削除する。ただし、運用形態によっては、できるだけ多くのログデータを保存しておく方が良い場合もありうる。このような場合、上記ICカード1の制御素子11は、データメモリ14にログデータとして記憶可能な容量に応じて、ログデータを順次削除するようにすれば良い。
次に、1つの具体例として、アプリケーションAP1により実現される取引処理とその取引処理のログデータの収集処理とについて説明する。
アプリケーションAP1により実現される取引処理は、上述したように、所定の手順で所定の内容の処理を行うようになっているものとする。このため、正当な取引処理では、上記ICカード処理装置2が上記ICカード1に対して、所定のコマンドを所定の手順で供給するようになっている。言い換えれば、当該取引処理のログデータにおいて所定のコマンドが所定の順序で供給されなかったことが検出されれば、上記ICカード1は、不正なアクセスを受けた可能性があると判定できる。
図20は、上記ICカード1により実行される正当な取引処理とその取引処理のログデータの収集処理とを説明するためのフローチャートである。
ここで、正当な取引処理は、アプリケーションAP1の選択処理、鍵情報K1による認証処理、第1の情報D1の読出処理、第2の情報D2の読出処理、第3の情報D3の読出処理、第4の情報D4の書込処理の順に実行されるものとする。
上述したように、上記ICカード処理装置2からの電波を受けて起動したICカード1は、リセット処理を行っている。リセット処理したICカード1では、ログデータに基づいて直前の一連の処理が正当なものであると判断した場合、処理可能な状態となったことを示すレスポンスをICカード処理装置2へ送信する。リセット処理した上記ICカード1の制御素子11は、リセットしたことを示す情報を、これから実施する一連の処理(取引処理)のログデータL0としてデータメモリ14に記憶する(ステップS431)。
上記ICカード1からのリセット完了を示すレスポンスを受信したICカード処理装置2の制御装置21は、当該取引処理を実行するための1番目のコマンドとしてアプリケーションAP1の選択を要求するコマンド(セレクトコマンド)C1をICカード1に送信する。このセレクトコマンドC1のコマンドコードは、「選択要求(セレクト)」であること示す情報である。また、上記セレクトコマンドC1の処理パラメータは、「アプリケーションAP1」を示す情報が含まれる。
上記セレクトコマンドC1を受信したICカード1の制御素子11は、リセット後の1番目に受信したコマンドに応じた処理としてアプリケーションの選択処理を行う(ステップS432)。ここで、上記ICカード1の制御素子11は、当該取引処理のログデータL0として、上記セレクトコマンドC1(リセット後の1番目に受信したコマンド)の内容を示す情報をデータメモリ14に記憶する。なお、当該取引処理における1番目の受信コマンド(セレクトコマンドC1)の内容を示す情報としては、コマンドコード(ここでは、セレクト)、処理パラメータ(ここでは、アプリケーションAP1)などがデータメモリ14に記憶される。
また、上記アプリケーションAP1の選択が完了すると、上記ICカード1の制御素子11は、セレクトコマンドC1(1番目の受信コマンド)の処理結果を示す情報を当該取引処理のログデータL0として上記データメモリ14に記憶するとともに、ICカード処理装置2に対してアプリケーションAP1を選択したことを示すレスポンス(セレクトコマンドC1に対する処理結果等を示すレスポンス)を送信する。
上記アプリケーションAP1を選択したことを示すレスポンスを受信したICカード処理装置2の制御装置21では、上記アプリケーションの選択処理に続く所定の処理として、鍵情報K1による認証処理をICカード1に要求するコマンド(ベリファイコマンド)C2をICカード1へ送信する。なお、上記鍵情報K1は、アプリケーションAP1に対応する認証情報である。また、上記ベリファイコマンドC2は、コマンドコードが認証要求であることを示す情報である。また、上記ベリファイコマンドC2の処理パラメータには、暗号化された鍵情報K1などが含まれる。
上記ベリファイコマンドC2を受信したICカード1の制御素子11は、リセット後の2番目に受信したコマンドに応じた処理として鍵K1による認証処理を行う(ステップS433)。ここで、上記ベリファイコマンドC2を受信したICカード1の制御素子11は、当該取引処理のログデータL0として、ベリファイコマンドC2(リセット後の2番目に受信したコマンド)の内容を示す情報をデータメモリ14に記憶する。なお、当該取引処理における2番目の受信コマンド(ベリファイコマンドC2)の内容を示す情報としては、コマンドコード(ここでは、ベリファイ)、処理パラメータ(ここでは、鍵K1)などがデータメモリ14に記憶される。
また、上記鍵K1による認証処理が完了すると、上記ICカード1の制御素子11は、2番目の受信コマンド(ベリファイコマンドC2)の処理結果を示す情報を当該取引処理のログデータL0として上記データメモリ14に記憶するとともに、ICカード処理装置2に対して上記鍵情報K1による認証が成功したことを示すレスポンス(ベリファイコマンドC2に対する処理結果等を示すレスポンス)を送信する。
上記鍵情報K1による認証が成功したことを示すレスポンスを受けたICカード処理装置2の制御装置21では、上記認証処理に続く所定の処理として、第1の情報(例えば、カード番号)D1の読み出しを要求するコマンド(リードコマンド)C3をICカード1へ送信する。なお、上記第1の情報D1は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として保持している情報である。ここで、上記リードコマンドC3は、コマンドコードが「読出要求(リード)」であることを示す情報である。また、上記リードコマンドC3の処理パラメータには、読出しの対象となるデータが「第1の情報D1」であることを示す情報などが含まれる。
上記のようなリードコマンドC3を受信したICカード1では、リセット後の3番目に受信したコマンドに応じた処理として第1の情報D1の読出処理を行う(ステップS434)。ここで、上記ICカード1の制御素子11は、当該取引処理のログデータL0として、上記リードコマンドC3(リセット後の3番目に受信したコマンド)の内容を示す情報をデータメモリ14に記憶する。なお、当該取引処理における3番目の受信コマンド(リードコマンドC3)の内容を示す情報としては、コマンドコード(ここでは、リード)、処理パラメータ(ここでは、第1の情報D1)などがデータメモリ14に記憶される。
また、上記第1の情報D1の読み出しが完了すると、上記ICカード1の制御素子11は、3番目の受信コマンド(リードコマンドC3)の処理結果を示す情報を当該取引処理のログデータL0として上記データメモリ14に記憶するとともに、ICカード処理装置2に対して上記第1の情報として読み出した情報を含むレスポンス(リードコマンドC3に対する処理結果等を示すレスポンス)を送信する。
上記第1の情報D1の読出しが成功したことを示すレスポンス(読み出した第1の情報D1を含むレスポンス)を受けたICカード処理装置2の制御装置21では、上記第1の情報D1の読出処理に続く所定の処理として、第2の情報(例えば、氏名)D2の読出処理をICカード1に要求するコマンド(リードコマンド)C4をICカード1へ送信する。なお、上記第2の情報D2は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として保持している情報である。また、上記リードコマンドC4は、コマンドコードが「読出要求(リード)」であることを示す情報(リード)である。また、上記リードコマンドC4の処理パラメータには、読出しの対象となるデータが「第2の情報D2」であることを示す情報などが含まれる。
上記のようなリードコマンドC4を受信したICカード1では、リセット後の4番目に受信したコマンドに応じた処理として第2の情報D2の読出処理を行う(ステップS435)。ここで、上記ICカード1の制御素子11は、当該取引処理のログデータL0として、上記リードコマンドC4(リセット後の4番目に受信したコマンド)の内容を示す情報をデータメモリ14に記憶する。なお、当該取引処理における4番目の受信コマンド(リードコマンドC4)の内容を示す情報としては、コマンドコード(ここでは、リード)、処理パラメータ(ここでは、第2の情報D2)などがデータメモリ14に記憶される。
また、上記第2の情報D2の読み出しが完了すると、上記ICカード1の制御素子11は、4番目の受信コマンド(リードコマンドC4)の処理結果を示す情報を当該取引処理のログデータL0として上記データメモリ14に記憶するとともに、ICカード処理装置2に対して上記第2の情報D2として読み出した情報を含むレスポンス(リードコマンドC4に対する処理結果等を示すレスポンス)を送信する。
上記第2の情報D2の読出しが成功したことを示すレスポンス(読み出した第2の情報D2を含むレスポンス)を受けたICカード処理装置2の制御装置21では、上記第2の情報D2の読出処理に続く所定の処理として、第3の情報(例えば、有効期限)D3の読出処理をICカード1に要求するコマンド(リードコマンド)C5をICカード1へ送信する。なお、上記第3の情報D3は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として保持している情報である。また、上記リードコマンドC5は、コマンドコードが「読出要求(リード)」であることを示す情報(リード)である。また、上記リードコマンドC5の処理パラメータには、読出しの対象となるデータが「第3の情報D3」であることを示す情報などが含まれる。
上記のようなリードコマンドC5を受信したICカード1では、リセット後の5番目に受信したコマンドに応じた処理として第3の情報D3の読出処理を行う(ステップS436)。ここで、上記ICカード1の制御素子11は、当該取引処理のログデータL0として、上記リードコマンドC5(リセット後の5番目に受信したコマンド)の内容を示す情報をデータメモリ14に記憶する。なお、当該取引処理における5番目の受信コマンド(リードコマンドC5)の内容を示す情報としては、コマンドコード(ここでは、リード)、処理パラメータ(ここでは、第3の情報D3)などがデータメモリ14に記憶される。
また、上記第3の情報D3の読み出しが完了すると、上記ICカード1の制御素子11は、5番目の受信コマンド(リードコマンドC5)の処理結果を示す情報を当該取引処理のログデータL0として上記データメモリ14に記憶するとともに、ICカード処理装置2に対して上記第3の情報D3として読み出した情報を含むレスポンス(リードコマンドC5に対する処理結果等を示すレスポンス)を送信する。
上記第3の情報D3の読出しが成功したことを示すレスポンス(読み出した第3の情報D3を含むレスポンス)を受けたICカード処理装置2の制御装置21では、上記第3の情報D3の読出処理に続く所定の処理として、第4の情報(例えば、取引金額)D4の書込処理をICカード1に要求するコマンド(ライトコマンド)C6をICカード1へ送信する。なお、上記第4の情報D4は、上記ICカード1が上記アプリケーションAP1に対応するデータ(アプリケーションAP1のディレクトリに存在するデータファイル)として保持している情報である。また、上記ライトコマンドC6は、コマンドコードが「書込要求(ライト)」であることを示す情報である。また、上記ライトコマンドC6の処理パラメータには、書込みの対象となるデータが「第4の情報D4」であることを示す情報などが含まれる。
上記のようなライトコマンドC6を受信したICカード1では、リセット後の6番目に受信したコマンドに応じた処理として第4の情報D4の書込処理を行う(ステップS437)。ここで、上記ICカード1の制御素子11は、当該取引処理のログデータL0として、上記ライトコマンドC6(リセット後の6番目に受信したコマンド)の内容を示す情報をデータメモリ14に記憶する。なお、当該取引処理における6番目の受信コマンド(ライトコマンドC6)の内容を示す情報としては、コマンドコード(ここでは、ライト)、処理パラメータ(ここでは、第4の情報D4)などがデータメモリ14に記憶される。
また、上記第4の情報D4の書込みが完了すると、上記ICカード1の制御素子11は、6番目の受信コマンド(ライトコマンドC6)の処理結果を示す情報を当該取引処理のログデータL0として上記データメモリ14に記憶するとともに、ICカード処理装置2に対して上記第4の情報D4の書込みが成功したことを示すレスポンス(ライトコマンドC6に対する処理結果等を示すレスポンス)を送信する。
上記ライトコマンドC6に対するレスポンスとして上記第4の情報D4の書込みが成功したことを示すレスポンスを受信した場合、上記ICカード処理装置2の制御装置21では、当該ICカード1に対する一連の取引処理が正常に終了したものと判断する。また、各コマンドC1〜C6に対するレスポンスとして、コマンドに対する処理が正常に終了できなかった旨のレスポンスを受信した場合、上記ICカード処理装置2の制御装置21では、当該ICカード1に対する一連の取引処理がエラーとなったものと判断する。なお、上記のようなエラーが発生した場合、上記ICカード処理装置2の制御装置21は、一連の取引処理を最初から再度実行するか、あるいは、一連の取引処理を中止するようにすれば良い。
また、上記のような一連の処理によれば、各コマンドに対する処理を実行するとともに、各コマンドの内容(コマンドコード、処理パラメータ)、および、処理結果などを示すログデータL0がデータメモリ14に保存される。つまり、一連の処理に対するログデータL0では、リセット処理から一連の処理における最後のコマンドに対する処理までの処理結果が示される。これにより、次に外部装置からアクセスされた場合、つまり、次にICカード1が起動した場合、当該ICカード1では、上記のようなログデータにおける不正なアクセスを検出する処理(不正検知処理)を行うことが可能となる。
次に、上記のように、ログデータから不正なアクセスを検出する不正検知処理について詳細に説明する。
本第2の実施例では、ICカード1が、予めICカード1内のメモリ(たとえばデータメモリ14)に記憶されている正規の処理手順および正規の処理内容などを示す正規処理情報Pに基づいて、ログデータにおける不正アクセスを検出する。上述したように、正当な一連の取引処理では、上記ICカード1には、所定の複数のコマンドが所定の手順で順次供給される。このため、ICカード1では、一連の処理のログデータが所定の処理内容と一致しなければ、外部装置から不正なアクセスを受けたと判断する処理(不正検知処理)を行う。また、ログデータにおける不正なアクセスを検出する不正検知処理には、種々の手法がある。本第2の実施例では、ログデータから不正なアクセスを検知する手法として、第4、第5、第6の不正検出処理について説明する。
なお、以下の説明では、前提条件として、正当な処理内容及び処理順序などを示す正規処理情報Pが予めICカード1内のデータメモリ14におけるデータテーブル14aに記憶されているものとする。また、上記データメモリ14には、実行済みの一連の処理の内容(受信コマンドの内容および処理結果など)を示すログデータLが保存されているものとする。また、上記正規処理情報において命令の種類および処理内容が規定されている各コマンドを正規コマンドと称し、正規処理情報において順序がn番目に規定されているコマンドをn番目の正規コマンドと称するものとする。
次に、上記ICカード1に適用される第2の実施例としての第4の不正検知処理について説明する。
ここで、この第4の不正検知処理では、図4に示すような正規処理情報P1に基づいてログデータにおける不正なアクセスが検出されるものとする。
図4に示すように、正規処理情報P1では、各正規コマンドの内容として、少なくともコマンドの種類(命令の種類)を示すコマンドコードと処理対象を示す処理パラメータとが規定されている。上記正規処理情報P1では、上記処理パラメータが、各正規コマンドの処理対象として許容されるべきデータ(値)で示される。なお、上記正規処理情報P1において規定する各正規コマンドの処理パラメータは、1つの値であっても良いし、複数の値であっても良いし、値の範囲を示すものであっても良い。また、上記正規処理情報P1において規定するコマンドコードも、1つのコマンドコードであっても良いし、複数のコマンドコードであっても良い。
上記ICカード1では、第4の不正検知処理として、図4に示すような正規処理情報P1とログデータとを比較することにより、ログデータにおける各コマンドが正当な手順であり、かつ、正当な処理内容であったか否かを判断する。たとえば、正規処理情報P1で規定されている正規コマンドの処理パラメータが複数の値であれば、上記ICカード1は、ログデータにおける各コマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている複数の値のうちの何れかと一致するか否かを判断する。また、正規処理情報P1で規定されている正規コマンドの処理パラメータが数値範囲であれば、上記ICカード1は、ログデータにおける各コマンドの処理パラメータが正規コマンドの処理パラメータとして設定されている数値範囲内であるか否かにより、受信したコマンドと正規コマンドとが一致するか否かを判断する。
すなわち、ログデータにおけるあるコマンドの内容が上記正規処理情報P1で指定されている各正規コマンドの内容と一致しないと判断した場合、あるいは、ログデータにおける各コマンドの受信順序が上記正規処理情報P1で規定されている各正規コマンドの順序と一致ないと判断した場合、上記ICカード1は、不正なコマンドが与えられていた(不正なアクセスがあった)と判定する。また、不正なアクセスがあったと判定した場合、上記ICカード1では、エラー処理を行う。また、上記エラー処理としては、上述したように、不正なアクセスがあったことを外部へ通知するとともに、当該ICカード1の一部または全部の機能を停止あるいは規制する処理が行われる。
すなわち、図4に示すような正規処理情報P1が設定されている場合、当該ICカード1では、処理パラメータでアプリケーションAP1が指定されているセレクトコマンドC1、処理パラーメータで鍵情報K1が指定されているベリファイコマンドC2、処理パラーメータで第1の情報D1が指定されているリードコマンドC3、処理パラーメータで第2の情報D2が指定されているリードコマンドC4、処理パラーメータで第3の情報D3が指定されているリードコマンドC5、および、処理パラーメータで第4の情報D4が指定されているライトコマンドC6が順に受信されたことを示すログデータでなければ、不正なアクセスをうけたものと判断する。
図21は、第4の不正検知処理を説明するためのフローチャートである。なお、図21に示す処理は、上述した図18のステップS402〜S405に相当する処理であり、上記ICカード1が起動(リセット)した直後に実行される。
まず、上記ICカード1の制御素子11は、上記ICカード処理装置2からの電波を受けて起動した場合(リセットした場合)、変数nを初期化(n=0)し(ステップS500)、直前に実行された一連の処理に対応するログデータを読み込む(ステップS501)。次に、上記ICカード1の制御素子11は、変数nを初期化し変数nをn+1とし(ステップS502)、当該ログデータにおけるn番目の受信コマンドの内容と正規処理情報におけるn番目の正規コマンドの内容とを比較する(ステップS503)。
この比較の結果として当該ログデータにおけるn番目の受信コマンドの内容と正規処理情報におけるn番目の正規コマンドの内容とが一致すると判断した場合(ステップS504、YES)、上記ICカード1の制御素子11は、ログデータにおける全ての受信コマンドと正規処理情報P1における各正規コマンドとの比較が完了したか否かにより、当該ログデータに対する不正アクセスの検出処理が完了したか否かを判断する(ステップS506)。この判断により不正アクセスの検出処理が完了したと判断するまで、上記ICカード1の制御素子11は、上記ステップS502へ戻り、上記ステップS502〜S506の処理を繰り返し実行する。
また、上記ログデータにおけるn番目の受信コマンドの内容と上記正規処理情報P1におけるn番目の正規コマンドの内容とが一致しないと判断した場合(ステップS504、NO)、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS505)。このエラー処理としては、上述したように、たとえば、不正なアクセスを検知したことをICカード処理装置2に通知したり、当該ICカード1が有している一部の機能あるいは全部の機能を停止したりする。なお、上記エラー処理によってICカード1が有している一部の機能あるいは全ての機能が停止(制限)された場合、当該ICカード1は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
次に、上記第4の不正検知処理によって検出される不正アクセスの2つの例について説明する。
まず、上記第4の不正検知処理によって検出される不正アクセスの第1の例について説明する。
図22は、上記第4の不正検知処理によって検出される不正アクセスの第1の例を説明するための図である。ここでは、図4に示すような正規処理情報P1が予めデータメモリ14におけるデータテーブル14aに記憶されているものとする。また、図22に示す第1の例では、正規処理情報P1で規定されている第3の情報D3のリードコマンドが省略されているログデータL1を想定する。
上記第4の不正検知処理によれば、上記ICカード1の制御素子11は、1番目から順に、ログデータL1における受信コマンドと正規処理情報P1における正規コマンドとを比較する。すると、図22に示すように、1番目〜4番目の受信コマンドと正規コマンドとは一致するものの、5番目の受信コマンドと正規コマンドとは不一致となる。つまり、ログデータL1における5番目の受信コマンドと正規処理情報P1における5番目の正規コマンドとは、コマンドコードおよび処理パラメータが共に異なっている。従って、上記ICカード1の制御素子11は、当該ログデータが示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
次に、上記第4の不正検知処理によって検出される不正アクセスの第2の例について説明する。
図23は、上記第4の不正検知処理によって検出される不正アクセスの第2の例を説明するための図である。ここでは、図4に示すような正規処理情報P1が予めデータメモリ14におけるデータテーブル14aに記憶されているものとする。また、図23に示すログデータL2では、正規処理情報P1と比較すると、第3の情報D3のリードコマンドと第2の情報D2のリードコマンドの順序が入れ替わっている。つまり、図23に示す第2の例では、正規処理情報P1で規定されている第3の情報D3のリードコマンドを不正な順序で受信したことを示すログデータL2を想定する。
上記第4の不正検知処理によれば、上記ICカード1の制御素子11は、1番目から順に、ログデータL2における受信コマンドと正規処理情報P1における正規コマンドとを比較する。すると、図23に示すように、1番目〜3番目の受信コマンドと正規コマンドとは一致するものの、4番目の受信コマンドと正規コマンドとは不一致となる。つまり、図23に示すように、ログデータL2における4番目の受信コマンドと正規処理情報P1における4番目の正規コマンドとは、コマンドコードは一致するものの、処理パラメータが異なっている。従って、上記ICカード1の制御素子11は、当該ログデータが示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
上記のように、上記第4の不正検知処理を適用したICカード1では、ログデータにおける各受信コマンドの内容と正規処理情報における各正規コマンドの内容とを順に照合し、受信コマンドと正規コマンドとが一致しない場合、当該ログデータで示される一連の処理において不正なアクセスがあったことを検出する。これにより、上記第4の不正検知処理では、ログとして記録した受信コマンドの内容と受信順序とが正規のものであったか否かを判定でき、その結果として不正なアクセスを受けたICカードに適切な処理を講じることが可能となる。
たとえば、上記第1の例のように、上記第4の不正検知処理を適用したICカード1では、ログデータにおいて正規の処理手順で与えられるべきコマンドが省略されていた場合、不正なアクセスがあったことを判別できる。また、上記第2の例のように、上記第4の不正検知処理を適用したICカード1では、ログデータにおいて正規の処理手順で与えられるべき各コマンドが不正な順序で与えられた場合、不正なアクセスがあったことを判別できる。
また、上記第2の例のように、上記第4の不正検知処理を適用したICカード1は、コマンドコード(命令の種類)だけでなく、処理パラメータで示される処理内容についても、正規の処理手順で与えられるべきコマンドの処理内容とログデータにおける受信コマンドの処理内容とが一致するか否かを判断する。これにより、コマンドコードが一致しても(つまり、同種のコマンドであっても)、処理内容(処理パラメータ)が一致しない場合、受信したコマンドが不正であったと判別し、不正なアクセスを受けたと判断できる。
すなわち、上記第4の不正検知処理では、上記第2の例のように、処理パラメータを変更して不正にアクセスされたことを検出できる。たとえば、リードコマンドの処理パラメータを不正に変更して、不正に情報が読み出されたり、ライトコマンドの処理パラメータを不正に変更して、不正に情報を書込まれたりしたことを検出することができる。
次に、上記ICカード1に適用される第2の実施例としての第5の不正検知処理について説明する。
ここで、この第5の不正検知処理では、上記第1の実施例で説明した図9に示すような正規処理情報P2に基づいてログデータにおける不正なアクセスが検出されるものとする。
上記正規処理情報P2では、図9に示すように、各正規コマンドの内容として、図4に示すような各コマンドの種類(命令の種類)を示すコマンドコードと各コマンドの処理対象を示す処理パラメータとに加えて、各コマンドを受信すべきタイミングが規定されている。上記正規処理情報P2において、各コマンドを受信すべきタイミングは、各コマンドの間隔として許容される値で示されるものである。なお、上記正規処理情報P2は、上記正規処理情報P1と同様に、上記処理パラメータあるいはコマンドコードが複数の値で規定されていても良い。
なお、上述したように、図9に示す正規処理情報P2の例では、説明を容易にするため、各コマンドの間隔を時間(秒数)の許容値で示している。各コマンドの間隔は、当該ICカード1の動作クロックのクロック数で設定するのが好ましい。これは、通常、バッテリレスのICカード1は、外部装置としてのICカード処理装置2から与えられる動作クロックにより動作しているためである。また、図9に示す正規処理情報P2で規定される各コマンドの間隔(時間間隔)は、あるコマンドに対するレスポンス(当該コマンドに対する処理結果を示す応答)を送信してから次のコマンドを受信するまでの時間である。ただし、各コマンドの間隔は、ICカード1があるコマンドを受信してから次のコマンドを受信するまでの時間間隔であっても良い。
上記第5の不正検知処理では、上記のような正規処理情報P2で規定されている各コマンドの間隔に基づいて、ログデータにおける各コマンドの間隔が正当であるか否かを判定する。このため、第5の不正検知処理が適用されるICカード1では、ログデータとして各コマンドの間隔を示す情報を記憶するようになっている。すなわち、第5の不正検知処理が適用されるICカード1では、上述した取引処理などの一連の処理において、各コマンドに対するレスポンスを送信してから次のコマンドを受信するまでの時間(クロック数)を計時する。計時した各コマンドの間隔(受信した時間間隔)は、各コマンドの間隔を示す情報として、各コマンドの内容および処理結果とともに、ログデータとして保存されるようになっている。
このようなログデータを保存したICカード1では、図9に示すような正規処理情報P2とログデータとを比較することにより、ログデータにおける各コマンドが正当な手順、正当な処理内容、かつ、正当な受信タイミングであったか否かを判断する。つまり、上記第5の不正検知処理では、上記第4の不正検知処理と同様な各コマンドの内容と順序とが正当であるか否かの判定に加えて、各コマンドが正当な時間間隔で受信されたか否かを判定する。
たとえば、ログデータにおける各コマンドの受信タイミングが上記正規処理情報P2に設定されている正当な受信タイミングでないと判断した場合、上記ICカード1では、不正なアクセスであると判定する。また、不正なアクセスであったと判定した場合、上記ICカード1では、エラー処理を行う。このエラー処理としては、上述したように、ログデータから不正なアクセスが検出されたことを外部へ通知するとともに、当該ICカード1の一部または全部の機能を停止あるいは規制する処理が行われる。
すなわち、図9に示すような正規処理情報P2が設定されている場合、当該ICカード1では、ログデータにおける各受信コマンドの内容(種類及び処理内容)及び順序が正規処理情報P2で規定されている各正規コマンドの内容及び順序と一致しても、各受信コマンドが正規処理情報P2で規定されているタイミングで受信されたことを示すログデータでなければ、不正なアクセスを受けたものと判断するようになっている。
次に、上記第5の不正検知処理の処理例について説明する。
図24は、第5の不正検知処理を説明するためのフローチャートである。なお、図24に示す処理は、上述した図18のステップS402〜S405に相当する処理であり、上記ICカード1が起動(リセット)した直後に実行される。
まず、上記ICカード1の制御素子11は、上記ICカード処理装置2からの電波を受けて起動した場合、変数nを初期化(n=0)し(ステップS600)、直前に実行された一連の処理に対応するログデータを読み込む(ステップS601)。次に、上記ICカード1の制御素子11は、変数nをn+1とし(ステップS602)、当該ログデータにおけるリセット後のn番目の受信コマンドに関する情報と正規処理情報におけるn番目の正規コマンドに関する情報とを比較する(ステップS603)。
当該ログデータにおけるn番目の受信コマンドの内容と正規処理情報におけるn番目の正規コマンドの内容とが一致すると判断した場合(ステップS604、YES)、上記ICカード1の制御素子11は、さらに、ログデータとして記録されているn番目のコマンドを受信するまでの時間(クロック数)が正規処理情報P2で規定されているn番目のコマンドを受信するまでの許容時間T(n−1)n内であるか否かを判断する(ステップS605)。
この判断によりn番目のコマンドを受信するまでの時間が許容時間T(n−1)n内であると判断した場合(ステップS605、YES)、上記ICカード1の制御素子11は、ログデータにおける全ての受信コマンドと正規処理情報P1における各正規コマンドとの比較が完了したか否かにより、当該ログデータに対する不正アクセスの検出処理が完了したか否かを判断する(ステップS607)。この判断により不正アクセスの検出処理が完了したと判断するまで、上記ICカード1の制御素子11は、上記ステップS602へ戻り、上記ステップS602〜S607の処理を繰り返し実行する。
また、上記ログデータにおけるn番目の受信コマンドの内容がn番目の正規コマンドの内容と一致しないと判断した場合(ステップS604、NO)、あるいは、上記ログデータにおけるn番目のコマンドを受信するまでの時間が許容時間T(n−1)n内でないと判断した場合(ステップS605、NO)、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS606)。このエラー処理としては、上述したように、たとえば、不正なアクセスを検知したことをICカード処理装置2に通知したり、当該ICカード1が有している一部の機能あるいは全部の機能を停止したりする。なお、上記エラー処理によってICカード1が有している一部の機能あるいは全ての機能が停止(制限)された場合、当該ICカード1は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
次に、上記第5の不正検知処理によって検出される不正アクセスの例について説明する。
図25は、上記第5の不正検知処理によって検出される不正アクセスの例を説明するための図である。ここでは、図9に示すような正規処理情報P2が予めデータメモリ14におけるデータテーブル14aに記憶されているものとする。また、図25に示す例では、ログデータL3において4番目のコマンドを受信するまでの間隔が正規処理情報P2で規定されている許容時間T34を超えている場合を想定する。
上記第5の不正検知処理によれば、上記ICカード1の制御素子11は、1番目から順に、ログデータL3における各受信コマンドと正規処理情報P2における各正規コマンドとを比較する。すると、図25に示すように、各受信コマンドの内容と各正規コマンドの内容とは一致する。しかし、4番目の受信コマンドを受信するまでの間隔は、正規処理情報P2で規定されている許容時間T34を超えている。従って、上記ICカード1の制御素子11は、当該ログデータL3が示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
上記のように、上記第5の不正検知処理を適用したICカード1では、実行した一連の処理の内容を示すログデータにおいて、各コマンドが正規の手順で正規の内容が与えられている場合であっても、各コマンドを受信するまでの間隔が予め正規処理情報において規定されている所定の許容時間内でなければ、不正なアクセスがあったと判断する。
これにより、上記第5の不正検知処理では、実行した各コマンドの内容および順序だけでなく、各コマンドが正当なタイミングで与えられたか否かによって不正なアクセスを検出できる。この結果として、外部装置が正規の制御プログラム以外の不正な制御プログラムなどを用いて複数のコマンドをICカードに与えたような不正アクセスをログデータから検出することができる。
次に、上記ICカード1に適用される第2の実施例としての第6の不正検知処理について説明する。
ここで、この第6の不正検知処理では、図12に示すような正規処理情報P3(P3a、P3b)に基づいてログデータにおける不正なアクセスが検出されるものとする。
上記第6の不正検知処理では、前提条件として、当該ICカード1のデータメモリ14におけるデータテーブル14aに複数の正規処理情報P3a、P3b、…が予め記憶されているものとする。各正規処理情報P3a、P3bは、それぞれ、図4あるいは図9に示すような構成を有している。各正規処理情報P3a、P3bは、当該ICカード1が実行する種々の一連の処理に対応するものである。たとえば、種々の機能を実現するための複数のアプリケーションがデータメモリ14に記憶されている場合、それらの各アプリケーションには、それぞれ正規処理情報P3a、P3b、…が設定される。さらには、1つのアプリケーションにも、複数の正規処理情報が設定されるようにしても良い。
上記第6の不正検知処理では、ログデータにおける各コマンドが正規コマンドとして規定されている正規処理情報が存在するか否かを判断する。この判断によりログデータにおける各コマンドの内容及び順序と一致する正規コマンドが規定されている正規処理情報が存在しないと判断した場合、上記ICカード1では、不正なアクセスがあったと判定する。不正なアクセスがあったと判定した場合、上記ICカード1では、ログデータから不正なアクセスが検出された旨を外部装置に通知し、一部または全部の機能を停止あるいは規制するエラー処理を行う。
すなわち、図12に示すような正規処理情報P3a、P3bがデータテーブル14aに記憶されている場合、上記ICカード1は、1番目の受信コマンドがアプリケーションAP1の選択要求であれば、当該ログデータについては、正規処理情報P3aを用いて第4あるいは第5の不正検知処理と同様な不正検知処理を行う。また、1番目の受信コマンドがアプリケーションAP2の選択要求であれば、上記ICカード1は、当該ログデータについては正規処理情報P3bを用いて第4あるいは第5の不正検知処理と同様な不正検知処理を行う。
次に、上記第6の不正検知処理の処理例について説明する。
図26は、第6の不正検知処理を説明するためのフローチャートである。なお、図26に示す処理は、上述した図18のステップS402〜S405に相当する処理であり、上記ICカード1が起動(リセット)した直後に実行される。
まず、上記ICカード1の制御素子11は、上記ICカード処理装置2からの電波を受けて起動した場合、変数nを初期化(n=0)し(ステップS700)、直前に実行された一連の処理に対応するログデータを読み込む(ステップS701)。次に、上記ICカード1の制御素子11は、変数nをn+1とし(ステップS702)、当該ログデータにおけるリセット後のn番目の受信コマンドの内容と各正規処理情報におけるn番目の正規コマンドの内容とを比較する(ステップS703)。
この比較結果に基づいて、上記ICカード1の制御素子11は、当該ログデータにおけるn番目の受信コマンドの内容と一致するn番目の正規コマンドが規定されている正規処理情報が存在するか否かを判断する(ステップS704)。なお、ここでは、後述するステップS705で選択された各正規処理情報におけるn番目の正規コマンドと当該ログデータにおけるn番目の受信コマンドの内容とが比較される。従って、上記判断では、後述するステップS705で選択された正規処理情報のうち当該ログデータにおけるn番目の受信コマンドの内容と一致するn番目の正規コマンドが規定されている正規処理情報が存在するか否かが判断される。
上記判断によりn番目の受信コマンドの内容と一致するn番目の正規コマンドが規定されている正規処理情報が存在すると判断した場合(ステップS704、YES)、上記ICカード1の制御素子11は、n番目の受信コマンドと一致するn番目の正規コマンドが設定されている正規処理情報を選択する(ステップS705)。
なお、n番目の受信コマンドと一致するn番目の正規コマンドが設定されている正規処理情報が複数存在する場合、上記ICカード1の制御素子11は、それらの正規処理情報を候補として選択する。この結果として、上記ICカード1の制御素子11は、ログデータにおける各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報を順次絞り込むことができる。言い換えると、上記ステップS704では、1〜n番目に受信したコマンドと一致する1〜n番目の正規コマンドが設定されている正規処理情報が存在するか否かを判断する。これにより、一部に順序が同一の正規コマンドが規定されている正規処理情報が複数存在する場合であっても、上記ICカード1では、順次、受信コマンドと一致する正規コマンドが設定されている正規処理情報が存在するか否かを判断できる。
当該ログデータにおける各受信コマンドと一致する正規コマンドが規定されている正規処理情報を選択すると、上記ICカード1の制御素子11は、当該ログデータにおける全ての受信コマンドと選択されている正規処理情報における各正規コマンドとの比較が完了したか否かにより、当該ログデータに対する不正アクセスの検出処理が完了したか否かを判断する(ステップS707)。この判断により不正アクセスの検出処理が完了したと判断するまで、上記ICカード1の制御素子11は、上記ステップS702へ戻り、上記ステップS702〜S707の処理を繰り返し実行する。
また、上記ログデータにおけるn番目の受信コマンドの内容と一致するn番目の正規コマンドが規定されている正規処理情報が存在しないと判断した場合(ステップS704、NO)、上記ICカード1の制御素子11は、一連の処理を中止し、エラー処理を行う(ステップS706)。このエラー処理としては、上述したように、たとえば、不正なアクセスを検知したことをICカード処理装置2に通知したり、当該ICカード1が有している一部の機能あるいは全部の機能を停止したりする。なお、上記エラー処理によってICカード1が有している一部の機能あるいは全ての機能が停止(制限)された場合、当該ICカード1は、後述する回復処理によって制限された一部あるいは全部の機能が使用可能となるようになっている。このような回復処理の例については、後で説明する。
次に、上記第6の不正検知処理によって検出される不正アクセスの例について説明する。
図27は、上記第6の不正検知処理によって検出される不正アクセスの例を説明するための図である。ここでは、図12に示すような正規処理情報P3a、P3bが予めデータメモリ14におけるデータテーブル14aに記憶されているものとする。第6の不正検知処理によれば、上記ICカード1の制御素子11は、1番目から順に、ログデータL4における各受信コマンドと一致する正規コマンドが規定される正規処理情報が存在するか否かを判断する。
図27に示すように、上記第6の不正検知処理が適用されたICカード1は、ログデータL4における1番目の受信コマンドと一致する正規コマンドが規定されている正規処理情報として正規処理情報P3bを選択する。これは、ログデータL4における1番目の受信コマンドの処理パラメータ「AP2」が、正規処理情報P3aにおける1番目の正規コマンドの処理パラメータ「AP1」と一致せず、正規処理情報P3bにおける1番目の正規コマンドの処理パラメータ「AP2」と一致するためである。この場合、ログデータにおける2番目以降の受信コマンドについては、正規処理情報P3bの各正規コマンドと一致するか否かが判断される。
図27に示すように、ログデータにおける2番目の受信コマンドは、処理パラメータが「鍵K1」となっている。これに対して、正規処理情報P3bの3番目の正規コマンドの処理パラメータは「鍵K2」となっている。従って、上記ICカード1は、2番目の受信コマンドの内容が選択されている正規処理情報P3bの2番目の正規コマンドの内容と一致ないと判定する。これは、言い換えれば、2番目の受信コマンドと一致する正規処理情報が存在しないと判断するものである。従って、図27に示す例では、上記ICカード1の制御素子11は、当該ログデータL4が示す一連の処理において不正なアクセスがあったと判断し、不正アクセスに伴うエラー処理を行う。
上記のように、上記第6の不正検知処理を適用したICカード1では、複数の正規処理情報が設定されている場合、実行した一連の処理の内容を示すログデータにおける各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報が存在するか否かを順次判定する。ログデータにおける各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報が存在しないと判定した場合、上記ICカード1の制御素子11は、当該ログデータから不正なアクセスが検出されたと判断する。
これにより、上記第6の不正検知処理では、種々に処理に応じた複数の正規処理情報を記憶しておくことができ、複数の正規処理情報が記憶されている場合であっても、ログデータから不正なアクセスを検出できる。つまり、種々の機能を有するICカードであっても、ログデータから処理内容が正当なものであるか否かを検知し、不正なアクセスを受けたことを検出することができる。
なお、上記第6の不正検知処理は、上記第5の不正検知処理と組み合わせて実施することも可能である。つまり、上記のような第6の不正検知処理が適用される複数の正規処理情報において、図9に示すように、各コマンドに正規の受信タイミングを示す情報(許容時間)を設定するようにしても良い。この場合、上記ICカード1は、ログデータにおける各受信コマンドの内容及び順序とともに、当該受信コマンドが正当なタイミングで受信されていたか否かを判断するようにすれば良い。この場合、種々の機能を有するICカードであっても、ログデータから処理内容および受信タイミングが正当なものであるか否かを検知し、不正なアクセスを受けたことを検出することができる。
上記のような第2の実施例が適用されるICカードでは、外部からのコマンドに応じて実行した一連の処理の内容を示すログデータを保存しておき、次に起動した際に、ログデータにおける各受信コマンドの内容と正規処理情報における各正規コマンドの内容とを順に照合し、受信コマンドと正規コマンドとが一致しない場合、当該ログデータで示される一連の処理において不正なアクセスがあったことを検出する。
これにより、第2の実施例によれば、ログデータから受信したコマンドの内容と順序とが予め規定されている正規のものであったか否かを判定でき、その結果として不正なアクセスを受けことをログデータから検出できるセキュリティ性の高いICカードを提供できる。
次に、一部あるいは全部の機能が制限(使用停止)されたICカード1の機能を回復させるための回復処理について説明する。
上述したように、上記第1の実施例としての第1、第2、第3の不正検知処理、あるいは、上記第2の実施例として説明した第4、第5、第6の不正検知処理により不正アクセスを検知した場合、上記ICカード1は、エラー処理を行う。また、エラー処理では、上述したように、ICカード1が有している一部あるいは全部の機能が制限(使用停止)される。機能の制限では、たとえば、特定の鍵情報を使用不能(ロック)としたり、当該機能を実現するためのアプリケーションの選択要求(セレクトコマンド)に応じた処理の実行を拒否したりする。
このような機能が制限されたICカード1は、所定の手続きによって制限された機能を使用可能な状態に回復させる回復処理を行う必要がある。制限された機能を回復させるのに必要な手続きは、当該ICカード1の運用形態に応じて適宜決められる。ここでは、ICカード1あるいはICカード1における特定の機能を管理する管理者がユーザによる所定の手続きに応じて当該ユーザが所持するICカード1の機能を回復させることを認めた場合に、管理者が操作するICカード処理装置2によりICカード1に回復処理を実行させることを想定する。
図28は、制限されているICカード1の機能を回復させるための回復処理の例を説明するためのフローチャートである。なお、図28に示すフローチャートは、機能が制限されているICカード1における処理を示すものである。また、ここでは、上記ICカード1は、機能の制限として、管理者鍵による認証要求以外のコマンドを受け付けない(実行を拒否する)ものとする。
上記ICカード処理装置2からの電波を受信したICカード1は、上記電源部16に生成された電源電圧およびクロックパルスが各部に供給され(ステップS801)、リセット処理を行う(ステップS802)。このリセット処理が完了すると、上記ICカード1は、上記ICカード処理装置2からのコマンドが受信可能な状態となる(ステップS803)。この状態において、上記ICカード1の制御素子11は、受信したコマンドが管理者鍵による認証要求のコマンドか否かを判断する(ステップS804)。上記のように機能が制限されているICカード1では、管理者鍵による認証要求のコマンドのみを受け付けるようになっている。
すなわち、上記判断により受信したコマンドが管理者鍵による認証要求以外のコマンドであると判断した場合(ステップS804、NO)、当該ICカード1の制御素子11は、管理者鍵による認証要求以外のコマンドに応じた処理の実行を拒否するようになっている(ステップS805)。
また、上記判断により受信したコマンドが管理者鍵による認証要求のコマンドであると判断した場合(ステップS804、YES)、上記ICカード1の制御素子11は、当該コマンドに応じて管理者鍵による認証処理を実行する(ステップS806)。ここでは、この管理者鍵による認証処理は、回復処理の前に必ず実施されるものとする。つまり、上記管理者鍵による認証処理が成功することが、回復処理を実施するための条件となっているものとする。
上記管理者鍵による認証処理が失敗した場合、上記ICカード1の制御素子11は、一連の処理を中止する。つまり、上記管理者鍵による認証処理が失敗した場合、上記ICカード1の制御素子11は、機能の回復を要求するコマンドに応じた回復処理の実行を拒否する。
また、上記管理者鍵による認証処理が成功した場合、上記ICカード1の制御素子11は、機能の回復を要求するコマンドを受け付ける可能な状態となる。この状態において上記ICカード処理装置2から機能の回復を要求するコマンドを受信した場合(ステップS808)、上記ICカード1の制御素子11は、当該コマンドに応じた機能を回復させるための回復処理を実行する(ステップS809)。このような回復処理が完了すると、上記ICカード1は、制限されていた機能が使用可能な状態となる。
さらなる特徴及び変更は、当該技術分野の当業者には着想されるところである。それ故に、本発明はより広い観点に立つものであり、特定の詳細な及びここに開示された体表的な実施例に限定されるものではない。従って、添付されたクレームに定義された広い発明概念及びその均等物の解釈と範囲において、そこから離れること無く、種々の変更をおこなうことができる。
図1は、第1、第2の実施例に係るICカードおよびICカードを含むシステムの構成例を示すブロック図である。 図2は、非接触式ICカードの全体の構成例を示す。 図3は、ICカードにおける正当な処理の例を説明するためのフローチャートである。 図4は、正当な処理内容を示す情報としての正規処理情報の例を示す。 図5は、第2の実施例に係る第1の不正検知処理を説明するためのフローチャートである。 図6は、第1の不正検知処理により検知される不正アクセスの第1の例を説明するためのフローチャートである。 図7は、第1の不正検知処理により検知される不正アクセスの第2の例を説明するためのフローチャートである。 図8は、第1の不正検知処理により検知される不正アクセスの第3の例を説明するためのフローチャートである。 図9は、正当な各コマンドの受信間隔としての許容時間間隔を含む正規処理情報の例を示す。 図10は、第2の不正検知処理を説明するためのフローチャートである。 図11は、第2の不正検知処理により検知される不正アクセスの例を説明するためのフローチャートである。 図12は、各アプリケーションごとに設定される複数の正規処理情報の例を示す。 図13は、第3の不正検知処理を説明するためのフローチャートである。 図14は、第3の不正検知処理により検知される不正アクセスの例を説明するためのフローチャートである。 図15は、第1、第2、第3の不正検知処理に適用可能なコマンドの実行方法を説明するためのフローチャートである。 図16は、図15のコマンドの実行方法が適用された一連の処理において不正なコマンドが検出されなった場合の処理例を説明するためのフローチャートである。 図17は、図15のコマンドの実行方法が適用された一連の処理において不正なコマンドが検出された場合の処理例を説明するためのフローチャートである。 図18は、第2の実施例に係るICカードの処理例を説明するためのフローチャートである。 図19は、エラー処理の例を説明するためのフローチャートである。 図20は、正当な取引処理とその取引処理のログデータの収集処理の例を説明するためのフローチャートである。 図21は、第4の不正検知処理を説明するためのフローチャート。 図22は、第4の不正検知処理により検出される不正アクセスの第1の例を示す。 図23は、第4の不正検知処理により検出される不正アクセスの第2の例を示す。 図24は、第5の不正検知処理を説明するためのフローチャートである。 図25は、第5の不正検知処理により検出される不正アクセスの例を示す。 図26は、第6の不正検知処理を説明するためのフローチャートである。 図27は、第6の不正検知処理により検出される不正アクセスの例を示す。 図28は、ICカードにおいて制限されている機能を回復させる回復処理を説明するためのフローチャートである。

Claims (36)

  1. 携帯可能電子装置であって、
    正当な処理内容を示す情報を記憶する記憶部と、
    外部装置からの処理を要求するコマンドを受信する受信部と、
    この受信部により受信したコマンドに応じて実行すべき処理内容が前記記憶部に記憶している処理内容と一致するか否かを判断する判断部と、
    前記判断部により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する実行部と、
    を有する。
  2. 前記クレーム1に記載の携帯可能電子装置であって、
    前記記憶部には、正当な処理内容を示す情報として、正当な各コマンドの種類および処理パラメータを示す情報を記憶し、
    前記判断部は、前記受信部により受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致するか否かを判断し、
    前記実行部は、前記受信部により受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する。
  3. 前記クレーム2に記載の携帯可能電子装置であって、
    前記記憶部には、処理パラメータとして複数の値が記憶可能である。
  4. 前記クレーム2に記載の携帯可能電子装置であって、
    前記記憶部には、正当な処理内容を示す情報として、さらに、正当な各コマンドの受信順序を示す情報を記憶し、
    前記判断部は、前記受信部により順次受信する各コマンドについて、受信順序、コマンドの種類、および、処理パラメータが、前記記憶部に記憶している正当な各コマンドの受信順序、コマンドの種類、および、処理パラメータと一致するか否かを判断し、
    前記実行部は、前記受信部により順次受信する各コマンドの、受信順序、コマンドの種類、および、処理パラメータが、前記記憶部に記憶している正当な各コマンドの受信順序、コマンドの種類、および、処理パラメータと一致すると判断した場合、前記受信部により順次受信するコマンドに応じた処理を順次実行する。
  5. 前記クレーム1に記載の携帯可能電子装置であって、
    前記記憶部には、正当な処理内容を示す情報として、さらに、正当な各コマンド間の受信間隔の許容範囲を示す情報を記憶し、
    前記判断部は、さらに、前記受信部により受信したコマンドと前記受信部により当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であるか否かを判断し、
    前記実行部は、前記受信部により受信したコマンドと前記受信部により当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する。
  6. 前記クレーム5に記載の携帯可能電子装置であって、
    前記記憶部には、正当な各コマンドの受信間隔の許容範囲を当該携帯可能電子装置の動作クロックの数で示す情報が記憶され、
    前記判断部は、前記受信部により受信したコマンドと前記受信部により当該コマンドの直前に受信したコマンドとの受信間隔を示す動作クロックの数が、前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲を示す動作クロックの数の範囲内であるか否かを判断する。
  7. 前記クレーム1に記載の携帯可能電子装置であって、
    前記記憶部には、複数種類の一連の処理に対応して複数の正当な処理内容を示す情報が記憶され、
    さらに、前記受信部により順次受信したコマンドの内容に基づいて前記記憶部に記憶されている複数の正当な処理内容を示す情報から正当な処理内容を示す情報を選択する選択部を有し、
    前記判断部は、前記受信部により受信したコマンドに応じた処理内容が前記選択部により選択した正当な処理内容を示す情報と一致するか否かを判断し、
    前記実行部は、前記受信部により受信したコマンドに応じた処理内容が前記選択した正当な処理内容を示す情報と一致すると判断した場合、前記受信部により受信したコマンドに応じた処理を実行する。
  8. 前記クレーム7に記載の携帯可能電子装置であって、
    さらに、種々の一連の処理を実行するための複数のアプリケーションが記憶されるアプリケーション記憶部を有し、
    前記記憶部には、前記アプリケーション記憶部に記憶されている各アプリケーションに対応して複数の正当な処理内容を示す情報が記憶され、
    前記選択部は、前記受信部により受信したアプリケーションの選択を要求するコマンドに基づいて、当該コマンドで選択が要求されたアプリケーションに対応する正当な処理内容を示す情報を、前記記憶部に記憶されている複数の正当な処理内容を示す情報から選択する。
  9. 前記クレーム1に記載の携帯可能電子装置であって、
    さらに、データを一時的に記憶する一時記憶部を有し、
    前記実行部は、特定のコマンドについては処理内容を前記一時記憶部に記憶する処理を行い、
    さらに、前記判断部により前記受信部にて受信したコマンドが前記記憶部に記憶している処理内容と一致しないと判断された場合、前記一時記憶部に記憶した処理内容を破棄する破棄部と、
    前記判断部により一連の処理が完了するまでの全てのコマンドが前記記憶部に記憶している処理内容と一致すると判断された場合、前記一時記憶部に記憶した処理内容を実行する一括処理部と、有する。
  10. 前記クレーム9に記載の携帯可能電子装置であって、
    さらに、種々のデータを記憶する不揮発性の記憶部を有し、
    前記実行部は、前記不揮発性の記憶部へのデータの書込みを要求するコマンドについては前記不揮発性の記憶部に書込むべき書込みデータを前記一時記憶部に記憶する処理を行い、
    前記破棄部は、前記判定部により前記受信部にて受信したコマンドが不正であると判定された場合、前記一時記憶部に記憶した書込みデータを破棄し、
    前記一括処理部は、前記判断部により一連の処理が完了するまでの全てのコマンドが前記記憶部に記憶している処理内容と一致すると判断された場合、前記一時記憶部に記憶した書込みデータを前記不揮発性の記憶部に書込む処理を行う。
  11. 前記クレーム1に記載の携帯可能電子装置であって、
    さらに、前記判断部により前記受信部にて受信したコマンドが前記記憶部に記憶している処理内容と一致しないと判断した場合、当該携帯可能電子装置の機能を停止させるエラー処理を行うエラー処理部を有する。
  12. 前記クレーム11に記載の携帯可能電子装置であって、
    さらに、前記エラー処理部により機能が停止された状態において外部装置からの管理鍵による認証要求を受け付け、前記管理鍵による認証が成功した場合に、前記エラー処理部により停止されている機能を回復させる処理を行う回復部を有する。
  13. 前記クレーム1に記載の携帯可能電子装置であって、
    前記各部を具備するモジュールと、
    前記モジュールが埋設された本体と、を有する。
  14. 携帯可能電子装置であって、
    正規の一連の処理内容を示す正規処理情報が予め記憶されている第1の記憶部と、
    外部装置からのコマンドを受信する受信部と、
    この受信部により受信したコマンドに応じた処理を実行する実行部と、
    この実行部により前記受信部にて受信したコマンドに応じて実行した処理内容を示す履歴情報を記憶する第2の記憶部と、
    前記第1の記憶部に記憶されている正規の処理内容を示す情報に基づいて、この第2の記憶部に記憶されている履歴情報から不正なアクセスを検出する検出部と、を有する。
  15. 前記クレーム14に記載の携帯可能電子装置であって、
    前記検出部は、当該携帯可能電子装置が起動した場合に、前記第1の記憶部に記憶されている正規処理情報に基づいて前記第2の記憶部に記憶されている履歴情報から不正なアクセスを検出する。
  16. 前記クレーム14に記載の携帯可能電子装置であって、
    前記検出部は、当該携帯可能電子装置が起動した場合に、前記第1の記憶部に記憶されている正規処理情報に基づいて、前記第2の記憶部に記憶されている直前に実行した一連の処理内容を示す履歴情報からの不正なアクセスを検出する。
  17. 前記クレーム14に記載の携帯可能電子装置であって、
    前記第1の記憶部には、正規処理情報として、正規の一連の処理で用いられる各正規コマンドの種類および処理パラメータを示す情報を記憶しておき、
    前記検出部は、前記第1の記憶部に記憶している各正規コマンドの種類および処理パラメータと前記第2の記憶部に記憶している履歴情報で示される実行した一連の処理で受信した各受信コマンドの種類および処理パラメータが一致するか否かにより不正アクセスの有無を検出する。
  18. 前記クレーム17に記載の携帯可能電子装置であって、
    前記第1の記憶部には、正規処理情報として、さらに、正規の一連の処理で用いられる各正規コマンドの順序を示す情報を記憶し、
    前記検出部は、前記第1の記憶部に記憶している各正規コマンドの順序、種類、および、処理パラメータと、前記第2の記憶部に記憶している履歴情報で示される実行した一連の処理で受信した各受信コマンドの順序、種類、および、処理パラメータが一致するか否かにより不正アクセスの有無を検出する。
  19. 前記クレーム14に記載の携帯可能電子装置であって、
    前記第1の記憶部には、正規処理情報として、さらに、正規の一連の処理で用いられる各正規コマンドを受信すべきタイミングの許容範囲を示す情報を記憶し、
    前記第2の記憶部には、履歴情報として、さらに、実行した一連の処理において各コマンドを受信したタイミングを示す情報を記憶し、
    前記検出部は、さらに、前記第2の記憶部に記憶されている履歴情報で示される各コマンドを受信したタイミングが前記第1の記憶部に記憶されている各正規コマンドの受信すべきタイミングの許容範囲内であるか否かにより不正なアクセスの有無を検出する。
  20. 前記クレーム14に記載の携帯可能電子装置であって、
    前記第1の記憶部には、複数種類の一連の処理に対応して複数の正規処理情報が記憶され、
    前記検出部は、さらに、前記第2の記憶部に記憶されている履歴情報で示される実行した一連の処理で受信した各受信コマンドの内容と一致する正規コマンドが規定されている正規処理情報が前記第1の記憶部に記憶されているか否かにより不正なアクセスを検出する。
  21. 前記クレーム14に記載の携帯可能電子装置であって、
    さらに、前記検出部により履歴情報から不正なアクセスが検出された場合、不正なアクセスを受けたことを外部へ通知する通知部を有する。
  22. 前記クレーム14に記載の携帯可能電子装置であって、
    さらに、前記検出部により履歴情報から不正なアクセスが検出された場合、当該携帯可能電子装置の機能を停止させる停止部を有する。
  23. 前記クレーム22に記載の携帯可能電子装置であって、
    さらに、前記停止部により機能が停止された状態において外部装置からの管理鍵による認証要求を受け付け、前記管理鍵による認証が成功した場合に、前記停止部により停止されている機能を回復させる処理を行う回復部を有する。
  24. 前記クレーム14に記載の携帯可能電子装置であって、
    前記各部を具備するモジュールと、
    前記モジュールが埋設された本体と、を有する。
  25. 携帯可能電子装置の制御方法であって、
    外部装置からの処理を要求するコマンドを受信することと、
    この受信したコマンドに応じて実行すべき処理内容が記憶部に記憶している正当な処理内容を示す情報と一致するか否かを判断することと、
    この判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致すると判断した場合、前記受信したコマンドに応じた処理を実行すること。
  26. 前記クレーム25に記載の制御方法であって、
    前記記憶部には、正当な処理内容を示す情報として、正当な各コマンドの種類および処理パラメータを示す情報が記憶され、
    前記判断することは、前記受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致するか否かを判断し、
    前記実行することは、前記受信したコマンドの種類および処理パラメータが前記記憶部に記憶している正当なコマンドの種類および処理パラメータと一致する場合、前記受信したコマンドに応じた処理を実行する。
  27. 前記クレーム25に記載の制御方法であって、
    前記記憶部には、正当な処理内容を示す情報として、さらに、正当な各コマンド間の受信間隔の許容範囲を示す情報を記憶し、
    前記判断することは、さらに、前記受信したコマンドと当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であるか否かを判断し、
    前記実行することは、前記判断により前記受信したコマンドと当該コマンドの直前に受信したコマンドとの受信間隔が前記記憶部に記憶されている正当な各コマンドの受信間隔の許容範囲内であると判断した場合、前記受信したコマンドに応じた処理を実行する。
  28. 前記クレーム25に記載の制御方法であって、
    前記記憶部には、複数種類の一連の処理に対応して複数の正当な処理内容を示す情報が記憶され、
    さらに、順次受信したコマンドの内容に基づいて前記記憶部に記憶されている複数の正当な処理内容を示す情報から正当な処理内容を示す情報を選択すること、を有し、
    前記判断することは、前記受信したコマンドに応じた処理内容が前記選択した正当な処理内容を示す情報と一致するか否かを判断し、
    前記実行することは、前記判断により受信したコマンドに応じた処理内容が前記選択した正当な処理内容を示す情報と一致すると判断した場合、前記受信したコマンドに応じた処理を実行する。
  29. 前記クレーム25に記載の制御方法であって、
    前記実行することは、特定のコマンドについては処理内容をデータを一時的に記憶する一時記憶部に記憶する処理を行い、
    さらに、前記判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致しないと判断した場合、前記一時記憶部に記憶している処理内容を破棄することと、
    前記判断により一連の処理が完了するまでの全てのコマンドが前記記憶部に記憶している処理内容と一致すると判断された場合、前記一時記憶部に記憶した処理内容を実行すること、を有する。
  30. 前記クレーム25に記載の制御方法であって、
    さらに、前記判断により受信したコマンドに応じた処理内容が前記記憶部に記憶されている処理内容と一致しないと判断した場合、当該携帯可能電子装置の機能を停止させるエラー処理を行うことと、
    前記エラー処理により機能が停止された状態において外部装置からの管理鍵による認証要求を受け付け、前記管理鍵による認証が成功した場合に、前記エラー処理により停止されている機能を回復させる処理を行うこと。
  31. 携帯可能電子装置の制御方法であって、
    外部装置からのコマンドを受信することと、
    受信したコマンドに応じた処理を実行することと、
    前記受信したコマンドに応じて実行した処理内容を示す履歴情報を第2の記憶部に記憶することと、
    第1の記憶部に予め記憶されている正規の一連の処理内容を示す正規処理情報に基づいて、前記第2の記憶部に記憶されている履歴情報から不正なアクセスを検出すること。
  32. 前記クレーム31に記載の制御方法であって、
    前記不正なアクセスを検知することは、当該携帯可能電子装置が起動した場合に、前記第1の記憶部に記憶されている正規処理情報に基づいて、前記第2の記憶部に記憶されている直前に実行した一連の処理内容を示す履歴情報から不正なアクセスを検出する。
  33. 前記クレーム31に記載の制御方法であって、
    前記第1の記憶部には、正規処理情報として、正規の一連の処理で用いられる各正規コマンドの順序、種類、および、処理パラメータを示す情報が記憶され、
    前記不正なアクセスを検出することは、前記第1の記憶部に記憶している各正規コマンドの順序、種類、および、処理パラメータと前記第2の記憶部に記憶している履歴情報で示される実行した一連の処理で受信した各受信コマンドの順序、種類、および、処理パラメータが一致するか否かにより不正なアクセスの有無を検出する。
  34. 前記クレーム31に記載の制御方法であって、
    正規の一連の処理内容を示す正規処理情報としては、正規の一連の処理で用いられる各正規コマンドを受信すべきタイミングの許容範囲を示す情報が前記第1の記憶部に予め記憶され、
    前記履歴情報としては、実行した一連の処理において受信した各受信コマンドを受信したタイミングを示す情報が第2の記憶部に記憶され、
    前記不正なアクセスを検出することは、さらに、前記第2の記憶部に記憶されている履歴情報で示される各受信コマンドを受信したタイミングが前記第1の記憶部に記憶されている各正規コマンドの受信すべきタイミングの許容範囲内であるか否かにより不正なアクセスの有無を検出する。
  35. 前記クレーム31に記載の制御方法であって、
    前記第1の記憶部には、複数種類の一連の処理に対応する複数の正規処理情報が予め記憶され、
    前記不正なアクセスを検出することは、前記第2の記憶部に記憶されている履歴情報で示される実行した一連の処理で受信した各受信コマンドの内容と一致する各正規コマンドが規定されている正規処理情報が前記第2の記憶部に記憶されているか否かにより不正なアクセスを検出する。
  36. 前記クレーム31に記載の制御方法であって、
    さらに、前記履歴情報から不正なアクセスが検出された場合、不正なアクセスを受けたことを外部へ通知すること、を有する。
JP2008554955A 2006-06-15 2007-06-13 携帯可能電子装置およびその制御方法 Pending JP2009540395A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006166046 2006-06-15
JP2006176699 2006-06-27
PCT/JP2007/062363 WO2007145366A1 (en) 2006-06-15 2007-06-13 Portable electronic device and control method thereof

Publications (1)

Publication Number Publication Date
JP2009540395A true JP2009540395A (ja) 2009-11-19

Family

ID=38831872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008554955A Pending JP2009540395A (ja) 2006-06-15 2007-06-13 携帯可能電子装置およびその制御方法

Country Status (4)

Country Link
US (1) US8595826B2 (ja)
EP (2) EP2296108B1 (ja)
JP (1) JP2009540395A (ja)
WO (1) WO2007145366A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013149342A (ja) * 2013-04-15 2013-08-01 Mega Chips Corp 半導体記憶装置

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4702628B2 (ja) 2006-07-27 2011-06-15 ソニー株式会社 電子機器、情報処理方法、およびプログラム
EP2270758B1 (en) * 2009-06-30 2013-11-27 Kabushiki Kaisha Toshiba Portable electronic apparatus, processing apparatus for portable electronic apparatus, and data processing method in portable electronic apparatus
US8896715B2 (en) 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US9965626B2 (en) 2013-07-18 2018-05-08 Empire Technology Development Llc Memory attack detection
FR3026525B1 (fr) * 2014-09-26 2018-03-23 Compagnie Ind Et Financiere Dingenierie Ingenico Procede d'auto-detection d'une tentative de piratage d'une carte electronique de paiement, carte, terminal et programme correspondants
US10318952B1 (en) 2015-05-23 2019-06-11 Square, Inc. NFC base station and passive transmitter device
US9721123B1 (en) 2015-12-11 2017-08-01 Square, Inc. Microcontroller intercept of EMV card contact switch
US10063577B2 (en) * 2016-01-13 2018-08-28 International Business Machines Corporation Securing deployments using command analytics
US10402816B2 (en) 2016-12-31 2019-09-03 Square, Inc. Partial data object acquisition and processing
US9858448B1 (en) 2017-01-31 2018-01-02 Square, Inc. Communication protocol speedup and step-down
US10621590B2 (en) 2017-02-22 2020-04-14 Square, Inc. Line-based chip card tamper detection
US10438189B2 (en) 2017-02-22 2019-10-08 Square, Inc. Server-enabled chip card interface tamper detection
US10877673B2 (en) * 2017-12-15 2020-12-29 Microchip Technology Incorporated Transparently attached flash memory security
US11706192B2 (en) * 2018-10-17 2023-07-18 Battelle Memorial Institute Integrated behavior-based infrastructure command validation
US20220109985A1 (en) * 2019-02-08 2022-04-07 SSenStone Inc. Virtual code-based control system, method and program, control device and control signal generating means for unmanned moving object

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60207957A (ja) 1984-03-31 1985-10-19 Toshiba Corp デ−タ保護方式
JPS61196368A (ja) * 1985-02-27 1986-08-30 Hitachi Ltd Icカ−ド不正検出方式
JPS61278989A (ja) * 1985-06-04 1986-12-09 Toppan Moore Co Ltd Icカ−ドのリ−ダ・ライタ
JP2724008B2 (ja) * 1989-12-01 1998-03-09 沖電気工業株式会社 本人確認処理システム及び本人確認処理方法
JP3053301B2 (ja) * 1992-09-11 2000-06-19 三菱電機株式会社 半導体集積回路及びicカード
JPH0850644A (ja) * 1994-08-04 1996-02-20 Dainippon Printing Co Ltd Icカードとicカード用装置及びicカードにおけるデータ転送方法
WO1997005551A1 (en) * 1995-07-31 1997-02-13 Verifone, Inc. Method and apparatus for operating resources under control of a security module or other secure processor
FI104223B1 (fi) * 1996-12-17 1999-11-30 Nokia Mobile Phones Ltd Menetelmä SIM-kortin ohjauskomentojen välittämiseksi ulkopuoliselta laitteelta SM-kortille
JP3822707B2 (ja) * 1997-05-08 2006-09-20 株式会社ルネサステクノロジ Icカード
US6275938B1 (en) * 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
JPH11282991A (ja) * 1998-03-30 1999-10-15 Dainippon Printing Co Ltd Icカード
US6092120A (en) * 1998-06-26 2000-07-18 Sun Microsystems, Inc. Method and apparatus for timely delivery of a byte code and serialized objects stream
FR2785695B1 (fr) * 1998-11-06 2003-01-31 Bull Cp8 Procede de compactage d'un programme de type code objet intermediaire executable dans un systeme embarque muni de ressources de traitement de donnees, systeme compacteur et systeme embarque multi-applications correspondants
FR2790844B1 (fr) * 1999-03-09 2001-05-25 Gemplus Card Int Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme
JP4498494B2 (ja) * 1999-08-04 2010-07-07 大日本印刷株式会社 Icカード
WO2001022359A1 (en) 1999-09-22 2001-03-29 Fujitsu Limited Non-contact ic card
FR2809892B1 (fr) * 2000-05-31 2002-09-06 Gemplus Card Int Procede de protection contre la modification frauduleuse de donnees envoyees a un support electronique securise
PT1305708E (pt) 2001-05-11 2003-10-31 Sospita As Mecanismo de numeracao de sequencia para assegurar a integridade da ordem de execucao de aplicacoes de placas inteligentes interdependentes
JP2002342734A (ja) * 2001-05-15 2002-11-29 Toshiba Corp 携帯可能電子装置およびその履歴データ記憶方法
JP3967155B2 (ja) * 2002-03-07 2007-08-29 大日本印刷株式会社 Icカード
JP3727907B2 (ja) * 2002-06-28 2005-12-21 株式会社東芝 携帯可能電子媒体の発行システム及び発行方法と携帯可能電子媒体
US7395435B2 (en) * 2002-09-20 2008-07-01 Atmel Corporation Secure memory device for smart cards
JP4103995B2 (ja) * 2003-02-12 2008-06-18 株式会社エヌ・ティ・ティ・データ Icチップ制御システム、通信端末及びコンピュータプログラム
JP3988995B2 (ja) * 2003-03-14 2007-10-10 ソニー・エリクソン・モバイルコミュニケーションズ株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP3851289B2 (ja) * 2003-04-22 2006-11-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、プログラム、記録媒体、及び制御方法
JP4072503B2 (ja) * 2004-02-04 2008-04-09 シャープ株式会社 補助演算用コプロセッサ内蔵型icカード及びその制御方法
EP1575293A1 (en) * 2004-03-11 2005-09-14 Canal+ Technologies Dynamic smart card management
US7584386B2 (en) * 2004-04-21 2009-09-01 Stmicroelectronics Sa Microprocessor comprising error detection means protected against an attack by error injection
US8621602B2 (en) * 2004-06-09 2013-12-31 Nxp B.V. One-time authentication system
EP1662788A1 (fr) * 2004-11-24 2006-05-31 Nagravision SA Unité de traitement de données audio/vidéo numériques et méthode de contrôle d'accès audites données
JP4849606B2 (ja) * 2006-04-28 2012-01-11 株式会社日立製作所 制御フロー誤り検出方法、データ処理装置、及びコンパイラ
JP4896837B2 (ja) * 2007-08-20 2012-03-14 株式会社東芝 携帯可能電子装置および携帯可能電子装置の制御方法
US8087071B2 (en) * 2008-12-05 2011-12-27 International Business Machines Corporation Authentication method and system
JP2010182270A (ja) * 2009-02-09 2010-08-19 Toshiba Corp 携帯可能電子装置および携帯可能電子装置におけるデータ管理方法
EP2262259A1 (en) * 2009-06-08 2010-12-15 Nagravision S.A. Method for monitoring execution of data processing program instructions in a security module

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013149342A (ja) * 2013-04-15 2013-08-01 Mega Chips Corp 半導体記憶装置

Also Published As

Publication number Publication date
US20090132852A1 (en) 2009-05-21
WO2007145366A1 (en) 2007-12-21
EP2033145B1 (en) 2011-04-06
EP2296108B1 (en) 2012-11-14
US8595826B2 (en) 2013-11-26
EP2033145A4 (en) 2009-12-09
EP2296108A1 (en) 2011-03-16
EP2033145A1 (en) 2009-03-11

Similar Documents

Publication Publication Date Title
JP2009540395A (ja) 携帯可能電子装置およびその制御方法
US7735734B2 (en) Portable terminal unit
AU2008248013B2 (en) Dynamically programmable RFID transponder
US7428992B2 (en) Secure device and system for issuing IC cards
JP4896837B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
JP4701618B2 (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
KR101783526B1 (ko) Ic 카드, 전자 장치 및 휴대 가능 전자 장치
CN102546169A (zh) 控制用户认证保护功能执行的方法和***尤其对资源访问
JP2010044739A (ja) 複合機能icカードおよび指先ガイド付きリーダ/ライタ装置
JPH11184992A (ja) Icカードおよびicカードが挿入される装置
JP2007149078A (ja) 携帯可能電子装置、icカード、データ処理装置及びデータ処理システム
JP2006099616A (ja) 携帯可能電子装置及び携帯可能電子装置の制御方法
JP2008310596A (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
JP2006146558A (ja) 証明書発行装置、証明書発行方法、および証明書発行プログラム
JP2014059731A (ja) Icカードおよび携帯可能電子装置
JP2011060136A (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法
JP5019210B2 (ja) 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法
JP2007066330A (ja) 認証装置およびその方法
JP2006163492A (ja) 決済システム
JP2003288564A (ja) メモリカード
JP2005174185A (ja) セキュアデバイスと情報処理装置
JP2006244224A (ja) 指紋認証システム、icカード及び指紋認証方法
JP2009009417A (ja) 情報処理システム、リーダ/ライタ、情報処理装置、アクセス制限管理方法、およびプログラム
KR20080051286A (ko) 터치 스크린 입력 장치가 구비된 보안성 확보를 위한시스템 및 그 방법
US20200057732A1 (en) Ic card and method of controlling ic card