説明

ICカード及びコンピュータプログラム

【課題】経過時間によって機密データへのアクセスを制御する際,経過時間を計測中に不正行為が行われたことを判断できるICカードを提供する。
【解決手段】ICカード1は,所定のトリガーが成立すると,不正行為の検出に利用する検証値に初期値を設定した後,タイマー25を作動させて一定時間間隔を計測し,一定時間間隔が経過すると,一定時間間隔を計測した計測回数に基づき算出される値に検証値を更新する動作を,予め設定された最大計測回数に計測回数が達するまで繰り返し行い,計測回数が最大計測回数に達すると,計測回数が最大計測回数に達したときの検証値の理論値を算出し,このときの検証値と理論値を比較するチェックタイマーモジュール10と,チェックタイマーモジュール10が作動している間,機密データへのアクセスを許可するセキュリティ管理モジュール11を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,ICカードの不正な利用を防止するための技術に関する。
【背景技術】
【0002】
データを記憶するメモリや演算機能を備えたICチップが実装され,スマートカードとも称されるICカードは,金融分野や公共分野などセキュリティ要求の高いシステムに利用されている。
【0003】
セキュリティ要求の高いシステムにICカードを利用する場合,ICカードに実装されたICチップのメモリ(例えば,EEPROM)に機密データが記憶され,非特許文献1の第6章や数多くの特許文献(例えば,特許文献1)に記載されているように,パスワードや暗号鍵を用いた認証コマンドを用いて機密データは保護され,機密データのアクセスには,認証コマンドの成功が条件とされていた。
【0004】
しかし,認証コマンドを用いて機密データを保護すると,機密データの保護に用いた認証コマンドに一旦成功してしまうと,ICカードへの電源切断又はICカードのリセットなどの処理が実行されるまでの間,機密データにアクセスできてしまう問題があるため,特許文献2では,認証コマンドに成功したから後,所定時間が経過するとコマンドに対する処理の実行を停止するICカードが開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開昭61−151793号公報
【特許文献2】特開2003−208585号公報
【非特許文献】
【0006】
【非特許文献1】ICカードシステム利用促進協議会著 「JICSAP ICカード仕様 V2.0」 平成13年7月
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら,上述した特許文献2の発明では,不正行為が行われて経過時間が延長されても,該不正行為が行われたことをICカード側で判断することができなかった。
【0008】
そこで,本発明は,経過時間によって機密データへのアクセスを制御する際,経過時間を計測中に不正行為が行われたことを判断できるICカード,及び,該ICカードに実装されるコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決する第1の発明は,所定のトリガーが成立すると,不正行為の検出に利用する検証値に初期値を設定した後,タイマーを作動させて一定時間間隔を計測し,前記一定時間間隔が経過すると,前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を,予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い,前記計測回数が前記最大計測回数に達すると,前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し,このときの前記検証値と前記理論値を比較するチェックタイマー手段と,前記チェックタイマー手段が作動している間,機密データへのアクセスを許可するセキュリティ管理手段を備えていることを特徴とするICカードである。
【0010】
更に,第2の発明は,前記チェックタイマー手段は,前記検証値を更新する動作を開始する前に,前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行うことを特徴とする第1の発明に記載のICカードである。
【0011】
更に,第3の発明は,前記チェックタイマー手段は,前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合,コマンドを受け付けない状態に前記ICカードにすることを特徴とする第1の発明又は第2の発明に記載のICカードである。
【0012】
第1の発明によれば,前記チェックタイマー手段が前記検証値を更新する処理を実行中に,前記ICカードが攻撃を受けてメモリに格納された前記計測回数や前記検証値などが変化すると,前記計測回数が前記最大計測回数に達したときの前記理論値とこのときの前記検証値が合わなくなるため,前記計測回数が最大計測回数に達したときの前記理論値と前記検証値を比較することで,何らかの不正行為が行われたことを前記ICカード1で判断できるようになる。
【0013】
また,第2の発明によれば,前記チェックタイマー手段が,前記検証値を更新する動作を開始する前に,メモリに記憶されている前記検証値の初期値及び前記最大計測回数の整合性をチェックする処理を行うこと,前記検証値を更新する動作を開始する前に,前記検証値の初期値及び前記最大計測回数が正しいことを前記ICカード側で判断できる。
【0014】
更に,第3の発明によれば,何らかの不正行為が行われた前記ICカードを使用できないようにするために,前記計測回数が前記最大計測回数に達したときの前記理論値が一致しない場合,前記チェックタイマー手段は,コマンドを受け付けない状態に前記ICカードにすることが望ましい。
【0015】
更に,第4の発明は,所定のトリガーが成立すると,不正行為の検出に利用する検証値に初期値を設定した後,タイマーを作動させて一定時間間隔を計測し,前記一定時間間隔が経過すると,前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を,予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い,前記計測回数が前記最大計測回数に達すると,前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し,このときの前記検証値と前記理論値を比較するチェックタイマー手段と,前記チェックタイマー手段が作動している間,機密データへのアクセスを許可するセキュリティ管理手段として,ICカードを機能させるためのコンピュータプログラムである。
【0016】
更に,第5の発明は,前記チェックタイマー手段は,前記検証値を更新する動作を開始する前に,前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行う手段であることを特徴とする第4の発明に記載のコンピュータプログラムである。
【0017】
更に,第6の発明は,前記チェックタイマー手段は,前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合,コマンドを受け付けない状態に前記ICカードをする手段であることを特徴とする第4の発明又は第5の発明に記載のコンピュータプログラムである。
【0018】
なお,第4の発明から第6の発明は,ICカードに実装するコンピュータプログラムに係わる発明である。
【発明の効果】
【0019】
このように,本発明によれば,経過時間によって機密データへのアクセスを制御する際,経過時間を計測中に不正行為が行われたことを判断できるICカード,及び,該ICカードに実装されるコンピュータプログラムを提供できる。
【図面の簡単な説明】
【0020】
【図1】本実施形態に係るICカードの外観を示した図。
【図2】ICカードに実装されるICチップのブロック図。
【図3】ICカードに備えられた機能を説明する図。
【図4】チェックタイマーモジュールの動作を示したフロー図。
【図5】セキュリティ管理モジュールの動作を示したフロー図。
【発明を実施するための形態】
【0021】
ここから,本願発明の実施形態について,本願発明の技術分野に係わる当業者が,本願発明の内容を理解し,本願発明を実施できる程度に説明する。
【0022】
図1は、本実施形態に係るICカード1の外観を示した図で、図1に示したICカード1は、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードで、ICカード1には、ICチップ2がモールドされたICモジュール2aが実装され,ICカード1はターミナル3と協働して動作する。
【0023】
図1において、本実施形態に係るICカード1を,ターミナル3と接触型でデータ通信する接触IC型カードとしているが、本発明は,ICカード種別に依存せず,無線でデータ通信する非接触ICカード、または、接触データ通信と非接触データ通信の2つの通信機能を備えたデュアルインターフェースICカードであってもよい。
【0024】
加えて、ICカード1の形状は問わず、ICカード1はキャッシュカードと同じ形状でなく、ICモジュール2aの近辺を矩形状に切り取った形状をしているSIM(Subscriber Identity Module)或いはUIM(Universal Subscriber Identity Module)であってもよい。
【0025】
図2は、ICカード1に実装されるICチップ2のブロック図である。図2に図示したように、ICチップ2には、演算機能を備えたCPU20(CPU:Central Processing Unit)、揮発性メモリとしてランダムアクセスメモリ21(RAM:Random Access Memory)、読み出し専用の不揮発性メモリ23(ROM:Read Only Memory、)、電気的に書換え可能な不揮発性メモリとしてEEPROM22(EEPROM:Electrically Erasable Programmable Read-Only Memoryの略)およびターミナル3とデータ通信するためのUART24に加え、ターミナル3から受け取るクロックを利用して時間を計測する機能を備えたタイマー25などが、BUS26に接続されている。
【0026】
図3は,ICカード1に備えられた機能を説明する図である。図3に図示したように,本実施形態では,ROM23やEEPROM22などに記憶された機密データのアクセスに時間的な制限を加えるためのコンピュータプログラムとして,所定のトリガーが成立すると,不正行為の検出に利用する検証値に初期値を設定した後,タイマー25を作動させて一定時間間隔を計測し,一定時間間隔が経過すると,一定時間間隔を計測した計測回数に基づき算出される値に検証値を更新する動作を,予め設定された最大計測回数に計測回数が達するまで繰り返し行い,計測回数が最大計測回数に達すると,計測回数が最大計測回数に達したときの検証値の理論値を算出し,このときの検証値と理論値を比較するチェックタイマー手段として機能するチェックタイマーモジュール10と,チェックタイマーモジュール10が作動している間,機密データへのアクセスを許可するセキュリティ管理手段として機能するセキュリティ管理モジュール11がROM23に実装されている。
【0027】
本実施形態において,チェックタイマーモジュール10によって更新される検証値、及び,一定時間間隔を計測した計測回数を格納する領域はRAM21に記憶され,また,検証値の初期値と,検証値の最大計測回数がEEPROM22に記憶されている。
【0028】
チェックタイマーモジュール10が作動中に,ICカード1が攻撃を受けてRAM21に格納された計測回数や検証値が変化した場合や,ICカード1が攻撃を受けてEEPROM22に記憶された初期値や最大計測回数が変化した場合は,計測回数が最大計測回数に達したときの検証値の理論値とこのときの検証値が合わなくなるため,計測回数が最大計測回数に達したときの検証値の理論値と検証値を比較することで,何らかの不正行為が行われたことをICカード1側で判断できる。
【0029】
また,チェックタイマーモジュール10が,検証値を更新する動作を開始する前に,EEPROM22に記憶されている検証値の初期値及び最大計測回数の整合性をチェックする処理を行うこと,検証値を更新する動作を開始する前に,検証値の初期値及び最大計測回数が正しいことをICカード1側で判断できる。
【0030】
更に,何らかの不正行為が行われたICカード1を使用できないようにするために,計測回数が最大計測回数に達したときの検証値と理論値が一致しない場合,チェックタイマーモジュール10は,コマンドを受け付けない状態にICカード1をすることが望ましい。
【0031】
ここから,ICカード1に実装されたチェックタイマーモジュール10及びセキュリティ管理モジュール11それぞれの動作について説明する。
【0032】
図4は,チェックタイマーモジュール10の動作を示したフロー図である。ICカード1の内部で,チェックタイマーモジュール10を起動させるトリガーが成立すると(S1),チェックタイマーモジュール10が起動する(S2)。
【0033】
チェックタイマーモジュール10を起動させるトリガーとしては,チェックタイマーモジュール10を起動させる専用コマンドを用意しておき,ターミナル3からの該専用コマンドの受信を該トリガーとしてもよいが,機密データの保護に利用するための認証コマンド(例えば,Verifyコマンド)の成功を該トリガーとすることもできるし,ターミナル3からのリセット動作を該トリガーとすることもできる。
【0034】
チェックタイマーモジュール10は起動すると,まず,初期値及び最大計測回数が格納されているメモリ(ここでは,EEPROM22)の領域をチェックするメモリチェック(S3)を実行する。
【0035】
具体的には,初期値と最大計測回数が格納されている領域全体のXOR値と,予め記憶されているXOR値の期待値を比較することで,メモリに記憶されている初期値と最大計測回数の整合性を検証する。
【0036】
チェックタイマーモジュール10はメモリチェック(S3)の結果によって処理を分岐させ(S4),メモリチェック(S3)に失敗すると,この手順を終了し,検証値を更新することなくチェックタイマーモジュール10は停止する。
【0037】
また,チェックタイマーモジュール10は,メモリチェック(S3)に成功すると,検証値の初期値を検証値にセットし,一定時間間隔を計測した回数である計測回数を「0」にセットした後(S5),一定時間間隔に対応するカウンタ値をタイマー25のカウンタにセットして,ICチップ2のタイマー25を作動させる(S6)。
【0038】
ICチップ2のタイマー25は,ICチップ2の内部クロックに従い,タイマー25のカウンタをデクリメントさせ,該カウンタの値が「0」になると,タイマー割り込みを発生させる。
【0039】
ICチップ2のタイマー回路25のカウンタの値が「0」になることでタイマー割り込みが発生すると(S7),チェックタイマーモジュール10は、計測回数を一つだけインクリメントした後(S8)、所定のアルゴリズムに従い、インクリメント後の計測回数に基づく検証値を所定のアルゴリムに従い算出し、RAM21に格納されている検証値を算出した値に更新する(S9)。
【0040】
なお,チェックタイマーモジュール10が、検証値を算出に利用するアルゴリズムは任意で、検証値を所定の幅ずつインクリメントするアルゴリズムでもよいが、数列を求めるアルゴリズムを利用するとよい。例えば、計測回数を検証値に加算するアルゴリズムを適用すると、検証値は次のように更新されることになる。
0(初期値)→1(1回目の更新)→3(2回目の更新)→6(3回目の更新)→10(4回目の更新)→15(5回目の更新)
【0041】
チェックタイマーモジュール10は,計測回数と検証値を更新すると,更新後の計測回数と最大計測回数を比較し,比較結果によって処理を分岐させ(S10),更新後の計測回数が更新最大回数でなければ図4のステップS6に戻る。
【0042】
また,更新後の計測回数の値が更新最大回数であるとき,チェックタイマーモジュール10は,計測回数が最大計測回数になったときの検証値の理論値を利用して算出し(S11),この時点における検証値と理論値を比較し,比較結果によって処理を分岐させる(S12)。
【0043】
この時点における検証値と検証値の理論値が一致していれば,チェックタイマーモジュール10の起動中に何らかの不正行為が無かったと判断し,このままこの手順を終了し,チェックタイマーモジュール10は停止する。
【0044】
この時点における検証値と検証値の理論値が一致していなければ,チェックタイマーモジュール10の起動中に何らかの不正行為があったと判断し,コマンドを受け付けない状態にした後(S13),この手順を終了し,チェックタイマーモジュール10は停止する。
【0045】
例えば,最大計測回数が「5」で,上述したアルゴリズムによれば,一定時間間隔の計測回数が「5」のときの検証値の理論値は「15」になり,実際の検証値が「15」以外であれば,ICカード1は何らかの不正行為があったと判断する。
【0046】
次に、セキュリティ管理モジュール11の動作について説明する。図5は、セキュリティ管理モジュール11の動作を示したフロー図である。セキュリティ管理モジュール11は、機密データにアクセスするコマンドと協働して動作するコンピュータプログラムで、ターミナル3から該コマンドを受信すると(S20),セキュリティ管理モジュール11が起動する(S21)。
【0047】
セキュリティ管理モジュール11は起動すると、これまで述べたチェックタイマーモジュール10が起動中であるか確認し,確認結果によって処理を分岐させる(S22)。例えば,RAM21に設けられた計測回数とEEPROM22に記憶された最大計測回数を比較し、計測回数が最大計測回数以下であることによって,チェックタイマーモジュール10が起動中であるか確認できる。
【0048】
セキュリティ管理モジュール11は,チェックタイマーモジュール10が起動中であると判定した場合,ステップS20で受信したコマンドを実行した後(S23),該コマンドの実行結果を示すレスポンスをターミナル3へ送信し(S24),この手順は終了する。
【0049】
また,セキュリティ管理モジュール11は,チェックタイマーモジュール10が起動中でないと判定した場合,ステップS20で受信したコマンドを実行することなく,チェックタイマーモジュール10が起動中でないことを示すレスポンスをターミナル3へ送信し(S25),この手順は終了する。
【符号の説明】
【0050】
1 ICカード
10 チェックタイマーモジュール
11 セキュリティ管理モジュール
2 ICチップ
21 RAM
22 EEPROM
23 ROM


