(57)【特許請求の範囲】
【請求項１】
外部装置と接触または非接触で通信可能なインターフェイス手段と、メモリと、前記インターフェイス手段と前記メモリとに接続されたプロセッサとを有し、
前記外部装置から給電されて動作し、
前記プロセッサは、前記メモリに記憶されたオペレーティングシステム（ＯＳ）の下で前記メモリに記憶されたＯＳ以外のプログラムを実行して、前記外部装置と通信を行い前記外部装置と協働して所定の処理を実行する、
ＩＣカードであって、
前記メモリは、
ＯＳを記憶する書き換え不能なメモリと、
前記ＯＳ以外のプログラム、および、パラメータを記憶する書き換え可能な不揮発性メモリと、
を有し、
前記不揮発性メモリには、前記ＯＳ以外のプログラムとして、
プログラム言語で記述されたアプリケーションを実行するときにソースコードを実行形式のコードに変換するインタプリータと、
前記外部装置を介してプログラムをダウンロードし、メモリマップに基づいて当該不揮発性メモリに記憶するプログラムローダと、
前記プログラムローダにより前記外部装置から入力されるプログラムのうち符号化された機械語処理モジュールを復号する、復号プログラムと、
機械語で記述することが望まれる処理モジュール、アプリケーションで使用する機能の処理モジュール、前記外部装置を介して読み出しまたは更新させたくない処理モジュールをアプリケーションから参照可能な形式で記憶した処理モジュールである、ライブラリと、
当該ＩＣカードが前記外部装置と協働して行う機能を実現するためのプログラム言語で記述されたアプリケーションと、
が記憶可能であり、
前記プログラムローダは、
前記外部装置を介して提供される、プログラム言語で記述された新たなアプリケーションを前記メモリマップに基づいて前記不揮発性メモリの空き領域に記憶する第１のモードと、
前記外部装置を介して提供される、更新すべきインタプリータ、復号プログラムまたはライブラリを、前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する第２のモードと
を有し、
前記外部装置からの指示に応じて前記不揮発性メモリに記憶されている前記ライブラリを更新するとき、
前記プログラムローダが、符号化された更新すべきライブラリを前記外部装置から受信し、
前記復号プログラムが、前記受信した符号化された更新すべきライブラリを復号し、
前記プログラムローダが、前記第１のモードで前記復号したライブラリを前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する、
ＩＣカード。
【請求項２】
前記外部装置からの指示に応じて前記不揮発性メモリに記憶されている前記アプリケーションを更新するとき、
前記プログラムローダが、符号化された更新すべきアプリケーションを前記外部装置から受信し、
前記復号プログラムが、前記受信した符号化された更新すべきアプリケーションを復号し、
前記プログラムローダが、前記第２のモードで前記復号したアプリケーションを前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する、
請求項１に記載のＩＣカード。
【請求項３】
前記外部装置からの指示に応じて前記不揮発性メモリに記憶すべきアプリケーションを追加するとき、
前記プログラムローダが、符号化された追加すべきアプリケーションを前記外部装置から受信し、
前記復号プログラムが、前記受信した符号化された追加すべきアプリケーションを復号し、
前記プログラムローダが、前記第２のモードで前記復号したアプリケーションを前記メモリマップに基づいて前記不揮発性メモリの空き領域に記憶する、
請求項１に記載のＩＣカード。
【請求項４】
請求項１〜３のいずれかに記載のＩＣカードと、当該ＩＣカードと接触式または非接触式で接続された端末装置と、当該端末装置と通信経路によって接続されたホストコンピュータとを有し、前記ＩＣカードのメモリ内に記憶されたライブラリを更新する、ＩＣカードのプログラム更新装置であって、
前記端末装置は、
前記ＩＣカードのインターフェイス手段と接触または非接触で通信可能な第２インターフェイス手段と、
当該第２インターフェイス手段に接続され、前記ホストコンピュータと通信経路を介して通信可能な通信制御手段と
を有し、
前記ホストコンピュータは、
前記端末装置を介して前記ＩＣカードのプロセッサと通信が確立された後、前記ＩＣカードの正当性を確認し、
当該ＩＣカードが正当なＩＣカードであると確認したとき、前記端末装置を介して前記ＩＣカード内の前記不揮発性メモリに記憶されているライブラリが更新すべきか否かを判断し、
更新すべきと判断したとき、更新対象のライブラリを符号化して前記端末装置を介して前記ＩＣカードに送信し、
前記ＩＣカード内の前記プロセッサ上で動作する前記プログラムローダが、前記符号化された更新すべきライブラリを受信し、
前記ＩＣカード内の前記プロセッサ上で動作する前記復号プログラムが前記受信した符号化された更新すべきライブラリを復号し、
前記プログラムローダが前記第１のモードで前記復号したライブラリを、前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する、
ＩＣカードのプログラム更新装置。
【請求項５】
請求項１〜３のいずれかに記載のＩＣカードと、当該ＩＣカードに接触式または非接触式で接続された端末装置と、当該端末装置と通信経路によって接続されたホストコンピュータとを有するプログラム更新装置におけるＩＣカードのプログラム更新方法であって、
前記ホストコンピュータが、前記端末装置を介して前記ＩＣカードのプロセッサと通信が確立された後、前記ＩＣカードの正当性を確認し、
前記ホストコンピュータが、当該ＩＣカードが正当なＩＣカードであると確認したとき、前記端末装置を介して前記ＩＣカード内の前記不揮発性メモリに記憶されているライブラリが更新すべきか否かを判断し、
前記ホストコンピュータが、更新すべき判断したとき、更新対象のライブラリを符号化して前記端末装置を介して前記ＩＣカードに送信し、
前記ＩＣカード内の前記プロセッサ上で動作する前記プログラムローダが、前記符号化された更新すべきライブラリを受信し、
前記ＩＣカード内の前記プロセッサ上で動作する前記復号プログラムが、前記受信した符号化された更新すべきライブラリを復号し、
前記プログラムローダが、前記第１のモードで前記復号したライブラリを、前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する、
ＩＣカードのプログラム更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演算処理回路および記憶回路を、集積回路（ＩＣ）に収容した、たとえばカード形状の携帯型情報処理装置（単に、これをＩＣカードと言う。）、そのＩＣカードの機能（プログラム）を更新するＩＣカードのプログラム更新装置（システム）およびＩＣカードの更新方法に関する。
【０００２】
【従来の技術】
集積回路技術などの進展により、いわゆるＩＣカードの高機能化が目覚ましい。近年では、暗号化処理や認証処理などの複雑な信号処理も、ＩＣカード内で高速に行なえるようになっている。
また、これまでは、特定の機能を実現する専用の機械語プログラムをＲＯＭに記憶してＩＣカードに収容する場合がほとんどであったが、最近では、マルチアプリケーション型カードＯＳと言われるインタプリタを常駐させた構成のＩＣカードＯＳが出現している。このような、インタプリタを搭載したＩＣカードにおいては、プログラム言語で記述されたアプリケーションプログラムを書き換え可能な不揮発性メモリに記録することにより、カード発行後でも所望の機能の追加を実現する。
【０００３】
そのような、カードＯＳを用いたＩＣカードのソフトウェア構成について、図５を参照して説明する。
図５に示すように、このような形態のＩＣカードにおいては、ハードウェア９１を直接動作させるのはＯＳカーネル部９２となり、レイヤとしてはこの上位にインタプリタ９３、プログラムローダ９４およびライブラリ９５-1，９５-2が配置される。さらに、インタプリタ９３の上位に、アプリケーション９６-1，９６-2が配置される。
【０００４】
このインタプリタ９３は、アプリケーション９６-1，９６-2を実行する時に、ソースコードを、逐次、実行形式のコードに変換する処理モジュールである。
また、プログラムローダ９４は、新たなアプリケーション９６-1，９６-2をＩＣカード内に読み込み、不揮発性メモリに記憶するモジュールである。
また、ライブラリ９５-1，９５-2は、処理速度や容量の関係で機械語で記述することが望まれるモジュール、アプリケーションなどで頻繁に使用する機能のモジュール、および、セキュリティ上ソースコードを容易に見れたり外部から読み出したり更新したりさせたくない処理モジュールなどが、ライブラリとして記憶される。
【０００５】
そして、このようなソフトウェア構成のＩＣカードにおいては、新たな機能を実現するアプリケーションプログラムをプログラムローダ９４によりＩＣカードの書き換え可能な不揮発性メモリにローディングすることにより、カード発行後であっても、適宜新たな機能を追加することができる。
【０００６】
なお、ＯＳカーネル部９２を構成するＩＣカードＯＳとしては、ＭＵＬＴＯＳ、ＪａｖａＣａｒｄ、Windows for Smart Cards などが知られている。
また、アプリケーションをセキュリティを保った状態で書き込むことのできるＩＣカードとしては、特開平１０−７９０００号公報に開示されているＩＣカードがある。
【０００７】
【発明が解決しようとする課題】
しかしながら、このようなこれまでのカードにＯＳを搭載した形式のＩＣカードにおいては、プログラムローダ９４によりカード発行後にも再ローディングできるのはアプリケーションのみであり、ライブラリとして記憶されている処理モジュールは書き換えることができなかった。
そのため、たとえばライブラリの機能として具えている暗号化アルゴリズムに脆弱性が発見された場合でも、その暗号化アルゴリズムを新たなアルゴリズムに入れ換えることができず、問題の生じた機能を放置して使用を続けるか、あるいは、ＩＣカード自体を改修して新たなＩＣカードを再発行するしか手段がなかった。
もちろん、そのような書き換え対象となる機能をアプリケーションとして記憶させておけば、カード発行後でも書き換えが可能となるが、その場合には処理速度の低下やプログラムのサイズの増加、あるいはセキュリティ性の低下などの問題が生じ適切ではない。
【０００８】
したがって本発明の目的は、ＩＣカード発行後であっても、ライブラリの機能を安全に更新することのできるＩＣカードを提供することにある。
また本発明の他の目的は、ＩＣカード発行後であっても、ＩＣカードのライブラリの機能を安全に更新することのできるような、ＩＣカードの更新装置およびその方法を提供することにある。
【０００９】
【課題を解決するための手段】
本発明によれば、外部装置と接触または非接触で通信可能なインターフェイス手段と、メモリと、前記インターフェイス手段と前記メモリとに接続されたプロセッサとを有し、前記外部装置から給電されて動作し、前記プロセッサは、前記メモリに記憶されたオペレーティングシステム（ＯＳ）の下で前記メモリに記憶されたＯＳ以外のプログラムを実行して、前記外部装置と通信を行い前記外部装置と協働して所定の処理を実行する、ＩＣカードであって、
前記メモリは、ＯＳを記憶する書き換え不能なメモリと、前記ＯＳ以外のプログラム、および、パラメータを記憶する書き換え可能な不揮発性メモリと、を有し、
前記不揮発性メモリには、前記ＯＳ以外のプログラムとして、プログラム言語で記述されたアプリケーションを実行するときにソースコードを実行形式のコードに変換するインタプリータと、前記外部装置を介してプログラムをダウンロードし、メモリマップに基づいて当該不揮発性メモリに記憶するプログラムローダと、前記プログラムローダにより前記外部装置から入力されるプログラムのうち符号化された機械語処理モジュールを復号する、復号プログラムと、機械語で記述することが望まれる処理モジュール、アプリケーションで使用する機能の処理モジュール、前記外部装置を介して読み出しまたは更新させたくない処理モジュールをアプリケーションから参照可能な形式で記憶した処理モジュールである、ライブラリと、当該ＩＣカードが前記外部装置と協働して行う機能を実現するためのプログラム言語で記述されたアプリケーションと、が記憶可能であり、
前記プログラムローダは、前記外部装置を介して提供される、プログラム言語で記述された新たなアプリケーションを前記メモリマップに基づいて前記不揮発性メモリの空き領域に記憶する第１のモードと、前記外部装置を介して提供される、更新すべきインタプリータ、復号プログラムまたはライブラリを、前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する第２のモードとを有し、
前記外部装置からの指示に応じて前記不揮発性メモリに記憶されている前記ライブラリを更新するとき、前記プログラムローダが、符号化された更新すべきライブラリを前記外部装置から受信し、前記復号プログラムが、前記受信した符号化された更新すべきライブラリを復号し、前記プログラムローダが、前記第１のモードで前記復号したライブラリを前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する、
ＩＣカードが提供される。
【００１０】
好ましくは、前記外部装置からの指示に応じて前記不揮発性メモリに記憶されている前記アプリケーションを更新するとき、前記プログラムローダが、符号化された更新すべきアプリケーションを前記外部装置から受信し、前記復号プログラムが、前記受信した符号化された更新すべきアプリケーションを復号し、前記プログラムローダが、前記第２のモードで前記復号したアプリケーションを前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する。
【００１１】
また好ましくは、前記外部装置からの指示に応じて前記不揮発性メモリに記憶すべきアプリケーションを追加するとき、前記プログラムローダが、符号化された追加すべきアプリケーションを前記外部装置から受信し、前記復号プログラムが、前記受信した符号化された追加すべきアプリケーションを復号し、前記プログラムローダが、前記第２のモードで前記復号したアプリケーションを前記メモリマップに基づいて前記不揮発性メモリの空き領域に記憶する。
【００１２】
また本発明によれば、上記ＩＣカードと、当該ＩＣカードと接触式または非接触式で接続された端末装置と、当該端末装置と通信経路によって接続されたホストコンピュータとを有し、前記ＩＣカードのメモリ内に記憶されたライブラリを更新する、ＩＣカードのプログラム更新装置であって、
前記端末装置は、前記ＩＣカードのインターフェイス手段と接触または非接触で通信可能な第２インターフェイス手段と、当該第２インターフェイス手段に接続され、前記ホストコンピュータと通信経路を介して通信可能な通信制御手段とを有し、
前記ホストコンピュータは、前記端末装置を介して前記ＩＣカードのプロセッサと通信が確立された後、前記ＩＣカードの正当性を確認し、当該ＩＣカードが正当なＩＣカードであると確認したとき、前記端末装置を介して前記ＩＣカード内の前記不揮発性メモリに記憶されているライブラリが更新すべきか否かを判断し、更新すべきと判断したとき、更新対象のライブラリを符号化して前記端末装置を介して前記ＩＣカードに送信し、
前記ＩＣカード内の前記プロセッサ上で動作する前記プログラムローダが、前記符号化された更新すべきライブラリを受信し、
前記ＩＣカード内の前記プロセッサ上で動作する前記復号プログラムが前記受信した符号化された更新すべきライブラリを復号し、
前記プログラムローダが前記第１のモードで前記復号したライブラリを、前記メモリマップに基づいて前記不揮発性メモリの対応する領域に上書きして記憶する、
ＩＣカードのプログラム更新装置が提供される。
さらに本発明によれば、上記ＩＣカードのプログラム更新装置において行われる、ＩＣカードのプログラム更新方法が提供される。
【００１３】
【発明の実施の形態】
本発明の一実施の形態のＩＣカードシステムについて、図１〜図４を参照して説明する。
図１は、本実施の形態のＩＣカードシステム１の構成を示すブロック図である。
ＩＣカードシステム１は、ＩＣカード１０、ＩＣカードヴァージョンアップ端末装置２０（以後、単に端末装置２０と言う。）およびホストコンピュータ３０を有する。
【００１４】
ＩＣカード１０は、カード発行会社から発行および管理されて個人が携帯する特定の機能を有する接触型のＩＣカードであり、本実施の形態においてはクレジット会社あるいは銀行などにより発行および管理がされ、たとえばクレジットカード機能や電子マネーの機能を有する個人カードとする。
このＩＣカード１０は、ハードウエア的には、図１に示すように、Ｉ／Ｆ１１、メモリ１２およびＣＰＵ１３を有する。
【００１５】
Ｉ／Ｆ１１は、ＩＣカードの所定の規格に従って設けられた電極を有し、ＩＣカード１０が端末装置２０に装着された場合に、その電極を介して電力の供給を受けるとともに、端末装置２０と信号の送受を行なう。すなわち、Ｉ／Ｆ１１は、端末装置２０から受信した信号をＣＰＵ１３に出力し、また、ＣＰＵ１３から入力された信号を端末装置２０に対して送信する。
【００１６】
メモリ１２は、ＯＳ、インタプリタ、プログラムローダ、ライブラリおよびアプリケーションなどの各処理モジュール、それら各処理モジュールで処理を実行するために参照されるパラメータやテーブル、ＩＣカード１０が運用される上で記憶される種々のデータ、および、ＣＰＵ１３において処理を行なう際に一時的に発生するデータなどを記憶するメモリである。
メモリ１２は、図示のごとく、ＲＯＭ１２１および書き換え可能な不揮発性メモリ１２２（以後、単に不揮発性メモリ１２２と言う。）から構成されており、ＯＳのみがＲＯＭ１２１に記憶され、残りのデータは不揮発性メモリ１２２に記憶される。
【００１７】
ＣＰＵ１３は、端末装置２０からのコマンド、あるいは、予め設定された手順に基づいて、メモリ１２に記憶されているアプリケーションに従って、Ｉ／Ｆ１１を介して端末装置２０と適宜通信を行いながら、所望の処理を行なう。具体的には、ＩＣカードの認証処理や、クレジット処理、電子マネーによる支払い処理あるいは各個人の買い物の管理などの種々の処理を行なう。
【００１８】
また、このようなハードウエア構成のＩＣカード１０においては、図２に示すような構成でソフトウエア１４が搭載されている。
すなわち、ハードウェアを直接動作させるのは、ＲＯＭ１２１に記憶されているＯＳカーネル部１４１となり、これはカード発行後、書き換えることはできない。
【００１９】
そしてＯＳの上のレイヤに、インタプリタ１４２、プログラムローダ１４３、復号プログラム１４４、第１のライブラリ１４５-1、第２のライブラリ１４５-2が配置される。なお、以後このレイヤのソフトウエアを、ＯＳレベルのソフトウエアと言う場合がある。
また、さらにインタプリタ１４２の上位に第１のアプリケーション１４６-1および第２のアプリケーション１４６-2が配置される。
これらの各処理モジュールは、メモリ１２の書き換え可能な不揮発性メモリ１２２に記憶される。
【００２０】
インタプリタ１４２は、第１のアプリケーション１４６-1および第２のアプリケーション１４６-2を実行する時に、ソースコードを、逐次、実行形式のコードに変換する処理モジュールである。
【００２１】
プログラムローダ１４３は、新たなライブラリとしての処理モジュール１４５-iおよび新たなアプリケーション１４６-jをＩＣカード１０にダウンロードし、書き換え可能な不揮発性メモリ１２２に記憶するモジュールである。この時、既にプログラムあるいはライブラリが記憶されている領域に上書きすることにより、プログラムあるいはライブラリの書き換え、更新が行なわれることになる。
【００２２】
プログラムローダ１４３は、起動されるコマンドに応じて権限の異なる２つのモードにて動作する。
第１のモードは、従来と同じく新たなアプリケーション１４６-jを読み込む場合であり、外部より転送されるプログラム言語で記述されたアプリケーション１４６-jを、書き換え可能な不揮発性メモリ１２２の所定のアプリケーション記憶領域に記憶する。なお、この第１のモードとしての権限では、プログラムローダ１４３は、アプリケーション１４６-jより下のレイヤ、すなわち、インタプリタ１４２〜ライブラリ１４５-iのレイヤの書き換えはできない。
【００２３】
また、第２のモードは、インタプリタ１４２、プログラムローダ１４３、復号プログラム１４４およびライブラリ１４５-iなどの、インタプリタ１４２〜ライブラリ１４５-iのレイヤの処理モジュールをローディングするモードであり、第１のモードよりも権限が強いモードである。したがって、プログラムローダ１４３はこの第２のモードとして機能するコマンドを受け付けた場合には、認証処理を行なって、そのコマンドの発信元の端末装置２０、ホストコンピュータ３０あるいは操作者が適正か否かを検証する処理をまず行ない、適正であった場合のみ、そのコマンドに従った処理を行なう。
その場合、プログラムローダ１４３は、外部より転送される符号化された機械語の処理モジュールを、復号プログラム１４４に出力して復号化して機械語の処理モジュールを復元し、書き換え可能な不揮発性メモリ１２２の所定の記憶領域に記憶する。
【００２４】
なお、プログラムローダ１４３によるこれらローディングした処理モジュールの書き換え可能な不揮発性メモリ１２２への記憶は、図示せぬメモリマップに基づいて行なう。
また、プログラムローダ１４３は、新たにアプリケーション１４６-jあるいはライブラリ１４５-iなどをローディングした場合には、そのメモリマップの更新も同時に行なう。
なお、プログラムローダ１４３は、第２のモードとして動作する場合であっても、ＯＳカーネル部１４１の書き換えはできない。
【００２５】
復号プログラム１４４は、プログラムローダ１４３より入力される、符号化された機械語処理モジュールを復号化する処理モジュールであり、書き換え可能な不揮発性メモリ１２２に記憶される。
【００２６】
第１のライブラリ１４５-1および第２のライブラリ１４５-2は、処理速度や容量の関係で機械語で記述することが望まれる処理モジュール、アプリケーション１４６-jで頻繁に使用する機能の処理モジュール、および、セキュリティ上ソースコードを容易に見れたり外部から読み出したり更新したりさせたくない処理モジュールなどを、アプリケーション１４６-jから参照できる形式で記憶した処理モジュールであり、不揮発性メモリ１２２に記憶される。
【００２７】
第１のアプリケーション１４６-1および第２のアプリケーション１４６-2は、ＩＣカード１０のＩＣカードシステム１における機能を実現するための処理モジュールである。具体的には、ＩＣカード１０を端末装置２０に装着された後に行なう認証や、端末装置２０との通信、実際にクレジットカードを使用した場合の処理や、電子マネーによる決裁などの種々の処理を実現するためのプログラムである。
なお、このアプリケーション１４６-jは、カード発行後であっても、プログラムローダ１４３により適宜更新可能である。
【００２８】
そして、このようなハードウエア構成およびソフトウエア構成のＩＣカード１０は、ＩＣカード１０が端末装置２０に装着され、Ｉ／Ｆ１１を介して端末装置２０より電源の供給を受けることにより起動される。
そして、まず最初に端末装置２０との間で相互認証を行なったのち、以後、端末装置２０からのコマンドに基づいて通常のクレジット処理や決裁処理、あるいは買い物の管理などの処理を行なう。
【００２９】
また、端末装置２０が図１に示すようにＩＣカード１０を管理する会社のホストコンピュータ３０の端末装置２０であった場合には、たとえば実質的にホストコンピュータ３０からの指示に基づいて、ＩＣカード１０に対して、アプリケーション１４６-jの書き換えあるいはライブラリ１４５-iの書き換えなどが行なわれる。
以上が、ＩＣカードシステム１のＩＣカード１０の構成の説明である。
【００３０】
ＩＣカードヴァージョンアップ端末装置２０は、カード管理会社のホストコンピュータ３０に通信回線を介して接続されており、装着されたＩＣカード１０に対して、アプリケーション１４６−ｊやライブラリ１４５−ｉの更新などを行な
う端末装置である。
なお、ＩＣカード１０が通常、店舗などで使用される場合も、ＩＣカードヴァージョンアップ端末装置２０と同様の端末装置に装着されて使用されるが、端末装置２０は、そのような通常の形態で使用される場合の端末装置ではなく、ＩＣカード１０の機能を更新する場合に用いられる端末装置とする。もちろん、ＩＣカードヴァージョンアップ端末装置２０は、通常の形態で使用される場合の端末装置を兼ねた装置であってもよい。
【００３１】
端末装置２０は、図１に示すように、ＩＣカードＩ／Ｆ２１および通信制御部２２を有する。
ＩＣカードＩ／Ｆ２１は、まず、装着されたＩＣカード１０に電源を供給してアクティブにし、ＩＣカード１０と情報を交換してＩＣカード１０がＩＣカードシステム１で処理対象とするカードか否かの簡単なチェックを行う。
このチェックは、そのカードが物理的に信号の送受ができるカードか否か、カード発行会社、管理組織が発行し、管理しているＩＣカード１０に該当するか、ＩＣカード１０の持ち主が正当な持ち主かなどのチェックである。なお、カードの持ち主のチェックは、ＩＣカードＩ／Ｆ２１の図示せぬテンキーなどからカード保持者により入力される暗証番号やパスワードをＩＣカード１０に送信し、ＩＣカード１０内で認証処理を行なうことによりチェックする。
【００３２】
ＩＣカード１０が、ＩＣカードシステム１が処理対象とすべき適正なＩＣカード１０であった場合には、ＩＣカードＩ／Ｆ２１は、ＩＣカード１０のカードＩＤを含むそのＩＣカードに関わる情報を通信制御部２２に送信する。
そして、通信制御部２２よりホストコンピュータ３０との通信結果に基づいてＩＣカード１０に対する指示が入力されたら、順次ＩＣカード１０と通信を行いながら、その指示を実行する。
【００３３】
通信制御部２２は、ホストコンピュータ３０と通信を行いながら、端末装置２０に装着されたＩＣカード１０に対するソフトウエアの更新処理を行なう。
具体的には、ＩＣカードＩ／Ｆ２１より端末装置２０に装着されたＩＣカード１０のカードＩＤを含む情報が入力されたら、この情報を、通信回線を介してホストコンピュータ３０に送信し、指示を待つ。
そして、通信回線を介して、ホストコンピュータ３０より、符号化された処理モジュールのデータ転送を含む、新たな機能のアプリケーション１４６−ｊある
いはライブラリ１４５−ｉのローディングの指示を受信したら、これをＩＣカー
ドＩ／Ｆ２１に対するコマンドに変換して、ＩＣカードＩ／Ｆ２１に出力する。
【００３４】
ホストコンピュータ３０は、各ＩＣカード１０をカードＩＤにより管理している、たとえばＩＣカード１０の発行会社、あるいは管理会社のホストコンピュータである。
ホストコンピュータ３０には、ＩＣカード１０が使用されたことによる、たとえば各使用者ごとの決裁情報などが蓄積されているが、これとは別に、各ＩＣカード１０のソフトウエア構成の情報も管理情報として記憶されている。
したがって、たとえば暗号化アルゴリズムの脆弱性の発見、パスワードの漏洩、プログラムのバグの発見などにより、ＩＣカード１０のソフトウエアを更新する必要がある場合、あるいは、ＩＣカード１０に新たに機能を追加する場合などに、ホストコンピュータ３０は各ＩＣカード１０ごとのソフトウエア構成の情報を参照し、そのＩＣカード１０に対して必要な処理を検出し、これを端末装置２０を介して指示する。
【００３５】
より具体的には、ホストコンピュータ３０は、端末装置２０より通信回線を介してＩＣカード１０のカードＩＤ（識別情報）を含む情報が入力されると、カードＩＤに基づいてそのＩＣカード１０のソフトウエアの構成の情報を検索し、更新すべきソフトウエアなのに未だ更新されていないソフトウエアの有無を検出する。
そのような未更新のソフトウエアがあった場合には、その未更新のソフトウエアをデータベースより読み出し、そのソフトウエアが更新すべきアプリケーション１４６−ｊであった場合には、そのソフトウエアを、そのソフトウエアを更新
する旨のコマンドとともに端末装置２０に送信する。
【００３６】
また、その更新すべきソフトウエアがインタプリタ１４２、プログラムローダ１４３、復号プログラム１４４およびライブラリ１４５−ｉのようなＯＳレベル
のソフトウエアである場合には、ホストコンピュータ３０は、再びＩＣカード１０の不揮発性メモリ１２２内のソフトウエアの構成の情報を検索し、ＩＣカード１０の復号プログラム１４４のヴァージョン（改定状態）や復号アルゴリズムの情報を検出し、その復号プログラム１４４で復号できる符号化を、更新対象のソフトウエアに対して施す。
そして、ホストコンピュータ３０は、その符号化されたソフトウエアを、そのソフトウエアを更新する旨のコマンド、および、ＩＣカード１０においてそのソフトウエアを更新する権利を得るための権利処理に必要なパスワードなどのデータとともに、通信回線を介して端末装置２０に送信する。
したがって、たとえばＩＣカード１０の暗号アルゴリズムに脆弱性が発見された場合においても、その暗号アリゴリズムを新たなアルゴリズムに置き換えることができる。
また、ＩＣカード１０の利用環境、利用者の状態、要求などの変化に対応して、ＩＣカード１０の機能を変更することも可能となる。
また、その更新は、ソフトウエアを符号化してローディングし、ＩＣカード１０の内部で復号化してメモリに配置しているので、セキュリティ性を高くして行なうことができる。
【００３７】
このような構成のＩＣカードシステム１の動作について、図３に示すフローチャートを参照して説明する。
なおここでは、図２に示したソフトウエア構成の、第２のライブラリ１４５-2を書き換える処理を例示して本発明を説明する。
ＩＣカード１０の所有者が、端末装置２０にＩＣカード１０を装着することにより、ＩＣカード１０および端末装置２０の双方で処理が開始され（ステップＳ１０，Ｓ２０）、まず、ＩＣカード１０と端末装置２０の間で認証処理が行なわれる（ステップＳ１１，Ｓ２１）。
【００３８】
認証処理が終了して、ＩＣカード１０がＩＣカードシステム１で使用されているＩＣカードであると判明したら、端末装置２０はＩＣカード１０のカードＩＤを含む情報をホストコンピュータ３０に送信する（ステップＳ２２）。
ホストコンピュータ３０においては、この端末装置２０からの情報を受信することによりこのＩＣカード１０に対する処理を開始し（ステップＳ３１）、そのＩＣカード１０の情報を参照してライブラリの構成を検出し、最新のヴァージョンではないライブラリを検出することにより、更新すべきライブラリを検出する（ステップＳ３２）。
【００３９】
次に、同じくＩＣカード１０の情報を参照して、復号プログラム１４４のヴァージョンを検出し、この復号プログラム１４４で復号できる符号化方式により、更新すべきライブラリを符号化する（ステップＳ３３）。
そして、その符号化したライブラリを、更新コマンドおよび更新するためのパスワードなどとともに端末装置２０に送信することにより（ステップＳ３４）、ホストコンピュータ３０は処理を終了する（ステップＳ３５）。
端末装置２０においては、通信制御部２２がホストコンピュータ３０からの情報を受信し（ステップＳ２３）、ＩＣカードＩ／Ｆ２１を介してＩＣカード１０に送信する（ステップＳ２４）。
【００４０】
ＩＣカード１０においては、端末装置２０から送信されるコマンドをプログラムローダ１４３が受信し（ステップＳ１２）、復号プログラム１４４がこれを復号化して（ステップＳ１３）、プログラムローダ１４３が第２のライブラリ１４５-2が記憶してある領域に上書きする（ステップＳ１４）。
その結果、図４に示すように、第２のライブラリ１４５-2が第３のライブラリ１４５-3に更新される。
そして、ＩＣカード１０が端末装置２０より離脱されることにより、ＩＣカード１０および端末装置２０は処理を終了する（ステップＳ１５，Ｓ２５）。
【００４１】
このように、本実施の形態のＩＣカードシステム１においては、いわゆるＯＳレベルのソフトウエアである、ライブラリを、カード発行後に更新することができる。
したがって、たとえばＩＣカード１０の暗号アルゴリズムに脆弱性が発見された場合においても、その暗号アリゴリズムを新たなアルゴリズムに置き換えることができる。
また、ＩＣカード１０の利用環境、利用者の状態、要求などの変化に対応して、ＩＣカード１０の機能を変更することも可能となる。
また、その更新は、ソフトウエアを符号化してローディングし、ＩＣカード１０の内部で復号化してメモリに配置しているので、セキュリティ性を高くして行なうことができる。
【００４２】
なお、本発明は本実施の形態に限られるものではなく、種々の改変が可能である。
たとえば、前述した実施の形態においては、主にライブラリを更新する例を示したが、ライブラリに限らず、インタプリタ、プログラムローダおよび復号プログラムの更新も同様に可能である。また、ＯＳカーネル部の機能の一部を更新するようにしてもよい。
【００４３】
また、前述した実施の形態においては、主に既存のソフトウエアに新たなヴァージョンのソフトウエアを上書きし、「更新する」ことを例示したが、新たなソフトウエアの追加、既存のソフトウエアの消去なども同様の処理により行なえることは明らかであり、そのような処理も本発明の範囲内である。
【００４４】
また、前述した実施の形態においてプログラムローダ１４３は、従来通りアプリケーションをローディングする第１の動作モードと、ライブラリなどをローディングする第２の動作モードとを有するものとした。しかし、アプリケーションをローディングするプログラムローダと、ライブラリをローディングするプログラムローダとの、別個のローダを有するような構成にしてもよい。
【００４５】
また、前述した実施の形態において復号プログラム１４４は、符号化された機械語処理モジュールを復号化するためのみの処理モジュールであるとしたが、通常の運用時に用いる、符号化された受信データを復号化するために用いるようにしてもよい。
換言すれば、ライブラリ１４５−ｉとして搭載されている、そのような受信デ
ータを復号化するための処理モジュールを用いて、符号化された機械語処理モジュールを復号化するようにしてもよい。
また、本実施の形態においては、Ｉ／Ｆ１１として電極を有する接触型のＩＣカードを例示して本発明を説明した。しかし、Ｉ／Ｆ１１としては端子が設けられておらず電磁的に端末装置と接続されるような、いわゆる、「非接触式」の構成であっても何ら差し支えない。すなわち、ＩＣカードは非接触型のＩＣカードであってもよい。
【００４６】
【発明の効果】
このように、本発明によれば、ＩＣカード発行後であっても、ライブラリの機能を安全に更新することのできるＩＣカードを提供することができる。
また、ＩＣカード発行後であっても、ＩＣカードのライブラリの機能を安全に更新することのできるような、ＩＣカードの更新装置およびその方法を提供することができる。
【図面の簡単な説明】
【図１】図１は、本発明の一実施の形態のＩＣカードシステムの構成を示すブロック図である。
【図２】図２は、図１に示したＩＣカードシステムのＩＣカードのソフトウエア構成を示す図である。
【図３】図３は、図１に示したＩＣカードシステムの動作を説明するためのフローチャートである。
【図４】図４は、図２に示したソフトウエア構成に対してライブラリを置換した後の、ＩＣカードのソフトウエア構成を示す図である。
【図５】図５は、従来のカードＯＳを有するＩＣカードのソフトウエア構成を示す図である。
【符号の説明】
１…ＩＣカードシステム
１０…ＩＣカード
１１…インターフェイス（Ｉ／Ｆ）
１２…ＣＰＵ
１３…メモリ
１３１…ＲＯＭ
１３２…書き換え可能な不揮発性メモリ
１４…ソフトウエア
１４１…ＯＳカーネル部
１４２…インタプリタ
１４３…プログラムローダ
１４４…復号プログラム
１４５…ライブラリ
１４６…アプリケーション
２０…ＩＣカードヴァージョンアップ端末装置
２１…ＩＣカードＩ／Ｆ
２２…通信制御部
３０…ホストコンピュータ
【図１】
0004509291.tif 000002
【図２】
0004509291.tif 000003
【図３】
0004509291.tif 000004
【図４】
0004509291.tif 000005
【図５】
0004509291.tif 000006