JP6402034B2 - コンピュータ内の情報を安全に保つシステム及び方法 - Google Patents
コンピュータ内の情報を安全に保つシステム及び方法 Download PDFInfo
- Publication number
- JP6402034B2 JP6402034B2 JP2014530797A JP2014530797A JP6402034B2 JP 6402034 B2 JP6402034 B2 JP 6402034B2 JP 2014530797 A JP2014530797 A JP 2014530797A JP 2014530797 A JP2014530797 A JP 2014530797A JP 6402034 B2 JP6402034 B2 JP 6402034B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- agent
- software
- cpu
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 58
- 238000012795 verification Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 5
- KJLPSBMDOIVXSN-UHFFFAOYSA-N 4-[4-[2-[4-(3,4-dicarboxyphenoxy)phenyl]propan-2-yl]phenoxy]phthalic acid Chemical compound C=1C=C(OC=2C=C(C(C(O)=O)=CC=2)C(O)=O)C=CC=1C(C)(C)C(C=C1)=CC=C1OC1=CC=C(C(O)=O)C(C(O)=O)=C1 KJLPSBMDOIVXSN-UHFFFAOYSA-N 0.000 claims description 2
- 230000000903 blocking effect Effects 0.000 claims 1
- 238000003860 storage Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004040 coloring Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 101100452681 Arabidopsis thaliana INVD gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012419 revalidation Methods 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 101150050201 sec11 gene Proteins 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
1.キャッシュの幾何配置(ジオメトリ)及び連想(アソシアティビティ)を、例えばサポートされたインタフェースを用いて又は直接評価により決定する(例えば、一つの既知の技術は異なるサイズのメモリ領域へのアクセス時間を測定する;キャッシュヒットがキャッシュミスより遥かに速い)
2.物理アドレスで動作する一般的なキャッシュに対してキャッシュ内に共存し得る物理ページの最大セットを決定する。キャッシュメモリをインデックスするために代わりに仮想アドレスを使用する(場合によっては追加の物理アドレスタグを使用する)プロセッサに対して、エージェント5100はマップされたメモリの全部がキャッシュ内に同時に共存できることを保証するように仮想アドレスの割り当てを管理すべく設定することができる。
3.発見された物理ページのセットを、例えばハイパーバイザ,OS又はアプリケーションにより使用される仮想アドレスに割り当てることができる唯一のページとして維持する。しかしながら(以下に記載するように)、一つの代案として、仮想対物理ページマッピング及び/又は物理メモリの特定領域はキャッシュ不能としてマークすることができ、従って唯一のキャッシュページが共存し得る物理ページのセット(上記のステップ2参照)内の1つであれば、任意のマッピングも可能であることに注意されたい。
1.キャッシュの幾何配置(ジオメトリ)及び連想(アソシアティビティ)を、例えば既知のサポートされたインタフェースを用いて又は直接評価により決定する。
2.キャッシュが物理アドレスで動作することに注意しながらキャッシュ内に共存し得る物理ページの最大セットを決定する。上記の方法では、代わりに仮想アドレスを使用して(場合によっては追加の物理アドレスタグを使用する)、キャッシュメモリをインデックスするプロセッサに対して、エージェント5100は、仮想アドレスの割り当てを管理すべく設定して、マップされたメモリの全部がキャッシュ内に同時に共存できることを保証する。
3.決定された物理ページのセットを、例えばハイパーバイザ,OS又はアプリケーションにより使用される仮想アドレスに割り当てることができる唯一のページとして維持する。上述したように、代案として、仮想対物理ページマッピング及び/又は物理メモリの特定領域はキャッシュ不能としてマークすることができることに注意されたい。
4.上述したページのセット外の任意のメモリを読み出すために、OS又はハイパーバイザは任意のサポートされたプロセッサ方法を使用して、キャッシュをバイパスしながらメモリをCPUレジスタ内に読み込むことができる。一旦コピーされたメモリがプロセッサレジスタ内に入れば、レジスタ内容はキャッシュを占める物理ページの1つにコピーしても安全である。
5.上述したページのセット外の任意のメモリを書き込むために、ステップ4に対して逆の論理を使用する。
6.CPUをDMAによるアクセスから保護するために、IOMMU(x86アーキテクチャ等の多くの現在のプロセッサアーキテクチャに設けられている)又は他のCPU特有方法を、キャッシュ占有ページへのDMAを阻止するように設定する。
1.キャッシュした内容を無効にする。
2.検査すべきページセット内のすべてのバイト(又は他のメモリ単位)を読み出す。
3.プロセッサキャッシュパフォーマンスカウンタの値(キャッシュミスの数)を記録する。
4.ステップ2を繰り返す。即ち、すべてのバイト(又は他のメモリ単位)を再度読み出す。
5.プロセッサキャッシュパフォーマンスカウンタの値(キャッシュミスの数)を再び読み出す。
6.その結果を比較する。キャッシュミスの数がステップ3と同数である場合、これは全レンジの再読み出しが全くミスを生じなかったことを示すため、すべてのページはキャッシュに共存していたとする。
1.検査すべきページセット内のすべてのバイト(又は他のメモリ単位)を読み出す。
2.バスアナライザを用いて、メインプロセッサによるメインメモリへの如何なるアクセスも測定開始する。
3.ステップ1を繰り返す。
4.バスアナライザの結果を分析する。特に、ページセット内のアドレスからの如何なる読み出しも検索する。そのレンジ内に読み出しがなければ、すべてのページはキャッシュに共存していたとする。
1)エージェントローダコードをシステムメインメモリに他のアプリケーションと同様に読み込む。この段階では、エージェントコードはメインメモリにおいて見えるかもしれないので、悪意の攻撃を受けるかもしれない。
2)インテル指定の、よって既知のTXT技術のオペレーションに従って、エージェントローダコードをMLE(メジャード・ラウンチ・エンバイロンメント)において実行してエージェント5100をキャッシュ5000に読み込み、エージェントハッシュ値をTPM3100に記録する。MLEはDMAからのエージェントローダコーダ全体の保護を提供する。この段階ではメモリ内に読み込まれた秘密情報は存在せず、エージェントローダコードのみが存在する。
3)キャッシュしたエージェントコードを再ハッシュし、リモートシステムを介して(好ましくは専用ネットワークエージェントを通じて)TPMと通信し、この再ハッシュ値を先に格納されたエージェントハッシュ値と比較する。両ハッシュ値が一致する場合、キャッシュしたエージェントは認証され、実行時に変更されずに動作することが知られる。
4)今ではエージェントは安全に読み込まれ、すべての実行はCPUキャッシュ内でのみ起こるため、個人情報(記憶鍵、VM画像等)を、エージェント5100を実行するホストに送ることができる。CPUはCPU自体の外部と通信する必要なしに暗号鍵を安全に生成し、キャッシュに存在させることができる点に注意されたい。
1. TO:OS/ハイパーバイザ2000のカーネルイメージがメモリ領域9500に読み込まれる。この時点では、領域9500内の全ての情報は平文であり、つまり、どの情報もまだ安全でない。
2. T1:OS/ハイパーバイザカーネルは、エージェント5100を初期化し、(エージェント5100はその後カーネルを非コンフリクトページのセットのみに制限するように物理メモリのキャッシュ特性を管理する)、IOMMUを設定し、適切な実行時状態に入る。
3. T2:エージェント5100はキャッシュでバックアップされるメモリ領域9500を、追い出し・検出・フィル・パターンで満たす。
4. T3−Tn:システムはキャッシュのみから実行される。キャッシュをバックアップするメモリ領域9500は実行状態の暗号化バージョンではなく、むしろフィルパターンを含む「ステイル(古い)」メモリである。エージェント5100は周期的にメモリ領域9500を検査し、このフィルパターンが無傷であるかどうか及び従って幾つかのキャッシュラインがエビクションのために漏洩したかどうかを検査する。
Claims (23)
- コンピュータ内の情報を安全に保つシステムにおいて、
命令を受信し実行するとともにデータを処理する少なくとも1つのコア(1100)を含む中央処理デバイス(CPU)(1000)、
前記CPU内のキャッシュ(5000)、
システムメモリアドレス空間を有するシステムメモリ、
前記CPU上で動作し、前記システムメモリに格納された命令及びデータとして少なくとも部分的に具体化されるソフトウェアスタック(2000、6200、6300)、及び
前記キャッシュに格納されるエージェント(5100)であって暗号化/復号化モジュール(5110)を備えるエージェント(5100)を備え、前記暗号化/復号化モジュール(5110)は、
前記CPUから送信された情報をインターセプトし、
前記情報を暗号化し、
当該暗号化された情報を前記CPUの論理境界外へ戻し、
前記エージェントは、前記キャッシュの一部をロックダウンするプロセッサモードに依存すること無く、ソフトウェアクリプトプロセッサとして動作することを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
前記エージェント(5100)は前記情報をブロック単位で暗号化し、
前記エージェントは、符号化され、格納された各情報ブロックと検証値を関連付ける検証モジュール(5120)を含む、
ことを特徴とする請求項1記載のシステム。 - 請求項2記載のシステムにおいて、更に、
前記検証モジュール(5120)はその後各情報ブロックについて前記検証値を再計算し、前記再計算された前記検証値を先に関連付けられた対応する検証値と比較し、それによって前記検証モジュール(5120)は前記情報ブロックに対する如何なる変更も検出することができる、
ことを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
前記ソフトウェアスタックは前記キャッシュ(5000)をバックアップする前記システムメモリアドレス空間の第1の部分上で動作し、前記ソフトウェアスタック内のエンティティによる前記第1の部分へアドレスされる読み出し又は書き込み要求は、システムメモリにアクセスすることなく前記キャッシュによって実行される、
ことを特徴とするシステム。 - 請求項4記載のシステムにおいて、更に、
前記ソフトウェアスタックはシステムメモリ空間の第2の暗号化された部分(9000)にもアドレスする、
ことを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
デバイスメモリ(6710)を含む少なくとも1つのI/Oデバイス(6700)、及び、
前記I/Oデバイスが前記エージェント(5100)の監視の下で所定のI/O動作のために前記キャッシュにのみアドレスしアクセスするように設定されたI/Oメモリ管理部(1300)を備える、
ことを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
I/Oチャネル(9600)を介する直接メモリアクセス(DMA)用に設定された少なくとも1つのI/Oデバイス(6700)、及び
前記キャッシュへのDMAを阻止するように設定されたI/Oメモリ管理部(1300)を備える、
ことを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
前記ソフトウェアスタック内の他のソフトウェアの実行前に前記エージェント(5100)を前記キャッシュ(5000)に安全に読み込むように設けられた信頼されるプロセッサモジュール(TPM)コンポーネント(3100)を備える、
ことを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
前記ソフトウェアスタックはハイパーバイザ及び少なくとも1つの仮想マシン(6200)を含む、
ことを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
前記ソフトウェアスタックは変更されてないコモディティソフトウェアを実行するため
に設けられたインタプリタを含む、
ことを特徴とするシステム。 - 請求項1記載のシステムにおいて、更に、
前記エージェントは実行時間中、前記キャッシュに常駐することを特徴とするシステム。 - 命令を受信し実行するとともにデータを処理する少なくとも1つのコア(1100)を含む中央処理装置(CPU)(1000)、
前記CPU内のキャッシュ(5000)、
システムメモリアドレス空間を有するシステムメモリ、及び
前記CPU上で動作し、前記システムメモリに格納された命令及びデータとして少なくとも部分的に具体化されるソフトウェアスタック(2000、6200、6300)を有するコンピュータ内の情報を安全に保つ方法において、
前記キャッシュにエージェント(5100)を読み込むステップと、
前記CPUから送信された情報を前記エージェントによってインターセプトするステップと、
前記情報を前記エージェントによって暗号化するステップと、
当該暗号化された情報を前記エージェントによって前記CPUの論理境界外へ戻すステップと、
を含み、
前記エージェントは、前記キャッシュの一部をロックダウンするプロセッサモードに依存すること無く、ソフトウェアクリプトプロセッサとして動作することを特徴とする方法。 - 請求項12記載の方法において、更に、
前記情報をメモリブロック単位で暗号化するステップ、
検証データを計算し、前記検証データを暗号化された各メモリブロックと関連付けるステップを備える、
ことを特徴とする方法。 - 請求項13記載の方法において、更に、
前記メモリブロックはメモリページである、
ことを特徴とする方法。 - 請求項13記載の方法において、更に、
各情報ブロックについて前記検証データを再計算し、前記再計算した前記検証データを先に関連付けられた対応する検証データと比較するステップを備え、それにより前記情報ブロックに対する変更を検出する、
ことを特徴とする方法。 - 請求項12記載の方法において、更に、
前記ソフトウェアスタックを、前記キャッシュ(5000)をバックアップする前記システムメモリアドレス空間の第1の部分上で実行するステップ、
前記ソフトウェアスタック内のエンティティによる前記第1の部分へアドレスされる読み出し又は書き込み要求を、システムメモリにアクセスすることなく、前記キャッシュ内で実行するステップを備える、
ことを特徴とする方法。 - 請求項16記載の方法において、更に、
前記ソフトウェアスタックに、前記暗号化された情報部分を含む、前記システムメモリアドレス空間の第2の部分(9000)にもアドレスすることを許すステップを備える、ことを特徴とする方法。 - 請求項12記載の方法において、更に、
前記コンピュータは、デバイスメモリ(6710)を含む少なくとも1つのI/Oデバイス(6700)を含み、
前記I/Oデバイスに、所定のI/O動作に対してのみ前記キャッシュへアドレスし及びアクセスすることを許すステップを更に備える、
ことを特徴とする方法。 - 請求項12記載の方法において、更に、
前記コンピュータは、デバイスメモリ(6710)を含む少なくとも1つのI/Oデバイス(6700)を含み、
前記I/Oデバイスによる前記キャッシュへの直接メモリアクセス(DMA)を阻止するステップを更に備える、
ことを特徴とする方法。 - 請求項12記載の方法において、更に、
前記ソフトウェアスタックにおける他のソフトウェアの実行前に前記エージェント(5100)をキャッシュ(5000)に安全に読み込む、
ことを特徴とする方法。 - 請求項12記載の方法において、更に、
前記システムメモリアドレス空間はメモリブロックに編成され、
前記メモリブロックの非キャッシュコンフリクトセットを決定するステップ、及び
前記非キャッシュコンフリクトセットと関連する前記システムメモリのみをキャッシュ可能としてマークし、それにより前記システムメモリによるキャッシュコンフリクトを防止するステップを更に備える、
ことを特徴とする方法。 - 請求項12記載の方法において、更に、
前記ソフトウェアスタック内の変更されてないソフトウェアを、インタプリタを用いて実行するステップを備える、
ことを特徴とする方法。 - 請求項12記載の方法において、更に、
キャッシュバックアップメモリ領域(9500)にデータパターンを格納するステップ、及び
前記キャッシュバックアップメモリ領域の内容を検査して前記データパターンの変化を決定し、前記キャッシュバックアップメモリ領域への前記キャッシュの内容の少なくとも一部分の追い出しを示すステップを備える、
ことを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161534220P | 2011-09-13 | 2011-09-13 | |
US61/534,220 | 2011-09-13 | ||
PCT/US2012/055210 WO2013040241A1 (en) | 2011-09-13 | 2012-09-13 | Software cryptoprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014529262A JP2014529262A (ja) | 2014-10-30 |
JP6402034B2 true JP6402034B2 (ja) | 2018-10-10 |
Family
ID=47830929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014530797A Expired - Fee Related JP6402034B2 (ja) | 2011-09-13 | 2012-09-13 | コンピュータ内の情報を安全に保つシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9164924B2 (ja) |
EP (1) | EP2756438B1 (ja) |
JP (1) | JP6402034B2 (ja) |
WO (1) | WO2013040241A1 (ja) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164924B2 (en) * | 2011-09-13 | 2015-10-20 | Facebook, Inc. | Software cryptoprocessor |
US9596082B2 (en) * | 2011-12-15 | 2017-03-14 | Intel Corporation | Secure debug trace messages for production authenticated code modules |
US9338656B2 (en) * | 2012-03-28 | 2016-05-10 | Intel Corporation | Conditional limited service grant based on device verification |
US9569633B2 (en) * | 2012-06-29 | 2017-02-14 | Intel Corporation | Device, system, and method for processor-based data protection |
US9063891B2 (en) * | 2012-12-19 | 2015-06-23 | Advanced Micro Devices, Inc. | Secure computer system for preventing access requests to portions of system memory by peripheral devices and/or processor cores |
WO2014164937A1 (en) * | 2013-03-12 | 2014-10-09 | Green Hills Software, Inc. | Single-chip virtualizing and obfuscating communications system |
US9846656B2 (en) | 2013-04-17 | 2017-12-19 | Laurence H. Cooke | Secure computing |
US9280490B2 (en) | 2013-04-17 | 2016-03-08 | Laurence H. Cooke | Secure computing |
US9514789B2 (en) * | 2013-06-27 | 2016-12-06 | Steven Bress | Systems and methods for safely moving short term memory devices while preserving, protecting and examining their digital data |
US20150052616A1 (en) | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
US9477603B2 (en) | 2013-09-05 | 2016-10-25 | Facebook, Inc. | System and method for partitioning of memory units into non-conflicting sets |
US9983894B2 (en) | 2013-09-25 | 2018-05-29 | Facebook, Inc. | Method and system for providing secure system execution on hardware supporting secure application execution |
US10049048B1 (en) | 2013-10-01 | 2018-08-14 | Facebook, Inc. | Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor |
US9471511B2 (en) * | 2013-11-24 | 2016-10-18 | Truly Protect Oy | System and methods for CPU copy protection of a computing device |
US9213653B2 (en) * | 2013-12-05 | 2015-12-15 | Intel Corporation | Memory integrity |
US9747450B2 (en) | 2014-02-10 | 2017-08-29 | Facebook, Inc. | Attestation using a combined measurement and its constituent measurements |
US9734092B2 (en) | 2014-03-19 | 2017-08-15 | Facebook, Inc. | Secure support for I/O in software cryptoprocessor |
WO2015157842A1 (en) * | 2014-04-16 | 2015-10-22 | Elliptic Technologies Inc. | Secured memory system and method therefor |
US10019603B2 (en) | 2014-04-16 | 2018-07-10 | Synopsys, Inc. | Secured memory system and method therefor |
TW201546649A (zh) * | 2014-06-05 | 2015-12-16 | Cavium Inc | 用於基於硬體安全模組的基於雲端的web服務安全管理的系統和方法 |
US10169618B2 (en) * | 2014-06-20 | 2019-01-01 | Cypress Semiconductor Corporation | Encryption method for execute-in-place memories |
US10691838B2 (en) | 2014-06-20 | 2020-06-23 | Cypress Semiconductor Corporation | Encryption for XIP and MMIO external memories |
US10192062B2 (en) | 2014-06-20 | 2019-01-29 | Cypress Semiconductor Corporation | Encryption for XIP and MMIO external memories |
US9703718B2 (en) * | 2014-06-27 | 2017-07-11 | International Business Machines Corporation | Managing read tags in a transactional memory |
US9785801B2 (en) * | 2014-06-27 | 2017-10-10 | Intel Corporation | Management of authenticated variables |
US10210087B1 (en) | 2015-03-31 | 2019-02-19 | EMC IP Holding Company LLC | Reducing index operations in a cache |
US10922228B1 (en) | 2015-03-31 | 2021-02-16 | EMC IP Holding Company LLC | Multiple location index |
AU2016239858B2 (en) | 2015-04-02 | 2021-07-01 | Intervet International B.V. | Antibodies to canine interleukin-4 receptor alpha |
US10650142B1 (en) * | 2015-06-24 | 2020-05-12 | Ca, Inc. | Systems and methods for detecting potentially malicious hardware-related anomalies |
US10140457B2 (en) * | 2015-07-31 | 2018-11-27 | Intel Corporation | Secure input/output device management |
US9767318B1 (en) * | 2015-08-28 | 2017-09-19 | Frank Dropps | Secure controller systems and associated methods thereof |
US9881178B1 (en) | 2015-09-22 | 2018-01-30 | Intranext Software, Inc. | Method and apparatus for protecting sensitive data |
US10102151B2 (en) * | 2015-11-06 | 2018-10-16 | International Business Machines Corporation | Protecting a memory from unauthorized access |
US10585809B2 (en) * | 2016-04-01 | 2020-03-10 | Intel Corporation | Convolutional memory integrity |
US10210323B2 (en) * | 2016-05-06 | 2019-02-19 | The Boeing Company | Information assurance system for secure program execution |
US10257496B2 (en) * | 2016-07-26 | 2019-04-09 | Qcify Inc. | Quality inspection data distributed ledger |
US11451761B2 (en) * | 2016-07-26 | 2022-09-20 | Qcify Inc. | Sub stream auto sampling |
US10176122B2 (en) * | 2016-10-19 | 2019-01-08 | Advanced Micro Devices, Inc. | Direct memory access authorization in a processing system |
US10565130B2 (en) * | 2017-09-25 | 2020-02-18 | Intel Corporation | Technologies for a memory encryption engine for multiple processor usages |
EP3460709B1 (en) * | 2017-09-26 | 2022-02-09 | Secure-IC SAS | Devices and methods for secured processors |
US11151266B2 (en) | 2017-12-06 | 2021-10-19 | International Business Machines Corporation | Secure data storage and access during transition operations |
EP3762846B1 (en) * | 2018-04-11 | 2023-06-07 | Google LLC | Mutually distrusting enclaves |
US11445363B1 (en) | 2018-06-21 | 2022-09-13 | Intranext Software, Inc. | Method and apparatus for protecting sensitive data |
US10922439B2 (en) * | 2018-06-29 | 2021-02-16 | Intel Corporation | Technologies for verifying memory integrity across multiple memory regions |
KR102558901B1 (ko) * | 2018-09-19 | 2023-07-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
DE102019201922A1 (de) | 2019-02-14 | 2020-08-20 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Verarbeiten von in einer Speichereinrichtung gespeicherten Daten |
US11537421B1 (en) * | 2019-06-07 | 2022-12-27 | Amazon Technologies, Inc. | Virtual machine monitor providing secure cryptographic operations |
US10579806B1 (en) * | 2019-08-27 | 2020-03-03 | Zeus Sw Defender, Llc | Systems and methods for dynamic reencryption of code pointers |
US11144647B2 (en) * | 2019-08-30 | 2021-10-12 | Qualcomm Incorporated | System and method for secure image load boot flow using hashed metadata |
US11436342B2 (en) | 2019-12-26 | 2022-09-06 | Intel Corporation | TDX islands with self-contained scope enabling TDX KeyID scaling |
EP4060545A1 (de) * | 2021-03-19 | 2022-09-21 | Siemens Mobility GmbH | Ermittlung einer aktivität einer verschlüsselung eines speichers |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6129458A (en) | 1994-03-23 | 2000-10-10 | At&T Global Information Solutions Company | Cache optimization method |
US20020116595A1 (en) | 1996-01-11 | 2002-08-22 | Morton Steven G. | Digital signal processor integrated circuit |
US5875472A (en) | 1997-01-29 | 1999-02-23 | Unisys Corporation | Address conflict detection system employing address indirection for use in a high-speed multi-processor system |
US6044478A (en) | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6223256B1 (en) | 1997-07-22 | 2001-04-24 | Hewlett-Packard Company | Computer cache memory with classes and dynamic selection of replacement algorithms |
EP0907285A1 (en) * | 1997-10-03 | 1999-04-07 | CANAL+ Société Anonyme | Downloading data |
US6026475A (en) | 1997-11-26 | 2000-02-15 | Digital Equipment Corporation | Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space |
US6389442B1 (en) * | 1997-12-30 | 2002-05-14 | Rsa Security Inc. | Efficient finite field multiplication in normal basis |
US7671864B2 (en) * | 2000-01-14 | 2010-03-02 | Roman Kendyl A | Faster image processing |
US7437408B2 (en) | 2000-02-14 | 2008-10-14 | Lockheed Martin Corporation | Information aggregation, processing and distribution system |
EP1150213B1 (en) | 2000-04-28 | 2012-01-25 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Data processing system and method |
US6947052B2 (en) | 2001-07-13 | 2005-09-20 | Texas Instruments Incorporated | Visual program memory hierarchy optimization |
US6697927B2 (en) * | 2001-09-28 | 2004-02-24 | Hewlett-Packard Development Company, L.P. | Concurrent non-blocking FIFO array |
US8135962B2 (en) * | 2002-03-27 | 2012-03-13 | Globalfoundries Inc. | System and method providing region-granular, hardware-controlled memory encryption |
JP3900025B2 (ja) | 2002-06-24 | 2007-04-04 | 日本電気株式会社 | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 |
US20100062844A1 (en) | 2003-03-05 | 2010-03-11 | Bally Gaming, Inc. | Authentication and validation systems for gaming devices |
US7266661B2 (en) | 2004-05-27 | 2007-09-04 | Silverbrook Research Pty Ltd | Method of storing bit-pattern in plural devices |
US7434000B1 (en) | 2004-06-30 | 2008-10-07 | Sun Microsystems, Inc. | Handling duplicate cache misses in a multithreaded/multi-core processor |
JP4447977B2 (ja) | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
JP4490192B2 (ja) * | 2004-07-02 | 2010-06-23 | 株式会社エヌ・ティ・ティ・ドコモ | マルチタスク実行システム |
US7657756B2 (en) * | 2004-10-08 | 2010-02-02 | International Business Machines Corporaiton | Secure memory caching structures for data, integrity and version values |
US8037250B1 (en) | 2004-12-09 | 2011-10-11 | Oracle America, Inc. | Arbitrating cache misses in a multithreaded/multi-core processor |
US7930484B2 (en) | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
JP2006350494A (ja) * | 2005-06-14 | 2006-12-28 | Hitachi High-Technologies Corp | 情報処理装置 |
US20070079120A1 (en) | 2005-10-03 | 2007-04-05 | Bade Steven A | Dynamic creation and hierarchical organization of trusted platform modules |
US8352718B1 (en) * | 2005-11-29 | 2013-01-08 | American Megatrends, Inc. | Method, system, and computer-readable medium for expediting initialization of computing systems |
US20080022160A1 (en) * | 2005-12-30 | 2008-01-24 | Skyetek, Inc. | Malware scanner for rfid tags |
US7711902B2 (en) | 2006-04-07 | 2010-05-04 | Broadcom Corporation | Area effective cache with pseudo associative memory |
RU2296363C1 (ru) | 2006-04-27 | 2007-03-27 | Общество с ограниченной ответственностью "АСТРОМА" | Способ и средство защиты программного обеспечения от несанкционированного использования |
US20080010413A1 (en) | 2006-07-07 | 2008-01-10 | Krishnan Kunjunny Kailas | Method and apparatus for application-specific dynamic cache placement |
US7774622B2 (en) | 2006-11-06 | 2010-08-10 | Cisco Technology, Inc. | CRPTO envelope around a CPU with DRAM for image protection |
US8615665B2 (en) * | 2007-01-26 | 2013-12-24 | Harris Corporation | Method for providing high assurance integrity of installed software images in a software defined radio |
JP2008234052A (ja) * | 2007-03-16 | 2008-10-02 | Hitachi Ltd | ストレージ装置 |
US8726364B2 (en) * | 2008-06-30 | 2014-05-13 | Intel Corporation | Authentication and access protection of computer boot modules in run-time environments |
EP2141883A1 (en) * | 2008-07-04 | 2010-01-06 | Alcatel, Lucent | A method in a peer for authenticating the peer to an authenticator, corresponding device, and computer program product therefore |
US8782433B2 (en) | 2008-09-10 | 2014-07-15 | Inside Secure | Data security |
US9177144B2 (en) * | 2008-10-30 | 2015-11-03 | Mcafee, Inc. | Structural recognition of malicious code patterns |
US8738932B2 (en) | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
US8352679B2 (en) | 2009-04-29 | 2013-01-08 | Empire Technology Development Llc | Selectively securing data and/or erasing secure data caches responsive to security compromising conditions |
US8924743B2 (en) * | 2009-05-06 | 2014-12-30 | Empire Technology Development Llc | Securing data caches through encryption |
US8812796B2 (en) | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
US9535849B2 (en) * | 2009-07-24 | 2017-01-03 | Advanced Micro Devices, Inc. | IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect |
US9311245B2 (en) | 2009-08-13 | 2016-04-12 | Intel Corporation | Dynamic cache sharing based on power state |
US8397052B2 (en) | 2009-08-19 | 2013-03-12 | International Business Machines Corporation | Version pressure feedback mechanisms for speculative versioning caches |
US9773431B2 (en) * | 2009-11-10 | 2017-09-26 | Maxim Integrated Products, Inc. | Block encryption security for integrated microcontroller and external memory system |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
US8949797B2 (en) * | 2010-04-16 | 2015-02-03 | International Business Machines Corporation | Optimizing performance of integrity monitoring |
US8990582B2 (en) * | 2010-05-27 | 2015-03-24 | Cisco Technology, Inc. | Virtual machine memory compartmentalization in multi-core architectures |
US8181176B2 (en) | 2010-06-21 | 2012-05-15 | Intel Corporation | Uniform storage device access using partial virtual machine executing within a secure enclave session |
JP5582909B2 (ja) | 2010-07-29 | 2014-09-03 | キヤノン株式会社 | プラットフォーム完全性検証システム |
US8713259B2 (en) | 2010-11-17 | 2014-04-29 | Advanced Micro Devices, Inc. | Method and apparatus for reacquiring lines in a cache |
US8590005B2 (en) | 2011-06-08 | 2013-11-19 | Adventium Enterprises, Llc | Multi-domain information sharing |
US9164924B2 (en) | 2011-09-13 | 2015-10-20 | Facebook, Inc. | Software cryptoprocessor |
WO2013101229A1 (en) | 2011-12-30 | 2013-07-04 | Intel Corporation | Structure access processors, methods, systems, and instructions |
US8954755B2 (en) * | 2012-01-23 | 2015-02-10 | International Business Machines Corporation | Memory address translation-based data encryption with integrated encryption engine |
JP2015511050A (ja) * | 2012-03-20 | 2015-04-13 | クリメニ テクノロジーズ, インコーポレイテッド | プロセス作業セット隔離のための方法およびシステム |
US8789046B2 (en) | 2012-03-30 | 2014-07-22 | International Business Machines Corporation | Method to embed a light-weight kernel in a full-weight kernel to provide a heterogeneous execution environment |
US20140007087A1 (en) | 2012-06-29 | 2014-01-02 | Mark Scott-Nash | Virtual trusted platform module |
US20140109176A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
US9729309B2 (en) | 2012-12-19 | 2017-08-08 | Intel Corporation | Securing data transmission between processor packages |
GB2509755B (en) | 2013-01-14 | 2015-07-08 | Imagination Tech Ltd | Partitioning a shared cache using masks associated with threads to avoiding thrashing |
US9477603B2 (en) | 2013-09-05 | 2016-10-25 | Facebook, Inc. | System and method for partitioning of memory units into non-conflicting sets |
US9983894B2 (en) | 2013-09-25 | 2018-05-29 | Facebook, Inc. | Method and system for providing secure system execution on hardware supporting secure application execution |
US9298623B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Identifying high-conflict cache lines in transactional memory computing environments |
US9086974B2 (en) | 2013-09-26 | 2015-07-21 | International Business Machines Corporation | Centralized management of high-contention cache lines in multi-processor computing environments |
US9329890B2 (en) | 2013-09-26 | 2016-05-03 | Globalfoundries Inc. | Managing high-coherence-miss cache lines in multi-processor computing environments |
US9292444B2 (en) | 2013-09-26 | 2016-03-22 | International Business Machines Corporation | Multi-granular cache management in multi-processor computing environments |
US9298626B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Managing high-conflict cache lines in transactional memory computing environments |
US9442864B2 (en) * | 2013-12-27 | 2016-09-13 | Intel Corporation | Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes |
US9747450B2 (en) | 2014-02-10 | 2017-08-29 | Facebook, Inc. | Attestation using a combined measurement and its constituent measurements |
US9734092B2 (en) | 2014-03-19 | 2017-08-15 | Facebook, Inc. | Secure support for I/O in software cryptoprocessor |
US10409763B2 (en) | 2014-06-30 | 2019-09-10 | Intel Corporation | Apparatus and method for efficiently implementing a processor pipeline |
-
2012
- 2012-09-13 US US13/614,935 patent/US9164924B2/en not_active Expired - Fee Related
- 2012-09-13 EP EP12831564.5A patent/EP2756438B1/en active Active
- 2012-09-13 JP JP2014530797A patent/JP6402034B2/ja not_active Expired - Fee Related
- 2012-09-13 WO PCT/US2012/055210 patent/WO2013040241A1/en unknown
-
2015
- 2015-08-06 US US14/820,428 patent/US9639482B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2756438B1 (en) | 2020-11-11 |
WO2013040241A1 (en) | 2013-03-21 |
EP2756438A4 (en) | 2015-06-03 |
EP2756438A1 (en) | 2014-07-23 |
JP2014529262A (ja) | 2014-10-30 |
US9164924B2 (en) | 2015-10-20 |
US20160224475A1 (en) | 2016-08-04 |
US9639482B2 (en) | 2017-05-02 |
US20130067245A1 (en) | 2013-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6402034B2 (ja) | コンピュータ内の情報を安全に保つシステム及び方法 | |
US10572689B2 (en) | Method and apparatus for secure execution using a secure memory partition | |
EP3161716B1 (en) | Management of authenticated variables | |
US9536110B2 (en) | Secure processor and a program for a secure processor | |
US10095862B2 (en) | System for executing code with blind hypervision mechanism | |
US20070005935A1 (en) | Method and apparatus for securing and validating paged memory system | |
US9639671B2 (en) | Secure execution of encrypted program instructions | |
Cao et al. | CryptMe: Data leakage prevention for unmodified programs on ARM devices | |
Tiemann et al. | IOTLB-SC: An accelerator-independent leakage source in modern cloud systems | |
Liu et al. | CryptMe: Data Leakage Prevention for Unmodified Programs on ARM Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150910 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160802 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20160920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161101 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20170406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180910 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6402034 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |