共用方式為


ENCLAVE_IDENTITY結構 (ntenclv.h)

描述記憶體保護區主要模組的身分識別。

語法

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_ENABLED
0x00000001
記憶體保護區支援偵錯。
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED
0x00000002
記憶體保護區支持動態偵錯。
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE
0x00000004
記憶體保護區的動態偵錯已開啟。

SigningLevel

記憶體保護區主要模組的簽署層級。

EnclaveType

言論

每個記憶體保護區都有一個 ENCLAVE_IDENTITY,會在建立記憶體保護區時設定,並在初始化記憶體保護區時設定。 其中包含數個屬性,如下所述:

財產 如何產生此屬性? 驗證此屬性的值為何
OwnerId 設定建立記憶體保護區的時間(CreateEnclave),並表示記憶體保護區的擁有者(建立者)。 可用來區分相同擁有者所建立的記憶體保護區。
UniqueId 可唯一測量記憶體保護區影像的整個內容。 載入記憶體保護區的主要映射時,Authenticode 簽章 PKCS#1 部分中包含的摘要會擷取為記憶體保護區唯一標識符。 可用來區分特定記憶體保護區的確切實例,包括記憶體保護區內執行之程式代碼的屬性和簽署者資訊。
AuthorId 發行者可能想要使用指定的憑證來簽署不同的 VBS 記憶體保護區,而且在密封觀點中仍有不同的信任關係。 作者標識碼可唯一識別記憶體保護區發行者。 作者識別碼是下列專案的哈希:

- 簽署者識別碼
- 分葉憑證中的主體名稱
- 簽章中的 OPUS 資訊(如果有的話)。 這會透過 signtool.exe 簽署基礎結構來新增。 針對第三方提交是由 Microsoft 簽署的案例,這也會用來區分不同的提交者。
可用來區分記憶體保護區發行者進行簽署。
FamilyId 由其作者指派給記憶體保護區的唯一標識碼 (GUID)。 表示相同系列的記憶體保護區。 可用來區分同一個家族的記憶體保護區。 可用來強制執行匯入、密封等作業,以使用相同的 FamilyId
ImageId 由其作者指派給記憶體保護區的唯一標識碼 (GUID)。 可用來區分具有相同映像的記憶體保護區。 可用來強制執行匯入、密封等作業,以使用相同的 ImageId
記憶體保護區Svn 記憶體保護區內主要映像的安全性版本號碼。 相較於模組匯入 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

另請參閱

VBS_ENCLAVE_REPORT

記憶體保護區結構

CreateEnclave