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
Application number
JP2001025815A
Other languages
English (en)
Other versions
JP3721085B2 (ja
Inventor
W Wilhelm George Jr
ジョージ・ダブリュ・ウィルヘルム、ジュニア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001236132A publication Critical patent/JP2001236132A/ja
Application granted granted Critical
Publication of JP3721085B2 publication Critical patent/JP3721085B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting 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

(57)【要約】 【課題】 ソフトウェアのセキュリティを増大する方法
を提供する。 【解決手段】 耐タンパー性は、プロセッサおよびその
周辺機器,ドライバの1つの区別化されたセクションで
排他的に利用できるファンクションを、他の区別化され
たセクションから呼び出すことによって、ソフトウェア
部分の動作の読み取りを防ぐために与えられる。疑似ラ
ンダム2進シーケンス・ジェネレータ110,120
は、このような区別化されたセクションの各々と関連
し、それぞれ、このファンクションの呼び出しおよび実
行にしたがってインクリメントすることができる。ソフ
トウェアのさらなる実行を許可または防止する前に、疑
似ランダム2進シーケンス値が、比較される。この比較
は、全ての特権レベルで行うことができ、本発明の変形
は、比較を実行する付加的な特権ファンクションを用い
ることによって、付加的なセキュリティを与える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に、コンピュ
ータのソフトウェア・アプリケーションのセキュリティ
の形成に関し、特に、無許可の人によるアプリケーショ
ン・プログラムの動作の読み取りを防ぐための装置に関
する。
【0002】
【従来の技術】コンピュータのアプリケーション・ソフ
トウェアの数および多様性は、過去数年の間に拡大され
てきた。コンピュータのハードウェア開発は、このよう
なアプリケーション・プログラムのファンクションを著
しく拡大させ、従って、書き込まなければならないコー
ドの量および他の開発コストが、著しく増大した。同じ
時期に、無許可の複製によって失われるこのようなプロ
グラムの価値に対するソフトウェアのベンダーの認識が
増大してきている。従って、今日、ソフトウェア・ベン
ダーが、個々のプログラムのコピーの登録を要求した
り、あるいは、特定のユーザにサイト・ライセンスを販
売したり、また、プログラム・コピーが登録されている
人以外の人による、アプリケーションまたはアプリケー
ションの主要部分の実行を防ぐ機能を、プログラムに含
ませることは、通常行われていることである。
【0003】ソフトウェアの登録は、一般に、登録によ
ってアクセスが許可される場合を除いては、ソフトウェ
アの大部分を使用不可にすることによって行われる。殆
ど同様に、潜在的な購入者がソフトウェアを買うか否か
を決定するのに十分なほど実行することができるデモス
トレーション・コピーの機能と同様の削減機能を有する
形態で、ユーザに、可能な限りオンラインで、ソフトウ
ェアを提供することによって、ソフトウェアの販売を促
進することは、通常行われていることである。その際、
初期的には使用不可のファンクションを使用可能にする
ことが、購入,支払い,および登録の際に遠隔的に行わ
れる。また、このような変換可能な形態のソフトウェア
の配布は、デモンストレーション・コピーとして個別バ
ージョンを作製する必要性を回避するという利点と、1
つのコピーを他のコピーによって破壊する可能性とを与
える。
【0004】しかしながら、このような特徴は、精巧さ
および複雑さのレベルを拡大し、良好なレベルのセキュ
リティを実現する一方、このような特徴が、アプリケー
ション・プログラムの変更によって無効にされて、この
ような特徴が活用されなくなることは自明のことであ
る。プロテクトされたソフトウェアのファンクション、
およびプロテクトされたファンクションへのアクセスを
復元するプロセスは、一般に、“ハッキング(hack
ing)”と呼ばれ、ハッキングはまた、一般に、パス
ワードのプロテクション,ユーザーの識別または認証な
どを無効にする。プログラム変更のプロセスは、しばし
ば、“パッチング(patching)と呼ばれる。ハ
ッキングによるプログラムの変更を困難にする特性は、
“耐タンパー性(tamper resistanc
e)と呼ばれる。もちろん、“耐タンパー性”は、デー
タベースおよびアプリケーション・プログラムのような
多くの種類のソフトウェアにとって望ましい特性であ
る。
【0005】耐タンパー性ソフトウェアの作製は、しば
しば、プロセッサに含まれる特権レベルと、いわゆる特
権命令との概念を含む。特権命令は、一般に、プロセッ
サ・アーキテクチャの制限された機能へのアクセスを許
可することが要求される。例えば、特権命令または特権
ファンクションは、プロセッサ内のプロテクトされた専
用デバッグ・レジスタのロードおよびアンロードと、割
り込みベクトルのフックと、重要なオペレーティング・
システム(OS)メモリ領域および入力/出力(I/
O)ファンクションのオペレーションとを含むことがで
きる。これらの特権ファンクションは、低い特権レベル
のアプリケーションによってコントロールされる(例え
ば、要求される)が、実際には、より多くの特権オペレ
ーティング・システム要素によるアプリケーション・プ
ログラムの通常オペレーションの際には、より高い特権
レベルの他の構造またはソフトウェアによって行われ
る。特に、I/Oファンクションの実行はOSの最高特
権レベルに限定され、より低い特権レベルで動作または
実行するアプリケーションによっては実行されることは
できず、要求されるにすぎない。
【0006】すなわち、ソフトウェア開発要求に調和さ
せて、アプリケーション・ソフトウェアを、より安全に
するためには、アプリケーションと協働して動作し、よ
り低い特権アプリケーションに代わってこれらの特権オ
ペレーションを行う特権コンパニオン・ソフトウェア・
モジュール(通常は、デバイス・ドライバの形態で)を
開発する必要がある。アプリケーションが、システム保
全性を検証するか、あるいは、特定の種類のタンパリン
グ(tampering)が生じたか否かを判断する必
要性を有する(あるいは、プログラマーによって判断さ
れるときに、必要性を有するべきである)場合に、アプ
リケーションは、特権モジュールを呼び出して、これら
のサービスを実行することができる。残念なことに、こ
のような機構およびそのかなり広範囲の使用は、アプリ
ケーションと特権モジュールとの間のインターフェース
を、セキュリティ機能を無効にしようとするアタック
(attack)の論理的箇所とする。例えば、特権モ
ジュールへのセキュリティ関連の呼び出しをパッチアウ
トすることは、多くの場合、耐タンパー性および実行す
ることが意図される保全性検査の機能を無効にするであ
ろう。
【0007】いかなる形態の耐タンパー性も完全に安全
ではないが、耐タンパー性は、一般に、アプリケーショ
ンおよび対応する特権モジュール内の、このような手段
で(例えば、より多くの技術,トラップ,および相互依
存性によって)与えられる複雑さのレベルが増大するに
つれて、与えられた時間と労力の範囲で、それら手段を
無効にすることに成功し、アプリケーションまたはデー
タ保全性を損い、あるいは、含まれるシークレットへの
アクセスを得る可能性は低下する。残念なことに、この
ような複雑さはまた、ソフトウェア・アプリケーション
の信頼性および/または安定性(すなわち、例えば、デ
ータベースおよび/またはエラー回復システムの頑強
性)、およびソフトウェア自体の実行速度および効率を
損なう。従って、今日まで、アプリケーションの実行効
率と、アプリケーション自体およびそのデータのセキュ
リティとの間には、避けられないトレード・オフ(tr
ade−off)がある。
【0008】
【発明が解決しようとする課題】従って、本発明の目的
は、タンパリングの検出と、タンパリングが検出される
とファイルの実行の終了とによって、ソフトウェアのセ
キュリティを増大する方法を提供することにある。
【0009】本発明の他の目的は、ソフトウェアの実行
効率を大きく低下させることなしに、ソフトウェアの有
効なセキュリティを提供することにある。
【0010】本発明のさらに他の目的は、無許可の人に
よるソフトウェア動作の読み取りを防ぐことにある。
【0011】本発明のさらに他の目的は、ソフトウェア
の使用不可またはプロテクトされた部分の、無許可の使
用可能化または読み取りを防ぐことにある。
【0012】
【課題を解決するための手段】本発明のこれらのおよび
他の目的を実現するために、第1の区別化されたセクシ
ョンが第2の区別化されたセクション上で利用できない
ファンクションを実行できる、複数の区別化されたセク
ションを有するプロセッサ上で実行されるソフトウェア
に耐タンパー性を与える方法と、この方法を実行するた
めのコマンドを含むソフトウェアとが提供される。この
方法は、第2の区別化されたセクションと関連する第1
の疑似ランダム2進シーケンス・ジェネレータをインク
リメントするステップと、第1の区別化されたセクショ
ンのファンクションを、第2の区別化されたセクション
から呼び出すステップと、第1の区別化されたセクショ
ンと関連する第2の疑似ランダム2進シーケンス・ジェ
ネレータをインクリメントするステップと、ファンクシ
ョンを実行するステップ(疑似ランダム2進シーケンス
値の比較を含み、あるいは、疑似ランダム2進シーケン
ス・ジェネレータのインクリメントに加えて1つ以上の
オペレーションを含むか含まない)と、前記第1および
第2の疑似ランダム2進シーケンス・ジェネレータの疑
似ランダム2進シーケンス値を比較するステップと、前
記比較するステップの結果によって、前記ソフトウェア
の実行を制御するステップとを含む。
【0013】本発明の他の形態によれば、1つの区別化
されたセクションが、他の区別化されたセクション上で
利用できないファンクションを実行することができる、
複数の区別化されたセクションを有するプロセッサ上で
実行されるソフトウェアに耐タンパー性を与える方法
と、この方法を実行するためのコマンドを含むソフトウ
ェアとを提供する。この方法は、アルゴリズムと第1の
区別化されたセクションの疑似ランダム2進シーケンス
値を用いて、データを更新するステップと、逆のアルゴ
リズムと、第1の区別化されたセクションにおける疑似
ランダム2進シーケンス値とを用いて、データを更新す
るステップとを含み、前記第1の区別化されたセクショ
ンおよび前記他の区別化されたセクションの疑似ランダ
ム2進シーケンス値が同じであると、前記アルゴリズム
によって更新されたデータが、復元される。
【0014】
【発明の実施の形態】前述のおよび他の目的,態様,利
点は、本発明の好適な実施例の以下の詳細な説明から、
図面を参照することによってより理解されるであろう。
【0015】図面、特に図1,図2,図3は、高レベル
の概略ブロック図の形態で、本発明の一実施例100を
示す。図1には、矢印104で示すように、任意のタイ
ム・スケール(左から右へ)が与えられ、実線のブロッ
クは、ハードウェアまたはソフトウェアのいずれかで実
施することができる機能的要素を示すことに注意すべき
である。点線で示すブロックは、プロテクションが望ま
れるソフトウェア・シーケンスを示す。図2および図3
では、シーケンスは、上から下に進み、示された各ファ
ンクションが実行されるソフトウェアは、図1が、特権
レベルを分ける点線106で分けられているのと同様
に、左または右に分離されている。従って、図1と図2
および図3とは、同じ内容を異なる強調および観点で示
すものである。対応する参照符号は、可能なところで用
いられている。(図4および図5についても、同様であ
る。) 疑似ランダム2進シーケンス(PRBS)ジェネレータ
は、当業者によって認識されているように、周知であ
り、多くの形態で用いられ、実現されている。一般に、
PRBSジェネレータは、複数の記憶デバイスを含むこ
とができる論理アレイとして実施される。しばしば用い
られるPRBSジェネレータの形態は、シフトレジスタ
の性質上、直列に接続されたフリップフロップの列を用
いる。種々の長さのこのようなシフトレジスタでは、真
値または補数値のいずれかとしての、あるステージの出
力の他のステージへのフィードバックは、他のステージ
の出力と論理的に組み合わされ(より一般には、マスク
と呼ばれる)、真のランダム値とほぼ同じの統計的特性
を有する長い論理値列を作成することができることが分
かっている。もちろん、このようなハードウェアによる
実現は、技術上周知の方法で、ソフトウェアでシミュレ
ートすることができ、また、しばしばシミュレートされ
る。(実際には、以下に詳細に説明するように、本発明
の実施には、ソフトウェアによる実現が、極めて好適で
ある)。
【0016】PRBSジェネレータの繰り返し周期は、
与えられた記憶ステージの数に対して極めて長くするこ
とができる。PRBSジェネレータの出力は、単一のス
テージから直列に、あるいは、内部タップから並列に任
意の長さのバイト(最大記憶ステージの数まで)で並列
に引き出すことができる。任意の長さとすることができ
る多数の2進数の後に、PRBSは繰り返すが、シーケ
ンスの開始ポイントは、例えば、PRBS内の記憶デバ
イスの初期記憶状態として、PRBSジェネレータに最
初に与えられる特定の値によって任意のポイントで開始
することができる。これら初期状態は、集合的に、シー
ド値と呼ばれる。従って、PRBSジェネレータから引
き出すことができる固有シーケンスの数は、繰り返しシ
ーケンスにおける2進数の数に等しい。
【0017】さらに、PRBSジェネレータにおける各
々異なる論理アレイ相互接続またはマスク(例えば、個
々のステージの出力のフィードバックまたは論理的組合
せ)は、固有の2進シーケンスを与える。さらに、同じ
2進シーケンスは、同じマスク,同じ記憶ステージの数
を有し、同じシード値で初期化される、機能的に同一の
PRBSジェネレータから引き出されるのみである。従
って、PRBSシーケンスは、これらのパラメータの予
備知識なしに複製することは困難である。
【0018】本発明は、原則的には、2つの同一のPR
BSジェネレータ110および120(すなわち、同じ
マスクおよび同じステージ数nを有している。)を使用
し、これらは、同じシード値で初期化され、それぞれ、
特権呼び出しの要求および実行の際にインクリメントさ
れる。これら同一のPRBSジェネレータのうちの1つ
は、特権レベルの各々において与えられ、もしくは、特
権レベルの各々にアクセス可能にされ、特権レベルの間
は、本発明の原理によって耐タンパー性が与えられてい
る。PRBSジェネレータからのPRBSは、より高い
特権レベルまたはより低い特権レベルのいずれか(ある
いは、各レベルにおけるPRBSに基づく異なる特権レ
ベルの両方において実行される他のファンクション)に
おいて比較される。また、実行の割り込み、およびより
高い特権ファンクションの結果の中断は、個々のPRB
S信号が同一でないときに常に実行される。オペレーシ
ョンのこの基本モードは、非常に高速に実行することが
でき、頻繁に繰り返されても、ソフトウェアの実行効率
を大きく低下させず、また、図4および図5を参照し
て、以下により詳細に説明するように、容易に拡張する
ことができる。
【0019】図1,図2,図3には、各々、個々のPR
BSジェネレータ110または120を有する2つの特
権レベルが示されていることが分かる。これらの特権レ
ベルは、Windows−Intel環境の用語と調和
するリング3(低い特権レベル)およびリング0(高い
特権レベル)として示される。しかし、本発明は、異な
るファンクションが、異なる特権レベルで実行される
か、あるいは、特定の分離されたハードウェア,ソフト
ウェア,またはファームウェアによる実行に限定され
る、あらゆる環境に十分適合できることを理解すべきで
ある。例えば、コマンドの実行のために、特定のデータ
・パスまたはレジスタを要求することができる。
【0020】すなわち、意図した目的を与える本発明の
成功的実施については、プロセッサまたはその周辺機
器、あるいはドライバが、個別の同一の(あるいは、同
一に構成されて初期化されている)PRBSジェネレー
タに関連させることができる区別化されたオペレーショ
ナル・セクションを有する(あるいは、有するように構
成できる)ことが必要とされるだけである。1つのこの
ような区別化されたセクションは、他の区別化されたセ
クションでは利用できないファンクションを実行するこ
とができる。従って、用語“区別化されたセクション
(differentiated section)”
は、これらの条件を満たす全てのそのような可能な構成
を含むものと理解すべきである。
【0021】この点については、PRBSジェネレータ
をソフトウェアで実行することが、原則的には好適であ
ることが分かる。なぜならば、ハードウェア・アクセス
は、ソフトウェアによるPRBSジェネレータの実現を
要求する低い特権レベルでは拒否されうるからである。
さらに、PRBSジェネレータのソフトウェアによる実
現は、アプリケーションと、そのコンパニオン・デバイ
ス・ドライバまたはより高い特権レベルのソフトウェア
との両方において、同一のPRBSジェネレータの形
成、および、PRBSジェネレータの初期化を容易にす
る。また、本発明は、PRBSジェネレータ自体をプロ
テクトするのに用いることができ、また用いるべきであ
ることが分かるであろう。
【0022】以下の説明のために、点線の矢印200で
示すように、アプリケーションまたは他のソフトウェア
が、本発明によって保護されていないファンクションを
実施および実行しているものと仮定する。また、PRB
Sジェネレータ110,120が、同じシード値,同じ
マスク,および同じn値に初期化され、従って、同じ値
を出力し、同期しているとみなすことができる。
【0023】保護することが望まれるプログラムのセク
ションに先立つプログラム命令のリスト内のある箇所
で、オペレーションA(および/またはBおよび/また
はX)のシーケンスが挿入されている。これらのオペレ
ーションは、即時シーケンスで実行することは必要とさ
れないが、これらのオペレーションの間に他のオペレー
ションを挿入させて、オペレーションの目的が無許可の
人に認識できないようにすることができる。本発明の説
明のため、命令Aのシーケンスは、3つのオペレーショ
ンA1,A2,A3からなるものとして示されている。
これらのオペレーションの各々は、複数のコマンドを含
むことができる。
【0024】シーケンスAが、異なる特権レベルまたは
特定のハードウェアで実行される1つ以上の連続するオ
ペレーション(例えば、A2)を保護するプログラムに
到達すると、202で示すように、ステップA1は、P
RBSジェネレータをインクリメントし、プロテクトさ
れたステップA2に進む。ステップA2は、204で示
すように、特権リング0(例えば、デバイス・ドライバ
内の)での所望のファンクションA(FnA )を呼び出
す。次に、ファンクションAは、PRBSジェネレータ
120をインクリメントする。次に、208で示すよう
に、ファンクションAは、所望のオペレーションを実行
し、アプリケーションに戻る。
【0025】次に、アプリケーションは、オペレーショ
ンA3に進み、210で示すように、PRBSジェネレ
ータ110の出力を取り出し、212で示すように、F
pを呼び出して、PRBSジェネレータ120の出力
を取り出し、214で示すように、出力をアプリケーシ
ョンに戻す。次に、オペレーションA3は、216で示
すように、PRBSジェネレータ110および120の
出力を比較する。それらの出力は共に、最初に同期化さ
れ、共にシーケンスA内で一度インクリメントされたの
で、その比較は成功し、アプリケーションは、218で
示すように続く。
【0026】シーケンスBは、同様に動作し、個別に説
明する必要はない。オペレーションB3(オペレーショ
ンA3に対応する)で、PRBS出力の比較が成功する
と、アプリケーションは、222で示すように続く。
【0027】しかしながら、例えば、アプリケーション
が、登録されていない、および、リング0へのアクセ
ス、または、リング0内の全てのファンクション(また
はファンクションによって実行されるオペレーション)
が拒否されたという理由で、オペレーションA2が、許
可されていなかったならば、アプリケーションは、進む
ことができない。無許可のユーザが、ステップA1をパ
ッチアウトする(202)ことによって、このアクセス
の拒否を無効にしようと試みるならば、ステップA2
は、PRBSジェネレータ110をインクリメントする
ことなく、PRBSジェネレータ120をインクリメン
トし、A3(216)での比較は、失敗するであろう。
【0028】逆に、アクセスの拒否を無効にしようとす
る試みが、オペレーションAの間に、PRBSジェネレ
ータ120のインクリメントをパッチアウトすることに
よって行われるならば、比較はまた、失敗するであろ
う。ファンクションAをパッチアウトすることによって
(例えば、オペレーションA2を削除、または“ノー・
オペレーション(NO−OP)”とすることによっ
て)、アプリケーションの連続するセクションへのアク
セスの拒否を無効にしようと(コードの比較のため)試
みることは、また、比較の失敗を生じるであろう。とい
うのは、PRBSジェネレータ110は、インクリメン
トされるが、PRBSジェネレータ120は、インクリ
メントされないからである。PRBSジェネレータ12
0および110に対するインクリメントまたはデクリメ
ントにおけるパッチによってアクセスの拒否を無効にし
ようと試みることは、また、A3での比較の失敗を生じ
るであろう。というのは、FnA および他の特権ファン
クションは、本発明によれば、ファンクションを実行す
る前に、PRBSジェネレータ120をインクリメント
するからである。
【0029】たとえ、特権ファンクションが実行されて
も、アプリケーションへ結果を報告する前に、比較が行
われる。比較216が失敗すると、アプリケーションの
実行は、プログラマーによって所望される全ての方法
で、例えば、記憶装置から、またはアプリケーションを
コンピュータ上にロードした記憶媒体から、アプリケー
ション、またはアプリケーションの多かれ少なかれ重要
な部分の削除を含む所望のサブルーチンに分岐すること
によって、終了することができる。
【0030】特権ファンクションへのアクセスの拒否を
無効にするためには、最小2つのパッチが、同時かつ正
確に実行されなければならず、また、アプリケーション
の動作の予備知識を有さない無許可のユーザによってう
まく行われることはないであろう。システムの動作を読
み取ることは、本発明が防止しようとするタンパリング
の典型的なタイプであることを思い出すべきである。従
って、本発明は、たとえ、アプリケーションにおいて多
数回用いられても、あるいは繰り返されても、簡単で高
速に実行可能であるが、無許可の人にアプリケーション
の動作を暴露するタンパリングに対するプロテクション
を与えるのに非常に有効であることが分かる。
【0031】どこで比較が行われるのか、あるいは、特
権ファンクションになり得るようなことを行う際に付加
的なファンクションが実行されるのかは、本発明の基本
原理の実施にとっては重要ではない。しかし、次に、図
1および図3の保護されたオペレーションXについて説
明されるような付加的なファンクションを実行すること
によって、付加的なプロテクションを与えることができ
る。この場合は、222で示すオペレーションX1が、
オペレーションA1で前述したように、PRBSジェネ
レータ110をインクリメントする。オペレーションX
2は、前述したように、Fnx を呼び出し(224)、
PRBSジェネレータ120をインクリメントする(2
26)。上述したように、再度、アプリケーションへ戻
る(228)。
【0032】次に、オペレーションX3は、PRBSジ
ェネレータ110からPRBS値を取り出す(230)
が、オペレーションFnp′を呼び出し、PRBSジェ
ネレータ110からデバイス・ドライバに、PRBS値
を与える(232)。次に、特権ファンクションF
p′が、PRBSジェネレータ120からPRBS値
を取り出し、比較を行う。Fnp′は、PRBSジェネ
レータ120をインクリメントしないか、あるいはま
た、PRBSジェネレータ110および120を、それ
ぞれさらにインクリメントするために、X3およびFn
p′の両方を設けることができる。このオペレーション
は、比較がより高い(あるいは、少なくとも異なる)特
権レベルで行われることを除いては、オペレーション・
シーケンスAと同じである。しかし、実際には、無許可
の人によってパッチが不正確に与えられるより多くのロ
ケーションが与えられ、また、オペレーションA3およ
び他の特権ファンクションと比較して、規約上の不整合
がX3またはFnp′のいずれかに与えられる。
【0033】次に、図4および図5を参照して、本発明
の拡張を説明する。上述した本発明の実施例は、PRB
S出力の比較が失敗した後に、アプリケーションの終
了、または、ファイルの消滅または破壊を開始できるの
に対して、図4および図5に示す本発明の拡張は、耐タ
ンパー性の一部としてファイルの破壊および修理を含
み、従って、性能において共により頑強であり、タンパ
リングが検出される前の早い時期に、プロテクト・アク
ションを生じさせる。この拡張は、上述の保護されたオ
ペレーションAの変形A′として説明される。
【0034】オペレーションA1は、前述したように、
PRBSジェネレータ110をインクリメントするため
に行われる。しかし、402で示すように、インクリメ
ントされたPRBS値は、アプリケーションに戻され
る。オペレーションA2′は、404に示されるアルゴ
リズムXと、PRBSジェネレータ110からの現在の
PRBS値とを用いて、データおよび/またはアプリケ
ーション・プログラム・コードを意図的に消滅または破
壊させるために、PRBS値を用いる。次に、オペレー
ションA3′は、PRBS値ジェネレータ120をイン
クリメントし、新しいPRBS値を戻した後に、オペレ
ーションA′を実行するために、特権ファンクションF
A′を呼び出す。次に、PRBSジェネレータ110
のPRBS値と現在は同じであるべきである、PRBS
ジェネレータ120からの新しいPRBS値は、PRB
Sジェネレータ120からのPRBS値と、404で破
壊されたデータまたはコードを復元するためのアルゴリ
ズムXの逆であるアルゴリズムX′とを用いて、410
に示すように、オペレーションA4を実行するために用
いられる。
【0035】この場合、個別の比較は行う必要はない。
というのは、データまたはコードの不正確な復元は、ア
プリケーションを休止するか、あるいは、不正確で意味
のない結果を戻す(データまたはコードは、完全にラン
ダムな2進コード・シーケンスによって破壊されたの
で)からである。さらに、データの破壊および復元以外
の特権オペレーションは、オペレーションA′内で実行
される必要はなく、実際には、プログラム動作を読み取
ろうと試みる無許可の人は、アプリケーションから情報
を得ることができない。この拡張は、単独で、あるい
は、上述したA,B,またはXのような特権ファンクシ
ョンの特定の例の代わりに、比較を用いる特権ファンク
ションと共に用いることができる。
【0036】上述したことから、本発明は、単独かつ高
速に実行されるが、一例では、非常に高度の耐タンパー
性を与えることが分かる。耐タンパー性手順に対し、本
発明の複数の例を与えることができ、特に、変形(例え
ば、図3)および拡張(例えば、図5)は、アプリケー
ションの実行速度を低下させることなく、実際に破るこ
とのできないプロテクションを与える。
【0037】本発明を、1つの好適な実施例によって説
明したが、当業者によれば、本発明が、特許請求の範囲
の趣旨および範囲内の変更を含んで実施できることが分
かるであろう。
【0038】まとめとして、本発明の構成に関して以下
の事項を開示する。 (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進
シーケンス値が、同じであると、前記アルゴリズムによ
って変更されたデータは、復元され、前記記憶プログラ
ムの実行は、タンパリングを検出すると制御される、記
憶プログラム。
【図面の簡単な説明】
【図1】本発明の好適な実施例の高レベル・ブロック図
であり、そのオペレーションを示す図である。
【図2】図1に示す本発明の実施例のオペレーションを
示すフローチャートである。
【図3】図1に示す本発明の実施例のオペレーションを
示すフローチャートである。
【図4】図1の実施例の好適な拡張を示す高レベル・ブ
ロック図である。
【図5】図4に示す本発明の拡張を示すフローチャート
である。
【符号の説明】
100 本発明の一実施例 104 タイム・スケール 106 特権レベルを分ける点線 110,120 PRBSジェネレータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョージ・ダブリュ・ウィルヘルム、ジュ ニア アメリカ合衆国 13760−1611 ニューヨ ーク州 エンドウェル カタリーナ ビー エルブイディー 705

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】1つの区別化されたセクションが他の区別
    化されたセクション上で利用できないファンクションを
    実行できる、区別化されたセクションを有するプロセッ
    サ上で実行されるソフトウェアに耐タンパー性を与える
    方法であって、 前記他の区別化されたセクションと関連する第1の疑似
    ランダム2進シーケンス(PRBS)ジェネレータをイ
    ンクリメントするステップと、 前記1つの区別化されたセクションの前記ファンクショ
    ンを、前記他の区別化されたセクションから呼び出すス
    テップと、 前記1つの区別化されたセクションと関連する第2の疑
    似ランダム2進シーケンス・ジェネレータをインクリメ
    ントするステップと、 前記ファンクションを実行するステップと、 前記第1および前記第2の疑似ランダム2進シーケンス
    ・ジェネレータの疑似ランダム2進シーケンス値を比較
    するステップと、 前記比較するステップの結果によって、前記ソフトウェ
    アの実行を制御するステップとを含む方法。
  2. 【請求項2】前記ファンクションは、前記区別化された
    セクションのPRBSジェネレータをインクリメントす
    ることに制限される、請求項1に記載の方法。
  3. 【請求項3】前記1つの区別化されたセクションで利用
    できるさらなるファンクションは、前記他の区別化され
    たセクションからの疑似ランダム2進シーケンス値を呼
    び出し、前記1つの区別化されたセクションにおいて前
    記比較するステップを実行する、請求項1に記載の方
    法。
  4. 【請求項4】前記さらなるファンクションは、前記1つ
    の区別化されたセクションの前記疑似ランダム2進シー
    ケンス・ジェネレータをインクリメントし、前記他の区
    別化されたセクションの前記疑似ランダム2進シーケン
    ス・ジェネレータは、前記さらなるファンクションが呼
    び出されるとインクリメントされる、請求項3に記載の
    方法。
  5. 【請求項5】前記1つの区別化されたセクションで利用
    できるさらなるファンクションは、前記他の区別化され
    たセクションから前記疑似ランダム2進シーケンス値を
    呼び出し、前記1つの区別化されたセクションにおいて
    比較するステップを実行する、請求項2に記載の方法。
  6. 【請求項6】前記さらなるファンクションは、前記1つ
    の区別化されたセクションの前記疑似ランダム2進シー
    ケンス・ジェネレータをインクリメントし、前記他の区
    別化されたセクションの前記疑似ランダム2進シーケン
    ス・ジェネレータは、前記さらなるファンクションが呼
    び出されるとインクリメントされる、請求項5に記載の
    方法。
  7. 【請求項7】アルゴリズムと前記他の区別化されたセク
    ションの疑似ランダム2進シーケンス値を用いて、デー
    タを変更するステップと、 前記アルゴリズムの逆のファンクションを有する他のア
    ルゴリズムと、前記1つの区別化されたセクションにお
    ける疑似ランダム2進シーケンス値とを用いて、データ
    を変更するステップとをさらに含み、 前記1つの区別化されたセクションと前記他の区別化さ
    れたセクションとの前記疑似ランダム2進シーケンス値
    が同じであると、前記アルゴリズムによって変更された
    データが、復元される、請求項1に記載の方法。
  8. 【請求項8】前記区別化されたセクションは、異なる特
    権レベルである、請求項1に記載の方法。
  9. 【請求項9】1つの区別化されたセクションが、他の区
    別化されたセクション上では利用できないファンクショ
    ンを実行することができる、区別化されたセクションを
    有するプロセッサ上で実行されるソフトウェアに耐タン
    パー性を与える方法であって、 アルゴリズムと前記他の区別化されたセクションの疑似
    ランダム2進シーケンス値を用いて、データを変更する
    ステップと、 前記アルゴリズムと逆のファンクションを有する他のア
    ルゴリズムと、前記1つの区別化されたセクションにお
    ける疑似ランダム2進シーケンス値とを用いて、データ
    を変更するステップとを含み、 前記1つの区別化されたセクションおよび前記他の区別
    化されたセクションの前記疑似ランダム2進シーケンス
    値が同じであると、前記アルゴリズムによって変更され
    たデータが、復元される、方法。
  10. 【請求項10】前記区別化されたセクションは、異なる
    特権レベルである、請求項9に記載の方法。
  11. 【請求項11】1つの区別化されたセクションが、他の
    区別化されたセクション上で利用できないファンクショ
    ンを実行することができる、区別化されたセクションを
    有するプロセッサを制御する記憶プログラムであって、 前記プロセッサに、 前記他の区別化されたセクションに関連する第1の疑似
    ランダム2進シーケンス・ジェネレータをインクリメン
    トするステップと、 前記1つの区別化されたセクションの前記ファンクショ
    ンを、前記他の区別化されたセクションから呼び出すス
    テップと、 前記1つの区別化されたセクションに関連する第2の疑
    似ランダム2進シーケンス・ジェネレータをインクリメ
    ントするステップと、 前記ファンクションを実行するステップと、 前記第1および第2の疑似ランダム2進シーケンス・ジ
    ェネレータの疑似ランダム2進シーケンス値を比較する
    ステップと、 前記比較するステップの結果によって、前記記憶プログ
    ラムの実行を制御するステップとを実行させるコマンド
    を含み、 前記記憶プログラムの実行を、タンパリングを検出する
    と、制御することができる、記憶プログラム。
  12. 【請求項12】前記ファンクションは、前記区別化され
    たセクションのPRBSジェネレータをインクリメント
    することに制限される、請求項11に記載のプログラ
    ム。
  13. 【請求項13】前記1つの区別化されたセクションで利
    用できるさらなるファンクションは、前記他の区別化さ
    れたセクションからの前記疑似ランダム2進シーケンス
    値を呼び出し、前記1つの区別化されたセクションにお
    ける前記比較するステップを実行する、請求項11に記
    載のプログラム。
  14. 【請求項14】前記さらなるファンクションは、前記1
    つの区別化されたセクションの前記疑似ランダム2進シ
    ーケンス・ジェネレータをインクリメントし、前記他の
    区別化されたセクションの前記疑似ランダム2進シーケ
    ンス・ジェネレータは、前記さらなるファンクションが
    呼び出されるとインクリメントされる、請求項13に記
    載のプログラム。
  15. 【請求項15】前記1つの区別化されたセクションで利
    用できるさらなるファンクションは、前記他の区別化さ
    れたセクションからの疑似ランダム2進シーケンス値を
    呼び出し、前記1つの区別化されたセクションにおいて
    前記比較ステップを行う、請求項12に記載のプログラ
    ム。
  16. 【請求項16】前記さらなるファンクションは、前記1
    つの区別化されたセクションの前記疑似ランダム2進シ
    ーケンス・ジェネレータをインクリメントし、前記他の
    区別化されたセクションの前記疑似ランダム2進シーケ
    ンス・ジェネレータは、前記さらなるファンクションが
    呼び出されるとインクリメントされる、請求項15に記
    載のプログラム。
  17. 【請求項17】アルゴリズムと前記他の区別化されたセ
    クションの疑似ランダム2進シーケンス値を用いて、デ
    ータを変更するステップと、 前記アルゴリズムの逆のファンクションを有する他のア
    ルゴリズムと、前記1つの区別化されたセクションの疑
    似ランダム2進シーケンス値とを用いて、データを変更
    するステップとをさらに含み、 前記1つの区別化されたセクションと前記他の区別化さ
    れたセクションとの疑似ランダム2進シーケンス値が、
    同じであると、前記アルゴリズムによって変更されたデ
    ータが、復元される、請求項11に記載のプログラム。
  18. 【請求項18】1つの区別化されたセクションが、他の
    区別化されたセクション上で利用できないファンクショ
    ンを実行することができる、区別化されたセクションを
    有するプロセッサを制御する記憶プログラムであって、 前記プロセッサに、 アルゴリズムと前記他の区別化されたセクションの疑似
    ランダム2進シーケンス値を用いて、データを変更する
    ステップと、 前記アルゴリズムの逆のファンクションを有する他のア
    ルゴリズムと、前記1つの区別化されたセクションの疑
    似ランダム2進シーケンス値とを用いて、データを変更
    するステップとを実行させるコマンドを含み、 前記1つの区別化されたセクションと前記他の区別化さ
    れたセクションとの疑似ランダム2進シーケンス値が、
    同じであると、前記アルゴリズムによって変更されたデ
    ータは、復元され、 前記記憶プログラムの実行は、タンパリングを検出する
    と制御される、記憶プログラム。
JP2001025815A 2000-02-08 2001-02-01 ソフトウェアに耐タンパー性を与える方法 Expired - Fee Related JP3721085B2 (ja)

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)

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

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

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

Cited By (2)

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