JP2004523015A - 安全なメモリ区分を使用した安全な実行のための方法および装置 - Google Patents
安全なメモリ区分を使用した安全な実行のための方法および装置 Download PDFInfo
- Publication number
- JP2004523015A JP2004523015A JP2002508208A JP2002508208A JP2004523015A JP 2004523015 A JP2004523015 A JP 2004523015A JP 2002508208 A JP2002508208 A JP 2002508208A JP 2002508208 A JP2002508208 A JP 2002508208A JP 2004523015 A JP2004523015 A JP 2004523015A
- Authority
- JP
- Japan
- Prior art keywords
- secure
- instruction
- partition
- memory
- processor
- 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.)
- Pending
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- 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/60—Protecting data
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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/2107—File encryption
-
- 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/2125—Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
Description
(発明の分野)
本発明の実施態様は、プロセッサ内での安全な実行に関する。より詳細には、本発明は、安全なメモリ区分を使用した安全な実行のための方法および装置に関する。
【0002】
(背景)
コンピュータの接続性の著しい増大により、頑強なセキュリティ・インフラストラクチャの重要性が高まってきた。未許可アクセス(例えばインターネットからの)を防止するために、コンピュータ・システムのセキュリティ機能を使用することができる。インターネットに基づく商取引の利用を可能にするには、取引のプライバシーおよび保全性を維持する安全な実行環境が重要である。安全にされた実行環境はまた、ディジタル多用途ディスク(DVD)やコンパクト・ディスク−読取り専用メモリ(CD−ROM)などの媒体に記憶された発行されたソフトウェアまたはコンテンツ(例えば映画)に対するコピーを保護するのに用いることもできる。
【0003】
実行を安全なものとすることは、実行の保全性を保証し、コードおよびデータのプライバシーを保証することを含む。様々なタイプの脅威が、システムの保全性またはプライバシーを損なうことにつながる恐れがある。例えば、悪意あるソフトウェアが、オペレーティング・システムの脆弱性を利用することがある。ダイレクト・メモリ・アクセス・デバイスが、プロセッサのサポートなしで物理メモリを読み取れることがある。ロジック・アナライザを使用して、プロセッサとメモリの間のトラフィックが観察されることもある。また、プロセッサに備わるデバッグ・モードまたはプローブ・モードを利用した攻撃や、システム中のコンポーネントの接続性を物理的に変更して、コンポーネント間の通信を観察および変更する攻撃が行われることもある。また、攻撃者がハードウェアを異常な電圧、温度、または周波数にさらして、システムの実行を損なわせ、場合によってはハードウェアから外に秘密を「リーク」させる可能性もある。さらに、攻撃者がプロセス層を選択的に除去して、秘密を隠しているデバイス構造を露出させたり、イオン・ビームを使用してデバイス内部の信号フローを調べたりする可能性もある。
【0004】
公開鍵/秘密鍵暗号法に基づくものなど、いくつかのセキュリティ方式は、秘密にしておく必要のある秘密データまたはコードを使用する。いくつかの場合、使用されるエンコード・アルゴリズムは公開され、暗号法の強度は、鍵を秘密にしておくことにある。プログラムの制御フロー情報などの中間データは、明るみになれば秘密鍵が決定されやすくなる恐れがあるので、明るみにならないようにすべきである。これに関して、プロセッサ・アーキテクチャの条件付き割当て能力を用いて秘密データ上の分岐を除去することができる場合もあるが、この要件を満たすようにコードを設計することは困難である。適用例によっては、暗号強度の一部は、アルゴリズム自体のプライバシーにある。この場合、実行環境は、入力データおよびすべての中間結果に加えて実行コードさえも秘密に保たれることを保証する必要がある。
【0005】
いくつかのシステムでは、特別なセキュリティ・コプロセッサを使用して、ホスト・プロセッサのコードおよびデータを保護する。既知のシステムでは、例えば悪意あるソフトウェアやダイレクト・メモリ・アクセス・デバイスやロジック・アナライザを使用した攻撃、システム・デバッグ/プローブ・モードを利用した攻撃、またはハードウェアに変更を加えて秘密を暴く攻撃から、ホスト・プロセッサがホスト・プロセッサ内の秘密コードまたはデータ(例えば鍵)を保護するための、効果的な手段が提供されない。
【0006】
(詳細な説明)
本発明の実施態様は、機密コードおよびデータを安全なメモリ区分に記憶することによって安全に実行できるようにする。機密コードおよびデータとしては、ネットワークを介して受信された伝送の信憑性および保全性を検証するのに使用されるコードおよびデータを含めることができ、また、DVDやCD−ROMなどの媒体に記憶されたコンテンツを含めることができる。安全なメモリ区分は、プロセッサの一般的なアドレス空間内のアドレス範囲としてアーキテクチャによって定義することができる。区分は、仮想メモリ位置または物理メモリ位置のアドレス範囲とすることができる。アドレス範囲は、基底アドレスおよび範囲によって指定することができる。安全なメモリ区分は、固定エントリ・ポイントを有することができる。他の実施態様では、機密コードおよびデータが暴かれないよう保護するために、機密コードおよびデータは、メモリに書き込む前にプロセッサ上のハードウェアによって暗号化し、プロセッサに再び読み込んだ後で暗号化解除する。本発明の様々な実施態様が、様々なレベルの脅威に対する保護を与える。各実施態様は、悪意あるソフトウェアやインテリジェントな入出力デバイスに基づく攻撃、ロジック・アナライザを使用した攻撃、プロセッサをソケットから外した後で保全性の損なわれたプラットフォーム中に配置することを含むハードウェア攻撃に対して、高度な保護を与える。
【0007】
安全な実行システムの実施形態
図1は、本発明の一実施形態による、安全に実行できるコンピュータ・システムの部分ブロック図である。コンピュータ100はコンポーネント101を含み、このコンポーネント101は、プロセッサ110、チップセット102、システム・メモリ120、ネットワーク・インタフェース・カード103、不揮発性の大容量記憶域104、入出力(I/O)デバイス107、およびBIOS(basic input/output system)ROM108を備えることができる。プロセッサ110はチップセット102に結合することができる。「結合」という語は、直接接続、間接接続、間接通信などを含む。チップセット102もまた、システム・メモリ120、ネットワーク・インタフェース・カード103、不揮発性の大容量記憶域104、入出力デバイス107、およびBIOS ROM108に結合することができる。これらのデバイスは、システム・バスやPCI(peripheral component interface)バスなどのバスを介してチップセットに結合することができる。ネットワーク・インタフェース・カード103は、ネットワーク130に結合することができる。コンピュータ103はまた、コプロセッサやモデムなど、追加のコンポーネントを含むこともできる。
【0008】
プロセッサ110は、カリフォルニア州サンタクララのIntel Corp.製のPENTIUM(登録商標)クラス・プロセッサなどの汎用マイクロプロセッサとすることができる。別の実施形態では、プロセッサは、特定用途向け集積回路(IC)(ASIC)、コントローラ、マイクロコントローラなどとすることができる。チップセット102は、コンピュータ・システムのプロセッサと他のコンポーネントとの間でデータを転送するためのハブまたはコアとして働く1つまたは複数の集積回路チップとすることができる。一実施形態では、チップセット102は、「ノースブリッジ機能」として知られる機能を実施するメモリ・コントロール・ハブ(MCH)と、「サウスブリッジ機能」として知られる機能を実施する入出力コントローラ・ハブ(ICH)を含む。システム・メモリ120は、ダイナミック・ランダム・アクセス・メモリ(DRAM)やスタティック・ランダム・アクセス・メモリ(SRAM)など、ディジタル情報を記憶するように適合された任意のデバイス、またはこれらの任意の組合せである。一実施形態では、システム・メモリ120は揮発性メモリである。プロセッサ110、チップセット102、システム・メモリ120、およびBIOS ROM108は、コンピュータ100中のシステム・マザーボード上に装着することができる。
【0009】
ネットワーク・インタフェース・カード103は、標準的なネットワーク・プロトコルを使用して通信するためのロジックを含むことができる。ネットワーク130は、ローカル・エリアまたはワイド・エリア・コンピュータ・ネットワークとすることができ、例えばイントラネットやインターネットとすることができる。不揮発性の大容量記憶域104は、フラッシュ・メモリ、ハードディスク、光ディジタル記憶デバイス、電磁気記憶デバイス、DVD、CD−ROMなど、ディジタル情報を記憶するように適合された任意のデバイス、またはこれらの任意の組合せとすることができる。図1には、光記憶装置105およびフロッピー(登録商標)・ドライブ106を含むものとして、不揮発性の大容量記憶域104を示す。入出力デバイス107は、キーボード、マウス、表示画面、プリンタなど、またはこれらの任意の組合せとすることができる。BIOS ROM108は、キーボード、表示画面、ディスク・ドライブ、シリアル通信機構などの周辺デバイスを制御するためのコードを含むことができる。BIOS ROM108はまた、その他の様々な機能を実施するのに使用されるコードを含むこともできる。
【0010】
図2は、本発明の一実施形態による安全な実行コンポーネントを有するプロセッサと、安全な区分を有するメモリとの部分ブロック図である。図2には、例えば図1に示したコンピュータ・システム100などのコンピュータ・システムの一部であるプロセッサ210およびシステム・メモリ220が示してある。プロセッサ210およびシステム・メモリ220は、図1のプロセッサ110およびシステム・メモリ120と同じものとすることができる。プロセッサ210は、例えば図1のチップセット102などを介して、システム・メモリ220に結合することができる。
【0011】
プロセッサ210は、例えば算術論理ユニットなどの実行ユニット211を含むことができ、これはレジスタ・ファイル212に結合することができる。レジスタ・ファイル212は、汎用レジスタ、フラグ・レジスタ、命令ポインタ、インデックス・レジスタなど、またはこれらの組合せなど、複数のレジスタを含むことができる。レジスタ・ファイル212は、安全な区分レジスタ214を含むことができる。実行ユニット211は、オンチップBIOS(basic input/output system)215、プロセッサ・キー記憶要素216、および乱数生成器(RNG)ユニット217に結合することができる。オンチップBIOS215は、プロセッサがシステム・メモリ120など他のシステム・コンポーネントと通信するために使用する、焼き込まれたロジックを含むことができ、また、プロセッサが開始(ブートアップ)されるときに実行されるロジックを含むことができる。このロジックは、後述するようにブートストラップ・セキュリティ・ロジック241を含むことができる。さらに、オンチップBIOS215は、システム開始時にBIOS ROM108からシステム・メモリに命令をロードするためのロジック(例えばファームウェアやマイクロコードなど)を含むこともできる。プロセッサ鍵記憶要素216は、プロセッサ210が他のシステム・コンポーネントおよび他のコンピュータ・システムから受け取った情報を検証および認証するのに使用することのできる秘密鍵を含む。プロセッサ鍵は、プロセッサ鍵記憶要素216に焼き込むことができる。乱数生成器ユニット217は、任意のランダム化機能を使用するハードウェア乱数生成器とすることができる。一実施形態では、乱数生成器ユニット217は、物理デバイス中の統計的現象(例えば熱雑音)を利用して乱数を提供する。
【0012】
この実施形態では、実行ユニット211は、安全な区分実施ロジック218にも結合することができる。安全な区分実施ロジック218は、後述するように、メモリ中の安全区分を管理するためのロジックを含む。他の実施形態では、安全な区分実施ロジック218は、暗号ロジック219に結合される。暗号ロジック219は、安全区分に記憶される情報を暗号化し、安全区分から読み取られた情報を暗号化解除する。暗号ロジック219は、DES(Data Encryption Stanard)、RSA(Rivest−Shamir−Adleman)、DSS(Digital Signal Standard)暗号化などのアルゴリズムを実装したハードウェア・ロジックとすることができる。一実施形態では、暗号ロジック219は、プロセッサ鍵記憶要素216に記憶されたプロセッサ鍵ではなく、プラットフォーム特有の鍵を使用する。安全な区分実施ロジック218および暗号ロジック219は、アドレス変換バッファ(TLB)213に結合することができる。TLB213は、プロセッサ210のアドレス空間中の仮想アドレスを、システム・メモリ220中の物理アドレスおよびプロセッサ210からアクセスされる他のメモリ中の物理アドレスとマッチさせるのに使用することができる。
【0013】
図2にはまた、安全なメモリ区分223を含むシステム・メモリ220も示す。安全なメモリ区分223は、安全な区分中にあるコードからしかアクセスされない、物理メモリまたは仮想メモリのセクションとすることができる。一実施形態では、安全区分223は、2つの安全な区分レジスタ214によって決めることができる。例えば、安全区分223は、仮想メモリ中の安全区分の開始を指定する安全区分仮想アドレス基底レジスタと、安全区分のサイズを指定する安全区分仮想アドレス範囲レジスタとによって定義することができる。図2では、安全区分223は、システム・メモリ220中の物理アドレスにマッピングされた状態で示されている。安全なメモリ区分223は、安全なデータ・セクション225および安全なコード・セクション226を含むことができる。安全なコード・セクション226は、例えば信用できる検証実施命令242を記憶することができる。この命令242は、暗号アルゴリズムを適用し、ネットワークを介して受信された伝送(またはDVDやCD−ROMなどの媒体に記憶されたコンテンツ)の信憑性および保全性を検証するのに使用される。安全なデータ・セクション225は、秘密鍵や中間データ(例えばセキュリティ命令の制御フロー情報)など、安全コードによって使用されるデータを含むことができる。安全なコード・セクション226は、後述するように使用することのできるエントリ・ポイント228を有することができる。
【0014】
図2に示す実施形態は、次のように動作することができる。プロセッサ210は、プロセッサ・マイクロコードやオンチップBIOS検証ファームウェア・コード(図2にはブートストラップ・セキュリティ・ロジック241として示す)などのブートストラップ・セキュリティ・ロジックを使用して、BIOSコード(例えばBIOS ROM108中にある)を認証することにより、プラットフォームの保全性を保証する。次いで、安全なBIOS108は、チップセット中に他の保護機構があればその存在を妥当性検査する。一実施形態によれば、プロセッサ210がブートアップされるとき、プロセッサ210は、メモリを走査して安全区分のための位置を決定することにより、安全区分を生み出すことができる。次いでプロセッサは、安全区分基底レジスタおよび安全区分範囲レジスタをプログラムして、安全区分を定義することができる。これらのレジスタは、追記型レジスタとすることができる。他の実施形態では、他の機構を使用して安全区分を生み出すことができる。次いでプロセッサは、検証実施命令242、および鍵などの関連データを、システム・メモリ220中の安全なメモリ区分223にコピーすることができる。別の実施形態では、プロセッサのブートアップ中に、検証実施命令242をディスク・ドライブなど不揮発性の大容量記憶域から安全なメモリ区分223にコピーする。この実施形態では、プロセッサ210は、オンチップBIOS215に記憶されたセキュリティ・ロジック241と、プロセッサ鍵記憶要素216に記憶された鍵データを使用して、安全なメモリ区分223にコピーされた検証実施命令242およびデータの信憑性および保全性を検証することができる。この検証により、不揮発性メモリに記憶された検証実施命令242に、攻撃による破損または欠陥が生じているかどうかを判定することができる。ブートストラップ・セキュリティ・ロジック241をプロセッサに記憶し、検証実施命令242を不揮発性メモリに記憶することは、検証実施命令242をプロセッサ自体に焼き込むことよりも低コストであろう。
【0015】
一実施形態では、安全な区分実施ロジック218は、プロセッサ210によって行われるどんなメモリ・アクセスも監視する。このようなアクセスには、メモリに記憶された命令の実行や、メモリ中のデータに作用する命令の実行を含めることができる。命令は、メモリ中のある位置に記憶されたデータを読み取るとき、またはある位置にデータを書き込むときに、その位置でデータに作用する。この実施形態では、安全な区分実施ロジック218は、プロセッサ210によって各命令が実行される前に命令を調べることになる。命令が、区分エントリ・ポイント228以外の安全なメモリ区分223内の位置への分岐である場合は、安全な区分実施ロジックは、この命令を実施すべきでないと決定する。このような場合、区分実施ロジックは、トラップ・ハンドラにトラップすることができる。安全な区分実施ロジック218は、区分内のある位置から区分内の別の位置への分岐の実行は許可し、また、区分エントリ・ポイント228への分岐の実行は許可する。エントリ・ポイント228は、安全区分にジャンプしたソフトウェアの信憑性を検証する検証ルーチンの開始を含むことができる。したがって例えば、このルーチンは、未許可のまたは悪意あるプログラムが安全なコードを実行しないようにすることができる。さらに、エントリ・ポイントを安全なコード226へエンフォース(enforcing)することにより、安全な区分実施ロジック218は、未許可のまたは悪意あるコードが検証ルーチンをバイパスするのも防止する。他の実施形態では、命令が区分エントリ・ポイントに記憶されておらず、前に実行された命令が区分の開始の前の命令だったときは、安全な区分実施ロジックは、この命令を実行しないと決定する。したがって、区分エントリ・ポイント228が区分中の第1の命令でない場合、安全な区分実施ロジック218は、プロセッサがエントリ・ポイント以外のポイントで安全区分中に続けて進まないようにすることになる。
【0016】
この実施形態では、命令が安全区分外にあり、安全区分内の位置に作用(例えば読取りまたは書込み)しようとしているときは、安全な区分実施ロジックは、この命令を実行しないと決定する。したがって、安全なコード・セクション226中の信用できる命令だけが、安全なメモリ区分223の安全なデータ・セクション225内のデータに作用することができる。この実施形態では、安全区分中に位置するコードによってアクセスできることを除いては、安全データにアクセスすることはできない。他の実施形態では、安全区分中のコードは、安全区分外にあるデータにアクセスすることができる。別の実施形態では、この区分の安全なデータ・セクション225中のデータに作用しようとする命令が適切な読取り/書込み許可を有さない場合は、安全な区分実施ロジック218は、この命令を実行しないと決定することができる。別の実施形態では、安全区分外の命令が安全区分内の位置に作用しようとするときは、安全な区分実施ロジック218は、トラップ・ハンドラにトラップすることができる。また、命令が適切な読取り/書込み許可なしで安全なデータ・セクション中のデータに作用しようとするときも、トラップ・ハンドラにトラップすることができる。
【0017】
一実施形態では、安全なメモリ区分223は、仮想メモリ中の区分とすることができる。一実施形態では、プロセッサのアドレス空間は仮想メモリ・アドレス空間であり、すべての命令は、仮想アドレスでメモリをアドレス指定する。この実施形態では、安全区分は、プロセッサ210中で、仮想アドレス基底レジスタや仮想アドレス範囲レジスタなど、仮想アドレスによって指定される。安全区分を仮想アドレスで指定することにより、安全な区分実施ロジックはより早くパイプライン中に位置することができる。アドレス変換バッファ213が、これらの仮想アドレスを物理アドレスに変換することができる。安全区分についての仮想アドレスから物理アドレスへのマッピングは、信用できる機構を介して行うことができる。
【0018】
図3は、仮想メモリ区分および物理メモリ区分の部分ブロック図である。図3には、アプレット空間367およびカーネル空間365を有する仮想メモリ360を示す。アプレット空間367およびカーネル空間365は、物理メモリ320中の安全区分323にマッピングする。安全区分323中の情報は、不揮発性メモリ340中の安全な不揮発性空間345にスワップアウトすることができる。不揮発性メモリ340はフラッシュ・メモリとすることができる。一実施形態では、安全な不揮発性空間345は、安全区分323中のコードまたはデータのわずかな部分しか含まない。
【0019】
一実施形態では、検証実施命令242および関連データは、プロセッサ210からメモリに移行する間またはメモリに記憶されている間に暴かれないよう保護するために、暗号化された形で安全区分223に記憶される。この実施形態によれば、安全なコードおよびデータは、メモリ中の安全区分からプロセッサ210に転送された後で、実行ユニット211が作用できるように暗号ロジック219によって暗号化解除されることになる。反対に、安全なコードおよびデータがプロセッサ210からメモリ中の安全区分に転送される前には、暗号ロジック219によって暗号化されることになる。このようにすることで、安全なコードおよびデータは、例えばダイレクト・メモリ・アクセス、ロジック・アナライザ、イオン・ビームなどによる攻撃から保護されることになる。十分に強力な暗号化が用いられれば、攻撃者は、安全区分の内容を決定することができたとしても、安全なコードまたはデータを決定することはできないことになる。一実施形態では、安全なコードおよびデータは、例えばディフィー・ヘルマン・メソッドなどの共有暗号アルゴリズムを使用して暗号化および暗号化解除される。このような実施形態では、カバー鍵を使用してデータをカバーすることができ、このカバー鍵は共有されない。カバー鍵は、ブートアップ・ロジックによって生成することができる。他の実施形態では、1つのシステムがいくつかのプロセッサを有し、カバー鍵はシステム・プロセッサによって共有される。
【0020】
他の実施形態では、コンピュータ・システムは、ディスク・ドライブなど不揮発性の大容量記憶域中に安全区分を有する。不揮発性の大容量記憶域中の安全区分は、揮発性の大容量記憶域中の安全区分への追加的なものとすることができる。この実施形態によれば、不揮発性メモリ中の区分は、安全にされたコードによってのみアドレス指定可能である。
【0021】
乱数生成器217を使用して、暗号アルゴリズムの実施または新しい鍵の生成を行うことができる。プロセッサは、安全な不揮発性(NV)メモリを使用して、単調な値を最新のものに維持することができる。
【0022】
図4に、本発明の一実施形態による命令処理方法のフロー・チャートを示す。命令は、例えば、図1および2のプロセッサ110や210などのプロセッサによって実行されるアセンブリ言語命令とすることができる。実行前に、命令を調べる(401)。命令が仮想メモリ中の位置区分内の位置への未許可アクセスであるときは、この命令を実行しないと決定する。一実施形態では、命令が区分内の位置にあるデータに作用するものであり、命令が区分内に記憶されていないときは、この命令を実行しないと決定する(402)。他の実施形態では、命令が区分外の位置からの分岐であり、この分岐が区分内の位置への分岐であり、この分岐が区分エントリ・ポイントへの分岐でないときは、この命令を実行しないと決定する(403)。別の実施形態によれば、命令が区分エントリ・ポイントに記憶されておらず、前に実行された命令が区分の開始の直前の命令であったときは、この命令を実行しないと決定する(404)。命令を許可すると決定した場合は、命令を実行する(405)。例えば、命令が区分内のある位置から区分内の別の位置に分岐するとき、および命令が区分外の位置から区分エントリ・ポイントに分岐するときは、この命令を実行することができる。一実施形態によれば、この方法は、命令を実行しないと決定したときにトラップ・ハンドラにトラップすることを含む(406)。
【0023】
図5に、本発明の一実施形態による別の命令処理方法のフロー・チャートを示す。一実施形態によれば、暗号化された命令をメモリ中の安全区分からプロセッサに読み込む(501)。命令は、任意の暗号技術を用いて暗号化されたものとすることができる。読み込んだ命令は、例えば図2に示した暗号ロジック219を使用して暗号化解除する(502)。次いで、暗号化解除した命令を実行することができる。一実施形態では、安全区分からデータを読み取る命令の場合は(503)、安全区分からデータを読み取り、読み取ったデータを暗号化解除する(504)。別の実施形態では、安全区分中の位置にデータを書き込む命令の場合は(505)、データを暗号化し、暗号化したデータを安全区分に書き込む(506)。他の実施形態では、安全区分からデータを読み取る命令か、または安全区分中の位置にデータを書き込む命令かを決定することは、データの仮想アドレスを安全区分の境界と比較することを含む。
【0024】
セキュリティ特権レベル(SPL)
一実施形態では、2つの「セキュリティ特権レベル」を定義することができる。一方の特権レベルは、セキュリティ・カーネル特権レベルと呼び、これは、プリミティブなセキュリティ機能/サービスだけを実行するためのものとすることができる。第2の特権レベルは、プロセッサまたは第三者から供給されたセキュリティ・コードを実行するためのものと定義することができる。この第2の特権レベルは、アプレット特権レベルと呼ぶことができる。これらの新しいセキュリティ特権レベル(SPL)は、実行の特権レベルに関する既存の概念と直交することができる。したがってこの実施形態では、所与のアドレス範囲に対するアクセス(実行/読取り/書込み)特権は、現在特権レベル(CPL)だけでなく現在SPL(CSPL)とも相関関係になる。CSPLは、現在の実行に関連するセキュリティ特権レベルを示す。CSPLのデフォルト値は3とすることができる。この場合、CSPLが3のときは、実行モデルはデフォルト実行モデルと呼ぶことができる。CSPLがデフォルト以外の値を有するときは、実行モデルは「隠し実行」モデルの実行モデルと呼ぶ。
【0025】
2つの特権レベルは、SPL0(カーネルの場合)およびSPL1(アプレットの場合)と呼ぶことができる。複合特権レベルはリングx.yと呼ぶことができ、xは現在の実行についてのCPLであり、yは現在の実行についてのCSPLである。したがって、現在の実行の特権レベルが3.3である場合、これは現在のアプリケーションがデフォルト・リング3で実行されていることを意味する。しかし、現在特権レベルが3.0である場合は、実行についての現在特権レベルがリング3であり、アクセス権がセキュリティ・カーネル特権レベルに関連することを意味する。一実施形態では、実モードではCSPLは常に3であり、この場合、実モードでの隠し実行に対するサポートはない。
【0026】
カーネル特権レベル
アーキテクチャは、カーネル特権レベルで使用される新しい仮想アドレス範囲を定義することができる。新しい仮想アドレス範囲は、仮想アドレス基底レジスタ・カーネル(VABRk)および仮想アドレス範囲レジスタ・カーネル(VARRk)によって定義することができる。VABRkおよびVARRkによって定義する仮想アドレス範囲は、それに関連するカーネル・レベルのセキュリティ・アクセス権を有するように定義することができ、安全なカーネル空間、またはカーネルの安全なメモリ区分と呼ぶことができる。
【0027】
一実施形態では、安全なカーネル空間内のコードだけが、この空間で読取りまたは書込みを行うことができる。この場合、安全なカーネル空間内のデータおよびコードの保全性およびプライバシーがこの空間の外のコードによって損なわれることはない。他の実施形態では、安全なカーネル空間内のコードは、任意の仮想アドレス空間に対するデータの読取りおよび書込みを、そのようなアクセスが例えば既存のセグメンテーションおよびページング保護機構によって許される限り、行うことができる。他の実施形態では、セキュリティ・カーネル特権レベルにあるときだけ実行できる命令が定義される。別の実施形態では、カーネル仮想アドレス空間は自由に再配置可能である。別の実施形態では、安全区分のサイズは、ブートアップ時に固定され、一般のシステム・ソフトウェアの制御下にはない。例えば、プリOSファームウェアまたはオンチップ・マイクロコードだけが、仮想アドレス範囲レジスタに書き込むことができる。この場合、仮想アドレス範囲レジスタは、ソフトウェアによる書込みは全く不可能(プロセッサ・マイクロコードによって書き込まれる場合)とするか、またはリセット後に1度だけ書き込める(ファームウェアによって書き込まれる場合)とすることができる。
【0028】
別の実施形態では、安全なカーネル空間への固定エントリ・ポイントがあり、この空間の外から、このエントリ・ポイントに対する事前定義済みオフセット以外のオフセットまで安全なカーネル空間に分岐するのは違反である。デフォルトのセキュリティ特権を有するアドレス空間からは、固定エントリ・ポイントに入るのである限り、どんな制御転送機構を介しても安全なカーネル空間に入ることができる。他の実施形態では、カーネル・セキュリティ特権レベルにあるコードから要求されるカーネル・サービスは、要求元の現在特権レベルと相関関係にあるものとすることができる。この実施形態では、安全なカーネル空間へのエントリ・ポイントにあるコードは、呼出し元の現在特権レベルおよび現在のセキュリティ特権レベルを調べて、要求されているサービスが可能か否かを決定する。一実施形態では、安全カーネル・アドレス空間は、現在のセキュリティ特権レベルx.3を有する空間に、任意の制御転送機構を介して出ることができる。セキュリティ・カーネルが呼出し/リターン機構を使用してプログラム・フローを変更する場合、セキュリティ・カーネルは、その安全なスタック空間を管理し、かつ、安全なアプリケーション・スタック空間と安全でないアプリケーション・スタック空間との間の移行を管理することが必要な場合がある。
【0029】
アプレット特権レベル
アーキテクチャは、プロセッサの一般的な仮想アドレス空間内で新しい仮想アドレス範囲を定義することができる。この仮想アドレス範囲は、2つのレジスタすなわち仮想アドレス基底レジスタ・アプレット(VABRa)および仮想アドレス範囲レジスタ・アプレット(VARRa)によって定義することができる。VABRaおよびVARRaによって定義するアドレス範囲は、アプレット・レベルを有し、それに関連するセキュリティ・アクセス権を有することができ、安全なアプレット空間と呼ぶことができる。
【0030】
一実施形態では、アプレット・セキュリティ特権レベルに対応する仮想アドレス空間の場合、読取りおよび書込みアクセス権は、アプレットまたはカーネル・セキュリティ特権レベルを有するアドレス範囲内で実行されているコードに限定される。一実施形態では、安全なアプレット空間を定義するアプリケーションは、同じプロセスのコンテキストで、同じ現在特権レベルの安全なカーネル空間も定義しなければならない。一実施形態では、カーネルまたはアプレット隠し実行コード以外のコードは、安全なアプレット空間内で読取りまたは書込みを行うことができない。したがって、安全なアドレス空間内のデータまたはコードの保全性およびプライバシーが、セキュリティ・アクセス権を有さないコード(すなわち現在のセキュリティ特権レベル3)によって損なわれることはない。この実施形態では、安全なアプレット空間内のコードは、安全なカーネル・アドレス空間内ではデータの読取りまたは書込みを行うことはできず、安全なアプレット空間内のコードは、既存のセグメンテーションおよびページングおよび保護機構によって許される限り、安全なカーネル空間以外ならどんなアドレス範囲に対しても読取りおよび/または書込みを行うことができる。安全なアプレット空間は自由に再配置可能である。区分のサイズは、ブート時に固定することができ、一般のシステム・ソフトウェアの制御下にはない。この実施形態では、プリOSファームウェアまたはオンチップ・マイクロコードだけが、VARRaレジスタに書き込むことができる。したがって、レジスタVARRaは、ソフトウェアによる書込みは全く不可能(プロセッサ・マイクロコードによって書き込まれる場合)であるか、またはリセット後に1度だけ書き込める(ファームウェアによって書き込まれる場合)。
【0031】
一実施形態では、安全なアプレット空間には、安全なカーネル空間からしか入ることができない。この実施形態では、デフォルト・セキュリティ空間から安全なアプレット空間に分岐するのは違反とすることができるが、安全なカーネル空間から安全なアプレット空間へのエントリ・ポイントには制約はないものとすることができる。この実施形態では、デフォルト・セキュリティ特権を有するアドレス空間から安全なアプレット空間中の機能を呼び出すには、現在安全なアプレット空間内の機能の要求についての適切な「信任状」と共に、安全なカーネル空間中の固定エントリ・ポイントに制御を転送する必要がある。安全なアプレット・アドレス空間は、現在のセキュリティ特権レベル3を有する空間に、任意の制御転送機構を介して出ることができる。ただし、デフォルト・セキュリティを有する空間中の機能をアプレットが呼び出したい場合は、その安全なカーネル空間への機能呼出しを介してこれを行う。
【0032】
一実施形態では、安全なアプレット空間と安全なカーネル空間の間の移行は、デフォルト・セキュリティを有するアドレス空間と安全なカーネル空間の間の移行と同様だが、例外として、アプレットは、追加のセキュリティ・カーネル機能を呼び出すことができる。この実施形態では、安全なアプレット空間は、あらゆる割込みが安全なアプレット空間からの退出を引き起こすことを除いては、安全なアプレット空間内での制御転送のために任意の制御転送機構を使用することができる。安全なアプレット空間は、セキュリティ・カーネルが安全なアプレット空間の管理をサポートし、安全なアプリケーション・スタック空間と安全でないアプリケーション・スタック空間との間の移行をサポートする場合だけ、呼出し/リターン機構を使用することができる。
【0033】
安全な物理メモリ(RAMおよび不揮発性)区分
一実施形態では、セキュリティ拡張は、物理メモリ中の1つの「安全」区分を定義する。プロセッサがセキュリティ・カーネル特権レベルだけを実装している場合は、安全な物理空間のサイズは安全なカーネル空間のサイズ以上である。プロセッサがセキュリティ・カーネル特権レベルとアプレット特権レベルの両方をサポートする場合は、物理区分のサイズは、安全なカーネル空間と安全なアプレット空間の合計以上とすることができる。安全な物理メモリ区分は、物理アドレス基底レジスタ(PABR)および物理アドレス範囲レジスタ(PARR)によって定義することができる。一実施形態では、安全な物理メモリ区分の基底と範囲は両方とも、ブート時に固定され、したがって一般のシステム・ソフトウェアの制御下にはない。プリOSファームウェアだけがPABRまたはPARRレジスタに書き込むことができる。したがってこれらのレジスタは、リセット後に1度だけ書き込むことができる。
【0034】
物理アドレス区分は、仮想アドレス機構がイネーブルのとき(例えばプロセッサが保護モードで実行しているとき)、安全な仮想アドレス区分のための物理メモリを提供するのに使用することができる。仮想アドレス機構がディセーブルのとき(例えばプロセッサが実モードのとき)は、プロセッサ・ハードウェアは、安全な物理メモリ区分へのどんなアクセスも許可せず、この結果、実モードでの安全な物理区分へのアクセスはいずれも違反オペレーション・トラップとなる。
【0035】
一実施形態では、安全な物理メモリ区分は、プロセッサ・ダイ中の物理メモリとして、または同じパッケージ中の別個のダイとして、または外部システム・メモリの一部として提供することができる。安全な物理区分を外部システム・メモリとして実装する場合は、メモリ・コントローラもPABRおよびPARRと同様のレジスタの対を実装し、アドレス空間がDMAデバイスからアクセスを受けないようにすることが有利である。プリOS BIOSが、チップセット中に適切な保護機構があることを検証することができる。安全な物理メモリの一部は、不揮発性メモリに対応することができる。NV物理メモリ区分に使用される基底アドレスは、PABRと同じものとすることができる。追加の範囲レジスタとして、NVメモリ範囲レジスタすなわちNMRRがあってもよく、これは、安全なNVメモリ区分のサイズを定義するものであり、SPL0のコードによってしか書くことができない。安全なNVメモリ空間は、同じパッケージ中の別個のダイとしてあってもよく、外部コンポーネントの一部としてあってもよい。一実施形態では、このNVメモリへは、安全なカーネル空間で実行されているコードによって要求が開始された場合だけアクセス可能である。
【0036】
一実施形態では、安全なアドレス空間には4つのアーキテクチャ区分がある。すなわち、1)安全なアプレット空間、2)アプレットから要求されたセキュリティ・カーネル機能を実行するための、アプレット・アドレス空間に関連する安全な物理メモリ、3)カーネル・コードおよびデータのための安全な物理メモリ、4)安全なNVメモリである。アプレット空間のための安全な物理メモリと、アプレット実行に関連する安全なカーネル空間の一部とは、プロセスごとのリソースとすることができる。安全なカーネル空間は、安全なアプレット物理アドレス空間の内容、ならびに安全なアプレット・コードから呼び出されるセキュリティ・カーネル機能のために予約される安全なカーネル空間の一部の内容の、暗号化バージョンを保存する機能を実装することができる。安全なカーネル・アドレス空間はまた、安全なアプレット物理メモリと、アプレット空間に関連する安全なカーネル空間の一部とを復元する機能も実装することができる。これらの機能は、安全なアプレット物理メモリと、アプレット空間に関連するカーネル・メモリとを、いくつかのプロセス間で「仮想化」することを可能にする。スワップアウトされた状態の保全性は、スワップされた状態に関連するハッシュ値を、保存した状態のこのインスタンスに対応する「固有タグ」と共に安全なNVメモリに保持することによって提供することができる。
【0037】
一実施形態では、いくつかのカーネル機能を同時に実行することを可能にするのに十分な安全なカーネル空間物理メモリが提供され、実行の最中にセキュリティ・ドライバによって開始されたカーネル機能のスワップアウトを可能にすることは必要ない。他の実施形態では、セキュリティ機能の実行に割り振られた安全なカーネル空間が使用中になった後は、以後にカーネルのセキュリティ機能の要求があっても、前に実行されているセキュリティ機能が完了するまでブロックされる。
【0038】
プロセッサ鍵
一実施形態では、プロセッサは、固有IDに加えて秘密鍵/公開鍵の対も有することができる。この鍵の対は、RSA鍵の対、DSS鍵の対、または他の何らかの鍵の対とすることができるが、RSAが最も有利である。秘密鍵は、プロセッサ内部に「焼き込み」、特定のカーネルのセキュリティ機能でのみ使用できるものとすることができる。これらのセキュリティ機能は、特権レベルcp1.0(したがってカーネル・セキュリティ空間内)でのみ実行することができる。公開鍵もまた、関連する証明書と共にプロセッサ中に提供することができる。完全な秘密鍵と公開鍵のためにオンチップNV記憶域を提供することもできる。電源投入時にプロセッサが秘密鍵を明るみにすることなくオンチップ・マイクロコードまたはカーネル・コードを使用して完全な鍵を計算することができるような、公開鍵と秘密鍵を構成するのに十分なコンポーネントのための記憶域を提供すれば足りる。鍵の署名入りの値に対応する公開鍵証明書の部分もまた、オンチップNVメモリ中に提供すべきである。一実施形態では、RSA鍵の対は、1024ビットの秘密鍵の場合に、1344ビットの隠しNV記憶域をプロセッサ上に必要とする。すなわち、Pコンポーネント用に512ビット、Qコンポーネント用に512ビット、公開鍵証明書用に320ビットである(証明書中の署名がDSS署名であると仮定した場合)。
【0039】
秘密鍵と公開鍵に加えて、プロセッサは、オンチップNVセル中に56ビットのDES鍵を有することもできる(またはトリプルDESに対するサポートを有するべきである)。この鍵もまたプロセッサだけの秘密にしておくことができ、この鍵は、外部の安全な物理メモリに対して記憶/読取りを行うためのDES機能を実施するためだけに使用することができる。一実施形態では、プロセッサ特有のDES鍵ではなくプラットフォーム特有のDES鍵が使用される。
【0040】
セキュリティ特権レベルとプロセッサ・オペレーション・モードの対話
一実施形態では、デフォルトのプロセッサ実行と現在のセキュリティ特権レベルとの間に最小限の対話がある。他の実施形態では、仮想変換機構がオフのとき(すなわちプロセッサが実モードのとき)、CSPLは3(すなわちデフォルト・モード)にされ、安全な物理アドレス区分にアクセスするのは違反である。セキュリティ機能は、実モードまたは仮想モードではディセーブルとすることができる。この実施形態では、仮想変換機構がオンのとき(すなわちプロセッサが保護モードのとき)、安全な仮想アドレス区分へのアクセスに関するどんなTLBミスも、プロセッサが新しい変換アルゴリズムを使用して直接処理する。TLBミスは、TLBに関係するどんな障害も生じない。
【0041】
一実施形態では、安全なアドレス空間内でアクセス権がCSPLによってのみ制御されるように、安全なアドレス空間についての仮想−物理マッピングのためのページ変換エントリ・フォーマットを定義することができる。安全な仮想区分のいずれかからコードを実行するときは、性能監視機能がディセーブルになる。中断または外部割込みのせいで安全なカーネル空間または安全なアプレット空間の外に移行する場合があるときは、適切なレジスタを安全なカーネル空間内の事前定義済みのブロックに保存することができる。安全なアドレス空間内のデータを外部メモリに書き込む前にレジスタ中の一時的な値を保存するのに外部のシステム・メモリを使用することができる場合は、プロセッサは、プラットフォーム特有の「カバー鍵」を使用して、オンチップDESユニットで自動的にこの値を暗号化することができる。これらのレジスタを安全な物理メモリに保存した後、対応するプロセス・レジスタ値を、正当だが無意味ないくつかの値に変更することができる。例えば、EIPを何らかの正当な固定値に変更できることを除いては、ほとんどのデータ/アドレス・レジスタは、すべて「0」に変更することができる。
【0042】
セキュリティ・アドレス空間から外への移行は、オンチップ・マイクロコードによって、またはカーネルの安全な仮想アドレス区分内の割込み機構によって扱うことができる。安全な物理アドレス区分のために外部メモリが使用される場合、いくつかの実装形態では、プラットフォームの「カバー鍵」でDESを使用して命令ストリームの暗号化バージョンを安全な仮想アドレス区分からフェッチすることをサポートすることができる。
【0043】
一実施形態では、新しい安全移行(TSR)を定義することができる。この実施形態によれば、プログラム制御を他の空間から安全なカーネル空間に転送する制御転送機構はいずれも、呼出し元のCPLおよびCSPLをこのレジスタ中に提供する。安全なカーネル空間中のエントリ・ポイントにあるコードが、これらのビットおよび要求されているサービスを調べて、要求されているサービスを許可すべきか否かを決定することができる。例えば、いくつかのセキュリティ・サービスは、CPL0のコード(すなわちセキュリティ・ドライバ)からしか要求することができない。一実施形態では、TSRレジスタは、ハードウェアまたは安全なカーネル・コード(CSPL0)によってしか更新することができない。
【0044】
一実施形態では、安全なカーネル空間には固定エントリ・ポイントがある。この実施形態では、他のどんなオフセットへの分岐も違反である。レジスタの1つが、セキュリティ・アドレス空間またはアプリケーション・アドレス空間内で実行すべき機能番号を指定することができる。機能の中には、追加のパラメータを必要とするものもある。例えば、入力オペランドや、ターゲット・コード/データの暗号化解除に使用される鍵などである。一実施形態では、デフォルト・セキュリティ(CSPL3)を有するアドレス空間から安全なアプレット空間に制御を転送することは許されない。別の実施形態では、安全な物理空間についての「ライトバック」属性を選択するために、安全な仮想アドレス空間についてのキャッシュ制御ビットが事前定義される。
【0045】
セキュリティ命令
本発明の機能を実装するために、セキュリティ命令を設けることができる。これらの命令は、セキュリティ機能をサポートするのに必要な命令として分類することができ、あるいは、セキュリティ機能の性能または異なる特権レベル間の移行の性能を向上させるための命令として分類することができる。一実施形態では、最小限のネイティブ・セキュリティ機能では、実装形態がカーネル・セキュリティ特権レベルを「ロジック・アナライザ」脅威レベルでサポートすることが必要である。この機能レベルをサポートするのに使用することのできる命令は、(1)cp1.0特権レベルでプロセッサ秘密鍵を読み取る命令、(2)cp1.0特権レベルでプラットフォーム「カバー」鍵に、かつ別のモデル特有レジスタに書き込む命令、(3)いずれかのCPLまたはCSPLでプロセッサの公開鍵を証明書と共に読み取る命令、(4)いずれかのCPLまたはCSPLでRNGを読み取る命令である。
【0046】
その他の命令を定義して、実装形態を容易にし、異なるセキュリティ特権を有するアドレス空間の間の移行を促進することもできる。これらの命令には、次に現れる制御転送命令が実際に現在のセキュリティ特権レベルの変更を必要とすることを示すための分岐「ヒント」命令を含めることができる。この命令は、制御を安全なアプレット空間中のコードに転送する命令として実装することもでき、制御を安全なカーネル空間に転送する命令として実装することもでき、かつ/または、制御をデフォルトのセキュリティ特権レベルに転送する命令として実装することもできる。使用できる別の命令は、安全なNVメモリに記憶する命令である。この命令は、現在の記憶がNVメモリを対象としていることを設計のバックエンドではなくフロントエンドで知らせることにより、実装を補助することができる。
【0047】
ソフトウェア・モデル
セキュリティ・カーネル空間を実装するには、多くのオプションが可能である。一実施形態では、セキュリティ・カーネルは、セキュリティ機能を1つだけ実装することができる。他の実施形態では、セキュリティ・カーネルは、単に追加の機能をマクロコード中に実装するだけで、追加の機能をサポートすることができる。別の実施形態では、セキュリティ・カーネルは、セキュリティ・ドライバから1度に1つの機能が呼び出されることしか許可しないポリシーを実装することができる。この場合、いずれかの追加セキュリティ機能の実行を開始する前に、前のセキュリティ機能を完了すべきである。別の実施形態では、セキュリティ・カーネルは、そのリソース内で生きた機能を1つしかサポートできないが、セキュリティ・ドライバによって安全なカーネル空間を仮想化することができる。この手法は、部分的に実行された機能の状態を暗号化して、新たにロードされた機能に対して保全性チェックを実施する場合に、大きなオーバーヘッドにつながることがある。別の実施形態は、いくつかのセキュリティ機能が同時に生きられるだけの十分な空間を安全なカーネル空間に与え、この空間の「仮想化」はサポートしない。
【0048】
一実施形態では、CSPL3のアプリケーションがカーネルのセキュリティ機能を呼び出したいとき、このアプリケーションは、CPL0およびCSPL3で実行されているセキュリティ・ドライバを介して要求を出すべきである。性能の理由から、このアーキテクチャは、セキュリティ・ドライバを介した呼出しのオーバーヘッドなしにアプリケーションがそれに関連する安全なアプレット中の機能を呼び出せるようにすることができる。CSPL3のアプリケーションは、安全なカーネル空間へのエントリ・ポイントに対する制約が守られる限り、安全なカーネル空間を介してこのような要求を出すことができる。固定エントリ・ポイントにある安全なカーネル・コードが、呼出し元が指定のサービスを要求するのにふさわしい特権レベル(PLとSPLの両方)を有していたことを検証することを担う。このために、新しいレジスタとして移行状況レジスタ(TSR)を定義して、呼出し元のPLおよびSPLを安全なカーネル空間および安全なアプレット空間に提供することができる。
【0049】
性能の理由から、安全なアプレットが制御転送命令を介して制御をアプリケーションに転送して戻せるようにすることができる。実行のプライバシーを維持するために、アプレットは、セキュリティ・カーネルが安全なスタックに対するサポートを提供する場合だけ、制御をアプリケーションに転送する呼出し命令を使用すべきである。一実施形態では、呼出し元を検証するために安全なカーネル空間に負担を課すのではなく、アプリケーションから安全なアプレット空間への制御転送の要求は、セキュリティ・ドライバを介してのみ可能とすることができる。一実施形態では、インフラストラクチャはまた、エントリ・ポイントに対する制約が守られる限り、安全なアプレットが直接制御転送命令を介してカーネル空間中のセキュリティ機能を呼び出すことも可能にする。安全なカーネル空間は、生きたセキュリティ機能の呼出しを1度に1つサポートするのに十分な、現在安全なアプレットに関連する空間を提供するだけでよい。一実施形態では、どんなCPLおよびCSPLからでも安全なカーネル空間に入ることができるとしても、エントリ・ポイントにあるセキュリティ・カーネル・コードは、許可されたセキュリティ・カーネル・サービス要求だけしか所与のPLおよびSPLから出されないようにする。エントリ・ポイントにあるセキュリティ・カーネル・コードは、移行状況レジスタ(TSR)中の要求元の特権レベルを調べて、この決定を行うことができる。
【0050】
レジスタ
レジスタを使用して、安全区分機構を管理することができる。これらのレジスタには、安全カーネル仮想アドレス空間、アプレット仮想アドレス空間、物理アドレス空間、および不揮発性メモリ・アドレス空間のための、基底レジスタおよび範囲レジスタを含めることができる。また、様々なプロセッサ鍵にアクセスするためのレジスタを提供することもできる。これらには、プロセッサ秘密鍵のためのレジスタと、プロセッサ公開鍵およびそれに加えて証明書に対応する署名、ならびにプロセッサDES「カバー鍵」のためのレジスタを含めることができる。レジスタは読取り専用レジスタとすることができる。
【0051】
その他のレジスタには、セキュリティ・アドレス空間への移行のために呼出し元のPLおよびSPLを提供する移行状況レジスタを含めることができる。さらに、固有タグ番号レジスタが、隠し実行の特定インスタンスに割り当てられたタグ番号を保持することができる。中断セキュリティ特権レベル・レジスタを使用して、セキュリティ特権レベルを記録することができる。これらのレジスタは、読取り/書込みレジスタとすることができる。
【0052】
安全カーネル仮想アドレス空間および安全なアプレット仮想アドレス空間の管理
一実施形態では、安全なカーネル・アドレス空間および安全なアプレット・アドレス空間は、仮想−物理変換機構がイネーブルのときだけ定義される。セキュリティ機能は、安全な仮想アドレス区分を安全な物理メモリにマッピングすることを実現するために、OSのメモリ・マネージャに依拠しなくてもよい。安全な仮想アドレス区分と安全な物理区分との間に、固定マッピングを定義することができる。安全な仮想アドレス空間にはアクセス・フォールトおよびダーティ・フォールトへの対応がないものとすることができ、キャッシュ制御ビットを「ライトバック」モードに設定することができる。一実施形態では、安全な仮想アドレス空間と安全な物理アドレス空間との間にリンクを確立するのに、OSサービスは必要ない。他の実施形態では、これらの仮想アドレス区分にはページ・フォールトの概念がない。
【0053】
安全な仮想空間は、固定線形マッピングを用いて安全な物理空間にマッピングすることができる。ページ変換は、PABRレジスタおよびVARRkレジスタと相関関係にあるものとすることができる。アクセス権は事前定義することができる。これらのアクセス権は、あらゆるCPLで実行/読取り/書込み権を許可することができ、それにより、仮想安全区分はどんなCPLにあることもできる。この実施形態では、エントリ・ポイントにおけるセキュリティ・カーネル・コードによって安全なアドレス空間への移行が認められると、安全な区分内の所与の仮想アドレスに対するアクセス許可は、CSPLによってのみ制御される。
【0054】
一実施形態では、安全な仮想アドレス空間は自由に再配置可能である。この実施形態では、安全な仮想区分が再配置されたときは常に、再配置された安全な仮想区分に関する前の有効マッピングはすべて無効になる。このようにして、新しい安全な仮想区分への分岐が行われるときは常に、新しい有効TLBエントリが新しい区分に対して確立される。他の実施形態では、デフォルト・セキュリティを有する仮想アドレス空間のためのTLB機構は、これらのPTEに関する物理ページ・アドレスが安全な物理空間と重複しないことを保証するように強化される。重複の可能性があると、違反オペレーション・フォールトが引き起される恐れがある。
【0055】
割込み
一実施形態では、カーネル・アドレスとアプレット・アドレスの両方についての隠し実行が、ソフトウェアによって、かつ/または外部割込みを通して割込みを受けることがある。カーネルとアプレットのいずれかのセキュリティ特権レベルで隠し実行の途中だったかもしれないプロセスのコンテキストを保存できるようにするアーキテクチャ機構を設けることができる。プロセスがセキュリティ特権レベルのうちの1つで実行されている間にシングルステッピングによる割り込みを受けた場合でも、ハードウェア機構およびソフトウェア機構は、実行のプライバシーおよび保全性が脅威モデルまで維持されるようにすることができる。割込みの処理に使用される機構は、プロセッサ・アーキテクチャの機能に応じて決まる。一実施形態では、セキュリティ特権レベルで実行されているコードが割込みを受けた場合にセキュリティ問題に対処するルーチンを、既存の割込みマイクロコードに追加する。別の実施形態では、新しいセキュリティ割込みベクトル・テーブルを定義して、これらの割込みを処理する。この実施形態では、プログラムがセキュリティ特権レベルで実行されている間のどんな割込みも、安全なカーネル・アドレス空間中のハンドラに転送される。この安全な割込みハンドラは、クリティカルな機能を実施して、割り込まれたコードのプライバシーおよび保全性を保証し、次いで、関連するすべての正しい割込み状況情報と共に、分岐してデフォルトの割込みベクトルに戻る。
【0056】
セキュリティ・レベルの仕様
様々な実装形態が、様々な脅威レベルに対する保護を与えることができる。例えばいくつかの実装形態は、ソフトウェア、インテリジェント入出力、およびロジック・アナライザ(観察モードのみ)による攻撃だけに対して保護を与えることができ、他の実装形態は、イオン・ビーム攻撃からの脅威を含めて、あらゆる脅威モデルに対して保護を与えることができる。ある種類の脅威に対する保護能力が、セキュリティ・レベルを定義する。単純なハードウェア攻撃(プロセッサをソケットから外して、保全性の損なわれたプラットフォームに配置し、安全な物理空間を確立するための高保全性BIOSに対する信頼を欺くことを含む)に対する保護は、すべてのセキュリティ・レベルが実現すべきである。一実装形態では、プロセッサは、プロセッサ・マイクロコードまたはオンチップBIOS検証ファームウェア・コードを使用してBIOSを認証することにより、プラットフォームの保全性を保証する。この場合、BIOSコードは、必要なセキュリティ機能がチップセット中にあればその存在を妥当性検査することができる。
【0057】
セキュリティ・レベル1(SL−1)モデルの一実施形態では、安全な仮想アドレス区分をマッピングするための外部システム・メモリおよびシステムNV(フラッシュ)メモリの、保護された区分が使用される。一実施形態では、隠し実行のためのコードは、共通プラットフォーム鍵を使用して暗号化され、保護された物理メモリ中に暗号化された形で保持される。デバイスの秘密鍵に対して作用するいくつかの機能については、これらがデバイスの秘密鍵のビットに依存する分岐を有さないことを保証するための安全対策をとることができる。これは、条件付き移動命令を使用することによって、または予測機能を使用することによって達成することができる。一実施形態では、すべての中間計算データは、クリアな形でプロセッサ・レジスタおよびオンチップ・キャッシュ中だけに保持される。一実施形態では、安全なアドレス範囲中のデータを保護された外部物理メモリ区分に記憶する必要があるときは常に、出て行くデータをバス・インタフェース・ユニット中のDESユニットを使用して暗号化する。安全な物理アドレス空間から入ってきたデータおよびコードを暗号化解除するためには、別個のDESユニットがあってもよく、共通のDESユニットを共用してもよい。DESユニットは、少なくとも56ビットのDES鍵を使用すれば有利である。実装形態によっては、より大きな鍵を使用することもできる(トリプルDESが使用される場合)。
【0058】
セキュリティ・レベル1は、あらゆる隠し実行に対するロジック・アナライザ(観察モード)までのセキュリティ脅威に対処することができる。安全な物理空間中のコードが暗号化された形であるとき、外部バス信号をアクティブに変更してプロセッサ/プラットフォームの秘密にアクセスすることは非常に難しい。ただし、このセキュリティ・レベルは、このような攻撃に対してどんな保証も提供しない。他の実施形態では、耐タンパ性ソフトウェアを使用して「既知テキスト」攻撃をさらに困難にする。セキュリティ・レベル1モデルはまた、秘密データを解読するために実装プローブ・モードおよびデバッグ・フックを使用して実装特有の状態へのアクセスを得ることに対しても、何らかの保護を与えることができる。さらに、SL1モードは、プロセッサが誤って挙動するようにして秘密データへのアクセスを得る電圧および周波数タンパ技法に対しても、限られたいくらかの量の保護を採用することができる。
【0059】
SL−1モデルでは、物理メモリの安全な区分の保護は、仮想−物理変換機構、プロセッサ中でのDES暗号化、およびメモリ・コントローラ中の物理メモリ・タイプ・レジスタを介して提供することができる。SL−1モデルでは、秘密データのプライバシーは、プロセッサ記憶域内だけで秘密データに作用することによって保証することができる。安全な物理メモリ・アドレス範囲内のデータがバス上に書き出されるときは常に、データはBIU中のDESユニットを使用して暗号化される。システムによっては、安全な物理メモリとの間でデータ/コードを暗号化/暗号化解除するDESユニットは、プロセッサ特有の鍵ではなくプラットフォーム特有の鍵を使用することが望ましい。
【0060】
SL−1モデルでは、安全な物理アドレス空間中の外部コードおよびデータはすべてプラットフォーム鍵で暗号化しておくことができるので、ロジック・アナライザで外部バス信号を見るだけではコードまたはデータを解読することができない。プロセッサ/プラットフォーム秘密鍵は、より高レベルの脅威モデルまで保護することもできる。外部コードが暗号化されるので、機能の中のどの命令が秘密鍵にアクセスしているか、あるいはプロセッサが最終的に秘密データをクリアなメモリに書くように入来命令ビット・ストリームをどのように変形するかを知ることは、非常に難しい。SL−1モデルはまた、プロセッサ実装特有のデバッグおよびマシンチェック機構を使用して、また電圧および周波数タンパ技法を使用してプロセッサ/プラットフォームの秘密にアクセスすることに対しても、適度な量の保護を与える。
【0061】
セキュリティ・レベル2(SL−2)モデルの一実施形態は、安全な物理メモリ区分の少なくとも一部のためのオンチップ物理メモリを設けることによって、セキュリティ・レベルをSL−1よりも上げたものである。この場合、すべての安全なNVメモリ区分はやはりプラットフォーム中にある。揮発性の安全な物理メモリのいくつかもまたシステム・メモリ中にある場合がある。外部のシステム・メモリの一部である安全な揮発性メモリの部分に対する安全保護は、SL−1と同様である。SL−2セキュリティ・モデルでは、隠し実行に関するコードを、暗号化された形で外部メモリからダウンロードすることができる。次いで、このコードを暗号化解除して、プロセッサ・オンチップ・メモリを使用して保全性を検証することができる。次いで、暗号化解除したコードをプロセッサのオンチップ・メモリ外で実行する。あらゆる秘密データも、クリアな形でオンチップ・メモリに保持される。
【0062】
このモデルの一実施形態によれば、オンチップ・メモリは、セキュリティ・ドライバによって管理される共有プロセッサ・リソースである。オンチップ・メモリの一部は種々のプロセスによって共有することができる。オンチップ・メモリのこの共有部分を仮想化することは、ドライバによって行うことができる。オンチップ・メモリのこの部分を暗号化および保存する能力を与えるためのセキュリティ・カーネル機能を、ドライバに利用可能にすることができる。また、オンチップ物理メモリの、前に保存された部分を暗号化解除および復元するためのセキュリティ・カーネル機能を利用可能にすることもできる。外部NVメモリへの秘密データの記憶もまた、同じDESを使用して暗号化することができる。SL−2モデルは、プロセッサ実装特有のプローブ・モードまたはデバッグ・フックを用いた攻撃、ならびに電圧および周波数タンパによる攻撃に対して、より高レベルの保護を与えることもできる。
【0063】
SL−2モデルでは、物理揮発性メモリの安全区分の保護は、仮想−物理変換機構、オンチップ物理メモリによって提供することができ、また、外部システム・メモリの一部である安全な物理空間の部分に対するDES暗号化によって提供することができる。SL−2モデルは、SL−1モデルと比較して、デバイス/プラットフォームの秘密鍵とプロセッサの隠し実行との両方のセキュリティ・レベルを上げることができる。外部物理メモリ中のクリティカルなコードおよびデータがすべて暗号化された形で、かつクリアな形でオンチップ物理メモリ中に保持される場合、攻撃者は、ロジック・アナライザで外部バス信号を見るだけではコードまたはデータを解読することができない。また、オンチップ・メモリへのダウンロードの保全性がチェックされる場合、ロジック・アナライザを使用して外部バス信号をドライブすることによって隠し実行の保全性を損ねることはできない。SL−2モデルはまた、秘密鍵を解読するために実装プローブおよびデバッグ・フックを使用して実装特有の状態へのアクセスを得ることに対しても、より多くの保護を与えることができる。SL−2モデルはまた、プロセッサが誤って挙動するようにして秘密データへのアクセスを得る電圧および周波数タンパ技法に対しても、追加の保護を採用することができる。
【0064】
セキュリティ・レベル3(SL−3)モデルの一実施形態は、オンチップの安全なNVメモリを提供することにより、または安全なNVメモリ区分をプロセッサ・ダイと同じパッケージ内にもってくることにより、セキュリティ・レベルをSL−2よりも上げたものである。一実施形態では、揮発性および不揮発性メモリのいくつかは、やはりシステム・メモリおよびシステムNVメモリの一部として存在することができる。さらに、このセキュリティ・レベルは、実装デバッグ・フック、マシン・チェック・アーキテクチャ、および様々な実行タンパ技法の使用に対して、また放射線攻撃の使用に対して、より高レベルの保護を与えることもできる。実装形態によっては、イオン・ビーム攻撃を妨げるために、プロセッサおよびNVメモリ・シリコン上に、またプロセッサと安全なNVメモリ・ダイとの間の相互接続上に、保護ダイ・コーティングを施すこともできる。揮発性および不揮発性メモリの区分がシステム・リソース中にあるので、これらの実装は、少なくともSL−1レベルまでのセキュリティを与える。
【0065】
SL−3モデルの実施形態では、物理揮発性ならびにNVメモリの安全な区分の保護は、仮想−物理変換機構とオンチップ物理メモリの組合せによって行われる。このモデルは、プロセッサ記憶域内だけで秘密データに作用することにより、秘密データのプライバシーを保証する。このモデルは、SL−2モデルと比較して、デバイス/プラットフォーム秘密鍵とプロセッサ隠し実行との両方セキュリティ・レベルを上げることができる。SL−3モデルでは、隠し実行に関係するすべての記憶域を1つのパッケージ内にもってくることができる。これにより、計算エンジンと隠し実行のための記憶域との間でどんな内部信号も明るみになることはない。さらにこのモデルでは、オンチップ(または同一パッケージ)NVメモリもまた、ハードウェア再生攻撃に対して保護することができる。SL−3モデルは、実装特有プローブおよびデバッグ・フックによる秘密データのリークに対して、広範な保護を与えることができる。このモデルはまた、プロセッサを誤動作させて、場合により秘密データをクリアな形で外部バス上に書き出させることのできる様々なタンパ手法に対しても、保護を与えることができる。実装形態によっては、イオン・ビーム攻撃を用いて秘密データにアクセスすることができないように、プロセッサおよび秘密記憶領域の上に保護ダイ・コーティングを施すこともできる。
【0066】
安全なカーネル・アドレス空間内のマクロ機能
安全なカーネル・アドレス空間内に実装することのできるマクロ機能には、認証機能、鍵管理機能、埋込み検証カーネル、署名機能、検証機能、アプレット・ロード機能、暗号化保存アプレット、暗号化復元アプレット、アプレット空間中の機能呼出しがある。
【0067】
結び
本発明の実施形態は、安全なメモリ区分を使用した安全な実行のための方法および装置に関するものである。本発明は、ホスト・プロセッサのコードおよびデータを保護するための特別なセキュリティ・コプロセッサを有する従来システムに勝る、いくつかの利点を提供する。本発明は、コプロセッサが必要ないので、コスト効果がより大きい。さらに本発明は、より高性能な汎用プロセッサ中でセキュリティ・コードを実行することができるので、より高性能な解決法である。さらに本発明は、コプロセッサ・データ転送オーバーヘッドがないので、より効率的な解決法でもある。
【0068】
本明細書では、本発明のいくつかの実施形態について具体的に図示および/または記述している。ただし、本発明の修正および変形も、本発明の趣旨および意図される範囲を逸脱することなく、以上の教示によってカバーされ、頭記の特許請求の範囲内にあることは理解されるであろう。例えば、メモリ区分は、仮想メモリ中に実装しても物理メモリ中に実装してもよい。別の例として、各実施形態は、SL−1、SL−2、SL−3のいずれかのセキュリティ・モデルに適合する特徴を含んでいればよい。
【図面の簡単な説明】
【図1】
本発明の一実施形態による、安全に実行できるコンピュータ・システムの部分ブロック図である。
【図2】
本発明の一実施形態による、安全な実行コンポーネントを有するプロセッサと、安全な区分を有するメモリとの部分ブロック図である。
【図3】
仮想メモリ区分および物理メモリ区分の部分ブロック図である。
【図4】
本発明の一実施形態による命令処理方法のフロー・チャートである。
【図5】
本発明の一実施形態による別の命令処理方法のフロー・チャートである。
Claims (19)
- i.実行ユニットと、
ii.実行ユニットに結合された安全な区分実施ロジックと、
iii.実行ユニットに結合された暗号ロジックとを備えるプロセッサ。 - 複数の安全な区分レジスタをさらに備える請求項1に記載のプロセッサ。
- 安全な区分レジスタが区分エントリ・ポイント・レジスタを含む請求項2に記載のプロセッサ。
- 暗号ロジックに結合されたアドレス変換バッファをさらに備え、安全な区分実施ロジックが実行ユニットとアドレス変換バッファとの間に結合された請求項3に記載のプロセッサ。
- i.第1のメモリと、
ii.第1のメモリに結合されたプロセッサであって、仮想メモリ位置の区分を確立するための安全な区分実施ロジックを含むプロセッサとを備えるコンピュータ・システム。 - プロセッサがさらに暗号ロジックを含む請求項5に記載のコンピュータ・システム。
- 不揮発性メモリをさらに備え、安全な区分ロジックがさらに、不揮発性メモリ中に安全なメモリ位置区分を確立する請求項6に記載のコンピュータ・システム。
- 不揮発性メモリが検証実施命令を記憶し、プロセッサがさらに、検証実施命令の信憑性を検証するためのブートストラップ・セキュリティ・ロジックを含む請求項6に記載のコンピュータ・システム。
- プロセッサがさらに、区分エントリ・ポイントを第1のメモリに記憶するための区分エントリ・ポイント・レジスタを含む請求項6に記載のコンピュータ・システム。
- i.命令を実行する前に命令を調べること、および
ii.命令が仮想メモリ中の位置区分内の位置への未許可アクセスであるときは、命令を実行しないと決定することを含む命令処理方法。 - 命令を実行しないとする前記決定がさらに、トラップ・ハンドラにトラップすることを含む請求項10に記載の方法。
- 命令が区分内の位置にあるデータに作用するものであり、
命令が区分内に記憶されていないときは、命令は未許可アクセスである請求項10に記載の方法。 - 命令が区分外の位置からの分岐であり、分岐が区分内の位置への分岐であり、分岐が区分エントリ・ポイントへの分岐でないときは、命令は未許可アクセスである請求項10に記載の方法。
- 命令が区分エントリ・ポイントに記憶されておらず、前に実行された命令が区分の開始の直前の命令であったときもまた、命令は未許可アクセスである請求項13に記載の方法。
- i.命令が区分内のある位置から区分内の別の位置に分岐するときは、命令を実行すること、および
ii.命令が区分外の位置から区分エントリ・ポイントに分岐するときは、命令を実行することをさらに含む請求項14に記載の方法。 - i.暗号化された命令をメモリ中の安全な区分からプロセッサに読み込むこと、
ii.読み込んだ命令を暗号化解除すること、および
iii.暗号化解除した命令を実行することを含む命令処理方法。 - 暗号化解除した命令を実行することが、
i.命令が安全な区分からデータを読み取る命令であるかどうかを決定すること、および
ii.命令が安全な区分からデータを読み取る命令である場合は、安全な区分からデータを読み取って、読み取ったデータを暗号化解除することを含む請求項16に記載の方法。 - 暗号化解除した命令を実行することが、
i.命令が安全な区分中の位置にデータを書き込む命令であるかどうかを決定すること、および
ii.命令が安全な区分中にデータを書き込む命令である場合は、データを暗号化して、安全な区分中の位置にデータを書き込むことを含む請求項16に記載の方法。 - 命令が安全な区分からデータを読み取る命令であるかどうかの前記決定が、データの仮想アドレスを安全な区分の境界と比較することを含む請求項17に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/608,439 US6986052B1 (en) | 2000-06-30 | 2000-06-30 | Method and apparatus for secure execution using a secure memory partition |
PCT/US2001/018447 WO2002003208A2 (en) | 2000-06-30 | 2001-06-07 | Method and apparatus for secure execution using a secure memory partition |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011234826A Division JP5249399B2 (ja) | 2000-06-30 | 2011-10-26 | 安全なメモリ区分を使用した安全な実行のための方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004523015A true JP2004523015A (ja) | 2004-07-29 |
JP2004523015A5 JP2004523015A5 (ja) | 2005-02-17 |
Family
ID=24436506
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002508208A Pending JP2004523015A (ja) | 2000-06-30 | 2001-06-07 | 安全なメモリ区分を使用した安全な実行のための方法および装置 |
JP2011234826A Expired - Lifetime JP5249399B2 (ja) | 2000-06-30 | 2011-10-26 | 安全なメモリ区分を使用した安全な実行のための方法および装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011234826A Expired - Lifetime JP5249399B2 (ja) | 2000-06-30 | 2011-10-26 | 安全なメモリ区分を使用した安全な実行のための方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (13) | US6986052B1 (ja) |
EP (1) | EP1314091A2 (ja) |
JP (2) | JP2004523015A (ja) |
CN (1) | CN100350394C (ja) |
AU (1) | AU2001269759A1 (ja) |
TW (1) | TW552505B (ja) |
WO (1) | WO2002003208A2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005338942A (ja) * | 2004-05-24 | 2005-12-08 | Freescale Semiconductor Inc | レジスタユニット |
JP2009508259A (ja) * | 2005-09-12 | 2009-02-26 | マイクロソフト コーポレーション | 処理ユニット封入型オペレーティングシステム |
JP2010525456A (ja) * | 2007-04-20 | 2010-07-22 | モトローラ・インコーポレイテッド | 書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス |
JP2013008220A (ja) * | 2011-06-24 | 2013-01-10 | Brother Ind Ltd | デバイス制御システム及びプログラム |
JP2015508527A (ja) * | 2011-12-21 | 2015-03-19 | インテル・コーポレーション | 安全なダイレクトメモリアクセス |
JP2016167275A (ja) * | 2016-03-24 | 2016-09-15 | インテル・コーポレーション | 安全なダイレクトメモリアクセス |
JP2018526691A (ja) * | 2015-08-31 | 2018-09-13 | ニューマン エイチ−アール コンピュータ デザイン,エルエルシーNewman H−R Computer Design,Llc | ハッキング耐性のあるコンピュータ設計 |
JP2019122030A (ja) * | 2018-01-02 | 2019-07-22 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | コード署名の条件付き規定に基づくセキュアクライアント認証 |
Families Citing this family (239)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986052B1 (en) | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7448079B2 (en) * | 2000-07-05 | 2008-11-04 | Ernst & Young, Llp | Method and apparatus for providing computer services |
GB2371125A (en) * | 2001-01-13 | 2002-07-17 | Secr Defence | Computer protection system |
US7925894B2 (en) | 2001-07-25 | 2011-04-12 | Seagate Technology Llc | System and method for delivering versatile security, digital rights management, and privacy services |
US20060174352A1 (en) * | 2001-07-25 | 2006-08-03 | Seagate Technology Llc | Method and apparatus for providing versatile services on storage devices |
FI115257B (fi) * | 2001-08-07 | 2005-03-31 | Nokia Corp | Menetelmä informaation käsittelemiseksi elektroniikkalaitteessa, järjestelmä, elektroniikkalaite ja suoritinlohko |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US20030196096A1 (en) * | 2002-04-12 | 2003-10-16 | Sutton James A. | Microcode patch authentication |
US8074081B2 (en) * | 2002-04-15 | 2011-12-06 | Infineon Technologies Ag | Method for replacing contents of a data storage unit |
WO2003090074A2 (en) * | 2002-04-18 | 2003-10-30 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
US20030226014A1 (en) * | 2002-05-31 | 2003-12-04 | Schmidt Rodney W. | Trusted client utilizing security kernel under secure execution mode |
US7266658B2 (en) * | 2002-09-12 | 2007-09-04 | International Business Machines Corporation | System, method, and computer program product for prohibiting unauthorized access to protected memory regions |
US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
GB2411027B (en) | 2002-11-18 | 2006-03-15 | Advanced Risc Mach Ltd | Control of access to a memory by a device |
US7586855B1 (en) * | 2002-12-05 | 2009-09-08 | Cisco Technology, Inc. | System and method to detect non-native storage components to manage configuration in a communications network |
US8892878B2 (en) * | 2003-05-09 | 2014-11-18 | Oracle America, Inc. | Fine-grained privileges in operating system partitions |
US7725740B2 (en) * | 2003-05-23 | 2010-05-25 | Nagravision S.A. | Generating a root key for decryption of a transmission key allowing secure communications |
US7681046B1 (en) | 2003-09-26 | 2010-03-16 | Andrew Morgan | System with secure cryptographic capabilities using a hardware specific digital secret |
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 |
US7450959B2 (en) * | 2003-12-31 | 2008-11-11 | Qualcomm Incorporated | Wireless multiprocessor system-on-chip with unified memory and fault inhibitor |
US20050198461A1 (en) * | 2004-01-12 | 2005-09-08 | Shaw Mark E. | Security measures in a partitionable computing system |
CN100419626C (zh) * | 2004-04-02 | 2008-09-17 | 松下电器产业株式会社 | 执行以面向对象语言制作的应用程序的执行装置 |
EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
WO2006005773A1 (es) * | 2004-06-09 | 2006-01-19 | Microelectronica Española, S.A.U | Método y dispositivo para la compartición de información entre parcelas de memoria de entornos de recursos limitados |
US7475431B2 (en) * | 2004-06-10 | 2009-01-06 | International Business Machines Corporation | Using security levels to improve permission checking performance and manageability |
US7549174B1 (en) * | 2004-07-27 | 2009-06-16 | Sun Microsystems, Inc. | Multi-file cryptographic keystore |
US8332653B2 (en) * | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
JP4794269B2 (ja) * | 2004-11-08 | 2011-10-19 | パナソニック株式会社 | セキュアデバイスおよび中継端末 |
DE112005002949T5 (de) * | 2004-11-24 | 2007-12-27 | Discretix Technologies Ltd. | System, Verfahren und Vorrichtung zur Sicherung eines Betriebssystems |
US7603562B2 (en) | 2005-02-02 | 2009-10-13 | Insyde Software Corporation | System and method for reducing memory requirements of firmware |
KR100670005B1 (ko) * | 2005-02-23 | 2007-01-19 | 삼성전자주식회사 | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 |
CN100334519C (zh) * | 2005-03-23 | 2007-08-29 | 联想(北京)有限公司 | 建立可信输入输出通道的方法 |
US8619971B2 (en) * | 2005-04-01 | 2013-12-31 | Microsoft Corporation | Local secure service partitions for operating system security |
US7930738B1 (en) * | 2005-06-02 | 2011-04-19 | Adobe Systems Incorporated | Method and apparatus for secure execution of code |
US8037474B2 (en) | 2005-09-27 | 2011-10-11 | Sony Computer Entertainment Inc. | Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution |
US20070074046A1 (en) * | 2005-09-23 | 2007-03-29 | Czajkowski David R | Secure microprocessor and method |
US20100191959A1 (en) * | 2005-09-23 | 2010-07-29 | Space Micro Inc. | Secure microprocessor and method |
US8141076B2 (en) | 2005-09-27 | 2012-03-20 | Sony Computer Entertainment Inc. | Cell processor methods and apparatus |
US7734827B2 (en) | 2005-09-27 | 2010-06-08 | Sony Computer Entertainment, Inc. | Operation of cell processors |
US8316220B2 (en) | 2005-09-27 | 2012-11-20 | Sony Computer Entertainment Inc. | Operating processors over a network |
US7975269B2 (en) | 2005-09-27 | 2011-07-05 | Sony Computer Entertainment Inc. | Parallel processor methods and apparatus |
WO2007040228A1 (ja) * | 2005-10-04 | 2007-04-12 | Nec Corporation | 情報処理装置、情報処理方法およびプログラム |
US7496727B1 (en) | 2005-12-06 | 2009-02-24 | Transmeta Corporation | Secure memory access system and method |
US8595747B2 (en) | 2005-12-29 | 2013-11-26 | Sony Computer Entertainment Inc. | Efficient task scheduling by assigning fixed registers to scheduler |
US7594101B2 (en) * | 2006-02-06 | 2009-09-22 | Stmicroelectronics S.A. | Secure digital processing unit and method for protecting programs |
US20070234330A1 (en) * | 2006-03-01 | 2007-10-04 | Microsoft Corporation | Prevention of executable code modification |
US8429724B2 (en) * | 2006-04-25 | 2013-04-23 | Seagate Technology Llc | Versatile access control system |
US8028166B2 (en) * | 2006-04-25 | 2011-09-27 | Seagate Technology Llc | Versatile secure and non-secure messaging |
US7539890B2 (en) * | 2006-04-25 | 2009-05-26 | Seagate Technology Llc | Hybrid computer security clock |
EP2013809B1 (en) * | 2006-05-01 | 2018-11-21 | MediaTek Inc. | Method and apparatus for secure context switching in a system including a processor and cached virtual memory |
US20070297606A1 (en) * | 2006-06-27 | 2007-12-27 | Tkacik Thomas E | Multiple key security and method for electronic devices |
US8108670B2 (en) * | 2006-07-13 | 2012-01-31 | Intel Corporation | Client apparatus and method with key manager |
US20080028180A1 (en) * | 2006-07-31 | 2008-01-31 | Newman Alex P | Inappropriate access detector based on system segmentation faults |
US7950001B2 (en) * | 2006-09-08 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for instrumentation in a multiprocessing environment |
US9860274B2 (en) | 2006-09-13 | 2018-01-02 | Sophos Limited | Policy management |
KR20080029687A (ko) * | 2006-09-29 | 2008-04-03 | 한국전자통신연구원 | 암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 |
WO2008045824A2 (en) * | 2006-10-09 | 2008-04-17 | Texas Instruments Incorporated | Monitor mode integrity verification |
US8185952B2 (en) * | 2007-01-03 | 2012-05-22 | Texas Instruments Incorporated | Static and dynamic firewalls |
US8296581B2 (en) * | 2007-02-05 | 2012-10-23 | Infineon Technologies Ag | Secure processor arrangement having shared memory |
US8561204B1 (en) | 2007-02-12 | 2013-10-15 | Gregory William Dalcher | System, method, and computer program product for utilizing code stored in a protected area of memory for securing an associated system |
US8069279B2 (en) | 2007-03-05 | 2011-11-29 | Apple Inc. | Data flow control within and between DMA channels |
US8276201B2 (en) * | 2007-03-22 | 2012-09-25 | International Business Machines Corporation | Integrity protection in data processing systems |
US20080240230A1 (en) * | 2007-03-29 | 2008-10-02 | Horizon Semiconductors Ltd. | Media processor with an integrated TV receiver |
DE602007012519D1 (de) * | 2007-04-05 | 2011-03-31 | St Microelectronics Res & Dev | Integrierte Schaltung mit beschränktem Datenzugang |
US20090328238A1 (en) * | 2007-06-29 | 2009-12-31 | David Duncan Ridewood Glendinning | Disabling encrypted data |
US8375449B1 (en) | 2007-08-10 | 2013-02-12 | Fortinet, Inc. | Circuits and methods for operating a virus co-processor |
US8079084B1 (en) | 2007-08-10 | 2011-12-13 | Fortinet, Inc. | Virus co-processor instructions and methods for using such |
US8286246B2 (en) * | 2007-08-10 | 2012-10-09 | Fortinet, Inc. | Circuits and methods for efficient data transfer in a virus co-processing system |
US20090119744A1 (en) * | 2007-11-01 | 2009-05-07 | Microsoft Corporation | Device component roll back protection scheme |
US8607034B2 (en) * | 2008-05-24 | 2013-12-10 | Via Technologies, Inc. | Apparatus and method for disabling a microprocessor that provides for a secure execution mode |
US8819839B2 (en) * | 2008-05-24 | 2014-08-26 | Via Technologies, Inc. | Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels |
US8478973B2 (en) * | 2008-05-30 | 2013-07-02 | Infineon Technologies Ag | System and method for providing a secure application fragmentation environment |
US8521967B1 (en) * | 2008-06-24 | 2013-08-27 | Virident Systems, Inc. | Network computing systems having shared memory clouds with addresses of disk-read-only memories mapped into processor address spaces |
US9513695B2 (en) | 2008-06-24 | 2016-12-06 | Virident Systems, Inc. | Methods of managing power in network computer systems |
US9286080B2 (en) * | 2008-07-02 | 2016-03-15 | Hewlett-Packard Development Company, L.P. | Memory management for hypervisor loading |
EP2151763A1 (en) * | 2008-07-28 | 2010-02-10 | Nagravision S.A. | Method and apparatus for obfuscating virtual to physical memory mapping |
US8484486B2 (en) * | 2008-08-06 | 2013-07-09 | Silver Spring Networks, Inc. | Integrated cryptographic security module for a network node |
US8843742B2 (en) * | 2008-08-26 | 2014-09-23 | Hewlett-Packard Company | Hypervisor security using SMM |
US8281169B2 (en) * | 2008-08-27 | 2012-10-02 | Wireless Silicon Group, Inc. | Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM) |
US20100070776A1 (en) * | 2008-09-17 | 2010-03-18 | Shankar Raman | Logging system events |
DE102008048066B4 (de) | 2008-09-19 | 2018-02-01 | Texas Instruments Deutschland Gmbh | Zugriffssteuerschaltung zur Verwendung mit einer Überwachungs-Logikschaltungsanordnung in einem Verfahren zum Schutz von Software für eingebettete Anwendungen vor unerlaubtem Zugriff |
US8132267B2 (en) | 2008-09-30 | 2012-03-06 | Intel Corporation | Apparatus and method to harden computer system |
US20100083365A1 (en) * | 2008-09-30 | 2010-04-01 | Naga Gurumoorthy | Apparatus and method to harden computer system |
US8266708B2 (en) * | 2008-12-09 | 2012-09-11 | Broadlands Technologies Llc | Privacy protection system |
US8844024B1 (en) * | 2009-03-23 | 2014-09-23 | Symantec Corporation | Systems and methods for using tiered signing certificates to manage the behavior of executables |
US8286004B2 (en) * | 2009-10-09 | 2012-10-09 | Lsi Corporation | Saving encryption keys in one-time programmable memory |
US9588803B2 (en) | 2009-05-11 | 2017-03-07 | Microsoft Technology Licensing, Llc | Executing native-code applications in a browser |
US8219772B2 (en) | 2009-07-02 | 2012-07-10 | Stmicroelectronics (Research & Development) Limited | Loading secure code into a memory |
US9495190B2 (en) * | 2009-08-24 | 2016-11-15 | Microsoft Technology Licensing, Llc | Entropy pools for virtual machines |
FR2955189B1 (fr) | 2009-11-12 | 2012-03-09 | St Microelectronics Rousset | Procede securise de traitement d'un contenu memorise au sein d'un composant, et composant correspondant |
US8510569B2 (en) * | 2009-12-16 | 2013-08-13 | Intel Corporation | Providing integrity verification and attestation in a hidden execution environment |
GB2482811B (en) * | 2009-12-16 | 2017-07-05 | Intel Corp | Providing integrity verification and attestation in a hidden execution environment |
WO2011082082A1 (en) * | 2009-12-31 | 2011-07-07 | Psi Systems, Inc. | System and method for securing data |
US9323921B2 (en) | 2010-07-13 | 2016-04-26 | Microsoft Technology Licensing, Llc | Ultra-low cost sandboxing for application appliances |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8468365B2 (en) * | 2010-09-24 | 2013-06-18 | Intel Corporation | Tweakable encryption mode for memory encryption with protection against replay attacks |
CN101989242B (zh) * | 2010-11-12 | 2013-06-12 | 深圳国微技术有限公司 | 一种提高soc系统安全的总线监视器及其实现方法 |
US8819225B2 (en) | 2010-11-15 | 2014-08-26 | George Mason Research Foundation, Inc. | Hardware-assisted integrity monitor |
US8495323B1 (en) * | 2010-12-07 | 2013-07-23 | Symantec Corporation | Method and system of providing exclusive and secure access to virtual storage objects in a virtual machine cluster |
US8903705B2 (en) | 2010-12-17 | 2014-12-02 | Microsoft Corporation | Application compatibility shims for minimal client computers |
CN102541673A (zh) * | 2010-12-27 | 2012-07-04 | 北京中电华大电子设计有限责任公司 | 一种cpu取指令异常的安全处理方法和电路 |
WO2012127266A1 (en) | 2011-03-23 | 2012-09-27 | Sandisk Il Ltd. | Storage device and method for updating data in a partition of the storage device |
US20120254526A1 (en) * | 2011-03-28 | 2012-10-04 | Advanced Micro Devices, Inc. | Routing, security and storage of sensitive data in random access memory (ram) |
US8495386B2 (en) * | 2011-04-05 | 2013-07-23 | Mcafee, Inc. | Encryption of memory device with wear leveling |
US8745408B2 (en) * | 2011-04-08 | 2014-06-03 | Infineon Technologies Ag | Instruction encryption/decryption arrangement and method with iterative encryption/decryption key update |
US8756434B2 (en) * | 2011-04-08 | 2014-06-17 | Apple Inc. | System and method for executing an encrypted binary from a memory pool |
US8914876B2 (en) | 2011-05-05 | 2014-12-16 | Ebay Inc. | System and method for transaction security enhancement |
US9495183B2 (en) | 2011-05-16 | 2016-11-15 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
US9298910B2 (en) | 2011-06-08 | 2016-03-29 | Mcafee, Inc. | System and method for virtual partition monitoring |
US9471373B2 (en) | 2011-09-24 | 2016-10-18 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9298918B2 (en) | 2011-11-30 | 2016-03-29 | Elwha Llc | Taint injection and tracking |
US9460290B2 (en) | 2011-07-19 | 2016-10-04 | Elwha Llc | Conditional security response using taint vector monitoring |
US8955111B2 (en) | 2011-09-24 | 2015-02-10 | Elwha Llc | Instruction set adapted for security risk monitoring |
US8813085B2 (en) | 2011-07-19 | 2014-08-19 | Elwha Llc | Scheduling threads based on priority utilizing entitlement vectors, weight and usage level |
US8930714B2 (en) | 2011-07-19 | 2015-01-06 | Elwha Llc | Encrypted memory |
US9798873B2 (en) * | 2011-08-04 | 2017-10-24 | Elwha Llc | Processor operable to ensure code integrity |
US9443085B2 (en) | 2011-07-19 | 2016-09-13 | Elwha Llc | Intrusion detection using taint accumulation |
US9558034B2 (en) | 2011-07-19 | 2017-01-31 | Elwha Llc | Entitlement vector for managing resource allocation |
US9170843B2 (en) | 2011-09-24 | 2015-10-27 | Elwha Llc | Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement |
US9575903B2 (en) | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
US9465657B2 (en) | 2011-07-19 | 2016-10-11 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9098608B2 (en) | 2011-10-28 | 2015-08-04 | Elwha Llc | Processor configured to allocate resources using an entitlement vector |
US20130061328A1 (en) * | 2011-09-06 | 2013-03-07 | Broadcom Corporation | Integrity checking system |
US9489541B2 (en) * | 2011-09-09 | 2016-11-08 | Nvidia Corporation | Content protection via online servers and code execution in a secure operating system |
JP5796447B2 (ja) * | 2011-10-07 | 2015-10-21 | 株式会社リコー | 情報処理装置、正当性検証方法、正当性検証プログラム |
CN102521166B (zh) * | 2011-12-05 | 2015-02-11 | 晶门科技(深圳)有限公司 | 信息安全协处理器及其内部存储空间的管理方法 |
US9389933B2 (en) * | 2011-12-12 | 2016-07-12 | Microsoft Technology Licensing, Llc | Facilitating system service request interactions for hardware-protected applications |
US9413538B2 (en) | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
US9208319B2 (en) | 2011-12-15 | 2015-12-08 | Microsoft Technology Licensing, Llc | Code base partitioning system |
WO2013089739A1 (en) * | 2011-12-15 | 2013-06-20 | Intel Corporation | Secure debug trace messages for production authenticated code modules |
US9286245B2 (en) * | 2011-12-30 | 2016-03-15 | Intel Corporation | Hardware enforced memory access permissions |
US8751830B2 (en) | 2012-01-23 | 2014-06-10 | International Business Machines Corporation | Memory address translation-based data encryption/compression |
US8954755B2 (en) * | 2012-01-23 | 2015-02-10 | International Business Machines Corporation | Memory address translation-based data encryption with integrated encryption engine |
KR101897605B1 (ko) * | 2012-02-24 | 2018-09-12 | 삼성전자 주식회사 | 휴대 단말기의 무결성 보호 방법 및 장치 |
KR101869059B1 (ko) | 2012-02-28 | 2018-06-20 | 삼성전자주식회사 | 저장 장치 및 그것의 메모리 컨트롤러 |
GB2500074B (en) * | 2012-07-09 | 2014-08-20 | Ultrasoc Technologies Ltd | Debug architecture |
US9927486B2 (en) | 2012-07-09 | 2018-03-27 | Ultrasoc Technologies Ltd. | Debug architecture |
US9378572B2 (en) | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9135446B2 (en) * | 2012-09-28 | 2015-09-15 | Intel Corporation | Systems and methods to provide secure storage |
JP2014089652A (ja) | 2012-10-31 | 2014-05-15 | Toshiba Corp | 情報処理装置 |
US9092617B2 (en) | 2012-11-08 | 2015-07-28 | Intel Corporation | Protecting systems from unauthorized access to system resources using browser independent web page technology |
KR102139327B1 (ko) | 2012-11-15 | 2020-07-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법 |
KR20140073384A (ko) * | 2012-12-06 | 2014-06-16 | 삼성전자주식회사 | 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 |
US9881161B2 (en) | 2012-12-06 | 2018-01-30 | S-Printing Solution Co., Ltd. | System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof |
US9244840B2 (en) | 2012-12-12 | 2016-01-26 | International Business Machines Corporation | Cache swizzle with inline transposition |
US20140173392A1 (en) * | 2012-12-19 | 2014-06-19 | Advanced Micro Devices, Inc. | Hardware enforced protection of software data structures |
US8935781B1 (en) | 2013-02-01 | 2015-01-13 | Google Inc. | Native code module security for arm 64-bit instruction set architectures |
US9158942B2 (en) | 2013-02-11 | 2015-10-13 | Intel Corporation | Securing display output data against malicious software attacks |
US8931108B2 (en) * | 2013-02-18 | 2015-01-06 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
TWI498737B (zh) * | 2013-03-29 | 2015-09-01 | Mstar Semiconductor Inc | 用於主機板控制模組之除錯權限判斷方法及相關主機板控制模組 |
US9396360B2 (en) * | 2013-06-27 | 2016-07-19 | Advanced Micro Devices, Inc. | System and method for secure control over performance state |
US10061940B2 (en) | 2013-07-09 | 2018-08-28 | Andes Technology Corporation | Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event |
KR102167393B1 (ko) * | 2013-08-16 | 2020-10-19 | 삼성전자 주식회사 | 메모리 공유 환경에서 데이터 무결성 감시 장치 및 방법 |
JP6117068B2 (ja) * | 2013-09-20 | 2017-04-19 | 株式会社東芝 | 情報処理装置、およびプログラム |
KR102183852B1 (ko) * | 2013-11-22 | 2020-11-30 | 삼성전자주식회사 | 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치 |
US9436823B1 (en) * | 2013-12-17 | 2016-09-06 | Google Inc. | System and method for detecting malicious code |
KR101802806B1 (ko) * | 2013-12-17 | 2017-11-29 | 인텔 코포레이션 | 커널 모드 애플리케이션에 의한 사용을 위한 보안 엔클레이브 |
US9448950B2 (en) * | 2013-12-24 | 2016-09-20 | Intel Corporation | Using authenticated manifests to enable external certification of multi-processor platforms |
US9389793B2 (en) * | 2014-03-06 | 2016-07-12 | Freescale Semiconductor, Inc. | Trusted execution and access protection for embedded memory |
US10615967B2 (en) | 2014-03-20 | 2020-04-07 | Microsoft Technology Licensing, Llc | Rapid data protection for storage devices |
US9607178B2 (en) | 2014-03-20 | 2017-03-28 | Qualcomm Incorporated | Protection against key tampering |
US9372996B2 (en) | 2014-05-15 | 2016-06-21 | International Business Machines Corporation | Protecting data owned by an operating system in a multi-operating system mobile environment |
US9678760B2 (en) | 2014-08-01 | 2017-06-13 | Samsung Electronics Co., Ltd. | Memory card and storage system having authentication program and method for operating thereof |
CN104268448B (zh) * | 2014-10-11 | 2017-06-27 | 中颖电子股份有限公司 | 采用快闪存储器的微处理器的程序代码保护方法 |
US9767324B2 (en) * | 2014-11-22 | 2017-09-19 | Intel Corporation | Transparent execution of secret content |
US9703720B2 (en) * | 2014-12-23 | 2017-07-11 | Intel Corporation | Method and apparatus to allow secure guest access to extended page tables |
US9904803B2 (en) | 2015-03-25 | 2018-02-27 | Intel Corporation | Technologies for hardening data encryption with secure enclaves |
US9959418B2 (en) | 2015-07-20 | 2018-05-01 | Intel Corporation | Supporting configurable security levels for memory address ranges |
JP2017033149A (ja) * | 2015-07-30 | 2017-02-09 | 株式会社東芝 | 情報処理装置、コントローラ、及び、情報処理装置の制御方法 |
US9767320B2 (en) | 2015-08-07 | 2017-09-19 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
US10102391B2 (en) | 2015-08-07 | 2018-10-16 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
US10235303B2 (en) * | 2015-09-10 | 2019-03-19 | Qualcomm Incorporated | Secure entry and exit for software modules protected by controlled encryption key management |
US9870466B2 (en) | 2015-09-26 | 2018-01-16 | Mcafee, Inc. | Hardware-enforced code paths |
US10546131B2 (en) * | 2015-10-22 | 2020-01-28 | Mcafee, Llc | End-point visibility |
DE102016105936A1 (de) * | 2015-12-14 | 2017-06-14 | Lenovo (Beijing) Limited | Electronic device and method for running applications in different security environments |
US10102370B2 (en) | 2015-12-21 | 2018-10-16 | Intel Corporation | Techniques to enable scalable cryptographically protected memory using on-chip memory |
CN108292340A (zh) * | 2016-02-19 | 2018-07-17 | 惠普发展公司,有限责任合伙企业 | 在运行时间期间向安全数据存储设备安全地写入数据 |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
JP7186163B2 (ja) | 2016-04-14 | 2022-12-08 | シークエント ソフトウェア、インコーポレイテッド | ポータブル電子デバイスと関連したデジタルシークレットの生成、格納、管理および使用のためのシステムおよび方法 |
US20180004946A1 (en) * | 2016-07-01 | 2018-01-04 | Intel Corporation | Regulating control transfers for execute-only code execution |
US10261919B2 (en) * | 2016-07-08 | 2019-04-16 | Hewlett Packard Enterprise Development Lp | Selective memory encryption |
CN105978913A (zh) * | 2016-07-15 | 2016-09-28 | 柳州健科技有限公司 | 网络服务系统 |
CN106060081A (zh) * | 2016-07-16 | 2016-10-26 | 柳州健科技有限公司 | 具有数据监控功能的网络服务平台 |
CN106060083A (zh) * | 2016-07-16 | 2016-10-26 | 柳州健科技有限公司 | 具有数据监控功能的网络服务系统 |
CN106101024A (zh) * | 2016-07-16 | 2016-11-09 | 柳州健科技有限公司 | 具有数据监控功能的局域网络数据系统 |
CN106060082A (zh) * | 2016-07-16 | 2016-10-26 | 柳州健科技有限公司 | 基于局域网的具有数据监控功能的网络服务平台 |
US10721067B2 (en) * | 2016-08-10 | 2020-07-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Secure processor for multi-tenant cloud workloads |
US10389693B2 (en) * | 2016-08-23 | 2019-08-20 | Hewlett Packard Enterprise Development Lp | Keys for encrypted disk partitions |
US20180081830A1 (en) * | 2016-09-20 | 2018-03-22 | Advanced Micro Devices, Inc. | Hardware supervision of page tables |
US10528485B2 (en) * | 2016-09-30 | 2020-01-07 | Intel Corporation | Method and apparatus for sharing security metadata memory space |
US10855465B2 (en) | 2016-11-10 | 2020-12-01 | Ernest Brickell | Audited use of a cryptographic key |
US10498712B2 (en) | 2016-11-10 | 2019-12-03 | Ernest Brickell | Balancing public and personal security needs |
US11405201B2 (en) | 2016-11-10 | 2022-08-02 | Brickell Cryptology Llc | Secure transfer of protected application storage keys with change of trusted computing base |
US11398906B2 (en) | 2016-11-10 | 2022-07-26 | Brickell Cryptology Llc | Confirming receipt of audit records for audited use of a cryptographic key |
US10394711B2 (en) * | 2016-11-30 | 2019-08-27 | International Business Machines Corporation | Managing lowest point of coherency (LPC) memory using a service layer adapter |
KR20180066601A (ko) * | 2016-12-09 | 2018-06-19 | 삼성전자주식회사 | 메모리 시스템의 구동 방법 |
CN106650499A (zh) * | 2016-12-28 | 2017-05-10 | 江苏神州信源系统工程有限公司 | 一种基于安卓系统的外部数据安全保护方法 |
US10223531B2 (en) | 2016-12-30 | 2019-03-05 | Google Llc | Secure device state apparatus and method and lifecycle management |
US10417433B2 (en) | 2017-01-24 | 2019-09-17 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Encryption and decryption of data owned by a guest operating system |
WO2018151735A1 (en) * | 2017-02-20 | 2018-08-23 | Newman H-R Computer Design, LLC | Hacking-resistant computer design |
US10652245B2 (en) | 2017-05-04 | 2020-05-12 | Ernest Brickell | External accessibility for network devices |
US10348706B2 (en) | 2017-05-04 | 2019-07-09 | Ernest Brickell | Assuring external accessibility for devices on a network |
CN109308163A (zh) * | 2017-07-26 | 2019-02-05 | 英业达科技有限公司 | 非挥发性记忆体磁区规划方法 |
US10482289B2 (en) * | 2017-08-24 | 2019-11-19 | Qualcomm Incorporated | Computing device to provide access control to a hardware resource |
US10885211B2 (en) | 2017-09-12 | 2021-01-05 | Sophos Limited | Securing interprocess communications |
KR102416501B1 (ko) * | 2017-09-20 | 2022-07-05 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
US10116436B1 (en) * | 2017-09-26 | 2018-10-30 | Intel Corporation | Techniques for preventing memory timing attacks |
US10754580B2 (en) * | 2017-10-23 | 2020-08-25 | Micron Technology, Inc. | Virtual partition management in a memory device |
US10318438B1 (en) * | 2017-12-07 | 2019-06-11 | Nuvoton Technology Corporation | Secure memory access using memory read restriction |
US10970390B2 (en) * | 2018-02-15 | 2021-04-06 | Intel Corporation | Mechanism to prevent software side channels |
IL258368B2 (en) | 2018-03-26 | 2024-04-01 | Kazuar Advanced Tech Ltd | Secure computer system |
US10649911B2 (en) * | 2018-03-29 | 2020-05-12 | Intel Corporation | Supporting memory paging in virtualized systems using trust domains |
CN110490008B (zh) * | 2018-05-14 | 2021-08-10 | 英韧科技(上海)有限公司 | 安全装置及安全芯片 |
US11030112B2 (en) | 2018-05-25 | 2021-06-08 | Red Hat, Inc. | Enhanced address space layout randomization |
CN110569205A (zh) * | 2018-06-06 | 2019-12-13 | 旭景科技股份有限公司 | 安全系统单芯片及其操作方法 |
DE102018213618A1 (de) * | 2018-06-20 | 2019-12-24 | Robert Bosch Gmbh | Kryptografiemodul und Betriebsverfahren hierfür |
EP3811264A4 (en) | 2018-06-24 | 2022-03-02 | Hex Five Security, Inc. | CONFIGURATION, ENFORCEMENT AND MONITORING THE SEPARATION OF TRUSTED EXECUTION ENVIRONMENTS |
US11741196B2 (en) | 2018-11-15 | 2023-08-29 | The Research Foundation For The State University Of New York | Detecting and preventing exploits of software vulnerability using instruction tags |
EP3794477B1 (en) * | 2019-01-04 | 2023-05-10 | Baidu.com Times Technology (Beijing) Co., Ltd. | Method and system for validating kernel objects to be executed by a data processing accelerator of a host system |
US11063747B2 (en) * | 2019-03-25 | 2021-07-13 | Micron Technology, Inc. | Secure monitoring using block chain |
EP3915031B1 (en) | 2019-04-30 | 2023-09-27 | Hewlett-Packard Development Company, L.P. | System management memory coherency detection |
TWI693600B (zh) | 2019-05-08 | 2020-05-11 | 慧榮科技股份有限公司 | 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 |
US11372780B2 (en) | 2019-05-30 | 2022-06-28 | Synaptics Incorporated | Granular access control for secure memory |
CN110348204B (zh) * | 2019-06-17 | 2023-05-16 | 海光信息技术股份有限公司 | 一种代码保护系统、认证方法、装置、芯片及电子设备 |
US11645425B2 (en) | 2019-07-03 | 2023-05-09 | Beyond Semiconductor, d.o.o. | Systems and methods for data-driven secure and safe computing |
FR3098613A1 (fr) * | 2019-07-09 | 2021-01-15 | STMicroelectronics (Grand Ouest) SAS | Procede de gestion du fonctionnement d’au moins un logiciel applicatif chiffre et circuit integre correspondant |
CN112749397A (zh) | 2019-10-29 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 一种系统和方法 |
KR20210142820A (ko) | 2020-05-19 | 2021-11-26 | 삼성전자주식회사 | 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자 |
US11561907B2 (en) | 2020-08-18 | 2023-01-24 | Micron Technology, Inc. | Access to data stored in quarantined memory media |
US11880718B2 (en) | 2020-09-15 | 2024-01-23 | Renesas Electronics Corporation | System and method for generating secure partition regions in open and secure processor environments |
CN112380503B (zh) * | 2021-01-14 | 2021-04-30 | 北京东方通软件有限公司 | 一种保护核心程序及内存的方法 |
US11720504B2 (en) * | 2021-04-15 | 2023-08-08 | Apple Inc. | Secure storage of datasets in a thread network device |
US11709786B2 (en) * | 2021-04-29 | 2023-07-25 | Renesas Electronic Corporation | Device and method of secure decryption by virtualization and translation of physical encryption keys |
WO2024043935A1 (en) * | 2022-08-25 | 2024-02-29 | MatterFi | Crypto currency hardware wallet |
Family Cites Families (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2258112A5 (ja) * | 1973-11-30 | 1975-08-08 | Honeywell Bull Soc Ind | |
US4238854A (en) | 1977-12-05 | 1980-12-09 | International Business Machines Corporation | Cryptographic file security for single domain networks |
JPS5781650A (en) | 1980-11-07 | 1982-05-21 | Mitsubishi Electric Corp | Data processor |
JPS5783850A (en) | 1980-11-12 | 1982-05-25 | Mitsubishi Electric Corp | Data processing device |
US4573119A (en) * | 1983-07-11 | 1986-02-25 | Westheimer Thomas O | Computer software protection system |
ZA857137B (en) | 1984-09-21 | 1986-04-30 | Int Computers Ltd | Data transfer system |
US5146575A (en) * | 1986-11-05 | 1992-09-08 | International Business Machines Corp. | Implementing privilege on microprocessor systems for use in software asset protection |
JPS6421637A (en) | 1987-07-17 | 1989-01-25 | Fujitsu Ltd | Communication system between microprocessor and memory or peripheral lsi |
US5237609A (en) * | 1989-03-31 | 1993-08-17 | Mitsubishi Denki Kabushiki Kaisha | Portable secure semiconductor memory device |
US5065429A (en) * | 1989-04-03 | 1991-11-12 | Lang Gerald S | Method and apparatus for protecting material on storage media |
US4987595A (en) * | 1989-09-11 | 1991-01-22 | Motorola, Inc. | Secure cryptographic processor arrangement |
US5029206A (en) * | 1989-12-27 | 1991-07-02 | Motorola, Inc. | Uniform interface for cryptographic services |
EP0473913A3 (en) | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
JP2514292B2 (ja) * | 1991-04-25 | 1996-07-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オペランドペ―ジメモリ及び命令ペ―ジメモリを有するコンピュ―タシステム |
JPH04348434A (ja) | 1991-05-27 | 1992-12-03 | Hitachi Ltd | 仮想計算機システム |
DE4120398A1 (de) * | 1991-06-20 | 1993-01-07 | Standard Elektrik Lorenz Ag | Datenverarbeitungsanlage |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5875464A (en) * | 1991-12-10 | 1999-02-23 | International Business Machines Corporation | Computer system with private and shared partitions in cache |
US5237616A (en) * | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
EP0600112A1 (de) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff |
US5493665A (en) * | 1992-12-21 | 1996-02-20 | Base 10 Systems, Inc. | Portable memory device and method of securing the integrity of stored data therein utilizing a starting address and a stored memory cycle number |
US5870520A (en) * | 1992-12-23 | 1999-02-09 | Packard Bell Nec | Flash disaster recovery ROM and utility to reprogram multiple ROMS |
US5379342A (en) * | 1993-01-07 | 1995-01-03 | International Business Machines Corp. | Method and apparatus for providing enhanced data verification in a computer system |
US5892944A (en) | 1993-07-20 | 1999-04-06 | Kabushiki Kaisha Toshiba | Program execution and operation right management system suitable for single virtual memory scheme |
US5706407A (en) | 1993-12-28 | 1998-01-06 | Kabushiki Kaisha Toshiba | System for reallocation of memory banks in memory sized order |
US5734858A (en) * | 1994-10-24 | 1998-03-31 | Microsoft Corporation | Method and apparatus for simulating banked memory as a linear address space |
US5717942A (en) * | 1994-12-27 | 1998-02-10 | Unisys Corporation | Reset for independent partitions within a computer system |
JP2924705B2 (ja) * | 1995-04-10 | 1999-07-26 | 富士ゼロックス株式会社 | メモリ管理方法およびオブジェクト管理方法 |
US5668973A (en) | 1995-04-14 | 1997-09-16 | Ascom Hasler Mailing Systems Ag | Protection system for critical memory information |
US5675645A (en) * | 1995-04-18 | 1997-10-07 | Ricoh Company, Ltd. | Method and apparatus for securing executable programs against copying |
US5559960A (en) * | 1995-04-21 | 1996-09-24 | Lettvin; Jonathan D. | Software anti-virus facility |
JPH08305558A (ja) * | 1995-04-27 | 1996-11-22 | Casio Comput Co Ltd | 暗号化プログラム演算装置 |
US5692170A (en) * | 1995-04-28 | 1997-11-25 | Metaflow Technologies, Inc. | Apparatus for detecting and executing traps in a superscalar processor |
US5592616A (en) * | 1995-06-07 | 1997-01-07 | Dell Usa, Lp | Method for performing efficient memory testing on large memory arrays using test code executed from cache memory |
ES2357472T3 (es) | 1995-06-29 | 2011-04-26 | Igt | Sistema de juego electrónico de casino con mayor capacidad de juego, de autenticación y de seguridad. |
KR100281869B1 (ko) | 1995-07-28 | 2001-02-15 | 윤종용 | 보안 기능을 갖는 개인용 컴퓨터, 그의 보안 방법 및 그 보안 장치의 설치 및 제거방법 |
FR2739737B1 (fr) | 1995-10-09 | 1997-11-21 | Inside Technologies | Perfectionnements aux cartes a memoire |
JPH09160831A (ja) | 1995-12-08 | 1997-06-20 | Hitachi Ltd | 情報処理装置 |
JP3747520B2 (ja) * | 1996-01-30 | 2006-02-22 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理方法 |
IL117085A (en) | 1996-02-08 | 2005-07-25 | Milsys Ltd | Secure 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 |
US5845129A (en) | 1996-03-22 | 1998-12-01 | Philips Electronics North America Corporation | Protection domains in a single address space |
US5883956A (en) * | 1996-03-28 | 1999-03-16 | National Semiconductor Corporation | Dynamic configuration of a secure processing unit for operations in various environments |
US5761716A (en) * | 1996-05-01 | 1998-06-02 | International Business Machines Corporation | Rate based memory replacement mechanism for replacing cache entries when the cache is full |
US5802592A (en) * | 1996-05-31 | 1998-09-01 | International Business Machines Corporation | System and method for protecting integrity of alterable ROM using digital signatures |
US5778070A (en) * | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
US6138236A (en) * | 1996-07-01 | 2000-10-24 | Sun Microsystems, Inc. | Method and apparatus for firmware authentication |
US5841869A (en) * | 1996-08-23 | 1998-11-24 | Cheyenne Property Trust | Method and apparatus for trusted processing |
US6052780A (en) * | 1996-09-12 | 2000-04-18 | Open Security Solutions, Llc | Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information |
US5937063A (en) * | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US6029247A (en) * | 1996-12-09 | 2000-02-22 | Novell, Inc. | Method and apparatus for transmitting secured data |
US6148401A (en) | 1997-02-05 | 2000-11-14 | At&T Corp. | System and method for providing assurance to a host that a piece of software possesses a particular property |
JPH10228421A (ja) | 1997-02-14 | 1998-08-25 | Nec Ic Microcomput Syst Ltd | メモリアクセス制御回路 |
JP3558813B2 (ja) | 1997-02-28 | 2004-08-25 | 三菱電機株式会社 | 映像監視システム |
EP0970411B1 (en) | 1997-03-27 | 2002-05-15 | BRITISH TELECOMMUNICATIONS public limited company | Copy protection of data |
US5859911A (en) * | 1997-04-16 | 1999-01-12 | Compaq Computer Corp. | Method for the secure remote flashing of the BIOS of a computer |
JP3293760B2 (ja) * | 1997-05-27 | 2002-06-17 | 株式会社エヌイーシー情報システムズ | 改ざん検知機能付きコンピュータシステム |
US6064989A (en) * | 1997-05-29 | 2000-05-16 | Pitney Bowes Inc. | Synchronization of cryptographic keys between two modules of a distributed system |
US6584565B1 (en) | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
US5987572A (en) * | 1997-09-29 | 1999-11-16 | Intel Corporation | Method and apparatus employing a dynamic encryption interface between a processor and a memory |
US6003117A (en) * | 1997-10-08 | 1999-12-14 | Vlsi Technology, Inc. | Secure memory management unit which utilizes a system processor to perform page swapping |
US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
US6085296A (en) | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US5991399A (en) * | 1997-12-18 | 1999-11-23 | Intel Corporation | Method for securely distributing a conditional use private key to a trusted entity on a remote system |
US6029000A (en) | 1997-12-22 | 2000-02-22 | Texas Instruments Incorporated | Mobile communication system with cross compiler and cross linker |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6157398A (en) * | 1997-12-30 | 2000-12-05 | Micron Technology, Inc. | Method of implementing an accelerated graphics port for a multiple memory controller computer system |
US6141756A (en) | 1998-04-27 | 2000-10-31 | Motorola, Inc. | Apparatus and method of reading a program into a processor |
GB9812836D0 (en) * | 1998-06-16 | 1998-08-12 | Ncr Int Inc | Data security arrangement |
US6212633B1 (en) * | 1998-06-26 | 2001-04-03 | Vlsi Technology, Inc. | Secure data communication over a memory-mapped serial communications interface utilizing a distributed firewall |
JP4933693B2 (ja) | 1998-08-24 | 2012-05-16 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | ワイド・オペランド・アーキテクチャを含むシステムおよび方法 |
JP2000076139A (ja) | 1998-08-28 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 携帯型情報記憶媒体 |
US6378074B1 (en) * | 1998-10-05 | 2002-04-23 | Sentry Technologies Pte Ltd | Method for security partitioning of a computer system |
FI107860B (fi) * | 1999-02-09 | 2001-10-15 | Sonera Smarttrust Oy | Menetelmä ja järjestelmä tietoliikennejärjestelmässä ja tilaajaidentiteettimoduuli |
EP1030237A1 (en) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Trusted hardware device in a computer |
US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
AU4234800A (en) | 1999-04-12 | 2000-11-14 | Digital Media On Demand, Inc. (Dmod, Inc.) | Secure electronic commerce system |
EP1055989A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for digitally signing a document |
EP1056014A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for providing a trustworthy user interface |
US6971022B1 (en) * | 1999-06-15 | 2005-11-29 | Matsushita Electric Industrial Co., Ltd. | Cryptographic apparatus for performing cryptography on a specified area of content data |
US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
GB9923804D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | Electronic commerce system |
GB9923802D0 (en) | 1999-10-08 | 1999-12-08 | Hewlett Packard Co | User authentication |
US6711675B1 (en) * | 2000-02-11 | 2004-03-23 | Intel Corporation | Protected boot flow |
US6983374B2 (en) * | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6990579B1 (en) | 2000-03-31 | 2006-01-24 | Intel Corporation | Platform and method for remote attestation of a platform |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6986052B1 (en) | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US20020062452A1 (en) | 2000-08-18 | 2002-05-23 | Warwick Ford | Countering credentials copying |
US8909555B2 (en) | 2001-04-24 | 2014-12-09 | Hewlett-Packard Development Company, L.P. | Information security system |
US20030126454A1 (en) | 2001-12-28 | 2003-07-03 | Glew Andrew F. | Authenticated code method and apparatus |
GB2411027B (en) * | 2002-11-18 | 2006-03-15 | Advanced Risc Mach Ltd | Control of access to a memory by a device |
-
2000
- 2000-06-30 US US09/608,439 patent/US6986052B1/en not_active Expired - Lifetime
-
2001
- 2001-03-22 TW TW90106747A patent/TW552505B/zh not_active IP Right Cessation
- 2001-06-07 CN CNB018146090A patent/CN100350394C/zh not_active Expired - Lifetime
- 2001-06-07 EP EP01948290A patent/EP1314091A2/en not_active Withdrawn
- 2001-06-07 JP JP2002508208A patent/JP2004523015A/ja active Pending
- 2001-06-07 AU AU2001269759A patent/AU2001269759A1/en not_active Abandoned
- 2001-06-07 WO PCT/US2001/018447 patent/WO2002003208A2/en active Application Filing
-
2005
- 2005-09-20 US US11/229,669 patent/US7822979B2/en not_active Expired - Fee Related
-
2010
- 2010-10-25 US US12/911,640 patent/US8549275B2/en not_active Expired - Fee Related
- 2010-12-23 US US12/977,459 patent/US8347072B2/en not_active Expired - Lifetime
- 2010-12-23 US US12/977,468 patent/US8627053B2/en not_active Expired - Fee Related
-
2011
- 2011-10-26 JP JP2011234826A patent/JP5249399B2/ja not_active Expired - Lifetime
-
2013
- 2013-03-15 US US13/843,215 patent/US9971909B2/en not_active Expired - Fee Related
-
2014
- 2014-12-24 US US14/583,061 patent/US9507963B2/en not_active Expired - Lifetime
- 2014-12-24 US US14/583,062 patent/US9619672B2/en not_active Expired - Fee Related
- 2014-12-24 US US14/583,054 patent/US9507962B2/en not_active Expired - Lifetime
- 2014-12-24 US US14/583,056 patent/US9547779B2/en not_active Expired - Fee Related
- 2014-12-24 US US14/583,060 patent/US9305183B2/en not_active Expired - Fee Related
- 2014-12-24 US US14/583,051 patent/US9323954B2/en not_active Expired - Fee Related
-
2018
- 2018-05-09 US US15/975,227 patent/US10572689B2/en not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005338942A (ja) * | 2004-05-24 | 2005-12-08 | Freescale Semiconductor Inc | レジスタユニット |
JP2009508259A (ja) * | 2005-09-12 | 2009-02-26 | マイクロソフト コーポレーション | 処理ユニット封入型オペレーティングシステム |
JP2010525456A (ja) * | 2007-04-20 | 2010-07-22 | モトローラ・インコーポレイテッド | 書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス |
JP2013008220A (ja) * | 2011-06-24 | 2013-01-10 | Brother Ind Ltd | デバイス制御システム及びプログラム |
JP2015508527A (ja) * | 2011-12-21 | 2015-03-19 | インテル・コーポレーション | 安全なダイレクトメモリアクセス |
JP2018526691A (ja) * | 2015-08-31 | 2018-09-13 | ニューマン エイチ−アール コンピュータ デザイン,エルエルシーNewman H−R Computer Design,Llc | ハッキング耐性のあるコンピュータ設計 |
JP2016167275A (ja) * | 2016-03-24 | 2016-09-15 | インテル・コーポレーション | 安全なダイレクトメモリアクセス |
JP2019122030A (ja) * | 2018-01-02 | 2019-07-22 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | コード署名の条件付き規定に基づくセキュアクライアント認証 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572689B2 (en) | Method and apparatus for secure execution using a secure memory partition | |
Sev-Snp | Strengthening VM isolation with integrity protection and more | |
US9989043B2 (en) | System and method for processor-based security | |
JP7158985B2 (ja) | セキュアなパブリッククラウドのための暗号メモリオーナーシップテーブル | |
KR101457355B1 (ko) | 보안 애플리케이션 실행을 제공하는 방법 및 장치 | |
Wu et al. | Comprehensive VM protection against untrusted hypervisor through retrofitted AMD memory encryption | |
JP2008257734A (ja) | メモリドメインを基にしたデータ処理システム内のセキュリティ制御 | |
Cheng et al. | Intel tdx demystified: A top-down approach | |
Guan et al. | Building a trustworthy execution environment to defeat exploits from both cyber space and physical space for ARM | |
Sahita et al. | Security analysis of confidential-compute instruction set architecture for virtualized workloads | |
Kaplan | Hardware VM Isolation in the Cloud: Enabling confidential computing with AMD SEV-SNP technology | |
Shim et al. | SOTPM: software one-time programmable memory to protect shared memory on ARM trustzone | |
Champagne | Scalable security architecture for trusted software | |
Kaplan | Hardware VM Isolation in the Cloud | |
Koutroumpouchos | A security evaluation of TrustZone based trusted execution environments | |
Shepherd et al. | Enclave Computing | |
Chhabra | Towards Performance, System and Security Issues in Secure Processor Architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061121 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070216 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080916 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081215 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090122 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20090403 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110726 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110801 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110826 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110901 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110926 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111003 |