説明

データ処理の方法及び装置

【課題】データ処理のセキュリティーを高める。
【解決手段】データ処理方法は方法の正常な進行を示唆する基準を検査するステップと(E308)と検査結果がネガティブな場合に実行される処理ステップ(E528)を含む。処理ステップ(E320)は非ゼロ時間の中間ステップ(E312,E314)を介して検査ステップ(E308)から分離されている。中間ステップ(E312,E314)及び/または処理ステップ(E320)は検査結果がポジティブである場合に起動され、少なくとも1つの共通特性を有する少なくとも1つの動作手段(E314)を含む。この方法に対応する装置をも提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は例えば超小形回路カード内で行われるデータ処理方法に係わる。
【背景技術】
【0002】
状況によっては、データ処理装置の機能のセキュリティを確保することが必要となる場合がある。特に、(例えば超小形回路カードのような)電子装置が金額を表すデータを含んでおり、従って、所定のプロトコルに従わなければ変更できない金銭分野の場合である。所持者の身分を証明できる電子エレメントも同様であり、この場合にも、偽造や盗用を防止するため、機能のセキュリティを確保しなければならない。
【0003】
このような電子エレメントの例として、銀行カード、電話用のSIM(英語Subscriber Identity Module-加入者識別モジュールの頭文字)カード、電子パスポート、IBM4758タイプのPCMCIAカードのようなHSM(英語Hardware Security Module-ハードウェアセキュリティモジュールの頭文字)-タイプのセキュリティ・モジュールなどがあるが、これらには限らない。
【0004】
機能のセキュリティを高めるため、予想される種々の攻撃に対する防衛が試みられる。防御の対象となる主な攻撃のタイプはいわゆる障害発生による攻撃であり、悪意の人物がデータ処理装置を正常な機能から、従って、セキュリティを保障された状態から逸脱させようとする攻撃である。
【0005】
この種の攻撃をかわすため、現在採用されているデータ処理方法は障害発生による攻撃が原因と考えられる異常を検知するため、方法の正常な進行を検査するステップを設ける。異常が検知されると(即ち、正常な進行が立証されないと)、直ちに異常の処理、いわゆるセキュリティ処理が行われる。このような処理は事実上、攻撃をかわすための対応策、例えば、データ処理装置の以後の機能を一切禁止するための対策である。
【0006】
異常が存在するままで処理を続行すれば、データ処理装置の機能を、従ってそのセキュリティを低下させることは明らかであるから、異常処理は検知の直後に行われるものと考えられている。
【0007】
しかし、発明者の所見によれば、このような従来の方法は異常検知の時点に関する情報をアタッカーに与えることになる。実際には、異常検知の瞬間そのものに外部からアクセスすることは困難である。しかし、アタッカーは、例えば、異常処理が外部装置に作用する場合、装置の電力消費(または電磁放射)を観察及び分析することによって異常処理が実施される瞬間にアクセスできると考えられる。従来の方法では、この処理は異常検知の直後に実施されるから、アタッカーは異常検知の瞬間を比較的容易に推測することができる。
【0008】
従来のシステムにおける異常の検知及びその処理的にアクセスすることによって、アタッカーはデータ処理装置の機能に関する補足的な情報にアクセスできるから、方法のセキュリティにとって明らかに有害である。
【発明の概要】
【0009】
この問題を克服してデータ処理方法のセキュリティを高めるため、本発明は方法の正常な進行を示唆する基準を検査するステップと、検査結果がネガティブな場合に行われる処理ステップを含み、処理ステップが非ゼロ時間の中間ステップを介して検査ステップから分離されるデータ処理方法を提案する。
【0010】
検査結果がポジティブである場合に第1動作が実施され、中間ステップが第1動作と共通の少なくとも1つの第1特性を有する少なくとも1つの第2動作の実施を含む。
【0011】
従って、方法の機能を知ろうとするアタッカーは正常な機能(検査結果がポジティブな場合)を異常な場合の機能(即ち、検査結果がネガティブな場合)から区別することが困難になる。
【0012】
第2動作は、例えば、第1動作とは異なる。従って、システムのセキュリティという点で、第2動作が含むリスクは少なく、むしろ皆無である。
【0013】
検査結果がポジティブである場合に第3動作が実施される場合、処理ステップは第3動作と共通の少なくとも1つの第2特性を有する少なくとも1つの第4動作の実施を含むことができる。
【0014】
従って、アタッカーは機能モードを識別できない。即ち、異常処理をかわすことができない。
【0015】
方法が電子装置(10)内で実施される場合、共通の第1または第2特性はそれぞれ第1、第3動作において、及びそれぞれ第2、第4動作によって生ずる装置の、例えば、電力消費または電磁放射である。従って、アタッカーは電子装置の電気的及び/または電磁的挙動によって正常機能モードを異常機能モードから区別することができない。
【0016】
共通の第1または第2特性がそれぞれ第1、第3動作において、及び第2、第4動作において実行されるインストラクション数であってもよく、この場合、前記動作の持続時間によって機能モードを識別することは不可能である。
【0017】
共通の第1または第2特性はそれぞれ第1、第3動作によって、及びそれぞれ第2、第4動作によって実行される命令のタイプであってもよく、この場合、電気的及び/または電磁的シグネチャを酷似させることができる。
【0018】
共通の第1または第2特性はそれぞれ第1、第3動作によって、及びそれぞれ第2、第4動作によって処理されるデータのタイプであってもよく、この場合にもシグネチャを酷似させることができる。
【0019】
第1、第3動作がそれぞれ1つのメモリの第1ゾーンへのアクセスを含む場合、第2、第4動作がそれぞれ前記メモリの第1ゾーンとは異なる第2ゾーンへのアクセスを含むことができる。実際には異なるコンテキストで行われるにもかかわらず、上記2つのモードにおいてデータ処理がそっくりに見える。
【0020】
他の可能性として、共通の第1または第2特性は外部装置との通信であり、外部装置としては、例えば、暗号プロセッサ、(例えば、半導体書換え型メモリのような)メモリ、またはユーザ端末が考えられる。このような外部装置との通信はアタッカーによって観察されるから、この共通特性は特にアタッカーを誤らせ易い。
【0021】
第1動作はセキュリティ保持されたステップ、例えば、暗号化アルゴリズムを含むことができ、これによって障害発生による攻撃から保護される。
【0022】
処理ステップは、例えば、物理的メモリへのロックデータの書込みを含む。
【0023】
特に有益な可能性として、方法の進行が正常である限り、ロックデータの書込みは物理的メモリへのデータの書込みと同時に行われる。
【0024】
1つの実施態様として、データは金額を表す。従って、アタッカーはデータが表す金額に対する操作装置がロックされていることを先験的に見抜くことができない。
【0025】
例えば、シグネチュアに誤りがあるか、または異常が検知されれば、基準はネガティブである。
【0026】
攻撃が検知された場合にも、基準はネガティブである。この点において、本発明は特に有益である。
【0027】
機能エラーが検知された場合にも、基準はネガティブである。機能エラーの場合に行われる処理は稀であるが、特にこのような機能エラーは攻撃されている場合を除いて極めて稀であり、従って攻撃が存在する可能性を示唆するから、システムのセキュリティを高める上で有益である。
【0028】
考えられる1つの特徴として、中間ステップは方法の実行に際して、例えば、確率的に決定される少なくとも1つの命令を含む。システムの機能をアタッカーが理解することは一段と難しくなる。
【0029】
1つの実施態様として、超小形回路カードはマイクロプロセッサを含み、方法はこのマイクロプロセッサによって実施される。
【0030】
本発明は装置の機能の正常性を示唆する基準を検査する手段と、検査結果がネガティブである場合に起動される処理手段と、検査手段の起動を処理手段の起動から非ゼロ時間だけ分離するための分離手段を含むデータ処理装置をも提供する。
【0031】
1つの実施態様として、検査結果がポジティブである場合に第1動作手段が起動され、分離手段は第1動作手段と共通の少なくとも1つの第1特性を有する。
【0032】
他の実施態様として、検査結果がポジティブである場合に第2動作手段が起動され、処理手段は第2動作手段と共通の少なくとも1つの第2特性を有する。
【0033】
この装置は、例えば、超小形回路カードである。
【0034】
本発明はまた、それ自体オリジナルな態様で、方法の正常な進行を示唆する基準を検査するステップと、検査結果がネガティブな場合に実行される処理ステップを含むデータ処理方法であって、検査結果がポジティブである場合に第1動作が実施され、処理ステップが第1動作と共通の第1特性を有する少なくとも1つの第2動作を含むことを特徴とするデータ処理方法を提供する。
【0035】
この範囲内において、方法が正常に進行している場合に第2動作が第1動作と同時に行われるように構成することもできる。
【0036】
この場合、第1動作は、例えば、物理的メモリへのデータ書込みであり、第2動作は、例えば、この物理的メモリへのロックデータの書込みである。
【0037】
この方法はまた、上記方法に伴う特性及びこれらの特性から得られる利点をも有する。さらにまた、この方法の種々のステップを実行するための手段を含む装置も、方法と同じレベルの発明として提供される。
【図面の簡単な説明】
【0038】
【図1】超小形回路カードとしての実施態様を構成する主要素子を簡略化して示す図である。
【図2】図1の超小形回路カードの外観を示す図である。
【図3】本発明の第1実施態様に従って実行される方法を示す図である。
【図4】本発明の第2実施態様に従って実行される方法を示す図である。
【図5】本発明の第3実施態様に従って実行される方法を示す図である。
【発明を実施するための形態】
【0039】
主要素子を図1に示す超小形回路カード10はランダムアクセスメモリ(または英語Random Access Memoryの頭文字RAM)4と接続する一方、例えば電気的消去再書込み可能な読出し専用メモリ(または英語Electrically Erasable Programable Read Only Memoryの頭文字EEPROM)のような書換え型半導体メモリ6とも接続するマイクロプロセッサ2を含む。書換え型半導体メモリ6に代えてフラッシュメモリを使用することもできる。
図1ではメモリ4、6がそれぞれ別々のバスを介してマイクロプロセッサ2と接続している。但し、共通のバスを介して接続することも可能である。
【0040】
超小形回路カード10はユーザ端末との通信用インターフェース8をも含み、このインターフェース8はここでは接点の形態で実施されており、その1つは例えばマイクロプロセッサ2との双方向関係を可能にする。これにより、インターフェース8はマイクロプロセッサ2と超小形回路カード10が挿入されるユーザ端末との間の双方向通信を可能にする。
【0041】
従って、超小形回路カード10がユーザ端末に挿入されると、マイクロプロセッサ2は‐図示しないが‐例えば読出し専用メモリ(または英語Read-Only Memoryの頭文字ROM)または書換え型メモリ6に記憶されていて、コンピュータプログラムを定義する命令セットに従って超小形回路カード10を機能させる方法を実行する。この方法は大ざっぱにはインターフェース8を介してユーザ端末とデータを交換するステップと、このデータを超小形回路カード10内で処理するステップを含み、厳密には、データ処理に際して、書換え型メモリ6に記憶されているデータ及びランダムアクセスメモリ4に一時的に記憶されているデータを利用する。
【0042】
本発明を実施するこのような方法の例を、図3乃至図5を参照して以下に説明する。
【0043】
図2は極めて薄い直方体の形状に実施された超小形回路カード10の外観を示す。
【0044】
上記接点を備える通信用インターフェース8は図2から明らかなように、超小形回路カード10の表面に矩形の形状を呈している。
【0045】
図3は書換え型メモリ6における読出し方法を示し、この方法は図1に示す超小形回路カード10が、例えば、コンピュータプログラムをマイクロプロセッサ2において実行することによって実施することができる。この方法を本発明の第1実施態様として説明する。
【0046】
このような方法はデータ処理の際に書換え型メモリ(またはEEPROM)6に書き込まれているデータをマイクロプロセッサ2が利用しなければならない場合に採用される。書換え型メモリ6に書き込まれているデータは、データを容易に操作できるランダムアクセスメモリ4へ転送するため、予め読み出されている。
【0047】
図3のステップE302に示すように、この方法では書換え型メモリ(またはEEPROM)6における読出しを行わねばならないアドレスADRを方法開始時に受信する。
【0048】
ステップE304において、この方法ではエラーフラグSが値0に初期化される。
【0049】
変数が正しく初期化されたら、超小形回路カード利用の安全性に関して通常必要とされるシステムの安全な機能を保障するための検査ステップに進む。
【0050】
即ち、ステップE306に進んでチェックサムが検査される。当然のことながら、その他の検査も可能であるが、本発明の開示内容をわかり易くするため、図3には示さなかった。チェックサムを検査するステップE306は、書換え型メモリ6に書き込まれているデータがこれらのデータと連携するソム・ドゥ・コントロールチェックサム(英語圏の用語として「チェックサム」と呼称されることが多い)とコヒーレントであるかどうかを検査するステップである。
【0051】
次いで、ステップE308に進む:チェックサムにエラーがなければ、即ち、チェックサムの検査結果がポジティブなら、正常機能を辿って後述するステップE314に進む。逆に、チェックサムにエラーが検知されたら、即ち、チェックサムの検査結果がネガティブなら、ステップE310に進む。
【0052】
尚、エラーを伴うチェックサムの存在が超小型回路カード機能の異常な進行を示す場合、種々の原因が考えられる:(例えば書換え型メモリ6の内容のエラーのような)機能エラーの場合もあり得るが、障害発生による攻撃の形跡である場合も考えられる。
【0053】
ステップ310において、1つの異常が検知されたことを指示するため、エラーフラグが値1にセットされる。
【0054】
次いでステップE312に進み、方法の開始時点において受信された読出しアドレスADR(上記ステップE302を参照)が、書換え型メモリ6中に位置する「見掛けゾーン」のアドレスに置き換えられる。見掛けゾーンはステップE302において受信されたアドレスとは先験的に異なる記憶域であり;例えば、正常機能であれば(即ち、超小形回路カードが正常に、異常無しに機能している時には)如何なる読出しも行われるはずのないアドレスである。
【0055】
例えば、このような見掛けゾーンは確率的に求められたデータ及び/またはステップE302において受信されたアドレスにおいて読み出す筈だったデータと同じ構造のデータを含む可能性がある。
【0056】
尚、上記ステップE312はステップE308において検知された異常を処理するステップではない:例えば、検知された異常に関するコードの転送でもなく、この異常に関するメッセージの表示でもなく、異常が障害発生による攻撃に起因すると考えられる場合の対応策でもない。
【0057】
(超小形回路カードの機能に異常な進行がある場合、即ち、ステップE306における正常機能の検査結果がネガティブである場合に限ってステップE310のように実施される)ステップE312に続いてステップE314に進むが、ステップE314は上記したように、(ステップE308に関連して述べたようにチェックサムの検査結果がポジティブの場合)超小形回路カードの機能の正常な進行の一部を形成する。
【0058】
ステップE314は書換え型メモリ6のデータをランダムアクセスメモリ4へ転送し、従って、図3に示す方法のうち、初期化及び検査後では最も重要なステップである。
【0059】
正確には、ステップE314では、上記可変ADRによって特定されたアドレスにおいて書換え型メモリ6からの読出しが行われ、ランダムアクセスメモリ4から読出したデータが、データ操作を主な機能とするバッファメモリと呼称されるゾーンに書き込まれる。
【0060】
尚、先行のステップにおいてチェックサムの検査結果がポジティブだった場合、可変ADRは方法開始時に受信された書換え型メモリ6におけるアドレス、即ち、本来読出しの対象となるべきデータを指す。逆に、チェックサムに誤りがあることを検知された場合(即ち、先行のステップにおける検査結果がネガティブであった場合)、可変ADRはステップE312において設定された見掛けゾーンを指し、その結果、ステップE314では、実際にはこの見掛けゾーンのデータをランダムアクセスメモリ4におけるバッファメモリゾーンへ転送されることになり、ステップE302において受信されたアドレスが必要とする読出しは実施されない。
【0061】
このように、ステップE306における検査結果がネガティブであると云うことで機能の異常が検知されると、セキュリティ計画上比較的機密性の高いデータが記憶されている場合が多い書換え型メモリ6中の、正常機能時に想定されるアドレスへのアクセスは行われない。このようにして、検知された異常の原因が障害発生による攻撃である場合、機密性の高いデータがアタッカーによって盗まれるのを防止する。
【0062】
また、ステップE314は機能の異常が検知された後、(異なるデータを対象としながらも)正常機能で進行するから、アタッカーにとっては、例えば電流を測定することによって正常機能のアウトプットを検知することは殆ど不可能である。
【0063】
ステップE314の後、方法はステップE316に進み、エラーフラグSがテストされる。
【0064】
もしエラーフラグSの値がステップE310の結果に相当する1ならセット(即ち、ステップE306においてチェックサム検査結果がネガティブであることから異常が検知された場合)、ステップE320に進み、例えば、書換え型メモリ6にロック(または施錠)データを書き込むことによって既に検知された異常が処理される。
【0065】
書換え型メモリ6へのロックの書込みは超小形回路カード10に今後の使用を完全に阻止するようなデータを書き込むことである。例えば、超小形回路カード10が今後本来のユーザ以外のユーザの端末に挿入されると、超小形回路カード10のマイクロプロセッサ2が書換え型メモリ6中のロックデータの存在を検知し、如何なる処理も、ユーザ端末との情報交換をも行わない。
【0066】
書換え型メモリ6へのロック書込みは障害発生による攻撃に対して特に有効な対策である。従って、検知された異常に対するこの種の処理はこの異常が障害発生に起因する場合、または如何なる異常も直ちに超小形回路カードのロックにつながるようなセキュリティ・レベルが要求される場合に特に有益である。
【0067】
書換え型メモリ6から例えばパスワードのような極秘データを消去すると云う対策も可能である。
【0068】
あるいは、異常を処理するステップとして、(ランダムアクセスメモリ4または書換え型メモリ6に記憶されていて)図3に示す方法の過程で検知された異常を表すフラグをセットしてもよい。この解決法は超小形回路カードのロックには直ちにつながらないが、機能に異常が存在することの形跡を保存することにより、遭遇した問題を分析し、(例えば、他の要素が障害発生による攻撃であるとの仮説を裏付けるなら)分析に続いてカードをロックすることを可能にする。
【0069】
上記ステップE316において、エラーフラグSが値1でない(すなわち、ステップE306の検査結果がポジティブであった)ことを示唆するなら、方法は正常機能に従ってステップE318に進み、上記ランダムアクセスメモリ4におけるバッファメモリゾーンのアドレスが発信されてこの方法が完了する。
【0070】
例えば、この方法が規格ISO 7816に規定されているようなルーチンRead Recordなら、以後のステップにおいてバッファメモリゾーンの内容が発信される。
【0071】
図4は本発明の第2実施態様に従って行われる書換え型メモリ6からの読出し方法を示す。
【0072】
この方法は、例えば、コンピュータプログラムの命令をマイクロプロセッサ2によって実行することで実施される。
【0073】
図3に示した方法と同様に、開始時にステップE402において、書き換え型メモリ6中から読み出さねばならないデータのアドレスADRが受信される。次いでステップE404に進み、読み出すべきファイルのタイプが検査される。
【0074】
ステップE404では、例えば、アドレスADRによって指定されるファイルの頭書が書換え型メモリ6から読み出され、この頭書のデータがこの方法を実施することによって読み出すべきタイプを指定するデータと一致するかどうかが検査される。
【0075】
頭書に指定されているファイルのタイプが読み出すべきファイルのタイプと一致しなければ、ステップE406において、方法の正常な進行から逸れて後述するステップE430に進む。これに反してファイルのタイプが適正であれば、正常機能としてステップE406からステップE408に進む。
【0076】
ステップE408において、ファイルの頭書に規定されている必要なアクセス権がユーザによって提示されたものと比較された上で、書換え型メモリ6からの読出しが許可されるかどうかが検査され、これらの情報にはランダムアクセスメモリ4においてアクセス可能である。
【0077】
ランダムアクセスメモリから読出されるデータに照らして書き換え型メモリ6からの読出しが許可されなければ、このメモリ6へのアクセス可否の検査はネガティブであり、後述するステップE432に進む。
【0078】
逆に、書換え型メモリ6へのアクセスが許可されることがステップE410において判定されると、ステップE412に進み、超小形回路カードの機能の正常な進行を追跡する。
【0079】
このように、ステップE404からステップE410までは超小形回路カードの正常機能の検査を行う。ここに例示する検査以外の検査も実施可能であることは云うまでもない。
【0080】
正常機能に関する種々の検査の結果がポジティブであった場合、上記ステップE412では書き換え型メモリ6中のアドレスADRに記憶されているデータが読み出され、これがランダムアクセスメモリ4に記憶され、後刻、マイクロプロセッサ2によるデータ処理の際にこれを利用できるようにする。
【0081】
従って、このステップは書換え型メモリ6からの反復読出しのためのアクセス及びランダムアクセス4への反復書込みのためのアクセスを可能にする。
【0082】
(書換え型メモリ6からの一定のオクテット数の読出しによって、または、例えば、方法開始時にステップE402において受信された読み出すべき正確なオクテット数の読出しによって)書換え型メモリ6からランダムアクセスメモリ4へのデータ転送が行われたら、読み出されたデータの正確さを検査するステップE414に進む。この検査のため、例えば、書換え型メモリ6から改めてデータが読み出され、このデータが先にステップE412においてランダムアクセスメモリ4に記憶された対応のデータと比較される。
【0083】
比較の際にエラーが検知されたら、ステップE416から後述するステップE434へ進む。
【0084】
これに反して、データがいずれも正しく読み出されたら(即ち、書換え型メモリ6からの2回目の読出しの結果がステップE412において読み出されたデータと全く同じデータであれば)、ステップE416は下記ステップE418による正常機能につながる。
【0085】
ステップE418では、読み出されたデータのランダムアクセスにおける記憶アドレスが、図4にステップE420によって簡略に示す正常機能のために利用できるように書換え型メモリ6に戻される。規格ISO 7816に規定されている指令Read Recordである場合、このステップE420は例えば読み出されたデータを発信するステップである。
【0086】
ステップE406において誤ったタイプのファイルであることが検知された場合、先にステップE430において示したように、ファイルのタイプに起因するエラーであることを示すようにエラー状態がセットされる。
【0087】
ステップE430に続くステップE450において、ランダムアクセスメモリ4の見掛けゾーンが読み出される。見掛けゾーンは、例えば、他に利用目的を持たない専用のゾーンであり、例えば、ステップE408で述べた書換え型メモリ6からの読出し許可に関するアクセス権とは異なる専用のデータを含んでいる。
【0088】
次いでステップE452において、ステップE450において読み出されたデータ(即ち、見掛けゾーンから読み出された、従って、「見掛けデータ」と呼称することができるデータ)が値0と比較される。
【0089】
尚、ステップE450及びステップE452はカードの機能において如何なる作用をも果さない。即ち、これらのステップにおいて処理されたデータまたは比較結果は方法の他のステップに対して全く影響を及ぼさない。
【0090】
但し、超小形回路カードの電流消費を測定するアタッカーのような外部の観察者にとって、これら2つのステップの実施は先に述べた正常機能のステップE408において実施されるオペレーションと変りはない。事実、ランダムアクセスメモリからのデータ読出し及びその比較が行われるステップE408及びステップE410のオペレーションはこれと同様のステップE450及びステップE452において実施されるランダムアクセスメモリからの読出し及び値0との比較のオペレーションと似たシグネチャを有する。
【0091】
従って、方法のこの段階で、アタッカーはステップE406において異常が検知されたことを外部からの観察によって知ることは不可能である。
【0092】
ステップE452には後述するステップE454が続く。
【0093】
ファイル・タイプのエラー検知に関して述べたのと同じアイデアで、書き換え型メモリへのアクセス阻止の場合(ステップE408及びステップE410)に見られたように、ステップE432において、エラーが書換え型メモリ6からの読出し阻止に起因することを示すようにエラー状態Eがセットされる。
【0094】
ステップE432も上記ステップE454に続き、ステップE454の内容は下記の通りである。
【0095】
即ち、ステップE454において、書換え型メモリ6の見掛けゾーンからの読出し動作と、ランダムアクセスメモリ4の見掛けゾーンへの書込み動作とが行われる。
【0096】
先に述べたように、メモリ4,6における見掛けゾーンとはこれらのメモリ中の、正常機能時に特別な作用を持たないデータが書き込まれたゾーンである。但し、これらの見掛けゾーンにおける読出しまたは書込みにアクセスすることによって、方法の進行を外部から観察するアタッカーは正常機能時に実施されるステップ、例えば、ステップE412に似せることができる。しかし、これらのステップは方法の他のステップにおいて利用されるデータまたはそのセキュリティに影響を及ぼすことがない。
【0097】
ステップE454に続くステップE456では、ランダムアクセスメモリ4中の見掛けゾーンだけでなく書換え型メモリ6中の見掛けゾーンからの読出しが行われる。先に述べたように、読出しに対するこのアクセスはプログラムの正常機能において如何なる機能的役割をも果さない(即ち、見掛けゾーンから読み出されたデータは方法の他のステップにおいて利用されることがない)。しかし、(例えば、マイクロプロセッサまたはメモリ4,6の電力消費の)観察によって方法の内部機能を知ろうとするアタッカーにとっては、ステップE454及びステップE456によって発生するそれぞれのシグネチャは正常機能時におけるステップE412及びステップE414によって発生するそれぞれのシグネチャと似ている。
【0098】
従って、方法のこの段階では、超小形回路カードの機能を外部から観察することによって、方法が正常機能のステップE412及びステップE414の実施なのか、機能異常(ファイル・タイプの誤りに起因する異常または書換え型メモリ6へのアクセス阻止による正常機能の終了)を検知した後のステップE454及びステップE456の実施なのかをアタッカーが判断すること不可能である。
【0099】
ステップE450及びステップE452と同様に、ステップE454及びステップE456は検知された異常を処理するステップではない。即ち、これらのステップは見掛けデータに対して作用するステップであり、機能エラーの修復を目的とするものでもなく、障害発生による攻撃に起因する異常である場合の対応策を講ずることを目的とするものでもないからである。
【0100】
ステップE456には後述するステップE458が続く。
【0101】
上述したようにステップE412において読み出されたデータの正確性をステップE414が検査した結果がネガティブであれば、ステップE416に続くステップE434において、検知されたエラーが書換え型メモリ6からの読出しの際のエラーに起因することを指示するようにエラー状態Eがセットされる。
【0102】
ステップE434には既に言及した下記ステップE458に続く。
【0103】
ステップE458において、先行ステップの1つ(即ち、ステップE430,E432及びE434のうちの1つにおいて検知されたエラー状態が発信される。このエラー・コードの発信は超小形回路カード内で実行される他の方法(または方法の他のステップ)のために行われる可能性がある。例えば、もし図4に示す方法が超小形回路カードの機能運用の主プログラムが書換え型メモリ6からの読出しを要求する場合に実行されるサブプログラムを表すなら、ステップE458において、エラー状態値が主プログラムに戻されることになる。
【0104】
ステップE458におけるエラー状態発信がインターフェース8を介してユーザー端末に向けられる場合も考えられる。
【0105】
従って、図4に示す方法は2つの主要な枝から成る:
‐方法の正常な進行に相当する第1の枝(ステップE402乃至ステップE420);
‐少なくとも一部が異常の検知後に実施されるステップから成る第2の枝(ステップE450乃至ステップE458)。
【0106】
以上の説明から明らかなように、異常検知の際に、第1の枝の重要な部分に似せてこれに対応する第2の枝のステップが実施される。このため、第2の枝に含まれる対応のステップが第1の枝に含まれる対応のステップと同じタイプのインストラクションを利用し、場合によっては、第1の枝の対応ステップにおいて利用されるのと同じ装置と交信することによって、アタッカーを想定して、例えば、電力消費または電磁放射の点で同じシグネチャを発生させる。
【0107】
図5は本発明の第3実施態様として、(英語ではpurseと呼称されることが多い)電子財布(英語purse)タイプの超小形回路カード内で実行される方法を示す。
【0108】
この方法は、例えば、超小形回路カードのマイクロプロセッサ2において命令から成るプログラムを実行することによって実施される。
【0109】
図5は電子財布に入金する、即ち、電子的財布の中の金額を表す超小形回路カードに記憶されているデータを、この金額を増やす方向に変化させる方法の主要なステップを示す。
【0110】
この方法はステップE502で始まり、ステップE502において超小形回路カード10のマイクロプロセッサ2が(インターフェース8を介して)ユーザから入金指令コードC、入金額M及びシグネチャSを受信する。
【0111】
後述するように、シグネチャSはユーザがこの入金を行うために付与された許可証を安心して有効に利用することを可能にする;事実、このような配慮がなければ、誰でも電子財布の中の金額の増額を指令できることになり、到底受け入れることができない。
【0112】
正常に機能する場合の電子財布への入金方法のステップを以下に説明する。
【0113】
正常機能時にステップE502に続くステップE504において、マイクロプロセッサは、キーKの記憶アドレスを特定し、このキーKを書換え型メモリ6から読み出すことを指令する。書換え型メモリ6中に記憶されているキーKは機密であり、外部からはアクセスできない。
【0114】
次いで、マイクロプロセッサ2はステップE506に進み、書換え型メモリ6から読み出された機密のキーKと指令コードCを(図1には示されていない)暗号プロセッサへ転送する。暗号プロセッサは暗号法の分野では公知のアルゴリズム、例えば、アルゴリズムDESに従って、受信されたデータ(機密のキーK、指令コードC)に基づいて暗号計算を行う。正確には、計算されたシグネチャS1を求めるため、機密のキーKを利用して指令コードCにアルゴリズムが適用される。
【0115】
次いで、暗号プロセッサは計算されたシグネチャS1をマイクロプロセッサ2に返送する(ステップE508)。
【0116】
方法の実行を指令するユーザが入金の実施を正式に許可されている場合、このユーザは機密のキーKを知っているから、シグネチャS1を計算するために実施された計算と同じ方法でシグネチャSを求めることができた。
【0117】
ステップEにおいて、超小形回路カード中に記憶されている機密のキーKに基づいて、ユーザから受信されたシグネチャSが計算されたシグネチャS1と比較される理由はここにあり、この比較によって入金の書込みが許可されているかどうかを判定することができる。
【0118】
ステップE510におけるSとS1との比較結果がポジティブなら、ステップE512に進み、書換え型メモリ6に入金額Mまたはこの入金の結果である電子財布内の金額が書き込まれる。
【0119】
逆に、ユーザから受信されたシグネチャSが計算されたシグネチャS1と一致しないことがステップE510において判断されると、電子財布の入金は許可されず、ステップE514に進み、マイクロプロセッサ2がユーザ端末に対してエラー状態を発信する。
【0120】
電子財布への入金方法の主要なステップを以上に述べた。当然のことながら、この方法の機能がセキュリティを確保できるように、一方では機能エラーの検知を、他方では、例えば、障害発生による攻撃の検知を可能にする方法の正常進行検査ステップを主要ステップ間に挿入することによってこれらの主要ステップを分離する。
【0121】
攻撃を検知する場合、マイクロプロセッサ2は正常機能のステップとは異なるステップを実行する。場合によっては下記のような事態に順応できる態様として、この方法は(攻撃の検知に代えて)機能エラーを検知する際にも上記異なるステップ(または正常機能とは異なる別のステップ)を実行することができる。
【0122】
図5に点線で示すように、データ受信ステップE502と書換え型メモリ6からの機密キーK読出しステップE504との間で攻撃が検知されると、ステップE520に進み、書換え型メモリ6中のアドレスK'に存在するデータが読み出される。このアドレスK'は正常機能時にステップE504において読み出される機密キーKが記憶されているゾーンに対応する見掛けゾーンである。
【0123】
従って、もしアタッカーが障害を発生させて攻撃を仕掛け、これをマイクロプロセッサ2が検知すると、方法はステップE520に進むが、このステップにおける電気的または電磁的シグナチャは(アタッカーから観察して)正常機能時に実行されるステップE504におけるシグネチャとそっくりである。従って、アタッカーは攻撃が検知されなかったし、マイクロプロセッサ2が書換え型メモリ6から機密キーKを有効に読み出しているものと考える。
【0124】
ステップE520からステップE522に進む。ステップE504とステップE506の間に存在する正常進行検査ステップによって攻撃が検知された場合にもこのステップE522が実行される。
【0125】
ステップE522において、見掛けデータを構成するデータC'及びK'が(ステップE506及びステップE508に関連して上述した)暗号プロセッサへ送信される。即ち、ステップE522は特別な機能的役割を持たないが、超小形回路カード10による電力消費または電磁放射を測定するという手段だけでこのカードの機能を観察するアタッカーは、ステップE522をステップE506と混同することになる。
【0126】
ステップE522の前にステップE520が実行された場合、見掛けデータK'はステップE520において読み出されたデータであればよい。あるいは、所定のデータ、好ましくは超小形回路カード10の機能のセキュリティとは無関係なデータであればよい。
【0127】
上述したように、ステップE522のシグネチャは正常機能において実行されたステップE506のシグネチャとそっくりであるから、ステップE522が実行される時点で、アタッカーは攻撃が既に検知されていることを知らない。
【0128】
ステップE522に後述するステップE524が続く。
【0129】
既に述べたように、ステップE506とステップE508を、図5に点線で示すように、攻撃検知を目的とする正常機能検査ステップを挟んで分離することができる。攻撃検知の場合、方法はそのままステップE524に進む。
【0130】
ステップE524では、暗号プロセッサによって計算されたシグネチャが受信される。ステップE520及びステップE522に関連して既に述べたように、ステップE524は正常機能ステップ(ここではステップE508)に似せることによって、攻撃が既に検知されていることをアタッカーに気付かせないことができる。
【0131】
先行してステップE522が実行された場合、シグネチャS1'は、例えば、ステップE522において転送されたデータC'及びK'に基づいて暗号プロセッサが計算したシグネチャである。この場合、計算されたシグネチャS1'は見掛けデータに基づくものであるから機能的な役割を持たない。
【0132】
ステップE506とステップE508の間で攻撃が検知された後、方法がステップE524に達すると、ステップE524は、例えば、ステップE506において発信されたデータC及びKに基づいて暗号プロセッサが計算したシグネチャの一部を受信するに過ぎない。シグネチャS1'の残り部分は、例えば、意図的に特定の値にセットされ、その結果、得られた結果(シグネチャS1')はシグネチャS1と一致せず、従って超小形回路カードの機能のセキュリティが保持される。
【0133】
ステップE524に続くステップE526において、例えば、得られた値S1'をそれ自体と比較される。既に述べたように、このステップには(上記比較の結果が予め判明しているから)機能的な役割はないが、超小形回路カード10の電気的及び/または電磁的挙動を観察するアタッカーを念頭においてステップE510の実施に似せることができる。事実、ステップE526とステップE510は同じインストラクションの実行であるから、それぞれの電気的(及び電磁的)シグネチャは極めて似ている。
【0134】
従って、正常機能のステップE502とステップE508の間で攻撃が検知されたら、(見掛けステップE520からE526に迂回することによって)正常機能が中断されるが、この変化がアタッカーによって検知されることはない。
【0135】
ステップE526に続くステップE528において、書換え型メモリ6にロック(または施錠)データが書き込まれる。
【0136】
図3に示す第1実施態様に関連して既に述べたように、書換え型メモリ6へのロック・データ書込みによって、超小形回路カード10のその後の使用は一切防止される。このように、攻撃の検知に呼応して極めて厳しく且つ有効な対応が必要である。
【0137】
尚、ステップE528は正常機能が書換え型メモリ6における金額書込みステップE512を実行するのと同時に実行される。従って、アタッカーは一見してステップE528を正常機能のステップE512と混同する。特に、ステップE512とステップE528はいずれも、マイクロプロセッサ2から書換え型メモリ6への通信を実行するという同じタイプのインストラクションに対応するから、同じ電気的及び/または電磁的シグネチャを有するステップE512と混同するのである。
【0138】
図5から明らかなように、ステップE512及びこれに先行する正常機能ステップはそれぞれ、攻撃検知の際に実行される類似シグネチャ・ステップを有する。とりわけ、本発明の方法の実施における重要なステップである書換え型メモリ6への金額書込みステップE512は本発明の方法に対する攻撃が検知された場合のまさに対抗策であるロック・データ書込みステップE528と連携関係にある。
【0139】
従って、正常機能に似せるステップE520乃至ステップE526が存在するためにアタッカーが自らの攻撃が検知されていることを知ることができないだけでなく、そっくりの電気的及び/または電磁的シグネチャを有する正常機能ステップと混同させるようなタイミングで対抗策(ここではロック・データの書込み)が実施される。
【0140】
以上に述べた例は飽くまでも本発明の実施に当たって採用可能な態様の一部に過ぎない。

