Intel SGX などのアプリケーション エンクレーブは、特定のコードとデータを保護する分離された環境です。 エンクレーブを作成するときは、アプリケーションのどの部分がエンクレーブ内で実行するかを決定する必要があります。 エンクレーブを作成または管理するときは、選択したデプロイ スタックに互換性のある SDK とフレームワークを必ず使用してください。
注
Intel SGX VM とエンクレーブの概要をまだ読んでいない場合は、続行する前に読んでください。
Microsoft Mechanics
アプリケーションの開発
エンクレーブを使用してビルドされたアプリケーションには、2 つのパーティションがあります。
ホストは"信頼されていない" コンポーネントです。 エンクレーブ アプリケーションはホスト上で実行されます。 ホストは信頼されていない環境です。 ホストにエンクレーブ コードをデプロイすると、ホストはそのコードにアクセスできません。
エンクレーブは"信頼できる" コンポーネントです。 アプリケーション コードとそのキャッシュされたデータとメモリは、エンクレーブで実行されます。 エンクレーブ環境は、シークレットと機密データを保護します。 セキュリティで保護された計算がエンクレーブで発生することを確認します。
エンクレーブと分離された環境の機能を使用するには、コンフィデンシャル コンピューティングをサポートするツールを選択します。 エンクレーブ アプリケーション開発は、さまざまなツールでサポートされています。 たとえば、次のオープンソース フレームワークを使用できます。
- The Open Enclave Software Development Kit (OE SDK)
- The Intel SGX SDK
- EGo ソフトウェア開発キット
- Confidential Consortium Framework (CCF)
アプリケーションを設計するときに、エンクレーブで実行する必要がある部分を特定して決定します。 信頼されたコンポーネント内のコードは、アプリケーションの残りの部分から分離されます。 エンクレーブが初期化され、コードがメモリに読み込まれた後、信頼されていないコンポーネントはそのコードを読み取ったり変更したりすることはできません。