Поделиться через


структура 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 Уникально измеряет весь контент изображения анклава. При загрузке основного образа анклава дайджест, содержащийся в части PKCS#1 сигнатуры Authenticode, записывается в качестве уникального идентификатора Анклава. Можно использовать для различения точного экземпляра определенного анклава, включая свойства кода, выполняемого внутри анклава, и сведения о подписывшем объекте.
AuthorId Издателю может потребоваться использовать указанный сертификат для подписывания различных анклавов VBS и по-прежнему имеет другую связь доверия с точки зрения запечатывания. Идентификатор автора однозначно идентифицирует издателя анклава. Идентификатор автора — это хэш:

— идентификатор подписывателя
— имя субъекта в конечном сертификате
— сведения OPUS в сигнатуре (если она существует). Это добавляется через инфраструктуру подписывания signtool.exe. В сценариях, когда сторонние отправки подписаны корпорацией Майкрософт, это также используется для разных отправителей.
Можно использовать для различения издателя анклава для подписывания.
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