JP2002539523A - プログラムの実行の監視方法 - Google Patents
プログラムの実行の監視方法Info
- Publication number
- JP2002539523A JP2002539523A JP2000604312A JP2000604312A JP2002539523A JP 2002539523 A JP2002539523 A JP 2002539523A JP 2000604312 A JP2000604312 A JP 2000604312A JP 2000604312 A JP2000604312 A JP 2000604312A JP 2002539523 A JP2002539523 A JP 2002539523A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- program
- inst
- monitored
- 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.)
- Granted
Links
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/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
- G06F21/54—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 by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- 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
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Communication Control (AREA)
- Storage Device Security (AREA)
- Flow Control (AREA)
Abstract
Description
ムの実行において容認できないランを検知する方法および装置に関するものであ
り、該プログラムは、低級または高級言語によるものであることができる。
実行される命令の構造に非常に近い構造によって、コマンドが作成される。プロ
グラムは、実行される前に、コンパイルされることだけが必要となる。低級言語
は、機械コードの呼称で知られているが、特にマイクロプロセッサまたはマイク
ロコントローラのプログラミングのために用いられる。マイクロコントローラは
、少数の特殊な命令のみ実行することのできるプロセッサである。それは、特に
チップカード(銀行、電話、サービスへのアクセス等のカード)を装備するため
に、そして工業的な又は家庭の機器を操作するために用いられる。
の代わりプロセッサによって用いられる構造とは遠い構造を有する。このような
言語で書かれたコマンドは、まず翻訳され、つまり機械コードのコマンドに変換
されてから、次にプロセッサにより実行される命令形式にすることができる。
クロプロセッサ、またはマイクロコントローラに適した一連の命令が行われる。
命令カウンタによって規定されるシーケンスに従って、プロセッサによって実行
される。
st.3,…,Inst.(nは整数である)のブロックで、コードまたはマイクロコー
ドの形式で命令レジスタ2にロードされる。それぞれの命令は、このレジスタ2
における特別なアドレスによって識別される。例では、命令Inst.1,Inst.2,
Inst.3,…,Inst.nのアドレスが、それぞれAd.1,Ad.2,Ad.3,…Ad.nと
示されている。命令は、命令レジスタ2から読み取られ、続いてプロセッサ4に
ロードされ、そこで、プロセッサ4によって制御される命令カウンタ6のコマン
ドの下で実行される。このため、命令カウンタ6は、アドレスポインタ8を有し
、該アドレスポインタは、レジスタ2のアドレスAd.1,…Ad.nを指し、該アド
レスから、1つの命令シーケンスの実行中にプロセッサ4にロードすべき命令を
読み取る。従って、ポインタ8の、命令レジスタ2のアドレスに対する位置は、
命令の実行に応じて変化する。
3,…,Inst.nは、最初の命令Inst.1からn番目の命令Inst.nまで連続して
、すなわち、線形に実行されなければならない。従って、命令カウンタ6のポイ
ンタ8は、レジスタ2のアドレスAd.1を最初に指定し、それから対応する命令I
nst.1のデータ10−1が、プロセッサ4にロードされる。プロセッサ4が、命
令カウンタ6に、次の命令(この場合、Inst.2)を与えるように命令すると、
該命令カウンタは、アドレスAd.2を指定するために、ポインタ8の位置を、ア
ドレス移動の1単位分インクリメントする。このプロセスは繰り返され、最後の
命令Inst.nのデータ10−nをロードするために(点線)、ポインタ8がアド
レスAd.nを指定すると終了する。
ーケンシャルな移動から外れる “ジャンプ”を有さない。これは、例えば、次
のようなマイクロコードでの命令シーケンスでの場合である。 lda t txa mul bset 3,t sta n
命令から別の命令へ移行する際に、アドレスの移動の1単位分をインクリメント
する。
スの外にある命令へのジャンプを要することはよくあることである。このような
ジャンプは、シーケンスの外にあるアドレスに位置するデータのロード命令、ま
たは次のコマンドを条件に従って実行する、いわゆる分岐命令に起因することが
あり得る。
く次の命令の、レジスタ2におけるアドレスを決定し、そこにある命令またはデ
ータをプロセッサ4にロードするように、ポインタ8がこのアドレスを指すこと
を要する。
所において、命令カウンタ6への、新しい値のロードを引き起こす。 lda txa bra ラベル;ジャンプ mul bset 3,t sta n ラベル rts
るコマンドの下で実行できることによって、不幸なことに、プログラムの容認で
きないランが起こり得る。このようなプログラムの容認できないランは、プログ
ラムされた装置の事故的な作動不良に起因し得る。しかし、それは、望まれる機
能がプログラムされた装置の作動を、不正に使用することをねらった悪意のある
アクションによっても起こり得る。例えば、チップカードの場合、ジャンプおよ
び/または分岐の作成あるいは変更によって、マイクロコントローラのプログラ
ミングを変更することにより、間違ったデータ(銀行または電話カードで許可さ
れた予算の増額、あるサービスへの偽のアクセス許可等)をロードすること、ま
たは、メモリに保存されている機密データ(アクセスコード、カードの名義人に
関する個人的な情報等)を奪取することが可能となる。
さえも、プローブおよび部品のテストの現状技術を用いて、集束イオンビーム(
英語での“Focus Ion Beams”または“FIBs”の名称の下でも知られている)
の作業ステーションによって、チップの表面に(または、その下側の相において
も)プローブ接触部を作ることが可能である。
間とともにその移動に付随し)、またはその値の外部変更を可能にする、特別な
台(英語での “probe stations(プローブステーション)”という名称の下で
も知られている)によって、プローブ先端を置くことが可能になる。
値を外部からロードすることを可能にし、かつプログラムの設計者が想定してい
ない分岐を引き起こすことを可能にする。上記において説明されたように、この
ようなジャンプは、当然、実施のセキュリティに対して有害な影響を与え、そし
て、例えば不完全に計算を行うことによって秘密データの漏洩に至ることがあり
得る。
ラムのランにおいて作動不良を引き起こす。1つの例が、R.Andersonによる“Ta
mper−resistance, a cautionary note”と題された記事において与えられて
いる。1つの別の技術は、秘密鍵のようなデータをチップカードから引き出すた
めに故意になされる計算誤りを利用することから成る。この技術は、1996年
10月31日に出版されたBellcore Reportの、Boneh、DeMillo、およびLipton
による“On the Importance of Checking Computations”と題された記事
に記載されている。
にもまた、同じ現象が起こりうる。従って、攻撃者が、例えば、翻訳すべきカレ
ント命令を指す、インタープリタのプログラムポインタを変更するのに成功した
場合、Java(登録商標)またはBasic言語によるアプリケーションは、その正当
な使用から逸脱させることが可能となる。
禁ずるように特別に設計されているわけではない。むしろその反対で、アセンブ
リ言語は、プログラマに最大限の自由を与えるように特別に設計されているので
ある。例として、C言語では、ポインタによってインデックス修飾される実行を
用いることで、1つの関数のコード内でジャンプすることが可能である。
を不正に使用する意志であるにしろ、容認できないようなプログラムのランのこ
れらの問題に対して、本発明は、情報処理プログラムの一続きの命令を実行する
ランの監視方法を提案するものであり、監視されるプログラムを実行するための
プロセッサに伝送される命令シーケンスを分析することと、前記プログラムによ
って記録される基準データでこの分析結果を検証することから成る。
らを実行するために、確実にプロセッサに伝送されたことを検証することを可能
にする。その場合、このように読み取られた命令は、実行もされたと仮定する。
グラムのランの際に命令シーケンスの全ての命令が実際に分析された場合にのみ
、監視方法実施の際に実現される分析結果に対応するものである。
抽出するサブステップと、このように抽出された各データについて所定の計算を
するサブステップとを含み、検証ステップは、分析結果を基準データと比較する
。
値と基準値とを、固定プログラム方式で比較することで実行され、該基準値は、
監視プログラムを構成するコードをマスキングする際に1度だけ固められる布線
式プログラムに(例えば、ROMタイプの固定メモリに)書き込まれることができ
る。
て引き起こされ、この命令は、先に引用された基準データを含んでいる。
値の形式で存在するとき、前述された分析の際には、単なる数値としてこれらの
命令が処理される。
このように、以下のステップを含むことができる。 −プログラムを作成する際 −監視すべき各命令において識別可能なデータに適用される所定の規則に従
って規定された基準値を、プログラムの1つの命令シーケンスの少なくとも1つ
の所定の箇所に挿入し、 −監視すべきプログラムの部分を実行する際 −実行される各命令において識別可能な前記データを取得し、 −このように得られた前記の識別可能なデータに、前記の所定の規則を適用
して、検証値を規定し、 −この検証値が、プログラムと共に記録されている基準値に実際に対応する
ことを検証する。
際に、プログラムのランを中断することにする。この割込みは、検証値と基準値
との間での不一致が所定の回数検知された場合に、監視されている情報処理プロ
グラムを備えた装置の今後の使用を無効にするアクションを伴うことができる。
有さず、それが有する全ての命令が、対象となる全ての場合において実行される
よう期待される。
を備えているとき、ジャンプを含まない命令セットに別々に監視方法を実施する
ことが可能である。
起こす命令の場合は、ジャンプの前にあるジャンプの無い命令セットと、このジ
ャンプの後にくるジャンプの無い少なくとも一つの命令セットとに対して、別々
に監視方法を実施することができる。
を得ようとする分析のためには、ジャンプをコマンドする命令(この命令は通常
、分岐前の最後のものである)をこのセットに挿入し、従って、この命令セット
の良好なランを検証してから、ジャンプの命令を実行するように計画することが
できる。
検証値を消去する。この措置によって、ジャンプによって分離されている命令セ
ットのような、1つのプログラムの様々な命令セットの監視を容易に管理するこ
とが可能になる。それは、特に、ジャンプによって分離されている様々なセット
について、検証値の計算と同じ初期条件で方法を実施することを可能にする。
て消去することができる。この値は、別の所定の初期値によって置き換えること
もできる。ゼロへのリセット、あるいは初期化のこれらの演算は、保護されたソ
フトウェアによってアクティブにすることができる。
令セットの対象となる命令のそれぞれの分析とともに連続的に進行するものであ
る。この取組み方は、監視方法のランの内部状態を含み、その進行に付随するこ
とを可能にする。
対象となる各命令について対象となる命令から抽出された値と、この先行する命
令において実施された同じ演算によって得られた結果とについて、同時に演算結
果を計算することから成る。検証すべき第1の命令に関する計算については、こ
の第1の命令から抽出されたデータと、所定の値(ここで、先に引用された再初
期化またはゼロへのリセットの値に対応することのできる)とについて、同時に
演算を実施することができ、該所定の値は、先行する演算結果が存在しない場合
に“種”の値の役割を果たす。
同じように適用される再帰的アルゴリズム用いることによって、正しい検証値を
得ることが可能となる。そのうえ、計算の演算は、一つには、計算の際に全ての
命令のデータが対象となった場合、あるいは該データが予定された順序で対象と
なった場合にのみ、正しい検証値が得られるように、容易に選択することができ
る。
どの、データの暗号化の分野で周知の技術により、ハッシュ関数を適用すること
から成ることができる。この場合、演算コード(数値として考えられる)と、最
後に行われた初期化以来実行されたアドレスとの全体を、暗号方式的にハッシン
グすることによって、監視方法のランの、前述の内部進行を実現することが可能
である。
との全体について、必ずしも暗号化ではない冗長計算を行うことによって、検証
値を進行させることが可能である。例として、CRC(英語でcyclic redundancy check(巡回冗長検査))タイプのアルゴリズムを用いることができる。
られるに従って、中間値の計算により比較値を得ることが可能となる。この取組
み方では、対象となる命令セットの命令から抽出されるそれぞれの値は、バック
アップする必要がない。実際、中間値の計算の後では、次の中間値を計算するた
めにこの中間値(あるいは、検証値に対応する最終値)のみが重要となり、それ
を生成させるデータは、もはや考慮に入れられるものではない。この措置によっ
て、本発明の実施手段におけるメモリスペースを節約することができる。
それらが実行されるのに従ってバックアップすることができ、例えば、検証ステ
ップのなどの必要なときにのみ、検証値の計算を行うことが可能である。
に関するものであり、監視されるプログラムを実行するためのプロセッサに伝送
された命令シーケンスを分析するための手段と、前記プログラムと共に記録され
ている基準データでこの分析結果を検証するための手段とを有することを特徴と
する。
録することができるレジスタを有する。このレジスタは、途中の最後の中間結果
のみを取っておくのに適することができる。
を可能にすることができる。このようにして、プログラムは、監視方法を新たに
実施するたびに、レジスタの内容における初期条件をコマンドすることができる
が、ここでいう実施は、例えばプログラム内でのジャンプの後に発生するもので
ある。
ラムを含むプログラムされた装置内に、内蔵することができる。
またはPCMCIAサイズのカードに記録されたプログラムの読取り装置のようなマイ
クロプロセッサまたはマイクロコントローラ機器などの、情報処理プログラムの
一続きの命令を実行するためのものに関し、実行するために伝送された命令シー
ケンスを分析するための手段と、プログラムと共に記録されている基準データで
この分析結果を検証するための手段とを有することを特徴とする。
命令を有するプログラムされた装置にも関するものであり、さらに、基準データ
を有し、該基準データは、前記の命令の中に含まれるデータに応じて前もって規
定され、かつ前述のプログラム実行装置によって分析される命令シーケンスの検
証を可能にするものであることを特徴とする。
ムのようなメカニズムの制御機構は、監視すべきプログラムを、ROMタイプの固
定メモリに内蔵することができる。
められた値の形式で、メモリに記録される。
グラムの実行装置のプログラミング装置に関し、プログラムの命令シーケンスの
少なくとも1つの所定の箇所に、実行を監視することが望まれる命令セットのそ
れぞれの命令に含まれるデータから、前もって規定された態様に従って計算され
る基準値を書き込む手段を有することを特徴とする。
プリタにも関し、クリティカルコードを実行するために、上述の監視方法を実施
することを特徴とする。
うなプログラムを備える装置は、必要となる全ての手段を備え、前述の監視方法
の様々な可能なオプションの局面を実現することができる。
ロプロセッサに、監視ユニットの役割を果たす追加の物的な要素を加えることを
考えることができる。このユニットの役割は、ソフトウェアの設計者が想定して
いないジャンプが、実行中に起こり得ないことを監視することである。この例で
は、監視ユニットは、レジスタから成ることができ、該レジスタの内容は、監視
ユニットの内部状態を常に形成する。監視ユニットの特殊な入力は、典型的には
、監視ユニットの内容を消去することによって、そのゼロへのリセット(RAZ)
を可能にする。この機能は、実行されるソフトウェアによって常にアクティブに
することができ、例えば、アセンブラで書かれた新規の演算コード(例えば、“
clr us”)を加えることによって、または、保護された要素のメモリ内のある
1ビットを処理することによって(例えば:setb 3,SERVICE)、実現すること
ができる。
によって与えられるデータストリングと比較する。それは、例えば、ソフトウェ
アが内部状態を比較することを望む値を、監視ユニットの内部で(ループ“lda-
sta”によって)コピーすることによって実現することができる。値のコピーが
一旦終了すると、監視ユニットは、それを、その内部状態と比較し、次の動作を
採用する:監視ユニットの状態が、保護されているソフトウェアによって示され
る値に等しい場合、正常に実行を再開し、そうでなければ、プログラムの実行は
停止されるが(ユーザーにカードをゼロにリセットをさせるよう強制する)、こ
の場合、虚偽実行カウンタを前もって認めておくこともあり、該カウンタは、値
が適切な限度(例えば4)を超える場合にカードを決定的にブロックするEEPROM
タイプの不揮発性メモリ内にある。
ドおよびアドレスを暗号方式的にハッシングしたものを、恒久的に保存すること
ができる。
の“byte code(バイトコード)”)の翻訳に適することができる。コンパイラ
は、バイトコードの一部分のハッシュ値を計算し、それを英語で“class file
(クラスファイル)”として知られているある属性の構造に入れ込み、発生した
バイトコードに、監視ユニットのゼロへのリセットおよび検証機能の呼び出しに
対応する、英語で“opcodes(命令コード)”として知られている補足的なコー
ドを加えることができる。仮想マシンは、監視ユニットの代わりをし、それが検
証の命令コードに遭遇したとき、クラスファイルに含まれる理論的なハッシュ値
と、カレントのハッシュ値とを検証することになる。
の以下の説明を読むことによって、より明確に、利点および特徴が理解されるだ
ろう。 −図1は、すでに紹介されたが、プログラムの実行のランにおいて命令カウン
タの役割を説明することを目的とする、単純化されたブロック図である。 −図2は、本発明の第1の実施態様に合致する監視ユニットの作動原理を説明
することをねらいとする、プログラム実行装置の単純化されたブロック図である
。 −図3は、本発明による、監視方法のフローチャートである。 −図4は、本発明による、監視方法の変型のフローチャートである。 −図5は、本発明の第2の実施態様に合致する監視ユニットの作動原理を説明
することをねらいとする、プログラム実行装置の単純化されたブロック図である
。 −図6は、第2の実施態様に適した、本発明による監視方法のフローチャート
である。 −図7は、監視方法に特有の命令をさらに含む分岐のある1つのプログラムの
命令セットを簡略化して示している。
と類似の役割を有するブロックには同じ参照番号がつけられ、簡潔さをはかるた
めに、新たに説明はしない。
は、高級言語で書かれたプログラムを実行するためのコンピュータ、又はマイク
ロプロセッサ、あるいはマイクロコントローラであることが可能であるが、後ろ
の二つは低級言語で書かれたプログラムから作動する。例として、実行装置20
は、銀行、電話、または他のサービスの取引を管理するためのチップカードの読
取り装置であることができる。そして、検証すべきプログラムは、チップカード
の中に物的に保存されている。
ローラタイプのプロセッサ4に基づくことと仮定する。
グラムの一部分を実行する。このプログラムの部分での実際に作動する部分は、
Inst.1,Inst.2,Inst.3,…,Inst.nでそれぞれ示されるn個の命令(nは
1より大きい整数である)から成る1つのシーケンスを有する。命令を構成する
マイクロコードは、10進法または16進法であることのできる数値の形で存在
する。
タを次のものとして所持する:第1には、プロセッサに対して示す命令として(
その場合、それは“コード値”と示される)、第2に、算術処理がされる単なる
数値としてである(この場合、それは、“数値”Vinst.と示される)。例えば、
第1の命令Inst.1は40に等しい。この数字は、プロセッサによって認知され
る1つの命令に対応するコードであるが、数値40と同じ2進法構造をもってい
る。
実行の線形シーケンス外にある別の命令へのジャンプを命令しない。このように
、この部分のプログラムの正常かつ予定されたランは、命令Inst.1から始まり
、命令Inst.nで終わるように、連続してそれぞれの命令を実行することを必然
的に要する。そのように、命令カウンタ6(既に記載)のそのポインタ8は、命
令レジスタ2内の命令Inst.1からInst.nが、プロセッサ4にロードされるのに
応じて逐次的に、それらの各アドレスを指す。
視ユニットは、Inst.1からInst.nまでのそれぞれの命令が、それらの実行のた
めにプロセッサ4に確実にロードされたことを検証することを可能にする。それ
は、機能的には、命令レジスタ2とプロセッサ4との間に接続されている。この
ように、命令レジスタ2から読み取られる全ての命令は、監視ユニット22を通
ってから、プロセッサ4に達する。
ように記載されている。しかしながら、監視ユニット22は、監視すべきプログ
ラムを有する装置と共に、チップカードの中に例えば埋めこまれつつ内蔵される
ことももちろん可能であり、ここで、チップカードの監視すべきプログラムはメ
モリに保存されているが、そのことによって、以下に記載される原理が変わるこ
とはない。
2,Inst.3,…,Inst.nに含まれるデータを一時的に保存するためのレジスタ
24と、このデータについて演算を実行するための計算機26とを有する。
3,…,Inst.nに、新規の2つの命令を付加することを要求する:プログラム
の第1の命令Inst.1の前に置かれる第1の監視命令Inst.0、およびプログラム
の最後の命令Inst.nの後に置かれる第2の監視命令Inst.n+1。
のポインタ8を、第1の監視命令Inst.0のアドレスを指すようにコマンドする
。この命令は、監視ユニットが、そのレジスタ24に含まれるハッシュ値VHを初
期化するようコマンドする。例では、命令Inst.0は、単に、レジスタ24に値V
H=0を置くようにコマンドする。それは、プロセッサ4には伝送されない。
Inst.3,…,Inst.nの本来の実行の段階に移る。命令レジスタ2から読み取ら
れたそれぞれの命令は、最初に監視ユニット22に伝送され、そこでは、それを
数値とみなす。
ムを適用するが、それは例えば、ハッシュの連邦規格によって明示されているハ
ッシュSHA-1である。命令Inst.i(iは1からnまでの整数)に関するハッシュ
演算の結果VHiは、レジスタ24に書き込まれる。
は、先に得られたハッシュ結果VHiと入れ代わって書き込まれる。
2,Inst.3,…,Inst.nごとに続けられる。
ニット22にロードされる。この命令は2つの要素を有する:基準値Vref、およ
びこの基準値Vrefとレジスタ24に登録された最後のハッシュ結果の値とを比較
する計算機26に向けられたコマンド。後者の値は、ハッシュ結果VHnに対応し
、該結果は、命令Inst.nの数値(図では36に等しい)から、および前の命令I
nst.n−1について得られたハッシュ結果VHn−1から得られる。
ジスタ22内の値VHnを、この監視命令において特別な基準値Vrefと比較する。
2,Inst.3,…,Inst.nの値の連続的なハッシュ結果について期待される値VH
nに対応するように、決定される。この値Vrefは、監視ユニット22によって用
いられるのと同じ手続き、つまり命令、Inst.1,Inst.2,Inst.3,…,Inst.
nの連続的なハッシュ手続きを用いて、前もって計算することができる。
いように、固定メモリ内に布線化される。
refとVHnの間に同一性があると確認したならば、全ての命令、Inst.1,Inst.
2,Inst.3,…,Inst.nが、それらの実行のためにプロセッサ4に確実に伝送
されたと判断される。
確認したならば、全ての命令、Inst.1,Inst.2,Inst.3,…,Inst.nが、監
視ユニットによって受信および伝送されなかったと判断されるか、あるいは予定
されていたシーケンスの順序になかったと判断される。この場合、プログラムの
ユーザーまたは名義人に警告を発するような、またはプログラムが続行するのを
阻止するようなアクションを備えることができる。例では、このようなアクショ
ンは、監視ユニット22からプロセッサ4に、プログラム割込みコマンドInt.の
形で伝送される。
フローチャートを参照して記載されている。監視すべきプログラムまたはプログ
ラムの部分が、監視方法について、第1および第2の監視命令を最初と最後に組
み込むことによって、正しく準備されたと仮定する。
の第1ステップ32は、第1の監視命令(Inst.0)の待機である。
よびレジスタ24の初期化ステップ34(ゼロへのリセットによる)を行う。レ
ジスタ24のゼロへのリセットは、後に説明されるように、ハッシュ演算のシー
ケンスを開始するために、このレジスタに“種”の値を置く方法である。これら
の演算は、第1の監視命令によって直接コマンドされるか、あるいは単に、第1
の監視命令によって、監視ユニット22と関連したルーチンから始動することが
できる。
例えば“clr us”)を付加することによって、またはプログラム実行装置20
のメモリ内のあるビットを処理することによって、実現することができる。この
ようなコマンドは、“setb 3, service”であることができる。
ントする(その時、このカウンタはn=1を指す)(ステップ36)。
は、命令レジスタ2から読み取られる(ステップ38)。上記に説明されたよう
に、この命令は、監視ユニット22によって、純粋に、算術演算を可能にする数
値としてみなされる。図2の例では、この値は40である。
に、ハッシュ演算を適用する(ステップ40)。第1の命令の場合、この最後の
値は、初期化の値、つまり0である。
,Vinst.n)を、対象となる命令nの値において作用させることから成り、ここ
で、VHn−1は、レジスタ24に記録された先のハッシュ演算の結果(または、
第1の命令の場合では初期化の値)であり、Vinst.nは、対象となる命令nの数
値である。
ジスタ24に記録される(ステップ42)。この毎回のハッシュ演算のたびにレ
ジスタの内容の再更新の手続きによって、最後の初期化以来実行された命令コー
ドおよびアドレスの暗号方式的にハッシングされたものを、恒久的に保持できる
ことに留意する。
れる(ステップ44)。
が、実行すべき別の命令を含んでいるかを明確にする(ステップ46)。
ードバックB1する。そこで、次の命令(Inst.2)の次の値は、命令レジスタ2
から読み取られ、命令Inst.1と同じように、ハッシュ演算が適用される。ただ
、今回のハッシングは、まず命令Inst.2の数値と、先のハッシュ演算の際に得
られた結果、すなわちレジスタ24内にその時在る値VH1(nはここでは2に等
しい)とで行われる。
、ステップ36から46の全体は、命令レジスタ2から読み取られるそれぞれの
命令Inst.1,Inst.2,Inst.3,…,Inst.nごとに、ループで続行され、命令
Inst.i(iは1からnの間の整数である)については、レジスタ24における値
VHni−1と、値Vinst.iとでハッシングが行われる。
nst.nがこのように一旦処理されると、この監視ユニットは、第2の監視命令In
st.n+1を受信するが、この第2の監視命令は、監視されるプログラムまたは
プログラムの部分の最後の命令Inst.nの後に続くものである。
すること(ステップ48)、およびレジスタ24の内容をこの値Vrefと比較する
こと(ステップ50)をコマンドする。このコマンドは、ループ“lda−sta”に
よって実現することができる。
スタ24に含まれている値が、前回のハッシュ結果VHn−1と、命令n(図2の
例においては36に等しい)の数値とによって実現されたハッシュ結果VHnであ
ることが想起される。
の命令、Inst.1,Inst.2,Inst.3,…,Inst.nが確実にプロセッサ4に送ら
れた場合に、監視ユニット22が値VHnとして与えるべきであろうものに等しく
なるように、前もって決定される。
nst.nの良好なランを確認することができ:VHn=Vrefである場合(ステップ5
2)、全ての命令が、実際にプロセッサ4へ送られたと仮定する。監視演算は、
命令Inst.1,Inst.2,Inst.3,…,Inst.nを含むプログラムまたはプログラ
ムの部分については、ここで終了する。
n≠Vref)ことを示す場合、全ての命令、Inst.1,Inst.2,Inst.3,…,Ins
t.nがプロセッサ4へ送られていなかったか、あるいは、正しい順序で送られて
いなかったと仮定する(ステップ54)。実際、連続するハッシュ演算の結果は
、それらが行われた順序に依存する。
グラムが正しくランしなかったことの記録のようなアクション(ステップ56)
をコマンドする。
説明される。この変型によると、監視ユニット22により、新規の命令を受信す
るたびにハッシュ演算を行う代わりに、第2の監視命令の受信後にのみ、ハッシ
ュ演算の全体を実現する。図4のフローチャートでは、図3を参照して先に記載
されたステップと同一なものには、同じ参照番号がつけられ、簡潔さのために、
改めて説明されることはない。
図3および4)。命令レジスタ2から命令の値Vinst.nを読み取るステップ38
の後、監視ユニット22は、この値の記録を行う(ステップ39)。この記録は
、計算機26の内部レジスタに、又はレジスタ24の専用セクションに、あるい
は監視ユニット22の特別なメモリ(図示せず)、さらに又は外部メモリが監視
ユニットによってアクセス可能になるとすぐに監視ユニット22の外部メモリに
行われることができる。
値Vinst.nを記録するステップ39は、ステップ46から、nを1単位インクリ
メントするステップ36までを接続するループB1の中にあり、従って、それぞれ
の値Vinst.nは、ステップ46における第2の監視命令の検知まで、このように
記録されることが分かる。
ップ48)、ステップ49において、図3で先に記載されたステップ40および
42と同じアルゴリズムによって、前もって記録された値Vinst.の全体に基づい
て、ハッシングを行う。その時、ハッシングの最終値VHnは、図3の方法の場合
と同じである。ステップ48および49の順序を逆にすることが可能であること
に注目される。
ロック図である。命令カウンタ6、命令レジスタ2およびプロセッサ4とのその
機能について、プログラム実行装置20への組み込みは、図2および3を参照し
て記載されている第1の実施態様と同じであり、簡潔さのために、繰り返しはさ
れない。
よって、第1の実施態様の監視ユニットと本質的に区別されており、該メモリは
、一連の命令Inst.1−Inst.nの実行が、図3および4を参照して説明された基
準に従って正しくランされなかった回数を記録する。
メモリ(英語での呼称EEPROMで普通知られている)の形で製作されている。
おいて不正な実行が確認されるたびに、1単位インクリメントするカウント値VC
を記録する。このように、このカウント値VCは、一連の命令の不正なランの数を
検知し、その結果、例えば、この数が閾値を超えた場合、プログラムを備えた装
置(例えばチップカード)の今後の一切の使用を無効にすることによって動作す
ることを可能にする。
ウント値VCの使用例を示している。この例は、図3のフローチャートのステップ
30から54の全体、または図4の類似のステップを有している。
1−Inst.nの予定外の実行を検知するとき、計算ユニット26は、最初は0に
等しかったメモリ60におけるカウント値VCを、1単位インクリメントする(ス
テップ62)。次に、それは、このようにインクリメントしたカウント値VCが、
所定の閾値VCseuilに達したか否かを検証する(ステップ64)。この閾値VCseu
ilは、命令Inst.1−Inst.nの予定外の実行が、プログラムされた装置において
不意に生じてもよい回数に対応し、その後、このような不良に対応するための決
定的な対策が取られる。チップカードの背景における例としては、読取り装置(
プログラム実行装置20)に関する一時的な損傷であるかもしれないという疑い
のために、このような不良のほどほどの数(例えば、3または4)を認めること
ができるが、この数を超えると、カードが、事故か、あるいは悪意によって改竄
されたとみなさなければならない。このような実施の場合、プログラム装置に物
理的に接続した、このような不良の実行の履歴を保持するために、プログラムさ
れた装置(カード)に値VCを書き込むことも想定できる。
および/またはオペレーティング・システムへの単なる警告メッセージを有する
先に記載されたような割込みコマンドInt.を作成し(ステップ66)、それをプ
ロセッサ4に伝送する(ステップ68)。
、予定外に実行される命令を含むプログラムされた装置の今後の一切の使用を禁
止する命令を有する先に記載されたような割込みコマンドInt.を作成し(ステッ
プ70)、それをプロセッサに伝送する(ステップ68)。この場合、メモリ6
0を再プログラムしただけではこの装置を再使用することは不可能である。この
メモリ60が、EEPROMまたは他の不揮発性メモリの形態である場合、このような
再プログラミングは不正なやり方では非常に実現するのが困難である。
ラムの割込みコマンドInt.は、プロセッサのレベルで、または、監視ユニット2
2のレベルで実行することができることに留意する。
どのようにして、ジャンプまたは飛び越しを備えたプログラムを監視するために
実施されるかを説明する。
つの命令セットから構成されるプログラムまたはプログラムの一部分を、命令レ
ジスタ2に有する。 −Inst.EI1−1からInst.EI1−j(jは1より大きい整数である)の第1の命
令セット:その最後の命令EI1−jは、次に続く他の2つのセットのどちらかへ
の条件分岐をコマンドするコードである。 −Inst.EI2−1からInst.EI2k(kは1より大きい整数である)の第2の命令
セット:このセットの第1の命令Inst.EI2−1は、条件分岐の命令EI1−jが
実行されてから行われるが、それは該条件分岐の命令によって与えられた2つの
条件のうちの1つ目が満たされている場合である。 −Inst.EI3−1からInst.EI3l(lは1より大きい整数である)の第3の命令
セット:このセットの第1の命令Inst.EI3−1は、条件分岐の命令EI1−jが
実行されてから行われるが、それは該条件分岐の命令によって与えられた2つの
条件のうちの2つ目が満たされている場合である。
ジャンプを有さない。(第1の命令セットの場合、命令EI1−jへの条件ジャン
プは、シーケンスの最後にある。)このように、3つの命令セットのそれぞれに
ついて、全ての命令は、最初のものから逐次的に実行されるよう予定されるので
ある。
図2から6を参照して上記に記載された第1の監視命令と第2の監視命令をそれ
ぞれ加える。
の部分の監視は、以下のように行われる。
)。
先頭に位置付けられた第1の監視命令は、まず、監視ユニット22にロードされ
る。この命令への応答として、監視ユニットは、その命令カウンタとハッシュ値
VHのレジスタ24を初期化し(ステップ34、図3)、第1の命令セットのそれ
ぞれの命令Inst.EI1−1からInst.EI1−jについて、図3のステップ36から
46に沿ってハッシングルーチンを進む。
ニット22によりハッシングされてから、プロセッサ4へ伝送される。
46)であり、それは、レジスタ24に記録された最後のハッシュ値と、この第
2の命令に関連した基準値Vrefとの比較段階を引き起こす。
値が基準値Vrefに対応しないことが検知された場合、監視ユニット22は、プロ
グラムの割込みステップ54および56(図3または4)、あるいは54から7
0(図6)に進む。しかもプログラムが条件分岐を実行する前に、この割込みを
起こすことを、好ましくは想定する。これは、例えば、監視ユニットから来る有
効化の待機命令を有するジャンプ命令と連合することによって、周知のプログラ
ミング技術を用いて、実現することができる。
値が、基準値Vrefに実際に対応することが検知された場合、監視ユニットは、セ
ットの最後の命令EI1−jによって決定された条件分岐の実行を許可する。プロ
グラムは、この最後の命令によって与えられた分岐の条件に従って、2番目また
は3番目の命令セットのどちらかへと続行する。
と仮定する。この場合、命令カウンタ6は、命令ポインタ8を、第1の命令セッ
トEI1の末尾の第2の監視命令から、第3の命令セットEI3の先頭の第1の監視
命令へと、直接移行させる。
い第1の命令を実行する。従って、この第3の命令セットのための監視手続きは
、第1の命令セットについてと全く同じように続行される。このように、監視ユ
ニット22は、第1のセットについてと同じ“種”の値(ここでは、0に対応す
る)で、ハッシングを開始することで、このセットから読み取られた命令のそれ
ぞれの連続的ハッシングを行う。今回は、第2の監視命令は、この第3の命令セ
ットに位置する実行においての予定外のランを発見し、ステップ56において同
じタイプのアクションを行うことを可能にする。
分岐命令の実行の後の第2の命令セットへの分岐の場合に、きちんと同様な方法
で適用されることが理解されるであろう。
生じた、独立して監視される命令セットもまた、監視ユニット22によって数え
ることができるようにすることが可能である。
それぞれの割込みにかかわる命令セットを、そのメモリ60に記録することがで
きる。割込みが起こった命令セットに応じてプログラムの今後の使用を無効にす
る基準をつくることも可能である。
又は、それに機能的に組み込まれることができることも理解されるであろう。
段の面で容易に理解されること、そしてその逆も明白である。同様に、記載され
た発明は、実施態様の明白な全ての転用又はその他の形への変型をも網羅するこ
とが理解されるであろう。
の役割を説明することを目的とする、単純化されたブロック図である。
ることをねらいとする、プログラム実行装置の単純化されたブロック図である。
ることをねらいとする、プログラム実行装置の単純化されたブロック図である。
ある。
令セットを簡略化して示している。
Claims (34)
- 【請求項1】情報処理プログラムの一連の命令(Inst.1−Inst.n)の実行
のランの監視方法であって、監視されるプログラムを実行するためのプロセッサ
(4)に伝送される命令シーケンスを分析することと、前記プログラムと共に記
録される基準データ(Vref)を参照してこの分析結果を検証することから成る方
法。 - 【請求項2】基準データは、前もって規定された値(Vref)を有し、該値は
、プログラムのランの際に命令シーケンスの全ての命令(Inst.1−Inst.n)が
実際に分析された場合にのみ、監視方法実施の際に実現される分析結果に対応す
るものであることを特徴とする、請求項1に記載の方法。 - 【請求項3】命令シーケンス(Inst.1−Inst.n)の前記分析が、プロセッ
サ(4)に伝送されるそれぞれの命令からデータを抽出(38)し、このように
抽出されたそれぞれのデータに所定の計算(40,42)をすることを含み、検
証が、分析結果を基準データ(Vref)と比較(50)することを含むことを特徴
とする、請求項1または2に記載の方法。 - 【請求項4】分析結果の前記検証が、監視すべきプログラム内の所定の箇所
に置かれた1つの命令(Inst.n+1)によって引き起こされ、この命令は、命
令セット(Inst.1−Inst.n)に関する基準データ(Vref)を含み、該命令セッ
トの正しい実行が監視すべきものであることを特徴とする、請求項1から3のい
ずれか1つに記載の方法。 - 【請求項5】監視すべき命令セットの命令(Inst.1−Inst.n)が、16進
法または10進法で記録されたコードのような1つの値の形式で存在するとき、
命令の前記分析をそれらの数値とみなして行うことを特徴とする、請求項1から
4のいずれか1つに記載の方法。 - 【請求項6】以下から成るステップを含む、請求項1に記載の方法。 −監視すべきプログラムを作成する際 −監視すべきそれぞれの命令において識別可能なデータに適用される予め設定
された規則に従って規定された基準値(Vref)を、プログラムの1つの命令シー
ケンス(Inst.1−Inst.n)の少なくとも1つの所定の箇所に挿入し、 −監視すべきプログラムを実行する際 −実行するために受信したそれぞれの命令において識別可能な前記データを取
得(38)し、 −このように得られた前記の識別可能なデータに、予め設定された前記規則を
適用し(40,42)て、検証値(VHn)を規定し、 −この検証値が、プログラムと共に記録されている基準値に実際に対応するこ
とを検証する(50)。 - 【請求項7】監視されるプログラムが予定されたようにランされないことが
分析によって明らかにされた場合、監視されるプログラムのランの割込みステッ
プ(56)をさらに含むことを特徴とする、請求項1から6のいずれか1つに記
載の方法。 - 【請求項8】監視されるプログラムが予定されたようにランされない所定の
回数が前記分析によって明らかにされた場合、監視されるプログラムを備えた装
置の今後の使用を無効にするステップ(70)をさらに含むことを特徴とする、
請求項1から7のいずれか1つに記載の方法。 - 【請求項9】監視すべき命令セットが、その予定されたランにおいてジャン
プを含まないことを特徴とする、請求項1から8のいずれか1つに記載の方法。 - 【請求項10】監視すべきプログラム(EI1,EI2,EI3)またはプログラ
ムの部分が、少なくとも1回のジャンプを備えているとき、2つの連続する命令
の間にジャンプを含まないこのプログラムの命令セットに、別々に監視方法を適
用することを特徴とする、請求項1から8のいずれか1つに記載の方法。 - 【請求項11】監視すべきプログラムが、処理されるデータに依存するジャ
ンプを引き起こす命令(EI1−j)を有するとき、ジャンプの前にある命令セッ
ト(EI1)と、このジャンプの後にくる少なくとも1つの命令セット(EI2,EI
3)とに対して、別々に監視方法を実施することを特徴とする、請求項10に記
載の方法。 - 【請求項12】ジャンプを備える命令セット(EI1)について、この命令セ
ットの検証値(VH)を得る分析のために、このジャンプをコマンドする命令セッ
ト(EI1−j)を組み込み、この命令セットの良好なランをこのように検証して
からジャンプの命令を実行することを特徴とする、請求項11に記載の方法。 - 【請求項13】分析を再初期化してから、監視すべきシーケンスまたは命令
セット(EI1,EI2,EI3)をそれぞれ新たに監視することを特徴とする、請求
項1から12のいずれか1つに記載の方法。 - 【請求項14】新たな監視のたびの分析の再初期化が、先の分析の際に得ら
れた検証値(VH)を消去するか、または置き換えることから成ることを特徴とす
る、請求項13に記載の方法。 - 【請求項15】監視の分析の再初期化が、保護されたソフトウェアによって
コマンドされることを特徴とする、請求項13または14に記載の方法。 - 【請求項16】分析によって検証値(VH)が生成され、該検証値が、命令セ
ットの分析されるそれぞれの命令(Inst.1−Inst.n)の分析とともに連続的に
進行する一連の値の最後の値として得られ、このように、監視方法のランの内部
状態を含み、その進行に付随することを可能にすることを特徴とする、請求項1
から15のいずれか1つに記載の方法。 - 【請求項17】先行する命令(Inst.n−1)に続く対象となるそれぞれの
命令(Inst.n)について、分析は、対象となる命令から得られた値(VHn)と
、先行する命令において実施された同じ演算によって得られた結果(VHn−1)
とについて、同時に演算結果を計算する(40,42)ことから成ることを特徴
とする、請求項1から16のいずれか1つに記載の方法。 - 【請求項18】分析は、監視されるそれぞれの命令から得られた値について
、ハッシュ関数f(VHn−1,Vinst.n)を再帰的に適用することから成り、最
後に行われた初期化から開始することを特徴とする、請求項1から17のいずれ
か1つに記載の方法。 - 【請求項19】分析は、演算コードおよび最後に行われた初期化以来実行さ
れたアドレスの全体について、必ずしも暗号化ではない冗長計算を行うことによ
って、検証値を進行させることから成ることを特徴とする、請求項1から17の
いずれか1つに記載の方法。 - 【請求項20】分析は、連続する中間値を計算することによって、比較値(
VCn)を得ることから成り、これらの命令の実行の間、この計算のために用いら
れるそれぞれの命令のデータを取得するのに応じて行われることを特徴とする、
請求項1から19のいずれか1つに記載の方法。 - 【請求項21】分析は、検証に必要なそれぞれのデータをバックアップする
ステップを含み、該データは、監視すべき命令セットの命令(Inst.1−Inst.n
)から、それらが実行されるのに応じて取得されることと、すべての必要なデー
タが一度得られると、必要な時にのみ、これらのデータから検証値(VHn)の計
算を行うことを特徴とする、請求項1から19のいずれか1つに記載の方法。 - 【請求項22】情報処理プログラムの一連の命令(Inst.1−Inst.n)の実
行のランの監視装置であって、監視されるプログラムを実行するためのプロセッ
サ(4)に伝送される命令シーケンスを分析する手段(22−26)と、前記プ
ログラムと共に記録された基準データ(Vref)を参照してこの分析結果(VCn)
を検証する手段(26)とを有する装置。 - 【請求項23】検証値(VHn)を得るために、分析手段(26)によって行
われる連鎖的な計算において、中間結果(VH)を記録することを可能にするレジ
スタ(24)を有することを特徴とする、請求項1から21のいずれか1つに記
載の監視方法を実施するのに適した請求項22に記載の装置。 - 【請求項24】監視されるプログラムを実行する際、例えば、プログラムに
おけるジャンプの折りに、伝送される命令(Inst.n+1)のコマンドのもと、
所定の値の記録またはレジスタ(24)をゼロにリセットすることを可能にする
手段を含むことを特徴とする、請求項23に記載の装置。 - 【請求項25】分析手段(26)によって決定されるような、監視されるプ
ログラムの予定外のランの数のカウント手段(60)と、この数が所定の閾値(
VCseuil)に達した場合、監視すべきプログラムの今後の使用を無効にするため
の手段とを有することを特徴とする、請求項22から24のいずれか1つに記載
の装置。 - 【請求項26】監視すべき前記プログラムを含む、チップカードのようなプ
ログラムされた装置に、内蔵されていることを特徴とする、請求項22から25
のいずれか1つに記載の装置。 - 【請求項27】プログラム実行装置(20)に内蔵されていることを特徴と
する、請求項22から25のいずれか1つに記載の装置。 - 【請求項28】情報処理プログラムの一連の命令(Inst.1−Inst.n)を実
行するためのプログラム実行装置(20)であって、実行のために伝送された命
令シーケンスを分析するための手段(22−26)と、監視すべきプログラムと
共に記録された基準データ(Vref)を参照してこの分析結果を検証する手段とを
有することを特徴とするプログラム実行装置。 - 【請求項29】請求項1から21のいずれか1つに記載の方法を実施するの
に適した、請求項28に記載のプログラム実行装置(20)。 - 【請求項30】記録された一連の命令(Inst.1−Inst.n)を有するプログ
ラムされた装置であって、基準データ(Vref)をさらに有し、該基準データは、
前記命令に含まれるデータに応じて予め設定され、請求項1から21のいずれか
1つに記載の分析された命令シーケンスの検証を可能にすることを特徴とする、
プログラムされた装置。 - 【請求項31】チップカードの形態で存在することを特徴とする、請求項3
0に記載の装置。 - 【請求項32】基準データ(Vref)が、メモリに固定された布線式の値の形
式で記録されていることを特徴とする、請求項30または31に記載の装置。 - 【請求項33】プログラムの命令シーケンス(Inst.1−Inst.n)の所定の
少なくとも1つの箇所に、基準値(Vref)を書き込む手段を有し、該基準値は、
実行の監視を望む命令セットのそれぞれの命令に含まれるデータから、前もって
規定された態様に従って計算されることを特徴とする、請求項30から32のい
ずれか1つに記載のプログラムされるための装置のプログラミング装置。 - 【請求項34】クリティカルコードの実行のために、請求項1から21のい
ずれか1つに記載の方法を実施することを特徴とする、クリティカルコードを翻
訳する仮想マシンまたはインタープリタ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR99/02924 | 1999-03-09 | ||
FR9902924A FR2790844B1 (fr) | 1999-03-09 | 1999-03-09 | Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme |
PCT/FR2000/000150 WO2000054155A1 (fr) | 1999-03-09 | 2000-01-24 | Procede de surveillance du deroulement d'un programme |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002539523A true JP2002539523A (ja) | 2002-11-19 |
JP4172745B2 JP4172745B2 (ja) | 2008-10-29 |
Family
ID=9542995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000604312A Expired - Lifetime JP4172745B2 (ja) | 1999-03-09 | 2000-01-24 | プロセッサによる命令シーケンスの実行を監視する方法および監視装置 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7168065B1 (ja) |
EP (1) | EP1161725B1 (ja) |
JP (1) | JP4172745B2 (ja) |
CN (1) | CN1350675A (ja) |
AT (1) | ATE232616T1 (ja) |
AU (1) | AU3058900A (ja) |
DE (1) | DE60001393T2 (ja) |
FR (1) | FR2790844B1 (ja) |
MX (1) | MXPA01009056A (ja) |
WO (1) | WO2000054155A1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006009081A1 (ja) * | 2004-07-16 | 2006-01-26 | Matsushita Electric Industrial Co., Ltd. | アプリケーション実行装置及びアプリケーション実行装置のアプリケーション実行方法 |
JP2007517299A (ja) * | 2003-12-31 | 2007-06-28 | トラステッド ロジック ソシエテ アノニム | 実行トレースプリントを検証することによるプログラム実行整合性の制御方法 |
JP2009288908A (ja) * | 2008-05-28 | 2009-12-10 | Dainippon Printing Co Ltd | メモリの内容を改竄する故障攻撃の検知方法、セキュリティデバイス及びコンピュータプログラム |
JP2010002975A (ja) * | 2008-06-18 | 2010-01-07 | Dainippon Printing Co Ltd | 情報処理装置、正常処理判別方法、及び情報処理プログラム |
US8161293B2 (en) * | 2005-04-20 | 2012-04-17 | Stmicroelectronics S.A. | Protection of the execution of a program executed by an integrated circuit |
US9092619B2 (en) | 2008-04-10 | 2015-07-28 | Renesas Electronics Corporation | Data processing apparatus |
JP2016045676A (ja) * | 2014-08-22 | 2016-04-04 | 富士通株式会社 | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 |
US10785259B2 (en) | 2016-04-19 | 2020-09-22 | Mitsubishi Electric Corporation | Relay device |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10148157B4 (de) * | 2001-09-28 | 2006-05-18 | Infineon Technologies Ag | Programmgesteuerte Einheit |
DE10156394A1 (de) * | 2001-11-16 | 2003-06-12 | Giesecke & Devrient Gmbh | Kontrollierte Programmausführung durch einen tragbaren Datenträger |
US20030149887A1 (en) * | 2002-02-01 | 2003-08-07 | Satyendra Yadav | Application-specific network intrusion detection |
US7533412B2 (en) * | 2002-04-23 | 2009-05-12 | Stmicroelectronics S.A. | Processor secured against traps |
FR2841015A1 (fr) * | 2002-06-18 | 2003-12-19 | St Microelectronics Sa | Controle d'execution d'un programme |
FR2849226B1 (fr) * | 2002-12-20 | 2005-12-02 | Oberthur Card Syst Sa | Procede et dispositif de securisation de l'execution d'un programme informatique. |
EP1460546A1 (fr) * | 2003-03-18 | 2004-09-22 | SCHLUMBERGER Systèmes | Procédé de sécurisation de l'exécution d'un programme dans un ensemble électronique contre les attaques par introduction d'erreurs |
DE10340411B4 (de) | 2003-09-02 | 2005-10-13 | Infineon Technologies Ag | Vorrichtung und Verfahren zur sicheren Ausführung eines Programms |
US7424709B2 (en) * | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
EP1538509A1 (fr) * | 2003-12-04 | 2005-06-08 | Axalto S.A. | Procédé de sécurisation de l'éxécution d'un programme contre des attaques par rayonnement |
JP4282472B2 (ja) * | 2003-12-26 | 2009-06-24 | 株式会社東芝 | マイクロプロセッサ |
DE102004007614A1 (de) * | 2004-02-17 | 2005-09-01 | Giesecke & Devrient Gmbh | Datenträger mit Ablaufdiagnosespeicher |
US7904775B2 (en) | 2004-04-21 | 2011-03-08 | Stmicroelectronics Sa | Microprocessor comprising signature means for detecting an attack by error injection |
US20060047955A1 (en) * | 2004-08-30 | 2006-03-02 | Axalto Inc. | Application code integrity check during virtual machine runtime |
US8364792B2 (en) * | 2005-03-09 | 2013-01-29 | Vudu, Inc. | Method and system for distributing restricted media to consumers |
US7873947B1 (en) * | 2005-03-17 | 2011-01-18 | Arun Lakhotia | Phylogeny generation |
FR2884000A1 (fr) | 2005-04-05 | 2006-10-06 | St Microelectronics Sa | Coprocesseur securise comprenant des moyens pour empecher l'acces a un organe du coprocesseur |
FR2883998A1 (fr) * | 2005-04-05 | 2006-10-06 | St Microelectronics Sa | Coprocesseur securise comprenant un circuit de detection d'un evenement |
FR2886027A1 (fr) * | 2005-05-20 | 2006-11-24 | Proton World Internatinal Nv | Detection d'erreur de sequencement dans l'execution d'un programme |
EP1894101A1 (de) * | 2005-06-23 | 2008-03-05 | Bayerische Motorenwerke Aktiengesellschaft | Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug |
FR2895814A1 (fr) * | 2006-01-04 | 2007-07-06 | Gemplus Sa | Procede de securisation de l'execution d'un programme d'ordinateur |
US7900060B2 (en) * | 2006-02-17 | 2011-03-01 | Vudu, Inc. | Method and system for securing a disk key |
US8239686B1 (en) * | 2006-04-27 | 2012-08-07 | Vudu, Inc. | Method and system for protecting against the execution of unauthorized software |
DE102006021494A1 (de) * | 2006-05-09 | 2007-11-15 | Giesecke & Devrient Gmbh | Verfahren und Vorrichtung zur Erkennung nichteindeutiger Hashwerte |
US7587663B2 (en) * | 2006-05-22 | 2009-09-08 | Intel Corporation | Fault detection using redundant virtual machines |
EP2033145B1 (en) * | 2006-06-15 | 2011-04-06 | Kabushiki Kaisha Toshiba | Portable electronic device and control method thereof |
EP1870829B1 (en) | 2006-06-23 | 2014-12-03 | Microsoft Corporation | Securing software by enforcing data flow integrity |
DE102006037810A1 (de) | 2006-08-11 | 2008-02-14 | Giesecke & Devrient Gmbh | Sichere Programmcodeausführung |
EP1923789A1 (fr) * | 2006-11-16 | 2008-05-21 | Nagracard S.A. | Procédé de contrôle de l'exécution d'un programme par un microcontrôleur |
US7644322B2 (en) * | 2006-11-21 | 2010-01-05 | Atmel Corporation | Hardware flow control monitor |
DE102006057297A1 (de) * | 2006-12-05 | 2008-06-12 | Giesecke & Devrient Gmbh | Verfahren zur Überwachung des Ablaufs eines Programms |
US8429623B2 (en) * | 2007-01-16 | 2013-04-23 | Oracle America Inc. | Processing engine for enabling a set of code intended for a first platform to be executed on a second platform |
EP2043017A1 (fr) * | 2007-04-12 | 2009-04-01 | Gemplus | Procédé d'exécution sécurisée d'une application |
FR2915007A1 (fr) | 2007-04-12 | 2008-10-17 | St Microelectronics Sa | Protection de l'execution d'un programme |
CN101689233B (zh) * | 2007-07-05 | 2013-01-02 | Nxp股份有限公司 | 安全敏感系统中的微处理器 |
DE102007038763A1 (de) * | 2007-08-16 | 2009-02-19 | Siemens Ag | Verfahren und Vorrichtung zur Sicherung eines Programms gegen eine Kontrollflussmanipulation und gegen einen fehlerhaften Programmablauf |
JP4661854B2 (ja) * | 2007-11-09 | 2011-03-30 | 株式会社デンソー | 検査システム及びプログラム |
CN101299849B (zh) * | 2008-04-25 | 2010-05-12 | 中兴通讯股份有限公司 | 一种WiMAX终端及其启动方法 |
US8667352B2 (en) * | 2008-05-27 | 2014-03-04 | Freescale Semiconductor, Inc. | Semiconductor device and method for validating a state thereof |
EP2262259A1 (en) | 2009-06-08 | 2010-12-15 | Nagravision S.A. | Method for monitoring execution of data processing program instructions in a security module |
FR2958764B1 (fr) * | 2010-04-07 | 2013-01-25 | Proton World Int Nv | Compteur d'evenements dans un systeme adapte au langage javacard |
CN102053927B (zh) * | 2010-12-29 | 2013-11-27 | 北京握奇数据系统有限公司 | 攻击监控方法及具有攻击监控功能的装置 |
FR2970357B1 (fr) * | 2011-01-07 | 2013-01-11 | Oridao | Dispositif et procede de tracage |
US20120179898A1 (en) * | 2011-01-10 | 2012-07-12 | Apple Inc. | System and method for enforcing software security through cpu statistics gathered using hardware features |
US8725644B2 (en) * | 2011-01-28 | 2014-05-13 | The Active Network, Inc. | Secure online transaction processing |
DE102011005209B4 (de) | 2011-03-07 | 2016-06-23 | Infineon Technologies Ag | Programmanweisungsgesteuerte Instruktionsflusskontrolle |
DE102011006000B4 (de) * | 2011-03-23 | 2015-01-15 | Infineon Technologies Ag | Signaturaktualisierung durch Codetransformation |
FR2977342A1 (fr) * | 2011-06-30 | 2013-01-04 | Proton World Int Nv | Verification d'integrite d'un programme execute par un circuit electronique |
WO2013021240A1 (en) | 2011-08-09 | 2013-02-14 | Freescale Semiconductor, Inc. | An electronic device and a computer program product |
US8417609B2 (en) * | 2011-08-19 | 2013-04-09 | Bank Of America Corporation | Methods and systems for modeling deposits' data |
CN103455445A (zh) * | 2012-05-31 | 2013-12-18 | 上海华虹集成电路有限责任公司 | 智能卡系统抵抗故障攻击的方法 |
US8745594B1 (en) * | 2013-05-10 | 2014-06-03 | Technobasics Software Inc. | Program flow specification language and system |
CN103383566B (zh) * | 2013-06-24 | 2015-10-28 | 奇瑞汽车股份有限公司 | 一种程序流监控方法 |
US9323920B2 (en) * | 2013-10-23 | 2016-04-26 | Infineon Technologies Ag | Data processing arrangement and method for ensuring the integrity of the execution of a computer program |
TWI712915B (zh) | 2014-06-12 | 2020-12-11 | 美商密碼研究公司 | 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體 |
FR3035240B1 (fr) * | 2015-04-15 | 2018-04-06 | Rambus Inc. | Procede de securisation de l'execution d'un programme |
EP3091437A1 (en) | 2015-05-08 | 2016-11-09 | Robert Bosch Gmbh | Method and apparatus for monitoring a control flow of a computer program |
US10552413B2 (en) | 2016-05-09 | 2020-02-04 | Sap Se | Database workload capture and replay |
CN105955115A (zh) * | 2016-05-10 | 2016-09-21 | 重庆长安汽车股份有限公司 | 一种汽车整车控制器的程序流监控方法和装置 |
GB2550903B (en) * | 2016-05-27 | 2019-06-12 | Arm Ip Ltd | Context data control |
US10298702B2 (en) | 2016-07-05 | 2019-05-21 | Sap Se | Parallelized replay of captured database workload |
EP3279826A1 (en) * | 2016-08-04 | 2018-02-07 | Nagravision SA | Sequence verification |
WO2018138793A1 (ja) * | 2017-01-25 | 2018-08-02 | 三菱電機株式会社 | 攻撃・異常検知装置、攻撃・異常検知方法、および攻撃・異常検知プログラム |
US10592528B2 (en) | 2017-02-27 | 2020-03-17 | Sap Se | Workload capture and replay for replicated database systems |
CN107194258B (zh) * | 2017-04-06 | 2019-10-01 | 珠海格力电器股份有限公司 | 监测代码漏洞的方法、装置及电子设备、存储介质 |
US10345801B2 (en) * | 2017-08-21 | 2019-07-09 | Honeywell International Inc. | Ensuring a correct program sequence in a dual-processor architecture |
US10698892B2 (en) | 2018-04-10 | 2020-06-30 | Sap Se | Order-independent multi-record hash generation and data filtering |
CN108646708B (zh) * | 2018-05-02 | 2020-05-22 | 阳光电源股份有限公司 | 一种程序流监控方法及系统 |
US20210357220A1 (en) * | 2018-07-31 | 2021-11-18 | Hewlett-Packard Development Company, L.P. | Executing instructions |
US11144375B2 (en) * | 2018-10-09 | 2021-10-12 | Argo AI, LLC | Execution sequence integrity parameter monitoring system |
US11138085B2 (en) | 2018-10-09 | 2021-10-05 | Argo AI, LLC | Execution sequence integrity monitoring system |
CN111427723B (zh) * | 2020-03-19 | 2023-05-30 | 阳光电源股份有限公司 | 基于AutoSAR的程序流监控方法及应用装置 |
US11709752B2 (en) | 2020-04-02 | 2023-07-25 | Sap Se | Pause and resume in database system workload capture and replay |
US11615012B2 (en) | 2020-04-03 | 2023-03-28 | Sap Se | Preprocessing in database system workload capture and replay |
CN116982047A (zh) * | 2021-04-06 | 2023-10-31 | 谷歌有限责任公司 | 安全密码协处理器 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4266272A (en) * | 1978-10-12 | 1981-05-05 | International Business Machines Corporation | Transient microcode block check word generation control circuitry |
DE2855865C3 (de) * | 1978-12-22 | 1981-11-19 | Ibm Deutschland Gmbh, 7000 Stuttgart | Verfahren und Einrichtung für eine elektronische Datenverarbeitungsanlage zur Prüfung der aus einer Instruktion abgeleiteten Steuersignale |
PL168163B1 (pl) * | 1991-01-18 | 1996-01-31 | Thomson Multimedia Sa | Sposób kontroli dostepu i/lub identyfikacji PL PL |
US5347581A (en) * | 1993-09-15 | 1994-09-13 | Gemplus Developpement | Verification process for a communication system |
JP2000503154A (ja) * | 1996-01-11 | 2000-03-14 | エムアールジェイ インコーポレイテッド | デジタル所有権のアクセスと分配を制御するためのシステム |
US6065108A (en) * | 1996-01-24 | 2000-05-16 | Sun Microsystems Inc | Non-quick instruction accelerator including instruction identifier and data set storage and method of implementing same |
DE69738810D1 (de) * | 1996-01-24 | 2008-08-14 | Sun Microsystems Inc | Befehlsfalten in einem stapelspeicherprozessor |
EP0976050B1 (en) * | 1996-01-24 | 2002-06-12 | Sun Microsystems, Inc. | Processor with array access bounds checking |
US5974549A (en) * | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
CN1260055A (zh) * | 1997-06-09 | 2000-07-12 | 联信公司 | 用于提高软件安全性的模糊技术 |
US6275938B1 (en) * | 1997-08-28 | 2001-08-14 | Microsoft Corporation | Security enhancement for untrusted executable code |
IL126148A (en) * | 1997-09-09 | 2004-02-19 | Sanctum Ltd | Method and system for maintaining restricted operating environments for application programs or operating systems |
US5983348A (en) * | 1997-09-10 | 1999-11-09 | Trend Micro Incorporated | Computer network malicious code scanner |
US5991414A (en) * | 1997-09-12 | 1999-11-23 | International Business Machines Corporation | Method and apparatus for the secure distributed storage and retrieval of information |
US6279123B1 (en) * | 1997-09-15 | 2001-08-21 | Lucent Technologies, Inc. | System for viewing and monitoring embedded processor operation |
US6023764A (en) * | 1997-10-20 | 2000-02-08 | International Business Machines Corporation | Method and apparatus for providing security certificate management for Java Applets |
FR2776410B1 (fr) * | 1998-03-20 | 2002-11-15 | Gemplus Card Int | Dispositifs pour masquer les operations effectuees dans une carte a microprocesseur |
US6092120A (en) * | 1998-06-26 | 2000-07-18 | Sun Microsystems, Inc. | Method and apparatus for timely delivery of a byte code and serialized objects stream |
US6418420B1 (en) * | 1998-06-30 | 2002-07-09 | Sun Microsystems, Inc. | Distributed budgeting and accounting system with secure token device access |
US6581206B2 (en) * | 1999-11-12 | 2003-06-17 | Sun Microsystems, Inc. | Computer program language subset validation |
US6859533B1 (en) * | 1999-04-06 | 2005-02-22 | Contentguard Holdings, Inc. | System and method for transferring the right to decode messages in a symmetric encoding scheme |
US6402028B1 (en) * | 1999-04-06 | 2002-06-11 | Visa International Service Association | Integrated production of smart cards |
US6615264B1 (en) * | 1999-04-09 | 2003-09-02 | Sun Microsystems, Inc. | Method and apparatus for remotely administered authentication and access control |
US6546546B1 (en) * | 1999-05-19 | 2003-04-08 | International Business Machines Corporation | Integrating operating systems and run-time systems |
US6327700B1 (en) * | 1999-06-08 | 2001-12-04 | Appliant Corporation | Method and system for identifying instrumentation targets in computer programs related to logical transactions |
AU6615600A (en) * | 1999-07-29 | 2001-02-19 | Foxboro Company, The | Methods and apparatus for object-based process control |
FR2804234B1 (fr) * | 2000-01-24 | 2003-05-09 | Gemplus Card Int | Procede de protection contre le vol de la valeur d'authentification pour cartes a puce(s) multi-applications, cartes a puce(s) mettant en oeuvre le procede et terminaux susceptibles de recevoir lesdites cartes |
US6557168B1 (en) * | 2000-02-25 | 2003-04-29 | Sun Microsystems, Inc. | System and method for minimizing inter-application interference among static synchronized methods |
US6507904B1 (en) * | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
CA2305249A1 (en) * | 2000-04-14 | 2001-10-14 | Branko Sarcanin | Virtual safe |
US6951018B2 (en) * | 2000-05-30 | 2005-09-27 | Sun Microsystems, Inc. | Method and apparatus for efficiently tracking monitors |
FR2809892B1 (fr) * | 2000-05-31 | 2002-09-06 | Gemplus Card Int | Procede de protection contre la modification frauduleuse de donnees envoyees a un support electronique securise |
FR2810481B1 (fr) * | 2000-06-20 | 2003-04-04 | Gemplus Card Int | Controle d'acces a un moyen de traitement de donnees |
US6862684B1 (en) * | 2000-07-28 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for securely providing billable multicast data |
CA2315449A1 (en) * | 2000-08-10 | 2002-02-10 | Ibm Canada Limited-Ibm Canada Limitee | Generation of runtime execution traces of applications and associated problem determination |
FR2814557B1 (fr) * | 2000-09-27 | 2002-12-27 | Gemplus Card Int | Protection contre l'exploitation abusive d'une instruction dans une memoire |
-
1999
- 1999-03-09 FR FR9902924A patent/FR2790844B1/fr not_active Expired - Fee Related
-
2000
- 2000-01-24 US US09/936,174 patent/US7168065B1/en not_active Expired - Lifetime
- 2000-01-24 MX MXPA01009056A patent/MXPA01009056A/es unknown
- 2000-01-24 DE DE60001393T patent/DE60001393T2/de not_active Expired - Lifetime
- 2000-01-24 EP EP00900650A patent/EP1161725B1/fr not_active Expired - Lifetime
- 2000-01-24 WO PCT/FR2000/000150 patent/WO2000054155A1/fr active IP Right Grant
- 2000-01-24 CN CN00807379A patent/CN1350675A/zh active Pending
- 2000-01-24 AT AT00900650T patent/ATE232616T1/de not_active IP Right Cessation
- 2000-01-24 AU AU30589/00A patent/AU3058900A/en not_active Abandoned
- 2000-01-24 JP JP2000604312A patent/JP4172745B2/ja not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007517299A (ja) * | 2003-12-31 | 2007-06-28 | トラステッド ロジック ソシエテ アノニム | 実行トレースプリントを検証することによるプログラム実行整合性の制御方法 |
WO2006009081A1 (ja) * | 2004-07-16 | 2006-01-26 | Matsushita Electric Industrial Co., Ltd. | アプリケーション実行装置及びアプリケーション実行装置のアプリケーション実行方法 |
CN100465982C (zh) * | 2004-07-16 | 2009-03-04 | 松下电器产业株式会社 | 应用执行装置及应用执行装置的应用执行方法 |
US8161293B2 (en) * | 2005-04-20 | 2012-04-17 | Stmicroelectronics S.A. | Protection of the execution of a program executed by an integrated circuit |
US9092619B2 (en) | 2008-04-10 | 2015-07-28 | Renesas Electronics Corporation | Data processing apparatus |
JP2009288908A (ja) * | 2008-05-28 | 2009-12-10 | Dainippon Printing Co Ltd | メモリの内容を改竄する故障攻撃の検知方法、セキュリティデバイス及びコンピュータプログラム |
JP2010002975A (ja) * | 2008-06-18 | 2010-01-07 | Dainippon Printing Co Ltd | 情報処理装置、正常処理判別方法、及び情報処理プログラム |
JP2016045676A (ja) * | 2014-08-22 | 2016-04-04 | 富士通株式会社 | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 |
US10785259B2 (en) | 2016-04-19 | 2020-09-22 | Mitsubishi Electric Corporation | Relay device |
Also Published As
Publication number | Publication date |
---|---|
US7168065B1 (en) | 2007-01-23 |
FR2790844A1 (fr) | 2000-09-15 |
DE60001393T2 (de) | 2003-12-11 |
WO2000054155A1 (fr) | 2000-09-14 |
JP4172745B2 (ja) | 2008-10-29 |
MXPA01009056A (es) | 2002-04-24 |
DE60001393D1 (de) | 2003-03-20 |
CN1350675A (zh) | 2002-05-22 |
AU3058900A (en) | 2000-09-28 |
EP1161725B1 (fr) | 2003-02-12 |
FR2790844B1 (fr) | 2001-05-25 |
EP1161725A1 (fr) | 2001-12-12 |
ATE232616T1 (de) | 2003-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002539523A (ja) | プログラムの実行の監視方法 | |
EP3207485B1 (en) | Code pointer authentication for hardware flow control | |
US7882396B2 (en) | Method for controlling program execution integrity by verifying execution trace prints | |
EP2958044B1 (en) | A computer implemented method and a system for controlling dynamically the execution of a code | |
JP6189039B2 (ja) | セキュアドメインおよび低セキュアドメインを使用するデータ処理装置および方法 | |
CN112639778A (zh) | 指针认证及指针认证方案之间的动态切换 | |
JP7154365B2 (ja) | ソフトウェアコードをセキュアにするための方法 | |
CN109583190B (zh) | 监控进程的方法和装置 | |
US20020108045A1 (en) | Preventing unauthorized updates to a non-volatile memory | |
EP1295200A2 (en) | Data processing method and device for protected execution of instructions | |
US11256786B2 (en) | Method to secure a software code | |
EP4310711A1 (en) | Sensitive data reading method and apparatus, electronic device, and storage medium | |
CN112100686B (zh) | 一种基于arm指针验证的内核代码指针完整性保护方法 | |
CN111881485A (zh) | 一种基于arm指针验证的内核敏感数据完整性保护方法 | |
EP3387535B1 (en) | Apparatus and method for software self test | |
CN101178762A (zh) | 抑制利用移动存储设备传播病毒的方法及移动存储设备 | |
US20230334149A1 (en) | Program processing device and program processing method | |
KR102195274B1 (ko) | 보안 모듈의 메모리 관리 | |
CN116166277A (zh) | 一种应用程序的管理装置和嵌入式设备 | |
CN116975869A (zh) | 基于地址处理的攻击防御方法、装置、电子设备及介质 | |
is also Vulnerable | Heap... Hop! |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050201 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050502 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050719 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051114 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20051125 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20051216 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080811 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4172745 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110822 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120822 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130822 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
S631 | Written request for registration of reclamation of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313631 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130822 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |