以下、図面を参照しながら本発明の実施形態について詳解する。
本発明は、ICカードが持つ耐タンパ性と認証機能を利用して、価値情報のやり取りなどを含んだセキュリティが要求されるサービスを提供するものであり、より具体的には、ICカード内の単一のメモリ領域を複数のサービス提供元事業者間で共有し、サービス提供元事業者においてはカード発行の負担が軽減するとともに、ユーザにとっては携帯して管理するICカードの枚数を削減するものである。
ここで、複数のサービス提供元事業者間で単一のメモリ領域を共有した場合、あるサービス提供元事業者が使用するメモリ領域を、メモリを共用する別の事業者から自由にアクセスできるようにすると、事業者毎に設定される価値情報が他の事業者によって不正利用を許してしまう、という問題がある。
本発明では、単一のメモリ領域上にサービス提供元事業者毎のファイル・システムを割り当て、単一のデータ通信装置を複数の事業者で共有し、単一のデータ通信装置により複数のサービスを提供するようにした。メモリ領域をファイル・システムに分割することにより、ファイル・システム間の境界がファイヤ・ウォールとして機能し、他のファイル・システム(すなわち他のサービス提供元事業者)からのアクセス(不正侵入)を好適に排除することができる。
ICカード内のメモリ領域は、初期状態では、元のICカード発行者がメモリ領域全体を管理している。ICカード発行者以外のサービス提供元事業者がメモリ領域から新たなファイル・システムを分割するに際しては、メモリ領域の分割権限と、元のICカード発行者に対する認証の双方が要求される。
そして、一旦分割されると、ファイル・システムへのアクセスは、元のICカードの発行者ではなく、ファイル・システム自体のサービス提供元事業者への認証が要求される。したがって、ユーザにとっては、各サービス利用時において事業者自らが発行したICカードであるかのような使い勝手を確保することができる。
ここで、まず、ICカード及びカード読み書き装置間の非接触データ通信の仕組みについて、図1及び図2を参照しながら説明する。
カード読み書き装置とICカード間の無線通信は、例えば電磁誘導の原理に基づいて実現される。図1には、電磁誘導に基づくカード読み書き装置とICカードとの無線通信の仕組みを概念的に図解している。カード読み書き装置は、ループ・コイルで構成されたアンテナLRWを備え、このアンテナLRWに電流IRWを流すことでその周辺に磁界を発生させる。一方、ICカード側では、電気的にはICカードの周辺にループ・コイルLcが形設されている。ICカード側のループ・コイルLc端にはカード読み書き装置側のループ・アンテナLcが発する磁界による誘導電圧が生じて、ループ・コイルLc端に接続されたICカードの端子に入力される。
カード読み書き装置側のアンテナLRWとICカード側のループ・コイルLcは、その結合度は互いの位置関係によって変わるが、系としては1個のトランスを形成していると捉えることができ、ICカードの読み書き動作を図2に示すようにモデル化することができる。
カード読み書き装置側では、アンテナLRWに流す電流IRWを変調することによって、ICチップ上のループ・コイルLcに誘起される電圧VOは変調を受け、そのことを利用してカード読み書き装置はICカードへのデータ送信を行なうことができる。
また、ICカードは、カード読み書き装置へ返送するためのデータに応じてループ・コイルLcの端子間の負荷を変動させる機能(Load Switching)を持つ。ループ・コイルLcの端子間の負荷が変動すると、カード読み書き装置側ではアンテナ端子間のインピーダンスが変化して、アンテナLRWの通過電流IRWや電圧VRWの変動となって現れる。この変動分を復調することで、カード読み書き装置はICカードの返送データを受信することができる。
すなわち、ICカードは、カード読み書き装置からの質問信号に対する応答信号に応じて自身のアンテナ間の負荷を変化させることによって、カード読み書き装置側の受信回路に現れる信号に振幅変調をかけて通信を行なうことができる訳である。
ICカードは、カード型のデータ通信装置であってもよいし、いわゆるICカード機能を有する集積回路チップを携帯電話機等の情報通信端末機器に内蔵してもよい(ICカードが機器に内蔵される場合であっても、機器に着脱可能に構成される場合であっても、本明細書中では便宜上「ICカード」と呼ぶ場合がある。)また、ICカード機能を有する集積回路チップは、例えば携帯電話機やPDAなどの携帯端末、あるいはパーソナルコンピュータ(PC)などの情報処理端末に搭載されて外部機器とデータ通信を行なう。この場合、リーダ/ライタ装置と有線あるいは無線で接続するためのインターフェース以外に、外部機器接続用のインターフェースを備えている。
図3には、本発明の実施形態にかかるデータ通信装置のハードウェア構成を示している。このデータ通信装置は、通信用のアンテナを追加して内部の不揮発性メモリにアクセスすることができるICカード機能と、ICカード機能を有する外部装置に電力を供給するとともにデータ交換を実現するリーダ/ライタ機能を有し、カード機能アナログ回路部30、データ処理部40と、リーダ/ライタ機能アナログ回路部50を有するICチップを内蔵している。同図に示した例では、ICカードはカード読み書き機能も併せて備えているが、カード読み書き機能は本発明の必須の構成要素ではない。
カード機能アナログ回路部30では、アンテナ32で受信された搬送波は、整流器31で整流された後、データ処理部40内の信号処理部44に供給されるとともに、シリアル・レギュレータ33を介して論理回路38に供給されている。
論理回路38は、シリアル・レギュレータ33からの電圧を制御して、ICカードで使用するための適正な電源電圧VDDを供給するようになっている。
シリアル・レギュレータ33は、入力電圧の如何に拘わらず、出力電圧をほぼ一定に保つようになっている。すなわち、入力電圧が高いときには、内部インピーダンスを高くして、逆に入力電圧が低いときには内部インピーダンスを低くすることによって、電圧を保つ動作を可能とする。
電圧検出器39は、論理回路38に接続された外部電源(バッテリなど)の出力端子電圧を監視して、外部電源の電圧が所定電圧を下回った場合には外部電源の使用を禁止する信号を論理回路38に出力するようになっている。
また、カード機能アナログ回路部30において、アンテナ32から入力された電波は、搬送波検出器34で受信電波中に搬送波が含まれているか否かが判断され、含まれている場合には、搬送波検出信号VRが論理回路38に出力される。論理回路38は、さらに、データ処理部40に対して搬送波が検出された旨の信号を出力することができる。
クロック抽出器35は、アンテナ32から入力された電波からクロックを抽出して、これをクロック選択器36に供給する。また、クロック発振器37は、例えばICカード外に配設された水晶振動子で構成され、ICカード上で使用される駆動周波数のクロックを発生して、クロック選択器36に供給する。クロック選択器36は、クロック抽出器35から供給されたクロック、又は、クロック発振器37から供給されたクロックのいずれか一方を選択して、ICカード内の各部に供給する。
リーダ/ライタ機能アナログ回路部50は、送信アンプ51と、受信信号検出器53と、受信アンプ・フィルタ54と、送受信用のアンテナ52及び55で構成される。
データを送信するときは、データ処理部40の信号処理部44によって変調並びにD/A変換されて、アナログ・ベースバンドにアップコンバートされた送信信号が送信アンプを介してアンテナ51から送出される。また、アンテナ52から受信された信号は、受信信号検出器53によって検出され、受信アンプ54で増幅されてから、信号処理部44に供給される。信号処理部44は、アナログ・ベースバンド信号にダウンコンバートし、D/A変換並びに復調処理して、ディジタル・データを再現する。
なお、ICカードとカード読み書き装置の間のカード読み書き動作は、図1及び図2を参照しながら既に説明した通りである。
データ処理部40は、先述の信号処理部44の他、CPU(Central Processing Unit)45と、DES(Data Encryption Standard)などを利用したデータ暗号化エンジン46と、CRC(Cyclic Redundancy Check)などを利用したエラー訂正部47と、RAM(Random Access Memory)41と、ROM(Read Only Memory)42と、EEPROM(Electrically Erasable and Programmable ROM)43と、UARTインターフェース48と、I2Cインターフェース49とを備えており、各部は内部バスによって相互接続されている。
CPU45は、ICカード内の動作を統括的に制御するメイン・コントローラであり、ICカード用オペレーティング・システム(OS)によって提供される実行環境(後述)下で、例えばROM42(あるいはEEPROM43)に格納されたプログラム・コードを実行するようになっている。例えば、CPU45は、カード機能アナログ回路部30やリーダ/ライタ機能アナログ回路部40を介して送受信されるデータに関するアプリケーションを実行するようになっている。
信号処理部44は、カード機能アナログ回路部30やリーダ/ライタ機能アナログ回路部40を介して送信されるデータの変調、D/A変換、アップコンバートなどの処理や、受信したデータのダウンコンバート、A/D変換、復調などの処理を行なう。
DESエンジン46は、カード機能アナログ回路部30やリーダ/ライタ機能アナログ回路部40を介して送受信されるデータを手順公開型の秘密鍵暗号により暗号化及び復号化処理する。
CRC47は、カード機能アナログ回路部30やリーダ/ライタ機能アナログ回路部40を介して受信したデータの巡回冗長検査を行なう。
UART48並びにI2Cインターフェースは、ICカードを携帯電話器やPDA、パーソナル・コンピュータなどの外部機器(図11には図示しない)に接続するための外部有線インターフェースを構成する。このうちUART(Universal asynchronous receiver transmitter)48は、コンピュータ内のパラレル信号をシリアル信号に変換したり、シリアル信号をパラレル信号に変換したりする機能を持つ。
RAM41は書き込み可能なメモリ装置であり、CPU41はRAM41を作業領域としてプログラムを実行する。RAM41が提供するメモリ空間はアドレス可能であり、CPU41や内部バス上の各装置はこのメモリ空間にアクセスすることができる。
EEPROM43は、消去動作とともに新規のデータの書き込みを行なう不揮発性のメモリ装置である。本明細書で言うICカード内蔵のメモリ領域は、基本的にはEEPROM43内の書き込み可能領域を指すものとする。
このメモリ領域は、1以上のファイル・システムで構成される。初期状態では、元のICカード発行者が管理する単一のファイル・システムによってメモリ領域が管理され、その後、ICカード発行者以外のサービス提供元事業者がメモリ領域から新たなファイル・システムを分割する。
図4には、本実施形態に係るICカードにおけるメモリ領域の制御システム構成を模式的に示している。同図に示すように、この制御システムは、基本的には、オペレーティング・システム内のサブシステムとして実装され、プロトコル・インターフェース部と、OS中枢部と、ファイル・システムで構成される。
プロトコル・インターフェース部は、UART48などの外部機器インターフェースを介した外部機器からのファイル・システムへのアクセス要求、あるいは非接触ICカード・インターフェースを介したカード読み書き装置からファイル・システムへのアクセス要求のハンドリングを行なう。
OS中枢部では、ファイル・システムとやり取りするデータのデコード/エンコード、CRCなどによるエラー訂正、EEPROM43のブロック毎の書き換え回数管理、PIN照合、相互認証などを行なう。
さらに、OS中枢部は、ファイル・アクセス時におけるPIN照合や相互認証、ファイルのリード/ライトなどのファイル・システムへの幾つかのAPI(Application Programming Interface)を備えている。
ファイル・システムは、ファイル・システム・エンティティとしてのEEPROM43へ物理アクセスを行なう。EEPROMなどのメモリ・デバイスへの物理アクセス動作自体は当業界において周知なので、ここでは説明を省略する。
EEPROM43上に展開されるメモリ領域は、1以上のファイル・システムで構成される。初期状態では、元のICカード発行者が管理する単一のファイル・システムによってメモリ領域が管理されている。ICカード発行者以外のサービス提供元事業者がメモリ領域から新たなファイル・システムを分割する際には、メモリ領域の分割権限と、元のICカード発行者に対する認証の双方が要求される。そして、一旦分割されると、ファイル・システムへのアクセスは、元のICカードの発行者ではなく、ファイル・システム自体のサービス提供元事業者への認証が要求される。ファイル・システムの分割は、仮想的なICカードの発行である。
OSは、分割を許可するための分割権限鍵Kdを管理している。また、ファイル・システム毎に、発行者(元のICカード発行者、又はファイル分割した事業者)の発行者鍵KIと、システム・コードと、ファイル領域を識別するエリアIDが管理されている。
ファイル・システムへのアクセスは、ポーリングによるエリアIDの要求と、相互認証という手続きを経て行なわれる。ファイル・システムの発行者(元のファイル・システムの場合はカード発行者、分割後のファイル・システムを使用するサービス提供元事業者)は、まず、自身が判っているシステム・コードを引数にしてファイル・システムに対するポーリングを行なうことによって、該当するファイル・システムのメモリ領域上でのエリアIDを取得することができる。次いで、このエリアIDと発行者鍵KIを用いて相互認証を行なう。そして、相互認証が成功裏に終わると、ファイル・システムへのアクセスが許可される。ファイル・システムへのアクセスは、発行者と該当するファイル・システムに固有の発行者鍵KIを用いた暗号化通信により行なわれるので、他のファイル・システムが無関係のデータを取り込んだり、発行者以外がファイル・システムへ無断で読み書きしたりすることはできない。
図5には、比較的大容量のICカードを用いて実現される、電子マネーや電子チケット、その他の価値情報を運用するサービス提供システムの全体的構成を模式的に示している。
図示のシステム1は、例えば、ICカード発行者21が使用する発行者用通信装置11と、カード記憶領域運用者22が使用する運用者用通信装置12と、装置製造者23が使用する製造者用通信装置13と、カード記憶領域使用者24が使用する記憶領域分割装置14及び運用ファイル登録装置15とで構成される。
システム1では、ICカード発行者21がカード所有者26にICカード16を発行した場合に、所定の条件に基づいて、カード記憶領域使用者24によって提供されるサービスに係わるファイル・データをICカード16に登録し、カード所有者26が単体のICカード16を用いて、ICカード発行者21及びカード記憶領域使用者24の双方のサービスを受けることを可能にするものである。
図5に示すように、システム1では、発行者用通信装置11、運用者用通信装置12、製造者用通信装置13、記憶領域分割装置14及び運用ファイル登録装置15が、ネットワーク17を介して接続される。
ICカード発行者21は、ICカード16の発行を行なう者であり、ICカード16を用いて自らのサービスを提供する。
カード記憶領域運用者22は、ICカード発行者21からの依頼を受けて、ICカード発行者21が発行したICカード16内の記憶部(半導体メモリ)に構成される記憶領域のうち、ICカード発行者21が使用しない記憶領域をカード記憶領域使用者24に貸し出すサービスを行なう者である。
装置製造者23は、カード記憶領域運用者22から依頼を受けて、記憶領域分割装置14を製造し、カード記憶領域使用者24に納品する者である。
カード記憶領域使用者24は、カード記憶領域運用者22に依頼を行ない、ICカード16の記憶領域を使用して自らの独自のサービスを提供する者であり、メモリ領域を分割して新たなファイル・システムを作成するサービス提供元事業者(前述)に相当し、自己のファイル・システムを利用して自身のサービス提供を行なう。
カード所有者26は、ICカード発行者21からICカード16の発行を受け、ICカード発行者21が提供するサービスを受ける者である。カード所有者26は、ICカード16の発行後に、カード記憶領域使用者24が提供するサービスを受けることを希望する場合には、記憶領域分割装置14及び運用ファイル登録装置15を用いて、カード記憶領域使用者24のサービスに係わるファイル・データをICカード16に記憶し、その後、カード記憶領域使用者24のサービスを受けることができるようになる。
システム1は、ICカード発行者21のサービスと、カード記憶領域使用者24のサービスとを単体のICカード16を用いて提供するに当たって、ICカード発行者21及びカード記憶領域使用者24のサービスに係わるファイル・データが記憶される記憶領域に、権限を有しない他人によって不正にデータの書き込み及び書き換えなどが行なわれることを困難にする構成を有している。
ICカード16は、その字義通り、カード型のデータ通信装置であってもよいし、いわゆるICカード機能が実装された半導体チップを内蔵した携帯電話機(あるいはその他の携帯端末やCE機器)として具現化されることもある。
なお、図5では、それぞれ単数のICカード発行者21、カード記憶領域使用者24及びカード所有者26がある場合を例示したが、これらはそれぞれ複数であってもよい。
本実施形態では、ICカードの単一のメモリ領域上にサービス提供元事業者毎のファイル・システムを割り当て、単一のデータ通信装置を複数の事業者で共有し、単一のデータ通信装置により複数のサービスを提供する。このような分割ファイル・システム構成により、元のカード発行者が利用するメモリ領域の他に、元のカード発行者の許可を得て特定のサービス提供元事業者が利用可能となるメモリ領域と、元のカード発行者の許可を得て複数の事業者間で共通に利用可能となるメモリ領域を運用することができる。
特に、元のカード発行者が利用するファイル・システム以外に、各サービス提供元事業者が個別に利用可能となる1以上のファイル・システムを運用する場合、ファイル・システム間の境界がファイヤ・ウォールとして機能し、他のファイル・システム(すなわち他のサービス提供元事業者)からのアクセス(不正侵入)を好適に排除することができる。
ここで、図6〜図9を参照しながら、ICカード内のメモリ領域の運用形態について説明する。
図6には、元のカード発行者が自らのファイル・システムのみを管理しているメモリ領域の状態を示している。元のカード発行者のシステム・コードSC1は、システム・コードの管理機構が付与する。外部機器又はプログラムがカード発行者のファイル・システムにアクセスする場合は、SC1を識別コード(すなわち、要求コマンドの引数)とする。
図7には、カード発行者が自らのファイル・システムの空き領域の内で、ある範囲のメモリを領域管理者に貸与(又は譲渡)することが許可できることを示している。この段階では,まだメモリ領域上のファイル・システムに対して分割が行なわれている訳ではない。カード発行者は、自らのファイル・システムに空き領域はあるうちは、複数の領域管理者に対して、メモリを貸与することを許可できる。例えば、4ビットのシステム・コードでファイル・システムを識別するという実装では、最大16分割(15回まで分割)することができる。
図8には、他のサービス提供元事業者が、カード発行者から許可された領域においてメモリ領域を分割し、新たなファイル・システムを生成した状態を示している。この新規ファイル・システムには、システム・コードの管理機構からシステム・コードSC2が付与されている。外部機器又はプログラムが、当該メモリ領域管理者(サービス提供元事業者)の運用するファイル・システムにアクセスする場合は、SC2を識別コード(要求コマンドの引数)とする。
図9には、共通領域管理者が、カード発行者から許可された領域において、共通領域のシステム・コードSC0でメモリを分割した状態を示している。外部機器又はプログラムがこの共通領域管理者の運用領域であるファイル・システムにアクセスする場合には、そのシステム・コードSC0を識別コード(要求コマンドの引数)とする。
図10に示すように、本実施形態では、ICカード上のメモリ領域は、複数のファイル・システムに分割されている。そして、ファイル・システム毎にシステム・コードSCとエリアIDが設定されるとともに、当該領域を使用するサービス提供元事業者(元のカード発行者を含む)の発行者鍵KIで相互認証を行なうことができる。これによって、ファイル・システムが割り振られたサービス提供元事業者は、元のカード発行者や分割技術者とは独立して、自己のファイル・システムのセキュリティに関する脅威を分析、管理、並びに運用することができる。
また、サービス提供元事業者が自己のファイル・システムへアクセスする際には、基本的には、エリアIDの要求と、相互認証という手続きを経て行なわれる。まず、自身が判っているシステム・コードを引数にしてファイル・システムに対するポーリングを行なうことによって、該当するファイル・システムのメモリ領域上でのエリアIDを取得することができる。次いで、このエリアIDと発行者鍵KIを用いて相互認証を行なう。そして、相互認証が成功裏に終わると、ファイル・システムへのアクセスが許可される。
また、各サービス提供元事業者(元のカード発行者を含む)は、要求コマンド(例えばリード要求やライト要求、データ消去要求、エリア/サービス登録など)を、事業者自身と該当するファイル・システムに固有の発行者鍵KIを用いてパッケージ化して暗号化通信により行なわれるので(図11を参照のこと)、他のファイル・システムが無関係のデータを取り込んだり、第3者がファイル・システムへ無断で読み書きしたりすることはできない。
図10に示したようにICカードのメモリ領域は、分割操作を繰り返すことにより、複数のファイル・システムが共存する構造となる。元のカード発行者、並びにカード発行者の許可によりICカード上で自己のファイル・システムを取得したサービス提供元事業者は、それぞれ自己のファイル・システムを利用して、エリアやサービスを配設し(後述)、自身の事業展開に利用することができる。
図12には、サービス提供元事業者(元のカード発行者を含む)が自己のファイル・システム内にコマンド実行を要求する手続きを示している。但し、サービス提供元事業者とICカード間の通信は、電磁誘導作用に基づく非接触近距離通信インターフェースを利用しても、あるいはUART48やI2C49などの有線インターフェースを利用して行なう。
サービス提供元事業者は、ICカードの実行環境であるオペレーティング・システムに対しポーリングして、ファイル・システムのシステム・コードSCを引数にしたファイル・システムのエリアID要求を行なう。
この要求メッセージをトリガにして、サービス提供元事業者と、ICカードの実行環境であるオペレーティング・システムの間で、複数往復にまたがる通信動作で構成される相互認証手続きを経て、要求に対する戻り値として、エリアIDがサービス提供元事業者へ返される。なお、相互認証手続きの構成についてはICカードの仕様毎に相違し、本発明の要旨には直接関連しないので、ここでは詳細な説明を省略する。
この認証手続きに続いて、サービス提供元事業者は、ICカードのオペレーティング・システムに対して、ファイル・システム内への要求コマンドの転送を行なう。この要求コマンドは、エリアIDと、要求パッケージを引数として行なわれる。要求パッケージは当該サービス提供元事業者の発行者鍵KIで暗号化されているので、第3者からは改竄されない。
要求コマンドがICカードのオペレーティング・システムに届くと、引数に含まれるエリアIDに基づいて、要求パッケージが当該サービス提供元事業者のファイル・システムへ渡され、その発行者鍵KIで解読され、要求パッケージの中身が取り出される。そして、パッケージ内で要求されている処理がファイル・システム内で実行されると、そのステータスが要求元であるサービス提供元事業者に返される。
ここで、ICカード内のファイル・システムへアクセスしているときに、ICカード内の論理的な問題により、以降ICカードが利用継続不能となった場合について考察してみる。
情報処理の技術分野においては、ファイル・システムへの変更情報を、変更作業が完了するまでログ・ファイルに保持しておくという「ジャーナリング機能」が知られている。ジャーナル・ファイルには、変更作業が正常に終了するとコミット・レコードが記録されるので、逆に言えば、コミット・レコードがない変更部分を探すことにより不具合の発生箇所を検出することができ、且つ変更内容がジャーナルされているので障害復帰を即座に行なうことができる。
これに対し、ファイル・システムがICカード内に展開されている場合(例えば図10を参照のこと)、メモリ領域がEEPROMのように消去書き換えを行なうデバイスで構成されるため、一旦消去動作により領域を確保してからジャーナリングが行なわなければならず、処理時間が長くなる、オーバーヘッドが大きいという問題がある。また、ICカードに実装可能なメモリ領域はわずかであることから、逐次的なジャーナリングはメモリ・リソースの浪費となる。
そこで、本実施形態では、内部の論理的な問題により以降ICカードが利用継続不能になったときに、そのときの処理内容をメモリ・デバイスにジャーナリングするようにした。
ICカードの通常利用時(すなわち障害が発生していない場合)においては、論理的な処理の記録をジャーナリングしない。これによって処理時間短縮(とりわけ、メモリへの書き込み時間の短縮)や、メモリ領域の効率的な利用(すべてのメモリ領域をユーザが利用できるようにするため)を図ることができる。ジャーナル用の余分なメモリ容量を持たないことから、コスト削減にもつながる。
他方、プログラムの処理過程で論理的な矛盾が発生し、利用継続が不能となった場合には、そのときの処理内容をメモリ・デバイスにジャーナリングする。利用継続が不能となった以降は、ICカードを利用しなくなるため、ジャーナリングを行なってもメモリ・リソースの無駄とはならない。また、メモリ領域にジャーナリングされたデータを用いて、その後の解析処理に役立てることができる。
図13には、ICカードにおけるメモリ領域のジャーナリング機能を付加した制御システム構成を模式的に示している。同図に示すように、この制御システムは、オペレーティング・システム内のサブシステムとして実装され、プロトコル・インターフェース部と、OS中枢部と、ファイル・システムで構成される。
プロトコル・インターフェース部は、UART48などの外部機器インターフェースを介した外部機器からのファイル・システムへのアクセス要求、あるいは非接触ICカード・インターフェースを介したカード読み書き装置からファイル・システムへのアクセス要求のハンドリングを行なう。
OS中枢部では、ファイル・システムとやり取りするデータのデコード/エンコード、CRCなどによるエラー訂正、EEPROM43のブロック毎の書き換え回数管理、PIN照合、相互認証などを行なう。
ファイル・システムは、ファイル・システム・エンティティとしてのEEPROM43へ物理アクセスを行なう。EEPROM43上に展開されるメモリ領域は、1以上のファイル・システムで構成される。
本実施形態では、メモリ領域内にジャーナル記憶領域を設けるとともに、プロトコル・インターフェース部はこのジャーナル記憶領域にアクセスするためのジャーナル取得インターフェースを備えている。
ジャーナルの初期値は空列である。プログラムの処理中に、プログラムの実行が継続不能になるような論理矛盾や不整合、揮発性メモリに格納されたデータの矛盾や不整合、揮発性メモリに格納されたデータの矛盾や不整合をプログラム自身が察知した場合には、プログラム内のエラー処理ルーチンにおいて、論理矛盾や不整合の発生場所、論理矛盾や不整合の内容、揮発性メモリに格納されたデータ、不揮発性メモリに格納されたデータをジャーナルとして出力し、これがジャーナル記憶領域に記録される。論理矛盾の内容は、あらかじめ定めたエラーコードであってもよい。
ジャーナル記憶領域は、専用の領域である必要はない。これは、ジャーナル出力が論理的な処理に矛盾や不整合が発生した場合というICカードの運用が継続できなくなる場合に行なわれるものであるからである。利用継続が不能となった以降は、ICカードを利用しなくなるため、ジャーナリングを行なってもメモリ・リソースの無駄とはならない。
ジャーナル出力以降は、外部機器又はプログラムは、ジャーナル取得インターフェースを経由して、ジャーナルを取得することができる。ジャーナリングされたデータを用いて、その後の解析処理に役立てることができる。但し、ジャーナル記憶領域が空列(すなわち初期値)の場合には、ジャーナル取得インターフェースは応答を返さない。
図14には、外部機器又はプログラムがジャーナル取得インターフェースを経由してジャーナルを要求する手続きを示している。但し、以下の例では、カード発行者のファイル・システムにジャーナルされているものとする。また、ICカードとの通信は、電磁誘導作用に基づく非接触近距離通信インターフェースを利用しても、あるいはUART48やI2C49などの有線インターフェースを利用して行なう。
カード発行者は、ICカードの実行環境であるオペレーティング・システムに対しポーリングして、ファイル・システムのシステム・コードSCを引数にしたファイル・システムのエリアID要求を行なう。
この要求メッセージをトリガにして、カード発行者と、ICカードの実行環境であるオペレーティング・システムの間で、複数往復にまたがる通信動作で構成される相互認証手続きを経て、要求に対する戻り値として、エリアIDがサービス提供元事業者へ返される。なお、相互認証手続きの構成についてはICカードの仕様毎に相違し、本発明の要旨には直接関連しないので、ここでは詳細な説明を省略する。
この認証手続きに続いて、カード発行者は、ICカードのオペレーティング・システムに対して、ファイル・システム内へのジャーナル要求コマンドの転送を行なう。このジャーナル要求コマンドは、エリアIDと、要求パッケージを引数として行なわれる。要求パッケージは当該サービス提供元事業者の発行者鍵KIで暗号化されているので、第3者からは改竄されない。
ジャーナル要求コマンドがICカードのオペレーティング・システムに届くと、引数に含まれるエリアIDに基づいて、ジャーナル要求パッケージがカード発行者のファイル・システムへ渡され、その発行者鍵KIで解読され、要求パッケージの中身が取り出される。そして、ジャーナル取得インターフェースを経由して、ジャーナルを取得すると、ステータスとともに要求元であるカード発行者に返される。