структура 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 | Уникально измеряет весь контент изображения анклава. При загрузке основного образа анклава дайджест, содержащийся в части 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 |