米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 大日本印刷株式会社

発明の名称 ICカード自己診断装置および診断方法
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−22425(P2003−22425A)
公開日 平成15年1月24日(2003.1.24)
出願番号 特願2001−207831(P2001−207831)
出願日 平成13年7月9日(2001.7.9)
代理人 【識別番号】100094053
【弁理士】
【氏名又は名称】佐藤 隆久
【テーマコード(参考)】
2C005
5B035
5B048
5B058
【Fターム(参考)】
2C005 MA21 MB03 MB08 MB10 NA02 NA06 SA05 SA22 TA21 TA22 
5B035 BB09 BC08 CA29
5B048 AA20 DD01 DD09
5B058 CA23 KA28
発明者 平野 晋健 / 西川 誠一
要約 課題
ICカードに診断プログラムをロードすることによって、OSを搭載した後であっても、ICカードを診断できるICカード自己診断装置及び自己診断方法を提供する。

解決手段
ICカードのメモリには、少なくとも、オペレーティングシステム(OS)と、当該OSの管理下で動作し、ICカードに関する基本的な処理を行う、プログラムローダを含む基本処理プログラムと、当該OSと基本処理プログラムと協働し、ICカードの各種処理を行う応用プログラムとを記憶され、前記ICカードを自己診断する時、前記プログラムローダは応用プログラムの1つとして自己診断プログラムを外部装置からロードし、前記メモリに記憶し、当該自己診断プログラムは、前記OSと基本処理プログラムとを協働して、前記ICカードを構成する部分を診断する。
特許請求の範囲
【請求項1】ICカードの診断を行う外部装置と、該外部装置と接続され、該外部装置と協働して診断するICカードとを有するICカード自己診断装置であって、前記ICカードはCPUと、メモリとを有し、前記メモリには、少なくとも、オペレーティングシステム(OS)と、前記OSの管理下で動作し、前記ICカードに関する基本的な処理を行う、プログラムローダを含む基本処理プログラムと、前記OSと前記基本処理プログラムと協働し、ICカードの各種処理を行う応用プログラムとが記憶され、前記ICカードを自己診断する時、前記プログラムローダは応用プログラムの1つとして自己診断プログラムを前記外部装置からロードし、前記メモリに記憶し、前記メモリに記憶された自己診断プログラムは、前記OSと前記基本処理プログラムとを協働して、前記ICカードを構成する部分を診断するICカード自己診断装置。
【請求項2】外部装置から自己診断プログラムをICカードのメモリのデータ記録領域にロードし、前記ロードされた自己診断プログラムを応用プログラムの1つとして動作させて、前記ICカードの構成部分を診断するICカード自己診断方法。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明はICカード、特に、CPUとメモリを有し、オペレーティングシステム(OS)と複数の応用プログラムとを組み込んだICカードを診断するICカード自己診断装置及びその診断方法に関する。
【0002】
【従来の技術】集積回路技術などの進展につれて、CPUとメモリを内蔵したICカードが実用されつつ、注目を集めている。高度なセキュリティ機能と多機能化が可能のため、種々の分野での使用が期待されている。
【0003】最近のICカードのICチップには、一般的に、CPU、メモリ、及び、暗号処理専用回路などが含まれている。そのメモリは通常読み出し専用メモリ(ROM)、書き換え可能な不揮発性メモリ、たとえば、EEPROM、及び、ランダムアクセスメモリ(RAM)を含む。ROMには、ICカードのオペレーティングシステム(OS)が格納され、書き換え可能な不揮発性メモリには各種OSレベルのプログラムとサービスを提供する応用プログラムとユーザの個人データなどを収容する。
【0004】これまでは、特定の機能を実現する専用の機械語プログラムをROMに記憶してICカードに収容する場合がほとんどであったが、最近では、マルチアプリケーション型カードOSと言われるインタプリタを常駐させた構成のICカードが出現している。このような、インタプリタを搭載したICカードにおいては、プログラム言語で記述されたプログラムを書き換え可能な不揮発性メモリに記録することにより、カードOS搭載後、さらに、カード発行後でも所望の機能の応用プログラムを追加することができる、また、不必要なプログラムを削除することもできる。代表的なマルチアプリケーションOSとしては、MULTOS、Java(登録商標)Card、Windows(登録商標)for SmartCardがある。
【0005】ICカードは銀行口座の管理、代金の決済、そして、種々の自動ID認識に使用され、機密性の高い重要なデータを記録するので、ICカードの製造業者は出荷の時にICカードの厳重な診断を行わなければならない。ICカードの処理機能を決定するOSのカーネルを記録するROMや、OS用システムプログラムと応用プログラムと個人データとを記録する書き換え可能な不揮発性メモリや、そして、ICカードのセキュリティ機能に関わる暗号処理専用回路などを診断すべきであるが、それに加え、CPU、クロック発生回路、RAMなど、ICカードの基本構成は、ICカードの基本的な動作具合を決めるので、その診断も重要である。
【0006】従来のシングルアプリケーション型のICカードにおいては、OSと専用のアプリケーションと診断用プログラムとを事前にICカードのROMに組み込んで、出荷する前に診断するという方式が知られている。しかし、マルチアプリケーションOSを搭載したICカードにおいては、ROMや書き換え可能な不揮発性メモリに書きこむべきプログラムのサイズは大きくなった。このため、メモリの一部は診断用プログラムに占用されると、ICカードに本来の処理機能を実行させるために必要なアプリケーションプログラムの容量が制限され、ICカードに十分な機能を与えることに支障がある。また、メモリに診断用プログラムを搭載しておくと、そのプログラムの誤動作、或は、不正利用により、ICカード内のデータが書き換えられてしまう可能性があり、セキュリティ上は問題がある。
【0007】また、ICカードに新しい機能を備えるに伴い、ICカードのハードウエアの構成も常に改善され、変化しつつある。一方、マルチアプリケーションOSを搭載したICカードにおいて、プログラム言語でアプリケーションプログラムを作成しており、ハードウエア構成に依存性が低いので、様々なICカードに搭載可能になった。そのため、OSを開発段階で、各種のICカードのハードウエアを全部診断できるプログラムを用意することは難しい。従って、マルチアプリケーションOSを搭載したICカードにおいては、自己診断プログラムをメモリに搭載していない。
【0008】
【発明が解決しようとする課題】そういう状況によって、ICカードの自己診断は、ICカード端末装置や、ホストコンピュータなどの外部装置から、ICカードに診断プログラムをロードして実行させ、ICカードを診断する、診断終了後、診断プログラムを削除する、という方式は採用されている。例えば、特開平7−210640号公報には、ICカードのROM内に検査用プログラムを格納なしに、検査用プログラムを二回不揮発性EEPROMにロードし、ICカード内蔵メモリを検査する方法が開示されている。しかしながら、この検査方法によっては、複数の検査専用のルーチンをROMに収容しておかなければならない、従って、OSをすでに搭載し、ROMの書き換えが不可能なマルチアプリケーションOSを用いるICカードの診断に適用することが難しい、また、メモリ容量の制限を緩和する観点からも好ましくない。
【0009】本発明の目的は、マルチアプリケーションOSを用いるICカードに対して、ROMにプログラムを格納せずに、OSを搭載した後であっても、外部装置から自己診断プログラムをICカードにロードすることによって、ICカード全体を診断できるICカード自己診断装置及び自己診断方法を提供することにある。
【0010】
【課題を解決するための手段】本発明に係わるICカード自己診断装置は、ICカードの診断を行う外部装置と、該外部装置と接続され、該外部装置と協働して診断するICカードとを有するICカード自己診断装置であって、前記ICカードはCPUと、メモリとを有し、前記メモリには、少なくとも、オペレーティングシステム(OS)と、前記OSの管理下で動作し、前記ICカードに関する基本的な処理を行う、プログラムローダを含む基本処理プログラムと、前記OSと前記基本処理プログラムと協働し、ICカードの各種処理を行う応用プログラムとが記憶され、前記ICカードを自己診断する時、前記プログラムローダは応用プログラムの1つとして自己診断プログラムを前記外部装置からロードし、前記メモリに記憶し、前記メモリに記憶された自己診断プログラムは、前記OSと前記基本処理プログラムとを協働して、前記ICカードを構成する部分を診断する。
【0011】本発明に係わるICカード自己診断方法は、外部装置から自己診断プログラムをICカードのメモリのデータ記録領域にロードし、前記ロードされた自己診断プログラムを応用プログラムの1つとして動作させて、書き換え可能な不揮発性メモリのみならず、前記ICカードの構成部分を診断する。
【0012】
【発明の実施の形態】以下、本発明に係わる実施の形態を添付の図面を参照して説明する。
ICカード自己診断装置の構成図1は、本実施形態に係わるICカード自己診断装置1の構成を示すブロック図である。ICカード自己診断装置1は、ICカード10、端末装置20、例えば、リードライト装置、および、ホストコンピュータ30を有する。端末装置20がICカード10を管理するホストコンピュータ30の端末装置であり、実質的にホストコンピュータ30からの指示に基づいて、ICカード10に対して、様々な処理を行う。
【0013】ICカード10は、ICカード製造会社から発行される前に、OSとOSレベルのソフトウエアを搭載済みのマルチアプリケーションOSを用いるICカード、或は、ICカード発行会社から発行および管理されて、ICカード所有者が携帯する特定の機能を有するマルチアプリケーションOSを用いるICカードのいずれかにする。また、説明の便宜上、接触型とする。このICカード10は、図1に示すように、CPU11、インタフェース(I/F)12、コプロセッサ(co-processor、暗号処理器)13、乱数生成器14、外部クロック逓倍回路15、読み出し専用メモリ(ROM)16、ランダムアクセスメモリ(RAM)17、および書き換え可能な不揮発性メモリEEPROM18を有する。
【0014】CPU11は、端末装置20からのコマンド、あるいは、予めICカードに設定されたコマンドに基づいて、EEPROM18に記憶されているアプリケーションに従って、I/F12を介して端末装置20と適宜通信を行いながら、所望の処理を行う、たとえば、ICカードの認証、決済、診断などの処理を行う。CPU11において処理を行う際に一時的に発生するデータをRAM17に記憶する。
【0015】I/F12を介して、ICカード10が端末装置20に装着された場合に、電力の供給を受けるとともに、端末装置20と信号の送受を行う。すなわち、I/F12は、端末装置20から受信した信号をCPU11に出力し、また、CPU11から入力された信号を端末装置20に送信する。
【0016】コプロセッサ13と乱数生成器14とは、専用の暗号処理回路である。乱数生成器14は乱数を生成する。コプロセッサ13はこの乱数を用いて、RSAなどの演算を行う。
【0017】ROM16、RAM17、および、EEPROM18がICカード10のメモリシステムを構成する。それぞれの機能は次に述べるICカードのソフトウエアの構成で説明する。
【0018】このようなハードウエア構成のマルチアプリケーションOSを用いるICカード10においては、図2に示すような階層構造のソフトウエアが搭載されている。図2は、ICカード10のソフトウエア構成を示す概念図である。
【0019】その階層構造の中核になるのは、ROM16に記憶されるOSのカーネル部21である。OSカーネル部21は、ICカードのハードウエア資源を管理し、OSカーネル部21の管理の下で、上層のプログラムの動作を制御する。また、OSカーネル部21は、上層のプログラムからICカードのハードウエアをアクセスできるようにインタフェースを提供する。ROM16に記憶されるOSのカーネル部21はICカード製造会社がICカード発行前に搭載したもので、書き換えることはできない。
【0020】図2において、OSカーネル部21の上層には、OSレベルのソフトウエアである処理モジュールが配置されている。それぞれの処理モジュールは、OSカーネル部21の所定の機能を実現し、これによって、OSカーネル部21の多様な機能はさらに上層の応用プログラムが便利に利用できるようになる。これら処理モジュールはEEPROM18、又は、ROM16に記録されている。以降、EEPROM18に記録されているものとして説明する。処理速度、容量、また、セキュリティの関係で、これらOSレベルのソフトウエアは機械語で記述することが望まれる。
【0021】このような処理モジュールとしては、例えば、新たな処理モジュールおよび応用プログラムを追加、更新、または、削除するための、マルチアプリケーションOSを用いるICカード特有のプログラムローダ22や、応用プログラムからICカードのハードウエアにアクセスする時に必要となるアプリケーションプログラミングインタフェース(application programming interface、或は、API)23や、プログラム言語を処理するインタプリタ24や、または、暗号処理ライブラリなどがある。
【0022】プログラムローダ22は、メモリマップに基づいて、EEPROM18の所定の位置に、新たにアプリケーション、あるいは、ライブラリなどを記憶するモジュールである。この時、既にプログラムあるいはライブラリが記憶されている領域に上書きすると、プログラムあるいはライブラリの書き換え、更新することになる。本発明では、プログラムローダ22は、応用プログラムとして、自己診断プログラム25をホストコンピュータ30からダウンロードし、EEPROM18に記憶する。
【0023】Application programming interface (API)23は、プログラム言語で記述された応用プログラムは直接にICカードのハードウエアをプログラミングし、動作させて、または、書き込みをするためのプログラムである。API23によって、応用プログラムは、ICカードのハードウエアに依存せず動作することが可能になり、移植性そして汎用性が良い。
【0024】図2において、既に述べたように、前述処理モジュールの上に、応用プログラム(アプリケーションとも言う)が収容される。応用プログラムもEEPROM18に記録される。マルチアプリケーションOSを用いるICカードにおいては、ある特定のプログラム言語で応用プログラムが作成される事が多い。例えば、MULTOSのICカードに搭載したアプリケーションはMEL言語(MULTOS Executable Language)で記述され、JavaCardではJava言語を使用し、また、Windows for SmartCardではVirtual Basic言語で書かれたアプリケーションをサポートする。プログラム言語で書かれた応用プログラムを実行するには、インタプリタ24は必要である。インタプリタ24は応用プログラムのソースコードを、逐次、実行形式のコードに変換する。必要に応じて、必要な処理モジュールを呼出し、ICカード10の特定の機能を実現するための種々のデータを利用する。また、プログラミングインタフェースAPI23を介して、ICカードのハードウエアにアクセスする。
【0025】なお、ICチップのCPUの機械語で動作し、プログラム言語のアプリケーションではないものもある、その場合は、インタプリタ24を動作させる必要がない。
【0026】ICカードが提供するサービスにより、応用プログラムは様々あるが、本発明では、ICカードの自己診断を行う時に、自己診断プログラム25を応用プログラムとして搭載する。実行された自己診断プログラム25は診断すべきICカードのハードウエアのAPIを呼出し、そのハードウエアを動作させ、正常かどうかを確認する。
【0027】応用プログラムは、ICカード10が提供する機能を実現するためのプログラムであり、通常カード発行前に搭載する。マルチアプリケーションOSを用いるICカードにおいては、ICカード発行後であっても、プログラムローダ22により適宜に追加、および、更新することが可能である。以上が、ICカード自己診断装置1におけるICカード10の構成の説明である。
【0028】このようなハードウエア構成およびソフトウエア構成のICカード10は、端末装置20に装着されると、I/F12を介して端末装置20より電源とクロック信号の供給を受けることにより起動される。そして、端末装置20を介して、ホストコンピュータ30からのコマンドに基づいて、処理を行う。
【0029】次は、本発明におけるICカード自己診断装置1の端末装置20とホストコンピュータ30との機能および基本動作を説明する。本発明では、端末装置20を経由して、ホストコンピュータ30から送られたロード(書き込み)コマンドに基づいて、自己診断プログラム25をホストコンピュータ30からICカード10にロードし、さらに、ホストコンピュータ30からの実行コマンド及び診断コマンドに従って、ICカードを診断するという処理を行う。
【0030】端末装置20は、ICカード製造会社、または、管理会社のホストコンピュータ30に通信回線を介して接続されており、装着されたICカード10に対して、自己診断プログラム25をロードし、診断させる。この機能があれば、通常店舗などで使用される端末装置であってもよい。
【0031】ICカード10が端末装置20に装着されると、端末装置20がICカード10に電源を供給して起動する。そして、発行後の所有者が携帯しているICカードであれば、まずは、端末装置20との間で相互認証を行い、例えば、ICカード10がICカード自己診断装置1で処理対象となるICカードか否かの簡単なチェックを行う。ICカード10が認定された場合には、端末装置20を介して、ICカード10はホストコンピュータ30と通信できる。ホストコンピュータ30とICカード10とは通信を順次に行いながら、ホストコンピュータ30より送信されたICカード10に対する指示を実行する。
【0032】ICカード自己診断方法このような構成のICカード自己診断装置1を用い、ICカードを診断する工程について、図3を参照して説明する。図3は、本発明に係わるICカード自己診断装置1を用いて、ICカード10を診断する工程を示すフローチャートである。ここで、ICカードを発行した後、ICカードの所有者がICカードの自己診断を行う場合を例にして説明する。ICカード10が端末装置20に装着されると、ICカード10が起動される(ステップS31)。
【0033】まず、ICカード10と端末装置20の間で認証処理が行われる(ステップS32)。例えば、ICカード所有者はパスワードを入力して、正当な所有者であり、かつ、ICカードは当該自己診断装置1で使用されているICカードであると判明したら、端末装置20はICカード10の情報をホストコンピュータ30に送信し、ICカードに10対して、所有者が希望する処理の指定を待つ。
【0034】次は、ICカード10の所有者は端末装置20から入力し、ICカードの自己診断を行うと指定する(ステップS33)。端末装置20を介してICカード自己診断の指定を受信すると、例えば、ホストコンピュータ30に収容されたICカード自己診断装置1を制御するプログラムが動作され、ICカード自己診断装置1を起動し、ICカード10に対する診断処理が開始される(ステップS34)。
【0035】次は、ホストコンピュータ30は自己診断プログラム25をICカード10へロードし始める(ステップS35)。例えば、ホストコンピュータ30から自己診断プログラム25をICカード10へロードするコマンドが送信されて、自己診断プログラム25の構成成分も送信される。ICカード10はロードコマンドを受信すると、ICカードOSにより、プログラムローダ22が起動される。その後、ICカードは自己診断プログラム25の構成成分を受信したと判明したたびに、プログラムローダ22がそれをEEPROM18の所定の領域に書き込む。
【0036】自己診断プログラム25のロードを終了した後、ホストコンピュータ30から自己診断プログラム25を実行するコマンドが送信され、ICカード10はそれを受信すると、ICカードOSにより、自己診断プログラム25を実行し、ICカード自己診断を開始する。自己診断中、ICカードの各ハードウエア構成について、異常があるか否かを診断結果として、ホストコンピュータ30へ送信され、ホストコンピュータ30に記録され、或は、ホストコンピュータ30又は端末装置20に表示される(ステップS36)。ステップS36においてICカードの診断の詳細は後程説明する。
【0037】ICカード全てのハードウエアの診断を終了したら、自己診断プログラム25をプログラムローダ22により削除し、又は、診断の結果により、ICカードの廃棄、或は、継続使用などの終了処理を行う(ステップS37)。以上が、ICカード自己診断装置1によるICカード10の診断工程の説明である。
【0038】次は、上述のICカード自己診断装置1においてICカード10の自己診断工程S36の詳細な内容を、図4、図5および図6を参照して説明する。図4はICカード10を自己診断プログラム25により診断する工程を示すフローチャートである。
【0039】前述のように、ホストコンピュータ30から、EEPROM18に書き込まれた自己診断プログラム25を実行するコマンドを受信すると、自己診断プログラム25が実行される。即ち、自己診断プログラム25がRAM17に読み込まれて、CPU11において自己診断プログラム25に記述された手続きを逐次実行され、ICカード10の自己診断を行う(ステップS41)。
【0040】まずは、自己診断プログラム25はICカード10の存在するハードウエアの構成を検索し、検出されたハードウエアの情報を、端末装置20を介して、ホストコンピュータ30に送信する。その情報を端末装置20に出力して表示し、又は、ICカード10の管理情報として記憶する(ステップS42)。また、検出されたハードウエアの構成に基づき、診断の順序を決める。
【0041】次は、ホストコンピュータ30とICカード10とはコマンドとデータの送受信を行いながら、自己診断プログラム25が、例えば、CPU11の診断を実施する(ステップS43)。ステップS43においては、図5に示された工程が実施される。即ち、まずは、ホストコンピュータ30がCPU11を診断するコマンドを送信する(ステップS51)。次は、ICカード10がそのコマンドを受信して、CPU11を診断する(ステップS52)。次は、ICカード10はCPU11の診断結果をホストコンピュータ30へ送信する(ステップS53)。ホストコンピュータ30は診断結果を表示し、または、記録する(ステップS54)。CPU11の診断方法としては、例えば、CPU11を構成するレジスタやプログラムカウンタ(PC)にFF、00、AA、55(16進数表示)などのテストパターンを書きこみ、直後に正しく書けたか否かを確認し、正常に動作していることを確認する。
【0042】次は、図4において、ホストコンピュータ30とICカード10とはコマンドとデータの送受信を行いながら、自己診断プログラム25が、例えば、RAM17の診断を実施する(ステップS44)。即ち、図5に示されるように、RAM17を診断するコマンドを送信し(ステップS51)、ICカード10がそれを受信してRAM17を診断し(ステップS52)、そして、診断結果をホストコンピュータ30へ送信する(ステップS53)、ホストコンピュータ30により診断結果を表示し、または、記録する(ステップS54)。RAM17の診断方法としては、例えば、RAM17の未使用領域にFF、00、AA、55(16進数表示)などのテストパターンを書きこみ、直後に正しく書けたか否かを確認し、正常に動作していることを確認する。
【0043】次は、ホストコンピュータ30とICカード10とはコマンドとデータの送受信を行いながら、自己診断プログラム25が、例えば、ROM16の診断を実施する(ステップS45)、即ち、図5に示された工程が前述と同様に実施される。詳細は省略する。ROM16の診断方法としては、例えば、ROM16エリアの先頭から末尾までのチェックコードを算出し、期待値と一致するか否かを確認する。
【0044】次は、ホストコンピュータ30とICカード10とはコマンドとデータの送受信を行いながら、自己診断プログラム25が、例えば、EEPROM18の診断を実施する(ステップS46)、即ち、図5に示された工程が実施される。詳細は省略する。自己診断プログラム25はEEPROM18に書きこまれているので、EEPROM18を診断する時は、自己診断プログラム25自身を書き換えてしまうことにならないように、工夫が必要である。
【0045】図6はEEPROM18を診断する方法を説明する概念図である。図6において、ステップS61における空領域は、EEPROM18にOSレベルの処理モジュールと応用プログラムと個人データとを収容した領域以外に、使用していない領域を示す。この領域は、主にユーザの個人データを記憶する領域である。ここで、この空領域だけ診断の対象にする。
【0046】ステップS62においては、前述EEPROM18の空領域の所定アドレス領域に、自己診断プログラム25を書き込む。以降、この領域はプログラム領域と呼び、前記空領域の残りのエリアはデータ領域と呼ぶ。このデータ領域にFF、00、AA、55(16進数表示)などのテストパターンを書きこみ、正しく書けたか否かを確認する。データ領域は正常に動作していることを確認したら、ステップS63に進む。
【0047】ステップS63では、プログラムローダ22により、自己診断プログラム25をプログラム領域から診断完了したデータ領域に所定のアドレス領域に書き込む。そして、ステップS62と同様に、この未確認のプログラム領域にFF、00、AA、55(16進数表示)などのテストパターンを書きこみ、正しく書けたか否かを確認することにより、プログラム領域は正常に動作していることを確認する。
【0048】そして、図5に示されたように、ICカード10はEEPROM18の診断結果をホストコンピュータ30へ送信する(ステップS53)。ホストコンピュータ30は診断結果を表示し、または、記録する(ステップS54)。
【0049】なお、同じようにして、EEPROM18全体の診断もできる。OSレベルのソフトウエア領域と応用プログラム領域を診断する時は、セキュリティの問題を考慮し、権限を設ける必要がある。
【0050】次は、ホストコンピュータ30とICカード10とはコマンドとデータの送受信を行いながら、自己診断プログラム25が、例えば、コプロセッサ13の診断を実施する(ステップS47)、即ち、図5に示された工程が実施される。コプロセッサ13の診断方法としては、例えば、特定の平文と鍵情報で暗号化し、既存の期待値と比較することで確認する。又は、暗号文を復号して元の平文に戻る事でもコプロセッサ13の動作を確認できる。
【0051】次は、ホストコンピュータ30とICカード10とはコマンドとデータの送受信を行いながら、自己診断プログラム25が、例えば、乱数生成器14の診断を実施する(ステップS48)、即ち、図5に示された工程が実施される。乱数生成器14の診断方法としては、例えば、乱数生成器14を動作させ、乱数を多量生成させ、その乱数の分布を計測し、一様な分布になっているか否かを確認する。
【0052】次は、ホストコンピュータ30とICカード10とはコマンドとデータの送受信を行いながら、自己診断プログラム25が、例えば、外部クロック逓倍回路15の診断を実施する(ステップS49)、即ち、図5に示された工程が実施される。外部クロック逓倍回路15の診断方法としては、例えば、外部クロック信号に準じてタイマを起動する。同時に、内部クロックで100クロックを空ループさせる。空ループが終了した段階でタイマのカウンタ値を読み出す。この値が一定範囲内に収まっている事を確認する。
【0053】ICカードを構成するすべてのハードウエアの診断を完了した後、処理は図3のステップS37へ進む。
【0054】以上の診断方法は、後から応用プログラムを追加ができれば、そして、各ハードウエアにアクセスするAPIを備えていれば、実現できる。従って、以上のように、本実施の形態のICカード自己診断装置1を用いれば、全てのマルチアプリケーションOSを用いるICカードは、OSと、OSレベルのソフトウエアと応用プログラムとを搭載した後であっても、さらに、カード発行後であっても、自己診断プログラムを追加することで、ICカードの自己診断ができる。
【0055】既に述べたように、プログラム言語で作成されて、ICカードのソフトウエア階層構造の中に、最上層にある自己診断プログラムは、ICカードの各ハードウエアを書き込む、または、動作させるには、そのハードウエアへのプログラミングインタフェースが必要である。このプログラミングインタフェースはICカードOSのカーネルに含まれ、または、処理モジュールとして用意されており、本発明のAPI23に相当する。API23によって、プログラム言語を用いても、ICカードのハードウエアのプログラミングができるようになり、各ハードウエアの診断も可能になる。以上の本実施形態の説明では、ICカードの各ハードウエアのプログラミングインタフェースが開放されて、利用可能であることを前提とした。
【0056】本発明は以上に説明した実施の形態に限られるものではなく、種々の改変が可能である。前述した実施の形態において、ICカード発行後に、所有者によるICカードを自己診断する場合を例にして説明したが、ICカードを発行する前にICカードの製造業者によるICカードの不良検査にも適用できることは明らかである。この場合は、図3において、ICカードの認定処理ステップS32が不要である。また、診断完了後、ステップS37の終了処理においては、異常のあるICカードは廃棄し、正常のICカードに発行処理など内容の後処理を行う。さらに、EEPROM18の診断工程においては、前述空領域は個人データを記録するユーザエリア全体になる。これは、ICカード製造会社が実際に行っている診断作業である。この場合は、前述のようにホストコンピュータ30とICカード10が通信を行いながら診断を実行することに比べ、すべてのハードウエア構成成分を一気に診断する、いわゆる、バッチモードでの診断は便利である。
【0057】また、前述した実施の形態においては、専用の自己診断プログラムの追加によるICカードの自己診断を例にしたが、診断機能を通常のサービスを提供する応用プログラムに追加し、その応用プログラムをロードする時に自己診断を行うことも可能である。
【0058】また、ICカード所有者による自己診断、或は、サービスを提供する応用プログラムを用いる自己診断を行う場合は、実際に必要となったICカードの機能だけ使用する前に診断しても良い。
【0059】また、本実施の形態においては、接触型のICカードを例示して本発明を説明した。しかし、インタフェース(I/F)12としては端子が設けられておらず、電磁的に外部装置と接続されるような構成であっても何ら差し支えない。すなわち、ICカードは非接触型のICカードであってもよい。
【0060】
【発明の効果】本発明によれば、診断機能を持っていない全てのマルチアプリケーションOSを用いるICカードは、OSと、各種プログラムを搭載した後であっても、さらに、カード発行後であっても、自己診断プログラムを追加することにより、ICカード全体の診断が可能になる。そして、診断プログラムは書き換え可能な不揮発性メモリに記憶され、予めROMに診断ルーチンを格納せず、診断直後に診断プログラムを削除することによって、診断プログラムはメモリ容量を占用しない、従って、ICカードの本来の機能を十分に実現するメモリ容量を確保ができる。
【0061】また、OSの書き換えをせず、ICカードの診断は簡単にでき、ICカード製造業者やICカードの個人所有者など、誰でも何時でも簡単にICカードのハードウエアの状況を調べられ、便利性が優れている。また、診断プログラムをメモリに常駐させる方式とくらべ、ICカードの安全性が高い。簡単にICカードを検査できるので、ICカード使用上の安全性をさらに高める。
【0062】さらに、診断プログラムは機械語でなく、プログラム言語で記述され、移植性が良く、様々なハードウエア構成のICカードに適用でき、汎用性は高い。特に、異なるカードOSまたはインタプリタを搭載したICカードであっても、それぞれの診断プログラムの仕様を均一にすることによって、その異なるICカードの診断結果でも比較でき、診断結果がICカードの仕様を反映し、ハンドリングしやすい。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013