struttura ENCLAVE_IDENTITY (ntenclv.h)

Descrive l'identità del modulo primario di un enclave.

Sintassi

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;

Membri

OwnerId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Identificatore del proprietario per l'enclave.

UniqueId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Identificatore univoco del modulo primario per l'enclave.

AuthorId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Identificatore dell'autore del modulo primario per l'enclave.

FamilyId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

Identificatore della famiglia del modulo primario per l'enclave.

ImageId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

Identificatore dell'immagine del modulo primario per l'enclave.

EnclaveSvn

Numero di versione di sicurezza del modulo primario per l'enclave.

SecureKernelSvn

Numero di versione di sicurezza del kernel vsm (Virtual Secure Mode).

PlatformSvn

Numero di versione di sicurezza della piattaforma che ospita l'enclave.

Flags

Flag che descrivono i criteri di runtime per l'enclave.

Valore Significato
ENCLAVE_FLAG_FULL_DEBUG_ENABLED
0x00000001
L'enclave supporta il debug.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED
0x00000002
L'enclave supporta il debug dinamico.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE
0x00000004
Il debug dinamico è attivato per l'enclave.

SigningLevel

Livello di firma del modulo primario per l'enclave.

EnclaveType

Osservazioni

Ogni enclave ha una ENCLAVE_IDENTITY configurata quando viene creata l'enclave e impostata quando viene inizializzata l'enclave. Contiene diverse proprietà descritte di seguito:

Proprietà Come viene generata questa proprietà? Qual è il valore nella convalida di questa proprietà
OwnerId Impostare quando viene creata l'enclave (CreateEnclave) e indica il proprietario (creatore) dell'enclave. Può essere usato per distinguere tra enclave creati dallo stesso proprietario.
uniqueId Misura in modo univoco l'intero contenuto dell'immagine dell'enclave. Quando viene caricata l'immagine primaria di un enclave, il digest contenuto nella parte PKCS#1 della firma Authenticode viene acquisito come ID univoco dell'enclave. Può essere usato per distinguere l'istanza esatta di un'enclave specifica, incluse le proprietà del codice in esecuzione all'interno dell'enclave e le informazioni sul firmatario.
AuthorId Un server di pubblicazione può voler usare un determinato certificato per firmare enclave VBS diversi e avere comunque una relazione di trust diversa dal punto di vista della chiusura. L'ID autore identifica in modo univoco un server di pubblicazione dell'enclave. L'ID autore è un hash di:

- ID firmatario
- Nome soggetto nel certificato foglia
- Informazioni opus nella firma (se presente). Questa operazione viene aggiunta tramite l'infrastruttura di firma signtool.exe. Per gli scenari in cui gli invii di terze parti sono firmati da Microsoft, viene usato anche per distinguere i diversi inviati.
Può essere usato per distinguere l'autore dell'enclave a scopo di firma.
FamilyId Identificatore univoco (GUID) assegnato all'enclave dal relativo autore. Indica le enclave della stessa famiglia. Può essere usato per distinguere tra enclave con la stessa famiglia. Può essere usato per applicare operazioni di importazione, tenuta e così via alle enclave con la stessa FamilyId.
ImageId Identificatore univoco (GUID) assegnato all'enclave dal relativo autore. Può essere usato per distinguere tra enclave con la stessa immagine. Può essere usato per applicare operazioni di importazione, tenuta e così via alle enclave con lo stesso ImageId.
enclaveSvn Numero di versione di sicurezza dell'immagine primaria all'interno dell'enclave. Rispetto MinimumSvn all'importazione del modulo per determinare se l'importazione viene rifiutata. Viene usato anche nelle operazioni di firma.
PlatformSvn di Numero di versione di sicurezza del kernel VSM. Nessun enclave è autorizzato a annullare l'annullamento dei dati che sono stati bloccati da un'enclave SVN successiva.
flag Flag che descrivono i criteri di runtime dell'enclave:

- ENCLAVE_FLAG_FULL_DEBUG_ENABLED : indica che l'enclave supporta il debug.
- ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED : indica che l'enclave supporta il debug dinamico.
- ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE : indica che il debug dinamico è stato attivato per l'enclave.
Può essere usato per verificare se il debug dell'enclave è abilitato o se è stato attivato. È possibile usare più permutazioni per convalidare lo stato dell'enclave.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 1709 [solo app desktop]
server minimo supportato Windows Server 2016 [solo app desktop]
intestazione ntenclv.h

Vedere anche

VBS_ENCLAVE_REPORT

strutture dell'enclave

CreateEnclave