【特許請求の範囲】
【請求項1】
-方法の正常な進行を示唆する基準を検査するステップと;
-検査結果がネガティブな場合に実行される処理ステップ(E528)
を含むデータ処理方法であって、
検査結果がポジティブである場合に第1動作(E512)が実施され、処理ステップが第1動作(E512)と共通の第1特性を有する少なくとも1つの第2動作(E528)を含むことを特徴とするデータ処理方法。
【請求項2】
-方法の正常な進行を示唆する基準を検査するステップ(E308;E406,E410,E416)と;
-検査結果がネガティブな場合に行われる処理ステップ(E320;E458;E528)
を含み、
-処理ステップ(E320;E458;E528)が非ゼロ時間の中間ステップ(E312,E314,E450,E452,E454,E456;E520,E522,E524,E526)を介して検査ステップ(E308;E406,E410,E416)から分離されるデータ処理方法であって、
検査結果がポジティブである場合に第1動作(E314;E408,E412,E414;E504,E506,E508,E510)が実施され、中間ステップが第1動作と共通の少なくとも1つの第1特性を有する少なくとも1つの第2動作(E314;E450,E454,E456;E520,E522,E524,E528)の実施を含むことを特徴とするデータ処理方法。
【請求項3】
第2動作が第1動作と異なる請求項1または請求項2に記載の方法。
【請求項4】
検査結果がポジティブである場合、第3動作(E418;E512)が実施され、処理ステップが第3動作(E418;E512)と共通の少なくとも1つの第2特性を有する少なくとも1つの第4動作(E458;E528)の実施を含む請求項2及び請求項3に記載の方法。
【請求項5】
方法が電子装置(10)内で実施され、共通の第1または第2特性がそれぞれ第1、第3動作において、及びそれぞれ第2、第4動作によって生ずる装置の電力消費または電磁放射である請求項1から請求項4までのいずれか1項に記載の方法。
【請求項6】
共通の第1または第2特性がそれぞれ第1、第3動作において、及び第2、第4動作において実行される命令数である請求項1から請求項4までのいずれか1項に記載の方法。
【請求項7】
共通の第1または第2特性がそれぞれ第1、第3動作によって、及びそれぞれ第2、第4動作によって実行される命令のタイプである請求項1から請求項4までのいずれか1項に記載の方法。
【請求項8】
共通の第1または第2特性がそれぞれ第1、第3動作によって、及びそれぞれ第2、第4動作によって処理されるデータのタイプである請求項1から請求項4までのいずれか1項に記載の方法。
【請求項9】
第1、第3動作がそれぞれ1つのメモリの第1ゾーンへのアクセスを含み、第2、第4動作がそれぞれ前記メモリの第1ゾーンとは異なる第2ゾーンへのアクセスを含む請求項1から請求項4までのいずれか1項に記載の方法。
【請求項10】
共通の第1または第2特性が外部装置との通信である請求項1から請求項4までのいずれか1項に記載の方法。
【請求項11】
外部装置が暗号プロセッサである請求項10に記載の方法。
【請求項12】
外部装置がメモリ(2,6)である請求項10に記載の方法。
【請求項13】
外部装置が半導体書換え型メモリ(6)である請求項10に記載の方法。
【請求項14】
外部装置がユーザ端末である請求項10に記載の方法。
【請求項15】
第1動作がセキュリティ保持されたステップを含む請求項1から請求項14までのいずれか1項に記載の方法。
【請求項16】
セキュリティ保持されたステップが暗号化アルゴリズムを含む請求項15に記載の方法。
【請求項17】
処理ステップ(E320;E528)が物理的メモリ(6)へのロックデータの書込みを含む請求項1から請求項16までのいずれか1項に記載の方法。
【請求項18】
方法の進行が正常である限り、ロックデータの書込み(E528)が物理的メモリ(6)へのデータの書込み(E512)と同時に行われる請求項17に記載の方法。
【請求項19】
データが金額を表す請求項18に記載の方法。
【請求項20】
シグネチュアに誤りがあれば基準がネガティブである請求項1から請求項19までのいずれか1項に記載の方法。
【請求項21】
異常が検知されれば基準がネガティブである請求項1から請求項20までのいずれか1項に記載の方法。
【請求項22】
攻撃が検知されれば基準がネガティブである請求項1から請求項21までのいずれか1項に記載の方法。
【請求項23】
機能エラーが検知されれば基準がネガティブである請求項1から請求項22までのいずれか1項に記載の方法。
【請求項24】
中間ステップが方法の実行に際して決定される少なくとも1つの命令を含む請求項2から請求項23までのいずれか1項に記載の方法。
【請求項25】
超小形回路カード(10)のマイクロプロセッサ(2)によって実施される請求項1から請求項24までのいずれか1項に記載の方法。
【請求項26】
-装置の機能の正常性を示唆する基準を検査する手段と;
-検査結果がネガティブである場合に起動される処理手段と;
-検査手段の起動を処理手段の起動から非ゼロ時間だけ分離するための分離手段
を含むデータ処理装置であって、
検査結果がポジティブである場合に第1動作手段が起動され、分離手段が第1動作手段と共通の少なくとも1つの第1特性を有することを特徴とするデータ処理装置。
【請求項27】
検査結果がポジティブである場合に第2動作手段が起動され、処理手段が第2動作手段と共通の少なくとも1つの第2特性を有する請求項26に記載の装置。
【請求項28】
-装置の機能の正常性を示唆する基準を検査する手段と;
-検査結果がネガティブである場合に起動される処理手段
を含むデータ処理装置であって、
検査結果がポジティブである場合に第1動作手段が起動され、処理手段が第1動作手段と共通の少なくとも1つの第1特性を有する
事を特徴とするデータ処理装置。
【請求項29】
装置が超小形回路カードである請求項26から請求項28までのいずれか1項に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−76636(P2011−76636A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2011−1428(P2011−1428)
【出願日】平成23年1月6日(2011.1.6)
【分割の表示】特願2007−526510(P2007−526510)の分割
【原出願日】平成17年8月12日(2005.8.12)
【出願人】(508372630)オベルトゥル テクノロジ (11)
【Fターム(参考)】