JP2001236132A - 耐タンパー性を与える方法及びプログラム - Google Patents
耐タンパー性を与える方法及びプログラムInfo
- Publication number
- JP2001236132A JP2001236132A JP2001025815A JP2001025815A JP2001236132A JP 2001236132 A JP2001236132 A JP 2001236132A JP 2001025815 A JP2001025815 A JP 2001025815A JP 2001025815 A JP2001025815 A JP 2001025815A JP 2001236132 A JP2001236132 A JP 2001236132A
- Authority
- JP
- Japan
- Prior art keywords
- differentiated section
- differentiated
- pseudo
- section
- binary sequence
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000006870 function Effects 0.000 claims abstract description 92
- 230000008859 change Effects 0.000 claims description 4
- 230000004048 modification Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 abstract description 2
- 230000002093 peripheral effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001388118 Anisotremus taeniatus Species 0.000 description 1
- 101150071746 Pbsn gene Proteins 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
を提供する。 【解決手段】 耐タンパー性は、プロセッサおよびその
周辺機器,ドライバの1つの区別化されたセクションで
排他的に利用できるファンクションを、他の区別化され
たセクションから呼び出すことによって、ソフトウェア
部分の動作の読み取りを防ぐために与えられる。疑似ラ
ンダム2進シーケンス・ジェネレータ110,120
は、このような区別化されたセクションの各々と関連
し、それぞれ、このファンクションの呼び出しおよび実
行にしたがってインクリメントすることができる。ソフ
トウェアのさらなる実行を許可または防止する前に、疑
似ランダム2進シーケンス値が、比較される。この比較
は、全ての特権レベルで行うことができ、本発明の変形
は、比較を実行する付加的な特権ファンクションを用い
ることによって、付加的なセキュリティを与える。
Description
ータのソフトウェア・アプリケーションのセキュリティ
の形成に関し、特に、無許可の人によるアプリケーショ
ン・プログラムの動作の読み取りを防ぐための装置に関
する。
トウェアの数および多様性は、過去数年の間に拡大され
てきた。コンピュータのハードウェア開発は、このよう
なアプリケーション・プログラムのファンクションを著
しく拡大させ、従って、書き込まなければならないコー
ドの量および他の開発コストが、著しく増大した。同じ
時期に、無許可の複製によって失われるこのようなプロ
グラムの価値に対するソフトウェアのベンダーの認識が
増大してきている。従って、今日、ソフトウェア・ベン
ダーが、個々のプログラムのコピーの登録を要求した
り、あるいは、特定のユーザにサイト・ライセンスを販
売したり、また、プログラム・コピーが登録されている
人以外の人による、アプリケーションまたはアプリケー
ションの主要部分の実行を防ぐ機能を、プログラムに含
ませることは、通常行われていることである。
ってアクセスが許可される場合を除いては、ソフトウェ
アの大部分を使用不可にすることによって行われる。殆
ど同様に、潜在的な購入者がソフトウェアを買うか否か
を決定するのに十分なほど実行することができるデモス
トレーション・コピーの機能と同様の削減機能を有する
形態で、ユーザに、可能な限りオンラインで、ソフトウ
ェアを提供することによって、ソフトウェアの販売を促
進することは、通常行われていることである。その際、
初期的には使用不可のファンクションを使用可能にする
ことが、購入,支払い,および登録の際に遠隔的に行わ
れる。また、このような変換可能な形態のソフトウェア
の配布は、デモンストレーション・コピーとして個別バ
ージョンを作製する必要性を回避するという利点と、1
つのコピーを他のコピーによって破壊する可能性とを与
える。
および複雑さのレベルを拡大し、良好なレベルのセキュ
リティを実現する一方、このような特徴が、アプリケー
ション・プログラムの変更によって無効にされて、この
ような特徴が活用されなくなることは自明のことであ
る。プロテクトされたソフトウェアのファンクション、
およびプロテクトされたファンクションへのアクセスを
復元するプロセスは、一般に、“ハッキング(hack
ing)”と呼ばれ、ハッキングはまた、一般に、パス
ワードのプロテクション,ユーザーの識別または認証な
どを無効にする。プログラム変更のプロセスは、しばし
ば、“パッチング(patching)と呼ばれる。ハ
ッキングによるプログラムの変更を困難にする特性は、
“耐タンパー性(tamper resistanc
e)と呼ばれる。もちろん、“耐タンパー性”は、デー
タベースおよびアプリケーション・プログラムのような
多くの種類のソフトウェアにとって望ましい特性であ
る。
しば、プロセッサに含まれる特権レベルと、いわゆる特
権命令との概念を含む。特権命令は、一般に、プロセッ
サ・アーキテクチャの制限された機能へのアクセスを許
可することが要求される。例えば、特権命令または特権
ファンクションは、プロセッサ内のプロテクトされた専
用デバッグ・レジスタのロードおよびアンロードと、割
り込みベクトルのフックと、重要なオペレーティング・
システム(OS)メモリ領域および入力/出力(I/
O)ファンクションのオペレーションとを含むことがで
きる。これらの特権ファンクションは、低い特権レベル
のアプリケーションによってコントロールされる(例え
ば、要求される)が、実際には、より多くの特権オペレ
ーティング・システム要素によるアプリケーション・プ
ログラムの通常オペレーションの際には、より高い特権
レベルの他の構造またはソフトウェアによって行われ
る。特に、I/Oファンクションの実行はOSの最高特
権レベルに限定され、より低い特権レベルで動作または
実行するアプリケーションによっては実行されることは
できず、要求されるにすぎない。
せて、アプリケーション・ソフトウェアを、より安全に
するためには、アプリケーションと協働して動作し、よ
り低い特権アプリケーションに代わってこれらの特権オ
ペレーションを行う特権コンパニオン・ソフトウェア・
モジュール(通常は、デバイス・ドライバの形態で)を
開発する必要がある。アプリケーションが、システム保
全性を検証するか、あるいは、特定の種類のタンパリン
グ(tampering)が生じたか否かを判断する必
要性を有する(あるいは、プログラマーによって判断さ
れるときに、必要性を有するべきである)場合に、アプ
リケーションは、特権モジュールを呼び出して、これら
のサービスを実行することができる。残念なことに、こ
のような機構およびそのかなり広範囲の使用は、アプリ
ケーションと特権モジュールとの間のインターフェース
を、セキュリティ機能を無効にしようとするアタック
(attack)の論理的箇所とする。例えば、特権モ
ジュールへのセキュリティ関連の呼び出しをパッチアウ
トすることは、多くの場合、耐タンパー性および実行す
ることが意図される保全性検査の機能を無効にするであ
ろう。
ではないが、耐タンパー性は、一般に、アプリケーショ
ンおよび対応する特権モジュール内の、このような手段
で(例えば、より多くの技術,トラップ,および相互依
存性によって)与えられる複雑さのレベルが増大するに
つれて、与えられた時間と労力の範囲で、それら手段を
無効にすることに成功し、アプリケーションまたはデー
タ保全性を損い、あるいは、含まれるシークレットへの
アクセスを得る可能性は低下する。残念なことに、この
ような複雑さはまた、ソフトウェア・アプリケーション
の信頼性および/または安定性(すなわち、例えば、デ
ータベースおよび/またはエラー回復システムの頑強
性)、およびソフトウェア自体の実行速度および効率を
損なう。従って、今日まで、アプリケーションの実行効
率と、アプリケーション自体およびそのデータのセキュ
リティとの間には、避けられないトレード・オフ(tr
ade−off)がある。
は、タンパリングの検出と、タンパリングが検出される
とファイルの実行の終了とによって、ソフトウェアのセ
キュリティを増大する方法を提供することにある。
効率を大きく低下させることなしに、ソフトウェアの有
効なセキュリティを提供することにある。
よるソフトウェア動作の読み取りを防ぐことにある。
の使用不可またはプロテクトされた部分の、無許可の使
用可能化または読み取りを防ぐことにある。
他の目的を実現するために、第1の区別化されたセクシ
ョンが第2の区別化されたセクション上で利用できない
ファンクションを実行できる、複数の区別化されたセク
ションを有するプロセッサ上で実行されるソフトウェア
に耐タンパー性を与える方法と、この方法を実行するた
めのコマンドを含むソフトウェアとが提供される。この
方法は、第2の区別化されたセクションと関連する第1
の疑似ランダム2進シーケンス・ジェネレータをインク
リメントするステップと、第1の区別化されたセクショ
ンのファンクションを、第2の区別化されたセクション
から呼び出すステップと、第1の区別化されたセクショ
ンと関連する第2の疑似ランダム2進シーケンス・ジェ
ネレータをインクリメントするステップと、ファンクシ
ョンを実行するステップ(疑似ランダム2進シーケンス
値の比較を含み、あるいは、疑似ランダム2進シーケン
ス・ジェネレータのインクリメントに加えて1つ以上の
オペレーションを含むか含まない)と、前記第1および
第2の疑似ランダム2進シーケンス・ジェネレータの疑
似ランダム2進シーケンス値を比較するステップと、前
記比較するステップの結果によって、前記ソフトウェア
の実行を制御するステップとを含む。
されたセクションが、他の区別化されたセクション上で
利用できないファンクションを実行することができる、
複数の区別化されたセクションを有するプロセッサ上で
実行されるソフトウェアに耐タンパー性を与える方法
と、この方法を実行するためのコマンドを含むソフトウ
ェアとを提供する。この方法は、アルゴリズムと第1の
区別化されたセクションの疑似ランダム2進シーケンス
値を用いて、データを更新するステップと、逆のアルゴ
リズムと、第1の区別化されたセクションにおける疑似
ランダム2進シーケンス値とを用いて、データを更新す
るステップとを含み、前記第1の区別化されたセクショ
ンおよび前記他の区別化されたセクションの疑似ランダ
ム2進シーケンス値が同じであると、前記アルゴリズム
によって更新されたデータが、復元される。
点は、本発明の好適な実施例の以下の詳細な説明から、
図面を参照することによってより理解されるであろう。
の概略ブロック図の形態で、本発明の一実施例100を
示す。図1には、矢印104で示すように、任意のタイ
ム・スケール(左から右へ)が与えられ、実線のブロッ
クは、ハードウェアまたはソフトウェアのいずれかで実
施することができる機能的要素を示すことに注意すべき
である。点線で示すブロックは、プロテクションが望ま
れるソフトウェア・シーケンスを示す。図2および図3
では、シーケンスは、上から下に進み、示された各ファ
ンクションが実行されるソフトウェアは、図1が、特権
レベルを分ける点線106で分けられているのと同様
に、左または右に分離されている。従って、図1と図2
および図3とは、同じ内容を異なる強調および観点で示
すものである。対応する参照符号は、可能なところで用
いられている。(図4および図5についても、同様であ
る。) 疑似ランダム2進シーケンス(PRBS)ジェネレータ
は、当業者によって認識されているように、周知であ
り、多くの形態で用いられ、実現されている。一般に、
PRBSジェネレータは、複数の記憶デバイスを含むこ
とができる論理アレイとして実施される。しばしば用い
られるPRBSジェネレータの形態は、シフトレジスタ
の性質上、直列に接続されたフリップフロップの列を用
いる。種々の長さのこのようなシフトレジスタでは、真
値または補数値のいずれかとしての、あるステージの出
力の他のステージへのフィードバックは、他のステージ
の出力と論理的に組み合わされ(より一般には、マスク
と呼ばれる)、真のランダム値とほぼ同じの統計的特性
を有する長い論理値列を作成することができることが分
かっている。もちろん、このようなハードウェアによる
実現は、技術上周知の方法で、ソフトウェアでシミュレ
ートすることができ、また、しばしばシミュレートされ
る。(実際には、以下に詳細に説明するように、本発明
の実施には、ソフトウェアによる実現が、極めて好適で
ある)。
与えられた記憶ステージの数に対して極めて長くするこ
とができる。PRBSジェネレータの出力は、単一のス
テージから直列に、あるいは、内部タップから並列に任
意の長さのバイト(最大記憶ステージの数まで)で並列
に引き出すことができる。任意の長さとすることができ
る多数の2進数の後に、PRBSは繰り返すが、シーケ
ンスの開始ポイントは、例えば、PRBS内の記憶デバ
イスの初期記憶状態として、PRBSジェネレータに最
初に与えられる特定の値によって任意のポイントで開始
することができる。これら初期状態は、集合的に、シー
ド値と呼ばれる。従って、PRBSジェネレータから引
き出すことができる固有シーケンスの数は、繰り返しシ
ーケンスにおける2進数の数に等しい。
々異なる論理アレイ相互接続またはマスク(例えば、個
々のステージの出力のフィードバックまたは論理的組合
せ)は、固有の2進シーケンスを与える。さらに、同じ
2進シーケンスは、同じマスク,同じ記憶ステージの数
を有し、同じシード値で初期化される、機能的に同一の
PRBSジェネレータから引き出されるのみである。従
って、PRBSシーケンスは、これらのパラメータの予
備知識なしに複製することは困難である。
BSジェネレータ110および120(すなわち、同じ
マスクおよび同じステージ数nを有している。)を使用
し、これらは、同じシード値で初期化され、それぞれ、
特権呼び出しの要求および実行の際にインクリメントさ
れる。これら同一のPRBSジェネレータのうちの1つ
は、特権レベルの各々において与えられ、もしくは、特
権レベルの各々にアクセス可能にされ、特権レベルの間
は、本発明の原理によって耐タンパー性が与えられてい
る。PRBSジェネレータからのPRBSは、より高い
特権レベルまたはより低い特権レベルのいずれか(ある
いは、各レベルにおけるPRBSに基づく異なる特権レ
ベルの両方において実行される他のファンクション)に
おいて比較される。また、実行の割り込み、およびより
高い特権ファンクションの結果の中断は、個々のPRB
S信号が同一でないときに常に実行される。オペレーシ
ョンのこの基本モードは、非常に高速に実行することが
でき、頻繁に繰り返されても、ソフトウェアの実行効率
を大きく低下させず、また、図4および図5を参照し
て、以下により詳細に説明するように、容易に拡張する
ことができる。
BSジェネレータ110または120を有する2つの特
権レベルが示されていることが分かる。これらの特権レ
ベルは、Windows−Intel環境の用語と調和
するリング3(低い特権レベル)およびリング0(高い
特権レベル)として示される。しかし、本発明は、異な
るファンクションが、異なる特権レベルで実行される
か、あるいは、特定の分離されたハードウェア,ソフト
ウェア,またはファームウェアによる実行に限定され
る、あらゆる環境に十分適合できることを理解すべきで
ある。例えば、コマンドの実行のために、特定のデータ
・パスまたはレジスタを要求することができる。
成功的実施については、プロセッサまたはその周辺機
器、あるいはドライバが、個別の同一の(あるいは、同
一に構成されて初期化されている)PRBSジェネレー
タに関連させることができる区別化されたオペレーショ
ナル・セクションを有する(あるいは、有するように構
成できる)ことが必要とされるだけである。1つのこの
ような区別化されたセクションは、他の区別化されたセ
クションでは利用できないファンクションを実行するこ
とができる。従って、用語“区別化されたセクション
(differentiated section)”
は、これらの条件を満たす全てのそのような可能な構成
を含むものと理解すべきである。
をソフトウェアで実行することが、原則的には好適であ
ることが分かる。なぜならば、ハードウェア・アクセス
は、ソフトウェアによるPRBSジェネレータの実現を
要求する低い特権レベルでは拒否されうるからである。
さらに、PRBSジェネレータのソフトウェアによる実
現は、アプリケーションと、そのコンパニオン・デバイ
ス・ドライバまたはより高い特権レベルのソフトウェア
との両方において、同一のPRBSジェネレータの形
成、および、PRBSジェネレータの初期化を容易にす
る。また、本発明は、PRBSジェネレータ自体をプロ
テクトするのに用いることができ、また用いるべきであ
ることが分かるであろう。
示すように、アプリケーションまたは他のソフトウェア
が、本発明によって保護されていないファンクションを
実施および実行しているものと仮定する。また、PRB
Sジェネレータ110,120が、同じシード値,同じ
マスク,および同じn値に初期化され、従って、同じ値
を出力し、同期しているとみなすことができる。
ションに先立つプログラム命令のリスト内のある箇所
で、オペレーションA(および/またはBおよび/また
はX)のシーケンスが挿入されている。これらのオペレ
ーションは、即時シーケンスで実行することは必要とさ
れないが、これらのオペレーションの間に他のオペレー
ションを挿入させて、オペレーションの目的が無許可の
人に認識できないようにすることができる。本発明の説
明のため、命令Aのシーケンスは、3つのオペレーショ
ンA1,A2,A3からなるものとして示されている。
これらのオペレーションの各々は、複数のコマンドを含
むことができる。
特定のハードウェアで実行される1つ以上の連続するオ
ペレーション(例えば、A2)を保護するプログラムに
到達すると、202で示すように、ステップA1は、P
RBSジェネレータをインクリメントし、プロテクトさ
れたステップA2に進む。ステップA2は、204で示
すように、特権リング0(例えば、デバイス・ドライバ
内の)での所望のファンクションA(FnA )を呼び出
す。次に、ファンクションAは、PRBSジェネレータ
120をインクリメントする。次に、208で示すよう
に、ファンクションAは、所望のオペレーションを実行
し、アプリケーションに戻る。
ンA3に進み、210で示すように、PRBSジェネレ
ータ110の出力を取り出し、212で示すように、F
npを呼び出して、PRBSジェネレータ120の出力
を取り出し、214で示すように、出力をアプリケーシ
ョンに戻す。次に、オペレーションA3は、216で示
すように、PRBSジェネレータ110および120の
出力を比較する。それらの出力は共に、最初に同期化さ
れ、共にシーケンスA内で一度インクリメントされたの
で、その比較は成功し、アプリケーションは、218で
示すように続く。
明する必要はない。オペレーションB3(オペレーショ
ンA3に対応する)で、PRBS出力の比較が成功する
と、アプリケーションは、222で示すように続く。
が、登録されていない、および、リング0へのアクセ
ス、または、リング0内の全てのファンクション(また
はファンクションによって実行されるオペレーション)
が拒否されたという理由で、オペレーションA2が、許
可されていなかったならば、アプリケーションは、進む
ことができない。無許可のユーザが、ステップA1をパ
ッチアウトする(202)ことによって、このアクセス
の拒否を無効にしようと試みるならば、ステップA2
は、PRBSジェネレータ110をインクリメントする
ことなく、PRBSジェネレータ120をインクリメン
トし、A3(216)での比較は、失敗するであろう。
る試みが、オペレーションAの間に、PRBSジェネレ
ータ120のインクリメントをパッチアウトすることに
よって行われるならば、比較はまた、失敗するであろ
う。ファンクションAをパッチアウトすることによって
(例えば、オペレーションA2を削除、または“ノー・
オペレーション(NO−OP)”とすることによっ
て)、アプリケーションの連続するセクションへのアク
セスの拒否を無効にしようと(コードの比較のため)試
みることは、また、比較の失敗を生じるであろう。とい
うのは、PRBSジェネレータ110は、インクリメン
トされるが、PRBSジェネレータ120は、インクリ
メントされないからである。PRBSジェネレータ12
0および110に対するインクリメントまたはデクリメ
ントにおけるパッチによってアクセスの拒否を無効にし
ようと試みることは、また、A3での比較の失敗を生じ
るであろう。というのは、FnA および他の特権ファン
クションは、本発明によれば、ファンクションを実行す
る前に、PRBSジェネレータ120をインクリメント
するからである。
も、アプリケーションへ結果を報告する前に、比較が行
われる。比較216が失敗すると、アプリケーションの
実行は、プログラマーによって所望される全ての方法
で、例えば、記憶装置から、またはアプリケーションを
コンピュータ上にロードした記憶媒体から、アプリケー
ション、またはアプリケーションの多かれ少なかれ重要
な部分の削除を含む所望のサブルーチンに分岐すること
によって、終了することができる。
無効にするためには、最小2つのパッチが、同時かつ正
確に実行されなければならず、また、アプリケーション
の動作の予備知識を有さない無許可のユーザによってう
まく行われることはないであろう。システムの動作を読
み取ることは、本発明が防止しようとするタンパリング
の典型的なタイプであることを思い出すべきである。従
って、本発明は、たとえ、アプリケーションにおいて多
数回用いられても、あるいは繰り返されても、簡単で高
速に実行可能であるが、無許可の人にアプリケーション
の動作を暴露するタンパリングに対するプロテクション
を与えるのに非常に有効であることが分かる。
権ファンクションになり得るようなことを行う際に付加
的なファンクションが実行されるのかは、本発明の基本
原理の実施にとっては重要ではない。しかし、次に、図
1および図3の保護されたオペレーションXについて説
明されるような付加的なファンクションを実行すること
によって、付加的なプロテクションを与えることができ
る。この場合は、222で示すオペレーションX1が、
オペレーションA1で前述したように、PRBSジェネ
レータ110をインクリメントする。オペレーションX
2は、前述したように、Fnx を呼び出し(224)、
PRBSジェネレータ120をインクリメントする(2
26)。上述したように、再度、アプリケーションへ戻
る(228)。
ェネレータ110からPRBS値を取り出す(230)
が、オペレーションFnp′を呼び出し、PRBSジェ
ネレータ110からデバイス・ドライバに、PRBS値
を与える(232)。次に、特権ファンクションF
np′が、PRBSジェネレータ120からPRBS値
を取り出し、比較を行う。Fnp′は、PRBSジェネ
レータ120をインクリメントしないか、あるいはま
た、PRBSジェネレータ110および120を、それ
ぞれさらにインクリメントするために、X3およびFn
p′の両方を設けることができる。このオペレーション
は、比較がより高い(あるいは、少なくとも異なる)特
権レベルで行われることを除いては、オペレーション・
シーケンスAと同じである。しかし、実際には、無許可
の人によってパッチが不正確に与えられるより多くのロ
ケーションが与えられ、また、オペレーションA3およ
び他の特権ファンクションと比較して、規約上の不整合
がX3またはFnp′のいずれかに与えられる。
の拡張を説明する。上述した本発明の実施例は、PRB
S出力の比較が失敗した後に、アプリケーションの終
了、または、ファイルの消滅または破壊を開始できるの
に対して、図4および図5に示す本発明の拡張は、耐タ
ンパー性の一部としてファイルの破壊および修理を含
み、従って、性能において共により頑強であり、タンパ
リングが検出される前の早い時期に、プロテクト・アク
ションを生じさせる。この拡張は、上述の保護されたオ
ペレーションAの変形A′として説明される。
PRBSジェネレータ110をインクリメントするため
に行われる。しかし、402で示すように、インクリメ
ントされたPRBS値は、アプリケーションに戻され
る。オペレーションA2′は、404に示されるアルゴ
リズムXと、PRBSジェネレータ110からの現在の
PRBS値とを用いて、データおよび/またはアプリケ
ーション・プログラム・コードを意図的に消滅または破
壊させるために、PRBS値を用いる。次に、オペレー
ションA3′は、PRBS値ジェネレータ120をイン
クリメントし、新しいPRBS値を戻した後に、オペレ
ーションA′を実行するために、特権ファンクションF
nA′を呼び出す。次に、PRBSジェネレータ110
のPRBS値と現在は同じであるべきである、PRBS
ジェネレータ120からの新しいPRBS値は、PRB
Sジェネレータ120からのPRBS値と、404で破
壊されたデータまたはコードを復元するためのアルゴリ
ズムXの逆であるアルゴリズムX′とを用いて、410
に示すように、オペレーションA4を実行するために用
いられる。
というのは、データまたはコードの不正確な復元は、ア
プリケーションを休止するか、あるいは、不正確で意味
のない結果を戻す(データまたはコードは、完全にラン
ダムな2進コード・シーケンスによって破壊されたの
で)からである。さらに、データの破壊および復元以外
の特権オペレーションは、オペレーションA′内で実行
される必要はなく、実際には、プログラム動作を読み取
ろうと試みる無許可の人は、アプリケーションから情報
を得ることができない。この拡張は、単独で、あるい
は、上述したA,B,またはXのような特権ファンクシ
ョンの特定の例の代わりに、比較を用いる特権ファンク
ションと共に用いることができる。
速に実行されるが、一例では、非常に高度の耐タンパー
性を与えることが分かる。耐タンパー性手順に対し、本
発明の複数の例を与えることができ、特に、変形(例え
ば、図3)および拡張(例えば、図5)は、アプリケー
ションの実行速度を低下させることなく、実際に破るこ
とのできないプロテクションを与える。
明したが、当業者によれば、本発明が、特許請求の範囲
の趣旨および範囲内の変更を含んで実施できることが分
かるであろう。
の事項を開示する。 (1)1つの区別化されたセクションが他の区別化され
たセクション上で利用できないファンクションを実行で
きる、区別化されたセクションを有するプロセッサ上で
実行されるソフトウェアに耐タンパー性を与える方法で
あって、前記他の区別化されたセクションと関連する第
1の疑似ランダム2進シーケンス(PRBS)ジェネレ
ータをインクリメントするステップと、前記1つの区別
化されたセクションの前記ファンクションを、前記他の
区別化されたセクションから呼び出すステップと、前記
1つの区別化されたセクションと関連する第2の疑似ラ
ンダム2進シーケンス・ジェネレータをインクリメント
するステップと、前記ファンクションを実行するステッ
プと、前記第1および前記第2の疑似ランダム2進シー
ケンス・ジェネレータの疑似ランダム2進シーケンス値
を比較するステップと、前記比較するステップの結果に
よって、前記ソフトウェアの実行を制御するステップと
を含む方法。 (2)前記ファンクションは、前記区別化されたセクシ
ョンのPRBSジェネレータをインクリメントすること
に制限される、上記(1)に記載の方法。 (3)前記1つの区別化されたセクションで利用できる
さらなるファンクションは、前記他の区別化されたセク
ションからの疑似ランダム2進シーケンス値を呼び出
し、前記1つの区別化されたセクションにおいて前記比
較するステップを実行する、上記(1)に記載の方法。 (4)前記さらなるファンクションは、前記1つの区別
化されたセクションの前記疑似ランダム2進シーケンス
・ジェネレータをインクリメントし、前記他の区別化さ
れたセクションの前記疑似ランダム2進シーケンス・ジ
ェネレータは、前記さらなるファンクションが呼び出さ
れるとインクリメントされる、上記(3)に記載の方
法。 (5)前記1つの区別化されたセクションで利用できる
さらなるファンクションは、前記他の区別化されたセク
ションから前記疑似ランダム2進シーケンス値を呼び出
し、前記1つの区別化されたセクションにおいて比較す
るステップを実行する、上記(2)に記載の方法。 (6)前記さらなるファンクションは、前記1つの区別
化されたセクションの前記疑似ランダム2進シーケンス
・ジェネレータをインクリメントし、前記他の区別化さ
れたセクションの前記疑似ランダム2進シーケンス・ジ
ェネレータは、前記さらなるファンクションが呼び出さ
れるとインクリメントされる、上記(5)に記載の方
法。 (7)アルゴリズムと前記他の区別化されたセクション
の疑似ランダム2進シーケンス値を用いて、データを変
更するステップと、前記アルゴリズムの逆のファンクシ
ョンを有する他のアルゴリズムと、前記1つの区別化さ
れたセクションにおける疑似ランダム2進シーケンス値
とを用いて、データを変更するステップとをさらに含
み、前記1つの区別化されたセクションと前記他の区別
化されたセクションとの前記疑似ランダム2進シーケン
ス値が同じであると、前記アルゴリズムによって変更さ
れたデータが、復元される、上記(1)に記載の方法。 (8)前記区別化されたセクションは、異なる特権レベ
ルである、上記(1)に記載の方法。 (9)1つの区別化されたセクションが、他の区別化さ
れたセクション上では利用できないファンクションを実
行することができる、区別化されたセクションを有する
プロセッサ上で実行されるソフトウェアに耐タンパー性
を与える方法であって、アルゴリズムと前記他の区別化
されたセクションの疑似ランダム2進シーケンス値を用
いて、データを変更するステップと、前記アルゴリズム
と逆のファンクションを有する他のアルゴリズムと、前
記1つの区別化されたセクションにおける疑似ランダム
2進シーケンス値とを用いて、データを変更するステッ
プとを含み、前記1つの区別化されたセクションおよび
前記他の区別化されたセクションの前記疑似ランダム2
進シーケンス値が同じであると、前記アルゴリズムによ
って変更されたデータが、復元される、方法。 (10)前記区別化されたセクションは、異なる特権レ
ベルである、上記(9)に記載の方法。 (11)1つの区別化されたセクションが、他の区別化
されたセクション上で利用できないファンクションを実
行することができる、区別化されたセクションを有する
プロセッサを制御する記憶プログラムであって、前記プ
ロセッサに、前記他の区別化されたセクションに関連す
る第1の疑似ランダム2進シーケンス・ジェネレータを
インクリメントするステップと、前記1つの区別化され
たセクションの前記ファンクションを、前記他の区別化
されたセクションから呼び出すステップと、前記1つの
区別化されたセクションに関連する第2の疑似ランダム
2進シーケンス・ジェネレータをインクリメントするス
テップと、前記ファンクションを実行するステップと、
前記第1および第2の疑似ランダム2進シーケンス・ジ
ェネレータの疑似ランダム2進シーケンス値を比較する
ステップと、前記比較するステップの結果によって、前
記記憶プログラムの実行を制御するステップとを実行さ
せるコマンドを含み、前記記憶プログラムの実行を、タ
ンパリングを検出すると、制御することができる、記憶
プログラム。 (12)前記ファンクションは、前記区別化されたセク
ションのPRBSジェネレータをインクリメントするこ
とに制限される、上記(11)に記載のプログラム。 (13)前記1つの区別化されたセクションで利用でき
るさらなるファンクションは、前記他の区別化されたセ
クションからの前記疑似ランダム2進シーケンス値を呼
び出し、前記1つの区別化されたセクションにおける前
記比較するステップを実行する、上記(11)に記載の
プログラム。 (14)前記さらなるファンクションは、前記1つの区
別化されたセクションの前記疑似ランダム2進シーケン
ス・ジェネレータをインクリメントし、前記他の区別化
されたセクションの前記疑似ランダム2進シーケンス・
ジェネレータは、前記さらなるファンクションが呼び出
されるとインクリメントされる、上記(13)に記載の
プログラム。 (15)前記1つの区別化されたセクションで利用でき
るさらなるファンクションは、前記他の区別化されたセ
クションからの疑似ランダム2進シーケンス値を呼び出
し、前記1つの区別化されたセクションにおいて前記比
較ステップを行う、上記(12)に記載のプログラム。 (16)前記さらなるファンクションは、前記1つの区
別化されたセクションの前記疑似ランダム2進シーケン
ス・ジェネレータをインクリメントし、前記他の区別化
されたセクションの前記疑似ランダム2進シーケンス・
ジェネレータは、前記さらなるファンクションが呼び出
されるとインクリメントされる、上記(15)に記載の
プログラム。 (17)アルゴリズムと前記他の区別化されたセクショ
ンの疑似ランダム2進シーケンス値を用いて、データを
変更するステップと、前記アルゴリズムの逆のファンク
ションを有する他のアルゴリズムと、前記1つの区別化
されたセクションの疑似ランダム2進シーケンス値とを
用いて、データを変更するステップとをさらに含み、前
記1つの区別化されたセクションと前記他の区別化され
たセクションとの疑似ランダム2進シーケンス値が、同
じであると、前記アルゴリズムによって変更されたデー
タが、復元される、上記(11)に記載のプログラム。 (18)1つの区別化されたセクションが、他の区別化
されたセクション上で利用できないファンクションを実
行することができる、区別化されたセクションを有する
プロセッサを制御する記憶プログラムであって、前記プ
ロセッサに、アルゴリズムと前記他の区別化されたセク
ションの疑似ランダム2進シーケンス値を用いて、デー
タを変更するステップと、前記アルゴリズムの逆のファ
ンクションを有する他のアルゴリズムと、前記1つの区
別化されたセクションの疑似ランダム2進シーケンス値
とを用いて、データを変更するステップとを実行させる
コマンドを含み、前記1つの区別化されたセクションと
前記他の区別化されたセクションとの疑似ランダム2進
シーケンス値が、同じであると、前記アルゴリズムによ
って変更されたデータは、復元され、前記記憶プログラ
ムの実行は、タンパリングを検出すると制御される、記
憶プログラム。
であり、そのオペレーションを示す図である。
示すフローチャートである。
示すフローチャートである。
ロック図である。
である。
Claims (18)
- 【請求項1】1つの区別化されたセクションが他の区別
化されたセクション上で利用できないファンクションを
実行できる、区別化されたセクションを有するプロセッ
サ上で実行されるソフトウェアに耐タンパー性を与える
方法であって、 前記他の区別化されたセクションと関連する第1の疑似
ランダム2進シーケンス(PRBS)ジェネレータをイ
ンクリメントするステップと、 前記1つの区別化されたセクションの前記ファンクショ
ンを、前記他の区別化されたセクションから呼び出すス
テップと、 前記1つの区別化されたセクションと関連する第2の疑
似ランダム2進シーケンス・ジェネレータをインクリメ
ントするステップと、 前記ファンクションを実行するステップと、 前記第1および前記第2の疑似ランダム2進シーケンス
・ジェネレータの疑似ランダム2進シーケンス値を比較
するステップと、 前記比較するステップの結果によって、前記ソフトウェ
アの実行を制御するステップとを含む方法。 - 【請求項2】前記ファンクションは、前記区別化された
セクションのPRBSジェネレータをインクリメントす
ることに制限される、請求項1に記載の方法。 - 【請求項3】前記1つの区別化されたセクションで利用
できるさらなるファンクションは、前記他の区別化され
たセクションからの疑似ランダム2進シーケンス値を呼
び出し、前記1つの区別化されたセクションにおいて前
記比較するステップを実行する、請求項1に記載の方
法。 - 【請求項4】前記さらなるファンクションは、前記1つ
の区別化されたセクションの前記疑似ランダム2進シー
ケンス・ジェネレータをインクリメントし、前記他の区
別化されたセクションの前記疑似ランダム2進シーケン
ス・ジェネレータは、前記さらなるファンクションが呼
び出されるとインクリメントされる、請求項3に記載の
方法。 - 【請求項5】前記1つの区別化されたセクションで利用
できるさらなるファンクションは、前記他の区別化され
たセクションから前記疑似ランダム2進シーケンス値を
呼び出し、前記1つの区別化されたセクションにおいて
比較するステップを実行する、請求項2に記載の方法。 - 【請求項6】前記さらなるファンクションは、前記1つ
の区別化されたセクションの前記疑似ランダム2進シー
ケンス・ジェネレータをインクリメントし、前記他の区
別化されたセクションの前記疑似ランダム2進シーケン
ス・ジェネレータは、前記さらなるファンクションが呼
び出されるとインクリメントされる、請求項5に記載の
方法。 - 【請求項7】アルゴリズムと前記他の区別化されたセク
ションの疑似ランダム2進シーケンス値を用いて、デー
タを変更するステップと、 前記アルゴリズムの逆のファンクションを有する他のア
ルゴリズムと、前記1つの区別化されたセクションにお
ける疑似ランダム2進シーケンス値とを用いて、データ
を変更するステップとをさらに含み、 前記1つの区別化されたセクションと前記他の区別化さ
れたセクションとの前記疑似ランダム2進シーケンス値
が同じであると、前記アルゴリズムによって変更された
データが、復元される、請求項1に記載の方法。 - 【請求項8】前記区別化されたセクションは、異なる特
権レベルである、請求項1に記載の方法。 - 【請求項9】1つの区別化されたセクションが、他の区
別化されたセクション上では利用できないファンクショ
ンを実行することができる、区別化されたセクションを
有するプロセッサ上で実行されるソフトウェアに耐タン
パー性を与える方法であって、 アルゴリズムと前記他の区別化されたセクションの疑似
ランダム2進シーケンス値を用いて、データを変更する
ステップと、 前記アルゴリズムと逆のファンクションを有する他のア
ルゴリズムと、前記1つの区別化されたセクションにお
ける疑似ランダム2進シーケンス値とを用いて、データ
を変更するステップとを含み、 前記1つの区別化されたセクションおよび前記他の区別
化されたセクションの前記疑似ランダム2進シーケンス
値が同じであると、前記アルゴリズムによって変更され
たデータが、復元される、方法。 - 【請求項10】前記区別化されたセクションは、異なる
特権レベルである、請求項9に記載の方法。 - 【請求項11】1つの区別化されたセクションが、他の
区別化されたセクション上で利用できないファンクショ
ンを実行することができる、区別化されたセクションを
有するプロセッサを制御する記憶プログラムであって、 前記プロセッサに、 前記他の区別化されたセクションに関連する第1の疑似
ランダム2進シーケンス・ジェネレータをインクリメン
トするステップと、 前記1つの区別化されたセクションの前記ファンクショ
ンを、前記他の区別化されたセクションから呼び出すス
テップと、 前記1つの区別化されたセクションに関連する第2の疑
似ランダム2進シーケンス・ジェネレータをインクリメ
ントするステップと、 前記ファンクションを実行するステップと、 前記第1および第2の疑似ランダム2進シーケンス・ジ
ェネレータの疑似ランダム2進シーケンス値を比較する
ステップと、 前記比較するステップの結果によって、前記記憶プログ
ラムの実行を制御するステップとを実行させるコマンド
を含み、 前記記憶プログラムの実行を、タンパリングを検出する
と、制御することができる、記憶プログラム。 - 【請求項12】前記ファンクションは、前記区別化され
たセクションのPRBSジェネレータをインクリメント
することに制限される、請求項11に記載のプログラ
ム。 - 【請求項13】前記1つの区別化されたセクションで利
用できるさらなるファンクションは、前記他の区別化さ
れたセクションからの前記疑似ランダム2進シーケンス
値を呼び出し、前記1つの区別化されたセクションにお
ける前記比較するステップを実行する、請求項11に記
載のプログラム。 - 【請求項14】前記さらなるファンクションは、前記1
つの区別化されたセクションの前記疑似ランダム2進シ
ーケンス・ジェネレータをインクリメントし、前記他の
区別化されたセクションの前記疑似ランダム2進シーケ
ンス・ジェネレータは、前記さらなるファンクションが
呼び出されるとインクリメントされる、請求項13に記
載のプログラム。 - 【請求項15】前記1つの区別化されたセクションで利
用できるさらなるファンクションは、前記他の区別化さ
れたセクションからの疑似ランダム2進シーケンス値を
呼び出し、前記1つの区別化されたセクションにおいて
前記比較ステップを行う、請求項12に記載のプログラ
ム。 - 【請求項16】前記さらなるファンクションは、前記1
つの区別化されたセクションの前記疑似ランダム2進シ
ーケンス・ジェネレータをインクリメントし、前記他の
区別化されたセクションの前記疑似ランダム2進シーケ
ンス・ジェネレータは、前記さらなるファンクションが
呼び出されるとインクリメントされる、請求項15に記
載のプログラム。 - 【請求項17】アルゴリズムと前記他の区別化されたセ
クションの疑似ランダム2進シーケンス値を用いて、デ
ータを変更するステップと、 前記アルゴリズムの逆のファンクションを有する他のア
ルゴリズムと、前記1つの区別化されたセクションの疑
似ランダム2進シーケンス値とを用いて、データを変更
するステップとをさらに含み、 前記1つの区別化されたセクションと前記他の区別化さ
れたセクションとの疑似ランダム2進シーケンス値が、
同じであると、前記アルゴリズムによって変更されたデ
ータが、復元される、請求項11に記載のプログラム。 - 【請求項18】1つの区別化されたセクションが、他の
区別化されたセクション上で利用できないファンクショ
ンを実行することができる、区別化されたセクションを
有するプロセッサを制御する記憶プログラムであって、 前記プロセッサに、 アルゴリズムと前記他の区別化されたセクションの疑似
ランダム2進シーケンス値を用いて、データを変更する
ステップと、 前記アルゴリズムの逆のファンクションを有する他のア
ルゴリズムと、前記1つの区別化されたセクションの疑
似ランダム2進シーケンス値とを用いて、データを変更
するステップとを実行させるコマンドを含み、 前記1つの区別化されたセクションと前記他の区別化さ
れたセクションとの疑似ランダム2進シーケンス値が、
同じであると、前記アルゴリズムによって変更されたデ
ータは、復元され、 前記記憶プログラムの実行は、タンパリングを検出する
と制御される、記憶プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/500345 | 2000-02-08 | ||
US09/500,345 US6789199B1 (en) | 2000-02-08 | 2000-02-08 | Tamper resistance with pseudo-random binary sequence program interlocks |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001236132A true JP2001236132A (ja) | 2001-08-31 |
JP3721085B2 JP3721085B2 (ja) | 2005-11-30 |
Family
ID=23989003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001025815A Expired - Fee Related JP3721085B2 (ja) | 2000-02-08 | 2001-02-01 | ソフトウェアに耐タンパー性を与える方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6789199B1 (ja) |
JP (1) | JP3721085B2 (ja) |
KR (1) | KR100406228B1 (ja) |
CN (1) | CN1303529C (ja) |
CA (1) | CA2324759A1 (ja) |
GB (1) | GB2366028B (ja) |
TW (1) | TW490608B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305564B2 (en) | 2002-12-19 | 2007-12-04 | International Business Machines Corporation | System and method to proactively detect software tampering |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100205B2 (en) * | 2003-10-22 | 2006-08-29 | The United States Of America As Represented By The Secretary Of The Navy | Secure attention instruction central processing unit and system architecture |
US7552342B1 (en) | 2005-02-16 | 2009-06-23 | Rennie Glen Software, Llc | Method and system for increasing the tamper resistance of a software application |
US20090201126A1 (en) * | 2008-02-11 | 2009-08-13 | Sanyo Electric Co., Ltd. | Electronic device provided with theft prevention function, and method for preventing theft of electronic devices |
US20110030036A1 (en) * | 2009-07-31 | 2011-02-03 | Wells Jr James W | Running a software module at a higher privilege level in response to a requestor associated with a lower privilege level |
EP2362314A1 (en) * | 2010-02-18 | 2011-08-31 | Thomson Licensing | Method and apparatus for verifying the integrity of software code during execution and apparatus for generating such software code |
FR3100901B1 (fr) * | 2019-09-12 | 2021-08-27 | Stmicroelectronics Grand Ouest Sas | Système de protection de la mémoire |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4310720A (en) | 1978-03-31 | 1982-01-12 | Pitney Bowes Inc. | Computer accessing system |
US4573119A (en) | 1983-07-11 | 1986-02-25 | Westheimer Thomas O | Computer software protection system |
US4644493A (en) * | 1984-09-14 | 1987-02-17 | International Business Machines Corporation | Implementing a shared higher level of privilege on personal computers for copy protection of software |
US4605922A (en) | 1984-09-14 | 1986-08-12 | Racon, Inc. | Intrusion detector |
FR2638869B1 (fr) | 1988-11-10 | 1990-12-21 | Sgs Thomson Microelectronics | Dispositif de securite contre la detection non autorisee de donnees protegees |
GB9005916D0 (en) | 1990-03-16 | 1990-05-09 | Amstrad Plc | Computer system |
US5175847A (en) | 1990-09-20 | 1992-12-29 | Logicon Incorporated | Computer system capable of program execution recovery |
US5337357A (en) | 1993-06-17 | 1994-08-09 | Software Security, Inc. | Method of software distribution protection |
GB9422389D0 (en) * | 1994-11-05 | 1995-01-04 | Int Computers Ltd | Authenticating access control for sensitive functions |
US5724423A (en) * | 1995-09-18 | 1998-03-03 | Telefonaktiebolaget Lm Ericsson | Method and apparatus for user authentication |
US5757914A (en) * | 1995-10-26 | 1998-05-26 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
FR2742616B1 (fr) * | 1995-12-18 | 1998-01-09 | Cit Alcatel | Dispositif de chiffrement et dispositif de dechiffrement d'informations transportees par des cellules a mode de transfert asynchrone |
GB9608696D0 (en) | 1996-04-26 | 1996-07-03 | Europ Computer Ind Res | Electronic copy protection mechanism |
US6463538B1 (en) * | 1998-12-30 | 2002-10-08 | Rainbow Technologies, Inc. | Method of software protection using a random code generator |
-
2000
- 2000-02-08 US US09/500,345 patent/US6789199B1/en not_active Expired - Fee Related
- 2000-10-30 CA CA002324759A patent/CA2324759A1/en not_active Abandoned
- 2000-12-29 TW TW089128217A patent/TW490608B/zh not_active IP Right Cessation
-
2001
- 2001-01-19 KR KR10-2001-0003121A patent/KR100406228B1/ko not_active IP Right Cessation
- 2001-01-29 GB GB0102166A patent/GB2366028B/en not_active Expired - Lifetime
- 2001-02-01 JP JP2001025815A patent/JP3721085B2/ja not_active Expired - Fee Related
- 2001-02-05 CN CNB01103212XA patent/CN1303529C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305564B2 (en) | 2002-12-19 | 2007-12-04 | International Business Machines Corporation | System and method to proactively detect software tampering |
US7707429B2 (en) | 2002-12-19 | 2010-04-27 | International Business Machines Corporation | System and method to proactively detect software tampering |
Also Published As
Publication number | Publication date |
---|---|
JP3721085B2 (ja) | 2005-11-30 |
GB0102166D0 (en) | 2001-03-14 |
CN1314635A (zh) | 2001-09-26 |
TW490608B (en) | 2002-06-11 |
GB2366028A (en) | 2002-02-27 |
KR20010078013A (ko) | 2001-08-20 |
CN1303529C (zh) | 2007-03-07 |
US6789199B1 (en) | 2004-09-07 |
CA2324759A1 (en) | 2001-08-08 |
GB2366028B (en) | 2004-08-18 |
KR100406228B1 (ko) | 2003-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7849315B2 (en) | Method for managing operability of on-chip debug capability | |
US9514305B2 (en) | Code pointer authentication for hardware flow control | |
US5953502A (en) | Method and apparatus for enhancing computer system security | |
US6564326B2 (en) | Method and apparatus for enhancing computer system security | |
CN102667794B (zh) | 用于保护操作***免于非授权修改的方法和*** | |
US20130117006A1 (en) | Simulated boot process to detect introduction of unauthorized information | |
EP1013023B1 (en) | Security coprocessor for enhancing computer system security | |
US20080184041A1 (en) | Graph-Based Tamper Resistance Modeling For Software Protection | |
CN113168474A (zh) | 固件的安全验证 | |
US7395434B2 (en) | Method for secure storage and verification of the administrator, power-on password and configuration information | |
JPH0520775B2 (ja) | ||
WO2018075057A1 (en) | Bios security | |
US11675587B2 (en) | Enhanced protection of processors from a buffer overflow attack | |
KR20190085387A (ko) | 반도체 장치 및 반도체 장치의 동작 방법 | |
JP2001236132A (ja) | 耐タンパー性を与える方法及びプログラム | |
Zhao et al. | Gracewipe: Secure and Verifiable Deletion under Coercion. | |
WO2022185031A1 (en) | Methods and systems for detecting and blocking malicious actions in an operating system | |
JP2020140689A (ja) | 計算機、オペレーティングシステム及び方法 | |
CN111480160A (zh) | 过程验证 | |
KR102153048B1 (ko) | Smram 변조 탐지 방법 및 장치 | |
CN115310055B (zh) | 一种基于双看门狗的软件完整性保护方法 | |
JPS6091447A (ja) | プログラム保護方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041019 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050606 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050713 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050909 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080916 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |