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_ENABLED0x00000001 |
記憶體保護區支援偵錯。 |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED0x00000002 |
記憶體保護區支持動態偵錯。 |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE0x00000004 |
記憶體保護區的動態偵錯已開啟。 |
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 |