BIOS における SGX の正式名称は「Intel Software Guard Extensions」で、Intel System (IA) の拡張機能であり、ハードウェア セキュリティを必須の保証として使用することを目的としており、セキュリティ ステータスには依存しません。ファームウェアとソフトウェアの統合により、ユーザー空間に信頼できる実行環境を提供し、ソフトウェアのセキュリティを強化できます。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
SGX の技術的定義
SGX は Intel Software Guard Extensions の略で、その名前が示すように、ソフトウェアのセキュリティを強化するための Intel Architecture (IA) の拡張機能です。 。
SGX 命令セット拡張は、ファームウェアやソフトウェアのセキュリティ ステータスに関係なく、ハードウェア セキュリティを必須の保証として取り上げ、新しい命令セット拡張とアクセスを通じて、ユーザー空間に信頼できる実行環境を提供することを目的としています。この制御メカニズムは、異なるプログラム間での分離された動作を実現し、ユーザーのキーコードとデータの機密性と完全性をマルウェアによる破壊から確保します。
このアプローチでは、プラットフォーム上のすべてのマルウェアを特定して隔離するわけではありませんが、正規のソフトウェアのセキュリティ操作をエンクレーブにカプセル化して、マルウェア、特権または非特権ソフトウェアによる攻撃から保護します。エンクレーブには誰もアクセスできません。つまり、ソフトウェアとデータがエンクレーブに配置されると、オペレーティング システムや VMM (ハイパーバイザー) でさえ、エンクレーブ内のコードとデータに影響を与えることはできません。
エンクレーブのセキュリティ境界には、CPU とそれ自体のみが含まれます。 SGX によって作成されたエンクレーブは、Trusted Execution Environment TEE (Trusted Execution Environment) として理解することもできます。
ただし、ARM TrustZone (TZ) とは少し異なります。TZ は CPU を介して 2 つの分離環境 (安全な世界と通常の世界) に分割され、その 2 つは SMC 命令を通じて通信します。一方、SGX A CPU は、複数のセキュリティ エンクレーブを実行し、同時に実行できます。
もちろん、TZ セキュリティ ワールド内で相互に分離された複数のセキュリティ サービスを実装することによっても、同じ効果を達成できます。
SGX Enclave の作成
Intel プロセッサの SGX テクノロジを使用し、CPU のハードウェア モード切り替えを通じて、システムはトラステッド モードの実行に入り、必要なハードウェアのみを使用して完全に分離された特権モードを形成し、非常に小さなマイクロカーネル オペレーティング システムをロードしてタスク スケジューリングをサポートし、ID 認証を完了し、認証に従ってユーザー ID を認証します。
# Intel SGX テクノロジーを使用して、完全に分離された特権モードとしてエンクレーブを構築するための具体的な実装計画は次のとおりです。 (1) 実行する必要がある仮想マシン イメージをディスクにロードします。
(2) アプリケーション コードとデータを暗号化するための秘密キー証明書を生成します。SGX テクノロジは、より高度な秘密キー暗号化方式を提供します。秘密キーは、SGX バージョンの秘密キー、CPU マシンの秘密キー、インテル公式の秘密キーで構成されます。配布 ユーザーの秘密キーは、キー生成アルゴリズムに基づいて生成された新しいキーであり、このキーは、ロードする必要があるアプリケーションのコードとデータを暗号化するために使用されます。
(3) まず、SGX Loader にロードする必要があるアプリケーションまたはイメージのコードとデータをロードして、Enclave にロードする準備をします。
(4) Intel SGX トラステッド モードでエンクレーブを構築するために動的に適用します。
(5) まず、ロードする必要のあるプログラムとデータを、EPC (Enclave Page Cache) 形式の秘密鍵証明書を介して復号化します。
(6) SGX 命令を使用して、復号化されたプログラムとデータが信頼できることを証明し、それらを Enclave にロードして、Enclave にロードされた各 EPC コンテンツをコピーします。
(7) ハードウェア分離の使用により、エンクレーブの機密性と完全性がさらに保証され、異なるエンクレーブが互いに競合したり、相互にアクセスしたりすることがなくなります。
(8) エンクレーブ初期化プログラムを開始し、EPC のさらなるロードと検証を禁止し、エンクレーブ ID 証明書を生成し、証明書を暗号化し、回復のためにエンクレーブの TCS (スレッド制御構造) にエンクレーブ ID として保存します。本人確認を行います。
(9) SGX 分離が完了し、ハードウェア分離による Enclave 内のミラー プログラムが実行を開始し、SGX テクノロジに基づくハードウェア分離の構築が完了します。
SGX Enclave の起動と破棄
Enclave の構築完了後、Enclave の終了またはハング後に Enclave 内の情報が漏洩しないようにするためエンクレーブ内のアプリケーションは、システムの中断や例外などによる異常な状況で終了する可能性があります。このような問題を解決するために、SGX テクノロジを使用して、同期終了と非同期終了に異なる処理方法を設定します。同期終了する場合、実行中のデータとコードはEnclave では、カスタマイズされた EEE (Enclave イベントの終了) 設定された処理方法で処理されます。非同期終了の場合、Enclave 内のデータと実行ステータス情報は鍵証明書で暗号化され、Enclave の外部に保存され、中断された Enclave は次回のシステム起動時に選択的に復元されます。SGX Enclave の信頼できる通信チャネルを作成する
SGXの場合 エンクレーブのアクセス要求、制限する検出メカニズムを構築し、最初にエンクレーブ モードが開始されているかどうかを判断し、次にアクセス要求がエンクレーブ内からのものであるかどうかを判断し、そうである場合は引き続き判断し、そうでない場合はアクセス失敗を返します。エンクレーブが与えられる前の ID 資格情報は、アクセス要求が同じエンクレーブからのものであるかどうかを検証するために使用されます。そうである場合、アクセス検出はパスされます。そうでない場合、次のエンクレーブ ID 資格情報は、エンクレーブの ID 資格情報レコード テーブルに従って置き換えられます実行中のすべての Enclave が一致するまで一致します。完了しました。一致が成功しない場合は、アクセス失敗が返されます。
関連知識の詳細については、FAQ 列をご覧ください。
以上がBIOS の SGX とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。