JP2001516908A - 不正な侵入を防ぐ方法および装置 - Google Patents

不正な侵入を防ぐ方法および装置

Info

Publication number
JP2001516908A
JP2001516908A JP2000511282A JP2000511282A JP2001516908A JP 2001516908 A JP2001516908 A JP 2001516908A JP 2000511282 A JP2000511282 A JP 2000511282A JP 2000511282 A JP2000511282 A JP 2000511282A JP 2001516908 A JP2001516908 A JP 2001516908A
Authority
JP
Japan
Prior art keywords
programming instructions
execution
obscure
obfuscated
designed
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
JP2000511282A
Other languages
English (en)
Other versions
JP4544739B2 (ja
JP2001516908A5 (ja
Inventor
ナードーン,ジョセフ・エム
マンゴールド,リチャード・ピイ
プフォテンハウアー,ジョディ・エル
シッピィ,キース・エル
オークスミス,デイビッド・ダブリュ
マリスツェウスキイ,リチャード・エル
グラウンク,ゲイリー・エル
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2001516908A publication Critical patent/JP2001516908A/ja
Publication of JP2001516908A5 publication Critical patent/JP2001516908A5/ja
Application granted granted Critical
Publication of JP4544739B2 publication Critical patent/JP4544739B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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]
    • 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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 1つの装置では、そのオブファスケイトなプログラミング命令の実行が覗かれているかどうかを自己検証するために、いくつかのオブファスケイトなプログラミング命令を備える。別の装置では、この装置がオブファスケイトなプログラミング命令のシングル・ステップ実行をサポートするモードで操作されているかどうかを判定するために、いくつかのオブファスケイトなプログラミング命令を備える。さらに別の装置では、経過した実行時間の長さがしきい値を超えているかどうかを検証する(154)ために、いくつかのオブファスケイトなプログラミング命令を備える。さらに別の装置では、第1と第2の耐侵入技術をそれぞれ実施するために、第1と第2のグループのオブファスケイトなプログラミング命令が設けられ、第1と第2のグループのプログラミング命令は、第1と第2の耐侵入技術に対応する第1と第2のキー値のために記憶位置を共有する。

Description

【発明の詳細な説明】
【0001】 (関連出願) 本願は、1996年6月13日に出願されたTamper Resistan
t Methods and Apparatusと題する米国特許出願第08
/662679号、および1997年8月6日に出願されたCell Arra
y Providing Non−Presistent Secret St
orage Through A Mutation Cycleと題する米国
特許出願(番号未指定)(Express Mail EM531554811
US)の一部継続出願である。
【0002】 (発明の背景) 1.発明の分野 本発明は、システム・セキュリティの分野に関する。さらに詳細には、本発明
は、耐侵犯性の(tamper resistant:不正なアクセスを防止する)方法および装
置に関する。
【0003】 2.背景情報 多くのアプリケーション、例えば金融取引や無人認可、コンテンツ管理では、
それらの動作の基本的な整合性を仮定する、または少なくとも検証する必要があ
る。暗号化および解読の技術など、いくつかのセキュリティ手法が当技術分野で
既知であるが、残念ながら、これらのアプリケーションおよびセキュリティ手法
はオープンかつアクセス可能なアーキテクチャを有するシステムに実装され、そ
のアーキテクチャは、セキュリティ手法を含むハードウェアおよびソフトウェア
が両方とも敵意のあるユーザまたは悪意のあるプログラムによって覗かれ、かつ
改竄されるので、これらのセキュリティ手法が容易に損なわれる可能性がある。
【0004】 このように、オープンかつアクセス可能なアーキテクチャに基づくシステムは
、セキュリティ措置を利用しても、基本的には安全でないプラットフォームであ
る。しかし、オープンであることおよびアクセス可能であることは、これらのシ
ステムが成功する一因となるいくつかの利点をもたらす。したがって、根本的に
安全でないこれらのプラットフォームで、それらがオープンでありアクセス可能
であってもなおソフトウェアの実行を実質的に覗き不可能または改竄不可能にす
る技術が必要とされている。
【0005】 (発明の概要) 1つの装置では、オブファスケイト(obfuscated:分かりにくくさせた)なプ
ログラミング命令の実行が覗かれているかどうかを自己検証するために、いくつ
かのオブファスケイトなプログラミング命令を備える。
【0006】 別の装置では、この装置がオブファスケイトなプログラミング命令のシングル
・ステップ実行をサポートするモードで動作しているかどうかを判定するために
、いくつかのオブファスケイトなプログラミング命令を備える。
【0007】 さらに別の装置では、経過した実行時間の長さがしきい値を超えたかどうかを
検証するために、いくつかのオブファスケイトなプログラミング命令を備える。
【0008】 さらに別の装置では、第1と第2のグループのオブファスケイトなプログラミ
ング命令が第1と第2の耐侵入技術をそれぞれ実装し、第1と第2のグループの
プログラミング命令は、第1と第2の耐侵入技術に対応する第1と第2のキー値
のために記憶位置を共有する。
【0009】 添付の図面に示す実施形態によって本発明について述べるが、これに限定され
ないものとする。同じ参照符は同じエレメントを指すものとする。
【0010】 (発明の詳細な説明) 以下の記述では、本発明の様々な態様について述べる。ただし、本発明は、本
発明の態様の一部だけで実施することも、全ての態様で実施することもできるこ
とは、当業者には明らかであろう。説明のために、特定の数、材料、および構成
を記載して、本発明が完全に理解されるようにする。ただし、こうした特定の詳
細を用いずに本発明を実施することができることも当業者には明らかであろう。
その他、本発明を分かりにくくしないように、周知の機構は省略または簡略化し
てある。
【0011】 記述の一部は、当業者がその他の当業者に自分の仕事の中身を伝達するために
一般に利用する方法と矛盾しないデータ、フラグ、ビット、値、文字、ストリン
グ、数などの用語を使用して、コンピュータ・システムが実行する動作の用語で
表される。これらの量が、コンピュータ・システムの機械的構成要素および電気
的構成要素を介して記憶し、転送し、結合し、またその他の方法で操作される電
気信号、磁気信号、または光信号の形態となることは、当業者なら理解するであ
ろう。ここで、コンピュータ・システムという用語は、独立型、付属型、または
組み込まれた汎用および専用のデータ処理用の機械やシステムなどを含む。
【0012】 本発明を理解するのに最も有用なかたちで、複数の別個のステップとして様々
な動作について順に述べるが、説明の順序は、これらの動作が必ず順序、特に提
示の順序に従うことを意味するものではないと解釈されたい。
【0013】 次に図1を参照すると、本発明の様々な教示を組み込んだ例示的な耐侵犯モジ
ュールの一実施形態を図示するブロック図が示してある。図示のように、例示的
な耐侵犯モジュール100は、非耐侵犯部分102、および耐侵犯部分104を
含む。図示の実施形態では、2つの部分は互いにリンクされ、単一の実行可能な
モジュールを形成する。本願では、モジュールという用語は、各部分間の排他的
通信を容易にする、様々な部分の間の構造的関係を意味する一般的な意味で使用
する。
【0014】 特許出願第08/662679号に記載されているように、非耐侵犯部分10
2は、例示的な耐侵犯モジュール100の様々な感知不能サービスを実施する、
いくつかの平文のプログラミング命令を含み、耐侵犯部分104は、例示的な耐
侵犯モジュール100の様々な感知可能サービスを実施するプログラミング命令
の平文セルおよびオブファスケイト・セル106の様々なグループを含む。感知
可能サービスまたは多数の感知可能サービスを実施するセルのグループはそれぞ
れ、少なくとも1つの平文セル106を含む。簡単に言うと、サービスに関連し
たシークレットは時間的かつ空間的に分散され、オブファスケイトになる。サー
ビスをオブファスケイトにするために利用されるオブファスケイト・セルの数は
、サービスまたは感度によって決まる。一般に、利用されるオブファスケイト・
セルの数が多くなるほど、このオブファスケイトさを「解読」することはより困
難になる。より詳細な説明については、特許出願第08/662679号を参照
されたい。
【0015】 さらに、本発明によれば、平文セルおよびオブファスケイト・セル106の選
択されたグループは、例示的な耐侵犯モジュール100が侵入も、覗かれもされ
ていないことを動作中に検証するために、いくつかの耐侵犯手段を組み込んでい
る。こうした耐侵犯手段を利用するグループの数、ならびに利用される耐侵犯手
段の頻度および数も、サービスまたは感度によって決まる。以下でより詳細に述
べるように、これらの耐侵犯手段は、いくつかの整合性手段、およびいくつかの
覗き防止手段を含む。整合性手段は、実行時および始動時の間に非耐侵犯部分1
02の整合性を検証する第1の整合性手段と、あるグループの平文セルおよびオ
ブファスケイト・セルの呼出しが侵入者から生じていないことを検証する第2の
整合性手段とを含む。覗き防止手段は、プロセッサが実行するモジュール100
が、シングル・ステップ実行をサポートするモードで動作していないことを検証
する第1の覗き防止手段と、経過した実行時間が正常な、覗かれていない実行と
矛盾しないことを検証する第2の覗き防止手段とを含む。
【0016】 図2〜3は、第1の整合性手段の動作の流れの一実施形態を示している。図2
は始動時の動作の流れを示し、図3は実行時中の動作の流れを示す。図2に示す
ように、図示の実施形態では、始動時に、この第1の整合性手段を組み込んだセ
ルのグループ(GOC)は、ブロック108で、非耐侵犯部分102を走査し、
非耐侵犯部分102についての署名を計算する。図示の実施形態では、次にブロ
ック110で、GOCは、非耐侵犯部分102についての事前に記憶しておいた
署名を取り出す。次いで、ブロック112〜114で、GOCは2つの署名を比
較して、生成された署名を検証する。生成された署名がうまく検証された場合、
すなわち非耐侵犯部分102が修正されていない場合には、ブロック116で、
GOCは、検証依存動作をスキップせずに始動プロセスを継続させ、そうでない
場合には、ブロック118でGOCは検証依存動作をスキップして始動プロセス
を継続させる。検証依存動作の一例は、いくつかの感知可能サービスを伝達する
のに必要なシークレットを準備することに関連した動作である。
【0017】 図3に示すように、図示の実施形態では、実行時中の検証チェック時に、この
第1の整合性手段を組み込んだGOCは、ブロック120で、非耐侵犯部分10
2の次の部分を走査し、非耐侵犯部分102についての署名を増分的に計算する
。次いでブロック122で、GOCはこの増分的に計算している署名を更新する
。次にブロック124で、GOCは、非耐侵犯部分102の末端に達したかどう
かを検査する。末端に達している場合にはプロセスは終了し、そうでない場合に
は、プロセスはブロック126に続く。
【0018】 ブロック126で、GOCは、非耐侵犯部分102についての事前に記憶して
おいた署名を取り出す。次いでブロック128〜130で、GOCは2つの署名
を比較して、生成された署名を検証する。生成された署名がうまく検証された場
合、すなわち非耐侵犯部分102が修正されていない場合には、GOCは、モジ
ュール100の実行を継続させ、そうでない場合には、ブロック132で、GO
Cはモジュール100の実行を終了させる。モジュールの終了は、当技術分野で
既知の任意数の方法で行うことができる。アプリケーションによっては、非耐侵
犯部分の整合性が検証で不合格になった点からさらに下流側で、モジュールを停
止させることが好ましいこともある。
【0019】 換言すれば、実行時の整合性検査は、実行ラン中のいくつかの検証チェック期
間にわたって増分的に実施される。増分的にな手法は、性能に鋭敏なサービスに
特に有用であることを当業者なら理解するであろう。実行ランで利用される検証
チェック期間の数は、サービスまたは感度によって決まる。
【0020】 図4は、第2の整合性手段の動作の流れの一実施形態を示している。呼出し時
に、図示の実施形態では、この第2の整合性手段を組み込んだGOCは、ブロッ
ク134で、その呼出しについての復帰アドレスを取り出す。図示の実施形態で
は、ブロック136で、GOCは、その復帰アドレスがモジュール100のアド
レス空間内にあるかどうかを判定する。その復帰アドレスがモジュール100の
アドレス空間内にある場合、すなわちその呼出しが侵入者から生じたものでない
場合には、ブロック138でGOCはモジュール100の実行を継続させ、そう
でない場合には、ブロック140でGOCはモジュール100の実行を終了させ
る。同様に、モジュールの終了は、当技術分野で既知の任意数の方法で行うこと
ができる。アプリケーションによっては、侵入が検出された点からさらに下流側
で、モジュールを停止させることが好ましいこともある。
【0021】 図5は、第1の覗き防止手段の動作の流れの一実施形態を示している。実行ラ
ン中の事前に選択した時点で、図示の実施形態では、ブロック142で、この第
1の覗き防止手段を組み込んだGOCは、プロセッサ実行モードの状態変数を取
り出す。図示の実施形態では、ブロック144で、GOCは、この状態変数が、
シングル・ステップ実行をサポートする実行モード、例えばデバッグ・モードを
示すかどうかを判定する。状態変数がシングル・ステップ実行をサポートしない
実行モードを示す場合、すなわちモジュール100の実行が覗かれていない場合
には、ブロック146で、GOCはモジュール100の実行を継続させ、そうで
ない場合には、GOCは、ブロック148で、モジュール100の実行を終了さ
せる。同様に、モジュールの終了は、当技術分野で既知の任意数の方法で行うこ
とができる。アプリケーションによっては、覗きが検出された点からさらに下流
側で、モジュールを停止させることが好ましいこともある。プロセッサの実行モ
ードを検査する回数およびその実行ラン中の正確な時点は、サービスまたは感度
によって決まる。
【0022】 図6は、第2の覗き防止手段の動作の流れの一実施形態を示している。実行ラ
ン中の事前に選択した時点で、図示の実施形態では、ブロック150で、この第
2の覗き防止手段を組み込んだGOCは、プロセッサが実行するモジュール10
0からタイマの値を取り出し、取り出したタイマの値(タイムスタンプ)を記録
する。次いで、ブロック152で、GOCは、それが提供するように設計された
通常サービスを引き続き実行する。事前に選択した後の時点で、GOCは、ブロ
ック154〜156で、最後のタイムスタンプからの経過した実行時間の長さを
検査し、経過した実行時間の長さが所定しきい値を超えているかどうかを判定す
る。経過した実行時間が所定しきい値を超えない場合、すなわちモジュール10
0の実行が(例えば中断点を設定することによって)覗かれていない場合には、
ブロック158で、GOCはモジュール100の実行を継続させ、そうでない場
合には、ブロック160で、GOCはモジュール100の実行を終了させる。同
様に、モジュールの終了は、当技術分野で既知の任意数の方法で行うことができ
る。アプリケーションによっては、覗きが検出された点からさらに下流側で、モ
ジュールを停止させることが好ましいこともある。最後のタイムスタンプからの
経過した実行時間の長さを検査する回数およびその実行ラン中の正確な時点は、
サービスまたは感度によって決まる。
【0023】 図7は、耐侵犯手段を相互に結合するための結合技術の一実施形態を示してい
る。図示のように、様々な耐侵犯手段に、例えばメモリ中でそれらに関連するキ
ー値について共通の記憶位置を共有させることによって、様々な耐侵犯手段を相
互結合する。図示の実施形態では、GOCは、シークレットを取り出すためのキ
ーを記憶位置168の一部分162に記憶し、モジュール100の実行が覗かれ
ているかどうかを判定するためのタイムスタンプを、部分162を除く記憶位置
168に記憶する。経過した実行時間を決定する際には、GOCは、部分162
より上位のビットのみを利用する。さらに、GOCは、低位のビット164をシ
ード(seed)として使用して、認証プロセスで利用される疑似乱数を生成す
る。したがって、侵入者がこの経過実行時間の検査手段を無効にする(defe
at)ためにタイムスタンプを修正しようと試みた場合には、それにより、認証
プロセスならびにシークレットを取り出そうとする任意の試みが失敗することに
なる。同様に、侵入者が認証プロセスを無効にするために、疑似乱数を生成する
シードを修正しようと試みた場合には、それにより、経過実行時間の検査ならび
にシークレットを取り出そうとする任意の試みが失敗することになる。
【0024】 図8は、スクランブルされたコンテンツに本発明の耐侵犯性の教示を適用する
耐侵犯プレーヤの一実施形態を示している。図示のように、図示の実施形態では
、耐侵犯プレーヤ170は、非耐侵犯性の構成要素171および耐侵犯デコーダ
172を含む。非耐侵犯性の構成要素171は、エンド・ユーザ・インタフェー
スなどの広範な汎用サービス構成要素を表すものとする。これらの汎用サービス
構成要素は、当技術分野で既知のいくつかの様々な技術のいずれか1つを使用し
て実施される、いくつかの様々なサービスのいずれか1つを用意することができ
る。耐侵犯デコーダ172は、スクランブルされた圧縮コンテンツを受信し、そ
れに応答してこのコンテンツをスクランブル解除および圧縮解除し、例えばYU
VビデオやAC3音声などのコンテンツを提供するのに適した信号を出力する。
【0025】 耐侵犯デコーダ172は、非耐侵犯部分175と、耐侵犯部分174、176
、178、および180と、非耐侵犯部分175に対する署名173とを含む。
非耐侵犯部分175は平文のプログラミング命令で構成され、耐侵犯部分174
、176、178、および180は、プログラミング命令の平文セルおよびオブ
ファスケイト・セルの複数のグループで構成される。非耐侵犯部分175、なら
びに署名173も含めた耐侵犯部分174、176、178、および180は、
それらの部分の間の排他的通信を容易にする構造的関係になっている。図示の実
施形態では、この2つの部分は、単一の実行可能なモジュールとして互いにリン
クされている。
【0026】 非耐侵犯部分175は、統合された耐侵犯部分174、176、178、およ
び180のサービスを選択的に呼び出し、プレーヤ170およびスクランブルさ
れたコンテンツの提供側デバイスに相互に認証させることも含めて、スクランブ
ルされたコンテンツのスクランブル解除を実施する。非耐侵犯部分175は、ス
クランブル解除済みの圧縮コンテンツを圧縮解除して、上述の出力信号を生成す
る。署名173は、前述の始動時および実行時の整合性検証を容易にするために
、所定位置に事前に記憶されている。
【0027】 図示の実施形態では、耐侵犯デコーダ172の耐侵犯サービスは、スクランブ
ルされたコンテンツを受信し、それに応答してこのスクランブルされたコンテン
ツをスクランブル解除し、デコーダ172の非耐侵犯部分のためにスクランブル
解除済みのコンテンツを生成する耐侵犯性デスクランブラ174を含む。一実施
形態では、耐侵犯性デスクランブラ174は、耐侵犯性シークレット・ホルダ1
80から取り出したシークレット・キーを利用して、スクランブルされたコンテ
ンツをスクランブル解除する。利用するシークレット・キーの数およびこれらの
キーの性質はアプリケーションによって決まるが、それらは本発明を理解するの
に必須ではない。耐侵犯性デスクランブラ174は、プログラミング命令の平文
セルおよびオブファスケイト・セルのグループで構成される。一実施形態では、
コアとなるスクランブル解除サービスは、平文セル中に配設され、性能の向上を
もたらす。一実施形態では、GOCは、上述の侵入者の検出による整合性手段、
およびシングル・ステップ実行モードの検出による覗き防止手段を備える。一実
施形態では、GOCは、経過した実行時間の検出による覗き防止手段も備える。
一実施形態では、GOCは、複数の経過した実行時間の検出による覗き防止手段
を備える。一実施形態では、経過した実行時間の検出による覗き防止手段は、ス
クランブルされたコンテンツのスクランブル解除に関連するシークレットキーを
取り出すプロセス、ならびにプレーヤ170およびスクランブルされたコンテン
ツの提供側デバイスを相互に認証する認証プロセスとも相互結合される。
【0028】 図示の実施形態では、耐侵犯デコーダ172の耐侵犯サービスは、スクランブ
ルされたコンテンツの提供側デバイスに対して耐侵犯プレーヤ170を認証し、
耐侵犯プレーヤ170に対してスクランブルされたコンテンツの提供側デバイス
を認証するための耐侵犯性認証装置176も含む。一実施形態では、耐侵犯性認
証装置176は、耐侵犯性シークレット・ホルダ180から取り出したシークレ
ット・キーを利用して、認証プロセスを行う。利用されるシークレット・キーの
数およびそれらのキーの性質はアプリケーションによって決まるが、それらは本
発明を理解するのに必須ではない。一実施形態では、耐侵犯性認証装置176は
、プログラミング命令の平文セルおよびオブファスケイト・セルのグループで構
成される。一実施形態では、GOCは上述の侵入者の検出による整合性手段、お
よびシングル・ステップ実行モードの検出による覗き防止手段を備える。一実施
形態では、GOCは、経過した実行時間の検出による覗き防止手段も備える。一
実施形態では、GOCは、複数の経過した実行時間の検出による覗き防止手段を
備える。一実施形態では、経過した実行時間の検出による覗き防止手段は、スク
ランブルされたコンテンツのスクランブル解除に関連するシークレット・キーを
取り出すプロセス、ならびにプレーヤ170およびスクランブルされたコンテン
ツの提供側デバイスを相互に認証する認証プロセスとも相互結合される。
【0029】 図示の実施形態では、耐侵犯デコーダ172の耐侵犯サービスは、始動時に、
また実行時中にデコーダ172の非耐侵犯部分を整合性検証するための耐侵犯性
整合性検証装置178も含む。一実施形態では、耐侵犯性整合性検証装置178
は、プレーヤ170およびスクランブルされたコンテンツの提供側デバイスを相
互に認証するために利用されるシークレット・キーをシークレット・ホルダ18
0に与える。利用されるシークレット・キーの数およびそれらのキーの性質はア
プリケーションによって決まるが、それらは本発明を理解するのに必須ではない
。一実施形態では、耐侵犯性整合性検証装置178は、プログラミング命令の平
文セルおよびオブファスケイト・セルのグループで構成される。一実施形態では
、GOCはシングル・ステップ実行モードの検出による覗き防止手段を備える。
一実施形態では、GOCは、経過した実行時間の検出による覗き防止手段も備え
る。一実施形態では、GOCは、複数の経過した実行時間の検出による覗き防止
手段を備える。一実施形態では、経過した実行時間の検出による覗き防止手段は
、スクランブルされたコンテンツのスクランブル解除に関連するシークレット・
キーを取り出すプロセス、ならびにプレーヤ170およびスクランブルされたコ
ンテンツの提供側デバイスを相互に認証する認証プロセスとも相互結合される。
【0030】 最後に、前述のように、図示の実施形態では、耐侵犯デコーダ172の耐侵犯
サービスは、スクランブルされたコンテンツのスクランブル解除に関連するシー
クレットを記憶する耐侵犯性シークレット・ホルダ180を含む。シークレット
・ホルダ180は、スクランブルされたコンテンツの提供側デバイスに対して耐
侵犯プレーヤ170を認証し、耐侵犯プレーヤ170に対してスクランブルされ
たコンテンツの提供側デバイスを認証する認証プロセスに関連するシークレット
も記憶する。一実施形態では、耐侵犯性シークレット・ホルダ180は、プログ
ラミング命令の平文セルおよびオブファスケイト・セルのグループによって、特
許出願(番号未指定)(Express Mail EM531554811U
S)に記載のセル・アレイの形態で構成される。一実施形態では、GOCは、上
述の侵入者の検出による整合性手段、およびシングル・ステップ実行モードの検
出による覗き防止手段を備える。一実施形態では、GOCは、経過した実行時間
の検出による覗き防止手段も備える。一実施形態では、GOCは、複数の経過し
た実行時間の検出による覗き防止手段を備える。
【0031】 このように、プレーヤ170がそのコンテンツ入力を「オープン」バスを介し
て受信した場合でも、コンテンツがスクランブルされた形態で「オープン」バス
を介してプレーヤ170に提供されるので、そのコンテンツは保護される。さら
に、スクランブルされたコンテンツのスクランブル解除に関連するシークレット
、およびスクランブル解除を実行するプログラミング命令が、侵入および覗きか
ら保護される。それにもかかわらず、コアとなるスクランブル解除サービスなど
の性能に敏感な動作に負担がかからない。最後に、耐侵犯サービス、すなわちデ
スクランブラ174や認証装置176などは携帯可能性が高く、任意数のデコー
ダ実装とリンクすることができる。
【0032】 図9は、本発明を実施するのに適したコンピュータ・システムの一実施形態を
示している。図示のように、図示の実施形態では、コンピュータ・システム20
0は、プロセッサ202、プロセッサ・バス206、高性能入出力バス210、
および標準入出力バス220を含む。プロセッサ・バス206と高性能入出力バ
ス210はホスト・ブリッジ208によってブリッジされ、入出力バス210と
212は入出力バス・ブリッジ212によってブリッジされる。プロセッサ・バ
ス206にはキャッシュ204が結合される。高性能入出力バス210にはシス
テム・メモリ214およびビデオ・メモリ216が結合され、ビデオ・メモリに
はビデオ・ディスプレイ218が結合される。標準入出力バス220には、ディ
スク・ドライブ222と、キーボードおよびポインティング・デバイス224と
、DVD−ROM226とが結合される。
【0033】 これらのエレメントは、当技術分野で既知の従来通りの機能を実行する。詳細
には、ディスク・ドライブ222およびシステム・メモリ214は、プロセッサ
202によって実行されるとき、本発明の耐侵犯性アプリケーションの永久およ
びワーキング・コピーを記憶するために使用される。永久コピーは、工場でディ
スク・ドライブ222に事前にロードしておくことも、配布媒体(図示せず)か
らロードすることも、オンライン/ネットワークの配布ソース(図示せず)から
ダウンロードすることもできる。これらのエレメントの構成は既知である。当技
術分野で既知のこれらのエレメントのいくつかの実装のいずれか1つを使用して
、コンピュータ・システム200を形成することができる。
【0034】 言うまでもなく、代替アーキテクチャのコンピュータ・システムも含めた代替
構成のコンピュータ・システムを利用して、本発明を実施することもできる。
【0035】 全体として、上記の例示的な実施形態に関連して本発明について述べたが、本
発明が上述の実施形態に限定されないことを当業者なら理解するであろう。本発
明は、添付の特許請求の範囲の趣旨および範囲内で、修正および改変を加えて実
施することができる。したがって、この説明は本発明を限定するものではなく、
例示するものとしてみなされたい。
【0036】 以上、様々な耐侵犯性の方法および装置について述べた。
【図面の簡単な説明】
【図1】 本発明の様々な教示を組み込んだ例示的な耐侵犯モジュールの概要を示すブロ
ック図である。
【図2】 本発明の整合性検証の始動時の動作の流れの一実施形態を示す流れ図である。
【図3】 本発明の整合性検証の実行時中の動作の流れの一実施形態を示す流れ図である
【図4】 本発明の侵入者検出方法の動作の流れの一実施形態を示す流れ図である。
【図5】 本発明の2つの覗き検出方法の動作の流れの一実施形態を示す流れ図である。
【図6】 本発明の2つの覗き検出方法の動作の流れの一実施形態を示す流れ図である。
【図7】 様々な耐侵犯性の方法を相互結合するための本発明の結合技術の一実施形態を
示すブロック図である。
【図8】 本発明の教示を組み込んだ、スクランブルされたコンテンツのための耐侵犯プ
レーヤの一実施形態を示すブロック図である。
【図9】 本発明を実施するのに適したコンピュータ・システムの一実施形態を示すブロ
ック図である。
【手続補正書】
【提出日】平成12年8月2日(2000.8.2)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,HR,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,US,U Z,VN,YU,ZW (72)発明者 プフォテンハウアー,ジョディ・エル アメリカ合衆国・85284・アリゾナ州・テ ンプ・イースト ワーナー エステイト 108番・1101 (72)発明者 シッピィ,キース・エル アメリカ合衆国・85226・アリゾナ州・チ ャンドラー・ウエスト ダブリン・3741 (72)発明者 オークスミス,デイビッド・ダブリュ アメリカ合衆国・97225・オレゴン州・ポ ートランド・サウス ウエスト レイバー ロード・6995 (72)発明者 マリスツェウスキイ,リチャード・エル アメリカ合衆国・97116・オレゴン州・フ ォレスト グローブ・12ティエイチ アベ ニュ・2218 (72)発明者 グラウンク,ゲイリー・エル アメリカ合衆国・97008・オレゴン州・ビ ーバートン・サウス ウエスト トレイル プレイス・12120 Fターム(参考) 5B017 AA07 BA08 BB10 CA15 5B076 FD05 5J104 AA04 AA09 AA11 LA06 NA02

Claims (32)

    【特許請求の範囲】
  1. 【請求項1】 複数のオブファスケイトなプログラミング命令の実行が覗か
    れているかどうかを自己検証するように設計された複数のオブファスケイトなプ
    ログラミング命令を記憶している記憶媒体と、 記憶媒体に結合された、プログラミング命令を実行するための実行ユニットと
    を含む装置。
  2. 【請求項2】 複数のオブファスケイトなプログラミング命令が、この装置
    がオブファスケイトなプログラミング命令のシングル・ステップ実行をサポート
    するモードで操作されているかどうかを判定するように設計されたオブファスケ
    イトなプログラミング命令を含む請求項1に記載の装置。
  3. 【請求項3】 複数のオブファスケイトなプログラミング命令が、前記シン
    グル・ステップ実行をサポートするかどうかの判定を実行するためにこの装置の
    状態変数にアクセスするよう設計されたオブファスケイトなプログラミング命令
    を含む請求項2に記載の装置。
  4. 【請求項4】 複数のオブファスケイトなプログラミング命令が、経過した
    実行時間の長さがしきい値を超えたかどうかを検証するように設計されたオブフ
    ァスケイトなプログラミング命令を含む請求項1に記載の装置。
  5. 【請求項5】 複数のオブファスケイトなプログラミング命令が、記録され
    たタイムスタンプに基づいて経過した実行時間の長さを計算するように設計され
    たオブファスケイトなプログラミング命令をさらに含む請求項4に記載の装置。
  6. 【請求項6】 複数のオブファスケイトなプログラミング命令が、この装置
    のタイマの現在の値を取り出し、この取り出した現在のタイマの値を記録タイム
    スタンプとして記憶するように設計されたオブファスケイトなプログラミング命
    令をさらに含む請求項5に記載の装置。
  7. 【請求項7】 取り出した現在のタイマの値を記録タイムスタンプとして記
    憶するように設計されたオブファスケイトなプログラミング命令が、この取り出
    した現在の値を、少なくとも1つのその他の耐侵入技術と共有する記憶位置に記
    憶する請求項6に記載の装置。
  8. 【請求項8】 a)複数のオブファスケイトなプログラミング命令を実行す
    るステップと、 b)実行が覗かれていないことを、この複数のオブファスケイトなプログラミ
    ング命令によって自己検証するステップと、 c)(b)で実行が覗かれていることが検証された場合に、前記(a)の実行
    を終了するステップと を含む方法。
  9. 【請求項9】 (b)が、複数のオブファスケイトなプログラミング命令が
    、それらがシングル・ステップ実行をサポートするモードで実行されているかど
    うかを判定するステップを含む請求項8に記載の方法。
  10. 【請求項10】 (b)が、前記のシングル・ステップ実行をサポートする
    かどうかの判定を行うために、複数のオブファスケイトなプログラミング命令が
    状態変数にアクセスするステップを含む請求項9に記載の方法。
  11. 【請求項11】 (b)が、複数のオブファスケイトなプログラミング命令
    が経過した実行時間の長さがしきい値を超えたかどうかを検証するステップを含
    む請求項8に記載の方法。
  12. 【請求項12】 (b)が、記録されたタイムスタンプに基づいて、経過し
    た実行時間の長さを計算するステップを含む請求項11に記載の方法。
  13. 【請求項13】 (b)が、タイマの現在の値を取り出し、この取り出した
    現在のタイマの値を記録タイムスタンプとして記憶するステップをさらに含む請
    求項12に記載の方法。
  14. 【請求項14】 (b)が、取り出した現在の値を、別の耐侵入技術と共有
    する記憶位置に記憶することを含む請求項13に記載の方法。
  15. 【請求項15】 その装置がオブファスケイトなプログラミング命令のシン
    グル・ステップ実行をサポートするモードで操作されているかどうかを判定する
    ように設計された複数のオブファスケイトなプログラミング命令を記憶している
    記憶媒体と、 記憶媒体に結合された、プログラミング命令を実行するための実行ユニットと
    を含む装置。
  16. 【請求項16】 複数のオブファスケイトなプログラミング命令が、前記シ
    ングル・ステップ実行をサポートするかどうかの判定を実行するためにこの装置
    の状態変数にアクセスするよう設計されたオブファスケイトなプログラミング命
    令を含む請求項15に記載の装置。
  17. 【請求項17】 a)複数のオブファスケイトなプログラミング命令を実行
    するステップと、 b)オブファスケイトなプログラミング命令が、シングル・ステップ実行をサ
    ポートするモードで実行されているかどうかを判定するステップと、 c)(b)で実行がシングル・ステップ実行をサポートするモードで実行され
    ていることが検証された場合に、前記(a)の実行を終了するステップと を含む方法。
  18. 【請求項18】 (b)が、前記のシングル・ステップ実行をサポートする
    かどうかの判定を行うために、複数のオブファスケイトなプログラミング命令が
    状態変数にアクセスするステップを含む請求項17に記載の方法。
  19. 【請求項19】 経過した実行時間の長さがしきい値を超えたかどうかを検
    証するように設計された複数のオブファスケイトなプログラミング命令を記憶し
    ている記憶媒体と、 記憶媒体に結合された、プログラミング命令を実行するための実行ユニットと
    を含む装置。
  20. 【請求項20】 複数のオブファスケイトなプログラミング命令が、記録さ
    れたタイムスタンプに基づいて経過した実行時間の長さを計算するように設計さ
    れたオブファスケイトなプログラミング命令をさらに含む請求項19に記載の装
    置。
  21. 【請求項21】 複数のオブファスケイトなプログラミング命令が、この装
    置のタイマの現在の値を取り出し、この取り出した現在のタイマの値を記録タイ
    ムスタンプとして記憶するように設計されたオブファスケイトなプログラミング
    命令をさらに含む請求項20に記載の装置。
  22. 【請求項22】 取り出した現在のタイマの値を記録タイムスタンプとして
    記憶するように設計されたオブファスケイトなプログラミング命令が、この取り
    出した現在の値を、少なくとも1つのその他の耐侵入技術と共有する記憶位置に
    記憶する請求項21に記載の装置。
  23. 【請求項23】 a)複数のオブファスケイトなプログラミング命令を実行
    するステップと、 b)経過した実行時間の長さがしきい値を超えているかどうかを検証するステ
    ップと、 c)(b)で実行が覗かれていることが検証された場合に、前記(a)の実行
    を終了するステップと を含む方法。
  24. 【請求項24】 (b)が、記録されたタイムスタンプに基づいて、経過し
    た実行時間の長さを計算するステップを含む請求項23に記載の方法。
  25. 【請求項25】 (b)が、タイマの現在の値を取り出し、この取り出した
    現在のタイマの値を記録タイムスタンプとして記憶するステップをさらに含む請
    求項24に記載の方法。
  26. 【請求項26】 (b)が、取り出した現在の値を、別の耐侵入技術と共有
    する記憶位置に記憶するステップを含む請求項25に記載の方法。
  27. 【請求項27】 第1と第2の耐侵入技術をそれぞれ実施するように設計さ
    れた第1と第2の複数のオブファスケイトなプログラミング命令を記憶している
    記憶媒体であって、第1と第2の複数のプログラミング命令が、第1と第2の耐
    侵入技術に対応する第1と第2のキー値の記憶位置を共有する記憶媒体と、 記憶媒体に結合された、プログラミング命令を実行する実行ユニットと を含む装置。
  28. 【請求項28】 第1の複数のオブファスケイトなプログラミング命令が、
    キーをベースとしたシークレット取出し技術を実施するように設計され、第2の
    複数のオブファスケイトなプログラミング命令が、経過した実行時間の長さがし
    きい値を超えていないことを検証するように設計される請求項27に記載の装置
  29. 【請求項29】 記憶媒体がさらに、第3の耐侵入技術を実施するように設
    計された第3の複数のオブファスケイトなプログラミング命令を記憶しており、
    この第3の複数のオブファスケイトなプログラミング命令も、第3の耐侵入技術
    に対応する第3のキー値のために同じ記憶位置を共有する請求項27に記載の装
    置。
  30. 【請求項30】 第1の複数のオブファスケイトなプログラミング命令が、
    キーをベースとしたシークレット取出し技術を実施するように設計され、第2の
    複数のオブファスケイトなプログラミング命令が、経過した実行時間の長さがし
    きい値を超えていないことを検証するように設計され、第3の複数のオブファス
    ケイトなプログラミング命令が、認証プロセスを実施するように設計される請求
    項29に記載の装置。
  31. 【請求項31】 a)第1の複数のオブファスケイトなプログラミング命令
    を実行し、第1の耐侵入技術に対応する第1のキー値を共有記憶位置に記憶する
    ことも含めて第1の耐侵入技術を実施すること、および b)第2の複数のオブファスケイトなプログラミング命令を実行し、第2の耐
    侵入技術に対応する第2のキー値を同じ共有記憶位置に記憶することも含めて第
    2の耐侵入技術を実施すること を含む方法。
  32. 【請求項32】 (c)第3の複数のオブファスケイトなプログラミング命
    令を実行し、第3の耐侵入技術に対応する第3のキー値を同じ共有記憶位置に記
    憶することも含めて第3の耐侵入技術を実施することをさらに含む請求項31に
    記載の方法。
