(58)【調査した分野】(Int.Cl.,DB名)
データの入力または出力の機能である入出力機能を有する1以上の入出力部と、複数のアプリケーションのプログラムを記憶するとともに、前記入出力機能それぞれを許可するか否かを示す入出力機能制御情報を前記アプリケーション毎に記憶するメモリ部とを備える可搬型電子媒体に用いられる入出力機能制御方法であって、
制御部が、指定された前記アプリケーションに対するデータの入出力機能の実行を指示する命令を受信した場合、前記アプリケーションに対応して前記メモリ部に記憶されている前記入出力機能制御情報に前記命令により実行が指示された前記入出力機能を許可することが設定されているか否かを判断し、許可することが設定されていると判断したときには、指定された前記アプリケーションのプログラムにより前記命令を実行して前記入出力部によるデータの入力あるいは出力を行うよう指示し、許可しないことが設定されていると判断したときには前記命令の実行を中断する制御過程と、
入出力機能制御部が、前記制御過程における指示に従って前記データを入力あるいは出力するよう前記入出力部を制御する入出力機能制御過程と、
を有することを特徴とする入出力機能制御方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
入出力デバイスを有する従来のICカードの場合、単アプリケーションに必要な入出力機能が搭載されていた。しかし、1枚のICカードに複数のアプリケーションを搭載する場合、アプリケーション単位で許可あるいは禁止したい入出力機能が異なることがある。複数のアプリケーションを一括して入出力機能を制御すると、あるアプリケーションについては禁止したい入出力機能も利用可能となり、不正な情報の取得や書き込み、誤処理などの可能性が生じ、セキュリティホールとなる可能性もある。
【0005】
本発明は、このような事情を考慮してなされたもので、搭載している複数アプリケーション毎に入出力機能を許可するか否かを制御することができる可搬型電子媒体、及び入出力機能制御方法を提供する。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、データの入力または出力の機能である入出力機能を有する1以上の入出力部と、前記入出力部によるデータの入力または出力を制御する入出力機能制御部と、複数のアプリケーションのプログラムを記憶するとともに、前記入出力機能それぞれを許可するか否かを示す入出力機能制御情報を前記アプリケーション毎に記憶するメモリ部と、指定された前記アプリケーションに対するデータの入出力機能の実行を指示する命令を受信した場合、前記アプリケーションに対応して前記メモリ部に記憶されている前記入出力機能制御情報に前記命令により実行が指示された前記入出力機能を許可することが設定されているか否かを判断し、許可することが設定されていると判断したときには、指定された前記アプリケーションのプログラムにより前記命令を実行して前記入出力部によるデータの入力あるいは出力を行うよう前記入出力機能制御部に指示し、許可しないことが設定されていると判断したときには前記命令の実行を中断する制御部と、を備えることを特徴とする可搬型電子媒体である。
【0007】
また、本発明は、上述した可搬型電子媒体であって、前記メモリ部は、複数のアプリケーションのプログラムを記憶するプログラムメモリ部と、前記アプリケーションが使用するデータ及び前記入出力機能制御情報を前記アプリケーションごとに記憶するデータメモリ部とを備える、ことを特徴とする。
【0008】
また、本発明は、上述した可搬型電子媒体であって、前記データメモリ部は、前記アプリケーションが使用するデータを記憶する前記アプリケーション毎のデータ領域と、前記データ領域を管理する情報と前記入出力機能制御情報とを前記アプリケーションごとに記憶する管理領域とを有する、ことを特徴とする。
【0009】
また、本発明は、上述した可搬型電子媒体であって、前記管理領域は、前記データ領域を管理する情報と前記入出力機能制御情報とを記憶する前記アプリケーションごとのアプリケーション別管理領域と、前記アプリケーション別管理領域を管理する情報を記憶するシステム管理領域とを有する、ことを特徴とする。
【0010】
また、本発明は、上述した可搬型電子媒体であって、前記アプリケーションの前記入出力機能制御情報は、当該アプリケーションのプログラム内に記述される、ことを特徴とする。
【0011】
また、本発明は、上述した可搬型電子媒体であって、前記可搬型電子媒体は、IC部を備えたICカードであり、前記IC部は、前記メモリ部と前記制御部を備える、ことを特徴とする。
【0012】
また、本発明は、データの入力または出力の機能である入出力機能を有する1以上の入出力部と、複数のアプリケーションのプログラムを記憶するとともに、前記入出力機能それぞれを許可するか否かを示す入出力機能制御情報を前記アプリケーション毎に記憶するメモリ部とを備える可搬型電子媒体に用いられる入出力機能制御方法であって、制御部が、指定された前記アプリケーションに対するデータの入出力機能の実行を指示する命令を受信した場合、前記アプリケーションに対応して前記メモリ部に記憶されている前記入出力機能制御情報に前記命令により実行が指示された前記入出力機能を許可することが設定されているか否かを判断し、許可することが設定されていると判断したときには、指定された前記アプリケーションのプログラムにより前記命令を実行して前記入出力部によるデータの入力あるいは出力を行うよう指示し、許可しないことが設定されていると判断したときには前記命令の実行を中断する制御過程と、入出力機能制御部が、前記制御過程における指示に従って前記データを入力あるいは出力するよう前記入出力部を制御する入出力機能制御過程と、を有することを特徴とする入出力機能制御方法である。
【発明の効果】
【0013】
本発明によれば、ICカードなどの可搬型電子媒体において、搭載している複数アプリケーション毎に入出力機能を許可するか否かを制御することが可能となる。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら本発明の実施形態を詳細に説明する。
本発明の一実施形態による可搬型電子媒体であるICカードは、データの入力または出力の機能である入出力機能を1以上有し、ICチップのメモリ内に1以上のアプリケーションを搭載する。また、ICチップのメモリ内には、各アプリケーションの発行処理時に、そのアプリケーションが利用可能とする、あるいは必要とする入出力機能を許可し、他の入出力機能を禁止するよう設定された入出力機能制御情報が書き込まれる。本実施形態のICカードは、外部からの命令によってアプリケーションを実行して入出力機能にアクセスする際に、入出力機能制御情報を参照して入出力機能の許可あるいは禁止の設定状態を確認する。本実施形態のICカードは、許可が設定されていてれば命令に従った処理を実行して処理結果を返し、禁止が設定されていれば命令を実行せずに処理できない旨を処理結果として返す。
【0016】
図1は、本発明の一実施形態によるICカード1の構成を示す機能ブロック図である。ICカード1は、非接触通信を行う非接触型ICカード、接触通信を行う接触型ICカード、非接触通信と接触通信の両方を行う複合型ICカードのいずれであってもよい。ICカード1は、ICチップ11、出力機能制御部12、出力部13、入力機能制御部14、及び入力部15を備えて構成される。
【0017】
ICチップ11は、ICカード用ICチップであり、メモリ部110、通信機能部113、及びCPU(中央処理装置)114を備えて構成される。
【0018】
メモリ部110は、各種メモリにより実現され、プログラムメモリ部111、及びデータメモリ部112を備えて構成される。プログラムメモリ部111は、例えば、ROM(Read Only Memory)やEEPROM(Electrically Erasable Programmable ROM)で実現され、複数のアプリケーションそれぞれのプログラムを記憶する。データメモリ部112は、例えば、EEPROMやRAM(Random Access Memory)で実現され、各アプリケーションのデータを記憶するとともに、各入出力機能へのアクセスを許可するか否かを示す入出力機能制御情報をアプリケーション毎に記憶する。
【0019】
通信機能部113は、ISO7816−3、またはISO14443に既定される接触/非接触通信により、外部装置2との間で通信を行う。CPU114は、外部装置2から供給される電力、データの搬送波として外部装置2から出力される電磁波より取り出された電力、あるいは、ICチップ内に内蔵される電池から供給される電力により動作する。CPU114は、通信機能部113を介して、外部装置2からのコマンド等を受信して実行し、コマンドの実行結果であるレスポンスを外部装置2に送信する。つまり、CPU114は、受信したコマンドに応じて、指定されたアプリケーションのプログラムをプログラムメモリ部111から読み出して実行し、データメモリ部112に対して、指定されたアプリケーションのデータの書き込みや読み出しを行う。CPU114は、外部装置2から受信したコマンドがアプリケーションにより使用されるデータの入出力命令である場合、そのアプリケーションに対応した入出力機能制御情報を参照し、命令されている入出力機能へのアクセスを制御する。CPU114は、アクセスが許可されている場合はコマンドを実行して正常終了のレスポンスを外部装置2に出力し、アクセスが許可されていない場合はコマンドの実行を中断して異常終了のレスポンスを出力する。
【0020】
出力機能制御部12は、出力部13によるデータの出力を制御するコントローラである。出力部13は、データの出力機能を有する出力デバイスであり、例えば、ディスプレーやスピーカなどである。入力機能制御部14は、入力部15によるデータの入力を制御するコントローラである。入力部15は、データの入力機能を有する入力デバイスであり、例えば、キーパッドや指紋センサなどである。なお、ディスプレーやスピーカ、キーパッドや指紋センサなどの入出力機能には、それぞれユニークな識別情報(ID番号)が割り当てられている。
【0021】
同図においては、出力部13と入力部15をそれぞれ1つのみ示しているが、ICカード1は、出力部13と入力部15をそれぞれ複数備え得る。この場合、ICカード1は、それぞれの出力部13を制御する複数の出力機能制御部12、それぞれの入力部15を制御する複数の入力機能制御部14を備える。なお、1つの出力機能制御部12が複数の出力部13を制御してもよく、1つの入力機能制御部14が複数の入力部15を制御してもよい。また、ICカード1は、出力機能制御部12及び出力部13と、入力機能制御部14及び入力部15とのいずれかを備えなくともよい。
【0022】
図2は、データメモリ部112のメモリ構成を示す図である。
データメモリ部112は、ISO/IEC7816シリーズにより規定されている基本的なファイル階層構造を有する。このファイル階層構造において、MF(Master File)は最上位に位置するファイルであり、ファイル構成の根幹となる唯一の必須専用ファイルである。MFは、ファイル制御情報及び割付可能メモリの情報を含んでいる。そして、MFの配下に、DF(Dedicated File)やEF(Elementary File)が構成される。DFは、ファイル制御情報及び任意選択の割付可能メモリの情報を含むファイルであり、EFやDFの親ファイルとなることができる。EFは、同一のファイル識別子を有しているデータ単位又はレコードの集合である。
【0023】
データメモリ部112は、カードシステム管理領域31と、プログラムメモリ部111に記憶されている各アプリケーションに対応したアプリケーション別管理領域32、及びデータ領域33とにより構成される。カードシステム管理領域31はMFに相当し、アプリケーション別管理領域32はDFに相当し、データ領域33はEFに相当する。
【0024】
同図においては、プログラムメモリ部111が、アプリケーションAのプログラムとアプリケーションBのプログラムとを記憶しており、データメモリ部112が、カードシステム管理領域31と、アプリケーションAのアプリケーション別管理領域32、及びデータ領域33と、アプリケーションBのアプリケーション別管理領域32、及びデータ領域33とにより構成される場合の例について示している。以下では、アプリケーションX(X=A、B,…)のアプリケーション別管理領域32、データ領域33をそれぞれ、アプリケーション別管理領域32x、データ領域33x(x=a,b,…)と記載する。例えば、同図では、アプリケーションAのアプリケーション別管理領域32、データ領域33をそれぞれ、アプリケーション別管理領域32a、データ領域33aとし、アプリケーションBのアプリケーション別管理領域32、データ領域33をそれぞれ、アプリケーション別管理領域32b、データ領域33bとしている。
【0025】
上記のようにデータメモリ部112では、カードシステム管理領域31やアプリケーション別管理領域32などの管理領域と、データ領域33とに分割してファイルを管理している。データ領域33xにはアプリケーションXが使用するファイルの内容を格納し、アプリケーション別管理領域32xにはデータ領域33xに格納しているファイルの情報を格納する。ファイルの情報は、ファイルの名称、ファイルの種類、先頭アドレス、ファイルサイズ等の情報から構成される。さらに、アプリケーション別管理領域32xには、アプリケーションXの入出力機能制御情報も含まれる。また、カードシステム管理領域31は、各アプリケーション別管理領域32のファイルの情報を格納する。
【0026】
CPU114がアプリケーションXに対応したデータ領域33xのファイルにアクセスする場合には、まず、カードシステム管理領域31の情報を基にアプリケーションXのアプリケーション別管理領域32xに対してアクセスを行い、そのアプリケーション別管理領域32xのファイルの情報を基にアプリケーションXに対応したデータ領域33xに格納されているファイルにアクセスする。また、CPU114は、アプリケーションXが選択されているときに入出力機能へのアクセス命令を実行する際には、アプリケーションXのアプリケーション別管理領域32xの入出力機能制御情報を参照し、アクセスを許可するか禁止するかを制御する。
【0027】
なお、入出力機能制御情報は、カード発行時に書換え不可の情報としてアプリケーション別管理領域32に書き込んでもよく、書換え条件(例えば、1種類以上の認証の成功など)が満たされた場合に書き換えを許可するようにしてもよい。書換え不可とした場合、不正防止の効果が高まり、セキュリティが向上する。一方、書換え条件が満たされた場合に書き換えを許可する場合は、利便性、汎用性が高まる。
【0028】
図3は、各アプリケーション別管理領域32に格納される入出力機能制御情報の例を示す図である。アプリケーションXのアプリケーション別管理領域32xに含まれる入出力機能制御情報は、アプリケーションXについて許可あるいは禁止すべき入出力機能(入力機能または出力機能)を示す。同図に示す入出力機能制御情報は、ビットb0−b7からなる8ビット長の情報であり、各ビットb0−b7は、それぞれ異なる入出力機能に対応している。ビットb0−b7は、設定値が「1」の場合はそのビットが示す入出力機能を許可することを示し、設定値が「0」の場合はそのビットが示す入出力機能を禁止することを示す。本実施形態では、ビットb0は、識別情報「A0h」(「h」は16進数であることを示す。)のディスプレーに対応し、ビットb1は、識別情報「A1h」のスピーカに対応している。また、ビットb4は、識別情報「A4h」のキーパッドに対応し、ビットb5は、識別情報「A5h」のスピーカに対応している。例えば、ビットb0が「1」の場合、ディスプレーへのアクセスを許可することを示し、ビットb0が「0」の場合、ディスプレーへのアクセスを禁止することを示す。
【0029】
図4は、ICカード1と外部装置2間のコマンドレスポンスのシーケンス例を示す図である。
ICカード1に電力が供給され、電源が投入された後、外部装置2は、処理を実行させるアプリケーションを選択するコマンドをICカード1に出力する(ステップS11)。ICカード1のCPU114は、受信したコマンドに従ってアプリケーションを選択すると、正常終了を示すレスポンスを外部装置2へ返送する(ステップS12)。
【0030】
次に、外部装置2は、データの書き込みコマンドをICカード1に出力する(ステップS13)。このコマンドには、書き込み対象のデータが設定される。ICカード1のCPU114は、受信したコマンドに設定されているデータを、現在選択されているアプリケーションに対応したデータ領域33に書き込む。ICカード1のCPU114は、データの書き込みが正常に終了すると、正常終了を示すレスポンスを外部装置2へ返送する(ステップS14)。
【0031】
続いて、外部装置2は、今書き込んだデータをディスプレーに表示するコマンドを出力する(ステップS15)。このコマンドには、ディスプレーの識別情報「A0h」が設定される。ICカード1のCPU114は、現在選択されているアプリケーションの入出力機能制御情報を参照し、識別情報「A0h」の入出力機能が許可されているか禁止されているかを判断する。入出力機能が許可されている場合、CPU114は、ディスプレー(出力部13)へデータを表示させると、正常終了を示すレスポンスを外部装置2へ返送する(ステップS16)。
【0032】
続いて、外部装置2は、キーパッドからのデータ入力を指示するコマンドを出力する(ステップS17)。このコマンドには、キーパッドの識別情報「A4h」が設定される。ICカード1のCPU114は、現在選択されているアプリケーションの入出力機能制御情報を参照し、識別情報「A4h」の入出力機能が許可されているか禁止されているかを判断する。入出力機能が禁止されている場合、CPU114は、処理を中断し、異常終了を示すレスポンスを外部装置2へ返送する(ステップS18)。
【0033】
図5は、ICカード1における入出力機能制御処理を示すフロー図である。
ICカード1の通信機能部113は、外部装置2から命令(コマンド)を受信し、CPU114へ出力する(ステップS21)。CPU114は、受信した命令が、入出力機能へのアクセスを行う命令であるかを判断する(ステップS22)。
【0034】
CPU114は、受信した命令が、入出力機能へのアクセスを行う命令であると判断した場合(ステップS22:YES)、その命令からアクセス対象の入出力機能を判断する(ステップS23)。例えば、CPU114は、命令に含まれる入出力機能の識別情報を読み出してもよく、命令の種別を特定するコードや命令に設定されているパラメータなど、命令に設定されている任意の情報に基づいて入出力機能の識別情報を特定してもよい。CPU114は、プログラムメモリ部111のカードシステム管理領域31に格納されているファイルの情報から、現在選択されているアプリケーションに対応したアプリケーション別管理領域32を特定する。CPU114は、特定されたアプリケーション別管理領域32に格納されている入出力機能制御情報のビットのうち、命令からアクセス対象と判断された入出力機能の識別情報に対応したビットを読み出す(ステップS24)。
【0035】
CPU114は、ステップS24で読み出したビットがアクセスの許可を示していると判断した場合(ステップS25:YES)、命令を最後まで処理し、処理結果を外部装置2に出力する(ステップS26)。一方、CPU114は、ステップS24で読み出したビットがアクセスの禁止を示していると判断した場合(ステップS25:NO)、命令処理を中断し、非活性化である旨の処理結果を外部装置2に出力する(ステップS27)。
なお、ステップS22において、CPU114は、受信した命令が、入出力機能へのアクセスを行わない命令であると判断した場合(ステップS22:NO)、命令を最後まで処理し、処理結果を外部装置2に出力する(ステップS26)。
【0036】
図4のシーケンスを用いて、
図5の処理を説明する。
ICカード1の通信機能部113は、外部装置2からアプリケーションを選択するコマンド(命令)を受信し、CPU114へ出力する(
図4のステップS11、
図5のステップS21)。ここでは、アプリケーションAを選択するコマンドを受信したとする。CPU114は、受信したコマンドが入出力機能へのアクセスを行う命令ではないと判断し(
図5のステップS22:NO)、受信したコマンドを実行してアプリケーションAを選択する。CPU114は、データメモリ部112のカードシステム管理領域31に格納されているファイルの情報から、現在選択されているアプリケーションAに対応したアプリケーション別管理領域32aを特定する。CPU114は、正常終了のレスポンスを通信機能部113へ出力し、通信機能部113は、CPU114から入力されたレスポンスを外部装置2へ返送する(
図4のステップS12、
図5のステップS26)。
【0037】
ICカード1の通信機能部113は、外部装置2からデータの書き込みを指示するコマンドを受信し、CPU114へ出力する(
図4のステップS13、
図5のステップS21)。CPU114は、受信したコマンドは、入出力機能へのアクセスを行う命令ではないと判断する(
図5のステップS22:NO)。CPU114は、アプリケーションAのプログラムをプログラムメモリ部111から読み出して、受信したコマンドを実行する。つまり、CPU114は、現在選択されているアプリケーションAに対応したアプリケーション別管理領域32aに格納されているファイルの情報に基づいてアプリケーションAのデータ領域33aを特定し、コマンドに書き込み対象として設定されているデータを書き込む。CPU114は、データの書き込みが終了すると、正常終了のレスポンスを通信機能部113へ出力し、通信機能部113はCPU114から入力されたレスポンスを外部装置2へ返送する(
図4のステップS14、
図5のステップS26)。
【0038】
ICカード1の通信機能部113は、外部装置2から今書き込んだデータをディスプレーに表示するコマンドを受信し、CPU114へ出力する(
図4のステップS15、
図5のステップS21)。CPU114は、受信したコマンドが入出力機能へのアクセスを行う命令であると判断する(
図5のステップS22:YES)。CPU114は、受信したコマンドからアクセス対象の入出力機能の識別情報「A0h」を読み出す(
図5のステップS23)。CPU114は、現在選択されているアプリケーションAに対応したアプリケーション別管理領域32aに格納されている入出力機能制御情報から、識別情報「A0h」に対応したビットb0の値を読み出す(ステップS24)。ビットb0の値が「1」であり、アクセスの許可を示している場合(ステップS25:YES)、CPU114は、アプリケーションAのプログラムによりコマンドを実行し、書き込まれたデータをデータ領域33aから読み出して出力機能制御部12に出力し、ディスプレー(出力部13)への出力を指示する。出力機能制御部12は、CPU114から入力されたデータをディスプレーに表示させる。CPU114は、正常終了のレスポンスを通信機能部113へ出力し、通信機能部113はCPU114から入力されたレスポンスを外部装置2へ返送する(
図4のステップS16、
図5のステップS26)。
【0039】
ICカード1の通信機能部113は、キーパッドからのデータ入力を指示するコマンドを外部装置2より受信し、CPU114へ出力する(
図4のステップS17、
図5のステップS21)。CPU114は、受信したコマンドが入出力機能へのアクセスを行う命令であると判断する(
図5のステップS22:YES)。CPU114は、受信したコマンドからアクセス対象の入出力機能の識別情報「A4h」を読み出す(
図5のステップS23)。CPU114は、現在選択されているアプリケーションAに対応したアプリケーション別管理領域32aに格納されている入出力機能制御情報から、識別情報「A4h」に対応したビットb4の値を読み出す(ステップS24)。ビットb4の値が「0」であり、アクセスの禁止を示している場合(ステップS25:NO)、CPU114は、コマンドの実行処理を中断し、異常終了のレスポンスを通信機能部113へ出力し、通信機能部113はCPU114から入力されたレスポンスを外部装置2へ返送する(
図4のステップS18、
図5のステップS27)。
【0040】
なお、上記実施形態では、アプリケーション別管理領域32が入出力機能制御情報を記憶しているが、プログラムメモリ部111に記憶されている各アプリケーションのプログラム内に入出力機能制御情報を記述してもよい。CPU114は、選択されたアプリケーションのプログラム内に記述されている入出力機能制御情報を参照する。
【0041】
以上説明した実施形態によれば、複数のアプリケーションを搭載するICカードにおいて、アプリケーション毎に、アプリケーションのデータの入力機能または出力機能である入出力機能を許可するか否かを制御することが可能となる。
【0042】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。