アプリケーション エンクレーブ

Intel SGX などのアプリケーション エンクレーブは、特定のコードとデータを保護する分離された環境です。 エンクレーブを作成するときは、アプリケーションのどの部分がエンクレーブ内で実行されるかを決定する必要があります。 エンクレーブを作成または管理する場合は、選択したデプロイ スタックに応じた互換性のある SDK とフレームワークを使用してください。

Note

Intel SGX VM とエンクレーブの概要に関するページをまだ読んでいない場合は、続行する前にお読みください。

Microsoft Mechanics

アプリケーションの開発

エンクレーブを使用して構築されたアプリケーションには、2 つのパーティションがあります。

ホストは、"信頼されていない" コンポーネントです。 エンクレーブ アプリケーションはホスト上で実行されます。 ホストは信頼されていない環境です。 ホストにエンクレーブ コードをデプロイすると、ホストからそのコードにはアクセスできません。

エンクレーブは、"信頼された" コンポーネントです。 アプリケーション コードと、キャッシュされたそのデータおよびメモリはエンクレーブ内で実行されます。 エンクレーブ環境を使用すると、シークレットと機密データが保護されます。 セキュリティで保護された計算がエンクレーブ内で行われるようにします。

ホストとエンクレーブ パーティションを示すアプリケーションの図。エンクレーブの内部には、データとアプリケーション コードのコンポーネントがあります。

エンクレーブおよび分離された環境の利点を活用するには、コンフィデンシャル コンピューティングをサポートするツールを使用します。 さまざまなツールでエンクレーブ アプリケーション開発がサポートされています。 たとえば、次のオープンソース フレームワークを使用できます。

アプリケーションを設計するときに、エンクレーブで実行する必要のある部分を特定して決定します。 信頼されたコンポーネントのコードは、アプリケーションの他の部分から分離されています。 エンクレーブが初期化され、コードがメモリに読み込まれると、信頼されていないコンポーネントはそのコードを読み取りまたは変更できなくなります。

次のステップ