estrutura ENCLAVE_IDENTITY (ntenclv.h)
Descreve a identidade do módulo primário de um enclave.
Sintaxe
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;
Membros
OwnerId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
O identificador do proprietário do enclave.
UniqueId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
O identificador exclusivo do módulo primário para o enclave.
AuthorId[IMAGE_ENCLAVE_LONG_ID_LENGTH]
O identificador do autor do módulo primário para o enclave.
FamilyId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]
O identificador de família do módulo primário do enclave.
ImageId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]
O identificador de imagem do módulo primário para o enclave.
EnclaveSvn
O número da versão de segurança do módulo primário para o enclave.
SecureKernelSvn
O número da versão de segurança do kernel do MODO de Segurança Virtual (VSM).
PlatformSvn
O número da versão de segurança da plataforma que hospeda o enclave.
Flags
Sinalizadores que descrevem a política de runtime para o enclave.
Valor | Significado |
---|---|
ENCLAVE_FLAG_FULL_DEBUG_ENABLED0x00000001 |
O enclave dá suporte à depuração. |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED0x00000002 |
O enclave dá suporte à depuração dinâmica. |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE0x00000004 |
A depuração dinâmica está ativada para o enclave. |
SigningLevel
O nível de assinatura do módulo primário para o enclave.
EnclaveType
Observações
Cada enclave tem um ENCLAVE_IDENTITY configurado quando o enclave é criado e definido quando o enclave é inicializado. Ele contém várias propriedades descritas abaixo:
Propriedade | Como essa propriedade é gerada? | Qual é o valor na validação dessa propriedade |
---|---|---|
OwnerId | Defina quando o enclave for criado (CreateEnclave) e denota o proprietário (criador) do enclave. | Pode ser usado para distinguir entre enclaves que foram criados pelo mesmo proprietário. |
UniqueId | Mede exclusivamente todo o conteúdo da imagem do enclave. Quando a imagem primária de um enclave é carregada, o resumo contido na parte PKCS nº 1 da assinatura Authenticode é capturado como a ID Exclusiva do Enclave. | Pode ser usado para distinguir a instância exata de um enclave específico, incluindo as propriedades do código em execução dentro do enclave e as informações do signatário. |
AuthorId | Um editor pode querer usar um determinado certificado para assinar enclaves diferentes do VBS e ainda ter uma relação de confiança diferente de uma perspectiva de vedação. A ID do autor identifica exclusivamente um editor de enclave. A ID do autor é um hash de: - A ID do signatário - O nome da entidade no certificado folha - As informações do OPUS na assinatura (se houver). Isso é adicionado por meio da infraestrutura de assinatura de signtool.exe . Para cenários em que envios de terceiros são assinados pela Microsoft, isso também é usado para distinguir diferentes enviadores. |
Pode ser usado para distinguir o editor do enclave para fins de assinatura. |
FamilyId | Um GUID (identificador exclusivo) atribuído ao enclave por seu autor. Denota enclaves da mesma família. | Pode ser usado para distinguir entre enclaves com a mesma família. Pode ser usado para impor operações de importação, vedação etc. a enclaves com o mesmo FamilyId. |
imageid | Um GUID (identificador exclusivo) atribuído ao enclave por seu autor. | Pode ser usado para distinguir entre enclaves com a mesma imagem. Pode ser usado para impor operações de importação, vedação etc. a enclaves com o mesmo ImageId. |
enclaveSvn |
O número da versão de segurança da imagem primária dentro do enclave. | Comparado com MinimumSvn na importação do módulo para determinar se a importação foi rejeitada. Ele também é usado em operações de assinatura. |
PlatformSvn | O número da versão de segurança do kernel do VSM. | Nenhum enclave tem permissão para desativar os dados que foram lacrados por um enclave SVN posterior. |
sinalizadores | Sinalizadores que descrevem a política de runtime do enclave: - ENCLAVE_FLAG_FULL_DEBUG_ENABLED - Indica que o enclave dá suporte à depuração. - ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED - Indica que o enclave dá suporte à depuração dinâmica. - ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE - Indica que a depuração dinâmica foi ativada para o enclave. |
Pode ser usado para confirmar se o enclave está habilitado para depuração ou se foi ativado. Várias permutações podem ser usadas para validar o estado do enclave. |
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10, versão 1709 [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2016 [somente aplicativos da área de trabalho] |
cabeçalho | ntenclv.h |