JP2000511282A 1997-09-05 1998-07-17 不正な侵入を防ぐ方法および装置 Expired - Lifetime JP4544739B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/924,740 US6205550B1 (en) 1996-06-13 1997-09-05 Tamper resistant methods and apparatus
US08/924,740 1997-09-05
PCT/US1998/014858 WO1999013613A1 (en) 1997-09-05 1998-07-17 Tamper resistant methods and apparatus

Publications (3)

Publication Number Publication Date
JP2001516908A true JP2001516908A (ja) 2001-10-02
JP2001516908A5 JP2001516908A5 (ja) 2006-01-05
JP4544739B2 JP4544739B2 (ja) 2010-09-15

Family

ID=25450647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000511282A Expired - Lifetime JP4544739B2 (ja) 1997-09-05 1998-07-17 不正な侵入を防ぐ方法および装置

Country Status (6)

Country Link
US (1) US6205550B1 (ja)
EP (1) EP1020049A4 (ja)
JP (1) JP4544739B2 (ja)
KR (3) KR20030085085A (ja)
AU (1) AU8495798A (ja)
WO (1) WO1999013613A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055169A1 (ja) * 2005-11-09 2007-05-18 Nec Corporation 通信端末装置、サーバ端末装置、それらを用いる通信システム
JP2010039891A (ja) * 2008-08-07 2010-02-18 Nec Corp 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム
JP2010507873A (ja) * 2006-10-27 2010-03-11 キョウセラ ワイヤレス コープ. 物理的にセキュア化されていないソフトウェアエレメントのためのセキュリティ

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253323B1 (en) 1996-11-01 2001-06-26 Intel Corporation Object-based digital signatures
US6542610B2 (en) 1997-01-30 2003-04-01 Intel Corporation Content protection for digital transmission systems
US6957341B2 (en) * 1998-05-14 2005-10-18 Purdue Research Foundation Method and system for secure computational outsourcing and disguise
US6941463B1 (en) 1998-05-14 2005-09-06 Purdue Research Foundation Secure computational outsourcing techniques
US6324646B1 (en) * 1998-09-11 2001-11-27 International Business Machines Corporation Method and system for securing confidential data in a computer network
WO2000055962A2 (en) 1999-03-15 2000-09-21 Sony Electronics, Inc. Electronic media system, method and device
US7421586B2 (en) 1999-05-12 2008-09-02 Fraunhofer Gesselschaft Protecting mobile code against malicious hosts
WO2000072112A2 (en) * 1999-05-12 2000-11-30 Fraunhofer Crcg, Inc. Obfuscation of executable code
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7287166B1 (en) 1999-09-03 2007-10-23 Purdue Research Foundation Guards for application in software tamperproofing
US7757097B2 (en) * 1999-09-03 2010-07-13 Purdue Research Foundation Method and system for tamperproofing software
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6957332B1 (en) * 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US7000119B1 (en) 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
JP4186381B2 (ja) * 2000-05-10 2008-11-26 日本電気株式会社 プログラムを格納する記録媒体及びその実行方法
US7065652B1 (en) * 2000-06-21 2006-06-20 Aladdin Knowledge Systems, Ltd. System for obfuscating computer code upon disassembly
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7793111B1 (en) * 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
EP2267626B8 (en) * 2001-03-28 2016-11-30 NDS Limited Digital rights management system and method
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US7979740B2 (en) * 2001-05-21 2011-07-12 Mudalla Technology, Inc. Gaming machine having game play suspension and resumption features using biometrically-based authentication and method of operating same
US20050097342A1 (en) * 2001-05-21 2005-05-05 Cyberscan Technology, Inc. Trusted watchdog method and apparatus for securing program execution
US8515773B2 (en) 2001-08-01 2013-08-20 Sony Corporation System and method for enabling distribution and brokering of content information
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US6782477B2 (en) * 2002-04-16 2004-08-24 Song Computer Entertainment America Inc. Method and system for using tamperproof hardware to provide copy protection and online security
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
EP1795993B1 (en) * 2002-07-30 2018-02-28 Fujitsu Limited Method and apparatus for reproducing information using a security module
WO2004023313A1 (en) 2002-09-04 2004-03-18 Fraunhofer Crcg, Inc. Protecting mobile code against malicious hosts cross references to related applications
FR2845494B1 (fr) * 2002-10-04 2005-08-19 Canal Plus Technologies Logiciel et procede d'authentification de celui-ci
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7149900B2 (en) * 2002-12-12 2006-12-12 Intel Corporation Method of defending software from debugger attacks
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
US7584354B2 (en) 2003-01-31 2009-09-01 Intel Corporation Implementing portable content protection to secure secrets
JP4338989B2 (ja) * 2003-02-20 2009-10-07 パナソニック株式会社 メモリデバイス
US8510571B1 (en) 2003-03-24 2013-08-13 Hoi Chang System and method for inserting security mechanisms into a software program
KR100568228B1 (ko) * 2003-05-20 2006-04-07 삼성전자주식회사 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7366914B2 (en) * 2003-08-29 2008-04-29 Intel Corporation Source code transformation based on program operators
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) * 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US8220058B2 (en) * 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7636844B2 (en) * 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US20050108171A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US20050288056A1 (en) * 2004-06-29 2005-12-29 Bajikar Sundeep M System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US20060075441A1 (en) * 2004-10-06 2006-04-06 Sony Corporation Method and system for a personal video recorder comprising multiple removable storage/tuner units
US8768844B2 (en) * 2004-10-06 2014-07-01 Sony Corporation Method and system for content sharing and authentication between multiple devices
US8146078B2 (en) * 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US7571263B2 (en) * 2004-12-02 2009-08-04 Hitachi Global Storage Technologies Netherlands B.V. Apparatus and method for monitoring data storage device for usage and warranty
US20060137016A1 (en) * 2004-12-20 2006-06-22 Dany Margalit Method for blocking unauthorized use of a software application
US20060136705A1 (en) * 2004-12-21 2006-06-22 Motorola, Inc. Multiple stage software verification
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
JP4810846B2 (ja) * 2005-03-15 2011-11-09 富士ゼロックス株式会社 プログラムデータの不正利用を阻止するプログラム
US7620987B2 (en) * 2005-08-12 2009-11-17 Microsoft Corporation Obfuscating computer code to prevent an attack
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
TWI484769B (zh) * 2006-05-09 2015-05-11 內數位科技公司 無線裝置安全時間功能
US7818799B2 (en) * 2006-05-30 2010-10-19 Microsoft Corporation Tamper response mechanism
US8286138B2 (en) * 2007-01-30 2012-10-09 Microsoft Corporation Multi-threaded detection of a game software debugger
US20110047630A1 (en) * 2007-02-09 2011-02-24 Agency For Science, Technology And Research Method and system for tamper proofing a system of interconnected electronic devices
US8010773B2 (en) * 2008-06-24 2011-08-30 Microsoft Corporation Hardware constrained software execution
KR101272028B1 (ko) * 2011-08-18 2013-06-07 정지혜 해킹 여부 정보를 제공하는 통신 단말기 및 그 제어방법과, 그 통신 단말기를 포함하는 해킹 방지 시스템 및 그 제어방법
US8831217B2 (en) 2012-04-10 2014-09-09 Western Digital Technologies, Inc. Digital rights management system and methods for accessing content from an intelligent storage
US8914634B2 (en) 2012-04-10 2014-12-16 Western Digital Technologies, Inc. Digital rights management system transfer of content and distribution
US9792439B2 (en) 2012-09-19 2017-10-17 Nxp B.V. Method and system for securely updating firmware in a computing device
DE102014203095A1 (de) * 2014-02-20 2015-08-20 Rohde & Schwarz Gmbh & Co. Kg Funkgerät-System und Verfahren mit Zeitparameter-Auswertung
US10079686B2 (en) 2015-07-29 2018-09-18 International Business Machines Corporation Privacy-preserving attribute-based credentials
KR101977008B1 (ko) * 2019-01-07 2019-05-09 동양대학교 산학협력단 시간정보 왜곡보정이 가능한 타임스탬프를 이용한 데이터 숨김방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS619740A (ja) * 1984-06-26 1986-01-17 Matsushita Electric Ind Co Ltd プログラムの領域はみ出し検出装置
JPH0855023A (ja) * 1994-07-25 1996-02-27 Motorola Inc データ処理システムおよびその方法
WO1997004394A1 (en) * 1995-07-14 1997-02-06 Christopher Nathan Drake Computer software authentication, protection, and security system
WO1997048203A1 (en) * 1996-06-13 1997-12-18 Intel Corporation Tamper resistant methods and apparatus

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4262329A (en) * 1978-03-27 1981-04-14 Computation Planning, Inc. Security system for data processing
US4723284A (en) * 1983-02-14 1988-02-02 Prime Computer, Inc. Authentication system
US4947430A (en) 1987-11-23 1990-08-07 David Chaum Undeniable signature systems
US4926480A (en) 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
US4847902A (en) 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
GB2163577B (en) * 1984-08-23 1988-01-13 Nat Res Dev Software protection device
GB2197506A (en) * 1986-10-27 1988-05-18 Burr Brown Ltd Providing and handling break points in a software monitor
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
ES2041712T3 (es) 1987-03-04 1993-12-01 Siemens Nixdorf Informationssysteme Ag Sistema de intercambio de datos.
US5347579A (en) 1989-07-05 1994-09-13 Blandford Robert R Personal computer diary
US5136643A (en) * 1989-10-13 1992-08-04 Fischer Addison M Public/key date-time notary facility
US5081675A (en) 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5267312A (en) 1990-08-06 1993-11-30 Nec Home Electronics, Ltd. Audio signal cryptographic system
US5265164A (en) 1991-10-31 1993-11-23 International Business Machines Corporation Cryptographic facility environment backup/restore and replication in a public key cryptosystem
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5359659A (en) * 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
US5343527A (en) 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5469507A (en) * 1994-03-01 1995-11-21 International Business Machines Corporation Secure communication and computation in an insecure environment
US5483649A (en) * 1994-07-01 1996-01-09 Ybm Technologies, Inc. Personal computer security system
US5535276A (en) * 1994-11-09 1996-07-09 Bell Atlantic Network Services, Inc. Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography
US5684875A (en) 1994-10-21 1997-11-04 Ellenberger; Hans Method and apparatus for detecting a computer virus on a computer
US5668874A (en) * 1995-02-28 1997-09-16 Lucent Technologies Inc. Identification card verification system and method
US5559960A (en) 1995-04-21 1996-09-24 Lettvin; Jonathan D. Software anti-virus facility
US5652793A (en) 1995-05-08 1997-07-29 Nvidia Corporation Method and apparatus for authenticating the use of software
US5768382A (en) 1995-11-22 1998-06-16 Walker Asset Management Limited Partnership Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US5638446A (en) 1995-08-28 1997-06-10 Bell Communications Research, Inc. Method for the secure distribution of electronic files in a distributed environment
US5822431A (en) * 1996-01-19 1998-10-13 General Instrument Corporation Of Delaware Virtual authentication network for secure processors
US6049609A (en) 1997-08-06 2000-04-11 Intel Corporation Cell array providing non-persistent secret storage through a mutation cycle
US5966306A (en) * 1997-07-07 1999-10-12 Motorola Inc. Method for verifying protocol conformance of an electrical interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS619740A (ja) * 1984-06-26 1986-01-17 Matsushita Electric Ind Co Ltd プログラムの領域はみ出し検出装置
JPH0855023A (ja) * 1994-07-25 1996-02-27 Motorola Inc データ処理システムおよびその方法
WO1997004394A1 (en) * 1995-07-14 1997-02-06 Christopher Nathan Drake Computer software authentication, protection, and security system
WO1997048203A1 (en) * 1996-06-13 1997-12-18 Intel Corporation Tamper resistant methods and apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055169A1 (ja) * 2005-11-09 2007-05-18 Nec Corporation 通信端末装置、サーバ端末装置、それらを用いる通信システム
US8112623B2 (en) 2005-11-09 2012-02-07 Nec Corporation Communication terminal apparatus, server terminal apparatus, and communication system using the same
JP4978896B2 (ja) * 2005-11-09 2012-07-18 日本電気株式会社 通信端末装置、サーバ端末装置、それらを用いる通信システム
JP2010507873A (ja) * 2006-10-27 2010-03-11 キョウセラ ワイヤレス コープ. 物理的にセキュア化されていないソフトウェアエレメントのためのセキュリティ
JP2010039891A (ja) * 2008-08-07 2010-02-18 Nec Corp 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム

