(57)【特許請求の範囲】
【請求項１】
所定のトリガーが成立すると，不正行為の検出に利用する検証値に初期値を設定した後，タイマーを作動させて一定時間間隔を計測し，前記一定時間間隔が経過すると，前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を，予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い，前記計測回数が前記最大計測回数に達すると，前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し，このときの前記検証値と前記理論値を比較するチェックタイマー手段と，前記チェックタイマー手段が作動している間，機密データへのアクセスを許可するセキュリティ管理手段を備えていることを特徴とするＩＣカード。
【請求項２】
前記チェックタイマー手段は，前記検証値を更新する動作を開始する前に，前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行うことを特徴とする，請求項1に記載のＩＣカード。
【請求項３】
前記チェックタイマー手段は，前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合，前記ＩＣカードをコマンドを受け付けない状態にすることを特徴とする，請求項1又は請求項2に記載のＩＣカード。
【請求項４】
所定のトリガーが成立すると，不正行為の検出に利用する検証値に初期値を設定した後，タイマーを作動させて一定時間間隔を計測し，前記一定時間間隔が経過すると，前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を，予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い，前記計測回数が前記最大計測回数に達すると，前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し，このときの前記検証値と前記理論値を比較するチェックタイマー手段と，前記チェックタイマー手段が作動している間，機密データへのアクセスを許可するセキュリティ管理手段として，ＩＣカードを機能させるためのコンピュータプログラム。
【請求項５】
前記チェックタイマー手段は，前記検証値を更新する動作を開始する前に，前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行う手段であることを特徴とする，請求項４に記載のコンピュータプログラム。
【請求項６】
前記チェックタイマー手段は，前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合，コマンドを受け付けない状態に前記ＩＣカードをする手段であることを特徴とする，請求項４又は請求項５に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＩＣカードの不正な利用を防止するための技術に関する。
【背景技術】
【０００２】
データを記憶するメモリや演算機能を備えたＩＣチップが実装され，スマートカードとも称されるＩＣカードは，金融分野や公共分野などセキュリティ要求の高いシステムに利用されている。
【０００３】
セキュリティ要求の高いシステムにＩＣカードを利用する場合，ＩＣカードに実装されたＩＣチップのメモリ（例えば，ＥＥＰＲＯＭ）に機密データが記憶され，非特許文献１の第６章や数多くの特許文献（例えば，特許文献１）に記載されているように，パスワードや暗号鍵を用いた認証コマンドを用いて機密データは保護され，機密データのアクセスには，認証コマンドの成功が条件とされていた。
【０００４】
しかし，認証コマンドを用いて機密データを保護すると，機密データの保護に用いた認証コマンドに一旦成功してしまうと，ＩＣカードへの電源切断又はＩＣカードのリセットなどの処理が実行されるまでの間，機密データにアクセスできてしまう問題があるため，特許文献２では，認証コマンドに成功したから後，所定時間が経過するとコマンドに対する処理の実行を停止するＩＣカードが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６１−１５１７９３号公報
【特許文献２】特開２００３−２０８５８５号公報
【非特許文献】
【０００６】
【非特許文献１】ＩＣカードシステム利用促進協議会著  「ＪＩＣＳＡＰ ＩＣカード仕様  Ｖ2.0」  平成１３年７月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら，上述した特許文献２の発明では，不正行為が行われて経過時間が延長されても，該不正行為が行われたことをＩＣカード側で判断することができなかった。
【０００８】
そこで，本発明は，経過時間によって機密データへのアクセスを制御する際，経過時間を計測中に不正行為が行われたことを判断できるＩＣカード，及び，該ＩＣカードに実装されるコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決する第１の発明は，所定のトリガーが成立すると，不正行為の検出に利用する検証値に初期値を設定した後，タイマーを作動させて一定時間間隔を計測し，前記一定時間間隔が経過すると，前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を，予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い，前記計測回数が前記最大計測回数に達すると，前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し，このときの前記検証値と前記理論値を比較するチェックタイマー手段と，前記チェックタイマー手段が作動している間，機密データへのアクセスを許可するセキュリティ管理手段を備えていることを特徴とするＩＣカードである。
【００１０】
更に，第２の発明は，前記チェックタイマー手段は，前記検証値を更新する動作を開始する前に，前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行うことを特徴とする第1の発明に記載のＩＣカードである。
【００１１】
更に，第３の発明は，前記チェックタイマー手段は，前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合，コマンドを受け付けない状態に前記ＩＣカードにすることを特徴とする第1の発明又は第2の発明に記載のＩＣカードである。
【００１２】
第１の発明によれば，前記チェックタイマー手段が前記検証値を更新する処理を実行中に，前記ＩＣカードが攻撃を受けてメモリに格納された前記計測回数や前記検証値などが変化すると，前記計測回数が前記最大計測回数に達したときの前記理論値とこのときの前記検証値が合わなくなるため，前記計測回数が最大計測回数に達したときの前記理論値と前記検証値を比較することで，何らかの不正行為が行われたことを前記ＩＣカード１で判断できるようになる。
【００１３】
また，第２の発明によれば，前記チェックタイマー手段が，前記検証値を更新する動作を開始する前に，メモリに記憶されている前記検証値の初期値及び前記最大計測回数の整合性をチェックする処理を行うこと，前記検証値を更新する動作を開始する前に，前記検証値の初期値及び前記最大計測回数が正しいことを前記ＩＣカード側で判断できる。
【００１４】
更に，第３の発明によれば，何らかの不正行為が行われた前記ＩＣカードを使用できないようにするために，前記計測回数が前記最大計測回数に達したときの前記理論値が一致しない場合，前記チェックタイマー手段は，コマンドを受け付けない状態に前記ＩＣカードにすることが望ましい。
【００１５】
更に，第４の発明は，所定のトリガーが成立すると，不正行為の検出に利用する検証値に初期値を設定した後，タイマーを作動させて一定時間間隔を計測し，前記一定時間間隔が経過すると，前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を，予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い，前記計測回数が前記最大計測回数に達すると，前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し，このときの前記検証値と前記理論値を比較するチェックタイマー手段と，前記チェックタイマー手段が作動している間，機密データへのアクセスを許可するセキュリティ管理手段として，ＩＣカードを機能させるためのコンピュータプログラムである。
【００１６】
更に，第５の発明は，前記チェックタイマー手段は，前記検証値を更新する動作を開始する前に，前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行う手段であることを特徴とする第４の発明に記載のコンピュータプログラムである。
【００１７】
更に，第６の発明は，前記チェックタイマー手段は，前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合，コマンドを受け付けない状態に前記ＩＣカードをする手段であることを特徴とする第４の発明又は第５の発明に記載のコンピュータプログラムである。
【００１８】
なお，第４の発明から第６の発明は，ＩＣカードに実装するコンピュータプログラムに係わる発明である。
【発明の効果】
【００１９】
このように，本発明によれば，経過時間によって機密データへのアクセスを制御する際，経過時間を計測中に不正行為が行われたことを判断できるＩＣカード，及び，該ＩＣカードに実装されるコンピュータプログラムを提供できる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るＩＣカードの外観を示した図。
【図２】ＩＣカードに実装されるＩＣチップのブロック図。
【図３】ＩＣカードに備えられた機能を説明する図。
【図４】チェックタイマーモジュールの動作を示したフロー図。
【図５】セキュリティ管理モジュールの動作を示したフロー図。
【発明を実施するための形態】
【００２１】
ここから，本願発明の実施形態について，本願発明の技術分野に係わる当業者が，本願発明の内容を理解し，本願発明を実施できる程度に説明する。
【００２２】
図１は、本実施形態に係るＩＣカード１の外観を示した図で、図１に示したＩＣカード１は、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードで、ＩＣカード１には、ＩＣチップ２がモールドされたＩＣモジュール２ａが実装され，ＩＣカード１はターミナル３と協働して動作する。
【００２３】
図１において、本実施形態に係るＩＣカード１を，ターミナル３と接触型でデータ通信する接触ＩＣ型カードとしているが、本発明は，ＩＣカード種別に依存せず，無線でデータ通信する非接触ＩＣカード、または、接触データ通信と非接触データ通信の２つの通信機能を備えたデュアルインターフェースＩＣカードであってもよい。
【００２４】
加えて、ＩＣカード１の形状は問わず、ＩＣカード１はキャッシュカードと同じ形状でなく、ＩＣモジュール２ａの近辺を矩形状に切り取った形状をしているＳＩＭ（Subscriber Identity Module）或いはＵＩＭ(Universal Subscriber Identity Module)であってもよい。
【００２５】
図２は、ＩＣカード１に実装されるＩＣチップ２のブロック図である。図２に図示したように、ＩＣチップ２には、演算機能を備えたＣＰＵ２０（CPU：Central Processing Unit）、揮発性メモリとしてランダムアクセスメモリ２１（RAM：Random Access Memory）、読み出し専用の不揮発性メモリ２３（ROＭ：Read Only Memory、）、電気的に書換え可能な不揮発性メモリとしてＥＥＰＲＯＭ２２（EEPROM：Electrically Erasable Programmable Read-Only Memoryの略）およびターミナル３とデータ通信するためのＵＡＲＴ２４に加え、ターミナル３から受け取るクロックを利用して時間を計測する機能を備えたタイマー２５などが、ＢＵＳ２６に接続されている。
【００２６】
図３は，ＩＣカード１に備えられた機能を説明する図である。図３に図示したように，本実施形態では，ＲＯＭ２３やＥＥＰＲＯＭ２２などに記憶された機密データのアクセスに時間的な制限を加えるためのコンピュータプログラムとして，所定のトリガーが成立すると，不正行為の検出に利用する検証値に初期値を設定した後，タイマー２５を作動させて一定時間間隔を計測し，一定時間間隔が経過すると，一定時間間隔を計測した計測回数に基づき算出される値に検証値を更新する動作を，予め設定された最大計測回数に計測回数が達するまで繰り返し行い，計測回数が最大計測回数に達すると，計測回数が最大計測回数に達したときの検証値の理論値を算出し，このときの検証値と理論値を比較するチェックタイマー手段として機能するチェックタイマーモジュール１０と，チェックタイマーモジュール１０が作動している間，機密データへのアクセスを許可するセキュリティ管理手段として機能するセキュリティ管理モジュール１１がＲＯＭ２３に実装されている。
【００２７】
本実施形態において，チェックタイマーモジュール１０によって更新される検証値、及び，一定時間間隔を計測した計測回数を格納する領域はＲＡＭ２１に記憶され，また，検証値の初期値と，検証値の最大計測回数がＥＥＰＲＯＭ２２に記憶されている。
【００２８】
チェックタイマーモジュール１０が作動中に，ＩＣカード１が攻撃を受けてＲＡＭ２１に格納された計測回数や検証値が変化した場合や，ＩＣカード１が攻撃を受けてＥＥＰＲＯＭ２２に記憶された初期値や最大計測回数が変化した場合は，計測回数が最大計測回数に達したときの検証値の理論値とこのときの検証値が合わなくなるため，計測回数が最大計測回数に達したときの検証値の理論値と検証値を比較することで，何らかの不正行為が行われたことをＩＣカード１側で判断できる。
【００２９】
また，チェックタイマーモジュール１０が，検証値を更新する動作を開始する前に，ＥＥＰＲＯＭ２２に記憶されている検証値の初期値及び最大計測回数の整合性をチェックする処理を行うこと，検証値を更新する動作を開始する前に，検証値の初期値及び最大計測回数が正しいことをＩＣカード１側で判断できる。
【００３０】
更に，何らかの不正行為が行われたＩＣカード１を使用できないようにするために，計測回数が最大計測回数に達したときの検証値と理論値が一致しない場合，チェックタイマーモジュール１０は，コマンドを受け付けない状態にＩＣカード１をすることが望ましい。
【００３１】
ここから，ＩＣカード１に実装されたチェックタイマーモジュール１０及びセキュリティ管理モジュール１１それぞれの動作について説明する。
【００３２】
図４は，チェックタイマーモジュール１０の動作を示したフロー図である。ＩＣカード１の内部で，チェックタイマーモジュール１０を起動させるトリガーが成立すると（Ｓ１），チェックタイマーモジュール１０が起動する（Ｓ２）。
【００３３】
チェックタイマーモジュール１０を起動させるトリガーとしては，チェックタイマーモジュール１０を起動させる専用コマンドを用意しておき，ターミナル３からの該専用コマンドの受信を該トリガーとしてもよいが，機密データの保護に利用するための認証コマンド（例えば，Verifyコマンド）の成功を該トリガーとすることもできるし，ターミナル３からのリセット動作を該トリガーとすることもできる。
【００３４】
チェックタイマーモジュール１０は起動すると，まず，初期値及び最大計測回数が格納されているメモリ（ここでは，ＥＥＰＲＯＭ２２）の領域をチェックするメモリチェック（Ｓ３）を実行する。
【００３５】
具体的には，初期値と最大計測回数が格納されている領域全体のＸＯＲ値と，予め記憶されているＸＯＲ値の期待値を比較することで，メモリに記憶されている初期値と最大計測回数の整合性を検証する。
【００３６】
チェックタイマーモジュール１０はメモリチェック（Ｓ３）の結果によって処理を分岐させ（Ｓ４），メモリチェック（Ｓ３）に失敗すると，この手順を終了し，検証値を更新することなくチェックタイマーモジュール１０は停止する。
【００３７】
また，チェックタイマーモジュール１０は，メモリチェック（Ｓ３）に成功すると，検証値の初期値を検証値にセットし，一定時間間隔を計測した回数である計測回数を「０」にセットした後（Ｓ５），一定時間間隔に対応するカウンタ値をタイマー２５のカウンタにセットして，ＩＣチップ２のタイマー２５を作動させる（Ｓ６）。
【００３８】
ＩＣチップ２のタイマー２５は，ＩＣチップ２の内部クロックに従い，タイマー２５のカウンタをデクリメントさせ，該カウンタの値が「０」になると，タイマー割り込みを発生させる。
【００３９】
ＩＣチップ２のタイマー回路２５のカウンタの値が「０」になることでタイマー割り込みが発生すると（Ｓ７），チェックタイマーモジュール１０は、計測回数を一つだけインクリメントした後（Ｓ８）、所定のアルゴリズムに従い、インクリメント後の計測回数に基づく検証値を所定のアルゴリムに従い算出し、ＲＡＭ２１に格納されている検証値を算出した値に更新する（Ｓ９）。
【００４０】
なお，チェックタイマーモジュール１０が、検証値を算出に利用するアルゴリズムは任意で、検証値を所定の幅ずつインクリメントするアルゴリズムでもよいが、数列を求めるアルゴリズムを利用するとよい。例えば、計測回数を検証値に加算するアルゴリズムを適用すると、検証値は次のように更新されることになる。
０（初期値）→１（１回目の更新）→３（２回目の更新）→６（３回目の更新）→１０（４回目の更新）→１５（５回目の更新）
【００４１】
チェックタイマーモジュール１０は，計測回数と検証値を更新すると，更新後の計測回数と最大計測回数を比較し，比較結果によって処理を分岐させ（Ｓ１０），更新後の計測回数が更新最大回数でなければ図４のステップＳ６に戻る。
【００４２】
また，更新後の計測回数の値が更新最大回数であるとき，チェックタイマーモジュール１０は，計測回数が最大計測回数になったときの検証値の理論値を利用して算出し（Ｓ１１），この時点における検証値と理論値を比較し，比較結果によって処理を分岐させる（Ｓ１２）。
【００４３】
この時点における検証値と検証値の理論値が一致していれば，チェックタイマーモジュール１０の起動中に何らかの不正行為が無かったと判断し，このままこの手順を終了し，チェックタイマーモジュール１０は停止する。
【００４４】
この時点における検証値と検証値の理論値が一致していなければ，チェックタイマーモジュール１０の起動中に何らかの不正行為があったと判断し，コマンドを受け付けない状態にした後（Ｓ１３），この手順を終了し，チェックタイマーモジュール１０は停止する。
【００４５】
例えば，最大計測回数が「５」で，上述したアルゴリズムによれば，一定時間間隔の計測回数が「５」のときの検証値の理論値は「１５」になり，実際の検証値が「１５」以外であれば，ＩＣカード１は何らかの不正行為があったと判断する。
【００４６】
次に、セキュリティ管理モジュール１１の動作について説明する。図５は、セキュリティ管理モジュール１１の動作を示したフロー図である。セキュリティ管理モジュール１１は、機密データにアクセスするコマンドと協働して動作するコンピュータプログラムで、ターミナル３から該コマンドを受信すると（Ｓ２０），セキュリティ管理モジュール１１が起動する（Ｓ２１）。
【００４７】
セキュリティ管理モジュール１１は起動すると、これまで述べたチェックタイマーモジュール１０が起動中であるか確認し，確認結果によって処理を分岐させる（Ｓ２２）。例えば，ＲＡＭ２１に設けられた計測回数とＥＥＰＲＯＭ２２に記憶された最大計測回数を比較し、計測回数が最大計測回数以下であることによって，チェックタイマーモジュール１０が起動中であるか確認できる。
【００４８】
セキュリティ管理モジュール１１は，チェックタイマーモジュール１０が起動中であると判定した場合，ステップＳ２０で受信したコマンドを実行した後（Ｓ２３），該コマンドの実行結果を示すレスポンスをターミナル３へ送信し（Ｓ２４），この手順は終了する。
【００４９】
また，セキュリティ管理モジュール１１は，チェックタイマーモジュール１０が起動中でないと判定した場合，ステップＳ２０で受信したコマンドを実行することなく，チェックタイマーモジュール１０が起動中でないことを示すレスポンスをターミナル３へ送信し（Ｓ２５），この手順は終了する。
【符号の説明】
【００５０】
１    ＩＣカード
１０  チェックタイマーモジュール
１１  セキュリティ管理モジュール
２    ＩＣチップ
２１  ＲＡＭ
２２  ＥＥＰＲＯＭ
２３  ＲＯＭ
【図２】
0005471575.tif 000002
【図３】
0005471575.tif 000003
【図４】
0005471575.tif 000004
【図５】
0005471575.tif 000005
【図１】
0005471575.tif 000006