JP2008243097A - 情報記憶媒体 - Google Patents
情報記憶媒体 Download PDFInfo
- Publication number
- JP2008243097A JP2008243097A JP2007086137A JP2007086137A JP2008243097A JP 2008243097 A JP2008243097 A JP 2008243097A JP 2007086137 A JP2007086137 A JP 2007086137A JP 2007086137 A JP2007086137 A JP 2007086137A JP 2008243097 A JP2008243097 A JP 2008243097A
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- storage medium
- information storage
- check
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Credit Cards Or The Like (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
【課題】不正防止に優れた情報記憶媒体を提供すること。
【解決手段】モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、複数のチェックポイントを含むデータ処理ルーチンを記憶する記憶手段と、前記データ処理ルーチンに従い前記命令に対応する処理を実行するとともに、前記データ処理ルーチンに含まれる前記複数のチェックポイントの経由に対応して値が変化する同一値のチェックフラグを複数格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備える。
【選択図】 図1
【解決手段】モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、複数のチェックポイントを含むデータ処理ルーチンを記憶する記憶手段と、前記データ処理ルーチンに従い前記命令に対応する処理を実行するとともに、前記データ処理ルーチンに含まれる前記複数のチェックポイントの経由に対応して値が変化する同一値のチェックフラグを複数格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備える。
【選択図】 図1
Description
本発明は、CPU、ROM、RAM、EEPROMなどを有するIC(集積回路)チップを内蔵するICカードと称される情報記憶媒体に関し、特にICカードの耐タンパ技術の改良に関する。
IC(Integrated Circuit)カードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのIDカードとしても様々な分野で使われるようになっている。これは、従来の磁気カードに比べ、ICカードは、CPU、ROM、RAM、EEPROMなどを有するICを備えることにより、様々な機能が実現可能となったこと、さらには偽造が難しいためセキュリティの面でも大きく向上したことが要因である。
非特許文献1には、ICカードの構成が開示されている。例えば、ICカードは、個人情報など重要な情報を格納する。セキュリティを確保するために、ICカードに格納される重要な情報は暗号化され、またICカードユーザに対して認証を要求する。
しかし、ICカードに供給される電源やクロックにノイズを加えたり、ICチップ自体に光を印加することにより、CPUが誤作動することがあり、このような誤動作を意図的に引き起こさせようとする不正行為対策が望まれている。これに対して、LSI自体にノイズの影響を除去するフィルタを搭載するといった対策が講じられているものもある。しかし、それだけでCPUの誤動作を十分に防ぐことはできない。
また、特許文献1には、誤動作を検出し、誤動作の種類に応じて適切に処理を継続もしくは停止する技術が開示されている。
ISO/IEC 7816-1part1,2 特開2005−285133
ISO/IEC 7816-1part1,2
上記したように、カード動作中に供給電源やクロックにノイズを加えたり、ICチップ内の回路に光を印加することで、CPUの命令がジャンプし、不正な処理や出力をする可能性がある。上記した従来技術だけでCPUの誤動作を十分に防ぐことはできない。また、誤動作検出のアルゴリズムが見破られてしまうと、不正を許すことになる。
この発明の目的は、上記の問題を解決するためになされたものであり、不正防止に優れた情報記憶媒体を提供することにある。
この発明の情報記憶媒体は、以下のように構成されている。
この発明の情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、複数のチェックポイントを含むデータ処理ルーチンを記憶する記憶手段と、前記データ処理ルーチンに従い前記命令に対応する処理を実行するとともに、前記データ処理ルーチンに含まれる前記複数のチェックポイントの経由に対応して値が変化する同一値のチェックフラグを複数格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備えている。
この発明の情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、少なくとも一つのチェックポイントを含むデータ処理ルーチンを複数記憶する記憶手段と、前記複数のデータ処理ルーチンに従い前記命令に対応する処理を実行するとともに、夫々のデータ処理ルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備えている。
この発明の情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、少なくとも一つのチェックポイントを含むサブルーチン、及び前記サブルーチンを含み且つ少なくとも一つのチェックポイントを含むメインルーチンを記憶する記憶手段と、前記サブルーチン及びメインルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記サブルーチン及びメインルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備えている。
この発明の情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、ループ処理を含むデータ処理ルーチンを記憶する記憶手段と、前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、このデータ処理に含まれる前記ループ処理の回数に応じて所定の規則に従い変化するループ処理回数値を格納し、ループ処理回数値に基づきデータ処理の正当性を確認するデータ処理手段とを備えている。
この発明の情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、ループ処理を含むデータ処理ルーチンを記憶する記憶手段と、前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記ループ処理に含まれるチェックポイントの経由に対応して値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備えている。
この発明の情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、最下層のサブルーチン、前記最下層のサブルーチンを含む中層のサブルーチン、及び前記中層のサブルーチンを含むメインルーチンを記憶する記憶手段と、前記メインルーチン、前記中層のサブルーチン、及び前記最下層のサブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記最下層のサブルーチンのコールにより値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備えている。
この発明の情報記憶媒体は、モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、前記モジュールは、外部装置からの命令を受信する通信手段と、複数のサブルーチン及びこれら複数のサブルーチンを含むメインルーチンを記憶する記憶手段と、前記メインルーチン及び前記サブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記複数のサブルーチンの夫々のコールにより値が変化する複数のチェックフラグを格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段とを備えている。
本発明によれば、不正防止に優れた情報記憶媒体を提供できる。
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本実施形態に係る情報記憶媒体の概観を示す図である。図1に示すように、情報記憶媒体はカード本体2により構成され、カード本体2はICチップ1(モジュール)を備えている。
図2は、ICチップ1の概略構成を示す図である。図2に示すように、CPU3、RAM4、ROM5、EEPROM6、I/O7、コプロセッサ8、及びデータバス9を備えている。
ROM5は、ICカードの各種プログラム(データ処理ルーチン、サブルーチン、メインルーチン)を格納する。CPU3は、ROM5に格納されている各種プログラムを実行し、各種プログラムが正しく実行されたか否かをチェックする。CPU3による動作チェックの詳細は後述する。RAM4及びEEPROM6は、CPU3による各種プログラム実行時に必要なデータを格納する。I/O7は、ICカードリーダライタなどの外部装置からコマンドを受け取り、また処理結果をレスポンスとして出力する。データバス9は、CPU3、RAM4、ROM5、EEPROM6、I/O7、及びコプロセッサ8の間でデータを転送するためのバスである。
ICカードは、個人情報など重要な情報を格納する。セキュリティを確保するために、ICカードに格納される重要な情報は暗号化され、またICカードユーザに対して認証を要求する。しかし、ICカードに供給される電力やクロックにノイズを加えたり、ICチップ自体に光を印加することにより、CPUが誤作動することがある。
そのために、本実施形態のICカードは、ソフトウェア側で、本来の処理が正しく行われているか(外乱によりCPUの命令が不正に飛ばされていないか)を確認する。例えば、データ処理ルーチンの各所にチェックポイントを設け、チェックポイントに対応するチェックフラグを格納し、データ処理の途中(随時)もしくはデータ処理の最後にチェックフラグをチェックし、本来の処理が正しく行なわれていることを確認した上で処理結果を出力する。また、チェックポイントの配置及びチェックフラグを示す値(データ)に工夫を凝らすことにより、データ処理の信頼性をより強固なものにすることができる。
以下、具体例を挙げて説明する。
1.ICカードのROM5は、複数のチェックポイントを含むデータ処理ルーチンを格納しており、I/O7は、外部装置からの命令を受信し、CPU3は、データ処理ルーチンに従って外部装置からの命令に対応するデータ処理を実行する。ここで、CPU3は、本来の正しいデータ処理ルーチンに従ってデータ処理が実行されているかを確認する。つまり、CPU3は、データ処理の進行に応じて(チェックポイントの経由に対応して)値が変化するチェックフラグを格納し、データ処理の途中又は最後でそのチェックフラグの値が期待値と一致するかどうかを確認し、一致することを条件として処理結果を出力する。
さらに、以下により、データ処理の信頼性をより強固なものにする。
1−1.データ処理ルーチンにおけるチェックポイントを一箇所ではなく、複数箇所に分散配置する。これら複数のチェックポイントの経由に対応して値が変化する同一値のチェックフラグを複数格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認する。つまり、複数のチェックフラグの値が同一になっているか否かをチェックする(ミラーリング)。
1−2.データ処理ルーチンの処理内容毎にチェックポイントを設ける。夫々のデータ処理ルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認する。
1−3.サブルーチン及びサブルーチンを含むメインルーチンの夫々にチェックポイントを設ける。夫々のルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認する。
1−4.チェックポイントの経由に対応して、チェックフラグの値をインクリメントもしくはデクリメントさせることで、チェックフラグを増減させ、最終的にチェックフラグの値の合計値から、データ処理の信憑性を確認する。或いは、チェックポイントの経由に対応して、1以外の倍数値で更新されるチェックフラグを格納する。例えば、倍数に限らず一般的な数列で更新されるチェックフラグを格納するようにしてもよい。
1−5.或いは、チェックポイントの経由に対応して、ランダムに選ばれた固定値(事前にテーブル等により準備された値)で更新されるチェックフラグを格納する。
1−5.或いは、チェックポイントの経由に対応して、静的な乱数ではなく、データ処理の進行に応じて毎回変動するような動的な乱数値で更新されるチェックフラグを格納する。
1−6.チェックポイントの経由に対応して、チェックフラグを更新し、データ処理の最後に全てのチェックフラグを確認する。或いは、チェックポイントの経由に対応して、先にチェックフラグを確認した後にチェックフラグを更新する。
2.ICカードのROM5は、ループ処理を含むデータ処理ルーチンを格納しており、I/O7は、外部装置からの命令を受信し、CPU3は、データ処理ルーチンに従って外部装置からの命令に対応するデータ処理を実行する。また、CPU3は、ループ処理の実行に応じて、ループ処理のカウント値をインクリメント、デクリメントする。
さらに、以下により、データ処理の信頼性をより強固なものにする。
2−1.ループ処理の実行に応じて(ループ処理の回数に応じて)、ループ処理の回数値を単にインクリメント、デクリメントするのではなく、所定の規則に従い変化するループ処理回数値を格納し、ループ処理回数値に基づきデータ処理の正当性を確認する。例えば、ループ処理の回数に応じて、1以外の倍数値で更新されるループ処理回数値を格納する。
2−2.複数の数列をテーブルとして持っておき、毎回違う数列を選択することにより、ループ処理の回数に応じて、選択される数列で更新されるループ処理回数値を格納する。
2−3.複数の変数をテーブルとして持っておき、毎回違う変数を選択することにより、ループ処理の回数に応じて、選択される数列で更新されるループ処理回数値を格納する。
2−4.2−3の条件に対して、2−1または2−2、もしくは2−1と2−2の両方の機能を持たせる。
3.ICカードのROM5は、データ処理ルーチンを格納しており、I/O7は、外部装置からの命令を受信し、CPU3は、データ処理ルーチンに従って外部装置からの命令に対応するデータ処理を実行する。ここで、CPU3は、階層型のサブルーチンコールで最下層のサブルーチンまで正しく処理を行ったかどうかをコールした最上位部分で確認する。
3−1.最下層のサブルーチンのコールにより値が変化するチェックフラグを格納し、このチェックフラグに基づきデータ処理の正当性を確認する。例えば、最下層のサブルーチン、この最下層のサブルーチンを含む中層のサブルーチン、及びこの中層のサブルーチンを含むメインルーチンを定義し、最下層のサブルーチンのコールにより値が変化するチェックフラグを格納し、このチェックフラグに基づきデータ処理の正当性を確認する。
3−2.複数のサブルーチンの夫々のコールにより値が変化する複数のチェックフラグを格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認する。つまり、全てのサブルーチンがコールされたか否かがチェック可能となる(コールされたサブルーチンとコールされていないサブルーチンが識別可能となる)。
3−3.チェックフラグの値を、複数箇所に分散させて格納する(ミラーリング)。つまり、一つのサブルーチンのコールにより値が変化する同一値のチェックフラグを複数格納し、格納された同一値のチェックフラグに基づきデータ処理の正当性を確認する。
3−4.使用するサブルーチンコール群毎にチェックフラグを別にし、格納場所を変える。
3−5.サブルーチンのコールに対応して、単なるインクリメントやデクリメントで更新される値のチェックフラグではなく、1以外の倍数値(倍数に限らず一般的な数列)で更新されるチェックフラグを格納する。
3−6.サブルーチンのコールに対応して、ランダムに選ばれた固定値(事前にテーブルか何かで準備しておいたような値)で更新されるチェックフラグを格納する。
3−7.サブルーチンのコールに対応して、静的な乱数ではなく、カードの処理毎に毎回変動するような動的な乱数値で更新されるチェックフラグを格納する。
3−8.サブルーチンのコールに対応して、スタックポインタの値もしくはその一部で更新されるチェックフラグを格納する。
以下、図3〜図5に示すフローチャートを参照して、チェックフラグの運用例を説明する。
図3に示すように、カード本来の処理フローの中の重要な部分にチェックポイント処理を入れる。メインルーチンにおけるチェックポイント#1(101)、チェックポイント#2(102)にて、RAM4に確保された1バイトのチェックフラグを更新(例えばインクリメントもしくはデクリメント)する。同様に、サブルーチンにおけるチェックポイント#3(105)、チェックポイント#4(106)にて、RAM4に確保された1バイトのチェックフラグを更新(例えばインクリメントもしくはデクリメント)する。
メインルーチンの最後のチェックポイント#LAST(104)にて、チェックフラグの値を確認する。本来の処理ルートを通っていれば、チェックフラグの値と期待値とが一致し、本来の処理ルートを通っていなければ、チェックフラグの値と期待値とが一致しない。一致しない場合は、エラーを返したり、CPU3の処理を停止したりする。
ここで、上記したチェックフラグを複数箇所に分散格納するようにしてもよい。つまり、RAM4にチェックフラグを複数置くようにしてもよいし、レジスタ、EEPROM6など別メモリに同時に格納するようにしてもよい。また、チェックポイント処理を複数にわけ(モジュールごとなど)、それぞれのチェックフラグを別の領域に格納するようにしてもよい。さらに、チェックフラグの値を単にインクリメントもしくはデクリメントするのではなく、チェックフラグの値を何らかの倍数値で増減させるようにしてもよい。また、上記の通り、最後のチェックポイント#LAST(104)にて、チェックフラグのチェックを行ったが、各チェックポイント#1(101)、#2(102)、#3(103)、#4(104)でチェックするようにしてもよい。その場合は、各チェックポイントで期待値が必要になるが、この場合、チェックフラグを規則的に変化させるのではなく、ある決まった不規則な値を持たせることで、より強固なチェックができる。またこの不規則な値を固定にせず、乱数値を用いて、毎回変化させるようにしてもよい。
図4に示すように、ループ処理中にチェックポイント(203)を配置する。ループ処理回数に応じて(チェックポイントの経由に応じて)、チェックフラグの値を更新(例えばインクリメントもしくはデクリメント)する。或いは、チェックポイントの値を1以外の倍数値で増減させる。これによりループ処理の内部で、チェックポイントの値が設定どおりの値の倍数になっているかどうかチェックし、チェックポイントの値が正しいか否か確認する。またループ処理毎にこの増減値を毎回変化させることも有効である。さらに増減値の変数を一つではなく、複数持つことでループ回数の改ざんをより強固に回避できる。複数の変数に対して、上記の方法を組み合わせることもできる。
図5に示すように、最上位のメインルーチン(301〜303)、中層のサブルーチン(304)、最下層のサブルーチン(305)が存在するとする。最下層のサブルーチンのコールに対応して(最下層のサブルーチンのチェックポイントAにおいて)、専用のチェックフラグが格納される。最上位のメインルーチンに戻った後(最上位のメインルーチンのチェックポイントBにおいて)、専用のチェックフラグをチェックし、最下層のサブルーチンがコールされたか否かをチェックする。
或いは、複数のサブルーチンの夫々に対してチェックポイントを持たせ、これら複数のサブルーチンの夫々がコールされることに対応してチェックフラグの値を変化させる。最上位のメインルーチンに戻った後、チェックフラグの値をチェックし、期待値と一致するかチェックする。さらに、チェックフラグの格納場所を一箇所ではなく、複数箇所にするようにしてもよい。またこのような連続したサブルーチンコール群ごとに異なるチェックフラグを別々に用意するようにしてもよい。さらにこのチェックフラグをインクリメント、デクリメントで増減させるのではなく、何らかの別の規則的な値にするようにしてもよい。または、規則的な値ではなく不規則な値を用いるようにしてもよい。最下層のモジュールまで行ったかどうかの確認をチェックフラグではなく、スタックポインタの値で代用するようにしてもよい。
以下に、本実施形態をまとめる。
(1)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、外部からの要求を満たす結果を求めるための正しい処理フローに従って処理したかを確認するために、処理フローの各所にチェックポイント処理部を持ち、そのチェックポイント処理部で処理フローの正当性を確認するためのチェックフラグの値を変化させ、処理の最後でそのチェックフラグの最終結果を確認し処理の正当性を確認する機能を持つICカードにおいて、チェックフラグを複数個所に分散格納(ミラーリング)する。
(2)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、外部からの要求を満たす結果を求めるための正しい処理フローに従って処理したかを確認するために、処理フローの各所にチェックポイント処理部を持ち、そのチェックポイント処理部で処理フローの正当性を確認するためのチェックフラグの値を変化させ、処理の最後でそのチェックフラグの最終結果を確認し処理の正当性を確認する機能を持つICカードにおいて、チェックフラグをカードの処理全体で1つではなく、処理内容によって個別に持ち、それぞれを別領域に格納する。
(3)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、外部からの要求を満たす結果を求めるための正しい処理フローに従って処理したかを確認するために、処理フローの各所にチェックポイント処理部を持ち、そのチェックポイント処理部で処理フローの正当性を確認するためのチェックフラグの値を変化させ、処理の最後でそのチェックフラグの最終結果を確認し処理の正当性を確認する機能を持つICカードにおいて、チェックフラグの値の増減(変化)値としてインクリメント、デクリメントだけではなく、1以外の倍数(倍数に限らず一般的な数列)を用いる。
(4)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、外部からの要求を満たす結果を求めるための正しい処理フローに従って処理したかを確認するために、処理フローの各所にチェックポイント処理部を持ち、そのチェックポイント処理部で処理フローの正当性を確認するためのチェックフラグの値を変化させ、処理の最後でそのチェックフラグの最終結果を確認し処理の正当性を確認する機能を持つICカードにおいて、チェックフラグの値の増減(変化)値を事前にランダムに選ばれ、カード内部に保持された固定値(事前にテーブルか何かで準備しておいたような値)を用いる。
(5)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、外部からの要求を満たす結果を求めるための正しい処理フローに従って処理したかを確認するために、処理フローの各所にチェックポイント処理部を持ち、そのチェックポイント処理部で処理フローの正当性を確認するためのチェックフラグの値を変化させ、処理の最後でそのチェックフラグの最終結果を確認し処理の正当性を確認する機能を持つICカードにおいて、チェックフラグの値の増減(変化)値をカードの処理ごとに毎回変動させる。
(6)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、外部からの要求を満たす結果を求めるための正しい処理フローに従って処理したかを確認するために、処理フローの各所にチェックポイント処理部を持ち、そのチェックポイント処理部で処理フローの正当性を確認するためのチェックフラグの値を変化させ、処理の最後でそのチェックフラグの最終結果を確認し処理の正当性を確認する機能を持つICカードにおいて、チェックポイント処理部でチェックフラグの値を変化させるだけでなく、チェックフラグの値の確認をも行い、必要に応じてエラー処理を行う。
(7)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、繰り返し処理を行うためのループ処理の回数カウント用増減値として、インクリメント、デクリメントだけなく、1以外の倍数値(倍数に限らず一般的な数列)を用いる。
(8)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、繰り返し処理を行うためのループ処理の回数カウント用増減値を、毎回同じではなく、事前にカード内部に保持された複数の数列から選択することにより毎回違う値を利用する。
(9)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、繰り返し処理を行うためのループ処理の回数カウント用増減のための変数を複数持ち、すべての変数で所定の回数を満たすことで、ループ処理を終える。
(10)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、繰り返し処理を行うためのループ処理内部に、ループ回数の正当性を確認するためのチェックフラグを変化させるチェックポイント処理部を持ち、最終的にループ処理の終了後に、正しい回数だけループ処理がされたかをカード内部に保持されたチェックフラグの値で確認する。
(11)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、サブルーチンコールが入れ子構造になっている処理部に対して、最下層のサブルーチンまで正しく処理が行われたかを確認するために、最下層のサブルーチン内に当該サブルーチンがコールされたことを確認するためのチェックフラグを変化させるチェックポイント処理部を持ち、最上位の処理で当該チェックフラグの値を確認する機能を有する。
(12)内部にデータを保持して、外部からの命令に応じて処理を実施し、結果を出力するICカードにおいて、サブルーチンコールが入れ子構造になっている処理部に対して、最下層のサブルーチンまで正しく処理が行われたかを確認するために、各階層のサブルーチン内に各サブルーチンがコールされたことを確認するためのチェックフラグを変化させるチェックポイント処理部を持ち、最上位の処理で最終的なチェックフラグの値を確認する機能を有する。
(13)上記(11)もしくは(12)に記載のICカードにおいて、チェックフラグの値の格納場所を複数個所にわけ、ミラーリングする。
(14)上記(11)もしくは(12)に記載のICカードにおいて、階層型のサブルーチン群毎に別々のチェックフラグを持ち、その格納場所を別々に分ける。
(15)上記(11)もしくは(12)に記載のICカードにおいて、チェックフラグの値の増減(変化)値として、インクリメント、デクリメントだけではなく、1以外の倍数(倍数に限らず一般的な数列)を用いる。
(16)上記(11)もしくは(12)に記載のICカードにおいて、チェックフラグの値の増減(変化)値を事前にランダムに選ばれ、カード内部に保持された固定値(事前にテーブルか何かで準備しておいたような値)を用いる。
(17)上記(11)もしくは(12)に記載のICカードにおいて、チェックフラグの値の増減(変化)値をカードの処理ごとに毎回変動させる。
(18)上記(11)に記載のICカードにおいて、チェックフラグの値の増減(変化)値として、スタックポインタの値もしくはその一部を利用する。
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
1…ICチップ、2…カード本体、3…CPU、4…RAM、5…ROM、6…EEPROM、7…I/O、8…コプロセッサ、9…データバス
Claims (19)
- モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置からの命令を受信する通信手段と、
複数のチェックポイントを含むデータ処理ルーチンを記憶する記憶手段と、
前記データ処理ルーチンに従い前記命令に対応する処理を実行するとともに、前記データ処理ルーチンに含まれる前記複数のチェックポイントの経由に対応して値が変化する同一値のチェックフラグを複数格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
を備えたことを特徴とする情報記憶媒体。 - モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置からの命令を受信する通信手段と、
少なくとも一つのチェックポイントを含むデータ処理ルーチンを複数記憶する記憶手段と、
前記複数のデータ処理ルーチンに従い前記命令に対応する処理を実行するとともに、夫々のデータ処理ルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
を備えたことを特徴とする情報記憶媒体。 - モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置からの命令を受信する通信手段と、
少なくとも一つのチェックポイントを含むサブルーチン、及び前記サブルーチンを含み且つ少なくとも一つのチェックポイントを含むメインルーチンを記憶する記憶手段と、
前記サブルーチン及びメインルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記サブルーチン及びメインルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
を備えたことを特徴とする情報記憶媒体。 - 前記データ処理手段は、前記チェックポイントの経由に対応して、1以外の倍数値で更新される前記チェックフラグを格納することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
- 前記データ処理手段は、前記チェックポイントの経由に対応して、予め保持されたランダムな値で更新される前記チェックフラグを格納することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
- 前記データ処理手段は、前記チェックポイントの経由に対応して、データ処理回数に応じて変化する規則に従った値で更新される前記チェックフラグを格納することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
- 前記データ処理手段は、データ処理の正当性が確認できない場合に、エラー処理を実行することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
- モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置からの命令を受信する通信手段と、
ループ処理を含むデータ処理ルーチンを記憶する記憶手段と、
前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、このデータ処理に含まれる前記ループ処理の回数に応じて所定の規則に従い変化するループ処理回数値を格納し、ループ処理回数値に基づきデータ処理の正当性を確認するデータ処理手段と、
を備えたことを特徴とする情報記憶媒体。 - 前記データ処理手段は、前記ループ処理の回数に応じて、1以外の倍数値で更新されるループ処理回数値を格納することを特徴とする請求項8に記載の情報記憶媒体。
- 前記データ処理手段は、前記ループ処理の回数に応じて、予め保持された複数の数列から選択される数列で更新されるループ処理回数値を格納することを特徴とする請求項8に記載の情報記憶媒体。
- 前記データ処理手段は、前記ループ処理の回数に応じて、予め保持された複数の変数から選択される変数で更新されるループ処理回数値を格納することを特徴とする請求項8に記載の情報記憶媒体。
- モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置からの命令を受信する通信手段と、
ループ処理を含むデータ処理ルーチンを記憶する記憶手段と、
前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記ループ処理に含まれるチェックポイントの経由に対応して値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
を備えたことを特徴とする情報記憶媒体。 - モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置からの命令を受信する通信手段と、
最下層のサブルーチン、前記最下層のサブルーチンを含む中層のサブルーチン、及び前記中層のサブルーチンを含むメインルーチンを記憶する記憶手段と、
前記メインルーチン、前記中層のサブルーチン、及び前記最下層のサブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記最下層のサブルーチンのコールにより値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
を備えたことを特徴とする情報記憶媒体。 - モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
前記モジュールは、
外部装置からの命令を受信する通信手段と、
複数のサブルーチン及びこれら複数のサブルーチンを含むメインルーチンを記憶する記憶手段と、
前記メインルーチン及び前記サブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記複数のサブルーチンの夫々のコールにより値が変化する複数のチェックフラグを格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
を備えたことを特徴とする情報記憶媒体。 - 前記データ処理手段は、一つのサブルーチンのコールにより値が変化する同一値のチェックフラグを複数格納し、格納された同一値のチェックフラグに基づきデータ処理の正当性を確認することを特徴とする請求項14に記載の情報記憶媒体。
- 前記データ処理手段は、サブルーチン群毎に異なるチェックフラグを割り当て、これらチェックフラグを異なる格納場所に格納することを特徴とする請求項14に記載の情報記憶媒体。
- 前記データ処理手段は、各サブルーチンのコールに対応して、1以外の倍数値で更新される前記チェックフラグを格納することを特徴とする請求項13又は14に記載の情報記憶媒体。
- 前記データ処理手段は、各サブルーチンのコールに対応して、予め保持されたランダムな値で示される前記チェックフラグを格納することを特徴とする請求項12又は13に記載の情報記憶媒体。
- 前記データ処理手段は、データ処理回数に応じて変化する規則に従った値で更新される前記チェックフラグを格納することを特徴とする請求項12又は13に記載の情報記憶媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007086137A JP2008243097A (ja) | 2007-03-29 | 2007-03-29 | 情報記憶媒体 |
PCT/JP2008/053427 WO2008126491A1 (ja) | 2007-03-29 | 2008-02-27 | 情報記憶媒体 |
US12/593,056 US8469278B2 (en) | 2007-03-29 | 2008-02-27 | Information storage medium |
EP08712049A EP2131303A1 (en) | 2007-03-29 | 2008-02-27 | Information memory medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007086137A JP2008243097A (ja) | 2007-03-29 | 2007-03-29 | 情報記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008243097A true JP2008243097A (ja) | 2008-10-09 |
Family
ID=39863647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007086137A Pending JP2008243097A (ja) | 2007-03-29 | 2007-03-29 | 情報記憶媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8469278B2 (ja) |
EP (1) | EP2131303A1 (ja) |
JP (1) | JP2008243097A (ja) |
WO (1) | WO2008126491A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008262300A (ja) * | 2007-04-10 | 2008-10-30 | Dainippon Printing Co Ltd | 携帯用セキュリティデバイス |
JP2012048753A (ja) * | 2011-11-24 | 2012-03-08 | Dainippon Printing Co Ltd | 携帯用セキュリティデバイス |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8649820B2 (en) | 2011-11-07 | 2014-02-11 | Blackberry Limited | Universal integrated circuit card apparatus and related methods |
US8862830B2 (en) * | 2012-02-17 | 2014-10-14 | International Business Machines Corporation | Caching data objects on a client side using a prototype chain |
US8936199B2 (en) | 2012-04-13 | 2015-01-20 | Blackberry Limited | UICC apparatus and related methods |
USD703208S1 (en) * | 2012-04-13 | 2014-04-22 | Blackberry Limited | UICC apparatus |
USD701864S1 (en) * | 2012-04-23 | 2014-04-01 | Blackberry Limited | UICC apparatus |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3125070B2 (ja) * | 1990-12-14 | 2001-01-15 | 三菱電機株式会社 | Icカード |
JPH05158745A (ja) * | 1991-12-10 | 1993-06-25 | Nippondenso Co Ltd | プログラム暴走停止装置 |
JPH09160808A (ja) * | 1995-12-08 | 1997-06-20 | Sumitomo Electric Ind Ltd | プログラムの流れ監視装置 |
JP4009437B2 (ja) * | 2001-05-09 | 2007-11-14 | 株式会社ルネサステクノロジ | 情報処理装置 |
DE10156394A1 (de) * | 2001-11-16 | 2003-06-12 | Giesecke & Devrient Gmbh | Kontrollierte Programmausführung durch einen tragbaren Datenträger |
JP2005285133A (ja) | 2005-04-06 | 2005-10-13 | Renesas Technology Corp | 情報処理装置 |
JP2007004456A (ja) * | 2005-06-23 | 2007-01-11 | Toshiba Corp | 携帯可能電子装置及び携帯可能電子装置のデータ出力方法 |
-
2007
- 2007-03-29 JP JP2007086137A patent/JP2008243097A/ja active Pending
-
2008
- 2008-02-27 WO PCT/JP2008/053427 patent/WO2008126491A1/ja active Application Filing
- 2008-02-27 US US12/593,056 patent/US8469278B2/en not_active Expired - Fee Related
- 2008-02-27 EP EP08712049A patent/EP2131303A1/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008262300A (ja) * | 2007-04-10 | 2008-10-30 | Dainippon Printing Co Ltd | 携帯用セキュリティデバイス |
JP2012048753A (ja) * | 2011-11-24 | 2012-03-08 | Dainippon Printing Co Ltd | 携帯用セキュリティデバイス |
Also Published As
Publication number | Publication date |
---|---|
US20100038435A1 (en) | 2010-02-18 |
EP2131303A1 (en) | 2009-12-09 |
WO2008126491A1 (ja) | 2008-10-23 |
US8469278B2 (en) | 2013-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008243097A (ja) | 情報記憶媒体 | |
US7784685B1 (en) | Secure card | |
US7959076B1 (en) | Secure card | |
US8733640B1 (en) | Secure card | |
KR19990014675A (ko) | 가치 전송 시스템 | |
US20070006224A1 (en) | Controlled execution of a program used for a virtual machine on a portable data carrier | |
CN104867009A (zh) | 一种智能卡及其额度控制系统和方法 | |
US20080320597A1 (en) | Smartcard System | |
CN108064383A (zh) | 一种应用程序权限的管控方法、终端及pos终端 | |
US7346578B1 (en) | Electronic cashing card settlement system | |
US20140289874A1 (en) | Integrated circuit (ic) chip and method of verifying data thereof | |
JP6396119B2 (ja) | Icモジュール、icカード、及びicカードの製造方法 | |
US20150080114A1 (en) | Security for electronic wager transactions | |
JP6270005B1 (ja) | 磁気記録カード及び情報照合システム | |
US20070174571A1 (en) | Binding a protected application program to shell code | |
CN105894426A (zh) | 一种基于cpu芯片卡的居民信息共享、存储及管理系统 | |
JP7415770B2 (ja) | 保安検査証発行装置、保安検査証発行方法、および、保安検査証発行プログラム | |
JP6353128B1 (ja) | 自動取引装置 | |
JP5233521B2 (ja) | Icチップ、データ読出し方法、データ読出しプログラム及び記録媒体等 | |
JP5293113B2 (ja) | 半導体装置、半導体装置の制御方法および半導体装置の制御プログラム | |
FI116172B (fi) | Ohjelmien asennus mikropiirille | |
Liu et al. | Metro automatic fare collection system safety and security | |
JP2010224892A (ja) | Icカードの検査発行システム | |
US7681029B1 (en) | Method and device for controlling a portable object life cycle, in particular a smart card | |
JP2004029883A (ja) | 携帯可能媒体 |