Also Published As

Publication number Publication date
KR20010023733A (ko) 2001-03-26
US6205550B1 (en) 2001-03-20
KR20030085086A (ko) 2003-11-01
AU8495798A (en) 1999-03-29
EP1020049A1 (en) 2000-07-19
EP1020049A4 (en) 2000-10-11
JP4544739B2 (ja) 2010-09-15
KR100405574B1 (ko) 2003-11-14
WO1999013613A1 (en) 1999-03-18
KR20030085085A (ko) 2003-11-01

Similar Documents

Publication Publication Date Title
JP2001516908A (ja) 不正な侵入を防ぐ方法および装置
US6178509B1 (en) Tamper resistant methods and apparatus
US6175925B1 (en) Tamper resistant player for scrambled contents
JP3363379B2 (ja) 安全な記憶領域内のアプリケーション・データを保護する方法及び装置
US7765406B2 (en) System, computer program and method for a crytographic system using volatile allocation of a superkey
KR100851631B1 (ko) 보안 모드 제어 메모리
US6253324B1 (en) Server verification of requesting clients
JP4739644B2 (ja) 悪質コード検出方法
US9043615B2 (en) Method and apparatus for a trust processor
KR100851623B1 (ko) 암호 코프로세서를 포함하는 장치
US8949989B2 (en) Auditing a device
US7930537B2 (en) Architecture for encrypted application installation
US8769675B2 (en) Clock roll forward detection
EP1449048B1 (en) Method, system, device and computer program for mutual authentication and content protection
US20060253714A1 (en) Information processor, tamper-proof method, and tamper-proof program
US20090199017A1 (en) One time settable tamper resistant software repository
JP2004140715A (ja) 電子文書管理方法及びシステム
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050719

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100521

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: 20100622

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: 20100629

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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