JP2008243097A - 情報記憶媒体 - Google Patents

情報記憶媒体 Download PDF

Info

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
Application number
JP2007086137A
Other languages
English (en)
Inventor
Hiroki Tomoe
裕樹 友枝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007086137A priority Critical patent/JP2008243097A/ja
Priority to PCT/JP2008/053427 priority patent/WO2008126491A1/ja
Priority to US12/593,056 priority patent/US8469278B2/en
Priority to EP08712049A priority patent/EP2131303A1/en
Publication of JP2008243097A publication Critical patent/JP2008243097A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/77Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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

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
上記したように、カード動作中に供給電源やクロックにノイズを加えたり、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カードにおいて、チェックフラグの値の増減(変化)値として、スタックポインタの値もしくはその一部を利用する。
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
本実施形態に係る情報記憶媒体の概観を示す図である。 ICチップの概略構成を示す図である。 チェックポイント処理の一例を説明するためのフローチャート。 ループ処理中のチェックポイント処理の一例を説明するためのフローチャート。 入れ子構造のサブルーチンにおけるチェックポイント処理の一例を説明するためのフローチャート。
符号の説明
1…ICチップ、2…カード本体、3…CPU、4…RAM、5…ROM、6…EEPROM、7…I/O、8…コプロセッサ、9…データバス

Claims (19)

  1. モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
    前記モジュールは、
    外部装置からの命令を受信する通信手段と、
    複数のチェックポイントを含むデータ処理ルーチンを記憶する記憶手段と、
    前記データ処理ルーチンに従い前記命令に対応する処理を実行するとともに、前記データ処理ルーチンに含まれる前記複数のチェックポイントの経由に対応して値が変化する同一値のチェックフラグを複数格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
    を備えたことを特徴とする情報記憶媒体。
  2. モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
    前記モジュールは、
    外部装置からの命令を受信する通信手段と、
    少なくとも一つのチェックポイントを含むデータ処理ルーチンを複数記憶する記憶手段と、
    前記複数のデータ処理ルーチンに従い前記命令に対応する処理を実行するとともに、夫々のデータ処理ルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
    を備えたことを特徴とする情報記憶媒体。
  3. モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
    前記モジュールは、
    外部装置からの命令を受信する通信手段と、
    少なくとも一つのチェックポイントを含むサブルーチン、及び前記サブルーチンを含み且つ少なくとも一つのチェックポイントを含むメインルーチンを記憶する記憶手段と、
    前記サブルーチン及びメインルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記サブルーチン及びメインルーチンに含まれる夫々のチェックポイントの経由に対応して値が変化する夫々のチェックフラグを格納し、格納された夫々のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
    を備えたことを特徴とする情報記憶媒体。
  4. 前記データ処理手段は、前記チェックポイントの経由に対応して、1以外の倍数値で更新される前記チェックフラグを格納することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
  5. 前記データ処理手段は、前記チェックポイントの経由に対応して、予め保持されたランダムな値で更新される前記チェックフラグを格納することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
  6. 前記データ処理手段は、前記チェックポイントの経由に対応して、データ処理回数に応じて変化する規則に従った値で更新される前記チェックフラグを格納することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
  7. 前記データ処理手段は、データ処理の正当性が確認できない場合に、エラー処理を実行することを特徴とする請求項1、2、又は3に記載の情報記憶媒体。
  8. モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
    前記モジュールは、
    外部装置からの命令を受信する通信手段と、
    ループ処理を含むデータ処理ルーチンを記憶する記憶手段と、
    前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、このデータ処理に含まれる前記ループ処理の回数に応じて所定の規則に従い変化するループ処理回数値を格納し、ループ処理回数値に基づきデータ処理の正当性を確認するデータ処理手段と、
    を備えたことを特徴とする情報記憶媒体。
  9. 前記データ処理手段は、前記ループ処理の回数に応じて、1以外の倍数値で更新されるループ処理回数値を格納することを特徴とする請求項8に記載の情報記憶媒体。
  10. 前記データ処理手段は、前記ループ処理の回数に応じて、予め保持された複数の数列から選択される数列で更新されるループ処理回数値を格納することを特徴とする請求項8に記載の情報記憶媒体。
  11. 前記データ処理手段は、前記ループ処理の回数に応じて、予め保持された複数の変数から選択される変数で更新されるループ処理回数値を格納することを特徴とする請求項8に記載の情報記憶媒体。
  12. モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
    前記モジュールは、
    外部装置からの命令を受信する通信手段と、
    ループ処理を含むデータ処理ルーチンを記憶する記憶手段と、
    前記データ処理ルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記ループ処理に含まれるチェックポイントの経由に対応して値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
    を備えたことを特徴とする情報記憶媒体。
  13. モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
    前記モジュールは、
    外部装置からの命令を受信する通信手段と、
    最下層のサブルーチン、前記最下層のサブルーチンを含む中層のサブルーチン、及び前記中層のサブルーチンを含むメインルーチンを記憶する記憶手段と、
    前記メインルーチン、前記中層のサブルーチン、及び前記最下層のサブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記最下層のサブルーチンのコールにより値が変化するチェックフラグを格納し、格納されたチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
    を備えたことを特徴とする情報記憶媒体。
  14. モジュールが埋め込まれたカード本体により構成される情報記憶媒体であって、
    前記モジュールは、
    外部装置からの命令を受信する通信手段と、
    複数のサブルーチン及びこれら複数のサブルーチンを含むメインルーチンを記憶する記憶手段と、
    前記メインルーチン及び前記サブルーチンに従い前記命令に対応するデータ処理を実行するとともに、前記複数のサブルーチンの夫々のコールにより値が変化する複数のチェックフラグを格納し、格納された複数のチェックフラグに基づきデータ処理の正当性を確認するデータ処理手段と、
    を備えたことを特徴とする情報記憶媒体。
  15. 前記データ処理手段は、一つのサブルーチンのコールにより値が変化する同一値のチェックフラグを複数格納し、格納された同一値のチェックフラグに基づきデータ処理の正当性を確認することを特徴とする請求項14に記載の情報記憶媒体。
  16. 前記データ処理手段は、サブルーチン群毎に異なるチェックフラグを割り当て、これらチェックフラグを異なる格納場所に格納することを特徴とする請求項14に記載の情報記憶媒体。
  17. 前記データ処理手段は、各サブルーチンのコールに対応して、1以外の倍数値で更新される前記チェックフラグを格納することを特徴とする請求項13又は14に記載の情報記憶媒体。
  18. 前記データ処理手段は、各サブルーチンのコールに対応して、予め保持されたランダムな値で示される前記チェックフラグを格納することを特徴とする請求項12又は13に記載の情報記憶媒体。
  19. 前記データ処理手段は、データ処理回数に応じて変化する規則に従った値で更新される前記チェックフラグを格納することを特徴とする請求項12又は13に記載の情報記憶媒体。
JP2007086137A 2007-03-29 2007-03-29 情報記憶媒体 Pending JP2008243097A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 携帯可能電子装置及び携帯可能電子装置のデータ出力方法

Cited By (2)

* Cited by examiner, † Cited by third party
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) 携帯可能媒体