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_ENABLED0x00000001 |
L'enclave supporta il debug. |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED0x00000002 |
L'enclave supporta il debug dinamico. |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE0x00000004 |
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 |