インテルSGXの実際の安全性を理解しようとしています。
Intel によると:
開発者は、システムソフトウェアが提供する測定値に依存することはできません。前述したように、ソフトウェアは常に仮想化されるか、適切な特権を持つ不正なソフトウェアによって偽装される可能性があります。これは、hardwareがこの測定を提供する責任がある必要があることを意味します–信頼できる環境を確立する同じハードウェア、信頼できるアプリケーションをロード/初期化し、(最終的に)機密データの計算を実行します。
しかし、悪意のあるソフトウェアがIntel SGX拡張自体を仮想化して、飛び地と基本的に全体が偽物になるのを阻止しているのは何ですか?ハードウェアは署名に組み込みの秘密鍵を使用していると主張するかもしれませんが、不正なソフトウェアがハードウェアとソフトウェアの間にある場合、SGXを完全にラップし、適切なコードを「測定」して目的の署名を生成させることができます。次に、信頼できる当事者に保護されたデータを送信させ、エンクレーブで実行されているかのように実行します。何が欠けていますか?
SGXエンクレーブは、エンクレーブとの間の情報の送信に組み込みの秘密鍵を使用します。 SGXを不正なソフトウェアでラップしても、送信された情報を解読することはできません。不正なソフトウェアでできる最善の方法は、クライアントをだまして暗号化されたデータを送信することです。
この脆弱性は、SGXハードウェアの製造時に組み込みの秘密鍵を保存する可能性のある悪意のあるSGXメーカーにあります。