Compartilhar via


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_ENABLED
0x00000001
O enclave dá suporte à depuração.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED
0x00000002
O enclave dá suporte à depuração dinâmica.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE
0x00000004
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

Consulte também

VBS_ENCLAVE_REPORT

estruturas de enclave

CreateEnclave