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