ICカード、ICカードの処理装置、及びICカードの処理システム
【課題】 より効率的に論理チャネルのセキュリティ条件を設定する事ができるICカード、ICカードの処理装置、及びICカードの処理システムを提供する。
【解決手段】 一実施形態に係るICカードは、外部機器と通信を行うICカードであって、セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、前記外部機器から送信されたセキュリティ条件問合せコマンドを受信する受信手段と、前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、生成された前記レスポンスを前記外部機器に送信する送信手段と、を具備する。
【解決手段】 一実施形態に係るICカードは、外部機器と通信を行うICカードであって、セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、前記外部機器から送信されたセキュリティ条件問合せコマンドを受信する受信手段と、前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、生成された前記レスポンスを前記外部機器に送信する送信手段と、を具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ICカード、ICカードの処理装置、及びICカードの処理システムに関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるICカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0003】
ICカードは、例えば、国際標準規格ISO/IEC7816に準拠したICカードである。ICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0004】
ICカードは、ICカードを処理する処理装置からコマンドを受信した場合、受信したコマンドに応じてアプリケーションを実行する。これにより、ICカードは、種々の機能を実現することができる。ICカードは、処理装置と通信を行う場合、論理チャネルを確立する。ICカードは、論理チャネル毎にコマンドを実行することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−206895号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
また、ICカードは、論理チャネル毎にセキュリティ条件を設定することができる。ICカードは、設定されたセキュリティ条件に基づいて、受信したコマンドの実行の可否を判断することができる。
【0007】
通常、ICカードは、処理装置から受信するコマンドに応じて認証を行うことにより、論理チャネルのセキュリティ条件を設定する。セキュリティ条件は、例えば、書き込みコマンド、読み出しコマンド、追記コマンドなど、種々のコマンド毎に設定される。
【0008】
例えば、複数の論理チャネルが確立された場合、ICカードは、確立された各論理チャネルにおいて、上記のセキュリティ条件の設定を行う必要がある。この為、セキュリティ条件が設定されるコマンドの種類が多い場合、セキュリティ条件を設定する為の処理に要するコマンドレスポンスの回数が嵩むという課題がある。この結果、処理時間が長くなるという課題がある。
【0009】
そこで、より効率的に論理チャネルのセキュリティ条件を設定する事ができるICカード、ICカードの処理装置、及びICカードの処理システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
一実施形態に係るICカードは、外部機器と通信を行うICカードであって、セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、前記外部機器から送信されたセキュリティ条件問合せコマンドを受信する受信手段と、前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、生成された前記レスポンスを前記外部機器に送信する送信手段と、を具備する。
【図面の簡単な説明】
【0011】
【図1】図1は、一実施形態に係るICカード処理システムの構成例について説明するための図である。
【図2】図2は、一実施形態に係るICカードの構成例について説明するための図である。
【図3】図3は、一実施形態に係るICカードの構成例について説明するための図である。
【図4】図4は、一実施形態に係るICカードの構成例について説明するための図である。
【図5】図5は、一実施形態に係るICカードの構成例について説明するための図である。
【図6】図6は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【図7】図7は、一実施形態に係るICカードの処理の例について説明するための図である。
【図8】図8は、一実施形態に係るICカードの処理の例について説明するための図である。
【図9】図9は、一実施形態に係るICカードの処理の例について説明するための図である。
【図10】図10は、一実施形態に係るICカードの処理の例について説明するための図である。
【図11】図11は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【図12】図12は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【図13】図13は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら、一実施形態に係るICカード、ICカードの処理装置、及びICカードの処理システムについて詳細に説明する。
【0013】
本実施形態に係る携帯可能電子装置(ICカード)20及びICカード20を処理する処理装置(端末装置)10は、例えば、接触通信、及び/または非接触通信の機能を備える。これにより、ICカード20及び端末装置10は、互いにデータの送受信を行うことができる。
【0014】
図1は、一実施形態に係るICカード処理システム1の構成例を示す。
ICカード処理システム1は、ICカード20を処理する端末装置10と、ICカード20と、を備える。
【0015】
端末装置10は、CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、ディスプレイ18、及び電源部19を備える。CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、及びディスプレイ18は、それぞれバスを介して互いに接続されている。
【0016】
CPU11は、端末装置10全体の制御を司る制御部として機能する。CPU11は、ROM12又は不揮発性メモリ14に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、CPU11は、カードリーダライタ15を介してICカード20とコマンド及びレスポンスの送受信を行う。
【0017】
ROM12は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。RAM13は、ワーキングメモリとして機能する揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。例えば、RAM13は、カードリーダライタ15を介して外部の機器と送受信するデータを一時的に格納する。また、RAM13は、CPU11が実行するプログラムを一時的に格納する。
【0018】
不揮発性メモリ14は、例えばEEPROM、FRAMなどを備える。不揮発性メモリ14は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【0019】
カードリーダライタ15は、ICカード20と通信を行うためのインターフェース装置である。カードリーダライタ15は、接触通信、または非接触通信によりICカード20とデータの送受信を行う。
【0020】
接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、ICカード20が装着されるスロットと、ICカード20が備えるコンタクトパターンと接続される複数の接触端子を備える。
【0021】
スロットにICカード20が装着される場合、カードリーダライタ15の複数の接触端子は、ICカード20のコンタクトパターンに接続される。これにより、端末装置10とICカード20とは電気的に接続される。カードリーダライタ15は、スロットに装着されるICカード20に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【0022】
また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。
【0023】
カードリーダライタ15は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ15は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置10は、通信可能範囲に存在するICカード20に対してデータを非接触で送信することができる。
【0024】
さらに、カードリーダライタ15のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ15は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置10は、ICカード20から送信された元のデータを取得することができる。
【0025】
操作部17は、例えば操作キーなどを備え、操作者により入力される操作に基づいて、操作信号を生成する。操作部17は、生成した操作信号をCPUに入力する。これにより、CPU11は、操作者により入力された操作に基づいて処理を実行することができる。
【0026】
ディスプレイ18は、CPU11、または図示されないグラフィックコントローラなどの表示処理モジュールから入力される映像を表示するための信号に基づいて種々の情報を表示する。
【0027】
電源部19は、端末装置10の各部に電力を供給する。電源部19は、例えば、商用電源より電力を受け取り、所定の電圧に変換し、端末装置10の各部に供給する。
【0028】
図2は、一実施形態に係るICカード20の構成例を示す。
図2に示すように、ICカード20は、例えば、矩形状の本体21と、本体21内に内蔵されたICモジュール22とを備える。ICモジュール22は、ICチップ23と、通信部24とを備える。ICチップ23と通信部24とは、互いに接続された状態でICモジュール22内に形成されている。
【0029】
なお、本体21は、少なくとも通信部24が配設されるICモジュール22を設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
【0030】
ICチップ23は、通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32などを備える。通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32は、バスを介して互いに接続されている。
【0031】
通信部24は、端末装置(外部機器)10のカードリーダライタ15と通信を行うためのインターフェースである。通信部24は、接触通信、または非接触通信により、端末装置10とデータの送受信を行う。
【0032】
接触通信のインターフェースとして用いられる場合、通信部24は、カードリーダライタ15の接触端子と接続されるコンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりICモジュール22の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置10のカードリーダライタ15の接触端子と接触可能に形成されている。
【0033】
コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれ端子として機能する。通信部24は、コンタクトパターンを介してカードリーダライタ15とデータの送受信を行うことができる。
【0034】
また、非接触通信のインターフェースとして用いられる場合、通信部24は、信号処理部とアンテナとを備える。
【0035】
信号処理部は、端末装置10に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置10に送信するデータの変調(増幅)を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。
【0036】
アンテナは、例えば、ICモジュール22内に所定の形状で配設される金属線により構成される。ICカード20は、端末装置10に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ICカード20は、端末装置10に対してデータを送信することができる。また、ICカード20は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置10から送信されるデータを認識する。
【0037】
例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信部24は、2値の論理データを取得する。通信部24は、解析したデータをバスを介してCPU25に送信する。
【0038】
CPU25は、ICカード20全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置10から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【0039】
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード20内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード20の仕様に応じて組み込まれる。
【0040】
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、通信部24を介して端末装置10から受信したデータを一時的に格納する。またRAM27は、通信部24を介して端末装置10に送信するデータを一時的に格納する。またさらに、RAM27は、CPU25が実行するプログラムを一時的に格納する。
【0041】
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ28は、ICカード20の運用用途に応じて制御プログラム及び種々のデータを格納する。
【0042】
たとえば、不揮発性メモリ28では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU25は、不揮発性メモリ28、または、ROM26に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【0043】
電源部31は、端末装置10の各部に電力を供給する。ICカード20が接触通信を行う構成を備える場合、電源部31は、通信部24のコンタクトパターンを介してカードリーダライタ15から供給される電力をICカード20の各部に供給する。
【0044】
また、ICカード20が非接触通信を行う構成を備える場合、カードリーダライタ15のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部31は、動作クロックを生成する。電源部31は、発生させた電力及び動作クロックをICカード20の各部に電力を供給する。ICカード20の各部は、電力の供給を受けた場合、動作可能な状態になる。
【0045】
ロジック部32は、演算処理をハードウエアにより行う演算部である。例えば、ロジック部32は、端末装置10からのコマンドに基づいて、暗号化、復号、及び乱数の生成などの処理を行う。例えば、端末装置10から相互認証コマンドを受信する場合、ロジック部32は、乱数を生成し、生成した乱数をCPU25に伝送する。
【0046】
また、不揮発性メモリ28は、図3により示されるように、データが格納されている種々のファイルを有する。不揮発性メモリ28は、例えば、ISO/IEC7816により規定されているファイル構造を有する。不揮発性メモリ28は、Master File(MF)281、Dedicated File(DF)282、及び複数のElementary File(EF)を有する。
【0047】
MFは、ファイル構造の根幹となるファイルである。DFは、MFの下位に創成される。DFは、アプリケーション及びアプリケーションに用いられるデータなどをグループ化して格納するファイルである。EFは、DFの下位に創成される。EFは、様々なデータを格納するためのファイルである。また、MFの直下にEFが置かれる場合もある。
【0048】
EFには、Working Elementary File(WEF)とInternal Elementary File(IEF)などの種類がある。WEFは、作業用EFであり、個人情報などを格納する。IEFは、内部EFであり、例えば、セキュリティのための暗号鍵(暗証番号)などのデータを記憶する。
【0049】
図3に示される例では、不揮発性メモリ28は、WEF283、WEF283に付随するFile Control Information(FCI)284、IEF(IEF#1)285、IEF(IEF#2)286、及びIEF(IEF#3)287を備える。
【0050】
WEF283は、上記したように、例えば個人情報などの情報を格納するファイルである。FCI284は、WEF283に対する例えば読み出し(READ)、または書き込み(WRITE)などのコマンド処理毎、または、複数のコマンドにより構成されるグループ毎の認証の要否(セキュリティ条件)を示す情報である。例えば、FCI284は、上記のようなコマンド処理を実行するために、暗証番号を用いた認証が必要であるか否かを示す。
【0051】
図4により示されるように、FCI284は、例えばTag Length Value(TLV)形式でデータを格納する。本例では、FCI284は、READコマンド、及びWRITEコマンドに応じた処理を実行するために認証が必要であることを示しているとする。
【0052】
IEF285は、WEF283の情報を読み出す場合に行われる認証処理に用いられる暗証番号を記憶している。IEF286は、WEF283に対して情報を書き込む場合に行われる認証処理に用いられる暗証番号を記憶している。IEF287は、セキュリティ条件を継承する場合に行われる認証に用いられる暗証番号を記憶している。なお、各IEFは、それぞれ複数のコマンドにより構成されるグループに対応する暗証番号を記憶する構成であってもよい。
【0053】
ICカード20のCPU25は、端末装置10との通信が確立された場合、論理チャネルを設定する。論理チャネルは、理論上の伝送路であり、ICカード20及び端末装置10がデータを区別するために用いられる。CPU25は、例えば、RAM27を用いて論理チャネルを確立する。
【0054】
図5は、RAM27に確立された論理チャネルの例を示す。
この例では、論理チャネル#1及び論理チャネル#2が確立されている。各論理チャネルは、論理チャネルを識別する為の識別子、暗証番号ごとの認証結果(セキュリティ条件)などを含む。なお、セキュリティ条件は、論理チャネルが確立された場合の初期状態において「0(NG)」に設定される。
【0055】
ICカード20は、端末装置10から受信する認証(VERIFY)コマンドに応じて認証処理を実行し、認証処理の結果に応じて、論理チャネル内のセキュリティ条件を更新する。即ち、ICカード20は、端末装置10から受信するVERIFYコマンドに応じて認証処理を実行し、認証処理の結果が正常(または一致)などである場合、論理チャネル内のセキュリティ条件を「1(OK)」に設定する。
【0056】
ICカード20と通信を行う場合、端末装置10は、選択するファイルと、確立する論理チャネルとを指定するためのSELECTコマンドをICカード20に送信する。
【0057】
ICカード20は、SELECTコマンドを受信した場合、受信したSELECTコマンドの解析を行い、コマンドにより指定されるファイル、及び論理チャネルを認識する。ICカード20は、認識した情報に基づいて、論理チャネルを確立し、ファイルを選択する。さらに、ICカード20は、SELECTコマンドに応じたレスポンスを端末装置10に送信する。
【0058】
さらに、端末装置10は、VERIFYコマンドを生成する。このVERIFYコマンドは、処理対象のファイルを示す情報と、論理チャネルを示す情報と、暗証番号(暗号鍵)とを有する。端末装置10は、生成したVERIFYコマンドをICカード20に送信する。
【0059】
ICカード20は、VERIFYコマンドを受信した場合、暗証番号の認証処理を行う。即ち、ICカード20は、VERIFYコマンドを受信した場合、受信したVERIFYコマンドの解析を行い、指定された論理チャネル、ファイル、及び暗証番号を認識する。
【0060】
ICカード20は、認識した情報に基づいて、論理チャネルを選択し、コマンドにより指定されたファイルを読み出す。即ち、ICカード20は、VERIFYコマンドにより指定されたIEFに記憶されている暗証番号を読み出す。
【0061】
ICカード20は、IEFから読み出した暗証番号と、VERIFYコマンドの暗証番号とが一致するか否か比較する。IEFから読み出した暗証番号と、VERIFYコマンドの暗証番号とが一致する場合、ICカード20は、論理チャネル内のセキュリティ条件に「1(OK)」をセットする。さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを端末装置10に送信する。
【0062】
ICカード20は、コマンド毎または複数のコマンドにより構成されたグループ毎に上記した認証処理を行うことにより、図5により示されるような論理チャネル、及び各セキュリティ条件をRAM27に確立することができる。
【0063】
また、ICカード20は、所定の継承処理を行うことにより、論理チャネルのセキュリティ条件を他の論理チャネルから継承することができる。なお、ICカード20は、セキュリティ条件の継承を行う前に、継承元の論理チャネルにセキュリティ条件が確立されているか否か判定する。セキュリティ条件が確立されていない場合、端末装置10は、上記の認証処理を行うことにより、新たな論理チャネル、及び各セキュリティ条件をICカード20のRAM27に確立させるように種々のコマンドをICカード20に送信する。
【0064】
また、既にセキュリティ条件が確立されている場合、端末装置10は、セキュリティ条件を継承させる為のコマンドをICカード20に送信することにより、セキュリティ条件を継承させる。
【0065】
図6は、ICカード処理システム1の処理の例について示す。ここでは、論理チャネル#1を新たに確立する処理について示す。
端末装置10は、まずSELECTコマンドを生成する。このSELECTコマンドは、選択するファイルと、論理チャネルとを指定するためのものである。本例では、端末装置10は、選択するDFを示す情報と、論理チャネル#2を示す情報とをSELECTコマンドに付加する。端末装置10は、生成したSELECTコマンドをICカード20に送信する(ステップS11)。
【0066】
ICカード20は、SELECTコマンドを受信した場合、受信したSELECTコマンドの解析を行い、コマンドにより指定されるファイル、及び論理チャネルを認識する。ICカード20は、認識した情報に基づいて、論理チャネルを確立し、ファイルを選択する(ステップS12)。本例では、ICカード20は、論理チャネル#2を確立し、Current DFを設定する。
【0067】
さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを生成する。例えば、ICカード20は、正常にSELECTコマンドに応じた処理を完了した場合、正常終了を示すレスポンスを生成する。ICカード20は、生成したレスポンスを端末装置10に送信する(ステップS13)。
【0068】
さらに、端末装置10は、セキュリティ条件の継承に用いられる論理チャネルにセキュリティ条件が確立されているか問い合わせる為のセキュリティ条件問合せコマンドを生成する。端末装置10は、生成したセキュリティ条件問合せコマンドをICカード20に送信する(ステップS14)。
【0069】
セキュリティ条件問合せコマンドは、例えば図7に示されるコマンドであり、当該コマンドを受けとる論理チャネルを示す情報と、問合せ先の論理チャネルを示す情報とを有する。当該コマンドを受けとる論理チャネルを示す情報は、例えば、上記のSELECTコマンドにより選択された論理チャネルを示す情報である。
【0070】
図7は、セキュリティ条件問合せコマンドの例を示す。
セキュリティ条件問合せコマンドは、端末装置10からICカード20に送信されるコマンドである。端末装置10は、ISO/IEC 7816−4により規定されているAPDU(Application Protocol Data Unit)を準拠したフォーマットでコマンドを生成する。セキュリティ条件継承コマンドは、「CLA」、「INS」、「P1」、「P2」、及び「Le」などを有する。
【0071】
「CLA」は、コマンドの層別を示すclass byteである。「INS」は、コマンドの種別を示すinstruction byteである。「P1」及び「P2」は、「INS」に応じたパラメータを示すparameter byteである。「Le」は、レスポンスの長さを指定するためのデータである。
【0072】
本例では、「CLA」は、本コマンドを受け取る論理チャネルを示す情報を含む。「INS」は、当該コマンドがセキュリティ条件問合せコマンドであることを示すデータである。また、例えば、「P2」は、セキュリティ条件を問い合わせる論理チャネルを示す情報を含む。
【0073】
図7により示された例によると、「CLA」の値は、「00000010」である。これは、本コマンドを受け取る論理チャネルが論理チャネル#2であることを示している。また、「P2」の値は、「01」である。これは、セキュリティ条件を問い合わせる論理チャネルが論理チャネル#1であることを示している。
【0074】
ICカード20は、セキュリティ条件問合せコマンドを受信した場合、問合せ先の論理チャネルを参照し、セキュリティ条件を確認する(ステップS15)。さらに、ICカード20は、セキュリティ条件を確認した結果に基づいてレスポンスを生成し、生成されたレスポンスを端末装置10に送信する(ステップS16)。
【0075】
図8は、セキュリティ条件問合せコマンドを受信した場合のICカード20の処理の例を示す。
【0076】
ICカード20は、セキュリティ条件問合せコマンドを受信する(ステップS31)。ICカード20は、受信したセキュリティ条件問合せコマンドの解析を行う(ステップS32)。これにより、ICカード20は、セキュリティ条件を問合せる論理チャネルを認識する(ステップS33)。
【0077】
ICカード20は、認識した情報に基づいて、論理チャネルを参照し、参照した論理チャネルの認証結果(セキュリティ条件)を読み出す(ステップS34)。即ち、図5により示された例によると、ICカード20は、論理チャネル#1を参照し、セキュリティ条件IEF#1及びIEF#2を読み出す。
【0078】
ICカード20は、読み出したセキュリティ条件に基づいてレスポンスを生成する。ICカード20は、ISO/IEC 7816−4により規定されているAPDU(Application Protocol Data Unit)を準拠したフォーマットでレスポンスを生成する。例えば、ICカード20は、図9により示されるレスポンスを生成する。
【0079】
図9は、ICカード20により生成されたセキュリティ条件問合せコマンドに対するレスポンスの例を示す。
セキュリティ条件問合せコマンドに対するレスポンスは、「Response data field」、及び「Response trailer」を有する。ICカード20は、セキュリティ条件問合せコマンドに応じて実行した処理の結果に基づいて、「Response data field」、及び「Response trailer」に値を付加することにより、セキュリティ条件問合せコマンドに対するレスポンスを生成する。
【0080】
「Response data field」は、「data1」及び「data2」を有する。「data1」及び「data2」は、セキュリティ条件問合せコマンドに応じた処理の結果として得られたデータが格納されるフィールドである。例えば、ICカード20は、RAM27から読み出したセキュリティ条件を「data1」及び「data2」にセットする。
【0081】
例えば、ICカード20は、RAM27から読み出したセキュリティ条件IEF#1の値をData1にセットする(ステップS35)。また、ICカード20は、RAM27から読み出したセキュリティ条件IEF#2の値をData2にセットする(ステップS36)。
【0082】
「Response trailer」は、「SW1」及び「SW2」を有する。「SW1」及び「SW2」は、コマンド処理の正常終了、エラー、または他の状態を示すステータスワードである。正常に処理を行った場合、ICカード20は、正常終了を示す値を「SW1」、及び「SW2」に付加する。
【0083】
例えば、図5及び図9により示された例によると、ICカード20は、「data1」の値としてセキュリティ条件IEF#1の値「1(0x01)」をセットする。さらに、ICカード20は、「data2」の値としてセキュリティ条件IEF#2の値「1(0x01)」をセットする。またさらに、ICカード20は、「SW1」及び「SW2」の値として正常終了を示す「0x9000」をセットする。ICカード20は、生成されたレスポンスを端末装置10に送信する(ステップS37)。
【0084】
端末装置10は、レスポンスを受信すると、端末装置10は、レスポンスの解析を行う。図10は、セキュリティ条件問合せコマンドに対するレスポンスを受信した場合の端末装置10の動作を示す。
【0085】
図10により示されるように、端末装置10は、セキュリティ条件問合せコマンドに対するレスポンスを受信する(ステップS41)。端末装置10は、受信したセキュリティ条件問合せコマンドに対するレスポンスの解析を行う(ステップS42)。これにより、端末装置10は、セキュリティ条件の問合せの結果を認識する。
【0086】
端末装置10は、セキュリティ条件が確立済みであるか否か判定する(ステップS43)。即ち、端末装置10は、セキュリティ条件問合せコマンドにより指定した論理チャネル内に値が「1:OK」であるセキュリティ条件があるか否か判定する。
【0087】
なお、端末装置10は、論理チャネル内の全てのセキュリティ条件の値が「1:OK」である場合、セキュリティ条件が確立済みであると判定する構成であってもよいし、論理チャネル内に値が「1:OK」であるセキュリティ条件が少なくとも1つあればセキュリティ条件が確立済みであると判定する構成であってもよい。
【0088】
ステップS43でセキュリティ条件が確立済みであると判定した場合、端末装置10は、セキュリティ条件継承コマンドを生成し、ICカード20に送信する(ステップS44)。また、ステップS43でセキュリティ条件が確立済みではないと判定した場合、端末装置10は、通常の認証処理を行う為のコマンド(例えばVERIFYコマンド)を生成し、ICカード20に送信する(ステップS45)。
【0089】
図6に示されるように、端末装置10は、図10に示す処理によりセキュリティ条件が確立済みであると判定した場合、セキュリティ条件継承コマンドを生成し、ICカード20に送信する(ステップS17)。
【0090】
セキュリティ条件継承コマンドは、例えば図11に示されるコマンドであり、新たに確立する論理チャネルを示す情報と、継承元の論理チャネルを示す情報と、継承における認証に用いられる暗証番号とを有する。新たに確立する論理チャネルを示す情報は、例えば、上記のSELECTコマンドにより選択された論理チャネルを示す情報である。
【0091】
図11により示されるように、セキュリティ条件継承コマンドは、「CLA」、「INS」、「P1」、「P2」、「Lc」、及び「Data」を有する。
【0092】
「CLA」は、コマンドの層別を示すclass byteである。「INS」は、コマンドの種別を示すinstruction byteである。「P1」及び「P2」は、「INS」に応じたパラメータを示すparameter byteである。
【0093】
「Lc」は、「Data」のデータの長さ(バイト数)を示すlength field for cording number Ncである。「Data」は、当該コマンドのデータ本体を示すcommand data fieldである。
【0094】
本例では、「CLA」は、新たに確立する論理チャネルを示す情報(新論理チャネル情報)を含む。また、例えば、「P2」は、セキュリティ条件を受け継ぐ論理チャネルを示す情報(旧論理チャネル情報)を含む。また、「Data」は、暗証番号を有する。また、例えば、「P1」は、処理対象のファイルを示す情報を含む。本例では、セキュリティ条件継承コマンドは、「P1」としてIEF287を示す情報を含む。
【0095】
図6により示されるように、ICカード20は、セキュリティ条件継承コマンドを受信した場合、セキュリティ条件を継承する処理を行う(ステップS18)。
【0096】
図12は、論理チャネルのセキュリティ条件を他の論理チャネルから継承する場合のICカード20の処理の例を示す。ここでは、論理チャネル#1(旧論理チャネル)のセキュリティ条件を継承し、論理チャネル#2(新論理チャネル)を新たに確立する処理について示す。
【0097】
図12に示されるように、ICカード20は、ステップS51でセキュリティ条件継承コマンドを受信した場合、受信したセキュリティ条件継承コマンドの解析を行う(ステップS52)。これにより、ICカード20は、セキュリティ条件を継承する論理チャネル、ファイルを示す情報、及び暗証番号を認識する。
【0098】
ICカード20は、認識した情報に基づいて、論理チャネルを選択し、コマンドにより指定されたファイルを読み出す。本例によると、ICカード20は、セキュリティ条件継承コマンドにより指定されたIEF287に記憶されている情報を読み出す(ステップS53)。即ち、ICカード20は、IEF287から暗証番号を読み出す。
【0099】
ICカード20は、IEF287から読み出した暗証番号と、セキュリティ条件継承コマンドの暗証番号とが一致するか否か比較する(ステップS54)。IEF287から読み出した暗証番号と、セキュリティ条件継承コマンドの暗証番号とが一致する場合、ICカード20は、旧論理チャネル情報が示す論理チャネルのセキュリティ条件を、新論理チャネル情報が示す論理チャネルにコピーする(ステップS55)。
【0100】
さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを生成する。例えば、ICカード20は、正常にセキュリティ条件継承コマンドに応じた処理を完了した場合、正常終了を示すレスポンスを生成する(ステップS56)。
【0101】
また、IEF287から読み出した暗証番号と、セキュリティ条件継承コマンドの暗証番号とが一致しない場合、ICカード20は、エラーを示すレスポンスを生成する(ステップS57)。
【0102】
図6により示されるように、ICカード20は、セキュリティ条件継承コマンドに対するレスポンスを端末装置10に送信する(ステップS19)。
【0103】
端末装置10は、セキュリティ条件継承コマンドに対するレスポンスを受信することにより、ICカード20においてセキュリティ条件の継承が正常に行われたか否かを判断することができる。
【0104】
次に、FCI284により認証が必要であると設定されている処理をICカード20に行わせる場合の例について説明する。なお、ここでは、FCI284により認証が必要であると設定されている処理として、読み出し処理(READ)をICカード20に行わせる例について説明する。
【0105】
端末装置10は、読み出し処理をICカード20に行わせる場合、READコマンドを生成する。このREADコマンドは、処理対象のファイルを示す情報と、論理チャネルを示す情報とを有する。本例では、端末装置10は、WEF283を示す情報と、論理チャネル#2を示す情報とをREADコマンドに付加する。端末装置10は、生成したREADコマンドをICカード20に送信する(ステップS20)。
【0106】
ICカード20は、FCI284により認証が必要であると設定されている処理を指示するコマンドを受信した場合、セキュリティ条件の確認を行う(ステップS21)。本例によると、ICカード20は、READコマンドを受信した場合、セキュリティ条件の確認を行い(ステップS22)、セキュリティ条件が「1:OK」である場合に、READコマンドに基づく処理を実行する。
【0107】
図13は、セキュリティ条件の確認が必要なコマンドを受信した場合のICカード20の処理の例を示す。
【0108】
ICカード20は、READコマンドを受信する(ステップS61)。ICカード20は、READコマンドを受信した場合、受信したREADコマンドの解析を行う(ステップS62)。これにより、ICカード20は、コマンドにより指定される論理チャネル、及びファイルを認識する。
【0109】
ICカード20は、認識した情報に基づいて、コマンドにより指定されたファイルに付加されているFCI284を読み出す(ステップS63)。ICカード20は、認識したコマンドの種類と、FCI284とに基づいて、認証が必要か否か判断する(ステップS64)。
【0110】
認証が必要である場合、ICカード20は、認識したコマンドの種類に応じたセキュリティ条件をRAM27から読み出す(ステップS65)。本例によると、ICカード20は、READコマンドに対応するセキュリティ条件をRAM27から読み出す。ICカード20は、読み出したセキュリティ条件が、OKを示すものであるか否かを判断する(ステップS66)。
【0111】
ステップS66において、読み出したセキュリティ条件がOKを示すものである場合、または、ステップS64において、認証が必要ないと判断した場合、ICカード20は、受信したREADコマンドに応じた処理を実行する(ステップS67)。即ち、ICカード20は、コマンドにより指定されたWEF283のデータを読み出す。
【0112】
さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを生成する。例えば、ICカード20は、正常にREADコマンドに応じた処理を完了した場合、読み出したデータをデータ本体として正常終了を示すレスポンスを生成する(ステップS68)。
【0113】
また、ステップS66において、読み出したセキュリティ条件がOKを示すものではない場合、ICカード20は、エラーを示すレスポンスを生成する(ステップS69)。
【0114】
図6により示されるように、ICカード20は、READコマンドに対するレスポンスを端末装置10に送信する(ステップS22)。
【0115】
この構成によると、端末装置10はICカード20にセキュリティ条件が確立されているか否か判定し、ICカード20にセキュリティ条件が確立されている場合にセキュリティ条件継承コマンドをICカード20に送信する。ICカード20は、セキュリティ条件継承コマンドを受信した場合、受信したコマンドに含まれる暗証番号と自身が記憶する暗証番号とで認証を行う。認証結果が一致した場合、ICカード20は、論理チャネルのセキュリティ条件を、他の論理チャネルにコピーする。これにより、ICカード20は、より効率的且つ容易にセキュリティ条件を継承することができる。
【0116】
これにより、論理チャネルを確立する場合、複数のセキュリティ条件毎に認証をおこなう必要がなくなる。この為、コマンドの発行回数及び処理時間などを抑えることができる。この結果、より簡易な処理で論理チャネルのセキュリティ条件を設定する事ができるICカード、ICカードの処理装置、及びICカードの処理システムを提供することができる。
【0117】
なお、上記の実施形態では、IEF285は、READコマンドの認証に用いられる暗証番号を記憶し、IEF286は、WRITEコマンドの認証に用いられる暗証番号を記憶し、IEF287は、セキュリティ条件継承コマンドの認証に用いられる暗証番号を記憶するとして説明したが、この構成に限定されない。ICカード20は、1つの暗証番号を複数の認証処理に用いる構成であってもよい。
【0118】
また、上記の実施形態では、ICカード20は、セキュリティ条件継承コマンドに基づく認証が一致であった場合に、論理チャネルのセキュリティ条件を他の論理チャネルにコピーすると説明したが、この構成に限定されない。例えば、論理チャネルの識別子を書き換える構成であってもよい。
【0119】
また、上記した実施形態では、論理チャネルは、セキュリティ条件としてREADコマンド及びWRITEコマンドの実行の可否を示す情報を保持する構成として説明したが、この構成に限定されない。セキュリティ条件は、如何なるコマンド、ファイル毎に設定されてもよい。
【0120】
また、上記の実施形態では、ICカード20は、セキュリティ条件継承コマンドに基づく認証が一致であった場合に、論理チャネルのセキュリティ条件を他の論理チャネルにコピーすると説明したが、この構成に限定されない。例えば、ある論理チャネルのセキュリティ条件の一部を他の論理チャネルにコピーする構成であってもよい。さらに、セキュリティ条件の継承を行う際の認証を分けても良い。
【0121】
即ち、ICカード20は、ある論理チャネルのセキュリティ条件を一括して継承する場合に認証を行う構成であってもよいし、ある論理チャネルのセキュリティ条件の一部を継承する場合に認証を行う構成であってもよい。ICカード20は、認証結果が一致である場合に、ある論理チャネルのセキュリティ条件の一部、あるいは全てを他の論理チャネルに継承することが出来る。
【0122】
また、上記の実施形態では、論理チャネルは、セキュリティ条件としてREADコマンド及びWRITEコマンドの実行の可否を示す情報を保持する構成として説明したが、この構成に限定されない。セキュリティ条件は、3つ以上のセキュリティ条件を保持する構成であってもよい。
【0123】
端末装置10は、例えば、アプリケーション毎に論理チャネルに保持されているセキュリティ条件の数を予め記憶する。これにより、端末装置10は、SELECTコマンドによりICカード20上のアプリケーションを選択した時点で論理チャネルに保持されているセキュリティ条件の数を認識することができる。端末装置10は、認識したセキュリティ条件の数に応じてセキュリティ条件問合せコマンドの「Le」を設定する。
【0124】
また、ICカード20は、セキュリティ条件問合せコマンドに対するレスポンスの「Response data field」にさらに「data」を付加してもよい。例えば、論理チャネル内のセキュリティ条件が3つである場合、「data1」、「data2」、及び「data3」を含むレスポンスを生成する。
【0125】
また、上記した実施形態では、端末装置10は、セキュリティ条件問合せコマンドの「P2」により問い合わせる論理チャネルを指定すると説明したが、この構成に限定されない。端末装置10は、セキュリティ条件問合せコマンドのどのフィールドで問い合わせる論理チャネルを指定する構成であってもよい。
【0126】
また、端末装置10は、複数の論理チャネルのセキュリティ条件を同時に問い合わせる構成であってもよい。例えば、端末装置10は、セキュリティ条件問合せコマンドの「P1」により問い合わせる他の論理チャネルを指定する。
【0127】
また、端末装置10は、セキュリティ条件問合せコマンドに問い合わせる論理チャネルを指定するための情報を含む「Data」フィールドを付加する構成であってもよい。例えば、端末装置10は、「Data」を数ビット毎に分割し、分割したエリアにそれぞれ問い合わせる論理チャネルを指定する為の値を付加する構成であってもよい。
【0128】
また、この場合、ICカード20は、セキュリティ条件問合せコマンドに対するレスポンスの「Response data field」に、論理チャネル毎のセキュリティ条件の有無を示す情報を付加する。これにより、ICカード20は、複数の論理チャネルのセキュリティ条件を同時に端末装置10に伝達することが出来る。
【0129】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0130】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0131】
1…ICカード処理システム、10…端末装置、11…CPU、12…ROM、13…RAM、14…不揮発性メモリ、15…カードリーダライタ、17…操作部、18…ディスプレイ、19…電源部、20…ICカード、21…本体、22…ICモジュール、23…ICチップ、24…通信部、25…CPU、26…ROM、27…RAM、28…不揮発性メモリ、31…電源部、32…ロジック部。
【技術分野】
【0001】
本発明の実施形態は、ICカード、ICカードの処理装置、及びICカードの処理システムに関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるICカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0003】
ICカードは、例えば、国際標準規格ISO/IEC7816に準拠したICカードである。ICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0004】
ICカードは、ICカードを処理する処理装置からコマンドを受信した場合、受信したコマンドに応じてアプリケーションを実行する。これにより、ICカードは、種々の機能を実現することができる。ICカードは、処理装置と通信を行う場合、論理チャネルを確立する。ICカードは、論理チャネル毎にコマンドを実行することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−206895号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
また、ICカードは、論理チャネル毎にセキュリティ条件を設定することができる。ICカードは、設定されたセキュリティ条件に基づいて、受信したコマンドの実行の可否を判断することができる。
【0007】
通常、ICカードは、処理装置から受信するコマンドに応じて認証を行うことにより、論理チャネルのセキュリティ条件を設定する。セキュリティ条件は、例えば、書き込みコマンド、読み出しコマンド、追記コマンドなど、種々のコマンド毎に設定される。
【0008】
例えば、複数の論理チャネルが確立された場合、ICカードは、確立された各論理チャネルにおいて、上記のセキュリティ条件の設定を行う必要がある。この為、セキュリティ条件が設定されるコマンドの種類が多い場合、セキュリティ条件を設定する為の処理に要するコマンドレスポンスの回数が嵩むという課題がある。この結果、処理時間が長くなるという課題がある。
【0009】
そこで、より効率的に論理チャネルのセキュリティ条件を設定する事ができるICカード、ICカードの処理装置、及びICカードの処理システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
一実施形態に係るICカードは、外部機器と通信を行うICカードであって、セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、前記外部機器から送信されたセキュリティ条件問合せコマンドを受信する受信手段と、前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、生成された前記レスポンスを前記外部機器に送信する送信手段と、を具備する。
【図面の簡単な説明】
【0011】
【図1】図1は、一実施形態に係るICカード処理システムの構成例について説明するための図である。
【図2】図2は、一実施形態に係るICカードの構成例について説明するための図である。
【図3】図3は、一実施形態に係るICカードの構成例について説明するための図である。
【図4】図4は、一実施形態に係るICカードの構成例について説明するための図である。
【図5】図5は、一実施形態に係るICカードの構成例について説明するための図である。
【図6】図6は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【図7】図7は、一実施形態に係るICカードの処理の例について説明するための図である。
【図8】図8は、一実施形態に係るICカードの処理の例について説明するための図である。
【図9】図9は、一実施形態に係るICカードの処理の例について説明するための図である。
【図10】図10は、一実施形態に係るICカードの処理の例について説明するための図である。
【図11】図11は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【図12】図12は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【図13】図13は、一実施形態に係るICカード処理システムの処理の例について説明するための図である。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら、一実施形態に係るICカード、ICカードの処理装置、及びICカードの処理システムについて詳細に説明する。
【0013】
本実施形態に係る携帯可能電子装置(ICカード)20及びICカード20を処理する処理装置(端末装置)10は、例えば、接触通信、及び/または非接触通信の機能を備える。これにより、ICカード20及び端末装置10は、互いにデータの送受信を行うことができる。
【0014】
図1は、一実施形態に係るICカード処理システム1の構成例を示す。
ICカード処理システム1は、ICカード20を処理する端末装置10と、ICカード20と、を備える。
【0015】
端末装置10は、CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、ディスプレイ18、及び電源部19を備える。CPU11、ROM12、RAM13、不揮発性メモリ14、カードリーダライタ15、操作部17、及びディスプレイ18は、それぞれバスを介して互いに接続されている。
【0016】
CPU11は、端末装置10全体の制御を司る制御部として機能する。CPU11は、ROM12又は不揮発性メモリ14に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、CPU11は、カードリーダライタ15を介してICカード20とコマンド及びレスポンスの送受信を行う。
【0017】
ROM12は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。RAM13は、ワーキングメモリとして機能する揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。例えば、RAM13は、カードリーダライタ15を介して外部の機器と送受信するデータを一時的に格納する。また、RAM13は、CPU11が実行するプログラムを一時的に格納する。
【0018】
不揮発性メモリ14は、例えばEEPROM、FRAMなどを備える。不揮発性メモリ14は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【0019】
カードリーダライタ15は、ICカード20と通信を行うためのインターフェース装置である。カードリーダライタ15は、接触通信、または非接触通信によりICカード20とデータの送受信を行う。
【0020】
接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、ICカード20が装着されるスロットと、ICカード20が備えるコンタクトパターンと接続される複数の接触端子を備える。
【0021】
スロットにICカード20が装着される場合、カードリーダライタ15の複数の接触端子は、ICカード20のコンタクトパターンに接続される。これにより、端末装置10とICカード20とは電気的に接続される。カードリーダライタ15は、スロットに装着されるICカード20に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【0022】
また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ15は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。
【0023】
カードリーダライタ15は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ15は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置10は、通信可能範囲に存在するICカード20に対してデータを非接触で送信することができる。
【0024】
さらに、カードリーダライタ15のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ15は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置10は、ICカード20から送信された元のデータを取得することができる。
【0025】
操作部17は、例えば操作キーなどを備え、操作者により入力される操作に基づいて、操作信号を生成する。操作部17は、生成した操作信号をCPUに入力する。これにより、CPU11は、操作者により入力された操作に基づいて処理を実行することができる。
【0026】
ディスプレイ18は、CPU11、または図示されないグラフィックコントローラなどの表示処理モジュールから入力される映像を表示するための信号に基づいて種々の情報を表示する。
【0027】
電源部19は、端末装置10の各部に電力を供給する。電源部19は、例えば、商用電源より電力を受け取り、所定の電圧に変換し、端末装置10の各部に供給する。
【0028】
図2は、一実施形態に係るICカード20の構成例を示す。
図2に示すように、ICカード20は、例えば、矩形状の本体21と、本体21内に内蔵されたICモジュール22とを備える。ICモジュール22は、ICチップ23と、通信部24とを備える。ICチップ23と通信部24とは、互いに接続された状態でICモジュール22内に形成されている。
【0029】
なお、本体21は、少なくとも通信部24が配設されるICモジュール22を設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
【0030】
ICチップ23は、通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32などを備える。通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、電源部31、及びロジック部32は、バスを介して互いに接続されている。
【0031】
通信部24は、端末装置(外部機器)10のカードリーダライタ15と通信を行うためのインターフェースである。通信部24は、接触通信、または非接触通信により、端末装置10とデータの送受信を行う。
【0032】
接触通信のインターフェースとして用いられる場合、通信部24は、カードリーダライタ15の接触端子と接続されるコンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりICモジュール22の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置10のカードリーダライタ15の接触端子と接触可能に形成されている。
【0033】
コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれ端子として機能する。通信部24は、コンタクトパターンを介してカードリーダライタ15とデータの送受信を行うことができる。
【0034】
また、非接触通信のインターフェースとして用いられる場合、通信部24は、信号処理部とアンテナとを備える。
【0035】
信号処理部は、端末装置10に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置10に送信するデータの変調(増幅)を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。
【0036】
アンテナは、例えば、ICモジュール22内に所定の形状で配設される金属線により構成される。ICカード20は、端末装置10に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ICカード20は、端末装置10に対してデータを送信することができる。また、ICカード20は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置10から送信されるデータを認識する。
【0037】
例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信部24は、2値の論理データを取得する。通信部24は、解析したデータをバスを介してCPU25に送信する。
【0038】
CPU25は、ICカード20全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置10から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【0039】
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード20内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード20の仕様に応じて組み込まれる。
【0040】
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、通信部24を介して端末装置10から受信したデータを一時的に格納する。またRAM27は、通信部24を介して端末装置10に送信するデータを一時的に格納する。またさらに、RAM27は、CPU25が実行するプログラムを一時的に格納する。
【0041】
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ28は、ICカード20の運用用途に応じて制御プログラム及び種々のデータを格納する。
【0042】
たとえば、不揮発性メモリ28では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU25は、不揮発性メモリ28、または、ROM26に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【0043】
電源部31は、端末装置10の各部に電力を供給する。ICカード20が接触通信を行う構成を備える場合、電源部31は、通信部24のコンタクトパターンを介してカードリーダライタ15から供給される電力をICカード20の各部に供給する。
【0044】
また、ICカード20が非接触通信を行う構成を備える場合、カードリーダライタ15のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部31は、動作クロックを生成する。電源部31は、発生させた電力及び動作クロックをICカード20の各部に電力を供給する。ICカード20の各部は、電力の供給を受けた場合、動作可能な状態になる。
【0045】
ロジック部32は、演算処理をハードウエアにより行う演算部である。例えば、ロジック部32は、端末装置10からのコマンドに基づいて、暗号化、復号、及び乱数の生成などの処理を行う。例えば、端末装置10から相互認証コマンドを受信する場合、ロジック部32は、乱数を生成し、生成した乱数をCPU25に伝送する。
【0046】
また、不揮発性メモリ28は、図3により示されるように、データが格納されている種々のファイルを有する。不揮発性メモリ28は、例えば、ISO/IEC7816により規定されているファイル構造を有する。不揮発性メモリ28は、Master File(MF)281、Dedicated File(DF)282、及び複数のElementary File(EF)を有する。
【0047】
MFは、ファイル構造の根幹となるファイルである。DFは、MFの下位に創成される。DFは、アプリケーション及びアプリケーションに用いられるデータなどをグループ化して格納するファイルである。EFは、DFの下位に創成される。EFは、様々なデータを格納するためのファイルである。また、MFの直下にEFが置かれる場合もある。
【0048】
EFには、Working Elementary File(WEF)とInternal Elementary File(IEF)などの種類がある。WEFは、作業用EFであり、個人情報などを格納する。IEFは、内部EFであり、例えば、セキュリティのための暗号鍵(暗証番号)などのデータを記憶する。
【0049】
図3に示される例では、不揮発性メモリ28は、WEF283、WEF283に付随するFile Control Information(FCI)284、IEF(IEF#1)285、IEF(IEF#2)286、及びIEF(IEF#3)287を備える。
【0050】
WEF283は、上記したように、例えば個人情報などの情報を格納するファイルである。FCI284は、WEF283に対する例えば読み出し(READ)、または書き込み(WRITE)などのコマンド処理毎、または、複数のコマンドにより構成されるグループ毎の認証の要否(セキュリティ条件)を示す情報である。例えば、FCI284は、上記のようなコマンド処理を実行するために、暗証番号を用いた認証が必要であるか否かを示す。
【0051】
図4により示されるように、FCI284は、例えばTag Length Value(TLV)形式でデータを格納する。本例では、FCI284は、READコマンド、及びWRITEコマンドに応じた処理を実行するために認証が必要であることを示しているとする。
【0052】
IEF285は、WEF283の情報を読み出す場合に行われる認証処理に用いられる暗証番号を記憶している。IEF286は、WEF283に対して情報を書き込む場合に行われる認証処理に用いられる暗証番号を記憶している。IEF287は、セキュリティ条件を継承する場合に行われる認証に用いられる暗証番号を記憶している。なお、各IEFは、それぞれ複数のコマンドにより構成されるグループに対応する暗証番号を記憶する構成であってもよい。
【0053】
ICカード20のCPU25は、端末装置10との通信が確立された場合、論理チャネルを設定する。論理チャネルは、理論上の伝送路であり、ICカード20及び端末装置10がデータを区別するために用いられる。CPU25は、例えば、RAM27を用いて論理チャネルを確立する。
【0054】
図5は、RAM27に確立された論理チャネルの例を示す。
この例では、論理チャネル#1及び論理チャネル#2が確立されている。各論理チャネルは、論理チャネルを識別する為の識別子、暗証番号ごとの認証結果(セキュリティ条件)などを含む。なお、セキュリティ条件は、論理チャネルが確立された場合の初期状態において「0(NG)」に設定される。
【0055】
ICカード20は、端末装置10から受信する認証(VERIFY)コマンドに応じて認証処理を実行し、認証処理の結果に応じて、論理チャネル内のセキュリティ条件を更新する。即ち、ICカード20は、端末装置10から受信するVERIFYコマンドに応じて認証処理を実行し、認証処理の結果が正常(または一致)などである場合、論理チャネル内のセキュリティ条件を「1(OK)」に設定する。
【0056】
ICカード20と通信を行う場合、端末装置10は、選択するファイルと、確立する論理チャネルとを指定するためのSELECTコマンドをICカード20に送信する。
【0057】
ICカード20は、SELECTコマンドを受信した場合、受信したSELECTコマンドの解析を行い、コマンドにより指定されるファイル、及び論理チャネルを認識する。ICカード20は、認識した情報に基づいて、論理チャネルを確立し、ファイルを選択する。さらに、ICカード20は、SELECTコマンドに応じたレスポンスを端末装置10に送信する。
【0058】
さらに、端末装置10は、VERIFYコマンドを生成する。このVERIFYコマンドは、処理対象のファイルを示す情報と、論理チャネルを示す情報と、暗証番号(暗号鍵)とを有する。端末装置10は、生成したVERIFYコマンドをICカード20に送信する。
【0059】
ICカード20は、VERIFYコマンドを受信した場合、暗証番号の認証処理を行う。即ち、ICカード20は、VERIFYコマンドを受信した場合、受信したVERIFYコマンドの解析を行い、指定された論理チャネル、ファイル、及び暗証番号を認識する。
【0060】
ICカード20は、認識した情報に基づいて、論理チャネルを選択し、コマンドにより指定されたファイルを読み出す。即ち、ICカード20は、VERIFYコマンドにより指定されたIEFに記憶されている暗証番号を読み出す。
【0061】
ICカード20は、IEFから読み出した暗証番号と、VERIFYコマンドの暗証番号とが一致するか否か比較する。IEFから読み出した暗証番号と、VERIFYコマンドの暗証番号とが一致する場合、ICカード20は、論理チャネル内のセキュリティ条件に「1(OK)」をセットする。さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを端末装置10に送信する。
【0062】
ICカード20は、コマンド毎または複数のコマンドにより構成されたグループ毎に上記した認証処理を行うことにより、図5により示されるような論理チャネル、及び各セキュリティ条件をRAM27に確立することができる。
【0063】
また、ICカード20は、所定の継承処理を行うことにより、論理チャネルのセキュリティ条件を他の論理チャネルから継承することができる。なお、ICカード20は、セキュリティ条件の継承を行う前に、継承元の論理チャネルにセキュリティ条件が確立されているか否か判定する。セキュリティ条件が確立されていない場合、端末装置10は、上記の認証処理を行うことにより、新たな論理チャネル、及び各セキュリティ条件をICカード20のRAM27に確立させるように種々のコマンドをICカード20に送信する。
【0064】
また、既にセキュリティ条件が確立されている場合、端末装置10は、セキュリティ条件を継承させる為のコマンドをICカード20に送信することにより、セキュリティ条件を継承させる。
【0065】
図6は、ICカード処理システム1の処理の例について示す。ここでは、論理チャネル#1を新たに確立する処理について示す。
端末装置10は、まずSELECTコマンドを生成する。このSELECTコマンドは、選択するファイルと、論理チャネルとを指定するためのものである。本例では、端末装置10は、選択するDFを示す情報と、論理チャネル#2を示す情報とをSELECTコマンドに付加する。端末装置10は、生成したSELECTコマンドをICカード20に送信する(ステップS11)。
【0066】
ICカード20は、SELECTコマンドを受信した場合、受信したSELECTコマンドの解析を行い、コマンドにより指定されるファイル、及び論理チャネルを認識する。ICカード20は、認識した情報に基づいて、論理チャネルを確立し、ファイルを選択する(ステップS12)。本例では、ICカード20は、論理チャネル#2を確立し、Current DFを設定する。
【0067】
さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを生成する。例えば、ICカード20は、正常にSELECTコマンドに応じた処理を完了した場合、正常終了を示すレスポンスを生成する。ICカード20は、生成したレスポンスを端末装置10に送信する(ステップS13)。
【0068】
さらに、端末装置10は、セキュリティ条件の継承に用いられる論理チャネルにセキュリティ条件が確立されているか問い合わせる為のセキュリティ条件問合せコマンドを生成する。端末装置10は、生成したセキュリティ条件問合せコマンドをICカード20に送信する(ステップS14)。
【0069】
セキュリティ条件問合せコマンドは、例えば図7に示されるコマンドであり、当該コマンドを受けとる論理チャネルを示す情報と、問合せ先の論理チャネルを示す情報とを有する。当該コマンドを受けとる論理チャネルを示す情報は、例えば、上記のSELECTコマンドにより選択された論理チャネルを示す情報である。
【0070】
図7は、セキュリティ条件問合せコマンドの例を示す。
セキュリティ条件問合せコマンドは、端末装置10からICカード20に送信されるコマンドである。端末装置10は、ISO/IEC 7816−4により規定されているAPDU(Application Protocol Data Unit)を準拠したフォーマットでコマンドを生成する。セキュリティ条件継承コマンドは、「CLA」、「INS」、「P1」、「P2」、及び「Le」などを有する。
【0071】
「CLA」は、コマンドの層別を示すclass byteである。「INS」は、コマンドの種別を示すinstruction byteである。「P1」及び「P2」は、「INS」に応じたパラメータを示すparameter byteである。「Le」は、レスポンスの長さを指定するためのデータである。
【0072】
本例では、「CLA」は、本コマンドを受け取る論理チャネルを示す情報を含む。「INS」は、当該コマンドがセキュリティ条件問合せコマンドであることを示すデータである。また、例えば、「P2」は、セキュリティ条件を問い合わせる論理チャネルを示す情報を含む。
【0073】
図7により示された例によると、「CLA」の値は、「00000010」である。これは、本コマンドを受け取る論理チャネルが論理チャネル#2であることを示している。また、「P2」の値は、「01」である。これは、セキュリティ条件を問い合わせる論理チャネルが論理チャネル#1であることを示している。
【0074】
ICカード20は、セキュリティ条件問合せコマンドを受信した場合、問合せ先の論理チャネルを参照し、セキュリティ条件を確認する(ステップS15)。さらに、ICカード20は、セキュリティ条件を確認した結果に基づいてレスポンスを生成し、生成されたレスポンスを端末装置10に送信する(ステップS16)。
【0075】
図8は、セキュリティ条件問合せコマンドを受信した場合のICカード20の処理の例を示す。
【0076】
ICカード20は、セキュリティ条件問合せコマンドを受信する(ステップS31)。ICカード20は、受信したセキュリティ条件問合せコマンドの解析を行う(ステップS32)。これにより、ICカード20は、セキュリティ条件を問合せる論理チャネルを認識する(ステップS33)。
【0077】
ICカード20は、認識した情報に基づいて、論理チャネルを参照し、参照した論理チャネルの認証結果(セキュリティ条件)を読み出す(ステップS34)。即ち、図5により示された例によると、ICカード20は、論理チャネル#1を参照し、セキュリティ条件IEF#1及びIEF#2を読み出す。
【0078】
ICカード20は、読み出したセキュリティ条件に基づいてレスポンスを生成する。ICカード20は、ISO/IEC 7816−4により規定されているAPDU(Application Protocol Data Unit)を準拠したフォーマットでレスポンスを生成する。例えば、ICカード20は、図9により示されるレスポンスを生成する。
【0079】
図9は、ICカード20により生成されたセキュリティ条件問合せコマンドに対するレスポンスの例を示す。
セキュリティ条件問合せコマンドに対するレスポンスは、「Response data field」、及び「Response trailer」を有する。ICカード20は、セキュリティ条件問合せコマンドに応じて実行した処理の結果に基づいて、「Response data field」、及び「Response trailer」に値を付加することにより、セキュリティ条件問合せコマンドに対するレスポンスを生成する。
【0080】
「Response data field」は、「data1」及び「data2」を有する。「data1」及び「data2」は、セキュリティ条件問合せコマンドに応じた処理の結果として得られたデータが格納されるフィールドである。例えば、ICカード20は、RAM27から読み出したセキュリティ条件を「data1」及び「data2」にセットする。
【0081】
例えば、ICカード20は、RAM27から読み出したセキュリティ条件IEF#1の値をData1にセットする(ステップS35)。また、ICカード20は、RAM27から読み出したセキュリティ条件IEF#2の値をData2にセットする(ステップS36)。
【0082】
「Response trailer」は、「SW1」及び「SW2」を有する。「SW1」及び「SW2」は、コマンド処理の正常終了、エラー、または他の状態を示すステータスワードである。正常に処理を行った場合、ICカード20は、正常終了を示す値を「SW1」、及び「SW2」に付加する。
【0083】
例えば、図5及び図9により示された例によると、ICカード20は、「data1」の値としてセキュリティ条件IEF#1の値「1(0x01)」をセットする。さらに、ICカード20は、「data2」の値としてセキュリティ条件IEF#2の値「1(0x01)」をセットする。またさらに、ICカード20は、「SW1」及び「SW2」の値として正常終了を示す「0x9000」をセットする。ICカード20は、生成されたレスポンスを端末装置10に送信する(ステップS37)。
【0084】
端末装置10は、レスポンスを受信すると、端末装置10は、レスポンスの解析を行う。図10は、セキュリティ条件問合せコマンドに対するレスポンスを受信した場合の端末装置10の動作を示す。
【0085】
図10により示されるように、端末装置10は、セキュリティ条件問合せコマンドに対するレスポンスを受信する(ステップS41)。端末装置10は、受信したセキュリティ条件問合せコマンドに対するレスポンスの解析を行う(ステップS42)。これにより、端末装置10は、セキュリティ条件の問合せの結果を認識する。
【0086】
端末装置10は、セキュリティ条件が確立済みであるか否か判定する(ステップS43)。即ち、端末装置10は、セキュリティ条件問合せコマンドにより指定した論理チャネル内に値が「1:OK」であるセキュリティ条件があるか否か判定する。
【0087】
なお、端末装置10は、論理チャネル内の全てのセキュリティ条件の値が「1:OK」である場合、セキュリティ条件が確立済みであると判定する構成であってもよいし、論理チャネル内に値が「1:OK」であるセキュリティ条件が少なくとも1つあればセキュリティ条件が確立済みであると判定する構成であってもよい。
【0088】
ステップS43でセキュリティ条件が確立済みであると判定した場合、端末装置10は、セキュリティ条件継承コマンドを生成し、ICカード20に送信する(ステップS44)。また、ステップS43でセキュリティ条件が確立済みではないと判定した場合、端末装置10は、通常の認証処理を行う為のコマンド(例えばVERIFYコマンド)を生成し、ICカード20に送信する(ステップS45)。
【0089】
図6に示されるように、端末装置10は、図10に示す処理によりセキュリティ条件が確立済みであると判定した場合、セキュリティ条件継承コマンドを生成し、ICカード20に送信する(ステップS17)。
【0090】
セキュリティ条件継承コマンドは、例えば図11に示されるコマンドであり、新たに確立する論理チャネルを示す情報と、継承元の論理チャネルを示す情報と、継承における認証に用いられる暗証番号とを有する。新たに確立する論理チャネルを示す情報は、例えば、上記のSELECTコマンドにより選択された論理チャネルを示す情報である。
【0091】
図11により示されるように、セキュリティ条件継承コマンドは、「CLA」、「INS」、「P1」、「P2」、「Lc」、及び「Data」を有する。
【0092】
「CLA」は、コマンドの層別を示すclass byteである。「INS」は、コマンドの種別を示すinstruction byteである。「P1」及び「P2」は、「INS」に応じたパラメータを示すparameter byteである。
【0093】
「Lc」は、「Data」のデータの長さ(バイト数)を示すlength field for cording number Ncである。「Data」は、当該コマンドのデータ本体を示すcommand data fieldである。
【0094】
本例では、「CLA」は、新たに確立する論理チャネルを示す情報(新論理チャネル情報)を含む。また、例えば、「P2」は、セキュリティ条件を受け継ぐ論理チャネルを示す情報(旧論理チャネル情報)を含む。また、「Data」は、暗証番号を有する。また、例えば、「P1」は、処理対象のファイルを示す情報を含む。本例では、セキュリティ条件継承コマンドは、「P1」としてIEF287を示す情報を含む。
【0095】
図6により示されるように、ICカード20は、セキュリティ条件継承コマンドを受信した場合、セキュリティ条件を継承する処理を行う(ステップS18)。
【0096】
図12は、論理チャネルのセキュリティ条件を他の論理チャネルから継承する場合のICカード20の処理の例を示す。ここでは、論理チャネル#1(旧論理チャネル)のセキュリティ条件を継承し、論理チャネル#2(新論理チャネル)を新たに確立する処理について示す。
【0097】
図12に示されるように、ICカード20は、ステップS51でセキュリティ条件継承コマンドを受信した場合、受信したセキュリティ条件継承コマンドの解析を行う(ステップS52)。これにより、ICカード20は、セキュリティ条件を継承する論理チャネル、ファイルを示す情報、及び暗証番号を認識する。
【0098】
ICカード20は、認識した情報に基づいて、論理チャネルを選択し、コマンドにより指定されたファイルを読み出す。本例によると、ICカード20は、セキュリティ条件継承コマンドにより指定されたIEF287に記憶されている情報を読み出す(ステップS53)。即ち、ICカード20は、IEF287から暗証番号を読み出す。
【0099】
ICカード20は、IEF287から読み出した暗証番号と、セキュリティ条件継承コマンドの暗証番号とが一致するか否か比較する(ステップS54)。IEF287から読み出した暗証番号と、セキュリティ条件継承コマンドの暗証番号とが一致する場合、ICカード20は、旧論理チャネル情報が示す論理チャネルのセキュリティ条件を、新論理チャネル情報が示す論理チャネルにコピーする(ステップS55)。
【0100】
さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを生成する。例えば、ICカード20は、正常にセキュリティ条件継承コマンドに応じた処理を完了した場合、正常終了を示すレスポンスを生成する(ステップS56)。
【0101】
また、IEF287から読み出した暗証番号と、セキュリティ条件継承コマンドの暗証番号とが一致しない場合、ICカード20は、エラーを示すレスポンスを生成する(ステップS57)。
【0102】
図6により示されるように、ICカード20は、セキュリティ条件継承コマンドに対するレスポンスを端末装置10に送信する(ステップS19)。
【0103】
端末装置10は、セキュリティ条件継承コマンドに対するレスポンスを受信することにより、ICカード20においてセキュリティ条件の継承が正常に行われたか否かを判断することができる。
【0104】
次に、FCI284により認証が必要であると設定されている処理をICカード20に行わせる場合の例について説明する。なお、ここでは、FCI284により認証が必要であると設定されている処理として、読み出し処理(READ)をICカード20に行わせる例について説明する。
【0105】
端末装置10は、読み出し処理をICカード20に行わせる場合、READコマンドを生成する。このREADコマンドは、処理対象のファイルを示す情報と、論理チャネルを示す情報とを有する。本例では、端末装置10は、WEF283を示す情報と、論理チャネル#2を示す情報とをREADコマンドに付加する。端末装置10は、生成したREADコマンドをICカード20に送信する(ステップS20)。
【0106】
ICカード20は、FCI284により認証が必要であると設定されている処理を指示するコマンドを受信した場合、セキュリティ条件の確認を行う(ステップS21)。本例によると、ICカード20は、READコマンドを受信した場合、セキュリティ条件の確認を行い(ステップS22)、セキュリティ条件が「1:OK」である場合に、READコマンドに基づく処理を実行する。
【0107】
図13は、セキュリティ条件の確認が必要なコマンドを受信した場合のICカード20の処理の例を示す。
【0108】
ICカード20は、READコマンドを受信する(ステップS61)。ICカード20は、READコマンドを受信した場合、受信したREADコマンドの解析を行う(ステップS62)。これにより、ICカード20は、コマンドにより指定される論理チャネル、及びファイルを認識する。
【0109】
ICカード20は、認識した情報に基づいて、コマンドにより指定されたファイルに付加されているFCI284を読み出す(ステップS63)。ICカード20は、認識したコマンドの種類と、FCI284とに基づいて、認証が必要か否か判断する(ステップS64)。
【0110】
認証が必要である場合、ICカード20は、認識したコマンドの種類に応じたセキュリティ条件をRAM27から読み出す(ステップS65)。本例によると、ICカード20は、READコマンドに対応するセキュリティ条件をRAM27から読み出す。ICカード20は、読み出したセキュリティ条件が、OKを示すものであるか否かを判断する(ステップS66)。
【0111】
ステップS66において、読み出したセキュリティ条件がOKを示すものである場合、または、ステップS64において、認証が必要ないと判断した場合、ICカード20は、受信したREADコマンドに応じた処理を実行する(ステップS67)。即ち、ICカード20は、コマンドにより指定されたWEF283のデータを読み出す。
【0112】
さらに、ICカード20は、コマンド処理の結果に応じたレスポンスを生成する。例えば、ICカード20は、正常にREADコマンドに応じた処理を完了した場合、読み出したデータをデータ本体として正常終了を示すレスポンスを生成する(ステップS68)。
【0113】
また、ステップS66において、読み出したセキュリティ条件がOKを示すものではない場合、ICカード20は、エラーを示すレスポンスを生成する(ステップS69)。
【0114】
図6により示されるように、ICカード20は、READコマンドに対するレスポンスを端末装置10に送信する(ステップS22)。
【0115】
この構成によると、端末装置10はICカード20にセキュリティ条件が確立されているか否か判定し、ICカード20にセキュリティ条件が確立されている場合にセキュリティ条件継承コマンドをICカード20に送信する。ICカード20は、セキュリティ条件継承コマンドを受信した場合、受信したコマンドに含まれる暗証番号と自身が記憶する暗証番号とで認証を行う。認証結果が一致した場合、ICカード20は、論理チャネルのセキュリティ条件を、他の論理チャネルにコピーする。これにより、ICカード20は、より効率的且つ容易にセキュリティ条件を継承することができる。
【0116】
これにより、論理チャネルを確立する場合、複数のセキュリティ条件毎に認証をおこなう必要がなくなる。この為、コマンドの発行回数及び処理時間などを抑えることができる。この結果、より簡易な処理で論理チャネルのセキュリティ条件を設定する事ができるICカード、ICカードの処理装置、及びICカードの処理システムを提供することができる。
【0117】
なお、上記の実施形態では、IEF285は、READコマンドの認証に用いられる暗証番号を記憶し、IEF286は、WRITEコマンドの認証に用いられる暗証番号を記憶し、IEF287は、セキュリティ条件継承コマンドの認証に用いられる暗証番号を記憶するとして説明したが、この構成に限定されない。ICカード20は、1つの暗証番号を複数の認証処理に用いる構成であってもよい。
【0118】
また、上記の実施形態では、ICカード20は、セキュリティ条件継承コマンドに基づく認証が一致であった場合に、論理チャネルのセキュリティ条件を他の論理チャネルにコピーすると説明したが、この構成に限定されない。例えば、論理チャネルの識別子を書き換える構成であってもよい。
【0119】
また、上記した実施形態では、論理チャネルは、セキュリティ条件としてREADコマンド及びWRITEコマンドの実行の可否を示す情報を保持する構成として説明したが、この構成に限定されない。セキュリティ条件は、如何なるコマンド、ファイル毎に設定されてもよい。
【0120】
また、上記の実施形態では、ICカード20は、セキュリティ条件継承コマンドに基づく認証が一致であった場合に、論理チャネルのセキュリティ条件を他の論理チャネルにコピーすると説明したが、この構成に限定されない。例えば、ある論理チャネルのセキュリティ条件の一部を他の論理チャネルにコピーする構成であってもよい。さらに、セキュリティ条件の継承を行う際の認証を分けても良い。
【0121】
即ち、ICカード20は、ある論理チャネルのセキュリティ条件を一括して継承する場合に認証を行う構成であってもよいし、ある論理チャネルのセキュリティ条件の一部を継承する場合に認証を行う構成であってもよい。ICカード20は、認証結果が一致である場合に、ある論理チャネルのセキュリティ条件の一部、あるいは全てを他の論理チャネルに継承することが出来る。
【0122】
また、上記の実施形態では、論理チャネルは、セキュリティ条件としてREADコマンド及びWRITEコマンドの実行の可否を示す情報を保持する構成として説明したが、この構成に限定されない。セキュリティ条件は、3つ以上のセキュリティ条件を保持する構成であってもよい。
【0123】
端末装置10は、例えば、アプリケーション毎に論理チャネルに保持されているセキュリティ条件の数を予め記憶する。これにより、端末装置10は、SELECTコマンドによりICカード20上のアプリケーションを選択した時点で論理チャネルに保持されているセキュリティ条件の数を認識することができる。端末装置10は、認識したセキュリティ条件の数に応じてセキュリティ条件問合せコマンドの「Le」を設定する。
【0124】
また、ICカード20は、セキュリティ条件問合せコマンドに対するレスポンスの「Response data field」にさらに「data」を付加してもよい。例えば、論理チャネル内のセキュリティ条件が3つである場合、「data1」、「data2」、及び「data3」を含むレスポンスを生成する。
【0125】
また、上記した実施形態では、端末装置10は、セキュリティ条件問合せコマンドの「P2」により問い合わせる論理チャネルを指定すると説明したが、この構成に限定されない。端末装置10は、セキュリティ条件問合せコマンドのどのフィールドで問い合わせる論理チャネルを指定する構成であってもよい。
【0126】
また、端末装置10は、複数の論理チャネルのセキュリティ条件を同時に問い合わせる構成であってもよい。例えば、端末装置10は、セキュリティ条件問合せコマンドの「P1」により問い合わせる他の論理チャネルを指定する。
【0127】
また、端末装置10は、セキュリティ条件問合せコマンドに問い合わせる論理チャネルを指定するための情報を含む「Data」フィールドを付加する構成であってもよい。例えば、端末装置10は、「Data」を数ビット毎に分割し、分割したエリアにそれぞれ問い合わせる論理チャネルを指定する為の値を付加する構成であってもよい。
【0128】
また、この場合、ICカード20は、セキュリティ条件問合せコマンドに対するレスポンスの「Response data field」に、論理チャネル毎のセキュリティ条件の有無を示す情報を付加する。これにより、ICカード20は、複数の論理チャネルのセキュリティ条件を同時に端末装置10に伝達することが出来る。
【0129】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0130】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0131】
1…ICカード処理システム、10…端末装置、11…CPU、12…ROM、13…RAM、14…不揮発性メモリ、15…カードリーダライタ、17…操作部、18…ディスプレイ、19…電源部、20…ICカード、21…本体、22…ICモジュール、23…ICチップ、24…通信部、25…CPU、26…ROM、27…RAM、28…不揮発性メモリ、31…電源部、32…ロジック部。
【特許請求の範囲】
【請求項1】
外部機器と通信を行うICカードであって、
セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、
前記外部機器から送信されたセキュリティ条件問合せコマンドを受信する受信手段と、
前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、
特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、
生成された前記レスポンスを前記外部機器に送信する送信手段と、
を具備するICカード。
【請求項2】
前記受信手段は、前記外部機器から送信されたセキュリティ条件継承コマンドを受信し、
前記解析手段は、前記セキュリティ条件継承コマンドを解析し、前記記憶手段により記憶されている第2の論理チャネルを特定し、
前記コマンド処理手段は、前記解析手段により特定された前記第1の論理チャネルの前記セキュリティ条件を前記第2のチャネルにコピーする、
請求項1に記載のICカード。
【請求項3】
前記解析手段は、前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている複数の論理チャネルを特定し、
前記コマンド処理手段は、特定された前記各論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成する、
請求項1に記載のICカード。
【請求項4】
前記各部を備えるICモジュールと、
前記ICモジュールが配設される本体と、
を具備する請求項1に記載のICカード。
【請求項5】
ICカードと通信を行うICカードの処理装置であって、
前記ICカードの第1の論理チャネルを示す情報を含み、前記第1の論理チャネル内のセキュリティ条件の有無を問い合わせる為のセキュリティ条件問合せコマンドを生成するコマンド生成手段と、
前記セキュリティ条件問合せコマンドを前記ICカードに送信する送信手段と、
前記セキュリティ条件問合せコマンドに対するレスポンスを前記ICカードから受信する受信手段と、
前記レスポンスを解析し、前記第1の論理チャネル内のセキュリティ条件の有無を判定する判定手段と、
を具備し、
前記コマンド生成手段は、前記ICカードの論理チャネル内にセキュリティ条件が有ると判定した場合、前記第1の論理チャネルを示す情報と、第2の論理チャネルを示す情報とを含むセキュリティ条件継承コマンドを生成し、
前記送信手段は、前記セキュリティ条件継承コマンドを前記ICカードに送信する、
ICカードの処理装置。
【請求項6】
ICカードと、前記ICカードを処理する処理装置とを有するICカードの処理システムであって、
前記処理装置は、
前記ICカードの第1の論理チャネルを示す情報を含み、前記第1の論理チャネル内のセキュリティ条件の有無を問い合わせる為のセキュリティ条件問合せコマンドを生成するコマンド生成手段と、
前記セキュリティ条件問合せコマンドを前記ICカードに送信する第1の送信手段と、
前記セキュリティ条件問合せコマンドに対するレスポンスを前記ICカードから受信する第1の受信手段と、
前記レスポンスを解析し、前記第1の論理チャネル内のセキュリティ条件の有無を判定する判定手段と、
を具備し、
前記ICカードは、
セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、
前記処理装置から送信された前記セキュリティ条件問合せコマンドを受信する第2の受信手段と、
前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、
特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、
生成された前記レスポンスを前記処理装置に送信する第2の送信手段と、
を具備する、
ICカードの処理システム。
【請求項7】
前記コマンド生成手段は、前記ICカードの論理チャネル内にセキュリティ条件が有ると判定した場合、前記第1の論理チャネルを示す情報と、第2の論理チャネルを示す情報とを含むセキュリティ条件継承コマンドを生成し、
前記第1の送信手段は、前記セキュリティ条件継承コマンドを前記ICカードに送信する、
請求項6に記載のICカードの処理システム。
【請求項8】
前記第2の受信手段は、前記処理装置から送信された前記セキュリティ条件継承コマンドを受信し、
前記解析手段は、前記セキュリティ条件継承コマンドを解析し、前記記憶手段により記憶されている第2の論理チャネルを特定し、
前記コマンド処理手段は、前記解析手段により特定された前記第1の論理チャネルの前記セキュリティ条件を前記第2のチャネルにコピーする、
請求項7に記載のICカードの処理システム。
【請求項1】
外部機器と通信を行うICカードであって、
セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、
前記外部機器から送信されたセキュリティ条件問合せコマンドを受信する受信手段と、
前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、
特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、
生成された前記レスポンスを前記外部機器に送信する送信手段と、
を具備するICカード。
【請求項2】
前記受信手段は、前記外部機器から送信されたセキュリティ条件継承コマンドを受信し、
前記解析手段は、前記セキュリティ条件継承コマンドを解析し、前記記憶手段により記憶されている第2の論理チャネルを特定し、
前記コマンド処理手段は、前記解析手段により特定された前記第1の論理チャネルの前記セキュリティ条件を前記第2のチャネルにコピーする、
請求項1に記載のICカード。
【請求項3】
前記解析手段は、前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている複数の論理チャネルを特定し、
前記コマンド処理手段は、特定された前記各論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成する、
請求項1に記載のICカード。
【請求項4】
前記各部を備えるICモジュールと、
前記ICモジュールが配設される本体と、
を具備する請求項1に記載のICカード。
【請求項5】
ICカードと通信を行うICカードの処理装置であって、
前記ICカードの第1の論理チャネルを示す情報を含み、前記第1の論理チャネル内のセキュリティ条件の有無を問い合わせる為のセキュリティ条件問合せコマンドを生成するコマンド生成手段と、
前記セキュリティ条件問合せコマンドを前記ICカードに送信する送信手段と、
前記セキュリティ条件問合せコマンドに対するレスポンスを前記ICカードから受信する受信手段と、
前記レスポンスを解析し、前記第1の論理チャネル内のセキュリティ条件の有無を判定する判定手段と、
を具備し、
前記コマンド生成手段は、前記ICカードの論理チャネル内にセキュリティ条件が有ると判定した場合、前記第1の論理チャネルを示す情報と、第2の論理チャネルを示す情報とを含むセキュリティ条件継承コマンドを生成し、
前記送信手段は、前記セキュリティ条件継承コマンドを前記ICカードに送信する、
ICカードの処理装置。
【請求項6】
ICカードと、前記ICカードを処理する処理装置とを有するICカードの処理システムであって、
前記処理装置は、
前記ICカードの第1の論理チャネルを示す情報を含み、前記第1の論理チャネル内のセキュリティ条件の有無を問い合わせる為のセキュリティ条件問合せコマンドを生成するコマンド生成手段と、
前記セキュリティ条件問合せコマンドを前記ICカードに送信する第1の送信手段と、
前記セキュリティ条件問合せコマンドに対するレスポンスを前記ICカードから受信する第1の受信手段と、
前記レスポンスを解析し、前記第1の論理チャネル内のセキュリティ条件の有無を判定する判定手段と、
を具備し、
前記ICカードは、
セキュリティ条件を含む複数の論理チャネルを記憶する記憶手段と、
前記処理装置から送信された前記セキュリティ条件問合せコマンドを受信する第2の受信手段と、
前記セキュリティ条件問合せコマンドを解析し、前記記憶手段により記憶されている第1の論理チャネルを特定する解析手段と、
特定された前記第1の論理チャネル内の前記セキュリティ条件の有無を示す情報を含むレスポンスを生成するコマンド処理手段と、
生成された前記レスポンスを前記処理装置に送信する第2の送信手段と、
を具備する、
ICカードの処理システム。
【請求項7】
前記コマンド生成手段は、前記ICカードの論理チャネル内にセキュリティ条件が有ると判定した場合、前記第1の論理チャネルを示す情報と、第2の論理チャネルを示す情報とを含むセキュリティ条件継承コマンドを生成し、
前記第1の送信手段は、前記セキュリティ条件継承コマンドを前記ICカードに送信する、
請求項6に記載のICカードの処理システム。
【請求項8】
前記第2の受信手段は、前記処理装置から送信された前記セキュリティ条件継承コマンドを受信し、
前記解析手段は、前記セキュリティ条件継承コマンドを解析し、前記記憶手段により記憶されている第2の論理チャネルを特定し、
前記コマンド処理手段は、前記解析手段により特定された前記第1の論理チャネルの前記セキュリティ条件を前記第2のチャネルにコピーする、
請求項7に記載のICカードの処理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−25407(P2013−25407A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−157160(P2011−157160)
【出願日】平成23年7月15日(2011.7.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願日】平成23年7月15日(2011.7.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]