(57)【要約】【課題】様々なセキュリティ要求に柔軟に対応することができるＩＣチップ及びＩＣカード等を提供する。【解決手段】異常が検出された場合に実行される異常対応処理プログラムであって、互いに処理内容が異なる複数の前記異常対応処理プログラムが記憶されており、ＣＰＵ６は、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報が入力されると、当該制御情報を記憶し、異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行する。【選択図】図１
2010250364.tif 000002
【特許請求の範囲】
【請求項１】
異常が検出された場合に実行される異常対応処理プログラムであって、
互いに処理内容が異なる複数の前記異常対応処理プログラムを記憶する異常対応処理プログラム記憶手段と、
外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報を入力する入力手段と、
前記制御情報を記憶する制御情報記憶手段と、
異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行する異常対応処理手段と、
を備えることを特徴とするＩＣチップ。
【請求項２】
請求項１に記載のＩＣチップにおいて、
当該ＩＣチップには互いに異なる複数のアプリケーションプログラムが実行可能に記憶されており、
前記制御情報は、各前記アプリケーションプログラム毎に対応付けられて記憶されるものであって、
前記異常対応処理手段は、異常が検出された場合に、前記各アプリケーションプログラムに対応する前記制御情報により指定される前記異常対応処理プログラムを実行することを特徴とするＩＣチップ。
【請求項３】
請求項１又は２の何れか一項に記載のＩＣチップと、ＩＣカード基体と、
を備えることを特徴とするＩＣカード。
【請求項４】
異常が検出された場合に実行される異常対応処理プログラムであって、
互いに処理内容が異なる複数の前記異常対応処理プログラムを記憶する異常対応処理プログラム記憶工程と、
外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報を入力する入力工程と、
前記制御情報を記憶する制御情報記憶工程と、
異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行する異常対応処理工程と、
を有することを特徴とするＩＣチップにおけるデータ保護方法。
【請求項５】
異常が検出された場合に実行される異常対応処理プログラムであって、
互いに処理内容が異なる複数の前記異常対応処理プログラムを記憶する異常対応処理プログラム記憶手段を有するＩＣチップに含まれるコンピュータを、
外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報を入力する入力手段、
前記制御情報を記憶する制御情報記憶手段、
異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行する異常対応処理手段、
として機能させることを特徴とするデータ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣチップに記憶されるデータに対して、種々のセキュリティ攻撃に対する防御方法を設定することができる装置及び方法等の技術分野に関する。
【背景技術】
【０００２】
近年、ＩＣカードに搭載されたＩＣチップには、極めて重要なデータ（情報）が記憶され、当該データを用いて、様々なビジネスが展開されている。例えば、電子マネー機能を有する非接触型ＩＣカードには顧客の有する資産に関するデータが記憶され、当該データを用いたビジネスが展開されている。
【０００３】
従って、ＩＣカードに記憶されるデータに対しては、取引の安全性確保又は個人情報保護等の観点から、セキュリティの確保、即ち、これらデータの機密性(Confidentiality)、完全性(Integrity)及び可用性(Availability)が担保される必要がある。
【０００４】
上記セキュリティの確保を妨げる要因の一つに、ＩＣチップに対する悪意ある第三者からのセキュリティ攻撃がある。前記セキュリティ攻撃は、攻撃対象に応じて複数存在し、セキュリティ攻撃に対する防御方法も前記攻撃の種類に応じて複数存在する。
【０００５】
上記セキュリティ攻撃の一例として、例えば電子ビームによるレーザ攻撃が挙げられる。レーザ攻撃は、ＩＣチップに電子ビームを照射することにより、ＩＣチップの誤動作を誘発させてＩＣチップに記憶（格納）されたデータを読み取り又は改竄等することを目的とする攻撃である。かかるレーザ攻撃に対する防御方法の一例として、当該攻撃を検出した際に、ＩＣチップ内のソフトウェアが前記データを削除する方法が採用されている。
【０００６】
そして、上記検出する条件を設定することによって、上記ソフトウェアのセキュリティレベルを調整するようになっている。
【０００７】
しかし、例え悪意の無い利用者であっても、ＩＣカードの動作中に誤ってリーダライタ装置からＩＣカードを抜いてしまった場合、ＩＣチップ内のデータが破壊されることがある。そして、当該ソフトウェアは、上記検出方法によって、攻撃によりデータが改竄されたと判断し、内部のデータを利用不可能にしてしまう。
【０００８】
従って、過剰な防衛機能を持った高レベルのセキュリティ対策は、悪意ある第三者が多数いる地域（環境）で使用される場合や、守るべきデータが非常に重要な場合おいては有効だが、そうでない場合には、利用者が不便になる虞がある。
【０００９】
以上の点を鑑みて、従来では、予め製品が使用されるシチュエーション（situation）を想定して、当該シュチエーションに応じたセキュリティ対策（セキュリティレベルを適宜設定する）を施したソフトウェアを開発し、ＩＣチップに搭載していた。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記ソフトウェアは、一般的には、ＩＣチップのマスクＲＯＭ（Mask ROM）に搭載される。当該マスクＲＯＭは、記憶される内容を書き換えることができない不揮発性メモリであるため、一度記憶された上記ソフトウェアの内容を、事後的に変更又は改変等することができないようになっている。
【００１１】
従って、想定されていた利用環境（ＩＣチップの使用されるシチュエーション）が変化し当該ソフトウェアに施したセキュリティ対策方法を変更（例えば、上記検出する条件を変更）する必要が出てきた場合、上記マスクＲＯＭに搭載された後は、かかる変更を行うことはできなかった。
【００１２】
また、上記変更を行うためには、上記マスクＲＯＭを作り直す必要があり、製造コストの増加及び納期の遅延等の問題が発生してしまい、現実的ではなかった。また、事後的にＥＥＰＲＯＭ（Electrically Erasable PROM）へパッチデータ（patch data）を書込み、ソフトウェアの動作を変更することも可能であるが、当該ＥＥＰＲＯＭの空き容量が十分でない場合には、前記パッチデータの書込みを行うことはできなかった。
【００１３】
そこで、本発明は上記各問題点に鑑みてなされたもので、その目的の一例は、ＩＣチップに記憶されるデータに対して、種々のセキュリティ攻撃に対する防御方法を設定することができ、ＩＣチップに記憶されたソフトウェアの改変なしに様々なセキュリティ要求に柔軟に対応することができるＩＣチップ及びデータ保護方法等を提供することである。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、請求項１に記載のＩＣチップは、異常が検出された場合に実行される異常対応処理プログラムであって、互いに処理内容が異なる複数の前記異常対応処理プログラムを記憶する異常対応処理プログラム記憶手段と、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報を入力する入力手段と、前記制御情報を記憶する制御情報記憶手段と、異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行する異常対応処理手段と、を備える。
【００１５】
この発明によれば、異常が検出された場合に実行される異常対応処理プログラムであって、互いに処理内容が異なる複数の前記異常対応処理プログラムが記憶されており、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報が入力されると、前記制御情報が記憶され、異常が検出されると、前記制御情報により指定される前記異常対応処理プログラムを実行することができる。
【００１６】
従って、ＩＣチップに記憶されるデータに対して、種々のセキュリティ攻撃に対する防御方法を設定することができ、ＩＣチップに記憶されたソフトウェアの改変なしに様々なセキュリティ要求に柔軟に対応することができる。また、例えば、マスクＲＯＭ作成後もセキュリティレベルを自由に変更することができる。
【００１７】
請求項２に記載のＩＣチップは、請求項１に記載のＩＣチップにおいて、当該ＩＣチップには互いに異なる複数のアプリケーションプログラムが実行可能に記憶されており、前記制御情報は、各前記アプリケーションプログラム毎に対応付けられて記憶されるものであって、前記異常対応処理手段は、異常が検出された場合に、前記各アプリケーションプログラムに対応する前記制御情報により指定される前記異常対応処理プログラムを実行する。
【００１８】
従って、アプリケーション毎に異なるセキュリティ攻撃に対する防御方法を設定することができ、ＩＣチップに記憶されたソフトウェアの改変なしに様々なセキュリティ要求にさらに柔軟に対応することができる。また、例えば、マスクＲＯＭ作成後もセキュリティレベルを自由に変更することができる。
【００１９】
請求項３に記載のＩＣカードは、請求項１又は２の何れか一項に記載のＩＣチップと、ＩＣカード基体と、を備えることを特徴とする。
【００２０】
請求項４に記載のデータ保護方法は、異常が検出された場合に実行される異常対応処理プログラムであって、互いに処理内容が異なる複数の前記異常対応処理プログラムを記憶する異常対応処理プログラム記憶工程と、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報を入力する入力工程と、前記制御情報を記憶する制御情報記憶工程と、異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行する異常対応処理工程と、を有する。
【００２１】
請求項５に記載のデータ保護プログラムは、異常が検出された場合に実行される異常対応処理プログラムであって、互いに処理内容が異なる複数の前記異常対応処理プログラムを記憶する異常対応処理プログラム記憶手段を有するＩＣチップに含まれるコンピュータを、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報を入力する入力手段、前記制御情報を記憶する制御情報記憶手段、異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行する異常対応処理手段、として機能させる。
【発明の効果】
【００２２】
以上のように、本発明によれば、異常が検出された場合に実行される異常対応処理プログラムであって、互いに処理内容が異なる複数の前記異常対応処理プログラムが記憶されており、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御情報が入力されると、当該制御情報が記憶され、異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記制御情報により指定される前記異常対応処理プログラムを実行することができるため、ＩＣチップに記憶されるデータに対して、種々のセキュリティ攻撃に対する防御方法を設定することができ、ＩＣチップに記憶されたソフトウェアの改変なしに様々なセキュリティ要求に柔軟に対応することができる。
【図面の簡単な説明】
【００２３】
【図１】ＩＣカードの全体構成例を示すブロック図である。
【図２】本実施形態に係るＲＯＭ３及びＥＥＰＲＯＭ５の記憶領域に記憶されるプログラムの構造を示す概念図である。
【図３】制御フラグ書き換えコマンドが入力されてから、結果が出力されるまでの動作概要を示すシーケンス図である。
【図４】前記ビット毎に上記異常対応処理プログラムに対応する制御フラグを割り当てた対応関係を模式的に示す図である。
【図５】制御フラグ書き換えコマンドを受信した時のＩＣチップ１の動作を示すフローチャートである。
【図６】ビットフラグ列に基づき制御フラグの符号が書き換えられたテーブルの一例を示す図である。
【図７】セキュリティ攻撃検知時のＩＣチップ１の動作を示すフローチャートである。
【図８】発行済み禁止フラグの機能概要を示す概要図である。
【図９】上記制御フラグの書き換えを禁止した後のＩＣチップ１の動作を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本願の最良の実施形態を添付図面に基づいて説明する。なお、以下に説明する実施の形態は、ＩＣカードに対して本願を適用した場合の実施形態である。
【００２５】
先ず、本実施形態に係るＩＣカードの構成及び機能概要について、図１を用いて説明する。
【００２６】
図１は、ＩＣカードの全体構成例を示すブロック図である。図１に示すように、ＩＣカード８は、ＩＣチップ１をＩＣカード基体７に備えている。
【００２７】
ＩＣチップ１は、Ｉ／Ｏ（input/output）インターフェース２、ＲＯＭ(Read Only Memory)３、ＲＡＭ(Random Access Memory)４、ＥＥＰＲＯＭ５、ＣＰＵ(Central Processing Unit)６等を備えて構成されている。
【００２８】
Ｉ／Ｏインターフェース２は、データを送受信するための入出力回路であり、ＣＰＵ６は、このＩ／Ｏインターフェース２を介して図示しないリーダライタ装置等と交信する。
【００２９】
また、このＩ／Ｏインターフェース２は、本願の入力手段として機能し、ＣＰＵ６の制御の下、後述する外部から入力された制御情報等が、Ｉ／Ｏインターフェース２を介して入力される。
【００３０】
ＲＯＭ３内には、ＣＰＵ６によって実行されるべきプログラムが記憶されており、ＣＰＵ６は、このプログラムに基づいてＩＣチップ１を統括的に制御する。
【００３１】
ＲＯＭ３に記憶されるプログラムの構造について図２（ａ）を用いて説明する。
【００３２】
図２（ａ）は、本実施形態に係るＲＯＭ３の記憶領域に記憶されるプログラムの構造を示す概念図である。
【００３３】
図２（ａ）に示されるように、ＲＯＭ３の記憶領域に記憶されるプログラム１１には、制御フラグ書き換えモジュール１１ａ及び処理振り分けモジュール１１ｂ等が定義づけられている。これらの各モジュールの機能については後述する。
【００３４】
ＲＡＭ４は、ＣＰＵ６がＩＣチップ１を統括的に制御するために作業領域として使用するメモリである。
【００３５】
ＥＥＰＲＯＭ５は、不揮発性半導体メモリの一種であり、記憶領域に記憶されているデータを消去し、何度でも再記憶ができるＰＲＯＭ(Programmable Rom)である。さらに、ＥＥＰＲＯＭ５は、本願の異常対応処理プログラム記憶手段及び制御情報記憶手段として機能し、異常対応処理プログラム及び制御情報等、ＩＣチップ１に記録すべきデータを記憶する。
【００３６】
ここで、異常対応処理プログラムとは、異常が検出された場合に実行されるプログラムである。本実施形態における異常対応処理プログラムは、異常の一例としてセキュリティ攻撃が検出されると、当該攻撃からＥＥＰＲＯＭ５等に記憶されたデータ等を保護するために、ＣＰＵ６に所定の動作を行わせるように定義されている。
【００３７】
具体的には、例えば、ＣＰＵ６が、セキュリティ攻撃の一例であるレーザ攻撃を受けたと検出した場合に、前記アプリケーションプログラムの実行の下、ＣＰＵ６は、上記所定の動作として、例えばＩＣチップ１に記憶されるデータを削除、当該攻撃を受けたことを示すエラーコードを送信又は、他のコマンドを無効化（受け付けない）等の動作（処理）を実行するようになっている。ＥＥＰＲＯＭ５には、互いに処理内容が異なる複数の異常対応処理プログラムが記録されている。
【００３８】
また、制御情報とは、異常対応処理プログラムを指定するための情報であり、本実施形態では、制御情報の一例として制御フラグ群が用いられる。
【００３９】
次に、本実施形態に係るＥＥＰＲＯＭ５の記憶領域に記憶されるプログラム及び制御フラグ群について、図２（ｂ）及び（ｃ）を用いて説明する。
【００４０】
図２（ｂ）及び（ｃ）は、本実施形態に係るＥＥＰＲＯＭ５の記憶領域に記憶されるプログラムの構造を示す概念図である。
【００４１】
図２（ｂ）に示すように、ＥＥＰＲＯＭ５内の記憶領域には、アプリケーションプログラムＡ（１２）、アプリケーションプログラムＢ（１３）及びアプリケーションプログラムＣ（１４）の３つのアプリケーションプログラムが実行可能に記憶されている。
【００４２】
各アプリケーションプログラムは、制御情報の一例としての制御フラグ群と対応付けられている。
【００４３】
本願では、アプリケーションプログラムＡ（１２）乃至アプリケーションプログラムＣ（１４）には、制御フラグ群Ａ（１２ａ）乃至制御フラグ群Ｃ（１４ａ）が夫々対応付けられている。
【００４４】
図２（ｃ）は、制御フラグ群及び制御フラグの機能概要を示す模式図である。
【００４５】
制御フラグ群は、制御フラグとしてのフラグ１、フラグ２、フラグ３等から構成されている。また、制御フラグは制御フラグ群を構成する符号であり、ＣＰＵ６等の動作により、当該符号が書き換えられるようになっている。
【００４６】
制御フラグは、上述した異常対応処理プログラムと対応付けられており、ＣＰＵ６は、上記符号の内容に応じて、制御フラグと対応付けられた異常対応処理プログラムを指定し、異常対応処理プログラムが定義する動作を実行するか否かを判断するようになっている。
【００４７】
図２（ｃ）は、制御フラグの符号にｔｒｕｅ（例えば、１）とｆａｌｓｅ(例えば、０)を用いた場合における、ＣＰＵ６の上記異常対応処理プログラムの指定と動作について模式的に示した図である。
【００４８】
例えば制御フラグがフラグ１であった場合、フラグ１がｔｒｕｅを示すと、ＣＰＵ６は、フラグ１に対応付けられた異常対応処理プログラムを指定し、当該異常対応処理プログラムが定義する動作１を実行する（換言すれば、動作１を活性化する）ことが、一方、フラグ１がｆａｌｓｅを示すと、ＣＰＵ６は、フラグ１に対応付けられた異常対応処理プログラムを指定せず、動作１を実行しない（換言すれば、動作１を活性化しない）ことが模式的に示されている。
【００４９】
また、制御フラグがフラグ２及びフラグ３であった場合の上記異常対応処理プログラムの指定と動作も、フラグ１と同様であることが示されている。
【００５０】
ＣＰＵ６は、上述したようにプログラムに基づいてＩＣチップ１全体の動作を統括的に制御すると共に、本願の異常対応処理手段として機能する。
【００５１】
次に、図３乃至図７を用いて、ＩＣカード８に含まれるＩＣチップ１の動作を説明する。
【００５２】
本実施形態におけるＣＰＵ６の動作は、［１．制御フラグの書き換えにおける動作］及び［２．セキュリティ攻撃検出時における動作］に大別することができる。
【００５３】
以下、上記動作について詳細に説明する。
【００５４】
［１．制御フラグの書き換えにおける動作］
本実施形態のＩＣチップ１に含まれるＣＰＵ６は、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御フラグ群が入力されると、各前記アプリケーションプログラム毎に対応付けて記憶されている制御フラグ群を書き換える（又は入力された制御フラグ群が示す内容に記憶する）ようになっている。
【００５５】
制御フラグの書き換えにおけるＣＰＵ６の動作について、図３乃至図６を用いて説明する。
【００５６】
まず、制御フラグ書き換えコマンドが入力されてから結果が出力されるまでの動作概要について図３を用いて説明する。
【００５７】
図３は、制御フラグ書き換えコマンドが入力されてから結果が出力されるまでの動作概要を示すシーケンス図である。
【００５８】
本実施形態では、制御フラグ群を入力することによって、制御フラグ群を構成する制御フラグに対応付けられた異常対応処理プログラムを指定するようになっている。そして、制御フラグ群は各アプリケーションプログラム毎に対応付けられているため、各アプリケーションプログラム毎にかかる指定が可能となっている。
【００５９】
上記指定を行うために、まず、アプリケーションプログラムを起動させる。当該アプリケーションプログラムを起動させることによって、当該アプリケーションプログラムに対応付けられた制御フラグ群を構成する制御フラグの符号を書き換えることができるようになっている。
【００６０】
そして、他のアプリケーションプログラムに対応する制御フラグの符号を書き換える場合には、当該他のアプリケーションを起動させ、当該アプリケーションプログラムに対応付けられた制御フラグ群を構成する制御フラグの符号を書き換えることができるようになっている。
【００６１】
以下に上記動作について詳細に説明する。
【００６２】
まず、図示しない端末装置から、制御フラグ書き換えコマンド（コマンド）が入力される（ステップＳ１）。
【００６３】
ここで、制御フラグ書き換えコマンドとは、ＣＰＵ６に上記制御フラグの符号の書き換えを指示するための命令をいい、本実施形態においては、例えば、ユーザの図示しない端末装置の操作により、ＩＣカード８に対して入力される。
【００６４】
本実施形態では、制御フラグ群の一例としてビットフラグ列が用いられ、当該ビットフラグ列が、ＩＣカード８に入力される。
【００６５】
ここで、ビットフラグ列とは、整数型の各ビットを制御フラグの符号に見立てて値を保持するものであり、本実施例では、前記ビット毎に異常対応処理プログラムに対応付けられた制御フラグが割り当てられている。
【００６６】
そして、ＣＰＵ６は、上述したＲＯＭ３の記憶領域に記憶されるプログラム１１の制御フラグ書き換えモジュール１１の実行の下、当該ビットの値に応じて、上記制御フラグの符号を書き換えるようになっている。
【００６７】
図４は、前記ビット毎に上記異常対応処理プログラムに対応する制御フラグを割り当てた対応関係を模式的に示す図である。
【００６８】
図４に示す図は、ｂｉｔ１からｂｉｔ８の８ビット長からなるビットフラグ列部と、各ビット毎に異なる異常対応処理プログラムに対応付けられた制御フラグが割り当てられ、当該異常対応処理プログラムが定義する動作の内容を示す動作表示部からなっている。
【００６９】
上記ビットフラグ列において、８番目のビットであるｂｉｔ８は、異常対応処理プログラムが定義する動作の内容が「アプリケーション自身の削除」である当該異常対応処理プログラムに対応付けられた制御フラグに、割り当てられていることを示している。
【００７０】
そして、当該ビットの値が０を示す場合には、前記制御フラグの符号をｆａｌｓｅと変化させ、異常対応処理プログラムを指定しないようになっている。この結果、当該異常対応処理プログラムは実行されないため、ＣＰＵ６に、当該異常対応処理プログラムが定義する動作である「アプリケーション自身の削除」を実行させないようになっている。
【００７１】
一方、当該ビットの値が１の場合は、前記制御フラグの符号をｔｒｕｅと変化させ、当該異常対応処理プログラムを指定するようになっている。この結果、当該異常対応処理プログラムは実行されるため、ＣＰＵ６に、当該異常対応処理プログラムが定義する動作である「アプリケーション自身の削除」を実行させるようになっている。
【００７２】
また、７番目のビットであるｂｉｔ７は、異常対応処理プログラムが定義する動作の内容が「鍵データの削除」である異常対応処理プログラムに対応付けられた制御フラグに、割り当てられていることを示している。
【００７３】
そして、当該ビットの値が０を示す場合には、前記制御フラグの符号をｆａｌｓｅと変化させ、異常対応処理プログラムを指定しないようになっている。この結果、当該異常対応処理プログラムは実行されないため、ＣＰＵ６に当該異常対応処理プログラムが定義する動作である「鍵データの削除」を実行させないようになっている。
【００７４】
一方、当該ビットの値が１の場合は、前記制御フラグの符号をｔｒｕｅと変化させ、当該異常対応処理プログラムを指定するようになっている。この結果、当該異常対応処理プログラムは実行されるため、ＣＰＵ６に当該異常対応処理プログラムが定義する動作である「鍵データの削除」を実行させるようになっている。
【００７５】
また、６番目のビットであるｂｉｔ６は、異常対応処理プログラムが定義する動作の内容が「暗証番号の削除」である当該プログラムに対応付けられた制御フラグに、割り当てられていることを示している。
【００７６】
そして、当該ビットの値が０を示す場合には、前記制御フラグの符号をｆａｌｓｅと変化させ、異常対応処理プログラムを指定しないようになっている。この結果、当該異常対応処理プログラムは実行されないため、ＣＰＵ６に当該異常対応処理プログラムが定義する動作である「暗証番号の削除」を実行させないようになっている。
【００７７】
一方、当該ビットの値が１の場合は、前記制御フラグの符号をｔｒｕｅと変化させ、当該異常対応処理プログラムを指定するようになっている。この結果、当該異常対応処理プログラムは実行されるため、ＣＰＵ６に当該異常対応処理プログラムが定義する動作である「暗証番号の削除」を実行させるようになっている。
【００７８】
また、５番目のビットであるｂｉｔ５は、異常対応処理プログラムが定義する動作の内容が「攻撃を受けたことを示すエラーコードを返す」である当該プログラムに対応付けられた制御フラグに、割り当てられていることを示している。
【００７９】
そして、当該ビットの値が０を示す場合には、前記制御フラグの符号をｆａｌｓｅと変化させ、異常対応処理プログラムを指定しないようになっている。この結果、当該異常対応処理プログラムは実行されないため、ＣＰＵ６に当該異常対応処理プログラム画定義する動作である「攻撃を受けたことを示すエラーコードを返す」を実行させないようになっている。
【００８０】
一方、当該ビットの値が１の場合は、前記制御フラグの符号をｔｒｕｅと変化させ、当該異常対応処理プログラムを指定するようになっている。この結果、当該異常対応処理プログラムは実行されるため、ＣＰＵ６に当該異常対応処理プログラムが定義する動作である「攻撃を受けたことを示すエラーコードを返す」を実行させるようになっている。
【００８１】
また、４番目のビットであるｂｉｔ４は、異常対応処理プログラムが定義する動作の内容が「アプリケーション選択中は、コマンドを受け付けない」である当該プログラムに対応付けられた制御フラグに、割り当てられていることを示している。
【００８２】
そして、当該ビットの値が０を示す場合には、前記制御フラグの符号をｆａｌｓｅと変化させ、異常対応処理プログラムを指定しないようになっている。この結果、当該異常対応処理プログラムは実行されないため、ＣＰＵ６に当該異常対応処理プログラム画定義する動作である「アプリケーション選択中は、コマンドを受け付けない」を実行させないようになっている。
【００８３】
一方、当該ビットの値が１の場合は、前記制御フラグの符号をｔｒｕｅと変化させ、当該異常対応処理プログラムを指定するようになっている。この結果、当該異常対応処理プログラムは実行されるため、ＣＰＵ６に当該異常対応処理プログラムが定義する動作である「アプリケーション選択中は、コマンドを受け付けない」を実行させるようになっている。
【００８４】
また、３番目のビットであるｂｉｔ３〜１番目のビットであるｂｉｔ１は、何らの異常対応処理プログラムに対応する制御フラグに割り当てられていないことを示している。
【００８５】
このように、制御フラグ群をビットフラグ列で表現することにより、異なる種類の複数の制御フラグの符号を一括して書き換えることができる。
【００８６】
図３の説明に戻り、前記コマンドが入力されると、ＣＰＵ６は、後述する制御フラグ書き換え処理を行う（ステップＳ２）。そして、結果を端末装置へ出力するようになっている（ステップＳ３）。
【００８７】
このようにして、ビットフラグ列を用いて外部から複数の異常対応処理プログラムの何れかを指定できるようになっている。
【００８８】
なお、上記ビットフラグ列が入力される段階は、上記制御フラグ書き換えコマンドが入力される前後を問わずいつでも可能である。
【００８９】
次に、制御フラグ書き換えコマンドを受信した時のＩＣチップ１の動作について、図５及び図６を用いて説明する。
【００９０】
図５は、制御フラグ書き換えコマンドを受信した時のＩＣチップ１の動作を示すフローチャートである。
【００９１】
まず、制御フラグ書き換えコマンドが受信される前に、上述したようにアプリケーションプログラムを起動等させ制御フラグ書き換えコマンドの受信を可能な状態とする。
【００９２】
そして、ＩＣチップ１が制御フラグ書き換えコマンドを受信すると（ステップＳ１０）、ＣＰＵ６は、制御フラグ書き換えコマンドを解析する（ステップＳ１１）。具体的には、上記制御フラグ書き換えコマンドの入力を受けたＣＰＵ６は、当該コマンドが上記制御フラグ書き換えコマンドであることを認識し、制御フラグを書き換える処理の準備を行う。
【００９３】
次に、ＣＰＵ６は、既に入力された、又はこれから入力される上記ビットフラグ列に応じて、所定の動作と対応付けられている制御フラグの符号を書き換え（又は書込み）（ステップＳ１２）、ＥＰＰＲＯＭ５等に記憶する。
【００９４】
図６は、ビットフラグ列に基づき制御フラグの符号が書き換えられたテーブルの一例を示す図である。
【００９５】
図６（ａ）は、ビットフラグ列の一例を示す図である。
【００９６】
ビットフラグ列部３０は、例えば、１番目のビットであるｂｉｔ１から８番目のビットであるｂｉｔ８の値が順番に、「００００１１１０」であるビットフラグ列から構成される。
【００９７】
図６（ｂ）は、当該コマンドに基づき制御フラグが書き換えられたテーブルの一例を示す図である。
【００９８】
上述したように、ＣＰＵ６は、上述したビットフラグ列に基づき、上記各ビットの値が１を示すビットに割り当てられた制御フラグの符号をｔｒｕｅに書き換えるようになっている。
【００９９】
図６（ｂ）では、ビットフラグ列部３０の５番目のビット（ｂｉｔ５）〜７番目のビット（ｂｉｔ７）が１であるため、ＣＰＵ６は、当該ビットに割り当てられている制御フラグの符号をｔｒｕｅに書き換えるようになっている。
【０１００】
図５の説明に戻り、ＣＰＵ６は、制御フラグの書込みが終了すると、結果を出力する（ステップＳ１３）。
【０１０１】
［２．セキュリティ攻撃検出時における動作］
次に、異常検出の一例としてのセキュリティ攻撃検出時のＩＣチップ１の動作について、図７を用いて説明する。
【０１０２】
図７は、セキュリティ攻撃検知時のＩＣチップ１の動作を示すフローチャートである。
【０１０３】
ＩＣチップ１は、通常処理中（例えば、ＩＣカード８が商取引に用いられ決算処理が行われている間等）に、異常が発生しているか否かを検出するようになっている。
【０１０４】
かかる異常の一例として、例えばＩＣチップ１にセキュリティ攻撃が加えられる状態が挙げられる。
【０１０５】
ＩＣチップ１が、レーザ攻撃等のセキュリティ攻撃を受けると、ＣＰＵ６のクロック周波数が急激に低下したり、ＩＣチップ１に供給される電圧が急激に低下したり、又はＥＥＰＲＯＭ５等に記憶されるデータが書き換えられてしまう等の種々の現象が発生する。ＣＰＵ６は、これらの現象を検出するようになっている。
【０１０６】
上記通常処理中に異常を検出した場合には（ステップＳ２０：ＹＥＳ）、ＣＰＵ６は、上述したＲＯＭ３の記憶領域に記憶されるプログラム１１の処理振り分けモジュール１１ｂの実行の下、アプリケーションプログラムに対応付けられた制御フラグ群を読み取り（ステップＳ２１）、異常対応処理プログラムに対応する制御フラグの符号がｔｒｕｅとなっている当該プログラムの所定の動作を実行する（ステップＳ２２）。
【０１０７】
具体的には、例えば、制御フラグの符号が図６（ｂ）に示すテーブルと同じであった場合を例に説明すると、上記異常を検知したＣＰＵ６は、異常対応処理プログラムに対応する制御フラグがｔｒｕｅ（１）である異常対応処理プログラムを実行する。
【０１０８】
さらに具体的には、図６（ｂ）のテーブルにおいて、異常対応処理プログラムに対応する制御フラグがｔｒｕｅ（１）である異常対応処理プログラムは、当該プログラム画定義する動作が、「暗証番号の削除」（図６の制御フラグ割当部２５）、「暗証番号の削除」（図６の制御フラグ割当部２６）及び「攻撃を受けたことを示すエラーコードを返す」（図６の制御フラグ割当部２７）を示すものである。
【０１０９】
従って、ＣＰＵ６は、各異常対応処理プログラムの実行の下、「暗証番号の削除」、「暗証番号の削除」及び「攻撃を受けたことを示すエラーコードを返す」の各処理を実行するようになっている。
【０１１０】
一方、上記通常処理中に異常を検出しなかった場合には（ステップＳ２０：ＮＯ）、通常処理が終了するまで上記検出を行う（ステップＳ２３：ＮＯ）。通常処理が終了した場合には（ステップＳ２４：ＹＥＳ）、処理を終了する。
【０１１１】
［３．発行処理後のＩＣチップ１の動作］
次に、発行処理後のＩＣチップ１の動作について、図８及び図９を用いて説明する。
【０１１２】
ＩＣカードの発行処理が終了し、当該ＩＣカードの運用段階（例えば、ＩＣカード８を用いて、ビジネス等が展開される段階等）において、上記制御フラグを書き換えること（異常対応処理プログラムが定義する動作を実行させるか否かを変更すること）は、セキュリティ性低下の虞がある。
【０１１３】
かかる書き換えによって、異常対応処理プログラムが定義する動作を全て実行させないとする書き換えも可能となり、セキュリティ対策の機能を全て無効にすることが可能になってしまう。
【０１１４】
上記問題点を防止するために、発行処理後は上記制御フラグの書き換えを禁止するようにすることもできる。
【０１１５】
具体的は、例えば、アプリケーションプログラムに発行済み禁止フラグを設けるようにしてもよい。
【０１１６】
図８は、発行済み禁止フラグの機能概要を示す概要図である。
【０１１７】
発行済みフラグ４０は、例えばアプリケーションプログラム対応付けられる符号であり、発行処理が終了すると、ＣＰＵ６等の指示により、発行済みフラグ４０の符号を書き換えるようになっている。
【０１１８】
意味１５には、発行済みフラグの内容（定義）及び、上記書き換えられる符号の内容が示されている。具体的には、発行済みフラグの内容として当該フラグが発行済みかどうかを示すフラグであることが、上記書き換えられる符号の内容として、発行済みであった場合には符号としてｔｒｕｅ（１）に、発行済みでない場合には符号としてｆａｌｓｅ（０）に夫々書き換えられることが示されている。
【０１１９】
ＣＰＵ６は、発行処理が終了すると上記符号をｔｒｕｅへ書き換えるようになっている。
【０１２０】
そして、ＣＰＵ６は、上記符号がｔｒｕｅであった場合には、たとえ上記コマンドを受信しても、上記制御フラグの書き換えを禁止するようになっている。
【０１２１】
次に、上記制御フラグの書き換えを禁止した後のＩＣチップ１の動作を図９を用いて説明する。
【０１２２】
図９は、上記制御フラグの書き換えを禁止した後のＩＣチップ１の動作を示すフローチャートである。
【０１２３】
なお、本動作では、発行処理と制御フラグ書き換えコマンドの受信を同時に行う場合について説明するが、本動作に限定されるものではない。
【０１２４】
ＩＣチップ１が制御フラグ書き換えコマンドを受信すると（ステップＳ３０）、ＣＰＵ６は、発行済みフラグ４０の符号を参照して、ＩＣカード８が発行処理済みか否かを判断する（ステップＳ３１）。
【０１２５】
具体的には、ＣＰＵ６は、上記発行済みフラグ４０の符号を参照し、当該符号がｔｒｕｅであった場合には発行済みと、当該符号がｆａｌｓｅであった場合には発行済みでないと判断する。
【０１２６】
発行済みでないと判断した場合には（ステップＳ３１：ＮＯ）、ＣＰＵ６は、制御フラグ書き換えコマンドを解析し、制御フラグ書き換え処理の準備を行う。
【０１２７】
そして、ＣＰＵ６は上記ビットフラグ列に応じて、所定の動作と対応付けられている制御フラグの符号を書き換えを行う（ステップＳ３２）。
【０１２８】
そして、発行済みフラグの符号をｔｒｕｅにセットし（ステップＳ３３）、結果を出力後（ステップＳ３４）、処理を終了する。
【０１２９】
一方、発行済みであると判断した場合には（ステップＳ３１：ＹＥＳ）、上記制御フラグの書込みは行わず、その旨を示す結果を出力する（ステップＳ３４）。
【０１３０】
上記実施形態では、発行処理後は上記制御フラグの書き換えを禁止するようにしたが、任意に上記制御フラグの書き換えを許可するようにしてもよい。
【０１３１】
具体的は、例えば、アプリケーションプログラムに書き換え可能フラグを設け、当該フラグが示す符号がｔｒｕｅであった場合には常時上記制御フラグの書き換えを許可し、当該フラグが示す符号がｆａｌｓｅであった場合には上記制御フラグの書き換えを禁止するようにしてもよい。
【０１３２】
ＣＰＵ６は、上記符号がｔｒｕｅであった場合には、上記コマンドを受信した場合には常に、上記制御フラグの書き換えを許可するようになっている。
【０１３３】
このようにして、ユーザの使用環境に応じたセキュリティ対策を講じることが可能となる。
【０１３４】
以上説明したように、本実施形態においては、異常が検出された場合に実行される異常対応処理プログラムであって、互いに処理内容が異なる複数の前記異常対応処理プログラムと、互いに異なる複数のアプリケーションプログラムが実行可能に記憶されており、外部から前記複数の異常対応処理プログラムの何れかを指定するための制御フラグ群が入力されると、前記制御フラグ群を各前記アプリケーションプログラム毎に対応付けて記憶し、異常が検出された場合に、前記複数の異常対応処理プログラムのうち、前記各アプリケーションプログラムに対応する前記制御フラグにより指定される前記異常対応処理プログラムを実行する。
【０１３５】
従って、アプリケーション毎に異なるセキュリティ攻撃に対する防御方法を簡便な方法で設定することができ、ＩＣチップに記憶されたソフトウェアの改変なしに様々なセキュリティ要求にさらに柔軟に対応することができる。また、例えば、マスクＲＯＭ作成後もセキュリティレベルを自由に変更することができる。
【０１３６】
なお、上記実施形態においては、本願をＩＣチップに対して適用した場合の例を示したが、その他にも例えば、パーソナルコンピュータ又は家庭用等の電子機器等に対しても適用可能である。
【符号の説明】
【０１３７】
１  ＩＣチップ
２  Ｉ／Ｏインターフェース
３  ＲＯＭ
４  ＲＡＭ
５  ＥＥＰＲＯＭ
６  ＣＰＵ
７  カード基体
８  ＩＣカード
【図１】
2010250364.tif 000003
【図２】
2010250364.tif 000004
【図３】
2010250364.tif 000005
【図４】
2010250364.tif 000006
【図５】
2010250364.tif 000007
【図６】
2010250364.tif 000008
【図７】
2010250364.tif 000009
【図８】
2010250364.tif 000010
【図９】
2010250364.tif 000011