記事 ID: 000089548 コンテンツタイプ: 製品情報 & ドキュメント 最終改訂日: 2022/08/05

インテル® Software Guard Extensions (インテル® SGX) SDK は、エンクレーブの最大サイズを決定する方法を提供しますか?

BUILT IN - ARTICLE INTRO SECOND COMPONENT
概要

最大エンクレーブサイズを決定する 2 つの方法。

詳細

クラウド環境では、インテル® Enclave Page Cache (EPC) を含むプロセッサーの予約メモリー (PRM) を BIOS で確認することはできません。

インテル® Software Guard Extensions (インテル® SGX) SDK を使用して、エンクレーブで使用可能なメモリーを検索できません。

解決方法

インテル® Software Guard Extensions (インテル® SGX) SDK は、最大エンクレーブサイズを確認する方法を提供していません。インテル® Software Guard Extensions (インテル® SGX) SDK では、 エンクレーブ 構成ファイルを使用してアプリケーションでエンクレーブサイズを設定できます。

プロセッサーで利用可能なインテル® Software Guard Extensions (インテル® SGX) 機能をレポートする方法は 2 つあります。どちらのオプションも MaxEnclaveSize を報告します。これは仮想最大エンクレーブサイズです。実際の最大エンクレーブ・サイズは、 オペレーティング・システムまたはメモリーの制限によって決まります。

オプション 1

Linux* システムで、端末で cpuid を 実行 します。

$ cpuid | grep MaxEnclaveSize

オプション 2

test_sgx.c: を使用します。

  1. SGX Hardware Github にアクセスしてファイルtest_sgx.cダウンロードするか、リポジトリクローンを作成します。
  2. コンパイル そして 走る 以下に示すtest_sgx.c 指示:

    $ gcc test-sgx.c -o test-sgx
    $ ./test-sgx

MaxEnclaveSize の説明

MaxEnclaveSize0の場合、プラットフォームでは SGX は有効ではありません。

SGX が有効な場合、最も一般的な出力は次のとおりです。

MaxEnclaveSize_Not64: 1f
MaxEnclaveSize_64: 24

  • MaxEnclaveSize_Not64: 64 ビット・モードでない場合、サポートされる最大エンクレーブ・サイズは 2^(EDX[7:0]) バイトです。
  • MaxEnclaveSize_64: 64 ビット・モードで動作する場合、サポートされる最大エンクレーブ・サイズは 2^(EDX[15:8]) バイトです。

エンクレーブの最大仮想サイズは、32 ビットの場合は 2^(0x1f)、64 ビット・エンクレーブの場合は 2^(0x24) です。

追加情報

IA ソフトウェア開発者マニュアル Vol 3d パート 4 のセクション 37.7.2、表 37-6 の CPUID コールによって返された値を参照してください。

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。