【特許請求の範囲】
【請求項1】
所定のトリガーが成立すると,不正行為の検出に利用する検証値に初期値を設定した後,タイマーを作動させて一定時間間隔を計測し,前記一定時間間隔が経過すると,前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を,予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い,前記計測回数が前記最大計測回数に達すると,前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し,このときの前記検証値と前記理論値を比較するチェックタイマー手段と,前記チェックタイマー手段が作動している間,機密データへのアクセスを許可するセキュリティ管理手段を備えていることを特徴とするICカード。
【請求項2】
前記チェックタイマー手段は,前記検証値を更新する動作を開始する前に,前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行うことを特徴とする,請求項1に記載のICカード。
【請求項3】
前記チェックタイマー手段は,前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合,コマンドを受け付けない状態に前記ICカードにすることを特徴とする,請求項1又は請求項2に記載のICカード。
【請求項4】
所定のトリガーが成立すると,不正行為の検出に利用する検証値に初期値を設定した後,タイマーを作動させて一定時間間隔を計測し,前記一定時間間隔が経過すると,前記一定時間間隔を計測した計測回数に基づき算出される値に前記検証値を更新する動作を,予め設定された最大計測回数に前記計測回数が達するまで繰り返し行い,前記計測回数が前記最大計測回数に達すると,前記計測回数が前記最大計測回数に達したときの前記検証値の理論値を算出し,このときの前記検証値と前記理論値を比較するチェックタイマー手段と,前記チェックタイマー手段が作動している間,機密データへのアクセスを許可するセキュリティ管理手段として,ICカードを機能させるためのコンピュータプログラム。
【請求項5】
前記チェックタイマー手段は,前記検証値を更新する動作を開始する前に,前記検証値の初期値及び前記最大計測回数が記憶されているメモリの整合性をチェックする処理を行う手段であることを特徴とする,請求項4に記載のコンピュータプログラム。
【請求項6】
前記チェックタイマー手段は,前記計測回数が前記最大計測回数に達したときの前記検証値と前記理論値が一致しない場合,コマンドを受け付けない状態に前記ICカードをする手段であることを特徴とする,請求項4又は請求項5に記載のコンピュータプログラム。


【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図1】
image rotate


【公開番号】特開2011−170721(P2011−170721A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2010−35404(P2010−35404)
【出願日】平成22年2月19日(2010.2.19)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】