ENCLAVE_IDENTITY構造体 (ntenclv.h)
エンクレーブのプライマリ モジュールの ID について説明します。
構文
typedef struct ENCLAVE_IDENTITY {
UINT8 OwnerId[IMAGE_ENCLAVE_LONG_ID_LENGTH];
UINT8 UniqueId[IMAGE_ENCLAVE_LONG_ID_LENGTH];
UINT8 AuthorId[IMAGE_ENCLAVE_LONG_ID_LENGTH];
UINT8 FamilyId[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
UINT8 ImageId[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
UINT32 EnclaveSvn;
UINT32 SecureKernelSvn;
UINT32 PlatformSvn;
UINT32 Flags;
UINT32 SigningLevel;
UINT32 EnclaveType;
} ENCLAVE_IDENTITY;
メンバーズ
OwnerId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
エンクレーブの所有者の識別子。
UniqueId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
エンクレーブのプライマリ モジュールの一意識別子。
AuthorId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
エンクレーブのプライマリ モジュールの作成者識別子。
FamilyId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]
エンクレーブのプライマリ モジュールのファミリ識別子。
ImageId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]
エンクレーブのプライマリ モジュールのイメージ識別子。
EnclaveSvn
エンクレーブのプライマリ モジュールのセキュリティ バージョン番号。
SecureKernelSvn
仮想セキュア モード (VSM) カーネルのセキュリティ バージョン番号。
PlatformSvn
エンクレーブをホストするプラットフォームのセキュリティ バージョン番号。
Flags
エンクレーブのランタイム ポリシーを記述するフラグ。
価値 | 意味 |
---|---|
ENCLAVE_FLAG_FULL_DEBUG_ENABLED0x00000001 |
エンクレーブはデバッグをサポートします。 |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED0x00000002 |
エンクレーブは動的デバッグをサポートします。 |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE0x00000004 |
エンクレーブの動的デバッグが有効になります。 |
SigningLevel
エンクレーブのプライマリ モジュールの署名レベル。
EnclaveType
備考
各エンクレーブには、エンクレーブの作成時に構成され、エンクレーブの初期化時に設定される ENCLAVE_IDENTITY があります。 これには、以下に示すいくつかのプロパティが含まれています。
財産 | このプロパティはどのように生成されますか? | このプロパティを検証する場合の値は何ですか? |
---|---|---|
OwnerId | エンクレーブの作成時 (CreateEnclave |
同じ所有者によって作成されたエンクレーブを区別するために使用できます。 |
UniqueId | エンクレーブ イメージのコンテンツ全体を一意に測定します。 エンクレーブのプライマリ イメージが読み込まれると、Authenticode 署名の PKCS#1 部分に含まれるダイジェストがエンクレーブ一意 ID としてキャプチャされます。 | エンクレーブ内で実行されているコードのプロパティや署名者情報など、特定のエンクレーブの正確なインスタンスを区別するために使用できます。 |
AuthorId の |
発行元は、特定の証明書を使用して異なる VBS エンクレーブに署名し、シールの観点から異なる信頼関係を持つことができます。 作成者 ID は、エンクレーブ発行元を一意に識別します。 作成者 ID は次のハッシュです。 - 署名者 ID - リーフ証明書のサブジェクト名 - 署名内の OPUS 情報 (存在する場合)。 これは、 signtool.exe 署名インフラストラクチャを介して追加されます。 サード パーティの提出が Microsoft によって署名されているシナリオでは、これは異なる提出者を区別するためにも使用されます。 |
署名のためにエンクレーブ発行元を区別するために使用できます。 |
FamilyId | 作成者によってエンクレーブに割り当てられた一意識別子 (GUID)。 同じファミリのエンクレーブを示します。 | 同じファミリのエンクレーブを区別するために使用できます。 同じ FamilyIdを使用してエンクレーブにインポート、シールなどの操作を適用するために使用できます。 |
ImageId | 作成者によってエンクレーブに割り当てられた一意識別子 (GUID)。 | 同じイメージでエンクレーブを区別するために使用できます。 インポート、シールなどの操作を、同じ ImageIdでエンクレーブに適用するために使用できます。 |
enclaveSvn を |
エンクレーブ内のプライマリ イメージのセキュリティ バージョン番号。 | モジュールのインポート MinimumSvn と比較して、インポートが拒否されたかどうかを判断します。 また、署名操作でも使用されます。 |
PlatformSvn | VSM カーネルのセキュリティ バージョン番号。 | エンクレーブは、後の SVN エンクレーブによってシールされたデータのシールを解除することはできません。 |
フラグの | エンクレーブのランタイム ポリシーを記述するフラグ: - ENCLAVE_FLAG_FULL_DEBUG_ENABLED - エンクレーブがデバッグをサポートしていることを示します。 - ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED - エンクレーブが動的デバッグをサポートすることを示します。 - ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE - エンクレーブに対して動的デバッグがアクティブ化されたことを示します。 |
エンクレーブでデバッグが有効になっているか、アクティブ化されているかを確認するために使用できます。 複数の順列を使用して、エンクレーブの状態を検証できます。 |
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 バージョン 1709 [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2016 [デスクトップ アプリのみ] |
ヘッダー | ntenclv.h |
関連項目
CreateEnclave の