(57)【要約】【課題】電子部品内での故障検出方法を提供する。【解決手段】センシティブプロセスの冗長な手順を実行するステップと、前記センシティブプロセスと前記冗長な手順との間に遅延を介在させるステップと、を備える、電子装置内のいわゆるセンシティブプロセスを含むコンピュータコードの実行中の摂動による故障を検出する方法。前記方法は、前記遅延中にトラッピング手段を実行するステップをさらに備え、前記手段は摂動に反応し、摂動がない時に予測可能な結果を提供する。【特許請求の範囲】
【請求項１】
電子装置内で、いわゆるセンシティブプロセスを含むコンピュータコードの実行中の摂動による故障を検出する方法であって、前記センシティブプロセスの冗長な手順を実行するステップと、前記センシティブプロセスと前記冗長な手順との間に遅延を介在させるステップと、を備え、
前記遅延中にトラッピング手段を実行するステップをさらに備えており、前記手段は前記摂動に反応し、摂動がない時に予測可能な結果を提供することを特徴とする方法。
【請求項２】
前記トラッピング手段は、ソフトウェアセンサであることを特徴とする請求項１記載の方法。
【請求項３】
前記トラッピング手段は、ハードウェアセンサであることを特徴とする請求項１記載の方法。
【請求項４】
前記介在した遅延は、ランダムに決定されることを特徴とする請求項１記載の方法。
【請求項５】
介在した前記トラッピング手段は、ランダム待機時間後に実行されることを特徴とする請求項１記載の方法。
【請求項６】
前記トラッピング手段の実行ステップは、乱数回前記トラッピング手段を実行することを含むことを特徴とする請求項１記載の方法。
【請求項７】
前記予測可能な結果は、装置メモリ内の基準値であることを特徴とする請求項１記載の方法。
【請求項８】
前記トラッピング手段は、少なくとも１つの基準値の、装置メモリからの読み取り動作および装置メモリへの書き込み動作からなることを特徴とする請求項１記載の方法。
【請求項９】
前記トラッピング手段は、少なくとも１つの基準値に関する演算を行うことを特徴とする請求項１記載の方法。
【請求項１０】
前記センシティブプロセスは、センシティブまたは秘密データの操作（読み取り、書き込み、計算、条件分岐）からなることを特徴とする請求項１記載の方法。
【請求項１１】
前記センシティブまたは秘密データは、カードに含まれるデータであり、外部からの直接アクセスで修正されてはいけないことを特徴とする請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
前記センシティブまたは秘密データは、カードに含まれるデータであり、外部に表してはいけないことを特徴とする請求項１乃至１１のいずれかに記載の方法。
【請求項１３】
中央処理装置と、前記中央処理装置と別個の前記ハードウェアセンサと、を備えており、
前記ハードウェアセンサは前記摂動に反応し、摂動がない時に予測可能な結果を提供することを特徴とする、請求項３、および請求項４乃至１２のいずれかに記載の方法を実行するための構造。
【請求項１４】
さらに、前記中央処理装置と関連したタイミングを少なくとも備えることを特徴とする請求項１乃至１３のいずれか記載の構造。
【請求項１５】
コンピュータコードを格納するメモリ手段と、前記コンピュータコードを実行し、センシティブプロセスおよび冗長な手順を実行し、前記プロセスの実行と手順の実行との間でトラッピング手段を実行する処理手段と、を備えることを特徴とする、請求項１乃至１２のいずれかに記載の方法を実行するためのチップカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子部品内で故障を検出する分野に関する。
特に、本発明は、長い摂動による故障の検出を可能にする方法に関する。
【背景技術】
【０００２】
ＩＣカード、より一般的に言えば、いくつかの携帯用電子部品は、アプリケーションを保全する目的で、秘密および／または知覚できるデータのための計算および格納ユニットとして使用される場合が多い。識別、携帯電話、支払い、交通またはアクセス制御は、ＩＣカードが運用において重要な役割を担うアプリケーション分野の一部である。
とりわけ、限定されていないが、これはカードの保有者および／またはカードの発行者の認証を含む。カードは更に、アプリケーションにより、ロイヤルティアドバンテージ、お金（例えば、電話税）、または地下鉄のチケットに対応する‘ユニット’を含む。
したがって、一部悪意のある人または組織にとって、カードは詐欺行為を行うか、会社のブランドイメージを傷つける絶好の標的となる。
【０００３】
そのような利用のため、カードは、電流消費観察（サイドチャンネル分析）中の脅威や、最近では一時的な故障による攻撃に直面してきた。このような攻撃の検出は相対的に複雑であり、またこのような攻撃に対する応答は実行し難い。現在の電子部品は、何らかの外部摂動により正確な演算を保証することができない。したがって、カード上のソフトウェアまたは演算システムは、センシティブデータの破損危険について考えた上で、故障によって生じ得る部品故障に対して自己を保護しなければならない。
【０００４】
従来技術から、例えば、電子部品の演算に故障を引き起こす異常（電圧パルス）のような摂動を検出するための解決策が知られている。故障の面で不安定かつ危険と見なされる部品の演算領域への進入前に対応するために、摂動（異常に低い電圧、高すぎる光度）を検出する環境センサ（温度、クロック周波数、供給電圧、光センサ）を集積させることを含む、ハードウェア的解決策があるという点に留意すべきである。これらの解決策は、特定のセンサの開発（経済的費用）、および、場合によって小さい寸法の回路への集積（サイズ費用）を要することがあるので、費用がかかる。
【０００５】
例えば修正データビットのため生じた摂動の影響を検出する解決策も更に知られている。
他では、‘処理の冗長性’タイプのソフトウェア的またはハードウェア的解決策がある。冗長性とは単に、２つの処理の結果を比較するための同じ演算（計算、伝送…）の２回の実施を含む。ソフトウェアモードにおいて、冗長性は、データに対する二重計算になる。ハードウェアモードにおいて、このような冗長性は、例えば同じ値を事前格納する２つの分割レジスタによって表すことができる。結果が異なる場合、複数の処理のうち１つが適切に行われず、おそらく摂動（故障）が原因であると結論を出すことができる。
【０００６】
‘インテグリティ制御’タイプのソフトウェア的またはハードウェア的解決策もある。不揮発性メモリに格納されたデータにデータ‘チェックサム’（ｃｈｅｃｋ  ｓｕｍ）が加えられ、このようなサムは、前記データとチェックサムとが一致しない場合にチェックサム検査前に前記データが故障により損傷したか否かを検出可能にする。例えばデータ伝送のために、インテグリティデータの追加がソフトウェア層で進行する。従来技術により知られているように、ハードウェアでのチェックサムは、格納ブロックレベルでだけ実行され、多くの場合‘パリティビット’と称される。基本コンピュータワード（８ビット部品の８ビット）は、メモリの９つのビットに格納されるが、その９番目のビットは、ワードのパリティが組織的に偶数／奇数であるように位置するパリティビットである。読み取り動作中に、パリティが検査されて、８ビットワードがデータバスに配置される。書き込み動作中に、データバスに位置する８ビットワードがメモリに書き込まれ、同時にパリティビットが生成される。問題は、データバスで、伝送されたワードがいかなるインテグリティデータも含まないということである。一旦メモリ、中央処理装置ＣＰＵまたはキャッシュに転送された値がまだ正確であるということを検査する方法がない。
【０００７】
このような解決策は、命令実行中に例えば空間電界で起こる‘偶然的’故障に対して十分であるが、それは故障が規則的であり（パルス）、データ（またはセンシティブプロセス）、またはその冗長性またはそのチェックサムに影響を及ぼすためである。センシティブデータのすべての決定または操作、または暗号コンピュータ処理は、センシティブと見なされなければならない点に留意すべきである。一例として、命令の受け付け、ファイル読み取り／書き込み／削除動作の受け付け、または、負債またはクレジットの電子口座への／電子口座からの受け付けまたは秘密コードまたはＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ、メッセージ認証コード）の比較を選択する決定過程がある。
【０００８】
しかし、悪意のある人は電子部品を繰り返し故障させ、成功するまで技術を適用する。したがって、故障が検出されないように、ハッカーは同じ故障をセンシティブプロセスおよび冗長な手順に再生しようとする点を考えなければならない。
それで、従来技術では、図１で示されているように、センシティブプロセスＳＰ１０とその冗長性１１との間へのランダムな遅延１２の介在を含む解決策がある。このような解決策は故障に対する保護の抵抗を大幅に増加させる。
しかし、センシティブプロセスおよびその冗長性をかき乱して何らの故障も検出できないように、ハッカーは部品に長い物理的摂動１３を実行させることができる。
一般的に言えば、従来技術の解決策では、センシティブプロセスおよび冗長データに影響を及ぼす長い摂動に効率的に対応することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、故障検出方法を提供することで、従来技術の欠点を改善することが目的であり、‘トラッピング’タイプの手段がセンシティブプロセスおよびその冗長性を分離する遅延中に導入される。特に、トラッピング手段は、同じ摂動に反応するので、これらの摂動があると知らせる。
【課題を解決するための手段】
【００１０】
本発明の方法は、特に長い摂動からの保護に好適であるが、その理由は、後者がセンシティブプロセスおよび冗長な手順と関連がある場合、トラッピング手段が摂動情報を追跡するためである。
このような目的で、本発明は、広い意味で、センシティブプロセスの冗長な手順を実行するステップと、前記センシティブプロセスと前記冗長な手順との間に遅延を介在させるステップと、を備え、前記遅延中にトラッピング手段を実行するステップをさらに備えており、前記手段は前記摂動に反応し、摂動がない時に予測可能な結果を提供することを特徴とする、電子装置内の、いわゆるセンシティブプロセスを含むコンピュータコードの実行中の摂動による故障を検出する方法に関する。
【００１１】
実施例によると、前記トラッピング手段はソフトウェアセンサであるか、ハードウェアセンサである。
一実施例において、前記介在した遅延はランダムに決定される。
他の実施例において、前記トラッピング手段はハードウェアセンサである。
特に、前記トラッピング手段の実行ステップは、乱数回前記トラッピング手段を実行することを含む。
【００１２】
一実施例において、前記予測可能な結果は装置メモリ内の基準値である。
特定の実施例において、前記トラッピング手段は、少なくとも１つの基準値の、装置メモリからの読み取り動作および装置メモリへの書き込み動作を含む。
他の実施例において、前記トラッピング手段は少なくとも１つの基準値に関する演算を行う。
【００１３】
一実施例において、前記センシティブプロセスはセンシティブまたは秘密データの操作（読み取り、書き込み、計算、条件分岐）からなる。
最後に、前記センシティブまたは秘密データはカードに含まれるデータであり、外部からの直接アクセスで修正されてはいけない。
他の実施例において、前記センシティブまたは秘密データはカードに含まれるデータであり、外部に表してはいけない。
【００１４】
さらに、本発明は、中央処理装置と、前記中央処理装置と別個のハードウェアセンサと、を備えており、前記ハードウェアセンサは前記摂動に反応し、摂動がない時に予測可能な結果を提供する、前記方法を実行するための構造に関する。
一実施例において、前記構造はさらに前記中央処理装置と関連した少なくとも１つの命令を含む。
【００１５】
さらに、本発明は、コンピュータコードを格納するメモリ手段と、前記コンピュータコードを実行し、センシティブプロセスおよび冗長な手順を実行し、前記プロセスの実行と手順の実行との間でトラッピング手段を実行する処理手段と、を備える、前記方法を実行するためのチップカードに関する。
本発明は、添付の図面を参照しながらここに説明のため与えられた本発明の一実施例を読めば、さらに理解が容易になるだろう。
【発明を実施するための最良の形態】
【００１６】
図２を参照すると、長い摂動１３は命令Ｃｍｄ、特に従来技術の解決策により実行できるセンシティブプロセスＳＰ１０および／または冗長な手順１１に影響を及ぼす。トラッピングタイプのセンサ２１はセンシティブプロセスの実行と冗長な手順の実行との間に介在される。
摂動１３がセンシティブプロセス（または冗長な手順）と一部以上オーバーラップせず、またトラップ（Ｂ）にオーバーラップしない場合、トラップは故障となり得る摂動を検出しない。しかし、センシティブプロセスＳＰ１０と冗長な手順１１とは異なり、故障を検出可能にする。
【００１７】
さらに摂動１３がトラップ２１（Ｃ）に部分的にオーバーラップする場合、その実行によって、トラップ２１（Ｃ）は長い摂動１３を検出できる。
最後に、摂動１３がトラップ（Ａ）だけでなくセンシティブプロセスＳＰ１０と冗長な手順１１とに加わると、トラップ２１がこの摂動１３を検出する場合、プロセス１０と手順１１は攻撃を検出しないことがある。
【００１８】
トラッピング手段は、通常の電子部品により使用され、生成された結果に影響を及ぼす外部パラメータに反応する他のパラメータと関係なく、予測可能なまたは所定の結果を提供することを意味する。トラッピングセンサ２１は摂動１３に反応し、摂動がない時に予測可能な、あるいは一定な結果を提供する。結果が異なる場合、故障／摂動が発見された。
このトラッピングセンサはコードによってソフトウェアで実行できる。アセンブリ言語で、センサは以下の一連の疑似コードで構成される：
【００１９】
Ｔｒａｐ：
ｌｏａｄ  ｐｔｒ，  ＃ｎｖｍ＿ａｄｄｒ＿ｒｅｆ１
ｌｏａｄ  Ｒ１，  ＠ｐｔｒ
ｓｔｏｒｅ  ＠ｒａｍ１，  Ｒ１
ｌｏａｄ  Ｒ２，  ＠ｒａｍ１
ｌｏａｄ  ｐｔｒ，  ＃ｎｖｍ＿ａｄｄｒ＿ｒｅｆ２
ｌｏａｄ  Ｒ３，  ＠ｐｔｒ
ａｄｄ  Ｒ２，  Ｒ３
ｃｍｐ  Ｒ２，  ＃ｒｅｓ
ｂｅｑ  ｎｏ＿ｆａｕｌｔ
ｊｍｐ  ｆａｕｌｔ＿ｄｅｔｅｃｔｉｏｎ
ｎｏ＿ｆａｕｌｔ：
ｒｅｔ
【００２０】
ｌｏａｄ  ｐｔｒ，  ＃ｎｖｍ＿ａｄｄｒ＿ｒｅｆ１は、レジスタのｐｔｒで基準ｒｅｆ１のアドレスを不揮発性メモリｎｖｍにロードさせる。
ｌｏａｄ  Ｒ１，＠ｐｔｒは、レジスタＲ１にポインタｐｔｒ（ｒｅｆ１の値）によって指定された内容をロードする。
ｓｔｏｒｅ  ＠ｒａｍ１，  Ｒ１は、ｒａｍ１アドレスでＲ１の内容を書き込む。
ｌｏａｄ  Ｒ２，  ＠ｒａｍ１は、ｒａｍ１アドレスを読み取り、レジスタＲ２に内容を転送する。
ｌｏａｄ  ｐｔｒ，  ＃ｎｖｍ＿ａｄｄｒ＿ｒｅｆ２は、レジスタのｐｔｒでｒｅｆ２のアドレスをｎｖｍにロードする。
ｌｏａｄ  Ｒ３，  ＠ｐｔｒは、レジスタＲ３にポインタｐｔｒ（ｒｅｆ２の値）によって指定された内容をロードする。
ａｄｄ  Ｒ２，  Ｒ３は、Ｒ２と、Ｒ２内のＲ３とを加算する（＝ｒｅｆ１＋ｒｅｆ２）。
ｃｍｐ  Ｒ２，  ＃ｒｅｓは、Ｒ２をｒｅｓ＝ｒｅｆ１＋ｒｅｆ２と比較する。
ｂｅｑ  ｎｏ＿ｆａｕｌｔは、トラップから出て、予想される結果が出た場合、プログラムの実行を進める。
ｊｍｐ  ｆａｕｌｔ＿ｄｅｔｅｃｔｉｏｎ：Ｒ２が予想される値＃ｒｅｓと異なる場合、プログラムは故障処理ルーティンに移動する。
【００２１】
トラップコードの実行中にデータを修正させる影響を及ぼす故障は、検出される場合が多いが、その理由は、Ｒ２での最後の結果が、コード（＃ｒｅｆ）での予想されるハードウェア所定値と異なるためである。
トラップタイプのソフトウェアセンサ２１は、データ操作、および既知の変数に関する演算を含む。ハッカーから受ける摂動は、トラップで使用されたデータや変数のうちの少なくとも１つを修正する効果があり、それは予想外の結果をもたらす。
最後に、センサ２１は、ハードウェアモードで例えばセンシティブプロセスＳＰ１０から冗長な手順１１までの間に感光センサを使用することで実行できる。感光センサにより供給された電力が所定閾値を超える場合、光摂動が検出された。
さらに、小さいハードウェアモジュールはＣＰＵと並列または直列に動作し、実行中に故障を検出する目的で所定の結果を有する演算を行う。
【００２２】
プロセス１０と手順１１との間に数個のトラップ２１集積が可能である。
−トラップはセンシティブプロセスＳＰ１０の直後に実行される。
−冗長な手順１１はトラップの直後に実行される。
−プロセス１０と手順１１との間の遅延はランダムに決定され、トラップはこの遅延中に実行される。
−センシティブプロセスＳＰ１０後のランダムな遅延の後でトラップが実行される。したがってトラップの実行持続時間は予測することができない。
−乱数回トラップが実行され、プロセスから手順までの間を構成できる。したがってトラップの実行持続時間は予測できない。
【００２３】
一例として、図３はデータファイルの読み取りアクセスのフレーム内での本発明の使用を示す。アクセス要求ＡＣは、ユーザがファイルの開封を要求するときに発行３０される。
アクセス要求を満足しない場合、エラーコードがアクセス要求検査ルーティンによって発行３１される。このエラーコードは要求されたファイルのいかなる読み取りも禁じる。
アクセス要求を満足する場合、トラッピングソフトウェアセンサ３２が一定時間実行される。本発明によってセンサが故障を検出する時、それは現行安全政策にしたがって反応３３を実行し、該反応はファイルに対するアクセスを禁じる。
中断時にソフトウェアセンサが何も検出しない場合、ファイルに対するアクセス要求ＡＣ３４は再検査３５され、アクセスデータがハッカーによって修正された場合に故障を検出、および安全政策を実行３３し、または、再び要求が満足される場合にファイルの読み取りとデータの伝送を許可３６する。
【図面の簡単な説明】
【００２４】
【図１】最近の従来技術における解決策を示す。
【図２】本発明で実行される解決策を示す。
【図３】本発明の使用例を示す。
【誤訳訂正書】
【提出日】平成20年6月5日(2008.6.5)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】図面の簡単な説明
【訂正方法】削除
【訂正の内容】
【誤訳訂正２】
【訂正対象書類名】図面
【訂正対象項目名】全図
【訂正方法】削除
【訂正の内容】
【国際調査報告】
2009501983.tif 000002
2009501983.tif 000003
2009501983.tif 000004
2009501983.tif 000005
2009501983.tif 000006
2009501983.tif 000007