JP2004500666A - 分離実行のための分離命令 - Google Patents

分離実行のための分離命令 Download PDF

Info

Publication number
JP2004500666A
JP2004500666A JP2001573180A JP2001573180A JP2004500666A JP 2004500666 A JP2004500666 A JP 2004500666A JP 2001573180 A JP2001573180 A JP 2001573180A JP 2001573180 A JP2001573180 A JP 2001573180A JP 2004500666 A JP2004500666 A JP 2004500666A
Authority
JP
Japan
Prior art keywords
processor
instruction
iso
register
exit
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
JP2001573180A
Other languages
English (en)
Other versions
JP4719398B2 (ja
JP2004500666A5 (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 JP2004500666A publication Critical patent/JP2004500666A/ja
Publication of JP2004500666A5 publication Critical patent/JP2004500666A5/ja
Application granted granted Critical
Publication of JP4719398B2 publication Critical patent/JP4719398B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/2105Dual mode as a secondary aspect

Abstract

本発明の実施形態による分離命令を実行するための技術を提供する。実行ユニットは、プラットフォームで動作するプロセッサ中で分離命令を実行する。プロセッサは、ノーマル実行モードおよび分離実行モードの1つに構成される。プロセッサが分離実行モードに構成されている場合に分離命令の実行をサポートするための少なくとも1つのパラメータを格納するパラメータ記憶域。

Description

【0001】
(背景)
1.発明の分野
本発明は、マイクロプロセッサに関する。より詳細には、本発明は、プロセッサのセキュリティに関する。
【0002】
2.関連技術の説明
マイクロプロセッサと通信技術の進歩は、従来のビジネスの方法を超えた多数の応用の機会をもたらしている。今や、電子商取引(Eコマース)およびビジネス・ツー・ビジネス(B2B)取引が普及しつつあり、高速で世界的規模の市場に到達する。残念ながら、最新のマイクロプロセッサ・システムは、便利で効率的なビジネスの方法、通信方法、取引方法をユーザに提供するが、悪意ある攻撃を受けやすい。これらの攻撃の例をいくつか挙げると、ウィルス、侵入、セキュリティの侵害、改ざんがある。したがって、コンピュータ・システムの保全性を保護し、ユーザの信頼を高めるために、コンピュータのセキュリティがますます重要になってきている。
【0003】
悪意ある攻撃により生じる脅威は、多くの形態をとり得る。攻撃は遠隔からでも可能であり、物理的アクセスを必要としない。ハッカーによる遠隔からの侵入攻撃は、何千人または何百万人ものユーザに接続されているシステムの正常な動作を混乱させる。ウィルス・プログラムは、シングル・ユーザ・プラットフォームのコードおよび/またはデータを毀すことができる。
【0004】
攻撃から保護するための既存の技術には多くの欠点がある。アンチ・ウィルス・プログラムは、既知のウィルスのスキャンおよび検出しか行えない。ほとんどのアンチ・ウィルス・プログラムは、ファイルまたはプログラムが不良であると証明されるまでは良好であると想定するウィーク・ポリシーを使用している。多くのセキュリティ・アプリケーションにとって、このウィーク・ポリシーは適切ではないであろう。さらに、ほとんどのアンチ・ウィルス・プログラムは、プラットフォームに常駐している場合にローカルに使用される。これは、グループ・ワーク環境においては適切ではないことがある。暗号化またはその他のセキュリティ技術を使用したセキュリティ・コプロセッサまたはスマート・カードは、速度性能、メモリ容量、フレキシビリティにおいて限界がある。オペレーティング・システムを再設計すると、ソフトウェアの互換性の問題が生じ、開発努力への多額の投資が発生する。
【0005】
本発明の特徴および利点は、本発明の以下の詳細な説明から明らかになるであろう。
【0006】
(説明)
本発明の一実施態様では、分離命令(isolated instruction)を実行するための技術を提供する。実行ユニットが、プラットフォームで動作するプロセッサ中で分離命令を実行する。プロセッサは、ノーマル実行モードおよび分離実行モードの1つに構成される。パラメータ記憶域は、プロセッサが分離実行モードに構成されている場合に分離命令の実行をサポートするための少なくとも1つのパラメータを含む。
【0007】
一実施態様では、分離命令は、分離初期化(iso_init)命令、分離クローズ命令(iso_close)命令、分離入口(iso_enter)命令、分離出口(iso_exit)命令、分離構成読込み(iso_config_read)命令、および分離構成書込み(iso_config_write)命令の1つである。パラメータは、分離特徴ワード、実行モード・ワード、論理プロセッサ値、マスク値およびベース値を含む分離設定、出口物理アドレス、入口物理アドレス、およびプロセッサ・ナブ・ローダ(processor nub loader)の物理アドレスの1つである。
【0008】
パラメータ記憶域は、内部記憶域か外部記憶域の1つである。内部記憶域は、実行モード・ワードを記憶する制御レジスタ、論理プロセッサ・レジスタ、マスク値を記憶するマスク・レジスタ、ベース値を記憶するベース・レジスタ、フレーム・レジスタ・セット、出口アドレスを記憶する出口フレーム・レジスタ、入口アドレスを記憶する入口フレーム・レジスタ、プロセッサ・ナブ・ローダ・アドレスを記憶するローダ・レジスタを含む。外部記憶域は、メモリ・コントローラ・ハブ(MCH)記憶域、および入出力コントローラ・ハブ(ICH)記憶域を含む。実行モード・ワードは、プロセッサを分離実行モードに構成する。
【0009】
iso_init命令を実行すると、プロセッサは、分離域がまだ作成されていない場合は、ベース値およびマスク値によって定義される分離域をメモリ中に作成し、MCHレジスタにその分離域の範囲を設定し、ローダ・レジスタ中のプロセッサ・ナブ・ローダ・アドレスを使ってその分離域にプロセッサ・ナブ・ローダをコピーし、プロセッサ・ナブ・ローダを実行する。さらに、iso_init命令を実行すると、プロセッサは、分離域をプラットフォーム用に初期化し、プロセッサ・ナブのロケーションを得る。プロセッサにプロセッサ・ナブ・ローダを実行させるiso_init命令によって、プロセッサは、プロセッサ・ナブを分離域中にコピーし、プロセッサ・ナブ・ローダ中に含まれる公開キーを使ってプロセッサ・ナブの署名を検証し、署名が検証された場合はそのプロセッサ・ナブを実行する。したがって、iso_init命令は、分離域が作成されると、その環境またはプラットフォームを確実にクリーンな状態にする。
【0010】
iso_enter命令を実行すると、プロセッサは、フレーム・レジスタ・セットの内容を出口フレーム・レジスタ中の出口アドレスが指す出口フレーム中に記憶し、入口フレーム・レジスタ中の入口アドレスが指す入口フレームをフレーム・レジスタ・セット中にロードする。iso_exit命令を実行すると、プロセッサは出口フレームをフレーム・レジスタ・セット中にロードする。出口フレーム・レジスタ中の出口アドレスが出口フレームを指す。iso_close命令を実行すると、プロセッサは、対応する論理プロセッサが最後に引き下るものである場合はプロセッサ中の分離設定をリセットし、また、そのプロセッサが最後に引き下るものである場合はMCHおよびICH中の分離設定をリセットする。iso_config_read命令を実行すると、プロセッサは、パラメータ記憶域に対応する構成記憶域の内容を返す。iso_config_write命令を実行すると、プロセッサは、パラメータ記憶域に対応する構成記憶域の内容を書き込む。
【0011】
次の命令は、環境および/またはプラットフォームの保全性を確実にするために、原子的かつ割込み不能である。すなわち、iso_enter、iso_exit、iso_close、iso_config_read、iso_configu_write。iso_enter命令を実行すると、プロセッサは、フレーム・レジスタ・セットの内容を出口フレーム・レジスタ中の出口アドレスが指す出口フレーム中に記憶し、入口フレーム・レジスタ中の入口アドレスが指す入口フレームをフレーム・レジスタ・セット中にロードする。iso_exit命令を実行すると、プロセッサは、出口フレームをフレーム・レジスタ・セット中にロードする。出口フレームは、出口フレーム・レジスタ中の出口アドレスによって指される。iso_close命令を実行すると、プロセッサは、対応する論理プロセッサが最後に引き下るものである場合はプロセッサ中の分離設定をリセットし、また、プロセッサが最後に引き下るものである場合はMCHおよびICH中の分離設定をリセットする。iso_config_read命令を実行すると、プロセッサは、パラメータ記憶域に対応する構成記憶域の内容を返す。iso_config_write命令を実行すると、プロセッサは、パラメータ記憶域に対応する構成記憶域の内容を書き込む。
【0012】
以下の記述では、説明の目的で、本発明が完全に理解できるように多数の詳細事項を記載する。しかし、本発明を実施するためにこれらの特定の詳細事項が必要ではないことが、当業者には明らかであろう。それ以外の場合には、本発明が不明瞭にならないように、周知の電気構造および電気回路を構成図の形態で示してある。
【0013】
アーキテクチャの概要
コンピュータ・システムまたはプラットフォームにセキュリティを与えるための1つの原則は、分離実行アーキテクチャという概念である。分離実行アーキテクチャは、コンピュータ・システムまたはプラットフォームのオペレーティング・システムと直接的または間接的に相互作用するハードウェアおよびソフトウェアのコンポーネントの論理的および物理的定義を含む。オペレーティング・システムおよびプロセッサは、様々な動作モードに対応するリングと呼ばれるいくつかのレベルの階層を備えることができる。リングは、オペレーティング・システム内で専用タスクを実行するように設計されたハードウェアおよびソフトウェアのコンポーネントの論理区分である。この区分は、一般に、特権、すなわちプラットフォームに変更を施す能力の程度またはレベルに基づく。例えば、リング0は最も内側のリングであり、階層の最上レベルにある。リング0は、最も重要な特権コンポーネントを包含する。さらに、リング0中のモジュールは、それよりも特権度の低いデータにアクセスすることもできるが、その反対は不可能である。リング3は最も外側のリングであり、階層の最低レベルにある。リング3は、一般に、ユーザ・レベルまたはアプリケーション・レベルを包含し、最小特権を有する。リング1およびリング2は中間リングを表し、その特権のレベルが減少していく。
【0014】
図1Aは、本発明の一実施形態による論理動作アーキテクチャ50を示す図である。論理動作アーキテクチャ50は、オペレーティング・システムのコンポーネントおよびプロセッサのアブストラクトである。論理動作アーキテクチャ50は、リング0 10、リング1 20、リング2 30、リング3 40、およびプロセッサ・ナブ・ローダ52を含む。プロセッサ・ナブ・ローダ52は、プロセッサ・エグゼクティブ(PE)ハンドラのインスタンスである。PEハンドラは、後述するように、プロセッサ・エグゼクティブ(PE)をハンドルおよび/または管理するために使用される。論理動作アーキテクチャ50は、ノーマル実行モードおよび分離実行モードの2種類のオペレーション・モードを有する。論理動作アーキテクチャ50中の各リングは、両方のモードで動作することができる。プロセッサ・ナブ・ローダ52は、分離実行モードにおいてのみ動作する。
【0015】
リング0 10は、ノーマル実行リング0 11および分離実行リング0 15の2つの部分を含む。ノーマル実行リング0 11は、オペレーティング・システムにとって重要なソフトウェア・モジュールを含み、これは、通常、カーネルと呼ばれる。これらのソフトウェア・モジュールは、プライマリ・オペレーティング・システム(例えばカーネル)12、ソフトウェア・ドライバ13、およびハードウェア・ドライバ14を含む。分離実行リング0 15は、オペレーティング・システム(OS)ナブ16およびプロセッサ・ナブ18を含む。OSナブ16およびプロセッサ・ナブ18は、それぞれOSエグゼクティブ(OSE)およびプロセッサ・エグゼクティブ(PE)のインスタンスである。OSEおよびPEは、分離域70および分離実行モードに関連する安全な環境で動作するエグゼクティブ・エンティティ(executive entity)の一部である。プロセッサ・ナブ・ローダ52は、システム中のチップセット内に保持される保護ブートストラップ・ローダ・コードであり、後述するように、プロセッサまたはチップセットから分離域にプロセッサ・ナブ18をロードする責任をもつ。
【0016】
同様に、リング1 20、リング2 30、およびリング3 40は、それぞれ、ノーマル実行リング1 21、リング2 31、リング3 41、および分離実行リング1 25、リング2 35、リング3 45を含む。特に、ノーマル実行リング3は、N個のアプリケーション42〜42を含み、分離実行リング3は、K個のアプレット46〜46を含む。
【0017】
分離実行アーキテクチャの1つの概念は、システム・メモリ中に、分離域と呼ばれる分離された領域を作成することであり、この分離域は、コンピュータ・システム中のプロセッサおよびチップセットの両方によって保護される。この分離領域は、トランスレーション・ルックアサイド(TLB)アクセス・チェックによって保護されるキャッシュ・メモリ中にあってもよい。この分離領域へのアクセスは、分離読込みおよび書込みサイクルと呼ばれる、専用バス(例えば、メモリ読込みおよび書込み)サイクルを使って、プロセッサのフロント・サイド・バス(FSB)からのみ可能である。この専用バス・サイクルは、スヌーピングにも使用される。この分離読込み/書込みサイクルは、プロセッサが分離実行モードで実行することにより発行される。分離実行モードの初期化は、プロセッサ中の特権命令をプロセッサ・ナブ・ローダ52と組み合わせて使用して行う。プロセッサ・ナブ・ローダ52は、リング0のナブ・ソフトウェア・モジュール(例えば、プロセッサ・ナブ18)を検証し、分離域中にロードする。プロセッサ・ナブ18は、分離実行のためのハードウェア関連のサービスを提供する。
【0018】
プロセッサ・ナブ18の1つのタスクは、リング0のOSナブ16を検証して分離域中にロードし、プラットフォーム、プロセッサ・ナブ18、およびオペレーティング・システム・ナブ16の組み合わせに一意のキー階層のルートを生成することである。オペレーティング・システム・ナブ16は、プライマリOS12中のサービス(例えば、オペレーティング・システム中の非保護セグメント)へのリンクを提供し、分離域内のページ管理を提供し、また、アプレット46〜46を含めて、リング3のアプリケーション・モジュール45を分離域中の割り振られた保護ページ中にロードする責任を有する。オペレーティング・システム・ナブ16はまたリング0サポート・モジュールをロードすることができる。
【0019】
オペレーティング・システム・ナブ16は、分離域と通常の(例えば非分離)メモリの間のデータのページングをサポートすることを選択することができる。その場合、オペレーティング・システム・ナブ16は、ページを通常のメモリに追い出す前に、分離域のページを暗号化しハッシングする責任と、ページを復元したときにそのページの内容をチェックする責任も有する。分離モード・アプレット46〜46、およびそれらのデータは、他のアプレットから、また、非分離スペースのアプリケーション(例えば41〜42)、ダイナミック・リンク・ライブラリ(DLL)、ドライバ、およびさらにはプライマリ・オペレーティング・システム12からのあらゆるソフトウェア攻撃に対して耐偽造性および耐監視性を有する。プロセッサ・ナブ18またはオペレーティング・システム・ナブ16のみがアプレットの実行を干渉または監視することができる。
【0020】
図1Bは、本発明の一実施形態によるオペレーティング・システム10中の様々なエレメントおよびプロセッサのアクセス可能性を示す図である。説明のために、リング0 10およびリング3 40のみを示している。論理動作アーキテクチャ50中の様々な要素は、それらのリング階層および実行モードに従って、アクセス可能物理メモリ60にアクセスする。
【0021】
アクセス可能物理メモリ60は、分離域70および非分離域80を含む。分離域70は、アプレット・ページ72およびナブ・ページ74を含む。非分離域80は、アプリケーション・ページ82およびオペレーティング・システム・ページ84を含む。分離域70は、分離実行モードで動作するオペレーティング・システムの要素およびプロセッサからのみアクセス可能である。非分離域80は、リング0のオペレーティング・システムのすべての要素およびプロセッサからアクセス可能である。
【0022】
プライマリOS12、ソフトウェア・ドライバ13、およびハードウェア・ドライバ14を含むノーマル実行リング0 11は、OSページ84およびアプリケーション・ページ82の両方にアクセスすることができる。アプリケーション42〜42を含むノーマル実行リング3は、アプリケーション・ページ82のみにアクセスすることができる。しかし、ノーマル実行リング0 11およびリング3 41は、分離域70にアクセスすることはできない。
【0023】
OSナブ16およびプロセッサ・ナブ18を含む分離実行リング0 15は、アプレット・ページ72およびナブ・ページ74を含む分離域70と、アプリケーション・ページ82およびOSページ84を含む非分離域80の両方にアクセスすることができる。アプレット46〜46を含む分離実行リング3 45は、アプリケーション・ページ82およびアプレット・ページ72のみにアクセスすることができる。アプレット46〜46は、分離域70中に常駐する。
【0024】
図1Cは、本発明の一実施形態を実施することができるコンピュータ・システム100を示す図である。コンピュータ・システム100は、プロセッサ110、ホスト・バス120、メモリ・コントローラ・ハブ(MCH)130、システム・メモリ140、入出力コントローラ・ハブ(ICH)150、不揮発性メモリまたはシステム・フラッシュ160、大容量記憶装置170、入出力装置175、トークン・バス180、マザーボード(MB)・トークン182、リーダ184、およびトークン186を含む。MCH130は、分離実行モード、ホストから周辺機器へのバス・インタフェース、メモリ、コントロールなど、複数の機能を統合するチップセットに統合することができる。同様に、ICH150も、入出力機能の実行のために、MCH130と一緒にまたは分離して、チップセット中に統合することができる。わかりやすくするために、すべての周辺バスを示してはいない。システム100はまた、PCI(Peripheral Component Interconnect)、AGP(accelerated graphics port)、ISA(Industry Standard Architecture)バス、ユニバーサル・シリアル・バス(USB)などの周辺バスも含むことが考えられる。
【0025】
プロセッサ110は、複雑命令セット・コンピュータ(CISC)、縮小命令セット・コンピュータ(RISC)、超長命令語(VLIW)、またはハイブリッド・アーキテクチャなど、任意の種類のアーキテクチャの中央処理装置を表す。一実施形態では、プロセッサ110は、ペンティアム(登録商標)・シリーズ、IA−32(商標)、IA−64(商標)などのインテル・アーキテクチャ(IA)プロセッサと互換性がある。プロセッサ110は、ノーマル実行モード112および分離実行回路115を含む。ノーマル実行モード112は、プロセッサ110が、非安全環境、すなわち分離実行モードによって提供されるセキュリティ機能がない通常のモードで動作するモードである。分離実行回路115は、プロセッサ110が分離実行モードで動作することを可能にするメカニズムを提供する。分離実行回路115は、分離実行モードのためのハードウェアおよびソフトウェアのサポートを提供する。このサポートには、分離実行のための構成、分離域の定義、分離命令の定義(例えば、復号および実行)、分離アクセス・バス・サイクルの生成、分離モード割込みの生成が含まれる。
【0026】
一実施形態では、コンピュータ・システム100は、たった1つの主要中央処理装置、例えばプロセッサ110のみを備えるデスクトップ・コンピュータなどの単一プロセッサ・システムであってよい。他の実施形態では、コンピュータ・システム100は、図1Cに示すように、複数のプロセッサ、例えばプロセッサ110、110a、110bを含むことができる。したがって、コンピュータ・システム100は、任意の数のプロセッサを有するマルチプロセッサ・コンピュータ・システムであってよい。例えば、マルチプロセッサ・コンピュータ・システム100は、サーバまたはワークステーション環境の一部として動作することができる。プロセッサ110の基本的な記述およびオペレーションを以下に詳説して示す。当業者は、プロセッサ110の基本的な記述およびオペレーションが、図1Cに示す他のプロセッサ110aおよび110bにも、また本発明の一実施形態によるマルチプロセッサ・コンピュータ・システム100中で利用することができる任意の数の他のプロセッサにも適用できることを認識されよう。
【0027】
プロセッサ110はまた、複数の論理プロセッサを有することができる。論理プロセッサはスレッドと呼ばれることもあり、あるアーキテクチャ状態、および何らかのパーティション・ポリシーに従って割り振られた物理資源を有する物理プロセッサ内の機能ユニットである。本発明のコンテキストにおいては、「スレッド」および「論理プロセッサ」という用語を同じものを意味するために使用している。マルチスレッド・プロセッサは、複数のスレッドまたは複数の論理プロセッサを有するプロセッサである。マルチプロセッサ・システム(例えば、プロセッサ110、110a、110bを含むシステム)は、複数のマルチスレッド・プロセッサを有することができる。
【0028】
ホスト・バス120は、プロセッサ110、またはプロセッサ110、110a、110bが他のプロセッサまたは装置、例えばMCH130と通信することを可能にするインタフェース信号を供給する。ノーマル・モードに加えて、ホスト・バス120は、プロセッサ110が分離実行モードに構成されている場合に、メモリ読込みおよび書込みサイクルのための対応するインタフェース信号を用いる分離アクセス・バス・モードを提供する。分離アクセス・バス・モードは、プロセッサ110が分離実行モードである間に開始されたメモリ・アクセスに対してアサートされる。分離アクセス・バス・モードはまた、アドレスが分離域のアドレス範囲内にあり、プロセッサ110が分離実行モードで初期化された場合に、命令プリフェッチ・サイクルおよびキャッシュ・ライトバック・サイクルに対してアサートされる。プロセッサ110は、分離アクセス・バス・サイクルがアサートされ、プロセッサ110が分離実行モードに初期化された場合に、分離域のアドレス範囲内にあるキャッシュ・アドレスへのスヌープ・サイクルに応答する。
【0029】
MCH130は、システム・メモリ140やICH150などのメモリおよび入出力装置の制御および構成を行う。MCH130は、分離メモリ読込みおよび書込みサイクルを含めて、メモリ参照バス・サイクルに対する分離アクセスのアサートを認識し、サービスするためのインタフェース回路を提供する。さらに、MCH130は、システム・メモリ140中の分離域を表すメモリ・レンジ・レジスタ(例えばベース・レジスタおよび長さレジスタ)を備える。MCH130は、構成されると、分離アクセス・バス・モードがアサートされていない分離域に対するアクセスを打ち切る。
【0030】
システム・メモリ140は、システム・コードおよびデータを記憶する。システム・メモリ140は、一般に、DRAM(ダイナミック・ランダム・アクセス・メモリ)またはSRAM(スタティック・ランダム・アクセス/メモリ)で実装される。システム・メモリ140は、アクセス可能物理メモリ60(図1Bに示す)を含む。アクセス可能物理メモリは、ロード済みオペレーティング・システム142、分離域70(図1Bに示す)、および分離制御/ステータス・スペース148を含む。ロード済みオペレーティング・システム142は、システム・メモリ140中にロードされたオペレーティング・システムの一部である。ロード済みOS142は、一般に、ブート読出し専用メモリ(ROM)などのブート記憶域中のあるブート・コードによって、大容量記憶装置からロードされる。分離域70は、図1Bに示すように、プロセッサ110が分離実行モードで動作しているときに定義するメモリ域である。分離域70へのアクセスは、プロセッサ110および/またはMCH130、あるいは分離域の諸機能を統合する他のチップセットによって制限され、また実施される。分離制御/ステータス・スペース148は、プロセッサ110および/またはMCH130によって定義される、入出力に似た独立したアドレス・スペースである。分離制御/ステータス・スペース148は、主として、分離実行制御およびステータス・レジスタを含む。分離制御/ステータス・スペース148は、既存のどのアドレス・スペースとも重ならず、分離バス・サイクルを使ってアクセスされる。システム・メモリ140はまた、図示していないその他のプログラムまたはデータを含む。
【0031】
ICH150は、分離実行機能を有する、システム中の既知の1地点を表す。わかりやすくするために、ICH150のみを示してある。システム100は、ICH150と同様の多くのICHを備えることができる。複数のICHがある場合は、分離域の構成およびステータスを制御するように指定したICHが選択される。一実施形態では、この選択が外部ストラッピング・ピンによって行われる。当業者には知られているように、プログラマブル構成レジスタを使用することを含めて、他の選択方法を使用することもできる。ICH150は、従来の入出力機能に加えて、分離実行モードをサポートするように設計されたいくつかの機能を有する。特に、ICH150は、分離バス・サイクル・インタフェース152、プロセッサ・ナブ・ローダ52(図1Aに示す)、ダイジェスト・メモリ154、暗号キー記憶域155、分離実行論理プロセッサ・マネージャ156、およびトークン・バス・インタフェース159を含む。
【0032】
分離バス・サイクル・インタフェース152は、分離読込みおよび書込みバス・サイクルなどの分離バス・サイクルを認識し、サービスするための分離バス・サイクル信号へのインタフェースとなる回路を含む。プロセッサ・ナブ・ローダ52は、図1Aに示すように、プロセッサ・ナブ・ローダ・コードおよびそのダイジェスト(例えばハッシュ)値を含む。プロセッサ・ナブ・ローダ52は、該当する分離命令(例えばIso_Init)を実行することによって呼び出され、分離域70に転送される。プロセッサ・ナブ・ローダ52は、分離域80から、システム・フラッシュ・メモリからのプロセッサ・ナブ18(例えば、不揮発性メモリ160中のプロセッサ・ナブ・コード18)を分離域70中にコピーし、その保全性を検証してログし、プロセッサ・ナブの秘密を保護するために使用する対称キーを管理する。一実施形態では、プロセッサ・ナブ・ローダ52は、読出し専用メモリ(ROM)として実装する。セキュリティの目的で、プロセッサ・ナブ・ローダ52は不変であり、耐偽造性があり、代用不能である。ダイジェスト・メモリ154は、一般にRAMとして実装され、ロード済みプロセッサ・ナブ18、オペレーティング・システム・ナブ16、および分離実行スペース中にロードされる他の任意の重要なモジュール(例えば、リング0モジュール)のダイジェスト(例えばハッシュ)値を記憶する。暗号キー記憶域155は、システム100のプラットフォームに一意の対称暗号/復号キーを保持する。一実施形態では、暗号キー記憶域155は、製造時にプログラムされる内部ヒューズを含む。あるいは、暗号キー記憶域155を、乱数発生器およびピンのストラップ付きでつくることもできる。分離実行論理プロセッサ・マネージャ156は、分離実行モードで動作する論理プロセッサのオペレーションを管理する。一実施形態では、分離実行論理プロセッサ・マネージャ156は、分離実行モードで参加している論理プロセッサの数を追跡する論理プロセッサ・カウント・レジスタを含む。トークン・バス・インタフェース159は、トークン・バス180へのインタフェースとなる。プロセッサ・ナブ・ローダ・ダイジェスト、プロセッサ・ナブ・ダイジェスト、オペレーティング・システム・ナブ・ダイジェスト、およびオプションの追加ダイジェストの組み合わせは、総合的な分離実行ダイジェストを表し、分離ダイジェストと呼ばれる。分離ダイジェストは、分離実行の構成およびオペレーションを制御するリング0コードを識別する指紋である。分離ダイジェストは、現在の分離実行の状態を証明または立証するために使用される。
【0033】
不揮発性メモリ160は、不揮発性の情報を記憶する。一般に、不揮発性メモリ160は、フラッシュ・メモリで実装される。不揮発性メモリ160は、プロセッサ・ナブ18を含む。プロセッサ・ナブ18は、オペレーティング・システム・ナブ16の検証、ロード、ロギングを含む、分離域70(システム・メモリ140中の)の初期設定と低レベル管理、およびオペレーティング・システム・ナブの秘密を保護するために使用される対称キーの管理を行う。プロセッサ・ナブ18はまた、他のハードウェアによって提供される低レベルのセキュリティ・サービスに、アプリケーション・プログラム・インタフェース(API)アブストラクトを提供する。プロセッサ・ナブ18はまた、相手先商標の製造会社(OEM)またはオペレーティング・システム・ベンダー(OSV)が、起動ディスクによって配布することもできる。
【0034】
大容量記憶装置170は、コード(例えば、プロセッサ・ナブ18)、プログラム、ファイル、データ、アプリケーション(例えば、アプリケーション42〜42)、アプレット(例えば、アプレット46〜46)、オペレーティング・システムなどのアーカイブ情報を記憶する。大容量記憶装置170は、コンパクト・ディスク(CD)ROM172、フロッピー(登録商標)・ディスケット174、ハード・ドライブ176、および他の任意の磁気または光学記憶装置を含むことができる。大容量記憶装置170は、機械可読媒体を読むメカニズムを提供する。ソフトウェアとして実装される場合、本発明の要素は、必要なタスクを実行するためのコード・セグメントである。プログラムすなわちコード・セグメントは、プロセッサ可読媒体に記憶するか、あるいは、搬送波中で実施されたコンピュータ・データ信号、すなわち搬送波によって変調された信号によって伝送媒体を介して伝送することができる。「プロセッサ可読媒体」には、情報を記憶または転送することができるどのような媒体も含めることができる。プロセッサ可読媒体の例としては、電子回路、半導体メモリ・デバイス、ROM、フラッシュ・メモリ、消去可能プログラム可能ROM(EPROM)、フロッピー・ディスケット、コンパクト・ディスクCD−ROM、光ディスク、ハード・ディスク、光ファイバ媒体、無線周波数(RF)リンクなどが挙げられる。コンピュータ・データ信号には、電子ネットワーク・チャネル、光ファイバ、空気、電磁気、RFリンクなどの伝送媒体を介して伝播することができるどのような信号も含めることができる。コード・セグメントは、インターネット、イントラネットなどのコンピュータ・ネットワークを介してダウンロードすることができる。
【0035】
入出力装置175には、入出力機能を実行するためのどのような入出力装置も含めることができる。入出力装置175の例としては、入力装置(例えば、キーボード、マウス、トラックボール、ポインティング・デバイス)のためのコントローラ、メディア・カード(例えば、オーディオ、ビデオ、グラフィックス)、ネットワーク・カード、およびその他の任意の周辺コントローラが挙げられる。
【0036】
トークン・バス180は、ICH150と、システム中の様々なトークンの間のインタフェースを提供する。トークンは、セキュリティ機能を備えた専用の入出力機能を実行する装置である。トークンは、少なくとも一対の予約目的の公開/秘密キーのペアと、秘密キーを使ってデータに署名を行う能力を含めて、スマート・カードと同様の特性を有する。トークン・バス180に接続されたトークンの例としては、マザーボード・トークン182、トークン・リーダ184、およびその他のポータブル・トークン186(例えば、スマート・カード)が挙げられる。ICH150中のトークン・バス・インタフェース159は、トークン・バス180を介してICH150に接続し、分離実行の状態を証明するように命令されたときに、対応するトークン(例えば、マザーボード・トークン182、トークン186)が有効な分離ダイジェスト情報にのみ署名するようにする。セキュリティの目的で、トークンはダイジェスト・メモリに接続されるべきである。
【0037】
分離命令
図2は、本発明の一実施形態による、図1Cに示す分離実行回路115の一部を示す図である。分離実行回路115は、実行ユニット230およびパラメータ記憶域240を含む。
【0038】
実行ユニット230は、図1Cに示すように、プロセッサ110で分離命令を実行する。上述のように、プロセッサ110は、図1Cに示すように、MCH130、システム・メモリ140、ICH150、トークン・バス180を含むプラットフォームにおいて動作する。さらに、プロセッサ110は、ノーマル実行モードおよび分離実行モードの1つに構成される。実行ユニット230は、分離命令を復号するためのデコーダ、復号化された命令においてタスクを実行するサブ実行ユニット、演算機能および論理機能を実行するための演算論理ユニット(ALU)、および関連するレジスタを含むことができる。実行ユニット230は分離命令210を受け取る。
【0039】
分離命令210はまた、いくつかのマイクロ命令を含むマクロ命令、またはアセンブリ言語レベルの命令であってもよい。分離命令210は、高水準言語の命令、または高水準言語による機能、ルーチン、サブプログラムであってもよい。以下の記載において、「命令」という用語は、プロセッサ110(図1C)が実行するタスクまたは機能のアブストラクト的な概念を指す。このタスクまたは機能は、単一オペレーション、一連のマイクロオペレーション、マイクロコード・ルーチン、マクロ命令、アセンブリ言語のルーチンまたは機能、高水準言語によるステートメント、高水準言語によるサブルーチンまたはサブプログラムまたは機能、あるいは専用ハードウェア回路によってなし遂げることができる。
【0040】
分離命令210は、いくつかの命令を含む。一実施形態では、これらの命令には、分離初期化(iso_init)命令212、分離クローズ(iso_close)命令214、分離入口(iso_enter)命令216、分離出口(iso_exit)命令218、分離構成読込み(iso_config_read)命令222、および分離構成書込み(iso_config_write)命令224が含まれる。iso_init命令212は、分離作成(iso_create)命令と呼ばれることもある。
【0041】
パラメータ記憶域240は、プロセッサ110が分離実行モードに構成されている場合に、分離命令210の実行をサポートするための少なくとも1つのパラメータを格納する。パラメータ記憶域240は、内部記憶域232および外部記憶域234を含む。内部記憶域232はプロセッサ110の内側にあり、外部記憶域234はプロセッサ110の外側にある。パラメータは、分離特徴ワード、実行モード・ワード、論理プロセッサ値、マスク値およびベース値を含む分離設定、フレーム、出口物理アドレス、入口物理アドレス、プロセッサ・ナブ・ローダの物理アドレスの1つである。
【0042】
図3は、本発明の一実施形態による、図2に示す内部記憶域232を示す図である。内部記憶域232は、特徴レジスタ310、プロセッサ制御レジスタ320、論理プロセッサ・レジスタ330、分離設定レジスタ340、フレーム・レジスタ・セット350、出口フレーム・レジスタ360、入口フレーム・レジスタ370、およびローダ・レジスタ380を含む。
【0043】
特徴レジスタ310は分離特徴ワードを記憶する。分離特徴ワードは、プロセッサ110に分離命令が存在すること、および分離命令のどの特徴が存在しているかを表す。特徴の例としては、分離命令の種類、乱数、乱数のステータスが挙げられる。プロセッサ制御レジスタ320は実行モード・ワード322を記憶する。実行モード・ワード322は、プロセッサが分離命令モードに構成されているかどうかを表すビットを記憶する。一実施形態では、実行モード・ワードは、分離実行モードに、または分離実行モードから制御を移す命令のみがアクセスすることができる。これらの命令の例としては、iso_init、iso_enter、およびiso_exit命令が挙げられる。
【0044】
論理プロセッサ・レジスタ330は論理プロセッサ値332を記憶する。論理プロセッサ値332は、分離実行モードに入る論理プロセッサの数を表す。物理プロセッサはいくつかの論理プロセッサを有することができ、各論理プロセッサは1つの論理プロセッサに対応する。論理プロセッサ値332は最初はゼロである。論理プロセッサが論理実行モードに入ると、論理プロセッサ値332は1だけ増加する。論理プロセッサが分離実行モードから出ると、論理プロセッサ値は1だけ減少する。論理プロセッサ値332は、分離実行モードでの論理プロセッサの数を制限するために最大値を有する。論理プロセッサが出て、論理プロセッサ値332がゼロに減少すると、この論理プロセッサは、自分が分離実行モードから引き下る最後の論理プロセッサであることを知る。
【0045】
フレーム・レジスタ・セット350は、フレームに対応するいくつかの値を記憶する。フレームは、分離実行モードからの出口、または分離実行モードへの入口がある場合に記憶または復元する必要があるいくつかのレジスタ値を含む。一般に、これらのフレーム値は、プロセッサの状態を追跡し続けるために必要な値である。一実施形態では、プロセッサはペンティアム・タイプである。フレーム情報には、制御レジスタ3(CR3)、制御レジスタ4(CR4)、割込み記述子タスク・レジスタ(IDTR)ベース、IDTRリミットの値、グローバル記述子タスク・レジスタ(GDTR)ベース値、GDTRリミット値、タスク・レジスタ(TR)値、拡張命令ポインタ(EIP)、コード・セグメント(CS)値、CS記述子、拡張フラグ(EFLAGS)、拡張スタック・ポインタ(ESP)、スタック・セグメント(SS)値、およびSS記述子が含まれる。分離実行モードからの出口または分離実行モードへの入口に対応するフレームを、それぞれ、出口フレームまたは入口フレームと呼ぶ。
【0046】
出口フレーム・レジスタ360は出口アドレス362を記憶する。出口アドレス362は出口フレームの物理アドレスである。入口フレーム・レジスタ370は入口アドレス372を記憶する。入口アドレス372は入口フレームの物理アドレスである。ロード・レジスタ380はプロセッサ・ナブ・ローダ・アドレス382を記憶する。プロセッサ・ナブ・ローダ・アドレス382はプロセッサ・ナブ・ローダ52の物理アドレスである。
【0047】
図4は、本発明の一実施形態による、図2に示す外部記憶域234を示す図である。外部記憶域234は、MCH記憶域410およびICH記憶域450を含む。
【0048】
MCH記憶域410はMCH中にあり、図1Cに示す分離域制御135の一部である。MCH記憶域410は、MCH論理プロセッサ・レジスタ420、MCHマスク・レジスタ430、およびMCHベース・レジスタ440を含む。MCH論理プロセッサ・レジスタ420は、MCH論理プロセッサ値422を記憶する。MCH論理プロセッサ値422は、図1Cに示すように、システム・メモリ140中の分離域70を使用するように構成された論理プロセッサの数を表す。MCHマスク・レジスタ430およびベース・レジスタ440は、それぞれ、MCHマスク値432およびMCHベース値442を記憶する。MCHマスク値432およびMCHベース値442は、分離域70を定義するために使用される。
【0049】
ICH記憶域450は、図1Cに示すICH中にある。ICH記憶域450は、ICH論理プロセッサ・レジスタ460、ICHマスク・レジスタ470、およびICHベース・レジスタ480を含む。ICH論理プロセッサ・レジスタ460は、ICH論理プロセッサ値462を記憶する。ICH論理プロセッサ値462は、図1Cに示すように、システム・メモリ140中の分離域70を使用するように構成された論理プロセッサの数を表す。ICHマスク・レジスタ470およびベース・レジスタ480は、それぞれ、ICHマスク値472およびICHベース値482を記憶する。ICHマスク値472およびICHベース値482は、分離域70を定義するために使用される。ICH論理プロセッサ値462は、別個の異なる物理プロセッサを含めて、レジスタ中のすべての論理プロセッサを指す。しかし、MCH論理プロセッサ値422は、対応するMCHが直接、結合されている物理プロセッサ中の論理プロセッサのみを指す。
【0050】
図5は、本発明の一実施形態による、iso_init命令を実行するプロセス500を示す流れ図である。
【0051】
開始すると、プロセス500は初期化の準備をする(ブロック510)。この準備には、保護された非ページング・モードの検証、および分離域のマスク値およびベース値の妥当性の検証を含めることができる。次いで、プロセス500は、分離域が作成されているかどうかを判定する(520)。YESの場合は、プロセス500はブロック540に進む。そうでない場合は、プロセス500は、分離域を作成する(ブロック530)。作成のプロセスは図6Aに示す。
【0052】
プロセス500は、次いで、MCHレジスタおよびプロセッサ・レジスタに範囲を設定する(ブロック540)。これには、プロセッサのマスク・レジスタとベース・レジスタ、およびMCHのマスク・レジスタとベース・レジスタの更新が含まれる。次に、プロセス500は、ローダ・レジスタ中のプロセッサ・ナブ・ローダ・アドレスを使って、ICHから分離域中にプロセッサ・ナブ・ローダをコピーする(ブロック550)。
【0053】
次いで、プロセス500は、分離域をプラットフォーム用に初期化する(ブロック560)。次いで、プロセス500は、プロセッサ・ナブのロケーション、すなわち物理アドレスを得る(ブロック570)。次いで、プロセス500は、プロセッサ・ナブ・ローダ・コードを実行することによって、制御をプロセッサ・ナブ・ローダに移す(ブロック580)。次いでプロセス500は終了する。
【0054】
図6Aは、本発明の一実施形態による、iso_init命令中の作成機能を実行するプロセス530を示す流れ図である。
【0055】
開始すると、プロセス530は、プロセス・ナブ・ローダのサイズが、マスク値によって定義された分離域の範囲よりも少ない、または同等であるかどうかを判定する(ブロック610)。そうでない場合は、分離域がプロセッサ・ナブ・ローダ全体を記憶するのに十分な大きさではないため、プロセス530は失敗または障害状態を生成する(ブロック615)。分離域の範囲よりも少ない、または同等である場合には、プロセス530は、実行モード・ワード中に該当するビットを設定することにより、プロセッサを分離実行モードに構成する(ブロック620)。
【0056】
次いで、プロセス530は、プロセッサが、分離域を作成した最初のプロセッサであるかどうかを判定する(ブロック625)。そうでない場合は、プロセス530は、プロセッサ・ナブが初期化されているかどうかを判定する(ブロック630)。プロセッサ・ナブが初期化されていない場合は、プロセス530は失敗または障害状態を生成する(ブロック635)。プロセッサ・ナブが適切に初期化されている場合は、プロセス530は、マスク値およびベース値を含むグローバル・プロセッサ設定を読み込む(ブロック640)。次いで、プロセス530は、グローバル設定をプロセッサの設定に転送することにより、プロセッサの設定を初期化する(ブロック645)。プロセス530は、次いで、終了するか、またはメイン・プロセスに戻る。
【0057】
プロセッサが分離域を作成した最初のプロセッサである場合、プロセス530は、モードが初期化を待っているかどうかを判定する(ブロック650)。これは、ICHからステータス値を読み込むことによって達成される。モードが初期化を待っていないことをステータスが示す場合には、プロセス530は失敗または障害状態を生成する(ブロック655)。そうでない場合には、プロセス530は、すでに分離域があるかどうかを判定する(ブロック660)。すでに分離域がある場合には、プロセス530はブロック670に進む。分離域がない場合には、プロセス530は、設定(例えば、ベース値およびマスク値)をICHに保存する(ブロック665)。次いで、プロセス530は、設定(例えば、ベース値およびマスク値)をICHから得る(ブロック670)。プロセス530は、次いで、終了するか、またはメイン・プロセスに戻る。
【0058】
図6Bは、本発明の一実施形態による、iso_init命令中のプロセッサ・ナブ・ローダ機能を実行するプロセス580を示す流れ図である。
【0059】
開始すると、プロセス580は、プロセッサ・ナブ・ローダ中のプロセッサ・ナブ物理アドレスを使って、プロセッサ・ナブを分離域中にコピーする(ブロック675)。次いで、プロセス580は、プロセッサ・ナブ・ローダ中の公開キーを使って、プロセッサ・ナブの署名を検証する(ブロック680)。次に、プロセス580は、その署名が検証されたかどうかを判定する(ブロック685)。検証されなかった場合には、プロセス580は失敗または障害状態を生成する(ブロック690)。検証された場合は、プロセス580は、プロセッサ・ナブを実行する(ブロック695)。プロセス580は、次いで終了するか、またはメイン・プロセスに戻る。
【0060】
図7は、本発明の一実施形態によるiso_close命令を実行するプロセス700を示す流れ図である。
【0061】
開始すると、プロセス700は、クローズの準備をする(ブロック710)。この準備には、出口フレームを取得すること、および現在のIDTRリミットを保存することを含めることができる。次いで、プロセス700は、分離実行モード・ワードを構成することにより分離実行モードを設定する(ブロック720)。次に、プロセス700は、プロセッサの入口フレームへのポインタをクリアすることにより、プロセッサの論理プロセッサを取り除く(ブロック730)。
【0062】
次いで、プロセス700は、これが、分離実行モードから引き下る最後の論理プロセッサであるかどうかを判定する(ブロック740)。そうでない場合は、プロセス700はブロック760に進む。そうである場合は、プロセス700は、プロセッサの分離設定値(例えば、ベース値およびマスク値)をリセットする(ブロック750)。次いで、プロセス700は、これが分離実行モードから引き下る最後のプロセッサであるかどうかを判定する(ブロック760)。そうでない場合は、プロセス700はブロック780に進む。そうである場合は、プロセス700は、MCHおよびICH中の分離設定をリセットする(ブロック770)。次いで、プロセス700は、実行モード・ワードを書き込むことによって、分離実行モードをクリアする(ブロック780)。プロセッサ700は次いで終了する。
【0063】
図8Aは、本発明の一実施形態によるiso_enter命令を実行するプロセス800を示す流れ図である。
【0064】
開始すると、プロセス800は、入口の準備をする(ブロック810)。この準備には、フレーム・アドレスの検証、および現在の制御レジスタおよびIDTRリミットを保存することを含めることができる。次いで、プロセス800は、実行モード・ワードを構成することによって、分離実行モードを設定する(ブロック820)。次に、プロセス800は、フレーム・レジスタ・セットの内容を出口フレーム中に記憶する(ブロック830)。出口フレーム・レジスタ中の出口アドレスが出口フレームを指す。次いで、プロセス800は、入口フレームをフレーム・レジスタ・セット中にロードする(ブロック840)。入口フレーム・レジスタ中の入口アドレスが、入口フレームを指す。次いで、プロセス800は終了する。
【0065】
図8Bは、本発明の一実施形態による、iso_exit命令を実行するプロセス850を示す流れ図である。
【0066】
開始すると、プロセス850は出口の準備をする(ブロック860)。この準備には、フレーム・アドレスを検証すること、およびIDTRリミットをクリアすることを含めて、フレームの復元の前にマシン・チェックがある場合には正しいハンドラへのディスパッチが確実に行われるようにすることができる。次いで、プロセス850は、出口フレームをフレーム・レジスタ・セット中にロードする(ブロック870)。出口フレーム・レジスタ中の出口アドレスが、出口フレームを指す。次いで、プロセス850は終了する。
【0067】
図9Aは、本発明の一実施形態による、iso_config_read命令を実行するプロセス900を示す流れ図である。
【0068】
開始すると、プロセス900は構成記憶域を読み込む準備をする(ブロック910)。この準備には、構成記憶域のアドレスを検証することを含めることができる。次いで、プロセス900は、パラメータ記憶域に対応する構成記憶域の内容を返す(ブロック920)。次いで、プロセス900は終了する。
【0069】
図9Bは、本発明の一実施形態による、iso_config_write命令を実行するプロセス950を示す流れ図である。
【0070】
開始すると、プロセス950は、構成記憶域への書込みを準備する(ブロック960)。この準備には、構成記憶域のアドレスを検証することを含めることができる。次いで、プロセス950は、パラメータ記憶域に対応する構成記憶域の内容を書き込む(ブロック970)。次いで、プロセス950は終了する。
【0071】
本発明を例示的実施形態を参照しながら説明してきたが、この説明は、限定的な意味をもつものとして解釈されることを意図したものではない。本発明のその他の実施形態と同様に、例示的実施形態のさまざまな変更形態が、本発明が関係する当分野の技術者には明らかであろうが、それらは、本発明の趣旨および範囲内に含まれるものとみなされる。
【図面の簡単な説明】
【図1A】本発明の一実施形態による論理動作アーキテクチャを示す図である。
【図1B】本発明の一実施形態によるオペレーティング・システム中の様々なエレメントおよびプロセッサのアクセス可能性を示す図である。
【図1C】本発明の一実施形態を実施することができるコンピュータ・システムを示す図である。
【図2】本発明の一実施形態による分離命令のためのアーキテクチャを示す図である。
【図3】本発明の一実施形態による内部記憶域を示す図である。
【図4】本発明の一実施形態による外部記憶域を示す図である。
【図5】本発明の一実施形態による、iso_init命令を実行するプロセスを示す流れ図である。
【図6A】本発明の一実施形態による、iso_init命令中の作成機能を実行するプロセスを示す流れ図である。
【図6B】本発明の一実施形態による、iso_init命令中のプロセッサ・ナブ・ローダ機能を実行するプロセスを示す流れ図である。
【図7】本発明の一実施形態によるiso_close命令を実行するプロセスを示す流れ図である。
【図8A】本発明の一実施形態によるiso_enter命令を実行するプロセスを示す流れ図である。
【図8B】図8Bは、本発明の一実施形態による、iso_exit命令を実行するプロセスを示す流れ図である。
【図9A】本発明の一実施形態による、iso_config_read命令を実行するプロセスを示す流れ図である。
【図9B】本発明の一実施形態による、iso_config_write命令を実行するプロセスを示す流れ図である。

Claims (60)

  1. プラットフォームで動作し、ノーマル実行モードおよび分離実行モードの1つに構成されるプロセッサ中で分離命令を実行する実行ユニットと、
    プロセッサが分離実行モードに構成されている場合に分離命令の実行をサポートするための少なくとも1つのパラメータを格納するパラメータ記憶域とを含む装置。
  2. 分離命令が、分離初期化(iso_init)命令、分離クローズ(iso_close)命令、分離入口(iso_enter)命令、分離出口(iso_exit)命令、分離構成読込み(iso_config_read)命令、および分離構成書込み(iso_config_write)命令の1つである請求項1に記載の装置。
  3. 少なくとも1つのパラメータが、分離特徴ワード、実行モード・ワード、論理プロセッサ値、マスク値およびベース値を含む分離設定、フレーム、出口物理アドレス、入口物理アドレス、プロセッサ・ナブ・ローダの物理アドレスの1つである請求項2に記載の装置。
  4. パラメータ記憶域が、内部記憶域か外部記憶域の1つである請求項3に記載の装置。
  5. 内部記憶域が、分離特徴ワードを記憶する特徴レジスタ、実行モード・ワードを記憶する制御レジスタ、論理プロセッサ値を記憶する論理プロセッサ・レジスタ、マスク値を記憶するマスク・レジスタ、ベース値を記憶するベース・レジスタ、フレームを記憶するフレーム・レジスタ・セット、出口アドレスを記憶する出口フレーム・レジスタ、入口アドレスを記憶する入口フレーム・レジスタ、プロセッサ・ナブ・ローダ・アドレスを記憶するローダ・レジスタを含む請求項4に記載の装置。
  6. 外部記憶域が、メモリ・コントローラ・ハブ(MCH)中のMCH記憶域、および入出力コントローラ・ハブ(ICH)中のICH記憶域を含む請求項5に記載の装置。
  7. 実行モード・ワードがプロセッサを分離実行モードに構成する請求項6に記載の装置。
  8. iso_init命令を実行すると、プロセッサが、
    分離域がまだ作成されていない場合はベース値およびマスク値によって定義される分離域をメモリ中に作成し、
    MCH記憶域に分離域の範囲を設定し、
    ローダ・レジスタ中のプロセッサ・ナブ・ローダ・アドレスを使って分離域中にプロセッサ・ナブ・ローダをコピーし、
    プロセッサ・ナブ・ローダを実行する請求項7に記載の装置。
  9. iso_init命令を実行すると、さらにプロセッサが、 分離域をプラットフォーム用に初期化し、
    プロセッサ・ナブのロケーションを得る請求項8に記載の装置。
  10. プロセッサにプロセッサ・ナブ・ローダを実行させるiso_init命令によって、プロセッサが、
    プロセッサ・ナブを分離域中にコピーし、
    プロセッサ・ナブ・ローダ中に含まれる公開キーを使ってプロセッサ・ナブの署名を検証し、
    署名が検証された場合はプロセッサ・ナブを実行する請求項9に記載の装置。
  11. iso_close命令を実行すると、プロセッサが、
    対応する論理プロセッサが最後に引き下るものである場合はプロセッサ中の分離設定をリセットし、
    プロセッサが最後に引き下るものである場合はMCHおよびICH中の分離設定をリセットする請求項7に記載の装置。
  12. iso_enter命令を実行すると、プロセッサが、
    フレーム・レジスタ・セットの内容を、出口フレーム・レジスタ中の出口アドレスが指す出口フレームに記憶し、
    入口フレーム・レジスタ中の入口アドレスが指す入口フレームをフレーム・レジスタ・セット中にロードする請求項7に記載の装置。
  13. iso_exit命令を実行すると、プロセッサが、
    出口フレーム・レジスタ中の出口アドレスが指す出口フレームを、フレーム・レジスタ・セット中にロードする請求項7に記載の装置。
  14. iso_config_read命令を実行すると、プロセッサが、
    パラメータ記憶域に対応する構成記憶域の内容を返す請求項7に記載の装置。
  15. iso_config_write命令を実行すると、プロセッサが、
    パラメータ記憶域に対応する構成記憶域の内容を書き込む請求項7に記載の装置。
  16. プラットフォームで動作し、ノーマル実行モードおよび分離実行モードの1つに構成されるプロセッサ中の実行ユニットによって、分離命令を実行すること、および
    プロセッサが分離実行モードに構成されている場合に、少なくとも1つのパラメータを格納するパラメータ記憶域によって、分離命令の実行をサポートすることを含む方法。
  17. 分離命令を実行することが、分離初期化(iso_init)命令、分離クローズ(iso_close)命令、分離入口(iso_enter)命令、分離出口(iso_exit)命令、分離構成読込み(iso_config_read)命令、および分離構成書込み(iso_config_write)命令の1つを実行することを含む請求項16に記載の方法。
  18. 少なくとも1つのパラメータが、分離特徴ワード、実行モード・ワード、論理プロセッサ値、マスク値およびベース値を含む分離設定、フレーム、出口物理アドレス、入口物理アドレス、プロセッサ・ナブ・ローダの物理アドレスの1つである請求項17に記載の方法。
  19. パラメータ記憶域が内部記憶域か外部記憶域の1つである請求項18に記載の方法。
  20. 内部記憶域が、分離特徴ワードを記憶する特徴レジスタ、実行モード・ワードを記憶する制御レジスタ、論理プロセッサ値を記憶する論理プロセッサ・レジスタ、マスク値を記憶するマスク・レジスタ、ベース値を記憶するベース・レジスタ、フレームを記憶するフレーム・レジスタ・セット、出口アドレスを記憶する出口フレーム・レジスタ、入口アドレスを記憶する入口フレーム・レジスタ、プロセッサ・ナブ・ローダ・アドレスを記憶するローダ・レジスタを含む請求項19に記載の方法。
  21. 外部記憶域が、メモリ・コントローラ・ハブ(MCH)中のMCH記憶域、および入出力コントローラ・ハブ(ICH)中のICH記憶域を含む請求項20に記載の方法。
  22. 実行モード・ワードが、プロセッサを分離実行モードに構成する請求項21に記載の方法。
  23. iso_init命令を実行することが、
    分離域がまだ作成されていない場合は、ベース値およびマスク値によって定義される分離域をメモリ中に作成すること、
    MCH記憶域に分離域の範囲を設定すること、
    ローダ・レジスタ中のプロセッサ・ナブ・ローダ・アドレスを使って、プロセッサ・ナブ・ローダを分離域中にコピーすること、および
    プロセッサ・ナブ・ローダを実行することを含む請求項22に記載の方法。
  24. iso_init命令を実行することが、
    分離域をプラットフォーム用に初期化すること、および
    プロセッサ・ナブのロケーションを得ることをさらに含む請求項23に記載の方法。
  25. プロセッサ・ナブ・ローダを実行することが、
    プロセッサ・ナブを分離域中にコピーすること、
    プロセッサ・ナブ・ローダ中に含まれる公開キーを使って、プロセッサ・ナブの署名を検証すること、および
    署名が検証された場合はプロセッサ・ナブを実行することを含む請求項24に記載の方法。
  26. iso_close命令を実行することが、
    対応する論理プロセッサが最後に引き下るものである場合はプロセッサ中の分離設定をリセットすること、および
    プロセッサが最後に引き下るものである場合はMCHおよびICH中の分離設定をリセットすることを含む請求項22に記載の方法。
  27. iso_enter命令を実行することが、
    フレーム・レジスタ・セットの内容を、出口フレーム・レジスタ中の出口アドレスが指す出口フレームに記憶すること、および
    入口フレーム・レジスタ中の入口アドレスが指す入口フレームを、フレーム・レジスタ・セット中にロードすることを含む請求項22に記載の方法。
  28. iso_exit命令を実行することが、
    出口フレーム・レジスタ中の出口アドレスが指す出口フレームをフレーム・レジスタ・セット中にロードすることを含む請求項22に記載の方法。
  29. iso_config_read命令を実行することが、 パラメータ記憶域に対応する構成記憶域の内容を返すことを含む請求項22に記載の方法。
  30. iso_config_write命令を実行することが、
    パラメータ記憶域に対応する構成記憶域の内容を書き込むことを含む請求項22記載の方法。
  31. チップセットと、
    分離メモリ域を有する、チップセットに結合されたメモリと、
    チップセットおよびメモリに結合され、プラットフォームで動作し、分離命令実行回路を有し、ノーマル実行モードおよび分離実行モードの1つに構成されるプロセッサを含むシステムであって、分離命令実行回路が、
    分離命令を実行する実行ユニットと、
    プロセッサが分離実行モードに構成されている場合に分離命令の実行をサポートするための少なくとも1つのパラメータを格納するパラメータ記憶域とを含むプロセッサとを含むシステム。
  32. 分離命令が、分離初期化(iso_init)命令、分離クローズ(iso_close)命令、分離入口(iso_enter)命令、分離出口(iso_exit)命令、分離構成読込み(iso_config_read)命令、および分離構成書込み(iso_config_write)命令の1つである請求項31に記載のシステム。
  33. 少なくとも1つのパラメータが、分離特徴ワード、実行モード・ワード、論理プロセッサ値、マスク値およびベース値を含む分離設定、フレーム、出口物理アドレス、入口物理アドレス、プロセッサ・ナブ・ローダの物理アドレスの1つである請求項32に記載のシステム。
  34. パラメータ記憶域が内部記憶域か外部記憶域の1つである請求項33に記載のシステム。
  35. 内部記憶域が、分離特徴ワードを記憶する特徴レジスタ、実行モード・ワードを記憶する制御レジスタ、論理プロセッサ値を記憶する論理プロセッサ・レジスタ、マスク値を記憶するマスク・レジスタ、ベース値を記憶するベース・レジスタ、フレームを記憶するフレーム・レジスタ・セット、出口アドレスを記憶する出口フレーム・レジスタ、入口アドレスを記憶する入口フレーム・レジスタ、プロセッサ・ナブ・ローダ・アドレスを記憶するローダ・レジスタを含む請求項34に記載のシステム。
  36. 外部記憶域が、メモリ・コントローラ・ハブ(MCH)中のMCH記憶域、および入出力コントローラ・ハブ(ICH)中のICH記憶域を含む請求項35に記載のシステム。
  37. 実行モード・ワードが、プロセッサを分離実行モードに構成する請求項36に記載のシステム。
  38. iso_init命令を実行すると、プロセッサが、
    分離域がまだ作成されていない場合は、ベース値およびマスク値によって定義される分離域をメモリ中に作成し、
    MCH記憶域に分離域の範囲を設定し、
    ローダ・レジスタ中のプロセッサ・ナブ・ローダ・アドレスを使って分離域中にプロセッサ・ナブ・ローダをコピーし、
    プロセッサ・ナブ・ローダを実行する請求項37に記載のシステム。
  39. iso_init命令を実行すると、さらにプロセッサが、
    分離域をプラットフォーム用に初期化し、
    プロセッサ・ナブのロケーションを得る請求項38に記載のシステム。
  40. プロセッサにプロセッサ・ナブ・ローダを実行させるiso_init命令によって、プロセッサが、
    プロセッサ・ナブを分離域中にコピーし、
    プロセッサ・ナブ・ローダ中に含まれる公開キーを使ってプロセッサ・ナブの署名を検証し、
    署名が検証された場合はプロセッサ・ナブを実行する請求項39に記載のシステム。
  41. iso_close命令を実行すると、プロセッサが、
    対応する論理プロセッサが最後に引き下るものである場合はプロセッサ中の分離設定をリセットし、
    プロセッサが最後に引き下るものである場合はMCHおよびICH中の分離設定をリセットする請求項37に記載のシステム。
  42. iso_enter命令を実行すると、プロセッサが、
    フレーム・レジスタ・セットの内容を、出口フレーム・レジスタ中の出口アドレスが指す出口フレームに記憶し、
    入口フレーム・レジスタ中の入口アドレスが指す入口フレームをフレーム・レジスタ・セット中にロードする請求項37に記載のシステム。
  43. iso_exit命令を実行すると、プロセッサが、
    出口フレーム・レジスタ中の出口アドレスが指す出口フレームを、フレーム・レジスタ・セット中にロードする請求項37に記載のシステム。
  44. iso_config_read命令を実行すると、プロセッサが、
    パラメータ記憶域に対応する構成記憶域の内容を返す請求項37に記載のシステム。
  45. iso_config_write命令を実行すると、プロセッサが、
    パラメータ記憶域に対応する構成記憶域の内容を書き込む請求項37に記載のシステム。
  46. その中にコンピュータ・プログラム・コードが埋め込まれている機械可読媒体からなるコンピュータ・プログラム製品であって、
    プラットフォームで動作し、ノーマル実行モードおよび分離実行モードの1つに構成されるプロセッサ中の実行ユニットによって分離命令を実行するコンピュータ可読プログラム・コードと、
    プロセッサが分離実行モードに構成されている場合に、少なくとも1つのパラメータを格納するパラメータ記憶域によって分離命令の実行をサポートするコンピュータ可読プログラム・コードとを有するコンピュータ・プログラム製品。
  47. 分離命令を実行するコンピュータ可読プログラム・コードが、分離初期化(iso_init)命令、分離クローズ(iso_close)命令、分離入口(iso_enter)命令、分離出口(iso_exit)命令、分離構成読込み(iso_config_read)命令、および分離構成書込み(iso_config_write)命令の1つを実行するコンピュータ可読プログラム・コードを含む請求項46に記載のコンピュータ・プログラム製品。
  48. 少なくとも1つのパラメータが、分離特徴ワード、実行モード・ワード、論理プロセッサ値、マスク値およびベース値を含む分離設定、フレーム、出口物理アドレス、入口物理アドレス、プロセッサ・ナブ・ローダの物理アドレスの1つである請求項47に記載のコンピュータ・プログラム製品。
  49. パラメータ記憶域が、内部記憶域か外部記憶域の1つである請求項48に記載のコンピュータ・プログラム製品。
  50. 内部記憶域が、分離特徴ワードを記憶する特徴レジスタ、実行モード・ワードを記憶する制御レジスタ、論理プロセッサ値を記憶する論理プロセッサ・レジスタ、マスク値を記憶するマスク・レジスタ、ベース値を記憶するベース・レジスタ、フレームを記憶するフレーム・レジスタ・セット、出口アドレスを記憶する出口フレーム・レジスタ、入口アドレスを記憶する入口フレーム・レジスタ、プロセッサ・ナブ・ローダ・アドレスを記憶するローダ・レジスタを含む請求項49に記載のコンピュータ・プログラム製品。
  51. 外部記憶域が、メモリ・コントローラ・ハブ(MCH)中のMCH記憶域、および入出力コントローラ・ハブ(ICH)中のICH記憶域を含む請求項50に記載のコンピュータ・プログラム製品。
  52. 実行モード・ワードがプロセッサを分離実行モードに構成する請求項51に記載のコンピュータ・プログラム製品。
  53. iso_init命令を実行するコンピュータ可読プログラム・コードが、
    分離域がまだ作成されていない場合は、ベース値およびマスク値によって定義される分離域をメモリ中に作成するコンピュータ可読プログラム・コードと、
    MCH記憶域に分離域の範囲を設定するコンピュータ可読プログラム・コードと、
    ローダ・レジスタ中のプロセッサ・ナブ・ローダ・アドレスを使って、プロセッサ・ナブ・ローダを分離域中にコピーするコンピュータ可読プログラム・コードと、
    プロセッサ・ナブ・ローダを実行するコンピュータ可読プログラム・コードとを含む請求項52に記載のコンピュータ・プログラム製品。
  54. iso_init命令を実行するコンピュータ可読プログラム・コードが、
    分離域をプラットフォーム用に初期化するコンピュータ可読プログラム・コードと、
    プロセッサ・ナブのロケーションを得るコンピュータ可読プログラム・コードとをさらに含む請求項53に記載のコンピュータ・プログラム製品。
  55. プロセッサ・ナブ・ローダを実行するコンピュータ可読プログラム・コードが、
    プロセッサ・ナブを分離域中にコピーするコンピュータ可読プログラム・コードと、
    プロセッサ・ナブ・ローダ中に含まれる公開キーを使ってプロセッサ・ナブの署名を検証するコンピュータ可読プログラム・コードと、
    署名が検証された場合はプロセッサ・ナブを実行するコンピュータ可読プログラム・コードとを含む請求項54に記載のコンピュータ・プログラム製品。
  56. iso_close命令を実行するコンピュータ可読プログラム・コードが、
    対応する論理プロセッサが最後に引き下るものである場合はプロセッサ中の分離設定をリセットするコンピュータ可読プログラム・コードと、
    プロセッサが最後に引き下るものである場合はMCHおよびICH中の分離設定をリセットするコンピュータ可読プログラム・コードとを含む請求項52に記載のコンピュータ・プログラム製品。
  57. iso_enter命令を実行するコンピュータ可読プログラム・コードが、
    フレーム・レジスタ・セットの内容を出口フレーム・レジスタ中の出口アドレスが指す出口フレームに記憶するコンピュータ可読プログラム・コードと、
    入口フレーム・レジスタ中の入口アドレスが指す入口フレームを、フレーム・レジスタ・セット中にロードするコンピュータ可読プログラム・コードとを含む請求項52に記載のコンピュータ・プログラム製品。
  58. iso_exit命令を実行するコンピュータ可読プログラム・コードが、
    出口フレーム・レジスタ中の出口アドレスが指す出口フレームを、フレーム・レジスタ・セット中にロードするコンピュータ可読プログラム・コードを含む請求項52に記載のコンピュータ・プログラム製品。
  59. iso_config_read命令を実行するコンピュータ可読プログラム・コードが、
    パラメータ記憶域に対応する構成記憶域の内容を返すコンピュータ可読プログラム・コードを含む請求項52に記載のコンピュータ・プログラム製品。
  60. iso_config_write命令を実行するコンピュータ可読プログラム・コードが、
    パラメータ記憶域に対応する構成記憶域の内容を書き込むコンピュータ可読プログラム・コードを含む請求項52に記載のコンピュータ・プログラム製品。
JP2001573180A 2000-03-31 2001-03-23 分離実行のための分離命令 Expired - Lifetime JP4719398B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/541,477 2000-03-31
US09/541,477 US6507904B1 (en) 2000-03-31 2000-03-31 Executing isolated mode instructions in a secure system running in privilege rings
PCT/US2001/009371 WO2001075565A2 (en) 2000-03-31 2001-03-23 Isolated instructions for isolated execution

Publications (3)

Publication Number Publication Date
JP2004500666A true JP2004500666A (ja) 2004-01-08
JP2004500666A5 JP2004500666A5 (ja) 2007-08-09
JP4719398B2 JP4719398B2 (ja) 2011-07-06

Family

ID=24159746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001573180A Expired - Lifetime JP4719398B2 (ja) 2000-03-31 2001-03-23 分離実行のための分離命令

Country Status (9)

Country Link
US (1) US6507904B1 (ja)
JP (1) JP4719398B2 (ja)
CN (1) CN1308783C (ja)
AU (1) AU2001249395A1 (ja)
DE (1) DE10196005B4 (ja)
GB (1) GB2377795B (ja)
HK (1) HK1050254B (ja)
TW (1) TW583584B (ja)
WO (1) WO2001075565A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008010598A1 (fr) 2006-07-18 2008-01-24 Nec Corporation Dispositif de traitement de communication d'informations, terminal de communication d'informations, système de communication d'informations, procédé de commutation de fonction, et programme de commmutation de fonction
JP2011243216A (ja) * 2002-03-29 2011-12-01 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
JP2012089147A (ja) * 2006-05-26 2012-05-10 Intel Corp ポイントツーポイント相互接続システム上のセキュアな環境初期化命令の実行
US8365021B2 (en) 2005-06-17 2013-01-29 Nec Corporation Information processing device comprising a plurality of domains having a plurality of processors, recovery device, program and recovery method
US8640194B2 (en) 2004-08-25 2014-01-28 Nec Corporation Information communication device and program execution environment control method
JP2014505926A (ja) * 2010-12-22 2014-03-06 インテル・コーポレーション 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うシステム、装置、および方法

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790844B1 (fr) * 1999-03-09 2001-05-25 Gemplus Card Int Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones 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
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US7013484B1 (en) * 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7089418B1 (en) * 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
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
US7194634B2 (en) * 2000-03-31 2007-03-20 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
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7013481B1 (en) * 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
CN1252597C (zh) * 2000-07-18 2006-04-19 英特尔公司 在一个独立执行环境中控制对多个独立存储器的访问
US7793111B1 (en) * 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7958376B2 (en) * 2000-11-02 2011-06-07 Ati Technologies Ulc Write once system and method for facilitating digital encrypted transmissions
US7178035B1 (en) * 2000-11-02 2007-02-13 Ati International, Srl Write once system and method for facilitating digital encrypted transmissions
US7779117B2 (en) 2002-05-31 2010-08-17 Aol Inc. Monitoring digital images
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
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
US7620955B1 (en) 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
US6873988B2 (en) * 2001-07-06 2005-03-29 Check Point Software Technologies, Inc. System and methods providing anti-virus cooperative enforcement
US7024555B2 (en) * 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
WO2003046715A1 (fr) * 2001-11-29 2003-06-05 Fujitsu Limited Dispositif central de traitement et programme de fonctionnement
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
DE60311441T2 (de) * 2002-04-18 2007-11-08 Advanced Micro Devices Inc., Sunnyvale Initialisierung eines rechnersystems mit einem für einen sicheren ausführungsmodus geeigneten prozessor
AU2003231070A1 (en) * 2002-04-18 2003-11-03 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US7603551B2 (en) * 2003-04-18 2009-10-13 Advanced Micro Devices, Inc. Initialization of a computer system including a secure execution mode-capable processor
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
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
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
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
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7334123B2 (en) * 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
WO2005003969A1 (en) * 2003-06-27 2005-01-13 Sun Microsystems, Inc. Hybrid system implementing distinct and co-existing application execution environments and methods for implementing the same
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US8122215B1 (en) 2003-09-15 2012-02-21 The Directv Group, Inc. Method and apparatus for verifying memory contents
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
US7681046B1 (en) 2003-09-26 2010-03-16 Andrew Morgan System with secure cryptographic capabilities using a hardware specific digital secret
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
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
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
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
US7694151B1 (en) 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
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
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
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
EP1628235A1 (en) * 2004-07-01 2006-02-22 Texas Instruments Incorporated Method and system of ensuring integrity of a secure mode entry sequence
US7484247B2 (en) * 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
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
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
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
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
US20060294596A1 (en) * 2005-06-27 2006-12-28 Priya Govindarajan Methods, systems, and apparatus to detect unauthorized resource accesses
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US9573067B2 (en) * 2005-10-14 2017-02-21 Microsoft Technology Licensing, Llc Mass storage in gaming handhelds
US7496727B1 (en) 2005-12-06 2009-02-24 Transmeta Corporation Secure memory access system and method
US8959339B2 (en) * 2005-12-23 2015-02-17 Texas Instruments Incorporated Method and system for preventing unauthorized processor mode switches
JP4575350B2 (ja) * 2006-02-14 2010-11-04 レノボ・シンガポール・プライベート・リミテッド コンピューター・システム内で悪意あるソフトウェアの実行を防止するための方法
US8041958B2 (en) 2006-02-14 2011-10-18 Lenovo (Singapore) Pte. Ltd. Method for preventing malicious software from execution within a computer system
US8694797B2 (en) 2006-02-14 2014-04-08 Lenovo (Sinapore) Pte Ltd Method for preventing malicious software from execution within a computer system
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
KR20100084605A (ko) * 2007-05-31 2010-07-27 더 유니버시티 오브 레딩 프로세서
US9092212B2 (en) 2007-05-31 2015-07-28 James Arthur Dean Wallace Anderson Processors
US8739156B2 (en) * 2007-07-24 2014-05-27 Red Hat Israel, Ltd. Method for securing the execution of virtual machines
US8424082B2 (en) 2008-05-08 2013-04-16 Google Inc. Safely executing an untrusted native code module on a computing device
US8675000B2 (en) * 2008-11-07 2014-03-18 Google, Inc. Command buffers for web-based graphics rendering
US8294723B2 (en) 2008-11-07 2012-10-23 Google Inc. Hardware-accelerated graphics for web applications using native code modules
US8797337B1 (en) 2009-07-02 2014-08-05 Google Inc. Graphics scenegraph rendering for web applications using native code modules
US10242182B2 (en) 2009-10-23 2019-03-26 Secure Vector, Llc Computer security system and method
US9454652B2 (en) 2009-10-23 2016-09-27 Secure Vector, Llc Computer security system and method
US8429429B1 (en) * 2009-10-23 2013-04-23 Secure Vector, Inc. Computer security system and method
US8775802B1 (en) 2009-10-23 2014-07-08 Secure Vector Computer security system and method
US8327441B2 (en) * 2011-02-17 2012-12-04 Taasera, Inc. System and method for application attestation
US8990948B2 (en) 2012-05-01 2015-03-24 Taasera, Inc. Systems and methods for orchestrating runtime operational integrity
US9027102B2 (en) 2012-05-11 2015-05-05 Sprint Communications Company L.P. Web server bypass of backend process on near field communications and secure element chips
US9282898B2 (en) 2012-06-25 2016-03-15 Sprint Communications Company L.P. End-to-end trusted communications infrastructure
US8649770B1 (en) 2012-07-02 2014-02-11 Sprint Communications Company, L.P. Extended trusted security zone radio modem
US8667607B2 (en) 2012-07-24 2014-03-04 Sprint Communications Company L.P. Trusted security zone access to peripheral devices
US9183412B2 (en) 2012-08-10 2015-11-10 Sprint Communications Company L.P. Systems and methods for provisioning and using multiple trusted security zones on an electronic device
US9015068B1 (en) 2012-08-25 2015-04-21 Sprint Communications Company L.P. Framework for real-time brokering of digital content delivery
US9215180B1 (en) 2012-08-25 2015-12-15 Sprint Communications Company L.P. File retrieval in real-time brokering of digital content
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
CN103793647B (zh) * 2012-10-29 2016-09-28 腾讯科技(深圳)有限公司 病毒文件处理系统及方法
US9578664B1 (en) 2013-02-07 2017-02-21 Sprint Communications Company L.P. Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system
US9161227B1 (en) 2013-02-07 2015-10-13 Sprint Communications Company L.P. Trusted signaling in long term evolution (LTE) 4G wireless communication
US9613208B1 (en) 2013-03-13 2017-04-04 Sprint Communications Company L.P. Trusted security zone enhanced with trusted hardware drivers
US9374363B1 (en) 2013-03-15 2016-06-21 Sprint Communications Company L.P. Restricting access of a portable communication device to confidential data or applications via a remote network based on event triggers generated by the portable communication device
US9191388B1 (en) 2013-03-15 2015-11-17 Sprint Communications Company L.P. Trusted security zone communication addressing on an electronic device
US9454723B1 (en) 2013-04-04 2016-09-27 Sprint Communications Company L.P. Radio frequency identity (RFID) chip electrically and communicatively coupled to motherboard of mobile communication device
US9171243B1 (en) 2013-04-04 2015-10-27 Sprint Communications Company L.P. System for managing a digest of biographical information stored in a radio frequency identity chip coupled to a mobile communication device
US9324016B1 (en) 2013-04-04 2016-04-26 Sprint Communications Company L.P. Digest of biographical information for an electronic device with static and dynamic portions
US9838869B1 (en) 2013-04-10 2017-12-05 Sprint Communications Company L.P. Delivering digital content to a mobile device via a digital rights clearing house
US9443088B1 (en) 2013-04-15 2016-09-13 Sprint Communications Company L.P. Protection for multimedia files pre-downloaded to a mobile device
US9560519B1 (en) 2013-06-06 2017-01-31 Sprint Communications Company L.P. Mobile communication device profound identity brokering framework
US9183606B1 (en) 2013-07-10 2015-11-10 Sprint Communications Company L.P. Trusted processing location within a graphics processing unit
US9208339B1 (en) 2013-08-12 2015-12-08 Sprint Communications Company L.P. Verifying Applications in Virtual Environments Using a Trusted Security Zone
US9185626B1 (en) 2013-10-29 2015-11-10 Sprint Communications Company L.P. Secure peer-to-peer call forking facilitated by trusted 3rd party voice server provisioning
US9191522B1 (en) 2013-11-08 2015-11-17 Sprint Communications Company L.P. Billing varied service based on tier
US9226145B1 (en) 2014-03-28 2015-12-29 Sprint Communications Company L.P. Verification of mobile device integrity during activation
US9230085B1 (en) * 2014-07-29 2016-01-05 Sprint Communications Company L.P. Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services
US9779232B1 (en) 2015-01-14 2017-10-03 Sprint Communications Company L.P. Trusted code generation and verification to prevent fraud from maleficent external devices that capture data
US9838868B1 (en) 2015-01-26 2017-12-05 Sprint Communications Company L.P. Mated universal serial bus (USB) wireless dongles configured with destination addresses
US9405515B1 (en) * 2015-02-04 2016-08-02 Rockwell Collins, Inc. Computing systems utilizing controlled dynamic libraries and isolated execution spaces
US9473945B1 (en) 2015-04-07 2016-10-18 Sprint Communications Company L.P. Infrastructure for secure short message transmission
US9578054B1 (en) * 2015-08-31 2017-02-21 Newman H-R Computer Design, LLC Hacking-resistant computer design
US9819679B1 (en) 2015-09-14 2017-11-14 Sprint Communications Company L.P. Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers
US10282719B1 (en) 2015-11-12 2019-05-07 Sprint Communications Company L.P. Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit
US9817992B1 (en) 2015-11-20 2017-11-14 Sprint Communications Company Lp. System and method for secure USIM wireless network access
WO2017120812A1 (en) * 2016-01-14 2017-07-20 Intel Corporation Secure communication channel for system management mode
CN108090347B (zh) * 2016-11-23 2022-01-14 阿里巴巴集团控股有限公司 一种数据处理方法和系统
US10499249B1 (en) 2017-07-11 2019-12-03 Sprint Communications Company L.P. Data link layer trust signaling in communication network
US10395722B2 (en) * 2017-09-29 2019-08-27 Intel Corporation Reading from a mode register having different read and write timing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320796A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
WO1998034365A1 (en) * 1997-02-05 1998-08-06 At & T Corp. System and method for providing software property assurance to a host
JPH10283182A (ja) * 1997-04-03 1998-10-23 Kofu Nippon Denki Kk パイプライン型情報処理装置
EP0930567A2 (en) * 1997-12-22 1999-07-21 Texas Instruments Inc. Method and apparatus for extending security model to native code

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4366537A (en) 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4521852A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
US5022077A (en) 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5075842A (en) 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5255379A (en) * 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5978481A (en) 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
US6058478A (en) 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US5717903A (en) * 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6205550B1 (en) 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5937063A (en) 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
EP0970411B1 (en) 1997-03-27 2002-05-15 BRITISH TELECOMMUNICATIONS public limited company Copy protection of data
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6014745A (en) 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US6188995B1 (en) 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6339826B2 (en) 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
CA2368858A1 (en) 1999-04-12 2000-10-19 Digital Media On Demand, Inc. Secure electronic commerce system
US20010037450A1 (en) 2000-03-02 2001-11-01 Metlitski Evgueny A. System and method for process protection
CA2341931C (en) 2000-03-24 2006-05-30 Contentguard Holdings, Inc. System and method for protection of digital works

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320796A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
WO1998034365A1 (en) * 1997-02-05 1998-08-06 At & T Corp. System and method for providing software property assurance to a host
JPH10283182A (ja) * 1997-04-03 1998-10-23 Kofu Nippon Denki Kk パイプライン型情報処理装置
EP0930567A2 (en) * 1997-12-22 1999-07-21 Texas Instruments Inc. Method and apparatus for extending security model to native code

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042649B2 (en) 2002-03-29 2018-08-07 Intel Corporation System and method for execution of a secured environment initialization instruction
JP2011243216A (ja) * 2002-03-29 2011-12-01 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
JP2013235612A (ja) * 2002-03-29 2013-11-21 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
US10175994B2 (en) 2002-03-29 2019-01-08 Intel Corporation System and method for execution of a secured environment initialization instruction
US9990208B2 (en) 2002-03-29 2018-06-05 Intel Corporation System and method for execution of a secured environment initialization instruction
US10031759B2 (en) 2002-03-29 2018-07-24 Intel Corporation System and method for execution of a secured environment initialization instruction
US8640194B2 (en) 2004-08-25 2014-01-28 Nec Corporation Information communication device and program execution environment control method
US8365021B2 (en) 2005-06-17 2013-01-29 Nec Corporation Information processing device comprising a plurality of domains having a plurality of processors, recovery device, program and recovery method
JP2012089147A (ja) * 2006-05-26 2012-05-10 Intel Corp ポイントツーポイント相互接続システム上のセキュアな環境初期化命令の実行
US8973094B2 (en) 2006-05-26 2015-03-03 Intel Corporation Execution of a secured environment initialization instruction on a point-to-point interconnect system
WO2008010598A1 (fr) 2006-07-18 2008-01-24 Nec Corporation Dispositif de traitement de communication d'informations, terminal de communication d'informations, système de communication d'informations, procédé de commutation de fonction, et programme de commmutation de fonction
US8718629B2 (en) 2006-07-18 2014-05-06 Nec Corporation Information communication processing device, information communication terminal, information communication system, function switching method and function switching program
JP2014505926A (ja) * 2010-12-22 2014-03-06 インテル・コーポレーション 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うシステム、装置、および方法
KR101528130B1 (ko) * 2010-12-22 2015-06-12 인텔 코포레이션 권한 레벨에 관계없는 세그먼트 레지스터 판독 및 기입용 시스템, 장치, 및 방법

Also Published As

Publication number Publication date
AU2001249395A1 (en) 2001-10-15
JP4719398B2 (ja) 2011-07-06
GB0225052D0 (en) 2002-12-04
CN1423765A (zh) 2003-06-11
DE10196005T1 (de) 2003-03-13
WO2001075565A2 (en) 2001-10-11
CN1308783C (zh) 2007-04-04
HK1050254A1 (en) 2003-06-13
HK1050254B (zh) 2005-06-10
DE10196005B4 (de) 2011-01-05
TW583584B (en) 2004-04-11
US6507904B1 (en) 2003-01-14
GB2377795A (en) 2003-01-22
WO2001075565A3 (en) 2002-06-27
GB2377795B (en) 2004-12-01

Similar Documents

Publication Publication Date Title
JP4719398B2 (ja) 分離実行のための分離命令
US6633963B1 (en) Controlling access to multiple memory zones in an isolated execution environment
US6934817B2 (en) Controlling access to multiple memory zones in an isolated execution environment
US6678825B1 (en) Controlling access to multiple isolated memories in an isolated execution environment
JP4822646B2 (ja) 分離実行環境で使用するためのキー階層の生成
US6795905B1 (en) Controlling accesses to isolated memory using a memory controller for isolated execution
US6957332B1 (en) Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7013484B1 (en) Managing a secure environment using a chipset in isolated execution mode
JP3982687B2 (ja) 分離実行環境での複数の分離メモリへのアクセスの制御
KR100668000B1 (ko) 인증된 코드 방법 및 장치
US7082615B1 (en) Protecting software environment in isolated execution
US7149854B2 (en) External locking mechanism for personal computer memory locations
US7194634B2 (en) Attestation key memory device and bus
US7308576B2 (en) Authenticated code module
US7788433B2 (en) Microprocessor apparatus providing for secure interrupts and exceptions
US7401230B2 (en) Secure virtual machine monitor to tear down a secure execution environment
Suh et al. CSAIL
US20030126453A1 (en) Processor supporting execution of an authenticated code instruction
US7013481B1 (en) Attestation key memory device and bus
US6754815B1 (en) 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
US20020144121A1 (en) Checking file integrity using signature generated in isolated execution
US7089418B1 (en) Managing accesses in a processor for isolated execution
US7111176B1 (en) Generating isolated bus cycles for isolated execution
US6769058B1 (en) Resetting a processor in an isolated execution environment
Martinez Santos et al. PIFT: Efficient dynamic information flow tracking using secure page allocation

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070622

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100720

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100727

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100820

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110404

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

Year of fee payment: 3

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