ホームページ >運用・保守 >Linuxの運用と保守 >CPU は、悪意のあるコードによるデータとプライバシーの盗難をどのようにして保護できるのでしょうか?インテル SGX の基本的な紹介
この記事では、Intel SGX の基本的な概要を説明します。必要な方は参考にしていただければ幸いです。
インテル SGX の基本概要
インテル SGX (インテル ソフトウェア ガード エクステンション) は、インテル命令セット アーキテクチャの拡張機能です。 SGX は、メモリ内の暗号化された信頼できる実行領域である Enclave を提供し、CPU が悪意のあるコードによるデータとプライバシーの盗難を防ぎます。
原理
SGX は、新しいプロセッサ命令を使用して、メモリ内の領域 EPC (Enclave Page Cache) の一部を割り当てます。 CPU 暗号化エンジン MEE (Memory Encryption Engine) が内部のデータを暗号化します。 EPC 内の暗号化されたコンテンツは、CPU に入力されるまで平文に復号されません。したがって、SGX では、オペレーティング システム、VMM、さらには BIOS を信頼する必要はなく、個人データが漏洩しないようにするために CPU のみを信頼する必要があります。
アプリケーション
実際のアプリケーションでは、プライベートデータを暗号化し、暗号文の形式でクラウド上のサークルに転送できます。対応する秘密鍵もリモート認証を通じてサークルに送信されます。その後、データは CPU の暗号化保護の下で計算を実行するために使用され、結果は暗号文で返されます。このモードでは、データ漏洩を心配することなく、クラウド コンピューティングの強力なコンピューティング能力を活用できます。
EDL (エンクレーブ定義言語)
EDL は SGX プログラミングの中核であり、すべての機能を定義します。サークル内のデータの読み取り、書き込み、および処理を行うための関数。コンパイル段階で、SDK によって提供される Edger8r ツールは、EDL で定義された関数に基づいて包囲と通常のメモリ間のブリッジ関数を生成し、対応するセキュリティ検出を実行します。
関数は、信頼できる関数 (ecall) と信頼できない関数 (ocall) に分けられます。
ecall: 信頼できる領域 (信頼できる) で定義され、サークルの外側で呼び出され、サークルの実装内で呼び出されます。
ocall: 信頼できない領域 (untrusted) で定義され、サークル内で呼び出され、サークルの外で実行されます。
// demo.edl enclave { // Add your definition of "secret_t" here trusted { public void get_secret([out] secret_t* secret); }; untrusted { // This OCALL is for illustration purposes only. // It should not be used in a real enclave, // unless it is during the development phase // for debugging purposes. void dump_secret([in] const secret_t* secret); }; };
SGX のインストール
SGX は、ドライバー、PSW、SDK などを含むインストール ファイルまたはソース コードを通じてインストールできます。どちらのインストール方法でも、Linux カーネルのバージョンに対応するヘッダー ファイルをインストールする必要があります。
以上がCPU は、悪意のあるコードによるデータとプライバシーの盗難をどのようにして保護できるのでしょうか?インテル SGX の基本的な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。