(57)【要約】【課題】継続的に通電状態で使用されるセキュリティ性の高いＩＣカードを提供する。【解決手段】ＩＣカード１は、タイマ割り込みが可能なタイマ１５を有して、コマンド処理中にタイマ１５のカウント動作を行う。監視するコマンド２３の実行回数を計数し、タイマ割り込み毎にコマンドの実行回数を期間内上限数２４と比較し、等しいか大きな時に履歴回数２１を増加させ、増加した履歴回数２１が、上限を超えた回数２２と等しいか大きな時は、ＩＣカード１の動作を停止する。【選択図】  図１
2004152210.tif 000002
【特許請求の範囲】
【請求項１】
タイマと、
特定のコマンドの実行回数を計数する手段と、
前記タイマの値が特定の値と等しくなった時に、プロセッサにタイマ割り込みを行う手段と、
前記特定のコマンドの実行回数と期間内上限回数と履歴回数と上限を超えた回数とを記憶するメモリと、
コマンドの実行動作を制限する動作制限手段と
を備え、
電源投入後の初期化手順では、前記履歴回数と上限を超えた回数を比較して前記履歴回数が上限を超えた回数と等しいか大きい時に、動作制限手段でコマンドの実行動作を制限し、前記タイマ割り込みを受け付けて処理する手順では、前記特定のコマンドの実行回数と前記期間内上限回数を比較して、前記特定のコマンドの実行回数が前記期間内上限回数と等しいか大きい時に、前記履歴回数を増加させ、増加した前記履歴回数と上限を超えた回数を比較して、前記履歴回数が前記上限を超えた回数と等しいか大きい時に、動作制限手段でコマンドの実行動作を制限するようにしたことを特徴とするＩＣカード。
【請求項２】
前記タイマがクロック端子の入力信号に基づく信号によってカウント動作をすることを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記タイマは、カウント動作停止中、カウント動作停止直前の値を保持していることを特徴とする請求項１または２に記載のＩＣカード。
【請求項４】
前記タイマに初期値として監視期間の値を設定する手段と、前記監視期間の値を記憶するメモリを有し、カウント動作で前記タイマの値が特定の値となった時に、監視期間の値をタイマに設定する手段を有することを特徴とする請求項１乃至３のいずれか１項に記載のＩＣカード。
【請求項５】
前記タイマがコマンド処理を実行する時間にカウント動作するように制御することを特徴とする請求項１乃至４のいずれか１項に記載のＩＣカード。
【請求項６】
前記特定のコマンドを指定する監視するコマンドを記憶するメモリを有することを特徴とする請求項１乃至５のいずれか１項に記載のＩＣカード。
【請求項７】
前記期間内上限回数と履歴回数と上限を超えた回数と監視期間と監視するコマンドを記憶するメモリの少なくとも一つを外部より設定する手段を有することを特徴とする請求項１乃至６のいずれか１項に記載のＩＣカード。
【請求項８】
前記特定のコマンドの実行回数と、期間内上限回数と履歴回数と上限を超えた回数は、特定のコマンド毎に存在することを特徴とする請求項１乃至７のいずれか１項に記載のＩＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、セキュリティ性能を向上させて不正使用を防止する技術を内蔵したＩＣカードに関するものである。
【０００２】
【従来の技術】
ＩＣカードは、内蔵するマイクロコンピュータやメモリにより情報処理が可能であり、また、磁気ストライプに情報を記憶する磁気カードに比べて、セキュリティ性能が高く記憶情報量も大きいことから、多くの分野で利用されている。
【０００３】
ＩＣカードに個人情報記憶させて利便性を向上させ、電子決済などにＩＣカードの利用を拡大するためには、ＩＣカードの不正使用を防止することが必要であり、種々の提案がなされている。
【０００４】
例えば、セキュリティ性能を高めたＩＣカードがある。この示されたＩＣカードは、電源投入後に実行するコマンドの累計個数を計数する手段と、その累計個数が、可能個数を超えた場合に動作を制限する手段を備え、パスワード、キー、関数などの情報を盗む不正行為を目的として繰り返しＩＣカードに特定のコマンドを加えると、ＩＣカードの動作が制限されて、不正行為が達成できないようにしたものである（特許文献１参照。）。
【０００５】
このようなＩＣカードを、携帯電話などに継続的に装着して使用する場合、暗号に係るコマンドに限定してコマンドの累計個数の可能個数を例えば１０００と設定しても、携帯電話の費用に係る操作においてＩＣカードによる認証作業が毎回行われるため、短期間に可能個数を超えることになり、ＩＣカードが使えなくなる問題がある。
【０００６】
一方、例えば１００００を越えるような大きな値をこのコマンドの累計個数の可能個数に設定した場合は、ＩＣカードに対してコマンドを繰り返し入力して、カードの電源端子や電磁放射などを観測し、それらデータを統計的に処理することで、キーや暗号アルゴリズムが解析され、ＩＣカードのセキュリティ性能が低下する問題がある。
【０００７】
【特許文献１】
特開平１０−６９４３５号公報（第３頁、図１）
【０００８】
【発明が解決しようとする課題】
上述したように、従来のＩＣカードにおいては、継続的に通電状態で使用される用途の場合にセキュリティ性能が低下する問題がある。
【０００９】
本発明は、上記問題を解決するためになされたもので、セキュリティ性能の高いＩＣカードを提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明のＩＣカードは、タイマと、特定のコマンドの実行回数を計数する手段と、前記タイマの値が特定の値と等しくなった時に、プロセッサにタイマ割り込みを行う手段と、前記特定のコマンドの実行回数と期間内上限回数と履歴回数と上限を超えた回数とを記憶するメモリと、コマンドの実行動作を制限する動作制限手段とを備え、電源投入後の初期化手順では、前記履歴回数と上限を超えた回数を比較して前記履歴回数が上限を超えた回数と等しいか大きい時に、動作制限手段でコマンドの実行動作を制限し、前記タイマ割り込みを受け付けて処理する手順では、前記特定のコマンドの実行回数と前記期間内上限回数を比較して、前記特定のコマンドの実行回数が前記期間内上限回数と等しいか大きい時に、前記履歴回数を増加させ、増加した前記履歴回数と上限を超えた回数を比較して、前記履歴回数が前記上限を超えた回数と等しいか大きい時に、動作制限手段でコマンドの実行動作を制限するようにしたことを特徴とする。
【００１１】
このような構成の本発明のＩＣカードによれば、一定時間内に、電源再投入などの初期化を行うか、一定時間間隔を経過してからコマンドを与えるように制御しなければ、コマンドを受け付けなくなるため、短時間に外部より繰り返しコマンドを与えてＩＣカード内のセキュリティに関する情報を読み出すことはできなくなりセキュリティ性能の高いＩＣカードが実現できる。
【００１２】
【発明の実施の形態】
以下、図１乃至図３を参照して本発明の実施の形態を説明する。
【００１３】
図１は、本発明のＩＣカードの主要部分の構成を示すブロック図である。図２および図３は、ＩＣカードの処理手順を示すフローチャートである。
【００１４】
図１に示すように、本実施の形態のＩＣカード１は、インターフェース／システム制御回路部２と、データ処理部３とから構成される。
【００１５】
インターフェース／システム制御回路部２は、ＩＣカードリーダ／ライタ４と、端子５乃至端子１０を介して接続され、ＩＣカードリーダ／ライタ４から電源、クロック、制御信号などが供給されて、ＩＣカード１内部の各機能ブロックへ所望の電源、クロックを供給するとともに、各種制御信号を生成する。更に、端子５のＩ／Ｏ端子を介してＩＣカードリーダ／ライタ４とのデータ送受信のインターフェース機能を有する。
【００１６】
端子６は、リセット（／ＲＳＴ）端子で、ＩＣカード１のインターフェース／システム制御回路部２や内部の各機能ブロックへの初期化信号を供給する。
【００１７】
端子７は、グランド（ＧＮＤ）端子で、ＩＣカード１の各機能ブロックに接地電位を供給する。
【００１８】
端子８は、電源（ＶＤＤ）端子で、ＩＣカード１内部のデータ処理部などの回路動作に必要な電源を供給する。端子９は、プログラム電源（ＶＰＰ）端子で、ＩＣカード１内部の不揮発性メモリへのデータ書き込み時に使用する電源を供給する。なお、最近のＩＣカードでは、カード内部で不揮発性メモリへのデータ書き込み時に使用するプログラム電源を電源（ＶＤＤ）より生成し、プログラム電源端子が無い場合がある。
【００１９】
端子１０は、クロック（ＣＬＫ）端子で、ＩＣカード１内部の回路動作に必要なクロック信号を、インターフェース／システム制御回路部２や各機能ブロックに供給する。
【００２０】
データ処理部３の主要な機能ブロックは、プロセッサ（ＣＰＵ）１１と、プログラムを記憶するメモリ（ＲＯＭ）１２と、電源断後もデータを記憶する不揮発性メモリ（ＮＶメモリ）１３と、ＩＣカード１に電源が供給されて活性化状態にある時に、プログラム処理で使用する作業用データなどを記憶する揮発性メモリ（ＲＡＭ）１４と、タイマ１５と、それら機能ブロック間のデータのやり取りを行うためのアドレスバス１６およびデータバス１７から構成される。
【００２１】
タイマ１５は、クロック信号に基づいて発生する信号で、カウントダウン動作を行い、タイマ１５の値が０となった時に、ＣＰＵ１１に割り込み信号線１８を介してタイマ割り込み信号を入力するとともに、ＮＶメモリ１３に記憶された監視期間２０の値から、クロック信号に基づいて発生する信号で、再びカウントダウン動作を行う。
【００２２】
また、タイマ１５は、カウントダウン動作を開始することと、停止することが可能であり、カウントダウン動作停止中は、カウントダウン動作停止直前の値を保持している。カウントダウン動作開始時は、タイマ１５にプログラムで設定した値または、カウントダウン動作停止時の値から、カウントダウンを開始する。
【００２３】
ＩＣカード１がＩＣカードリーダ／ライタ４に装着されて、端子５乃至端子１０が、ＩＣカードリーダ／ライタ４の対応するコネクタに接続されると、ＩＣカード１の初期化が行われる。このＩＣカード１の初期化を含めた動作手順は、ＪＩＳ  Ｘ  ６３０４（ＩＳＯ／ＩＥＣ７８１６−３に基づく）規格「外部端子付きＩＣカード−電気信号及び伝送プロトコル」に詳細が定められている。
【００２４】
本実施の形態の説明に係るところを中心にＩＣカード１の概略動作を説明する。ＩＣカード１がＩＣカードリーダ／ライタ４に装着されると、ＩＣカードリーダ／ライタ４は、端子の電気的接続と活性化を行う。電源端子８およびグランド端子７を介してＩＣカード１の内部機能ブロックに電源が供給され、リセット端子６は、ＩＣカード１の内部回路の初期化動作を指示するグランドレベルに維持される。
【００２５】
次いで、クロック端子１０よりＩＣカード１内部のデータ処理部３の機能ブロックへクロック信号が供給される。リセット端子６からの信号は、内部のデータ処理部３の回路動作が安定するまで、グランドレベルの信号状態に保たれて内部リセット信号となって、ＣＰＵ１１の動作を停止させるとともに、図示略の各種内部の制御回路を初期化して、ＣＰＵ１１などの機能ブロックの誤動作を防止している。
【００２６】
一定時間後、内部のリセット信号が電源レベルの信号状態となって、リセット状態が解除されると、ＣＰＵ１１はＲＯＭ１２に書き込まれたプログラムを実行する。
【００２７】
ＲＯＭ１２には、ＣＰＵのプログラム処理手順を制御するプログラムと共通の基本動作プログラムなどを記憶するＯＳ部３０と、ＩＣカードへの各種コマンドを処理するコマンド処理プログラム３１と、ＩＣカードのセキュリティ機能を実現する暗号処理プログラム３２と図示しないがＩＣカードに関する各種データなどが記憶されている。
【００２８】
ＣＰＵ１１のプログラム実行手順は、図２のフローチャートに示される。最初のステップＳ１は、ＩＣカードの活性化ステップで、前記規定に定められた順序でＩＣカードリーダ／ライタ４へ、ＩＣカード１に関する情報を、Ｉ／Ｏ端子５より出力する。
【００２９】
次に、ステップＳ２に進み、ＩＣカード１のＲＡＭ１４に記憶されるコマンドの実行回数４０の値を０としてクリアし、次に、ステップＳ３に進み、ＮＶメモリ１３に記憶された履歴回数２１の値と、同じくＮＶメモリ１３に記憶された上限を超えた回数２２の値とを比較する。履歴回数２１の値が上限を超えた回数２２の値との比較で等しいか大きい時は、後述の異常処理ステップＳ２４に進む。履歴回数２１の値が上限を超えた回数２２の値より小さい場合、ステップＳ４に進み、タイマ１５へＮＶメモリ１３に記憶された監視期間２０の値を設定する。
【００３０】
次に、ステップＳ５に進み、Ｉ／Ｏ端子５と接続されるインターフェース回路を受信状態に設定する。
【００３１】
次に、ＣＰＵ１１はコマンド待ちステップＳ６となって、Ｉ／Ｏ端子５経由でコマンドの受信が終了したか、インターフェース／システム制御回路部２の状態を調べる。インターフェース／システム制御回路２が、Ｉ／Ｏ端子５経由でコマンドの受信が終了した状態となった時、次にステップＳ７に進み、ＣＰＵ１１は、インターフェース／システム制御回路部２からコマンドを受信する。次に、ステップＳ８に進み、ＣＰＵ１１は、タイマ割り込みを許可するとともにタイマ１５のカウント動作を開始する。
【００３２】
次に、ステップＳ９に進み、ＣＰＵ１１は、コマンドに対応した処理プログラムを実行する。
【００３３】
次いで、ステップＳ１０に進み、ＣＰＵ１１は、実行したコマンドがＮＶメモリ１３に登録された監視するコマンド２３であるかを比較し、一致しなければ、タイマ割り込みを不許可にしタイマ１５のカウント動作を停止するステップＳ１２に進む。一致すれば、ステップＳ１１に進み、ＲＡＭ１４に記憶されているコマンドの実行回数４０の値を１増加させた後、タイマ割り込みを不許可にしてタイマ１５のカウント動作を停止するステップＳ１２に進む。
【００３４】
次いで、ステップＳ１３に進み、ＣＰＵ１１は、ＩＣカードリーダ／ライタ４へ応答データを出力するため、コマンドの実行結果に従った応答データをインターフェース／システム制御回路部２に設定し、応答データの出力が終わることをインターフェース／システム制御回路部２の状態を調べる。
【００３５】
応答データの出力が終わると、次に、ＣＰＵ１１はインターフェース回路２をコマンド受信状態に設定するステップＳ５に進み、次いでコマンド待ちステップＳ６に進む。
【００３６】
通常のＩＣカードの利用環境では、ＣＰＵ１１は、多くの時間コマンド受信待ちの状態にあり、更に、コマンドの受信や応答データの送信動作は、シリアル通信で行われるため、クロック信号に比べて十分大きな処理時間が必要である。
【００３７】
このため、クロック信号に基づいて発生する信号でカウントダウンするタイマを用いて一定時間毎の割り込みを発生させると、その時間間隔内のコマンドの実行回数を異常処理判定に用いるためには、タイマに非常に大きな値を設定する必要があり、外部からのＩＣカードの動作解析が容易になる問題があるが、本実施の形態のようにタイマ１５のカウント動作をコマンドの処理時間内のみ行うように制御することで、タイマ割り込み発生の時間間隔内のコマンドの実行回数を、異常処理判定の基準とすれば、タイマ１５へ設定する監視期間２０の値は十分に小さな値とすることができる。
【００３８】
図３は、タイマ割り込みが発生し、タイマ割り込みが許可されたときのＣＰＵ１１が実行する手順を示すフローチャートである。
【００３９】
なお、許可された割り込みが発生したときにＣＰＵが行う一般的に知られた割り込み分岐手順（例えば、割り込みを受け付けた時のＣＰＵの状態、即ち、プログラム実行番地情報やステータス情報をスタック領域に保存し、割り込み禁止に設定するなど）と割り込みからの復帰手順（保存したＣＰＵの状態情報をＣＰＵに復帰させて、割り込みを許可状態に設定するなど）はハードウェアのシステム仕様により一連の処理手順として行われるため、詳細なステップとしては、図示されていない。
【００４０】
まず、タイマ割り込みが発生し、割り込みが受け付けられると、割り込み分岐手順であるステップＳ２０を実行する。次いで、ステップＳ２１に進み、メモリ１４に記憶されているコマンドの実行回数４０の値とＮＶメモリ１３に記憶されている期間内上限回数２４の値を比較する。
【００４１】
ステップＳ２１において、コマンドの実行回数４０の値が期間内上限回数２４の値より小さな時は、コマンドの実行回数４０の値を０としてクリアするステップＳ２５に進み、次に、割り込み復帰手順のステップＳ２６に進み、割り込み処理プログラムを終了して、割り込みが発生した時点の処理ステップに復帰する。
【００４２】
ステップＳ２１において、コマンドの実行回数４０の値が期間内上限回数２４の値と等しいか大きな時は、ステップＳ２２に進み、ＮＶメモリ１３に記憶されている履歴回数２１の値を１増加させる。
【００４３】
次いで、ステップＳ２３に進み、履歴回数２１の値と上限を超えた回数２２の値を比較する。
【００４４】
ステップＳ２３において、履歴回数２１の値が上限を超えた回数２２の値より小さな時は、ステップＳ２５に進み、コマンドの実行回数４０の値を０としてクリアし、次に、割り込み復帰手順のステップＳ２６に進み、割り込み処理プログラムを終了して、割り込みが発生した時点の処理ステップに復帰する。
【００４５】
ステップＳ２３において、履歴回数２１の値が上限を超えた回数２２の値と等しいか大きな時は、後述の異常処理ステップＳ２４に進む。
【００４６】
上述したように割り込み制御を行うと、コマンドの処理中にカウント動作するタイマが監視期間の間隔で割り込みを発生する。そのタイマ割り込みが発生した時に監視するコマンドで指定されたコマンドの実行回数が、期間内上限値を超えていて、その上限値を超えた履歴回数が、設定された上限を超えた回数以上の場合に、異常処理ステップを実行することになる。
【００４７】
これは、ＩＣカードの暗号処理プログラムを使用するコマンドなどセキュリティに関係する監視対象コマンドが、通常使用範囲では発生しない一定時間内に繰り返して実行されていて、ＩＣカードの内部動作解析による不正行為がなされていると判断できるためである。
【００４８】
異常処理ステップＳ２４としては、ＩＣカードのセキュリティレベルにより色々な処理手順が考えられるが、例えば、同じ番地のプログラムを繰り返して実行するようにして、ＩＣカードリーダ／ライタ４からコマンドの受信や応答データの送信をしないようにすることが考えられる。
【００４９】
異常処理ステップを実行するようになったＩＣカードは、ＩＣカードへの電源再投入やリセット信号などで初期化しても、ＮＶメモリに記憶されている履歴回数と上限を超えた回数が変化しないため、履歴回数と上限を超えた回数を比較するステップにおいて、異常処理ステップに分岐して、ＩＣカードの暗号処理プログラムなどが実行されず外部からの各種観測などによっても必要な動作解析を行うことができない。
【００５０】
また、ＩＣカードへの電源断と電源投入を繰り返して、異常処理ステップを実行させないようにしても、タイマの監視時間の値が不明なため、非常に短い間隔で電源断と電源投入を繰り返すことになり、作業に非常に大きな時間がかかり、解析が困難である。
【００５１】
本発明は、上記実施の形態に限定されるものではなく、発明の要旨を逸脱しない範囲で、種々変形し、実施できることは勿論である。
【００５２】
例えば、タイマ１５は、プログラムによって設定した値からカウントダウン動作を行い０となった時に、ＣＰＵ１１にタイマ割り込みを発生させる構成ではなく、プログラムによって設定した値からカウントアップ動作を行うようにしてもよい。更に、タイマ１５の表示可能な最大値を超えてカウントアップした時に発生するキャリー信号を、割り込み信号線１８を介してＣＰＵ１１にタイマ割り込みとして入力するようにしてもよく、この場合は、タイマ１５の全てのビットが０であることを判定する回路が不要となって、タイマ１５は少ない回路で実現でき、小型でセキュリティ性能の高いＩＣカードを提供できる。
【００５３】
また、タイマ１５は、プログラムによって設定した値からカウント動作する構成ではなく、指定したｎビットのカウンタとして動作するように構成し、クロックに基づいて発生する信号が２のｎ乗回入力する度にタイマ割り込みを発生するようにしてもよい。このようにすれば、タイマ１５は少ない回路で実現でき、小型でセキュリティ性能の高いＩＣカードを提供できる。
【００５４】
また、不揮発性メモリへのデータ書き込みで用いる電源を内部で発生させて、プログラム電源端子からの電源を用いないように構成すれば、電源制御によって不揮発性メモリへ履歴回数などの書き込みを回避しようとするような不正行為を防止することができ、ＩＣカードのセキュリティ性能が向上できる。
【００５５】
また、ＩＣカードにクロック発生回路を内蔵して、データ処理部の処理速度をクロック端子からのクロックに依存しないように構成すれば、クロック端子に加えるクロック周波数を低下さることにより、ＩＣカード内部動作の解析を行うことが困難になり、ＩＣカードのセキュリティ性能が向上できる。
【００５６】
【発明の効果】
本発明によれば、セキュリティ性の高いＩＣカードを実現できる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るＩＣカードのブロック図。
【図２】本発明の実施の形態に係るＩＣカードの処理手順を示すフローチャート。
【図３】本発明の実施の形態に係るＩＣカードのタイマ割り込みの処理手順を示すフローチャート。
【符号の説明】
１  ＩＣカード
２  インターフェース／システム制御回路部
３  データ処理部
４  ＩＣカードリーダ／ライタ
５  Ｉ／Ｏ端子
６  リセット端子
７  グランド端子
８  電源端子
９  プログラム電源端子
１０  クロック端子
１１  プロセッサ
１２  読み出しメモリ（ＲＯＭ）
１３  不揮発性メモリ（ＮＶメモリ）
１４  揮発性メモリ（ＲＡＭ）
１５  タイマ
１６  アドレスバス
１７  データバス
１８  タイマ割り込み信号線
２０  監視期間
２１  履歴回数
２２  上限を超えた回数
２３  監視するコマンド
２４  期間内上限回数
３０  ＯＳプログラム
３１  コマンド処理プログラム
３２  暗号処理プログラム
４０  コマンドの実行回数
【図１】
2004152210.tif 000003
【図２】
2004152210.tif 000004
【図３】
2004152210.tif 000005