JP2006065851A - アドレスビットを使用してアドレス空間におけるデータのセキュリティ属性を通知するシステムおよび方法 - Google Patents

アドレスビットを使用してアドレス空間におけるデータのセキュリティ属性を通知するシステムおよび方法 Download PDF

Info

Publication number
JP2006065851A
JP2006065851A JP2005217236A JP2005217236A JP2006065851A JP 2006065851 A JP2006065851 A JP 2006065851A JP 2005217236 A JP2005217236 A JP 2005217236A JP 2005217236 A JP2005217236 A JP 2005217236A JP 2006065851 A JP2006065851 A JP 2006065851A
Authority
JP
Japan
Prior art keywords
memory
data
address
integrity check
security
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005217236A
Other languages
English (en)
Other versions
JP4806226B2 (ja
Inventor
Dinarte R Morais
アール.モライス ディナート
Jeffrey A Andrews
エー.アンドリュース ジェフェリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006065851A publication Critical patent/JP2006065851A/ja
Application granted granted Critical
Publication of JP4806226B2 publication Critical patent/JP4806226B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 無許可のプログラムコード改変を防止するためのシステムおよび方法を提供すること。
【解決手段】 インテグリ制御システムは、アドレスビットを使用して、システムメモリに記憶されているデータの暗号化および/または保護を可能にする。暗号化機構および保護機構は、データバスを介してCPUに結合され、データバスを介してメモリに結合される。システムメモリに記憶すべきまたはシステムメモリから取り出すべきデータの位置を決定するアドレスバスは、複数のアドレスラインを備えている。アドレスラインのうち少なくとも1本は、暗号化機構が、データをメモリに記憶する前に暗号化し、メモリから取り出した後に復号化できるようにする。もう1本のアドレスラインは、保護機構がデータのハッシュを生成できるようにする。ハッシュは、データがシステムメモリに記憶されている間に改変されたかどうかを判定するために記憶され使用される。
【選択図】 図8

Description

本発明は、コンピュータシステムに関し、より詳細には、コンピュータシステム内でプログラムコードを安全に実行するためのシステムおよび方法に関する。
本出願は、本願の譲受人に譲渡された以下の同時係属の米国特許出願に関する。2004年8月27日出願の米国特許出願第_号(MSFT−3858/308767 01)「System and Method for Using Address Bits to Form an Index into Secure Memory」、2004年8月27日出願の米国特許出願第_号(MSFT−3859/308768 01)「System and Method for Using Address Bits to Affect Encryption」、2004年8月27日出願の米国特許出願第_号(MSFT−3860/308769 01)「System and Method for Using Address Lines To Control Memory Usage」、2004年8月27日出願の米国特許出願第_号(MSFT−3861/308770 01)「System and Method for Applying Security To Memory Reads and Writes」。
今日のコンピュータシステムは、コンピュータシステムの正常な動作を混乱させ不能にすることができる様々な攻撃にさらされている。コンピュータウィルス、ワーム、およびトロイの木馬プログラムは様々な形の攻撃の例である。コンピュータシステムの無節操なユーザから直接攻撃されることもある。こうした攻撃は、しばしばコンピュータシステムで実行される既存のプログラムコードを改変しようとする試み、またはコンピュータシステム内での正常なプログラム実行の様々な段階に新しい無許可プログラムコードを注入しようとする試みの形をとる。こうした悪意ある攻撃を防止するためのシステムおよび方法がますます重要になってきている。
典型的なコンピュータシステムは、コンピュータハードウェア、オペレーティングシステム、および1つまたは複数のアプリケーションプログラムを含んでいる。コンピュータハードウェアは通常、プロセッサ(ときには「中央処理装置」または「CPU」とも呼ばれる)、メモリ、および様々な構成要素間での通信を円滑に進める1本または複数のシステムバスを備えている。典型的なコンピュータシステムの他の構成要素には、入出力コントローラ、メモリコントローラ、グラフィックス処理ユニット、オーディオコントローラ、および電源がある。
こうしたシステムは一般に、小容量のオンチップメモリ(キャッシュメモリと呼ばれる)およびはるかに大容量のオフチップメモリ(システムメモリと呼ばれる)を備える。こうしたシステム中のオフチップメモリは、一般に信頼できると見なされていない(キャッシュメモリも信頼できると見なされないことがあるが、攻撃者がキャッシュメモリの内容を読み取るのを防止するハードウェア機構を介して保護することははるかに容易であり得る)。すなわち、大容量のシステムメモリに記憶されたデータは攻撃を受けやすく、データの所有者が意図しなかった方式でデータが簡単に改変されることが起こり得る。こうした攻撃によって、プログラムが意図していない方式で動作し、またはコピー保護方式が破られてしまうかもしれない。
データが確実にシステムメモリから取り出されセキュリティ保護されるようにしようとするいくつかのシステムが開発されてきた。具体的には、システムは、広範囲の暗号化技法とともに、メモリ内のデータの改変を検出する、改ざんを明らかにする他の機構を利用してきた。
オペレーティングシステムは、コンピュータシステムのアプリケーションプログラムと使用しているハードウェアの間のインターフェースと考えることができる。通常オペレーティングシステムは、コンピュータシステムプロセッサ上で実行され、コンピュータシステムの物理的な構成要素および様々なアプリケーションプログラムによるそれら構成要素の使用を管理する、様々なソフトウェアルーチンを含んでいる。
コンピュータシステムのプロセッサはしばしば、オペレーティングシステムおよび任意のアプリケーションプログラムによるメモリの使用を管理するメモリ管理ユニットを含む。コンピュータシステムに対する攻撃の多くは、メモリ内のプログラムを標的にする。たとえば、セキュリティチェックを実行するコード部分は、プログラムのその部分がメモリに記憶される際に、それを単に置き換えるだけで無効にすることができるかもしれない。他のハッキングによって、コンピュータゲームを改変し、その挙動を変更することもできるかもしれない。たとえば、マルチプレーヤーゲームでプレーヤーが自分のローカルマシン上のコードを変更することにより公正を欠く有利な立場を得ることができるようになる脆弱性が見つかる状況を考えてみる。こうした公正を欠く有利な立場は、そうでなければ評判のよいゲームの評判を傷つけることになりかねない。
こうしたことをすべて考慮すると、無許可のプログラムコード改変を防止することが大いに望ましいと言える。
本発明は、システムメモリ内に記憶されているデータのセキュリティを維持する安全なコンピューティング環境を提供する。このシステムは、CPUと、データバスを介してCPUに結合されデータバスを介してメモリに結合されたセキュリティ機構とを含む。アドレスバスはシステムメモリ内のデータ記憶位置を決定し、複数のアドレスラインを含む。アドレスラインのうち少なくとも1本は、セキュリティ機構が、データをメモリ内に記憶する前にデータをセキュリティ保護することができるようにする。CPUおよびセキュリティ機構は、同一の集積回路上にあってもよい。セキュリティ機構は、暗号化および復号化機構を含むことができる。システムは、データの関数としてインテグリティチェック値(integrity check value)を生成するインテグリティチェック機構(integrity check mechanism)を含むこともできる。アドレスラインの別の1本は、インテグリティチェック機構を使用可能にすることができる。インテグリティチェック値は、データがシステムメモリ内に記憶されている間に改変されたかどうかを判定するのに使用することができる縮小サイズの値を作成するデータのハッシュ値(暗号化形式または平文形式あるいはその両方)であることが好ましい。インテグリティチェック値は、安全なメモリ(secure memory)内に記憶されることが好ましく、そのメモリはCPUと同一の集積回路上にあってもよい。
以上述べてきた概要ならびに本発明の以下の詳細説明は、添付図面と併せて読めばより理解できる。本発明を説明するために、本発明の例示的構造が図に示してあるが、本発明は開示されている特定の方法および手段に限定されるものではない。
本発明は、コンピュータシステムメモリ内のプログラムコードを含むデータをリバースエンジニアリングし、逆アセンブルし、修正し、またはその他の改変をしようとする試みを伴うコンピュータシステムへの攻撃を防止する助けとなる、安全なコンピューティング環境を提供する。本発明は、信頼できないメモリと、暗号化および/または検証機構を備えるセキュリティエンジンを有するプロセッサとを含むコンピュータシステムまたはコンピューティング装置において実施することができる。システムは、アドレスビットを使用して、データをシステムメモリに記憶する前にそのデータに対してセキュリティ動作を実施するようセキュリティエンジンに通知する。たとえば、アドレスビットは、システムメモリの具体的なページを暗号化するよう指示することができる。さらに、たとえば、アドレスビットは、メモリの具体的なページを保護する(すなわち検証可能な形で変更させない)よう指示することができる。保護の場合には、ハッシュ値などデータの関数である検証情報は、改ざんに強い安全なメモリに記憶することが好ましい。一般に、安全なメモリは、セキュリティ境界内にあると考えることができる。通常セキュリティ境界は、安全なメモリをCPUと同一の集積回路上に置くことによって提供される。検証情報は、信頼できないシステムメモリからデータが取り出された後にそのデータから再生され、記憶されている検証情報と比較される。この2つの情報に差があれば、データが改変されたことを示している。
図1は、本発明のある態様を実施することができるマルチメディアコンソール100の機能的構成要素を示している。マルチメディアコンソール100は、1次(レベル1)キャッシュ102、2次(レベル2)キャッシュ104、およびメモリ管理ユニット(MMU)103を有する中央処理装置(CPU)101を備える。1次キャッシュ102および2次キャッシュ104は、一時的にデータを記憶し、それによってメモリアクセスサイクル数を削減し、その結果処理速度およびスループットを改善する。CPU101は、2つ以上のコアを含むことができ、したがって追加の1次および2次キャッシュ102および104を含むことができる。MMU103は、CPUが要求するメモリアクセスを処理する任を負う。MMU103が実施する他の機能には、仮想アドレスから物理アドレスへの変換(すなわち仮想メモリ管理)、メモリ保護、キャッシュコントロールなどがある。
グラフィックス処理ユニット(GPU)108およびビデオエンコーダ/ビデオコーデック(コーダ/デコーダ)114は、高速かつ高解像度のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、バスを介してグラフィックス処理ユニット108からビデオエンコーダ/ビデオコーデック114に運ばれる。ビデオ処理パイプラインは、テレビまたは他のディスプレイに送出するために、データをA/V(オーディオ/ビデオ)ポート140に出力する。メモリコントローラ110は、RAM(ランダムアクセスメモリ)など、ただしそれだけに限定されない様々なタイプのメモリ112にプロセッサが円滑にアクセスできるように、GPU108に接続されている。
マルチメディアコンソール100は、入出力コントローラ120、システム管理コントローラ122、オーディオ処理ユニット123、ネットワークインターフェースコントローラ124、第1のUSBホストコントローラ126、第2のUSBコントローラ128、およびフロントパネル入出力サブアセンブリ130を含み、それらはモジュール118上で実装されることが好ましい。USBコントローラ126および128は、周辺装置コントローラ142(1)〜142(2)、ワイアレスアダプタ148、および外部メモリ装置146(たとえば、フラッシュメモリ、外部CD/DVD ROMドライブ、リムーバブルメディアなど)に対してホストとして働く。ネットワークインターフェース124および/またはワイアレスアダプタ148は、ネットワークへのアクセス(たとえば、インターネット、ホームネットワークなど)を提供し、イーサネット(登録商標)カード、モデム、ブルートゥースモジュール、ケーブルモデムなどを含む、広範囲の様々な有線または無線のインターフェース構成要素のどれでもよい。
不揮発性メモリ143、たとえばフラッシュメモリが、ブート処理時にロードされるアプリケーションデータを記憶するために設けられている。メディアドライブ144が設けられており、それにはDVD/CDドライブ、ハードドライブ、または他のリムーバブルメディアドライブなどが含まれ得る。メディアドライブ144は、マルチメディアコンソール100の内部にあっても外部にあってもよい。アプリケーションデータは、実行、再生などのために、マルチメディアコンソール100によりメディアドライブ144を介してアクセス可能である。メディアドライブ144は、シリアルATAバスまたは他の高速接続(たとえばIEEE1394)などのバスを介して、入出力コントローラ120に接続されている。
システム管理コントローラ122は、マルチメディアコンソール100の可用性を確保することに関係する様々なサービス機能を提供する。オーディオ処理ユニット123およびオーディオコーデック132は、高忠実度ステレオ処理に対応するオーディオ処理パイプラインを形成する。オーディオデータは、オーディオ処理ユニット123とオーディオコーデック132の間を、通信リンクを介して運ばれる。オーディオ処理パイプラインは、オーディオ機能を有する外部のオーディオプレーヤまたは装置による再生のために、データをA/Vポート140に出力する。
フロントパネル入出力アセンブリ130は、電源ボタン150およびイジェクトボタン152、ならびに任意のLED(発光ダイオード)またはマルチメディアコンソール100の外面に出ている他のインディケータの機能をサポートする。システム電源モジュール136は、マルチメディアコンソール100の構成要素に電力を供給する。ファン138は、マルチメディアコンソール100内の回路を冷却する。
CPU101、GPU108、メモリコントローラ110、およびマルチメディアコンソール100内の他の様々な構成要素は、シリアルバス、パラレルバス、メモリバス、周辺バス、および様々なバスアーキテクチャのうち任意のものを使用するプロセッサバスまたはローカルバスを含めて1本または複数のバスを介して相互接続されている。
マルチメディアコンソール100の電源が入ると、アプリケーションデータを、不揮発性メモリ143からメモリ112および/またはキャッシュ102、104にロードし、CPU101上で実行することができる。アプリケーションは、マルチメディアコンソール100上で利用可能な様々なメディアタイプに移行する際に、一貫したユーザ経験を提供するグラフィカルユーザインターフェースを提示することができる。動作にあたっては、メディアドライブ144内に含まれるアプリケーションおよび/または他のメディアを、メディアドライブ144から立ち上げまたは再生して、マルチメディアコンソール100に追加機能を提供することができる。
単にこのシステムをテレビまたは他のディスプレイに接続するだけで、マルチメディアコンソール100をスタンドアローンシステムとして動作させることができる。このスタンドアローンモードでは、マルチメディアコンソール100によって、1人または複数のユーザが、システムと対話し、映画を見、または音楽を聴くことができるようになる。しかし、マルチメディアコンソール100をさらにネットワークインターフェース124またはワイアレスアダプタ148を介して広帯域接続の統合が利用可能になれば、より大きなネットワークコミュニティへの参加者として動作させることができる。
図2は、システムの様々な構成要素を統合して、コード改変、リバースエンジニアリング、改ざんなどを防止するセキュリティ機能を提供する、図1のシステムのさらなる態様を示している。統合装置20は、CPU101、MMU103、キャッシュ104、セキュリティエンジン105、およびバスインターフェース107を備える。様々な構成要素がアドレスバス28およびデータバス26を介して相互接続されている。MMU103は、CPU101の必要に応じてキャッシュライン(たとえば22)が確実にキャッシュ104において出し入れされるように、キャッシュ104に記憶されている記憶内容を制御する。キャッシュ104に記憶されているデータは、CPU101によって操作され、したがって平文(clear)として記憶される。本発明の一態様によれば、キャッシュラインがシステムメモリ112に記憶されるとき、データはセキュリティエンジン105を通過し、メモリ112との間を行き来する際にそれを暗号化および復号化することができる。図2では、キャッシュライン22がキャッシュ104内にある間は平文として記憶されているが、メモリ112に記憶される際にはキャッシュライン22’として暗号化されることを示している。
システムメモリ112は、信頼できないと見なされている。すなわち、システムメモリは、攻撃者によって損なわれ、その内容全体が明らかにされ改変される可能性がある。さらに、バスインターフェース107をシステムメモリ112に接続しているアドレスバスおよびデータバス28、26が監視される可能性もある。一方、統合装置20は安全であると見なされている。装置20の内部にあるバス28、26を監視することはできない。キャッシュ104はセキュリティエンジン105とCPU101の間にあり、やはり信頼できると見なされている。下記でより詳しく述べるように、キャッシュ104からシステムメモリ112への書込みはすべてセキュリティエンジン105によってセキュリティ保護される。システムは、システムRAM112に加えて、信頼できると見なされている安全なメモリ23も含む。この安全なメモリ23は、そのバス28、26が監視されるのを防止するために、統合装置20の内部にあることが好ましい。
メモリ管理ユニット103は、CPU101が効率よく動作し続けられるように、必要なデータが確実にキャッシュ104に存在するようにするタスクを扱う。そのために、必要とされる命令およびデータがメモリ112にあるとき、MMU103は、キャッシュ104との間でデータを交換する。本発明の一態様によれば、セキュリティエンジン105は、キャッシュ104とシステムメモリ112の間を移動すべきデータに適用すべきセキュリティのレベルを決定する。たとえば、セキュリティ保護されたキャッシュライン22’としての、キャッシュライン22のメモリへの移動である。
システムメモリ112に移動するキャッシュ104のあらゆるラインは、それ自体にセキュリティが適用されることが潜在的に可能なので、システム全体への重大な性能の打撃を避けるためにセキュリティが可能な限り迅速に適用されることが重要である。言い換えれば、信頼できないシステムメモリ112に書き込まれたデータにセキュリティを提供することが望ましいが、そうしたセキュリティ追加の代償として重大な性能低下をまねくことは望ましくない。本発明の一態様は、アドレスバスを使用して、セキュリティの適用を制御するための効率的な機構を提供するものである。そのために、システム例で使用されているメモリ管理方式が、セキュリティの適用を決定するのにアドレス機構がどのように使用されるのかを理解するのに有用である。一般に、メモリ管理は、プログラムアドレス空間を物理アドレス空間に変換する様々なアドレス方式を利用する。PowerPCシステムで使用されているこうしたアドレス方式の1つでは、有効アドレスから実アドレスへの変換を使用する。図3は、PowerPC環境で実施されるアドレス変換を説明する助けとなる。異なるプロセッサ環境では、適宜他のアドレス方式を使用することができる。
図3を参照すると、有効アドレス302は、セグメントルックアサイドバッファ(segment lookaside buffer)304や変換ルックアサイドバッファ(translation lookaside buffer)308など1つまたは複数のアドレス変換テーブルを用いて実アドレス310に変換される。プログラムは一般に、連続したアドレス空間(有効アドレス空間と呼ばれる)で動作するが、物理アドレス空間は複数のアプリケーションを収容し、それらによって共用されなければならない。したがって、物理アドレス空間はシステムによって管理され、任意の数の様々なプログラムまたはプログラムの一部分を含むことができる。様々なプログラムの必要性を満たすために、あるシステムでは、プログラムが、連続して見えるがそのプログラムおよびデータの物理的な位置を追跡するメモリ管理ユニットによって管理されているアドレス空間で動作することができる。プログラムはいわゆる有効アドレス空間で動作する。有効アドレス空間は、仮想アドレス空間(すなわちプログラムのすべてを同時に収容することができるアドレス連続体)に変換される。
有効アドレスは、命令フェッチまたはデータアクセスのためにCPU101によって生成されるアドレスである。アドレス変換機構は、その有効アドレス302を実アドレス310に変換しようと試みる。次いで実アドレス310は、メモリ112をアクセスするのに使用される。アドレス変換の第1ステップは、有効アドレス302を仮想アドレス306に変換することである。第2のステップは、仮想アドレス306を実アドレス310に変換することである。図4は、有効アドレス302から仮想アドレス306に変換するプロセスをさらに詳細に示している。セグメントルックアサイドバッファ(SLB)304は、有効セグメントID(Effective Segment ID:ESID)402と仮想セグメントID(Virtual Segment ID:VSID)410の間のマッピングを指定する。SLB304のエントリの数は実装に依存する。SLB304の内容は一般にオペレーティングシステムによって管理される。テーブル304の各SLBエントリは、1つのESID402を1つのVSID410にマッピングする。その場合、VSIDが仮想アドレス306の上位ビットを構成する。残りの下位ビット、ページアドレス情報404およびバイトアドレス情報406は、有効アドレス302から仮想アドレス306に直接マッピングされる。
アドレス変換の第2ステップは、仮想アドレスを実アドレスに変換することである。仮想アドレスから実アドレスへの変換にはページテーブル308’を使用する。概念的には、あらゆる参照を変換するために、ページテーブル308’がアドレス再配置ハードウェアによって探索される。性能上の理由により、ハードウェアは通常、最近使用されたページテーブルエントリを保持する変換ルックアサイドバッファ(TLB)308を維持する。ページテーブル308’を探索する前にTLB308を探索する。あるいは、ページテーブルは、テーブルではなく、必要に応じてTLBエントリを生成するアルゴリズムでもよい。この構成では、アドレス変換がTLB308中に見つからない場合は、1つまたは複数のTLBエントリを生成し、それを使用してTLB308中のエントリを更新することができる。
図5は、仮想アドレスから実アドレスへのマッピングについてさらに詳細に示している。ページテーブル308’(上述の通りこのページテーブルの一部分はTLB308にキャッシュされる)は、仮想ページ番号と実ページ番号の間のマッピングを指定する可変サイズのデータ構造である。一般にページテーブル308’のサイズは4KBの倍数であり、その開始アドレスはそのサイズの倍数であり、アクセスが制限された記憶域に配置されている。すなわちページテーブルはオペレーティングシステムからのみアクセス可能である。VSID410および仮想ページ番号404は、ページテーブル308’に対するインデックスを形成する。その場合、ページテーブル308’は対応する実ページ番号502を有する。実ページ番号502は、実アドレスの上位ビットを形成する。バイトアドレス情報406は仮想アドレス306から直接変換される。
図6は、仮想ページ番号から実ページ番号へのマッピング動作を示している。仮想ページ番号306は、対応するページテーブルエントリ602を検索するために使用される。各ページテーブルエントリ、たとえば502a、502b、502cは、実ページ番号およびページ保護ビット604を含む。ページ保護ビット604は、たとえばページの読取り、書込みなどができるかどうかを示す。ページテーブルエントリの上位26ビット(すなわち0〜25)は、実ページ番号502を形成する。これらの上位ビットは、実ページアドレスを形成することに加えて、このページのセキュリティレベルを示すこともできる。具体的に言うと、ビット0〜11(ビット606)中の様々なビットは、ページが暗号化されているか、保護されているか、あるいはそのどちらでもないかを指示する。さらに、これらのビットは、メモリのページを暗号化し保護するための他の情報を提供する。実ページ番号に記憶されセキュリティビットを含む情報は、アドレス310の一部分を形成する。
図7に移ると、本発明の一態様によるセキュリティシステムがさらに示してある。図7は、セキュリティシステムによって実施される機能のいくつかを示すブロック図を示している。ただし、実装形態の態様は様々である。たとえば、判断ボックス718は論理回路として実装することができる。他の特徴も様々な方式で実装することができる。いずれにせよ、この図は、本発明の諸態様によって実施される一般的な機能を示すのに役立つ。
先に指摘したように、ビット0および1は、アドレスされた位置が保護されているのか、それとも暗号化されているのかを示す。本発明の例示的実施形態では、単一のページテーブルエントリが単一ページ内のすべてのメモリアドレスによって共用されているので、保護はページレベルで制御される。したがって、それらのメモリ位置はすべて同一のセキュリティレベルに属する。ビット0が設定されると保護が使用可能になる。同様に、ビット1が設定されると暗号化が使用可能になる。
暗号化が使用可能でない場合は、ゲート722が使用可能に、ゲート720が使用禁止になり、データ700は平文ブロック724としてメモリ112に記憶される。一方、暗号化が使用可能になっている場合は、データ700は平文ブロック726として暗号化エンジン714に入る。セキュリティエンジン状態710、たとえば暗号化キーなどが、暗号化エンジン714によって適用されて暗号文ブロック726’が作成される。適用される暗号化技法は、AESまたはその何らかの変形など周知の暗号化アルゴリズムのどれでもよい。重要な点は、暗号化エンジンが、ページテーブルに記憶されているアドレス情報によって駆動されることである。したがって、メモリのページを、アドレス情報を介して直接暗号化されるように設定することができる。
保護が使用可能な場合は(暗号化されることもされないこともある)、安全なメモリのオフセットが決定されデータのハッシュも使用可能になる。安全なメモリのオフセットは、アドレス情報の組合せとすることができる。この場合、たとえば、上位ビット、たとえばビット3〜8に記憶されているビットが、下位ビット26〜34と組み合わされて安全なメモリ中へのオフセットが提供される。このオフセットは、インテグリティチェック値を安全なメモリ内のどこに記憶しなければならないかを示す。安全なメモリのオフセットに加えて、ハッシュ関数がデータ700に適用される。ハッシュは、暗号文、平文、またはその両方の関数であってよい。具体的なハッシュ関数は安全なハッシュ関数でよく、データ700の関数であるがサイズが縮小されたどのようなハッシュ関数でもよい。計算されたハッシュ728は、安全なメモリ716内の、安全なメモリのオフセット712で示される位置に記憶される。その後、データ(暗号文726’または平文724としての)がメモリ112(安全でないメモリ)に記憶されるとき、ハッシュ値を使用してそのデータがメモリ112内で改変されたかどうかを判定することができる。ハッシュ値は、データがメモリ112から取り出される際に再計算され、整合性を判定するために記憶されているハッシュ値と比較される。値が整合しない場合は、データがメモリ112に記憶されている間に無許可の変更を受けたことを示していることになる。
図8は、暗号化および/または保護されたデータをメモリ112から取り出すという逆の動作を示している。この場合、暗号化された726’ または平文724いずれかのデータが、メモリ112から取り出される。この場合も、実アドレスの上位ビットが、適用すべきセキュリティのタイプを指示する。ビット1がセットされている場合、データは暗号文として(すなわち、データは以前に暗号文として記憶されていた)ゲート820を通過する。ビット1がセットされていない場合は、平文724がゲート822を通過し、キャッシュ104に記憶される。また、セットされたビット1で指示される暗号文726’が、復号化エンジン714に送り込まれ、そこで平文726に復号化されキャッシュ104に記憶される。
保護ビット0がセットされている場合、メモリ112から取り出されたデータのハッシュ値802が計算される。この例では、平文726のデータがハッシュされるが、暗号文データ726’および/または平文データにハッシュ関数を適用することもできる。さらに、暗号化なしで保護方式を使用することもできる。計算されたハッシュ802は、安全なメモリのオフセット712で示される安全なメモリ716から取り出された記憶されているハッシュ728と比較される。記憶されているハッシュ728と計算されたハッシュが同一でない場合は、メモリが改変されたことを示すセキュリティ例外808が生成される。
図2に戻ると、バスインターフェースをシステムメモリ112に接続するアドレスバス28が、メモリ112をアドレスするために使用される上位ビットを切り捨てることが好ましい。このアドレスは、メモリ112をアドレスするために使用される実アドレスなので、物理アドレスと呼ばれる。本明細書に記載の実装形態の例では、上位12ビット(0〜11)を切り捨てることが好ましい。そうした切り捨てによって残されたビット12〜41が物理アドレスを構成する。
本発明は、アドレスビットを利用してメモリ112に記憶されているデータに適用するべきセキュリティ手段を指示することにより、システムメモリ112に記憶されているデータの完全性およびセキュリティを確保するシステムおよび方法を提供する。セキュリティ手段は、データを特定のセキュリティ手段と関連付ける別のテーブルを必要とせず、アドレス変換テーブルに直接記憶することができる。
上記のシステムおよび方法は例を説明したものにすぎず、特定のアドレス方式またはプロセッサアーキテクチャが必要なことを示すものではない。そうではなく、この例は、一般にアドレスビットを使用してセキュリティ手段を決定することを示すものである。
後述する本発明の実施形態の諸要素は、ハードウェア、ファームウェア、ソフトウェア、またはそれら任意の組合せによって実装することができる。ハードウェアという用語は一般に、電子的、電磁気的、光学的、電気光学的、機械的、電気機械的部品など物理構造を有する要素を指し、ソフトウェアという用語は一般に、論理構造、方法、手順、プログラム、ルーチン、プロセス、アルゴリズム、数式、関数、式などを指す。ファームウェアという用語は一般に、ハードウェア構造(たとえばフラッシュメモリ、ROM、EROM)で実装または実施される、論理構造、方法、手順、プログラム、ルーチン、プロセス、アルゴリズム、数式、関数、式などを指す。ファームウェアの例として、マイクロコード、書込み可能な制御記憶、およびマイクロプログラム式構造がある。本発明の一実施形態の諸要素は、ソフトウェアまたはファームウェアで実装される場合、本質的に、必要なタスクを実行するコードセグメントである。ソフトウェア/ファームウェアは、本発明の一実施形態に記載の動作を実行する実際のコード、あるいはその動作をエミュレートまたはシミュレートするコードを含むことができる。プログラムまたはコードセグメントは、プロセッサまたはマシンからアクセス可能な媒体に記憶することができ、あるいは搬送波中で実施されるコンピュータデータ信号または搬送波で変調された信号により伝送媒体を介して伝送することができる。「プロセッサから読取り可能またはアクセス可能な媒体」あるいは「マシンから読取り可能またはアクセス可能な媒体」は、情報を記憶、伝送、または転送することができるどのような媒体を含むこともできる。プロセッサから読取り可能な、またはマシンからアクセス可能な媒体の例として、電子回路、半導体メモリ装置、読取り専用メモリ(ROM)、フラッシュメモリ、消去可能ROM(EROM)、フロッピー(登録商標)ディスケット、コンパクトディスク(CD)ROM、光ディスク、ハードディスク、光ファイバ媒体、無線周波数(RF)リンクなどがある。コンピュータデータ信号には、電子ネットワークチャネル、光ファイバ、空気、電磁波、RFリンクなどの伝送媒体を介して伝搬することができるどのような信号も含まれ得る。コードセグメントは、インターネット、イントラネットなどのコンピュータネットワークを介してダウンロードすることができる。マシンからアクセス可能な媒体は、製造品中で実施することができる。マシンからアクセス可能な媒体は、マシンからアクセスされたとき、後述する動作をマシンに実行させるデータを含むことができる。マシンからアクセス可能な媒体は、埋め込まれたプログラムコードを含むこともできる。プログラムコードは、後述する動作を実行するための、マシンで読取り可能なコードを含むことができる。「データ」という用語は、ここでは、マシンで読取り可能な目的で符号化されたどのようなタイプの情報も指す。したがって、それには、プログラム、コード、データ、ファイルなどが含まれ得る。
本発明の実施形態の全部または一部は、ハードウェア、ソフトウェア、またはファームウェア、あるいはそれらの任意の組合せによって実施することができる。ハードウェア、ソフトウェア、またはファームウェアの要素は、互いに結合されたいくつかのモジュールを有することができる。ハードウェアモジュールは、機械的、電気的、光学的、電磁気的、または任意の物理的接続により別のモジュールに結合される。ソフトウェアモジュールは、関数、手順、方法、サブプログラムまたはサブルーチンのコール、ジャンプ、リンク、パラメータ、変数、および引数の引渡し、関数からの戻りなどにより別のモジュールに結合される。ソフトウェアモジュールは、変数、パラメータ、引数、ポインタなどを受け取るために、かつ/または、結果、更新済み変数、ポインタなどを生成または引渡しするために、別のモジュールに結合される。ファームウェアモジュールは、上記のハードウェアおよびソフトウェア結合方法の任意の組合せにより、別のモジュールに結合される。ハードウェア、ソフトウェア、またはファームウェアのモジュールは、別のハードウェア、ソフトウェア、またはファームウェアのモジュールのどれに結合されてもよい。モジュールは、プラットフォーム上で走っているオペレーティングシステムと対話するためのソフトウェアドライバまたはインターフェースであってもよい。モジュールは、ハードウェア装置を構成し、セットアップし、初期化し、それとの間でデータを送受信するためのハードウェアドライバでもよい。装置は、ハードウェア、ソフトウェア、およびファームウェアのモジュールのどのような組合せを含むこともできる。
本発明の諸実施形態は、通常はフローチャート、フロー図、構造図、またはブロック図で示されるプロセスとして記述することができる。フローチャートは動作を逐次プロセスとして記述するが、動作の多くは、並行してすなわち同時に実施することができる。さらに、動作の順序を並べ替えることもできる。プロセスは、その動作が完了すると終了する。
本発明の新規な教示および利点から本質的に逸脱せずに、例示的な実施形態において多くの追加修正が可能であることも当業者には容易に理解されよう。こうしたいかなる修正も、添付の特許請求の範囲によって定義される本発明の範囲内に含まれるものである。
本発明の諸態様を実施することができる例示的なコンピュータ環境のブロック図である。 図1のコンピューティング環境などのコンピューティング環境に組み込まれているセキュリティエンジンを示すブロック図である。 コンピューティング環境の一例におけるアドレス空間の変換を示すブロック図である。 有効アドレスを仮想アドレスに変換する諸態様をさらに示すブロック図である。 仮想アドレスを実アドレスに変換する諸態様をさらに示すブロック図である。 コンピューティングシステムのセキュリティの特徴を指示するようにアドレスビットが設定された本発明の諸態様をさらに示すブロック図である。 メモリ内に記憶されているデータを暗号化し保護するためのセキュリティエンジンの一態様を示すブロック図である。 メモリ内に記憶されているデータを復号化し検査するためのセキュリティエンジンの一態様を示すブロック図である。
符号の説明
23 安全なメモリ
100 マルチメディアコンソール
101 中央処理装置(CPU)
102 1次キャッシュ
103 MMU
104 2次キャッシュ
105 セキュリティエンジン
107 バスインターフェース
108 グラフィックス処理ユニット
110 メモリコントローラ
112 システムRAM
114 ビデオエンコーダ/ビデオコーデック
120 入出力コントローラ
122 システム管理コントローラ
123 オーディオ
124 ネットワークインターフェース
126 USBコントローラ
128 USBコントローラ
130 フロントパネル入出力サブアセンブリ
132 オーディオコーデック
136 システム電源モジュール
138 ファン
140 オーディオ/ビデオポート
142(1) コントローラ
142(2) コントローラ
143 不揮発性メモリ
144 メディアドライブ
146 メモリユニット
148 ワイアレスアダプタ

Claims (26)

  1. メモリにデータを記憶するシステムであって、
    CPUと、
    データバスを介して前記CPUに結合され、データバスを介して前記メモリに結合されているセキュリティ機構と、
    複数のアドレスラインを有し、前記アドレスラインのうち少なくとも1本が、前記セキュリティ機構が前記データに対して前記メモリへの記憶前にセキュリティを提供できるようにするアドレスバスとを備えることを特徴とするシステム。
  2. 前記アドレスライン上で設定される値は、メモリ管理ユニットによって決定されることを特徴とする請求項1に記載のシステム。
  3. 前記値は、前記メモリ管理ユニットによって維持されるテーブルの関数であることを特徴とする請求項2に記載のシステム。
  4. 前記セキュリティ機構は、暗号化機構を備えることを特徴とする請求項1に記載のシステム。
  5. 前記セキュリティ機構は、前記データの関数としてインテグリティチェック値を生成するインテグリティチェック機構を含むことを特徴とする請求項1に記載のシステム。
  6. 前記インテグリティチェック機構は、ハッシュ関数を実行することを特徴とする請求項5に記載のシステム。
  7. 前記インテグリティチェック値は、安全なメモリに記憶されることを特徴とする請求項5に記載のシステム。
  8. 前記安全なメモリは、前記CPUと同一の集積回路上にあることを特徴とする請求項7に記載のシステム。
  9. 前記データは、キャッシュから移動した後、システムメモリに記憶される前に暗号化されることを特徴とする請求項4に記載のシステム。
  10. 前記アドレスラインは、前記インテグリティチェック値が安全なメモリのどこに記憶されているのかの指示を提供することを特徴とする請求項7に記載のシステム。
  11. 前記インテグリティチェック値は、キャッシュメモリの1ラインに対して生成されることを特徴とする請求項7に記載のシステム。
  12. データバスを介して前記CPUに結合されデータバスを介して前記メモリに結合された復号化機構をさらに備え、前記暗号化機構がデータを前記メモリへの記憶前に暗号化できるようにする前記アドレスラインのうちの前記少なくとも1本は、メモリから前記データを取り出す際に前記データの復号化を可能にするために使用されることを特徴とする請求項4に記載のシステム。
  13. 前記インテグリティチェック値は、前記データをシステムメモリから取り出す際に生成される第2のインテグリティチェック値と比較されることを特徴とする請求項6に記載のシステム。
  14. 前記セキュリティ機構を使用可能にする前記少なくとも1本のアドレスラインは、上位アドレスラインであることを特徴とする請求項1に記載のシステム。
  15. メモリにデータを記憶する方法であって、
    データバスを介してCPUと通信し、データバスを介して前記メモリと通信するセキュリティ機構を提供するステップと、
    前記セキュリティ機構において、複数のアドレスラインを有するアドレスバスの少なくとも1本のアドレスラインからイネーブル信号を受け取るステップと、
    前記イネーブル信号に応答して前記データにセキュリティを適用するステップとを備えることを特徴とする方法。
  16. 前記イネーブル信号は、メモリ管理ユニットによって決定されることを特徴とする請求項15に記載の方法。
  17. 前記セキュリティ機構は暗号化機構を含み、前記適用されるセキュリティは暗号化であることを特徴とする請求項15に記載の方法。
  18. 前記セキュリティ機構はインテグリティチェック機構を含み、前記適用されるセキュリティは前記データの関数としてのインテグリティチェック値の生成であり、前記アドレスラインの少なくとももう1本のラインは前記インテグリティチェック機構を使用可能にすることを特徴とする請求項15に記載の方法。
  19. 前記インテグリティチェック機構は、ハッシュ関数を実行することを特徴とする請求項18に記載の方法。
  20. 前記インテグリティチェック値を安全なメモリに記憶するステップを備えることを特徴とする請求項18に記載の方法。
  21. 前記安全なメモリを前記CPUと同一の集積回路上に設けるステップを備えることを特徴とする請求項20に記載の方法。
  22. 前記データは、キャッシュから移動した後、システムメモリに記憶される前に暗号化されることを特徴とする請求項17に記載の方法。
  23. 前記アドレスラインは、前記インテグリティチェック値が安全なメモリのどこに記憶されているのかの指示を提供することを特徴とする請求項20に記載の方法。
  24. 前記インテグリティチェック値は、キャッシュメモリの1ラインに対して生成されることを特徴とする請求項20に記載の方法。
  25. データをメモリから取り出す際に、前記データを復号化するステップをさらに備えることを特徴とする請求項17に記載の方法。
  26. 前記インテグリティチェック値を、前記データをシステムメモリから取り出す際に生成される第2のインテグリティチェック値と比較するステップを含むことを特徴とする請求項19に記載の方法。
JP2005217236A 2004-08-27 2005-07-27 アドレスビットを使用してアドレス空間におけるデータのセキュリティ属性を通知するシステムおよび方法 Expired - Fee Related JP4806226B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/928,970 US7444523B2 (en) 2004-08-27 2004-08-27 System and method for using address bits to signal security attributes of data in the address space
US10/928,970 2004-08-27

Publications (2)

Publication Number Publication Date
JP2006065851A true JP2006065851A (ja) 2006-03-09
JP4806226B2 JP4806226B2 (ja) 2011-11-02

Family

ID=35427583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005217236A Expired - Fee Related JP4806226B2 (ja) 2004-08-27 2005-07-27 アドレスビットを使用してアドレス空間におけるデータのセキュリティ属性を通知するシステムおよび方法

Country Status (4)

Country Link
US (1) US7444523B2 (ja)
EP (1) EP1637960B1 (ja)
JP (1) JP4806226B2 (ja)
CN (1) CN1740991B (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012508940A (ja) * 2008-12-31 2012-04-12 インテル コーポレイション セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
JP2013088879A (ja) * 2011-10-13 2013-05-13 Kyocera Document Solutions Inc 情報処理装置
US8468356B2 (en) 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
JP2013538376A (ja) * 2010-09-24 2013-10-10 インテル・コーポレーション リプレーアタックに対して保護されたメモリ暗号化のための調整可能な暗号モード
JP2014523020A (ja) * 2011-06-29 2014-09-08 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
JP2015527008A (ja) * 2012-08-31 2015-09-10 インテル・コーポレーション コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
KR101786006B1 (ko) 2016-01-29 2017-10-17 한국과학기술원 머클 트리 기반 메모리 무결성 검증 방법 및 장치

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734926B2 (en) * 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
US7822993B2 (en) * 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US7653802B2 (en) * 2004-08-27 2010-01-26 Microsoft Corporation System and method for using address lines to control memory usage
US7904706B2 (en) * 2004-12-01 2011-03-08 Innovation First, Inc. System and method for processing encrypted source code updates
US7904943B2 (en) 2004-12-28 2011-03-08 O'connor Dennis M Secure controller for block oriented storage
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
CN101051892B (zh) * 2007-03-14 2010-05-26 江中尧 一种cpu专用数据的加密装置及方法
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US9336410B2 (en) * 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US8181035B1 (en) 2011-06-22 2012-05-15 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8595510B2 (en) 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8261085B1 (en) 2011-06-22 2012-09-04 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8954755B2 (en) 2012-01-23 2015-02-10 International Business Machines Corporation Memory address translation-based data encryption with integrated encryption engine
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9400890B2 (en) * 2012-08-10 2016-07-26 Qualcomm Incorporated Method and devices for selective RAM scrambling
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9507961B2 (en) 2013-07-01 2016-11-29 Qualcomm Incorporated System and method for providing secure access control to a graphics processing unit
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
KR102218202B1 (ko) * 2014-08-01 2021-02-23 삼성전자주식회사 반도체 장치
IL234956A (en) * 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US10657274B2 (en) * 2015-06-29 2020-05-19 Samsng Electronics Co., Ltd. Semiconductor device including memory protector
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
EP3252651A1 (en) 2016-05-30 2017-12-06 Samsung Electronics Co., Ltd Computing system having an on-the-fly encryptor and an operating method thereof

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03141446A (ja) * 1989-10-27 1991-06-17 Hitachi Ltd メモリ保護回路
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2001524229A (ja) * 1997-02-13 2001-11-27 ピーシーエスイーシー,リミティド ライアビリティ カンパニー コンピュータシステムの安全保障性能向上用の安全保障形共同プロセッサ
JP2002244757A (ja) * 2001-02-19 2002-08-30 Sony Corp 半導体回路
JP2002529815A (ja) * 1998-11-05 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の暗号化アルゴリズムを用いるセキュアメモリ管理ユニット
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003280989A (ja) * 2002-03-20 2003-10-03 Toshiba Corp 内部メモリ型耐タンパプロセッサおよび秘密保護方法
WO2003090086A1 (en) * 2002-04-18 2003-10-30 International Business Machines Corporation Control function based on requesting master id and a data address within an integrated system
WO2003104948A1 (ja) * 2002-06-05 2003-12-18 富士通株式会社 メモリ管理ユニット、コード検証装置およびコード復号装置
JP2005521942A (ja) * 2002-03-27 2005-07-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 領域粒状、ハードウェア制御メモリ暗号化を提供するシステムおよび方法

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4930578B1 (ja) 1970-09-30 1974-08-14
US3668651A (en) 1970-12-30 1972-06-06 Ibm Working device code method of i/o control
US3829840A (en) 1972-07-24 1974-08-13 Ibm Virtual memory system
US3827029A (en) 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
US4476524A (en) 1981-07-02 1984-10-09 International Business Machines Corporation Page storage control methods and means
EP0186230A2 (en) 1984-12-21 1986-07-02 Koninklijke Philips Electronics N.V. Memory access controller with parallel checking of virtual address and action word
US4740916A (en) 1985-12-19 1988-04-26 International Business Machines Corporation Reconfigurable contiguous address space memory system including serially connected variable capacity memory modules and a split address bus
US4771458A (en) 1987-03-12 1988-09-13 Zenith Electronics Corporation Secure data packet transmission system and method
US5081675A (en) 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5058164A (en) 1990-05-03 1991-10-15 National Semiconductor Corp. Encryption of streams of addressed information to be used for program code protection
US5233616A (en) 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
GB2251102B (en) 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5224166A (en) 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5347428A (en) 1992-12-03 1994-09-13 Irvine Sensors Corporation Module comprising IC memory stack dedicated to and structurally combined with an IC microprocessor chip
US5634108A (en) 1993-11-30 1997-05-27 Unisys Corporation Single chip processing system utilizing general cache and microcode cache enabling simultaneous multiple functions
US6185546B1 (en) * 1995-10-04 2001-02-06 Intel Corporation Apparatus and method for providing secured communications
US7124302B2 (en) 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5652793A (en) 1995-05-08 1997-07-29 Nvidia Corporation Method and apparatus for authenticating the use of software
US6151618A (en) 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
US6199163B1 (en) 1996-03-26 2001-03-06 Nec Corporation Hard disk password lock
US5944821A (en) 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6026293A (en) 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US5825878A (en) 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
DE19642560A1 (de) 1996-10-15 1998-04-16 Siemens Ag Elektronische Datenverarbeitungsschaltung
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6021201A (en) * 1997-01-07 2000-02-01 Intel Corporation Method and apparatus for integrated ciphering and hashing
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6061449A (en) 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
US7225333B2 (en) 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
JP4086445B2 (ja) 2000-03-09 2008-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報送信方法、ネットワーク・プロバイダ・サーバ、情報端末及び情報端末における方法
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7117373B1 (en) 2000-11-28 2006-10-03 Xilinx, Inc. Bitstream for configuring a PLD with encrypted design data
US7526795B2 (en) 2001-03-27 2009-04-28 Micron Technology, Inc. Data security for digital data storage
US20020147918A1 (en) 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US7603703B2 (en) 2001-04-12 2009-10-13 International Business Machines Corporation Method and system for controlled distribution of application code and content data within a computer network
GB2385951A (en) * 2001-09-21 2003-09-03 Sun Microsystems Inc Data encryption and decryption
US7526654B2 (en) 2001-10-16 2009-04-28 Marc Charbonneau Method and system for detecting a secure state of a computer system
US7272832B2 (en) 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US6745307B2 (en) 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer
US6735673B2 (en) 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
EP1331539B1 (en) 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7107459B2 (en) 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US7266842B2 (en) 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US7139890B2 (en) 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
EP1563380B1 (en) 2002-11-18 2006-07-19 ARM Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
US8261063B2 (en) 2003-02-03 2012-09-04 Hewlett-Packard Development Company, L.P. Method and apparatus for managing a hierarchy of nodes
JP4945053B2 (ja) 2003-03-18 2012-06-06 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
US7111146B1 (en) 2003-06-27 2006-09-19 Transmeta Corporation Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03141446A (ja) * 1989-10-27 1991-06-17 Hitachi Ltd メモリ保護回路
JP2001524229A (ja) * 1997-02-13 2001-11-27 ピーシーエスイーシー,リミティド ライアビリティ カンパニー コンピュータシステムの安全保障性能向上用の安全保障形共同プロセッサ
JP2002529815A (ja) * 1998-11-05 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の暗号化アルゴリズムを用いるセキュアメモリ管理ユニット
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2002244757A (ja) * 2001-02-19 2002-08-30 Sony Corp 半導体回路
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003280989A (ja) * 2002-03-20 2003-10-03 Toshiba Corp 内部メモリ型耐タンパプロセッサおよび秘密保護方法
JP2005521942A (ja) * 2002-03-27 2005-07-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 領域粒状、ハードウェア制御メモリ暗号化を提供するシステムおよび方法
WO2003090086A1 (en) * 2002-04-18 2003-10-30 International Business Machines Corporation Control function based on requesting master id and a data address within an integrated system
JP2005523519A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能
WO2003104948A1 (ja) * 2002-06-05 2003-12-18 富士通株式会社 メモリ管理ユニット、コード検証装置およびコード復号装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468356B2 (en) 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US9442865B2 (en) 2008-12-31 2016-09-13 Intel Corporation Processor extensions for execution of secure embedded containers
JP2012508940A (ja) * 2008-12-31 2012-04-12 インテル コーポレイション セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
JP2013242893A (ja) * 2008-12-31 2013-12-05 Intel Corp セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
US9268594B2 (en) 2008-12-31 2016-02-23 Intel Corporation Processor extensions for execution of secure embedded containers
JP2013538376A (ja) * 2010-09-24 2013-10-10 インテル・コーポレーション リプレーアタックに対して保護されたメモリ暗号化のための調整可能な暗号モード
JP2014523020A (ja) * 2011-06-29 2014-09-08 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
JP2013088879A (ja) * 2011-10-13 2013-05-13 Kyocera Document Solutions Inc 情報処理装置
JP2015527008A (ja) * 2012-08-31 2015-09-10 インテル・コーポレーション コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
US9858202B2 (en) 2012-12-29 2018-01-02 Intel Corporation Low overhead paged memory runtime protection
KR101786006B1 (ko) 2016-01-29 2017-10-17 한국과학기술원 머클 트리 기반 메모리 무결성 검증 방법 및 장치

Also Published As

Publication number Publication date
JP4806226B2 (ja) 2011-11-02
EP1637960A2 (en) 2006-03-22
EP1637960B1 (en) 2019-09-25
US20060048221A1 (en) 2006-03-02
CN1740991A (zh) 2006-03-01
EP1637960A3 (en) 2006-11-29
US7444523B2 (en) 2008-10-28
CN1740991B (zh) 2010-10-27

Similar Documents

Publication Publication Date Title
JP4806226B2 (ja) アドレスビットを使用してアドレス空間におけるデータのセキュリティ属性を通知するシステムおよび方法
US7822993B2 (en) System and method for using address bits to affect encryption
US7734926B2 (en) System and method for applying security to memory reads and writes
Henson et al. Memory encryption: A survey of existing techniques
Li et al. Crossline: Breaking" security-by-crash" based memory isolation in amd sev
KR101457355B1 (ko) 보안 애플리케이션 실행을 제공하는 방법 및 장치
US8522042B2 (en) Method and apparatus for enforcement of software licence protection
US7694151B1 (en) Architecture, system, and method for operating on encrypted and/or hidden information
US8296849B2 (en) Method and apparatus for removing homogeneity from execution environment of computing system
US10237059B2 (en) Diversified instruction set processing to enhance security
JP4876053B2 (ja) トラステッド・デバイス集積回路
JP2015537274A (ja) 低電力状態の間にメモリ領域を保護する方法及び装置
US11748490B2 (en) Computer system with moving target defenses against vulnerability attacks
KR20220165775A (ko) 입상 보호 데이터에 대한 데이터 무결성 체크
KR20120007012A (ko) 콘텐츠의 적응적 보호를 위한 메모리 장치 및 방법
US7356668B2 (en) System and method for using address bits to form an index into secure memory
US7653802B2 (en) System and method for using address lines to control memory usage
US10169251B1 (en) Limted execution of software on a processor
US20230259660A1 (en) Integrity tree for memory security
JP2007310601A (ja) マイクロコンピュータおよびそのソフトウェア保護方法
JP2005039864A (ja) ソフトウェアの保護機能付き情報処理装置およびソフトウェアの保護機能付き情報処理方法
JP6494143B2 (ja) 装置、方法、集積回路、プログラム、及び有形のコンピュータ可読記憶媒体
KR20090000566A (ko) 보안 영역을 제공하는 장치 및 그 방법
JP6316370B2 (ja) 装置、方法、集積回路、プログラム、及び有形のコンピュータ可読記憶媒体
JP2004280678A (ja) データ処理装置、およびデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110517

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110713

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4806226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees