JP4719398B2 - 分離実行のための分離命令 - Google Patents
分離実行のための分離命令 Download PDFInfo
- Publication number
- JP4719398B2 JP4719398B2 JP2001573180A JP2001573180A JP4719398B2 JP 4719398 B2 JP4719398 B2 JP 4719398B2 JP 2001573180 A JP2001573180 A JP 2001573180A JP 2001573180 A JP2001573180 A JP 2001573180A JP 4719398 B2 JP4719398 B2 JP 4719398B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- instruction
- iso
- register
- separation
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Description
(背景)
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個のアプリケーション421〜42Nを含み、分離実行リング3は、K個のアプレット461〜46Kを含む。
【0017】
分離実行アーキテクチャの1つの概念は、システム・メモリ中に、分離域と呼ばれる分離された領域を作成することであり、この分離域は、コンピュータ・システム中のプロセッサおよびチップセットの両方によって保護される。この分離領域は、トランスレーション・ルックアサイド(TLB)アクセス・チェックによって保護されるキャッシュ・メモリ中にあってもよい。この分離領域へのアクセスは、分離読込みおよび書込みサイクルと呼ばれる、専用バス(例えば、メモリ読込みおよび書込み)サイクルを使って、プロセッサのフロント・サイド・バス(FSB)からのみ可能である。この専用バス・サイクルは、スヌーピングにも使用される。この分離読込み/書込みサイクルは、プロセッサが分離実行モードで実行することにより発行される。分離実行モードの初期化は、プロセッサ中の特権命令をプロセッサ・ナブ・ローダ52と組み合わせて使用して行う。プロセッサ・ナブ・ローダ52は、リング0のナブ・ソフトウェア・モジュール(例えば、プロセッサ・ナブ18)を検証し、分離域中にロードする。プロセッサ・ナブ18は、分離実行のためのハードウェア関連のサービスを提供する。
【0018】
プロセッサ・ナブ18の1つのタスクは、リング0のOSナブ16を検証して分離域中にロードし、プラットフォーム、プロセッサ・ナブ18、およびオペレーティング・システム・ナブ16の組み合わせに一意のキー階層のルートを生成することである。オペレーティング・システム・ナブ16は、プライマリOS12中のサービス(例えば、オペレーティング・システム中の非保護セグメント)へのリンクを提供し、分離域内のページ管理を提供し、また、アプレット461〜46Kを含めて、リング3のアプリケーション・モジュール45を分離域中の割り振られた保護ページ中にロードする責任を有する。オペレーティング・システム・ナブ16はまたリング0サポート・モジュールをロードすることができる。
【0019】
オペレーティング・システム・ナブ16は、分離域と通常の(例えば非分離)メモリの間のデータのページングをサポートすることを選択することができる。その場合、オペレーティング・システム・ナブ16は、ページを通常のメモリに追い出す前に、分離域のページを暗号化しハッシングする責任と、ページを復元したときにそのページの内容をチェックする責任も有する。分離モード・アプレット461〜46K、およびそれらのデータは、他のアプレットから、また、非分離スペースのアプリケーション(例えば411〜42N)、ダイナミック・リンク・ライブラリ(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の両方にアクセスすることができる。アプリケーション421〜42Nを含むノーマル実行リング3は、アプリケーション・ページ82のみにアクセスすることができる。しかし、ノーマル実行リング0 11およびリング3 41は、分離域70にアクセスすることはできない。
【0023】
OSナブ16およびプロセッサ・ナブ18を含む分離実行リング0 15は、アプレット・ページ72およびナブ・ページ74を含む分離域70と、アプリケーション・ページ82およびOSページ84を含む非分離域80の両方にアクセスすることができる。アプレット461〜46Kを含む分離実行リング3 45は、アプリケーション・ページ82およびアプレット・ページ72のみにアクセスすることができる。アプレット461〜46Kは、分離域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)、プログラム、ファイル、データ、アプリケーション(例えば、アプリケーション421〜42N)、アプレット(例えば、アプレット461〜46K)、オペレーティング・システムなどのアーカイブ情報を記憶する。大容量記憶装置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 (8)
- プラットフォームで動作し、ノーマル実行モードおよび分離実行モードの1つに設定されるプロセッサ内で分離命令を実行する実行ユニットと、
前記プロセッサが分離実行モードに構成されている場合に分離命令の実行をサポートするための少なくとも1つのパラメータを格納するパラメータ記憶域と
を具備し、
前記分離命令は、分離初期化(iso_init)命令、分離クローズ(iso_close)命令、分離入口(iso_enter)命令、分離出口(iso_exit)命令、分離構成読込み(iso_config_read)命令、および分離構成書込み(iso_config_write)命令のうち、いづれか1つの命令であり、
前記少なくとも1つのパラメータは、分離特徴ワード、実行モード・ワード、論理プロセッサ値、マスク値およびベース値を含む分離設定、フレーム、出口物理アドレス、入口物理アドレス、プロセッサ・ナブ・ローダの物理アドレスの1つであり、
前記パラメータ記憶域は、内部記憶域か外部記憶域の1つであり、
前記内部記憶域は、分離特徴ワードを記憶する特徴レジスタ、実行モード・ワードを記憶する制御レジスタ、論理プロセッサ値を記憶する論理プロセッサ・レジスタ、マスク値を記憶するマスク・レジスタ、ベース値を記憶するベース・レジスタ、フレームを記憶するフレーム・レジスタ・セット、出口アドレスを記憶する出口フレーム・レジスタ、入口アドレスを記憶する入口フレーム・レジスタ、プロセッサ・ナブ・ローダ・アドレスを記憶するローダ・レジスタを含み、
前記外部記憶域は、メモリ・コントローラ・ハブ(MCH)中のMCH記憶域、および入出力コントローラ・ハブ(ICH)中のICH記憶域を含み、
前記実行モード・ワードは、前記プロセッサを分離実行モードに構成し、
前記iso_init命令が実行されると、前記プロセッサは、
分離域がまだ作成されていない場合は前記ベース値および前記マスク値によって定義される分離域をメモリ中に作成し、
前記MCH記憶域に分離域の範囲を設定し、
ローダ・レジスタ中のプロセッサ・ナブ・ローダ・アドレスを使って分離域中にプロセッサ・ナブ・ローダをコピーし、
プロセッサ・ナブ・ローダを実行する
ことを特徴とする装置。 - 前記iso_init命令が実行されると、前記プロセッサは、さらに、
前記分離域をプラットフォーム用に初期化し、
プロセッサ・ナブのロケーションを得る請求項1に記載の装置。 - 前記プロセッサにプロセッサ・ナブ・ローダを実行させるiso_init命令によって、前記プロセッサは、
前記プロセッサ・ナブを前記分離域中にコピーし、
前記プロセッサ・ナブ・ローダ中に含まれる公開キーを使って前記プロセッサ・ナブの署名を検証し、
署名が検証された場合は前記プロセッサ・ナブを実行する請求項2に記載の装置。 - 前記iso_close命令が実行されると、前記プロセッサは、
対応する論理プロセッサが最後に引き下るものである場合は、前記プロセッサ中の分離設定をリセットし、
前記プロセッサが最後に引き下るものである場合は、前記MCHおよび前記ICH中の分離設定をリセットする請求項1に記載の装置。 - 前記iso_enter命令が実行されると、前記プロセッサは、
前記フレーム・レジスタ・セットの内容を、出口フレーム・レジスタ中の出口アドレスが指す出口フレームに記憶し、
入口フレーム・レジスタ中の入口アドレスが指す入口フレームを、前記フレーム・レジスタ・セット中にロードする請求項1に記載の装置。 - 前記iso_exit命令が実行されると、前記プロセッサは、
出口フレーム・レジスタ中の出口アドレスが指す出口フレームを、前記フレーム・レジスタ・セット中にロードする請求項1に記載の装置。 - 前記iso_config_read命令が実行されると、前記プロセッサは、
前記パラメータ記憶域に対応する構成記憶域の内容を返す請求項1に記載の装置。 - 前記iso_config_write命令が実行されると、前記プロセッサは、
前記パラメータ記憶域に対応する構成記憶域の内容を書き込む請求項1に記載の装置。
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 JP2004500666A (ja) | 2004-01-08 |
JP2004500666A5 JP2004500666A5 (ja) | 2007-08-09 |
JP4719398B2 true 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) |
Families Citing this family (140)
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 |
US7194634B2 (en) * | 2000-03-31 | 2007-03-20 | Intel Corporation | Attestation key memory device and bus |
US7013481B1 (en) * | 2000-03-31 | 2006-03-14 | Intel Corporation | Attestation key memory device and bus |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor 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 |
US6678825B1 (en) | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US7013484B1 (en) * | 2000-03-31 | 2006-03-14 | Intel Corporation | Managing a secure environment using a chipset in isolated execution mode |
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 |
US7089418B1 (en) * | 2000-03-31 | 2006-08-08 | Intel Corporation | Managing accesses in a processor for isolated execution |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use 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 |
US6957332B1 (en) * | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
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 |
WO2002006929A2 (en) * | 2000-07-18 | 2002-01-24 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US7793111B1 (en) * | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7178035B1 (en) * | 2000-11-02 | 2007-02-13 | Ati International, Srl | Write once system and method for facilitating digital encrypted transmissions |
US7958376B2 (en) * | 2000-11-02 | 2011-06-07 | Ati Technologies Ulc | Write once system and method for facilitating digital encrypted transmissions |
US7779117B2 (en) | 2002-05-31 | 2010-08-17 | Aol Inc. | Monitoring digital images |
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 |
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 |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
WO2003090074A2 (en) * | 2002-04-18 | 2003-10-30 | 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 |
US7496966B1 (en) * | 2002-04-18 | 2009-02-24 | Advanced Micro Devices, Inc. | Method and apparatus for controlling operation of a secure execution mode-capable processor in system management mode |
US7603551B2 (en) * | 2003-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Initialization of a computer system including 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 |
US20040128345A1 (en) * | 2002-12-27 | 2004-07-01 | Robinson Scott H. | Dynamic service registry |
US7900017B2 (en) | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
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 |
US8640194B2 (en) * | 2004-08-25 | 2014-01-28 | Nec Corporation | Information communication device and program execution environment control method |
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 |
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 |
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 |
US8694797B2 (en) | 2006-02-14 | 2014-04-08 | Lenovo (Sinapore) Pte Ltd | Method for preventing malicious software from execution within a computer system |
US8041958B2 (en) | 2006-02-14 | 2011-10-18 | Lenovo (Singapore) Pte. Ltd. | Method for preventing malicious software from execution within a computer system |
JP4575350B2 (ja) * | 2006-02-14 | 2010-11-04 | レノボ・シンガポール・プライベート・リミテッド | コンピューター・システム内で悪意あるソフトウェアの実行を防止するための方法 |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
US8973094B2 (en) * | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
JP5621191B2 (ja) | 2006-07-18 | 2014-11-05 | 日本電気株式会社 | 情報通信処理装置、情報通信端末、情報通信システム、機能切替方法及び機能切替プログラム |
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 |
US8294723B2 (en) | 2008-11-07 | 2012-10-23 | Google Inc. | Hardware-accelerated graphics for web applications using native code modules |
US8675000B2 (en) * | 2008-11-07 | 2014-03-18 | Google, Inc. | Command buffers for web-based graphics rendering |
US8797337B1 (en) | 2009-07-02 | 2014-08-05 | Google Inc. | Graphics scenegraph rendering for web applications using native code modules |
US8775802B1 (en) | 2009-10-23 | 2014-07-08 | Secure Vector | Computer security system and method |
US9454652B2 (en) | 2009-10-23 | 2016-09-27 | Secure Vector, Llc | Computer security system and method |
US10242182B2 (en) | 2009-10-23 | 2019-03-26 | Secure Vector, Llc | Computer security system and method |
US8429429B1 (en) * | 2009-10-23 | 2013-04-23 | Secure Vector, Inc. | Computer security system and method |
US8938606B2 (en) * | 2010-12-22 | 2015-01-20 | Intel Corporation | System, apparatus, and method for segment register read and write regardless of privilege level |
WO2012112833A2 (en) * | 2011-02-17 | 2012-08-23 | Taasera, Inc. | System and method for application attestation |
US8850588B2 (en) | 2012-05-01 | 2014-09-30 | Taasera, Inc. | Systems and methods for providing mobile security based on dynamic attestation |
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 |
WO2014046974A2 (en) | 2012-09-20 | 2014-03-27 | Case Paul 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 |
US9191388B1 (en) | 2013-03-15 | 2015-11-17 | Sprint Communications Company L.P. | Trusted security zone communication addressing on an electronic device |
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 |
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 |
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 |
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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998034365A1 (en) * | 1997-02-05 | 1998-08-06 | At & T Corp. | System and method for providing software property assurance to a host |
Family Cites Families (42)
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 |
JP3672634B2 (ja) * | 1994-09-09 | 2005-07-20 | 株式会社ルネサステクノロジ | データ処理装置 |
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 |
US6205550B1 (en) | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
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 |
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 |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
EP0970411B1 (en) | 1997-03-27 | 2002-05-15 | BRITISH TELECOMMUNICATIONS public limited company | Copy protection of data |
JP2944563B2 (ja) * | 1997-04-03 | 1999-09-06 | 甲府日本電気株式会社 | パイプライン型情報処理装置 |
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 |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
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 |
AU4234800A (en) | 1999-04-12 | 2000-11-14 | Digital Media On Demand, Inc. (Dmod, 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 |
-
2000
- 2000-03-31 US US09/541,477 patent/US6507904B1/en not_active Expired - Lifetime
-
2001
- 2001-03-23 CN CNB018074006A patent/CN1308783C/zh not_active Expired - Lifetime
- 2001-03-23 WO PCT/US2001/009371 patent/WO2001075565A2/en active Application Filing
- 2001-03-23 DE DE10196005T patent/DE10196005B4/de not_active Expired - Lifetime
- 2001-03-23 JP JP2001573180A patent/JP4719398B2/ja not_active Expired - Lifetime
- 2001-03-23 AU AU2001249395A patent/AU2001249395A1/en not_active Abandoned
- 2001-03-23 GB GB0225052A patent/GB2377795B/en not_active Expired - Lifetime
- 2001-06-19 TW TW090107585A patent/TW583584B/zh not_active IP Right Cessation
-
2003
- 2003-03-26 HK HK03102199.2A patent/HK1050254B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998034365A1 (en) * | 1997-02-05 | 1998-08-06 | At & T Corp. | System and method for providing software property assurance to a host |
Also Published As
Publication number | Publication date |
---|---|
GB2377795A (en) | 2003-01-22 |
US6507904B1 (en) | 2003-01-14 |
AU2001249395A1 (en) | 2001-10-15 |
GB0225052D0 (en) | 2002-12-04 |
JP2004500666A (ja) | 2004-01-08 |
WO2001075565A2 (en) | 2001-10-11 |
CN1423765A (zh) | 2003-06-11 |
HK1050254B (zh) | 2005-06-10 |
WO2001075565A3 (en) | 2002-06-27 |
DE10196005B4 (de) | 2011-01-05 |
DE10196005T1 (de) | 2003-03-13 |
GB2377795B (en) | 2004-12-01 |
TW583584B (en) | 2004-04-11 |
CN1308783C (zh) | 2007-04-04 |
HK1050254A1 (en) | 2003-06-13 |
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 | |
US6957332B1 (en) | Managing a secure platform using a hierarchical executive architecture in isolated execution mode | |
US6678825B1 (en) | Controlling access to multiple isolated memories in an isolated execution environment | |
US6795905B1 (en) | Controlling accesses to isolated memory using a memory controller for isolated execution | |
JP4822646B2 (ja) | 分離実行環境で使用するためのキー階層の生成 | |
US7013484B1 (en) | Managing a secure environment using a chipset in isolated execution mode | |
JP3982687B2 (ja) | 分離実行環境での複数の分離メモリへのアクセスの制御 | |
US7082615B1 (en) | Protecting software environment in isolated execution | |
US7194634B2 (en) | Attestation key memory device and bus | |
US7308576B2 (en) | Authenticated code module | |
KR100668000B1 (ko) | 인증된 코드 방법 및 장치 | |
US7149854B2 (en) | External locking mechanism for personal computer memory locations | |
US7788433B2 (en) | Microprocessor apparatus providing for secure interrupts and exceptions | |
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 | |
Crandall et al. | A security assessment of the minos architecture |
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 |