ENCLAVE_IDENTITY结构(ntenclv.h)
描述 enclave 的主模块的标识。
语法
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]
enclave 的所有者标识符。
UniqueId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
enclave 的主模块的唯一标识符。
AuthorId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
enclave 的主模块的作者标识符。
FamilyId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]
enclave 的主模块的家庭标识符。
ImageId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]
enclave 的主模块的图像标识符。
EnclaveSvn
enclave 的主模块的安全版本号。
SecureKernelSvn
虚拟安全模式 (VSM) 内核的安全版本号。
PlatformSvn
托管 enclave 的平台的安全版本号。
Flags
描述 enclave 的运行时策略的标志。
价值 | 意义 |
---|---|
ENCLAVE_FLAG_FULL_DEBUG_ENABLED0x00000001 |
enclave 支持调试。 |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED0x00000002 |
enclave 支持动态调试。 |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE0x00000004 |
已为 enclave 启用动态调试。 |
SigningLevel
enclave 的主模块的签名级别。
EnclaveType
言论
每个 enclave 都有一个 ENCLAVE_IDENTITY,该 ENCLAVE_IDENTITY 是在创建 enclave 时配置的,并在初始化 enclave 时设置。 它包含以下几个属性:
财产 | 如何生成此属性? | 验证此属性的值是什么 |
---|---|---|
OwnerId | 设置创建 enclave 时(CreateEnclave),并表示 enclave 的所有者(创建者)。 | 可用于区分由同一所有者创建的 enclave。 |
UniqueId | 唯一地度量 enclave 图像的整个内容。 加载 enclave 的主映像时,验证码签名的 PKCS#1 部分中包含的摘要将捕获为 Enclave 唯一 ID。 | 可用于区分特定 enclave 的确切实例,包括 enclave 中运行的代码的属性和签名者信息。 |
AuthorId | 发布者可能想要使用给定的证书来对不同的 VBS enclave 进行签名,并且从密封角度仍具有不同的信任关系。 作者 ID 唯一标识 enclave 发布者。 作者 ID 是以下项的哈希: - 签名者 ID - 叶证书中的使用者名称 - 签名中的 OPUS 信息(如果存在)。 这是通过 signtool.exe 签名基础结构添加的。 对于第三方提交由Microsoft签名的情况,还用于区分不同的提交者。 |
可用于区分 enclave 发布者进行签名。 |
FamilyId | 由其作者分配给 enclave 的唯一标识符(GUID)。 表示同一个系列的 enclave。 | 可用于区分同一系列中的 enclave。 可用于强制执行导入、密封等操作,以使用同一 FamilyIdenclave。 |
ImageId | 由其作者分配给 enclave 的唯一标识符(GUID)。 | 可用于区分具有相同映像的 enclave。 可用于强制实施导入、密封等操作,以使用同一 ImageIdenclave。 |
EnclaveSvn | enclave 中主映像的安全版本号。 | 与模块导入上的 MinimumSvn 进行比较,以确定导入是否被拒绝。 它还用于签名操作。 |
PlatformSvn | VSM 内核的安全版本号。 | 不允许任何 enclave 取消密封由后来的 SVN enclave 密封的任何数据。 |
标志 | 描述 enclave 的运行时策略的标志: - ENCLAVE_FLAG_FULL_DEBUG_ENABLED - 指示 enclave 支持调试。 - ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED - 指示 enclave 支持动态调试。 - ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE - 指示已为 enclave 激活动态调试。 |
可用于确认 enclave 是否已启用调试,或者是否已激活它。 可以使用多个排列来验证 enclave 的状态。 |
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 版本 1709 [仅限桌面应用] |
支持的最低服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | ntenclv.h |