JP4695082B2 - メモリをクリアするように形成されるメモリコントローラを含む、高信頼実行環境を採用するコンピュータシステム - Google Patents
メモリをクリアするように形成されるメモリコントローラを含む、高信頼実行環境を採用するコンピュータシステム Download PDFInfo
- Publication number
- JP4695082B2 JP4695082B2 JP2006525317A JP2006525317A JP4695082B2 JP 4695082 B2 JP4695082 B2 JP 4695082B2 JP 2006525317 A JP2006525317 A JP 2006525317A JP 2006525317 A JP2006525317 A JP 2006525317A JP 4695082 B2 JP4695082 B2 JP 4695082B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- processor
- memory controller
- clear
- data
- 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 OR CALCULATING; 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/74—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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F21/79—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 in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/2143—Clearing memory, e.g. to prevent the data from being stolen
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Description
品質および性能が向上し続けるデジタルコミュニケーション/メディアシステムとして上記プラットフォームが幅広く使用されていることが、そのような進化の例である。インターネットとも相俟って、これらのシステムプラットフォームは、デジタルコンテンツの大量配信(mass distribution)を明らかに激変させており、世界中のラジオ局、新聞およびリアルタイムの天気情報へのオンデマンドのアクセスや、オンラインバンキングおよびオンラインショッピング、オーディオおよびビデオベースのエンタテインメントを可能にしている。
これにより、各アプリケーションは、コードおよびデータのための物理メモリ上に他のアプリケーションからはアクセスし得ない当該アプリケーション専用のスペースを有する。
また、仮想メモリメカニズムによれば、OSは物理メモリのページを複数の仮想アドレス空間に選択的にマッピングすることもできるし、かかるページを仮想空間内において選択的に読み出し専用(リードオンリー)として指定することも可能である。この共有マッピング能力のおかげで、OSカーネル自体のコピーが各アプリケーションのアドレス空間内に常駐することが可能になり、同様に、周辺装置のアクセスポートおよび関連するデバイスドライバルーチンの共有マッピングも可能であろう。このようにして、ロスの多いアドレス空間の切り替えを必要とせずに、アプリケーションにOSサービスへの効率的なアクセスを提供している。しかし、アドレス空間のOS部分は、OSコードによる変更が可能でなければならないシステムデータ領域を必然的に含んでおり、それは現時点においてもアプリケーションコードから保護されていなければならない。リードオンリー指定はかかる領域に対して適切な保護を提供することができない場合がある。
CPL0は一般にカーネルモードと呼ばれ、最も高い特権レベルである。一方、CPL3は一般にユーザモードと呼ばれ、最も低い特権レベルである。OSコードおよびデータには通常CPL0に割り当てられ、アプリケーションコードおよびデータにはCPL3に割り当てられる。CPL0実行特権は、リードオンリー保護に優先せず、2つの属性は互いに独立している。コードセグメントのディスクリプタを用いて、これらのレベルを割り当てている。
さらに、あるセグメントから他のセグメントに実行を切り替え、これによって特権レベルを変更するためには、一般的に、特別な制御転送命令が必要とされる。これらの命令により、OSはかかる制御転送の対象をOSにより制御されるコード中の特定のエントリポイントに限定することができるようになる。したがって、アプリケーションは、OSに制御を渡すことなしに特権レベルを変更することはできない。
しかしながら、典型的なx86ベースのシステムは、かかる大量のカーネルモードのコードを含んでいる。これらのカーネルモードのコードは、OSベンダからだけではなく、多くの独立したソースから提供されるものであり、それが偶発的なものにしろそうでないにしろ、そのような干渉が発生しないことを保証できる者は誰もいない。
ユーザが実行しているオペレーションのタイプや稼働中のソフトウェアアプリケーションのタイプによって、コンピュータシステム内に記憶されている情報またはコンピュータシステム上で実行されている情報は、外部からのアクセスに対して脆弱になり得る。したがって、セキュリティを改善し、x86アーキテクチャのシステムのそのようなアクセスに対する脆弱性をできる限り小さくすることが望ましい。
ある実施形態においては、このコンピュータシステムは、セキュアオペレーティングシステムコードセグメントを実行することにより、セキュア実行モードで動作し得るプロセッサを含んでいる。
このコンピュータシステムはまた、データを記憶する複数のロケーションを含むシステムメモリを含んでいる。このコンピュータシステムはさらに、システムメモリに接続されたメモリコントローラを含んでいる。
このメモリコントローラは、プロセッサのリセットに応じて動作可能(イネーブル)とされると、システムメモリの複数のロケーションにわたりプログラムされたデータを選択的にクリアすることができる。
このメモリコントローラはさらに、リセットの前にプロセッサがSTR状態にないとの判断に応じて、データをクリアすることができる。
高信頼コンピューティングによれば、コンピュータシステム(例えば、パーソナルコンピュータ(PC))のユーザは、当該ユーザのプライバシーを攻撃から保護しつつ、電子マネーや動画をダウンロードするといったような新しい活動に参加することが可能となる。
高信頼コンピューティング環境の一部となるためには、例えば、PCそれ自体も、ユーザおよび銀行、コンテンツプロバイダといった外部組織の双方から信頼されなければならない。
高信頼PCを構成するのに必要な主要要素には、高信頼処理環境、プラットフォーム特有のシークレット、暗号処理、セキュアな記憶装置、およびセキュリティカーネル(SK)と呼ばれるセキュア・オペレーティングシステム・コードセグメントが含まれる。これらの要素を実装する構成ブロックについて、以下に詳細に説明する。
これらの制御レジスタとページテーブルへのアクセスを制御することによって、コンピュータシステム内のプログラムコードやデータに対する不正アクセスに対する保護を追加することができる。
したがって、このようなプロセッサに対する一組のアーキテクチャ拡張を追加し、それに対応するサポートソフトウェアを提供することによって、この保護を提供することができる。
プロセッサに対する全体的なセキュリティ強化は、セキュア実行モード(SEM)と呼ばれる。このセキュア実行モード(SEM)はプロセッサに付加された新しい動作モードであり、外部からの不正操作を受けることなく、セキュリティカーネルが動作する高信頼動作環境を構築するものである。
この高信頼実行モードは、実行されているソフトウェアの種類およびその特権レベルに応じて、ノーマルユーザモードおよびノーマルカーネルモードに加えて、セキュアユーザモードおよびセキュアカーネルモードで動作するSEM機能付きプロセッサを含んでいてもよい。
この環境内で実行されるソフトウェアおよびハードウェアメモリアクセス(例えば、ダイレクトメモリアクセス(DMA))からのみアクセス可能な保護されたメモリ領域を形成するためのメカニズムも提供される。
したがって、SEM実行可能なCPUは、上記のTXモードを生成し、実行するハードウェアメカニズムを備えている。
このようなスリープ状態の1つは、サスペンド・トゥ・ラム(STR)状態とも呼ばれることのあるS3状態である。このS3状態は、システムメモリを除いたすべてのシステムコンテキストが失われる、ロー・ウェイクアップ・レイテンシ・スリープ状態(low wakeup latency sleep state )として定義される。
S3状態に入る際、ほとんどのシステムデバイスの電源が落とされる。しかしながら、システムメモリをサポートするメモリコントローラのようなデバイスには、電力が部分的に供給され得る。
例えば上述のように、プロセッサがリセットさらた場合、高信頼環境を初期化するプロセスの一部は、物理メモリのコンテンツをクリアする。
しかしながら、システムがS3状態である場合、メモリはクリアされるべきではない。同様に、例えばシステムが、S4状態のような他のスリープ状態に置かれる場合、高信頼メモリの中にある秘密保護されたものを、ハードディスク上に保護されていない状態で記憶することはできない。
図1は、高信頼コンピューティングプラットホームを採用したコンピュータシステムの一実施形態のブロック図である。
コンピュータシステム10は、SEMプロセッサ100AおよびSEMプロセッサ100Bと呼ばれるSEMを実行可能な2つのプロセッサを含む。SEMプロセッサ100Aはプロセッサバス105を介してSEMプロセッサ100Bに接続される。
さらにコンピュータシステム10は、SEMプロセッサ100Aに接続されるシステムメモリ110Aと、SEMプロセッサ100Bに接続されるシステムメモリ110Bとを含む。SEMプロセッサ100Aはシステムバス125を介してI/Oインターフェイス120に接続される。
I/Oインターフェイス120は、ペリフェラルバス145を介して記憶装置140および周辺装置150に接続される。I/Oインターフェイス120はさらに、ペリフェラルバス135を介してSSP130に接続される。
他の実施形態では、ペリフェラルバス135の代わりに、点線で示すようにSSP130をペリフェラルバス145に接続してもよい。
ここで2つのSEMプロセッサを示しているものの、他の実施形態では異なる数のSEMプロセッサを用いてもよいことに注意すべきである。
さらに、同一の参照番号と一つの参照符号で示す要素は、単にその参照符号だけで参照することもあることに注意してもらいたい。例えば、SEMプロセッサ100Aを、場合によっては、単にSEMプロセッサ100と呼ぶこともある。
例えば、システムバス125もまた、HyperTransport(商標)I/O仕様と互換性を有する高速ポイント間リンクであり得る。
このような実施形態においては、SEMプロセッサ100Aは、非同期リンク225に接続し、同期リンク205においてSEMプロセッサ100AとSEMプロセッサ100Bとの間でメッセージを伝達するための統合ホストブリッジロジック(図示しない)を含んでいてもよい。
しかしながら、システムバス125が例えばフロントサイドバス(FSB)のような種類のものである他の実施形態も考え得ることに注意すべきである。
他の実施形態においては、I/Oインタフェース120が1つ以上のメモリコントローラとホストブリッジを含んでもよいことに注意すべきである。かかる実施形態においては、システムメモリ110はI/Oインタフェース120に接続されていてもよい。
さらに、システムメモリ110は、高信頼部分および無信頼部分とに区切ることができる。このセキュリティカーネルは、システムメモリ110の高信頼部分に常駐する。上述したように、システムメモリ110には通常ページ化された仮想メモリを使用してアクセスする。そのような構成においては、システムメモリ110には、個々のページ単位で、またはひとかたまりのメモリ単位でアクセス可能である。このページ化機能は、一般的にはOSのメモリ管理機能によって処理される。
さらに、メモリロケーションは割り当てられ、またその割り当てが取り消されることから、メモリロケーションの割り当てが取り消された状態であってもデータはアクセス可能となるようにしてもよい。
システムメモリ110は、例えばメモリ拡張を可能にするメモリモジュールを複数バンクを含み得る。
ある実施形態では、記憶装置140は、ハードディスクドライブまたは複数のハードディスクドライブからなるバンクであるが、例えばCD−ROMドライブ、フロッピディスクドライブ、およびテープドライブのような他の大量記憶装置を含む他の実施形態も考え得る。
ある実施形態では、I/Oインタフェース120はノースブリッジに関連する機能を実行することができるバスブリッジ(図示しない)を含む。例えば、ペリフェラルバス145は、PCI(peripheral component interconnect)バスであってもよく、ペリフェラルバス135はLPC(low pin count)バスであってもよい。さらに、バスブリッジ121は、セキュア初期化の際にSEMプロセッサ100とSSP130との間でスプーフィング不可能な通信を可能にするセキュリティ機構(図示しない)を提供するように構成することができる。
さらに、以下に詳述するように、SEMプロセッサに統合された、またはSEMプロセッサ外部のメモリコントローラ101Aおよび101Bは、リセットのようなあるシステム条件に応じて、システムメモリ110のメモリチップの物理的なコンテンツを上書きするように構成されるロジック(図2には示されない)を含み得る。
メモリコントローラ301は、メモリクリア状態ビット記憶装置325と、メモリクリアユニット310とに接続される制御ロジック315を含む。
メモリコントローラ301は、例えば図1のシステムメモリ110のようなシステムメモリに接続され得る。
ここに使用されるように、メモリチップのコンテンツをクリアすることは、システムメモリのメモリチップ内に記憶されるデータを上書きすること、したがって使用不可になることを示す。
ある実施形態においては、メモリコントローラ301は、それがアクセスするようにプログラムされたシステムメモリ中のすべてのロケーションに0のロジック値を書くことにより、メモリチップのコンテンツをクリアする。
他の実施形態においては、メモリコントローラ301は、それがアクセスするようにプログラムされたシステムメモリ中ですべてのロケーションに1のロジック値を書くことにより、メモリチップのコンテンツをクリアする。
さらに他の実施形態においては、メモリコントローラ301は、システムメモリ110に何か他のデータパターンを書くことにより、メモリチップのコンテンツをクリアし、以前にそこに記憶されたデータをすべて使用不可にする。このような実施形態においては、このデータパターンはランダムに生成される。
コンフィギュレーションおよび制御レジスタ316は、アドレス指定可能メモリのサイズをプログラムするソフトウェアアクセス可能レジスタを含む。
例えば初期化の際、BIOSは、コンフィギュレーションおよび制御レジスタ316をプログラムすることによって、動作可能なシステムメモリのサイズを決定し、続いて、その動作可能なメモリにアクセスするようにメモリコントローラ301をプログラムする。
さらに、コンフィギュレーションおよび制御レジスタ316は、DRAMEビットを意味する、DRAM(dynamic random access memory)イネーブルビットを含み得る。
ある実施形態においては、DRAMEビットは、リセットにより、0のロジック値にセットされる。またこのDRAMEビットは、例えばメモリコントローラ301のプログラムにおける最後のステップとして、BIOSのようなソフトウェアによって1のロジック値にセットされる。
このメモリコントローラが動作不可(ディゼーブル)になるか切断される場合にも、ハードウェアはこのビットをクリアする。
セットされた場合、DRAMEビットはメモリコントローラ301を動作不可な状態から動作可能な状態に移行する。
さらに、コンフィギュレーションおよび制御レジスタ316は、DStatビットを意味する、DRAMステータスビットを含み得る。
ある実施形態の一例においては、DStatビットはソフトウェア側から見えない。このビットの0から1への移行は、メモリクリア動作が完了したことを示す。このメモリクリア動作が完了した際、このビットは制御ロジック315中のハードウェアによって1にセットされる。
DRAMEビットがクリアされる場合、DStatビットはクリアされ得る。例えば、DRAMEの値が真(true)であり、かつメモリクリアユニット310がメモリクリア動作中でない場合、DStat=1である。
例えば、ある実施形態の一例においては、メモリクリアユニット310は、メモリクリア動作をする際、システムメモリに書き込まれるデータを生成するためのロジックを含んでいる。
以下に詳細に記載するように、このMCDビットはメモリクリアユニット310を動作可能または動作不可に構成することができ、これによりシステムメモリをクリアすることを可能または不可能にする。
MCDビットは高信頼ソフトウェア側からのみ見える可能性があることが注目される。アドレシングは、新しいキャパビリティポインタ(0Fh)に基づく。このMCDビットは、直接メモリアクセス排他ベクトル(direct memory access exclusion vector)(DEV)制御レジスタの1ビットであり得る。
ある実施形態においては、MCDビットがロジック1にセットされる場合、メモリクリアユニット310は動作不可になる。また、MCDビットがロジック0にセットされる場合、メモリクリアユニット310は動作可能になる。
さらに、メモリが使用可能でない場合には、このMCDビットは書き込みできない可能性がある。
ビット状態情報を維持するために、MCDビットは関連するサスペンド・トゥ・ラム(STR)ビットを有し得る。このビットは状態を維持し、MCDビットに関してマスタスレーブ配置で実行してもよい。
ある実施形態では、起動時にSTRビットの状態はMCDビット中にコピーされる。したがって、STRビットは、電源を落とす際にシステムメモリのコンテンツが保存されたかどうかを示す。
このSTRビットはソフトウェア側から見えないようにしてもよいし、リセットによってクリアされないようにしてもよい。
ある実施形態においては、システム電源が落とされるが、システムメモリのメモリチップには電力が供給され続ける場合(例えばS3状態)には常に、STRビットは状態を維持する。
一旦メモリコントローラ301が動作可能になれば、高信頼ソフトウェアは、S3状態に入る前にMCDビットをセットすることにより、間接的にSTRビットをセットすることができる。
電源を落とす前に、MCDビットの状態はSTRビットにコピーされる。このSTRビットは、DRAMEビットがセットされることになる際(例えば、メモリクリア動作がその状態を評価した後)、自動的にクリアされる。
例示の実施形態においては、このSTRビットはメモリクリア状態ビット記憶装置325中に含まれ得る。
これらのビットは、前のメモリクリア動作によってクリアされた複数のメモリ部分の目印を記憶し得る。これらのビットはソフトウェア側から見えないようにしてもよいし、リセットによってクリアされないようにしてもよい。
ある実施形態においては、システム電源が落とされるが、システムメモリのメモリチップには電力が供給され続ける場合(例えばS3状態)には常に、以前にクリアされたメモリビットは状態を維持する。
メモリクリア動作が実行される毎に、以前にクリアされたメモリビットがリロードされ得る。
ミスマッチがある場合、メモリクリアユニット310は無条件に上述したようなシステムメモリをクリアする。例えば、不正なBIOSまたはBIOSエミュレーションソフトウェアは、安全なメモリにアクセスしようとして、以前にアクセスおよびクリアされたメモリの領域よりも小さい領域にアクセスするように、メモリコントローラ310をプログラムするおそれがある。
したがって、ミスマッチが検出された場合、以前にクリアされたメモリ範囲の全体がクリアされる。
ある実施形態の一例では、以前にクリアされたメモリビットは、最後のメモリクリア動作によってクリアされたメモリの最も高い64Mバイトブロックの上位アドレスビットを記憶するように実装されるが、他の実施形態が考えられる。
図3の説明とともに以下に詳述するように、リセットした後、メモリコントローラ301の制御ロジック315は、これらの状態記憶素子にアクセスすることができる。
ある種のシステムパワーダウン状態(例えばS3状態)中である場合でさえ、電源はあるデバイス(例えばRAMのような揮発性記憶装置)に残り続けるからである。
これらの状態記憶素子は、パワーダウンおよびその後のパワーアップシーケンスを通じてそれらの状態を保持する。
図2および図3に示すように、システムがリセットされたところから開始する(ステップ400)。
このリセットに応じて、BIOSは様々なシステムレベルのセットアップと、コンフィギュレーションタスクを実行する。例えばBIOSは、メモリコントローラ301を形成することによってシステムメモリを動作可能にしなければならない。
特定のシステムを実装することによって、BIOSは、システムメモリの物理的なサイズを決定すべく、1つ以上のメモリテストを実行する。
一旦利用できるメモリが決定された場合、ある実施形態の一例においては、BIOSは利用可能なメモリの現在のサイズでメモリコントローラ301の1つ以上のコンフィギュレーションレジスタ316をプログラムする(ステップ405)。
一旦メモリコントローラがプログラムされると、BIOSはDRAMEビットをセットすることによりメモリコントローラ301を動作可能にする(ステップ410)。
その後、メモリコントローラ301は動作不可状態から動作可能状態に移行する。制御ロジック315により、このSTRビットはMCDビットにコピーされる(ステップ415)。
システムがS3状態でなかった場合(例えばMCDビットがクリアされている)、制御ロジック315はコンフィギュレーションレジスタ316に記憶された値からメモリサイズを決定する(ステップ430)。
制御ロジック315は、現在のプログラムされたメモリサイズ内にあるすべてのロケーションのメモリクリア動作を実行するように、メモリクリアユニット310に通知する(ステップ435)。
クリアされるメモリのサイズは、以前にクリアされたメモリビット中に保存される(ステップ440)。
制御ロジック315は、現在プログラムされたメモリサイズを、以前にクリアされたメモリサイズと比較する(ステップ450)。
サイズミスマッチがある場合(ステップ455:Y)、制御ロジック315は、メモリクリア状態ビット記憶装置325の以前にクリアされたメモリビット内に記憶された値によって示されるような、以前のメモリクリア動作中でクリアされたすべてのロケーションのメモリクリア動作を実行するように、メモリクリアユニット310に通知する(ステップ460)。
クリアされるメモリのサイズは、以前にクリアされたメモリビット中に保存される(ステップ440)。
ある実施形態においては、MCDビットが評価された後にSTRビットがクリアされ得る。このクリアにより、リセットされた場合にメモリクリア動作ができるようになる。
Claims (5)
- セキュアオペレーティングシステムコードセグメントを実行することにより、セキュア実行モードで動作するように構成されるプロセッサ(100A)と、
前記プロセッサに接続され、データを記憶する複数のロケーションを含むシステムメモリ(110A)と、
前記システムメモリに接続され、システムリセットに応じて動作可能とされると、前記システムメモリの前記複数のロケーションのプログラムされた範囲におけるメモリクリア動作を使用して、前記データを選択的にクリアするように構成されるメモリコントローラ(101A)と、を含んでおり、
前記メモリコントローラはさらに、前記システムリセットの前に前記プロセッサがサスペンド・トゥ・ラム状態にあったと判断するとともに、前記以前のメモリクリア動作においてクリアされた前記複数のロケーションの前記プログラムされた範囲のサイズと現在のプログラムされたメモリサイズとが同一でないと判断するのに応じて、前記メモリクリア動作を使用して、前記データをクリアするように構成される、
コンピュータシステム(10)。 - 前記メモリコントローラはさらに、前記リセットの前に前記プロセッサがサスペンド・トゥ・ラム状態になかったと判断するのに応じて、前記メモリクリア動作を使用して、前記データをクリアするように構成される、請求項1記載のコンピュータシステム。
- 前記メモリコントローラは、前記プロセッサが前記リセットの前にサスペンド・トゥ・ラム状態だったかどうかを示すビットを記憶するように構成される記憶装置(325)を含む、請求項1記載のコンピュータシステム。
- プロセッサ(100A)と、前記プロセッサ(100A)に接続されたシステムメモリ(110A)と、前記システムメモリ(110A)に接続されたメモリコントローラ(101A)とを含むコンピュータシステム(10)において、前記プロセッサ(100A)が、セキュリティ初期設定命令を実行することにより、セキュア実行モードにおいて初期化され、前記プロセッサ(100A)が、前記セキュア実行モードで動作すべくセキュアオペレーティングシステムコードセグメントを実行するステップと、
前記メモリコントローラ(101A)が、前記システムメモリ(110A)の複数のロケーション内にデータを記憶させるステップと、
前記メモリコントローラ(101A)が、システムリセットに応じて、前記システムメモリの前記複数のロケーションのプログラムされた範囲におけるメモリクリア動作を使用して、前記データを選択的にクリアするステップと、を含んでおり、
前記データを選択的にクリアするステップは、前記メモリコントローラ(101A)が、前記以前のメモリクリア動作においてクリアされた前記複数のロケーションの前記プログラムされた範囲のサイズと現在のプログラムされたメモリサイズとが同一でないと判断するとともに、前記システムリセットの前に、前記プロセッサがサスペンド・トゥ・ラム状態にあったとの判断に応じて、前記メモリクリア動作を使用して、前記データをクリアするステップを含む、
方法。 - 前記メモリコントローラ(101A)が、前記システムリセットの前に前記プロセッサがサスペンド・トゥ・ラム状態だったかどうかを決定するステップをさらに含む、請求項4記載の方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/654,734 US7210009B2 (en) | 2003-09-04 | 2003-09-04 | Computer system employing a trusted execution environment including a memory controller configured to clear memory |
| US10/654,734 | 2003-09-04 | ||
| PCT/US2004/018043 WO2005026954A1 (en) | 2003-09-04 | 2004-06-04 | A computer system employing a trusted execution environment including a memory controller configured to clear memory |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2007504553A JP2007504553A (ja) | 2007-03-01 |
| JP4695082B2 true JP4695082B2 (ja) | 2011-06-08 |
Family
ID=34225999
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006525317A Expired - Lifetime JP4695082B2 (ja) | 2003-09-04 | 2004-06-04 | メモリをクリアするように形成されるメモリコントローラを含む、高信頼実行環境を採用するコンピュータシステム |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7210009B2 (ja) |
| JP (1) | JP4695082B2 (ja) |
| KR (1) | KR101093124B1 (ja) |
| CN (1) | CN100416501C (ja) |
| DE (1) | DE112004001605B4 (ja) |
| GB (1) | GB2422228B (ja) |
| TW (1) | TWI349230B (ja) |
| WO (1) | WO2005026954A1 (ja) |
Families Citing this family (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7765381B2 (en) * | 2003-04-04 | 2010-07-27 | Oracle America, Inc. | Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes |
| US7228400B2 (en) * | 2003-12-31 | 2007-06-05 | Intel Corporation | Control of multiply mapped memory locations |
| US7380069B2 (en) * | 2004-11-19 | 2008-05-27 | Marvell International Technology Ltd. | Method and apparatus for DMA-generated memory write-back |
| JP2006203564A (ja) * | 2005-01-20 | 2006-08-03 | Nara Institute Of Science & Technology | マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法 |
| US20070192826A1 (en) * | 2006-02-14 | 2007-08-16 | Microsoft Corporation | I/O-based enforcement of multi-level computer operating modes |
| US8060744B2 (en) * | 2006-03-23 | 2011-11-15 | Harris Corporation | Computer architecture for an electronic device providing single-level secure access to multi-level secure file system |
| US8127145B2 (en) * | 2006-03-23 | 2012-02-28 | Harris Corporation | Computer architecture for an electronic device providing a secure file system |
| US8041947B2 (en) * | 2006-03-23 | 2011-10-18 | Harris Corporation | Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory |
| US7979714B2 (en) * | 2006-06-02 | 2011-07-12 | Harris Corporation | Authentication and access control device |
| US7877558B2 (en) * | 2007-08-13 | 2011-01-25 | Advanced Micro Devices, Inc. | Memory controller prioritization scheme |
| US7757039B2 (en) * | 2007-09-18 | 2010-07-13 | Nikos Kaburlasos | DRAM selective self refresh |
| US7937449B1 (en) * | 2007-10-08 | 2011-05-03 | Empirix, Inc. | System and method for enabling network stack processes in user mode and kernel mode to access kernel memory locations |
| US20090144332A1 (en) * | 2007-11-29 | 2009-06-04 | Wallace Paul Montgomery | Sideband access based method and apparatus for determining software integrity |
| US8250354B2 (en) * | 2007-11-29 | 2012-08-21 | GlobalFoundries, Inc. | Method and apparatus for making a processor sideband interface adhere to secure mode restrictions |
| CN101493877B (zh) * | 2008-01-22 | 2012-12-19 | 联想(北京)有限公司 | 数据处理方法及系统 |
| US9274573B2 (en) | 2008-02-07 | 2016-03-01 | Analog Devices, Inc. | Method and apparatus for hardware reset protection |
| US8117642B2 (en) * | 2008-03-21 | 2012-02-14 | Freescale Semiconductor, Inc. | Computing device with entry authentication into trusted execution environment and method therefor |
| US7831816B2 (en) * | 2008-05-30 | 2010-11-09 | Globalfoundries Inc. | Non-destructive sideband reading of processor state information |
| JP5286943B2 (ja) * | 2008-05-30 | 2013-09-11 | 富士通株式会社 | メモリクリア機構 |
| FR2934697B1 (fr) * | 2008-07-29 | 2010-09-10 | Thales Sa | Procede et systeme permettant de securiser un logiciel |
| US20100138597A1 (en) * | 2008-11-28 | 2010-06-03 | Kabushiki Kaisha Toshiba | Information Processing System, System Controller, and Memory Control Method |
| US8880854B2 (en) * | 2009-02-11 | 2014-11-04 | Via Technologies, Inc. | Out-of-order execution microprocessor that speculatively executes dependent memory access instructions by predicting no value change by older instructions that load a segment register |
| EP2270708A1 (en) * | 2009-06-29 | 2011-01-05 | Thomson Licensing | Data security in solid state memory |
| WO2011018414A2 (en) * | 2009-08-14 | 2011-02-17 | Intrinsic Id B.V. | Physically unclonable function with tamper prevention and anti-aging system |
| US20120036308A1 (en) * | 2010-08-06 | 2012-02-09 | Swanson Robert C | Supporting a secure readable memory region for pre-boot and secure mode operations |
| US8458486B2 (en) * | 2010-10-13 | 2013-06-04 | International Business Machines Corporation | Problem-based account generation |
| GB2511957B (en) * | 2011-11-22 | 2015-02-11 | Mips Tech Inc | Processor with kernel mode access to user space virtual addresses |
| TWI464746B (zh) * | 2012-03-30 | 2014-12-11 | Wistron Corp | 記憶體之清除電路 |
| CN103368928B (zh) * | 2012-04-11 | 2018-04-27 | 富泰华工业(深圳)有限公司 | 帐号密码重置系统及方法 |
| US9043632B2 (en) | 2012-09-25 | 2015-05-26 | Apple Inc. | Security enclave processor power control |
| US9047471B2 (en) | 2012-09-25 | 2015-06-02 | Apple Inc. | Security enclave processor boot control |
| US8832465B2 (en) | 2012-09-25 | 2014-09-09 | Apple Inc. | Security enclave processor for a system on a chip |
| US8775757B2 (en) | 2012-09-25 | 2014-07-08 | Apple Inc. | Trust zone support in system on a chip having security enclave processor |
| US8873747B2 (en) | 2012-09-25 | 2014-10-28 | Apple Inc. | Key management using security enclave processor |
| US20150089245A1 (en) * | 2013-09-26 | 2015-03-26 | Asher M. Altman | Data storage in persistent memory |
| US9594927B2 (en) * | 2014-09-10 | 2017-03-14 | Intel Corporation | Providing a trusted execution environment using a processor |
| US9547778B1 (en) | 2014-09-26 | 2017-01-17 | Apple Inc. | Secure public key acceleration |
| US10127406B2 (en) * | 2015-03-23 | 2018-11-13 | Intel Corporation | Digital rights management playback glitch avoidance |
| CN105630351A (zh) * | 2015-12-23 | 2016-06-01 | 深圳市嘉兰图设计股份有限公司 | 具有一键清理后台程序功能的按键系统 |
| US10884952B2 (en) * | 2016-09-30 | 2021-01-05 | Intel Corporation | Enforcing memory operand types using protection keys |
| US10353858B2 (en) * | 2017-12-18 | 2019-07-16 | GM Global Technology Operations LLC | System and method for managing system memory integrity in suspended electronic control units |
| US11681965B2 (en) * | 2019-10-25 | 2023-06-20 | Georgetown University | Specialized computing environment for co-analysis of proprietary data |
| EP4579561A3 (en) | 2022-12-30 | 2025-07-09 | Google Llc | Secure workflows that enhance data security using sandboxes hosted by trusted execution environments |
| DE102023207909A1 (de) * | 2023-08-17 | 2025-02-20 | Continental Automotive Technologies GmbH | Computerimplementiertes Verfahren zum Verbessern der Datensicherheit in einer Rechenvorrichtung |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US200402A (en) * | 1878-02-19 | Improvement in toy money-boxes | ||
| US200405A (en) * | 1878-02-19 | Improvement in feed-water regulators | ||
| JPS62169218A (ja) * | 1986-01-17 | 1987-07-25 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 情報処理システムのアプリケ−シヨン中断再開装置 |
| AU640181B2 (en) * | 1989-12-26 | 1993-08-19 | Digital Equipment Corporation | Method for securing terminal and terminal apparatus for use with the method |
| JPH07219885A (ja) * | 1994-02-04 | 1995-08-18 | Canon Inc | 情報処理システム及び電子機器及び制御方法 |
| JP3393521B2 (ja) * | 1995-10-19 | 2003-04-07 | 日本電信電話株式会社 | 端末プログラム改ざん検出方法、および情報センタ |
| JPH09128232A (ja) * | 1995-11-01 | 1997-05-16 | Fujitsu Ltd | プログラム正常性確認装置 |
| JP3715711B2 (ja) * | 1996-04-19 | 2005-11-16 | キヤノン株式会社 | 画像処理装置及びその画像処理方法 |
| US5987604A (en) | 1997-10-07 | 1999-11-16 | Phoenix Technologies, Ltd. | Method and apparatus for providing execution of system management mode services in virtual mode |
| US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
| US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
| US6243831B1 (en) * | 1998-10-31 | 2001-06-05 | Compaq Computer Corporation | Computer system with power loss protection mechanism |
| US6175454B1 (en) | 1999-01-13 | 2001-01-16 | Behere Corporation | Panoramic imaging arrangement |
| US6367022B1 (en) | 1999-07-14 | 2002-04-02 | Visteon Global Technologies, Inc. | Power management fault strategy for automotive multimedia system |
| JP2001202289A (ja) * | 2000-01-18 | 2001-07-27 | Casio Comput Co Ltd | セキュリティ管理方法およびそのプログラム記録媒体 |
| US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
| US6546472B2 (en) * | 2000-12-29 | 2003-04-08 | Hewlett-Packard Development Company, L.P. | Fast suspend to disk |
| JP2002323939A (ja) * | 2001-04-25 | 2002-11-08 | Casio Comput Co Ltd | 起動処理制御装置 |
| JP2003037719A (ja) * | 2001-05-17 | 2003-02-07 | Sharp Corp | 画像処理装置 |
| US6854046B1 (en) | 2001-08-03 | 2005-02-08 | Tensilica, Inc. | Configurable memory management unit |
| US7024555B2 (en) | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
| US6922783B2 (en) * | 2002-01-16 | 2005-07-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for conserving power on a multiprocessor integrated circuit |
| US20030154392A1 (en) * | 2002-02-11 | 2003-08-14 | Lewis Timothy A. | Secure system firmware using interrupt generation on attempts to modify shadow RAM attributes |
| US7058768B2 (en) | 2002-04-17 | 2006-06-06 | Microsoft Corporation | Memory isolation through address translation data edit control |
| US6986006B2 (en) | 2002-04-17 | 2006-01-10 | Microsoft Corporation | Page granular curtained memory via mapping control |
| US7392415B2 (en) * | 2002-06-26 | 2008-06-24 | Intel Corporation | Sleep protection |
| US6925627B1 (en) * | 2002-12-20 | 2005-08-02 | Conexant Systems, Inc. | Method and apparatus for power routing in an integrated circuit |
| US7284136B2 (en) * | 2003-01-23 | 2007-10-16 | Intel Corporation | Methods and apparatus for implementing a secure resume |
-
2003
- 2003-09-04 US US10/654,734 patent/US7210009B2/en not_active Expired - Lifetime
-
2004
- 2004-06-04 CN CNB200480025290XA patent/CN100416501C/zh not_active Expired - Lifetime
- 2004-06-04 JP JP2006525317A patent/JP4695082B2/ja not_active Expired - Lifetime
- 2004-06-04 KR KR1020067003108A patent/KR101093124B1/ko not_active Expired - Lifetime
- 2004-06-04 DE DE112004001605T patent/DE112004001605B4/de not_active Expired - Lifetime
- 2004-06-04 GB GB0604581A patent/GB2422228B/en not_active Expired - Lifetime
- 2004-06-04 WO PCT/US2004/018043 patent/WO2005026954A1/en not_active Ceased
- 2004-08-20 TW TW093125088A patent/TWI349230B/zh not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| US7210009B2 (en) | 2007-04-24 |
| US20050055524A1 (en) | 2005-03-10 |
| GB2422228B (en) | 2007-02-14 |
| WO2005026954A1 (en) | 2005-03-24 |
| CN100416501C (zh) | 2008-09-03 |
| JP2007504553A (ja) | 2007-03-01 |
| CN1846195A (zh) | 2006-10-11 |
| KR101093124B1 (ko) | 2011-12-13 |
| GB2422228A (en) | 2006-07-19 |
| DE112004001605B4 (de) | 2010-05-06 |
| TWI349230B (en) | 2011-09-21 |
| TW200527293A (en) | 2005-08-16 |
| DE112004001605T5 (de) | 2006-07-06 |
| KR20060061832A (ko) | 2006-06-08 |
| GB0604581D0 (en) | 2006-04-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4695082B2 (ja) | メモリをクリアするように形成されるメモリコントローラを含む、高信頼実行環境を採用するコンピュータシステム | |
| KR100987507B1 (ko) | 보안 서비스 프로세서로의 접속을 위한 버스 브리지를포함하는 컴퓨터 시스템 | |
| US7165135B1 (en) | Method and apparatus for controlling interrupts in a secure execution mode-capable processor | |
| US7603551B2 (en) | Initialization of a computer system including a secure execution mode-capable processor | |
| US7496966B1 (en) | Method and apparatus for controlling operation of a secure execution mode-capable processor in system management mode | |
| US7130951B1 (en) | Method for selectively disabling interrupts on a secure execution mode-capable processor | |
| US7721341B2 (en) | Method and system for allowing code to be securely initialized in a computer | |
| EP1495401B1 (en) | Initialization of a computer system including a secure execution mode-capable processor | |
| US7146477B1 (en) | Mechanism for selectively blocking peripheral device accesses to system memory | |
| JP3982687B2 (ja) | 分離実行環境での複数の分離メモリへのアクセスの制御 | |
| US6775734B2 (en) | Memory access using system management interrupt and associated computer system | |
| US20060184717A1 (en) | Integrated circuit capable of flash memory storage management | |
| JP3556309B2 (ja) | コンピュータシステムおよびそのシステムで使用されるi/o制御装置 | |
| JPH1165922A (ja) | パーソナルコンピュータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070529 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100421 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100825 |
|
| RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20100902 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101119 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101129 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101222 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110126 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110224 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140304 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4695082 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |