2013-10-25 6 views
5

最新のインテルのXEONプロセッサーは、薄型1型ハイパーバイザーに合うのに十分な30MBのL3メモリーを搭載しています。コードがCPUキャッシュ(L3)を離れないことを確認するにはどうすればよいですか?

このようなHypervisorをCPU内に保持する方法、つまりRAMにフラッシュされないようにする方法、または少なくともメモリ/ディスクに送信する前にデータを暗号化する方法を理解することに興味があります。

私たちはベアメタルで動作しており、DRTM(Late Launch)を使用してこれをブートストラップすることができます。私たちは信頼できないメモリ/ディスクから読み込みますが、オペレーティングシステムを解読するために使用されるシークレットをunseal()することができ、RAMに送信されるものがすべて正しいものであることを確認した後で行われます暗号化されます。

p.s.私は、TXTのACEA(認証コードRAMとも呼ばれる認証コード実行領域)がそのような保証を持っていると言われています(つまり、CPUキャッシュを抑制しています)ので、これを回避できるトリッキーがあるのだろうかと思います。

p.p.s.これは現在の研究を超えているようですので、私は実際にこの時点では答えが可能であるとは確信していません。

+1

しばらく経ってから間違いかもしれませんが、Xeonのキャッシュラインをロックすることはできません。 –

+0

PrivateCore.com/vcageがこれで成功したようです。 – northox

+1

このtwitterディスカッションを参照してください:https://twitter.com/jf/status/377582143490510848 – northox

答えて

7

あなたの質問は多少曖昧ですが、キャッシュラインをXeonのロックダウンに入れることができるかどうかは不安です。 Intel 64またはIA-32用のIntelのドキュメントには、一般に公開されているモデルでは、そのような機能については言及されていないため、答えは「no」と表示されます。インテルで数百万ドルを投げることができれば、おそらくそのような機能を備えたカスタマイズされたXeonを手に入れることができます。インテルはカスタマイズされたプロセッサー事業に参入しています。

キャッシュロックダウンは、通常、エンベデッドプロセッサで利用できます。 Intel XScaleには、多くのARMプロセッサと同様にこの機能があります。

ただし、キャッシュのロックダウンとは、キャッシュされたデータ/命令がRAMに存在しないことを意味しません。あなたが望むように見えているのは、おそらくマイクロコードレベルで安全なプライベートメモリ(キャッシュではない)の一形態です。しかし、それはキャッシュの定義と矛盾しているため、キャッシュではありません。おそらく知っているように、過去10年間に作られたすべてのインテルCPUは、更新可能なマイクロコードを持っています。これはCPU内部にかなり安全に保存されますが、 cpuによって受け入れられるコードを(マイクロコード更新を介して)生成するための暗号署名キー。あなたが望むのはそれと同等ですが、マイクロコードレベルではなくx86/x64の命令レベルです。これがあなたの目標であれば、x86/x64互換のIPコアのライセンスを取得し、その上に暗号で保護されたEEPROMを追加することです。

将来のIntel Software Guard Extensions(SGX)(あなたの質問の後、Invisible Things Labリンク経由で)では、あなたのハイパーバイザコードが決してRAMに保存されないという問題は解決しません。 SGXではこれが設計されているため、コードを保存する前にウイルスなどのスキャンを行うことができます。

最後に、自分が何をするのかについての実際の技術的説明が見つからないため、私は実際にプライベートコアの技術についてコメントすることはできません。スタートアップ指向のサイトに関するTwitterのコメントやニュース記事は、それを提供せず、サイトも提供していません。彼らのビジネスモデルは、「私たちを信頼して、私たちが今行っていることを知っている」ようになります。私たちはいつか実際のセキュリティ記述/分析を見ているかもしれませんが、私は今それを見つけることはできません。 "PRISM proof"との主張は、おそらくNSAの笑いの中に誰かを作り出しているでしょう...

重要なアップデート:実際には(全体の)キャッシュがx86世界のRAMに書き戻されるのを実際に無効にすることは可能です。これらは公式には文書化されていないモードで、AMDの「RAMモードのキャッシュ」として知られています。インテルの「ノーフィルモード」です。 More on https://www.youtube.com/watch?v=EHkUaiomxfE文書化されていないことから、Intelは(少なくとも)https://software.intel.com/en-us/forums/topic/392495で議論されているような奇妙な方法でその "機能"を破る権利を留保します。

アップデート2:2011年のLenovo特許http://www.google.com/patents/US8037292では、IntelのCPUで新しい(?)No-Evictionモード(NEM)を使用してBIOSをCPUのキャッシュにロードする方法について説明しています。このメソッドは、スーパーバイザを含む他のタイプのコードに使用される可能性があります。しかし、大きな注意点があります。既にキャッシュされたもの以外のコードは非常に遅く実行されるので、これはブート手順の外で実際に使用可能であるとは思われません。 NEMを有効にする方法を示すcorebootコードがあります(https://chromium.googlesource.com/chromiumos/third_party/coreboot/+/84defb44fabf2e81498c689d1b0713a479162fae/src/soc/intel/baytrail/romstage/cache_as_ram.inc

関連する問題