以下、図面を参照しながら本発明の実施形態について詳解する。
A.ICカードによる非接触データ通信システム
図1には、本発明を適用可能な非接触ICカード通信システムの構成を模式的に示している。
この非接触カードシステムは、カード・リーダ/ライタ1と、ICカード2と、コントローラ3で構成され、カード・リーダ/ライタ1とICカード2との間では、電磁波を利用して非接触で、データの送受信が行なわれる。すなわち、カード・リーダ/ライタ1がICカード2に所定のコマンドを送信し、ICカード2は受信したコマンドに対応する処理を行なう。そして、ICカード2は、その処理結果に対応する応答データをカード・リーダ/ライタ1に送信する。
カード・リーダ/ライタ1は、所定のインターフェース(例えば、RS−485Aの規格などに準拠したもの)を介してコントローラ3に接続されている。コントローラ3は、カード・リーダ/ライタ1に対し制御信号を供給することで、所定の処理を行なわせる。
図2には、図1に示したカード・リーダ/ライタ1の構成例を示している。
ICチップ・モジュール21は、データの処理を行なうDPU(Data Processing Unit)31と、ICカード2への送信信号及びICカード2からの受信信号の処理を行なうSPU(Signal Processing Unit)32と、コントローラ3との通信を行なうSCC(Serial Communication Controller)33と、データの処理に必要な情報をあらかじめ記憶しているROM部41並びに処理中の作業データを一時的に記憶するRAM部42を含んだメモリ部34で構成され、これらの機能モジュールがバスを介して相互接続されている。また、このバスには、所定のデータを記憶するフラッシュ・メモリ22も接続されている。
DPU31は、ICカード2への送信コマンドをSPU32に出力するとともに、ICカード2から受信した応答データをSPU32から受け取り、所定のデータ処理を行なう。
SPU32は、ICカード2への送信コマンドに対し、例えばBPSK(BiPhase Shift Keying)などの変調処理を行なった後、変調回路23に出力するとともに、ICカード2からの応答データを復調回路25から受け取り、そのデータに対し、BPSKなどの所定の復調処理を行なう。
変調回路23は、発振器26より供給された所定の周波数(例えば13.56MHz)の搬送波を、SPU32より供給されたデータでASK(Amplitude Shift Keying)変調し、生成された変調波をアンテナ27から電磁波としてICカード2に出力する。このとき、変調回路23は、変調度を1未満にして、ASK変調を行なう。すなわち、データがロー・レベルのときにおいても、変調波の最大振幅がゼロにならないようにする。
復調回路25は、アンテナ27を介して受信した変調波(ASK変調波)を復調し、復調されたデータをSPU32に出力するようになされている。
図3には、図1に示したICカード2の構成例を示している。このICカードは、ICチップ・モジュール51と、ループ上のアンテナ53とで構成される。
ICチップ・モジュール51は、カード・リーダ/ライタ1から送信された変調波を、アンテナ53を介して受信する。なお、コンデンサ52は、アンテナ53とともにLC回路を構成し、所定の周波数(キャリア周波数)の電磁波に同調(共振)するようになされている。
ICチップ・モジュール51は、RFインターフェース部61や演算部64などで構成される。RFインターフェース部61で、ASK復調部81と、電圧レギュレータ82と、発振回路83と、ASK変調部84で構成される。ASK復調部81は、アンテナ53を介して受信した変調波(ASK変調波)を検波して復調し、復調後のデータをBPSK復調回路62及びPLL(Phase Locked Loop)部63に出力する。電圧レギュレータ82は、ASK復調部81が検波した信号を安定化し、各回路に直流電力として供給する。
また、RFインターフェース部61は、発振回路83でデータのクロック周波数と同一の周波数の信号を発振し、その信号をPLL部63に出力する。そして、ASK変調部84は、演算部64より供給されたデータに対応し、ICカード2の電源としてのアンテナ53の負荷を変動させる(例えば、データに対応して所定のスイッチング素子をオン/オフさせ、スイッチング素子がオン状態であるときだけ所定の負荷をアンテナ53に並列に接続する)ことにより、アンテナ53を介して受信している変調波をASK変調し、その変調成分をアンテナ53を介してカード・リーダ/ライタ1に送信する。ICカード2からデータを送信するときは、カード・リーダ/ライタ1は、その出力する変調波の最大振幅を一定にしており、この変調波が、アンテナ53の負荷の変動により、ASK変調される。また、このデータ送信に伴い、カード・リーダ/ライタ1のアンテナ27の端子電圧が変動する。
PLL部63は、ASK復調部81より供給されたデータより、そのデータに同期したクロック信号を生成し、そのクロック信号をBPSK復調回路62及びBPSK変調回路68に出力する。
BPSK復調回路62は、ASK復調部81で復調されたデータがBPSK変調されている場合、PLL部63より供給されたクロック信号に従って、そのデータの復調を行ない、復調したデータを演算部64に出力する。
演算部64は、BPSK復調回路62より供給されたデータが暗号化されている場合、そのデータを暗号/復号部92で復号化した後、そのデータをシーケンサ91で処理する。また、データが暗号化されていない場合、BPSK復調回路62より供給されたデータは、暗号/復号部92を介さず、シーケンサ91に直接供給される。
シーケンサ91は、そこに供給されるコマンドとしてのデータに対応する処理を行なう。例えば、シーケンサ91は、EEPROM(Electrically Erasable&Programmable ROM)66に対するデータの書き込みや読み出しなどの処理を行なう。
演算部64のパリティ演算部93は、EEPROM66に記憶されるデータや、EEPROM66に記憶されているデータから、パリティとしてリードソロモン符号を算出する。さらに、演算部64は、シーケンサ91で所定の処理を行なった後、その処理に対応する応答データ(カード・リーダ/ライタ1に送信するデータ)をBPSK変調回路68に出力する。
BPSK変調回路68は、演算部64より供給されたデータをBPSK変調し、変調後のデータをRFインターフェース部61のASK変調部84に出力する。
ROM65は、シーケンサ91が行なうべき処理プログラムやその他の必要なデータを恒久的に記憶している。RAM67は、シーケンサ91が処理を行なうときの作業データなどを一時的に記憶する。
EEPROM66は、不揮発性のメモリであり、例えば、ICカード2上に電子決済を行なうための電子マネーや、特定のコンサート会場に入場するための電子チケットなど、多数のアプリケーションを格納しておくために利用される。ICカード2自体は基本的にはバッテリなど駆動電源を持たないため、ICカード2がカード・リーダ/ライタ1との通信を終了し、電力供給が停止した後も無電源状態でもデータを保持し続けることができるEEPROM66のような不揮発性メモリが使用される。
次に、カード・リーダ/ライタ1とICカード2間におけるデータの送受信処理について説明する。
カード・リーダ/ライタ1は、アンテナ27から所定の電磁波を放射して、アンテナ27の負荷状態を監視し、ICカード2が接近することによる負荷状態の変化が検出されるまで待機する。なお、カード・リーダ/ライタ1は、所定の短いパターンのデータでASK変調した電磁波を放射して、ICカード2への呼びかけを、ICカード2からの応答が一定時間内において得られるまで繰り返す処理(ポーリング)を行なうようにしてもよい。
カード・リーダ/ライタ1においてICカード2の接近が検出されると、R/W1のSPU32は、所定の周波数(例えば、データのクロック周波数の2倍の周波数)の矩形波を搬送波として、ICカード2に送信するデータ(ICカード2に実行させる処理に対応するコマンドやICカード2に書き込むデータなど)でBPSK変調を行ない、生成した変調波(BPSK変調信号)を変調回路23に出力する。
なお、BPSK変調時においては、差動変換を利用して、変調波の位相の変化に、データを対応させることができる。このようにした場合、BPSK変調信号が反転しても、元のデータに復調されるので、復調するとき変調波の極性を配慮する必要が無くなる。
変調回路23は、入力されたBPSK変調信号で、所定の搬送波を1未満(例えば0.1)の変調度(=データ信号の最大振幅/搬送波の最大振幅)でASK変調し、生成された変調波(ASK変調波)を、アンテナ27を介してICカード2に送信する。
なお、送信を行なわないとき、変調回路23は、ディジタル信号の2つのレベル(ハイレベルとローレベル)のうちの、例えばハイレベルで変調波を生成する。
ICカード2では、アンテナ53及びコンデンサ52で構成されるLC回路において、カード・リーダ/ライタ1のアンテナ27が放射した電磁波の一部が電気信号に変換され、その電気信号(変調波)がICチップ・モジュール51のRFインターフェース61に出力される。そして、RFインターフェース61のASK復調部81は、その変調波を整流平滑化することで包絡線検波を行ない、これにより生成される信号を電圧レギュレータ82に供給するとともに、その信号の直流成分を抑制してデータ信号を抽出し、そのデータ信号をBPSK復調回路62及びPLL部63に出力する。
電圧レギュレータ82は、ASK復調部81より供給された信号を安定化し、直流電力を生成し、各回路に供給する。
なお、このとき、アンテナ53の端子電圧V0 は、例えば次のようになる。
V0=V10(1+k×Vs(t))cos(ωt)
但し、V10cos(ωt)は搬送波を、kは変調度を、Vs(t)はSPU32が出力するデータを、それぞれ表す。
また、ASK復調部81による整流後の電圧V1におけるローレベルの値VLRは、例えば次のようになる。
VLR=V10(1+k×(−1))−Vf
ここで、Vfは、ASK復調部81において、整流平滑化を行なうための整流回路を構成するダイオードにおける電圧降下を示しており、一般に0.7ボルト程度である。
電圧レギュレータ82は、ASK復調部81により整流平滑化された信号を受信すると、その信号を安定化し、直流電力として、演算部64を始めとする各回路に供給する。なお、変調波の変調度kは1未満なので、整流後の電圧変動(ハイレベルとローレベルの差)が小さい。したがって、電圧レギュレータ82において、直流電力を容易に生成することができる。
例えば、変調度kが5%の変調波を、V10が3ボルト以上になるように受信した場合、整流後のローレベル電圧VLRは2.15(=3×(1−0.05)−0.7)ボルト以上となり、電圧レギュレータ82は電源として充分な電圧を各回路に供給することができる。この場合、整流後における電圧V1 の交流成分(データ成分)の振幅2×k×V10(Peak−to−Peak値)は0.3(=20.05×3)ボルト以上になり、ASK復調部81は十分高いS/N比でデータの復調を行なうことができる。
このように、変調度kが1未満のASK変調波を利用することにより、エラーレートの低い(S/N比の高い状態で)通信を行なうとともに、電源として十分な直流電圧がICカード2に供給される。
BPSK復調回路62は、ASK復調部81からデータ信号(BPSK変調信号)を受信すると、そのデータ信号を、PLL部63より供給されるクロック信号に従って復調し、復調したデータを演算部64に出力する。
演算部64は、BPSK復調回路62より供給されたデータが暗号化されている場合は、暗号/復号部92で復号化した後、そのデータ(コマンド)をシーケンサ91に供給して処理する。なお、ICカード2にデータを送信後、それに対する返答を受信するまでの間、カード・リーダ/ライタ1は、値が1のデータを送信したまま待機している。したがって、この期間においては、ICカード2は最大振幅が一定である変調波を受信している。
シーケンサ91は、処理が終了すると、カード・リーダ/ライタ1に送信するデータをBPSK変調回路68に出力する。BPSK変調回路68は、カード・リーダ/ライタ1側のSPU32と同様に、そのデータをBPSK変調した後、RFインターフェース部61のASK変調部84に出力する。
ASK変調部84は、アンテナ53の両端に接続される負荷を、スイッチング素子を利用して変動させることができる。すなわち、BPSK変調回路68からのデータに応じて負荷変動させることにより、受信している変調波を送信するデータに応じてASK変調し、これによりカード・リーダ/ライタ1のアンテナ27の端子電圧を変動させて、そのデータをカード・リーダ/ライタ1に送信する。
一方、カード・リーダ/ライタ1側の変調回路23は、ICカード2からのデータの受信時においては、値が1(ハイレベル)のデータの送信を継続している。そして、復調回路25において、ICカード2のアンテナ53と電磁気的に結合しているアンテナ27の端子電圧の微小な変動(例えば、数十マイクロボルト)から、ICカード2により送信されてきたデータが検出される。
さらに、復調回路25では、検出した信号(ASK変調波)が高利得の増幅器で増幅されて復調され、その結果得られるデジタル・データがSPU32に出力される。SPU32は、そのデータ(BPSK変調信号)を復調し、DPU31に出力する。DPU31は、SPU32からのデータを処理し、その処理結果に応じて、通信を終了するか否かを判断する。
そして、再度、通信を行なうと判断した場合、上述した場合と同様にして、カード・リーダ/ライタ1とICカード2との間で通信が行なわれる。一方、通信を終了すると判断した場合、カード・リーダ/ライタ1は、ICカード2との通信処理を終了する。
以上のように、カード・リーダ/ライタ1は、変調度kが1未満であるASK変調を利用してICカード2にデータを送信する。そして、ICカード2は、そのデータを受け取り、そのデータに対応する処理を行ない、その処理結果に対応するデータをカード・リーダ/ライタ1に返送する。
B.ファイル・システムの共有
図4には、ICカードを用いて実現される、電子マネーや電子チケット、その他の価値情報を運用するサービス提供システムの全体的構成を模式的に示している。
図示のシステム100は、例えば、ICカード発行者121が使用する発行者用通信装置111と、カード記憶領域運用者122が使用する運用者用通信装置112と、装置製造者123が使用する製造者用通信装置113と、カード記憶領域使用者124が使用する記憶領域分割装置114及び運用ファイル登録装置115とで構成される。
ICカード発行者121がカード所有者126にICカード116を発行した場合に、所定の条件に基づいて、カード記憶領域使用者124によって提供されるサービスに係わるファイル・データをICカード16に登録し、カード所有者126が単体のICカード116を用いて、ICカード発行者121及びカード記憶領域使用者124の双方のサービスを受けることを可能にするものである。
図4に示すように、システム100では、発行者用通信装置111、運用者用通信装置112、製造者用通信装置113、記憶領域分割装置114及び運用ファイル登録装置115が、ネットワーク117を介して接続される。
ICカード発行者121は、ICカード116の発行を行なう者であり、ICカード116を用いて自らのサービスを提供する。
カード記憶領域運用者122は、ICカード発行者121からの依頼を受けて、ICカード発行者121が発行したICカード116内の記憶部(半導体メモリ)に構成される記憶領域のうち、ICカード発行者121が使用しない記憶領域をカード記憶領域使用者124に貸し出すサービスを行なう者である。
装置製造者123は、カード記憶領域運用者122から依頼を受けて、記憶領域分割装置114を製造し、カード記憶領域使用者124に納品する者である。
カード記憶領域使用者124は、カード記憶領域運用者122に依頼を行ない、ICカード116の記憶領域を使用して自らの独自のサービスを提供する者であり、メモリ領域を分割して新たなファイル・システムを作成するサービス提供元事業者(前述)に相当し、自己のファイル・システムを利用して自身のサービス提供を行なう。
カード所有者126は、ICカード発行者121からICカード116の発行を受け、ICカード発行者121が提供するサービスを受ける者である。カード所有者126は、ICカード116の発行後に、カード記憶領域使用者124が提供するサービスを受けることを希望する場合には、記憶領域分割装置114及び運用ファイル登録装置115を用いて、カード記憶領域使用者124のサービスに係わるファイル・データをICカード116に記憶し、その後、カード記憶領域使用者124のサービスを受けることができるようになる。
システム100は、ICカード発行者121のサービスと、カード記憶領域使用者124のサービスとを単体のICカード116を用いて提供するに当たって、ICカード発行者121及びカード記憶領域使用者124のサービスに係わるファイル・データが記憶される記憶領域に、権限を有しない他人によって不正にデータの書き込み及び書き換えなどが行なわれることを困難にする構成を有している。
ICカード116は、その字義通り、カード型のデータ通信装置であってもよいし、いわゆる1ICカード機能が実装された半導体チップを内蔵した携帯電話機(あるいはその他の携帯端末やCE機器)として具現化されることもある。
なお、図4では、それぞれ単数のICカード発行者121、カード記憶領域使用者24及びカード所有者26がある場合を例示したが、これらは、それぞれ複数であってもよい。
ICカードが持つ耐タンパ性と認証機能を利用して、価値情報のやり取りなどを含んだセキュリティが要求されるサービスを提供することができる。具体的には、ICカード内の単一のメモリ領域を複数のサービス提供元事業者間で共有し、サービス提供元事業者においてはカード発行の負担が軽減するとともに、ユーザにとっては携帯して管理するICカードの枚数を削減するものである。
ここで、複数のサービス提供元事業者間で単一のメモリ領域を共有した場合、あるサービス提供元事業者が使用するメモリ領域を、メモリを共用する別の事業者から自由にアクセスできるようにすると、事業者毎に設定される価値情報が他の事業者によって不正利用を許してしまう、という問題がある。
そこで、本実施形態では、単一のメモリ領域上にサービス提供元事業者毎のファイル・システムを割り当て、単一のICカードを複数の事業者で共有し、単一のICカードにより複数のサービスを提供するようにした。メモリ領域をファイル・システムに分割することにより、ファイル・システム間の境界がファイヤ・ウォールとして機能し、他のファイル・システムからの不正なアクセスを好適に排除することができる。
ICカード内のメモリ領域は、初期状態では、ICカード発行者がメモリ領域全体を管理している。ICカード発行者以外のサービス提供元事業者がメモリ領域から新たなファイル・システムを分割するに際しては、メモリ領域の分割権限と、ICカード発行者に対する認証の双方が要求される。
そして、一旦分割されると、ファイル・システムへのアクセスは、元のICカードの発行者ではなく、ファイル・システム自体のサービス提供元事業者への認証が要求される。したがって、ユーザにとっては、各サービス利用時において事業者自らが発行したICカードであるかのような使い勝手を確保することができる。分割操作を繰り返すことにより、ICカード内のメモリ領域は複数のファイル・システムが共存する構造となる。ファイル・システムの分割は、仮想的なICカードの発行である。
ここで、図5〜図6を参照しながら、ICカード内のメモリ領域の運用形態について説明する。
図5には、元のカード発行者が自らのファイル・システムのみを管理しているメモリ領域の状態を示している。元のカード発行者のシステム・コードSC1は、システム・コードの管理機構が付与する。外部機器又はプログラムがカード発行者のファイル・システムにアクセスする場合は、SC1を識別コード(すなわち、要求コマンドの引数)とする。
図6には、カード発行者が自らのファイル・システムの空き領域の内で、ある範囲のメモリを領域管理者に貸与(又は譲渡)することが許可できることを示している。この段階では,まだメモリ領域上のファイル・システムに対して分割が行なわれている訳ではない。カード発行者は、自らのファイル・システムに空き領域はあるうちは、複数の領域管理者に対して、メモリを貸与することを許可できる。例えば、4ビットのシステム・コードでファイル・システムを識別するという実装では、最大16分割(15回まで分割)することができる。
図7には、他のサービス提供元事業者が、カード発行者から許可された領域においてメモリ領域を分割し、新たなファイル・システムを生成した状態を示している。この新規ファイル・システムには、システム・コードの管理機構からシステム・コードSC2が付与されている。外部機器又はプログラムが、当該メモリ領域管理者(サービス提供元事業者)の運用するファイル・システムにアクセスする場合は、SC2を識別コード(要求コマンドの引数)とする。
図8には、共通領域管理者が、カード発行者から許可された領域において、共通領域のシステム・コードSC0でメモリを分割した状態を示している。外部機器又はプログラムがこの共通領域管理者の運用領域であるファイル・システムにアクセスする場合には、そのシステム・コードSC0を識別コード(要求コマンドの引数)とする。
ICカードのメモリ領域は、分割操作を繰り返すことにより、図9に示すように複数のファイル・システムが共存する構造となる。元のカード発行者、並びにカード発行者の許可によりICカード上で自己のファイル・システムを取得したサービス提供元事業者は、それぞれ自己のファイル・システムを利用して、エリアやサービスを配設し(後述)、自身の事業展開に利用することができる。
ここで、1つのファイル・システム内での運用形態について説明する。基本的には、どのファイル・システムにおいても同様の動作が実現されるものとする。また、ファイル・システムの操作を行なうためには、ポーリングによるエリアIDの要求と、相互認証という手続き(前述)を経ていることを前提とする。
ファイル・システム内には、電子決済を始めとする外部との電子的な価値情報のやり取りなど、1以上のアプリケーションが割り当てられている。アプリケーションに割り当てられているメモリ領域を「サービス・メモリ領域」と呼ぶ。また、アプリケーションの利用、すなわち該当するサービス・メモリ領域へアクセスする処理動作のことを「サービス」と呼ぶ。サービスには、メモリへの読み出しアクセス、書き込みアクセス、あるいは電子マネーなどの価値情報に対する価値の加算や減算などが挙げられる。
ユーザがアクセス権を持つかどうかに応じてアプリケーションの利用すなわちサービスの起動を制限するために、アプリケーションに対して暗証コードすなわちPINを割り当て、サービス実行時にPINの照合処理を行なうようになっている。また、サービス・メモリ領域へのアクセスは、アプリケーションのセキュリティ・レベルなどに応じて、適宜暗号化通信が行なわれる。
本実施形態では、ICカード内のメモリ領域に設定されているそれぞれのファイル・システムに対して、「ディレクトリ」に類似する階層構造を導入する。そして、メモリ領域に割り当てられた各アプリケーションを、所望の階層の「エリア」に登録することができる。
例えば、一連のトランザクションに使用される複数のアプリケーション、あるいは関連性の深いアプリケーション同士を同じエリア内のサービス・メモリ領域として登録する(さらには、関連性の深いエリア同士を同じ親エリアに登録する)ことによって、メモリ領域のアプリケーションやエリアの配置が整然とし、ユーザにとってはアプリケーションの分類・整理が効率化する。
また、ファイル・システムへのアクセス権を階層的に制御するために、アプリケーション毎にPINを設定できる以外に、各エリアに対してもPINを設定することができるようにしている。例えば、あるエリアに該当するPINを入力することにより、照合処理並びに相互認証処理を経て、エリア内のすべてのアプリケーション(並びにサブエリア)へのアクセス権を与えるようにすることもできる。したがって、該当するエリアに対するPINの入力を1回行なうだけで、一連のトランザクションで使用されるすべてのアプリケーションのアクセス権を得ることができるので、アクセス制御が効率化するとともに、機器の使い勝手が向上する。
さらに、あるサービス・メモリ領域に対するアクセス権限が単一でないことを許容し、それぞれのアクセス権限毎、すなわちサービス・メモリ領域において実行するサービスの内容毎に、暗証コードを設定することができる。例えば、同じサービス・メモリ領域に対して起動するサービスが「読み出し」と「読み出し及び書き込み」とでは、別々のPINが設定される。また、電子マネーやその他の価値情報に対する「増額」と「減額」とでは、別々のPINが設定される。また、あるメモリ領域に対する読み出しについてはPINの入力が必要でないが、書き込む場合にはPINの入力を必須とさせることが可能である。
図10には、ファイル・システム内のデータ構造例を模式的に示している。図示の例では、ファイル・システムが持つ記憶空間には、「ディレクトリ」に類似する階層構造が導入されている。すなわち、メモリ領域に割り当てられた各アプリケーションを、所望の階層エリアにサービス・メモリ領域として登録することができる。例えば、一連のトランザクションに使用されるアプリケーションなど、関連性の深いアプリケーション同士を同じエリアに登録する(さらには、関連性の深いエリア同士を同じ親エリアに登録する)ことができる。
また、ファイル・システム内に割り当てられたアプリケーション(すなわちサービス・メモリ領域)並びにエリアは暗証コード定義ブロックを備えている。したがって、アプリケーション毎に、あるいはエリア毎にPINを設定することができる。また、ファイル・システムに対するアクセス権は、アプリケーション単位で行なうとともに、並びにエリア単位で行なうことができる。
さらに、あるサービス・メモリ領域に対するアクセス権限が単一でなく、実行するサービスの内容毎に、PINを設定することができる。例えば、同じサービス・メモリ領域に対して起動するサービスが「読み出し」と「読み出し及び書き込み」とでは、別々のPINが設定され、また、電子マネーやその他の価値情報に対する「増額」と「減額」とでは、別々のPINが設定される。
照合部は、例えばICカードを利用した非接触データ通信などのプロトコル・インターフェースを介して送られてくるPINを、各アプリケーション又はディレクトリに割り当てられたエリア又はサービス・メモリ領域に設定されている暗証コードと照合して、一致するメモリ領域に対するアクセスを許可する。アクセスが許可されたメモリ領域は、プロトコル・インターフェースを介して読み書きが可能となる。
このようにファイル・システム内には、アプリケーションに割り当てられたさまざまなサービス・メモリ領域が割り当てられており、各サービス・メモリ領域に対して適用可能な1以上のサービスが設けられている。本実施形態では、エリア単位、並びにアプリケーション単位でアクセス制限を行なう以外に、アプリケーションに適用されるサービスの種類毎にPINを設定して、サービス単位でアクセス制限を行なうことができる。
図11には、ファイル・システムの基本構成を示している。図10を参照しながら既に説明したように、ファイル・システムに対して、「ディレクトリ」に類似する階層構造が導入され、所望の階層のエリアに、アプリケーションに割り当てられたサービス・メモリ領域を登録することができる。図11に示す例では、エリア0000定義ブロックで定義されるエリア0000内に、1つのサービス・メモリ領域が登録されている。
図示のサービス・メモリ領域は、1以上のユーザ・ブロックで構成される。ユーザ・ブロックはアクセス動作が保証されているデータ最小単位のことである。このサービス・メモリ領域に対しては、サービス0108定義ブロックで定義されている1つのサービスすなわちサービス0108が適用可能である。
エリア単位、並びにアプリケーション単位でアクセス制限を行なう以外に、サービスの種類毎に暗証コードを設定して、サービス単位でアクセス制限を行なうことができる。アクセス制限の対象となるサービスに関する暗証コード設定情報は、暗証コード専用のサービス(すなわち「暗証コード・サービス」)として定義される。図11に示す例では、サービス0108に関する暗証コードが暗証コード・サービス0128定義ブロックとして定義されている。その暗証コード・サービスの内容は暗証コード・サービス・データ・ブロックに格納されている。
サービス0108に対する暗証コード・サービスが有効になっている場合、サービス0108を起動してそのユーザ・ブロックに読み出し又は書き込み動作を行なう前に、暗証コード・サービス0128を使用した暗証コードの照合が必要となる。具体的には、暗号化あり読み書き(Read/Write)コマンドを使用する場合は、相互認証前にサービス0108に対する暗証コードすなわちPINの照合を行なう。
また、アプリケーションに割り当てられたサービス・メモリ領域を所望の階層のエリアに登録するとともに、エリアを階層化する(関連性の深いエリア同士を同じ親エリアに登録する)ことができる。この場合、エリア毎にPINを設定することにより、エリアをアクセス制限の単位とすることができる。図12には、ICカードのメモリ空間においてエリアが階層化されている様子を示している。同図に示す例では、エリア0000定義ブロックで定義されているエリア0000内に、エリア1000定義ブロックで定義されている別のエリア1000が登録されている。
図12に示す例では、さらにエリア1000内には、2つのサービス・メモリ領域が登録されている。一方のサービス・メモリ領域に対しては、サービス1108定義ブロックで定義されているサービス1108と、サービス110B定義ブロックで定義されているサービス110Bが適用可能である。このように、1つのサービス・メモリ領域に対してサービス内容の異なる複数のサービスを定義することを、本明細書中では「オーバーラップ・サービス」と呼ぶ。オーバーラップ・サービスにおいては、同じサービス・エリアに対して、入力したPINに応じて異なるサービスが適用されることになる。また、他方のサービス・メモリ領域に対しては、サービス110C定義ブロックで定義されているサービス110Cが適用可能である。
各サービス・メモリ領域に設定されているサービスを起動してそのユーザ・ブロックに読み出し又は書き込み動作を行なうことができる。勿論、図11を参照しながら説明したように、サービス毎に暗証コード・サービスを定義することができる。この場合、サービスに対する暗証コード・サービスが有効になっているときには、暗証コード・サービスを使用したPINの照合を行なってからサービスの起動が許可される。
また、複数のサービスに対して共通のPINを設定したい場合には、これらサービスを含むエリアを作成し、このエリアに対して共通の暗証コード・サービスを適用することができる。
図12に示す例では、エリア1000に関する暗証コードが、暗証コード・サービス1020定義ブロックとして定義されている。その暗証コード・サービスの内容は暗証コード・サービス・データ・ブロックに格納されている。
エリア1000に対する暗証コード・サービスが有効(後述)になっている場合、暗証コード・サービス1020を使用した暗証コードの照合を行なった後に、エリア1000内の各サービスを起動してそのユーザ・ブロックに読み出し又は書き込み動作を行なうことが可能となる。
図13には、内部メモリに複数のファイル・システムを設けることができるICカード内のファームウェアの機能構成を模式的に示している。
インターフェース制御部は、非接触ICカード・インターフェースによるカード・リーダ/ライタとの通信、カード・リーダ/ライタとしての通信、有線インターフェースを介した通信、その他のI/Oインターフェースを介した通信などのプロトコル制御を行なう。
コマンド制御部は、インターフェース制御部を介して外部から受け取ったコマンドの処理や、外部に対するコマンド発行、コマンドの検査などを行なう。
セキュリティ制御部は、メモリ領域若しくはメモリ領域内の各ファイル・システムへアクセスする際の認証処理や、ファイル・システム内のディレクトリやサービスを利用する際のPIN照合などのセキュリティ処理を実現する。
ファイル・システム制御部は、上述したようなメモリ領域からファイル・システムへの分割(並びに分割の解消)などファイル・システム管理や、ファイル・システム内のディレクトリ構造の管理などを行なう。
モード管理部は、全ファイル・システム並びに個別のファイル・システムのモードの管理を行なう。ここで言うモードには、ファイル・システムの利用停止や利用再開などの状態が含まれる。
この他、起動制御やROM管理、パラメータ管理、不揮発性メモリ管理、パッチ制御など、ICカード内の各ハードウェア制御用のファームウェアも含まれている。
C.ファイル・システムの利用停止と利用再開
上述したように、ICカードに内蔵される単一のメモリ領域上にサービス提供元事業者毎のファイル・システムを割り当て、単一のICカードを複数の事業者で共有し、単一のICカードにより複数のサービスを提供することができる。ファイル・システム毎に異なる認証鍵を用いてアクセス制御を行なうことで、ファイル・システム間の境界がファイヤ・ウォールとして機能し、他のファイル・システムからの不正なアクセスを好適に排除することができる。
ここで、ICカードの柔軟な運用を実現するためには、サービス提供元事業者毎にファイル・システムの利用を停止することができるような仕組みを取り入れる必要がある。
ファイル・システムへアクセスするための認証鍵をICカード発行者が管理した場合、分割によりファイル・システムが割り当てられた各サービス提供元事業者は、自らの事業展開に応じてファイル・システムの利用の停止を行なうことができないので、柔軟性に欠ける。一方、各サービス提供元事業者が自分のファイル・システムへのアクセスを制御する認証鍵を個別に生成できるようにした場合、ICカード発行者は、個々のファイル・システムの利用の停止並びに再開を全く把握することができなくなるので、全ファイル・システムの運用という観点からは柔軟性に欠けることになる。
そこで、本実施形態では、ICカード発行者が全ファイル・システムの運用を管理するための集合鍵を保持するとともに、メモリ分割によりファイル・システムを割り当てられたサービス提供元事業者毎にファイル・システムを個別に管理するための個別鍵を保持するという仕組みを導入している。
図14には、ファイル・システムへアクセスするための認証鍵を生成するための仕組みを図解している。
図示の通り、認証鍵生成部は、ICカード発行者が保持する集合鍵と、当該ファイル・システムを割り当てられたサービス提供元事業者が保持する個別鍵を入力し、これら2つの鍵に所定の演算処理(例えば乗算)を施して、認証鍵を生成し、これをファイル・システムへのアクセス鍵とする。
図15には、ICカードにおける個別のファイル・システムへのアクセスを制御する仕組みを図解している。
ファイル・システムを割り当てられたサービス提供元事業者には、ICカード発行者が保持する集合鍵、若しくは集合鍵と個別鍵を演算して得られる認証鍵が与えられる。したがって、自分のファイル・システムへアクセスするときには、集合鍵と自身が持つ個別鍵の組み合わせ、又はこれらから得られた認証鍵を用いて認証を行なうことができる。
ICカード内のアクセス制御部は、ICカード発行者が保持する集合鍵と、当該ファイル・システムを割り当てられたサービス提供元事業者が保持する個別鍵を入力し、これら2つの鍵に所定の演算処理(例えば乗算)を施して、認証鍵を生成し、これをアクセス時に入力された認証鍵と照合してアクセスの可否を判断する。あるいは、アクセス時に集合鍵と個別鍵の組み合わせが入力された場合には、これらに同様の演算を施して認証鍵を生成してみて、内部に持つ認証鍵との照合を行なう。
このような認証鍵のメカニズムによれば、ICカード発行者は、集合鍵を変更することにより、全ファイル・システムの利用を停止することができる。また、サービス提供元事業者は、個別鍵を変更することでファイル・システムを個別に利用停止することができ、他のファイル・システムの利用に影響を与えることはない。
例えば、ICカード発行者が持つ集合鍵をKU1とし、i番目のファイル・システムを分割して得たサービス提供元事業者が持つ個別鍵をKP(i)1とし、認証鍵生成部が関数fを用いて認証鍵KAUTH(i)1=f(KU1,KP(i)1)を生成するものとする。
この場合、ICカード発行者が集合鍵をKU2に変更した場合、すべてのファイル・システムの認証鍵が変わってしまうため、全ファイル・システムの利用を停止することになる。これに対し、j番目のファイル・システムが割り当てられたサービス提供元事業者が個別鍵をKP(j)1からKP(j)2に変更した場合には、このファイル・システムのみ認証鍵が変更になることから、ファイル・システム毎に個別に利用を停止することができる。
図15に示す仕組みによれば、ICカード発行者は、集合鍵を変更して自分自身のファイル・システム、並びに分割により一旦は他のサービス提供元事業者に利用を認めたファイル・システムの利用を停止した後、変更した集合鍵を元に戻すことにより、ICカード発行者自身のメモリ領域並びに各サービス提供元事業者に割り当てられた領域の利用が再開される。すなわち、ICカード発行者が集合鍵をKU2に変更した後、元の集合鍵KU1に戻した場合には、すべてのファイル・システムについての認証鍵が元通りとなるため、システム全体として利用が再開される。
また、図15に示した仕組みでは、サービス提供元事業者が個別のファイル・システムの利用の停止及び再開を勝手に行なえることになる。すなわち、j番目のファイル・システムが割り当てられたサービス提供元事業者が個別鍵をKP(j)1からKP(j)2に変更した後、元の個別鍵KP(j)1に戻すと、当該ファイル・システムの利用が再開される。
しかしながら、このようにサービス提供元事業者が自由に、ファイル・システム毎の利用の停止及び再開を行なうと、ICカード発行者にとっては、全ファイル・システムを柔軟に運用する際の妨げになる。
そこで、個々のサービス提供元事業者も、個別鍵の変更により自分自身のファイル・システムの利用を停止することができるが、個別鍵を元に戻しただけでは、該当するメモリ領域の利用を再開することはできず、ICカード発行者の承認若しくは承諾を得て、集合鍵とともに更新し、新たな認証鍵を得なければ利用を再開することはできないようにした。
これによって、事業者毎に区々にアクセス権限をコントロールするという事態を回避しながら、全ファイル・システムをより柔軟なICカードの運用を図ることができる。
図16には、ICカードにおける個別のファイル・システムへのアクセスを制御する仕組みを図解している。図示の構成によれば、図15に示した場合とは相違し、鍵管理部を備えている。鍵管理部は、ICカード発行者の集合鍵の登録及び変更と、ファイル・システム毎の個別鍵の登録及び変更を行なう。さらに鍵管理部は、個別鍵の変更と集合鍵の変更履歴を管理しており、個別のサービス提供元事業者は、ICカード発行者から認められた場合のみ、一旦利用を停止したファイル・システムの利用を再開することができるようになっている。
認証鍵生成部は、ICカード発行者の集合鍵KUと、ファイル・システムが割り当てられた各サービス提供元事業者iの個別鍵KP(i)を入力し、所定の関数fを用いてこれら2つの鍵に所定の演算処理を施して認証鍵KAUTH(i)=f(KU,KP(i))を生成し、これをファイル・システムへの個別のアクセス鍵とする。
アクセス制御部は、外部からICカード内のファイル・システムへアクセスが行なわれたときに、自身が管理する認証鍵KAUTHとアクセス要求元から入力された認証鍵KAUTH’を照合する。あるいは、アクセス要求元から集合鍵KU’と個別鍵KP(i) ’が入力された場合には、関数fを用いて実際に認証鍵KAUTH’を生成してみて照合を行なう。
ここで、ICカード発行者が集合鍵をKU1からKU2に変更した場合、すべてのファイル・システムの認証鍵が変わってしまうため、全ファイル・システムの利用を停止することになる。また、元の集合鍵KU1に戻した場合には、すべてのファイル・システムについての認証鍵が元通りとなるため、システム全体として利用が再開される。利用停止や利用再開などのモードはモード管理部(前述)により管理される。
一方、j番目のファイル・システムが割り当てられたサービス提供元事業者が個別鍵をKP(j)1からKP(j)2に変更した場合には、このファイル・システムのみ認証鍵が変更になることから、ファイル・システム毎に個別に利用を停止することができる。利用停止や利用再開などのモードはモード管理部(前述)により管理される。
鍵管理部は、集合鍵とそれぞれの個別鍵の管理を行なっているが、j番目の個別鍵が変更されたという状態を保持する。この状態は、例えばメモリ領域の実体である不揮発性メモリ(フラッシュ・メモリ22)に記録される。
アクセス制御部は、認証鍵を以ってアクセス要求が行なわれた場合に、集合鍵及び個別鍵の変更履歴を参照する。そして、個別鍵のみが変更したという状態では、ファイル・システムの利用再開がICカード発行者の承認なしに行なわれたことを検出することができる。そこで、アクセス制御部は、該当するファイル・システムへのアクセスを許可しない。すなわち、サービス提供元事業者が個別鍵をKP(j)1からKP(j)2に変更した後、ICカード発行者の承認なしに元の個別鍵KP(j)1に戻しても、個別鍵のみが変更した状態に変わりないので、ファイル・システムの利用は再開されない。
ここで、サービス提供元事業者がICカード発行者に対し、個別鍵をKP(j)1からKP(j)2に変更してファイル・システムの利用を停止したが、利用を再開したい旨の届出を行なう。ICカード発行者は、この届出を承認すると、自らも集合鍵をKU1からKU2に変更する。
鍵管理部は、新規の集合鍵KU2並びに個別鍵KP(j)2を受容するとともに、集合鍵も変更されたという履歴を保持する(あるいは、個別鍵のみが変更されたという状態をリセットする)。
これらの鍵の変更により、ファイル・システムへの新たな認証鍵KAUTH(j)2=f(KU2,KP(j)2)が生成される。
アクセス制御部は、認証鍵を以ってアクセス要求が行なわれた場合には、集合鍵及び個別鍵の変更履歴を参照し、集合鍵と個別鍵の双方が変更された(若しくは個別鍵のみが変更されたという状態がキャンセルされた)ことを以って、ファイル・システムの利用再開がICカード発行者から承認されたことを検出することができる。そして、ファイル・システムへの新たな認証鍵KAUTH(j)2=f(KU2,KP(j)2)を以って、ファイル・システムへのアクセスに対し、上述と同様の認証処理を実行する。
なお、上述したような鍵の変更処理は、セキュリティの観点から有線インターフェース経由でのみ実行するように制限してもよい。但し、この場合であっても、個別鍵を変更すると、有線インターフェースだけでなく、無線、非接触ICカードなどいずれのインターフェースからも認証できなくなる。
図17には、上述したような鍵管理に基づくICカードのファイル・システムの運用手順を示している。図示の例では、サービス提供元事業者がメモリ領域からファイル・システムを分割して得た直後の場面を想定している。
初期状態では、ICカード内のいずれのファイル・システムも利用できない。
サービス提供元事業者はICカードに対し、例えば有線インターフェースを介してアクセスし、鍵管理部に、自己のファイル・システムの個別鍵KP1を変更(設定)する。
ICカード発行者は、サービス提供元事業者によるファイル・システムの利用を認証すると、自らも集合鍵KU1を変更(設定)する。この結果、ファイル・システムの利用が可能となり、アクセス制御部は当該ファイル・システムに対するアクセスの認証を開始する。
また、図18には、ICカード発行者が全ファイル・システムの利用を停止する運用手順を示している。
この運用手順の前提として、ICカード内のすべてのファイル・システムは通常利用可能で、アクセス制御部は各ファイル・システムへのアクセスに対し認証を行なう。
ここで、ICカード発行者が集合鍵KU1をKU2に変更する。この結果、すべてのファイル・システムの認証鍵が変更されてしまうことになるので、すべてのファイル・システムが通常利用することができない状態、すなわちICカード自体の利用が停止された状態となる。
その後、ICカード発行者が集合鍵を元のKU1に戻す。この結果、すべてのファイル・システムの認証鍵が元通りとなるので、すべてのファイル・システムが通常利用することができる状態、すなわちICカード自体の利用が再開されたことになる。
また、図19には、サービス提供元事業者が個別にファイル・システムの利用を停止する運用手順を示している。
この運用手順の前提として、ICカード内のすべてのファイル・システムは通常利用可能で、アクセス制御部は各ファイル・システムへのアクセスに対し認証を行なう。
j番目のファイル・システムが割り当てられたサービス提供元事業者が個別鍵をKP(j)1からKP(j)2に変更した場合には、このファイル・システムのみ認証鍵が変更になり、個別にファイル・システムの利用が停止される。個別鍵を変更しない他のファイル・システムは通常の利用が可能なままである。
このとき、鍵管理部は、j番目の個別鍵が変更されたという状態を保持する。そして、アクセス制御部は、認証鍵を以ってアクセス要求が行なわれた場合に、集合鍵及び個別鍵の変更履歴を参照し、個別鍵のみが変更したという状態では、認証動作を行なわない。このため、ICカード発行者の承認なしに元の個別鍵KP(j)1に戻しても、個別鍵のみが変更した状態に変わりないので、ファイル・システムの利用は再開されない。
ここで、サービス提供元事業者がICカード発行者に対し、個別鍵をKP(j)1からKP(j)2に変更してファイル・システムの利用を停止したが、利用を際司会したい旨の届出を行なう。ICカード発行者は、この届出を承認すると、自らも集合鍵をKU1からKU2に変更する。
鍵管理部は、新規の集合鍵KU2並びに個別鍵KP(j)2を受容するとともに、集合鍵も変更されたという履歴を保持する。そして、アクセス管理部は、集合鍵と個別鍵の双方が変更されたことを以って、ファイル・システムの利用再開がICカード発行者から承認されたことを検出し、ファイル・システムに対する認証動作を行なうようになる。この結果、各ファイル・システムが通常利用できることになり、利用が再開される。