Partager via


structure ENCLAVE_IDENTITY (ntenclv.h)

Décrit l’identité du module principal d’une enclave.

Syntaxe

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;

Membres

OwnerId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Identificateur du propriétaire de l’enclave.

UniqueId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Identificateur unique du module principal pour l’enclave.

AuthorId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Identificateur de l’auteur du module principal pour l’enclave.

FamilyId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

Identificateur de famille du module principal de l’enclave.

ImageId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

Identificateur d’image du module principal pour l’enclave.

EnclaveSvn

Numéro de version de sécurité du module principal pour l’enclave.

SecureKernelSvn

Numéro de version de sécurité du noyau VSM (Virtual Secure Mode).

PlatformSvn

Numéro de version de sécurité de la plateforme qui héberge l’enclave.

Flags

Indicateurs qui décrivent la stratégie d’exécution pour l’enclave.

Valeur Signification
ENCLAVE_FLAG_FULL_DEBUG_ENABLED
0x00000001
L’enclave prend en charge le débogage.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED
0x00000002
L’enclave prend en charge le débogage dynamique.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE
0x00000004
Le débogage dynamique est activé pour l’enclave.

SigningLevel

Niveau de signature du module principal pour l’enclave.

EnclaveType

Remarques

Chaque enclave a un ENCLAVE_IDENTITY configuré lors de la création de l’enclave et défini lors de l’initialisation de l’enclave. Il contient plusieurs propriétés décrites ci-dessous :

Propriété Comment cette propriété est-elle générée ? Quelle est la valeur de validation de cette propriété
OwnerId Définissez lorsque l’enclave est créée (CreateEnclave) et indique le propriétaire (créateur) de l’enclave. Permet de distinguer les enclaves créées par le même propriétaire.
uniqueId Mesure de manière unique l’intégralité du contenu de l’image d’enclave. Lorsque l’image principale d’une enclave est chargée, la synthèse contenue dans la partie PKCS#1 de la signature Authenticode est capturée en tant qu’ID unique de l’enclave. Peut être utilisé pour distinguer l’instance exacte d’une enclave particulière, y compris les propriétés du code s’exécutant à l’intérieur de l’enclave et les informations du signataire.
AuthorId Un éditeur peut vouloir utiliser un certificat donné pour signer différentes enclaves VBS et avoir toujours une relation d’approbation différente du point de vue du scellement. L’ID d’auteur identifie de manière unique un éditeur d’enclave. L’ID d’auteur est un hachage de :

- ID du signataire
- Nom de l’objet dans le certificat feuille
- Informations OPUS dans la signature (le cas échéant). Cela est ajouté via l’infrastructure de signature signtool.exe. Pour les scénarios dans lesquels les soumissions tierces sont signées par Microsoft, il est également utilisé pour distinguer différents soumissions.
Permet de distinguer l’éditeur d’enclave à des fins de signature.
FamilyId Identificateur unique (GUID) affecté à l’enclave par son auteur. Désigne les enclaves de la même famille. Peut être utilisé pour distinguer les enclaves avec la même famille. Peut être utilisé pour appliquer les opérations d’importation, de scellement, etc. aux enclaves avec le même FamilyId.
ImageId Identificateur unique (GUID) affecté à l’enclave par son auteur. Peut être utilisé pour distinguer les enclaves avec la même image. Peut être utilisé pour appliquer des opérations d’importation, de scellement, etc. aux enclaves avec le même ImageId.
enclaveSvn Numéro de version de sécurité de l’image principale dans l’enclave. Comparé à minimumSvn lors de l’importation du module pour déterminer si l’importation est rejetée. Il est également utilisé dans les opérations de signature.
PlatformSvn Numéro de version de sécurité du noyau VSM. Aucune enclave n’est autorisée à annuler toute donnée qui a été scellée par une enclave SVN ultérieure.
indicateurs Indicateurs décrivant la stratégie d’exécution de l’enclave :

- ENCLAVE_FLAG_FULL_DEBUG_ENABLED : indique que l’enclave prend en charge le débogage.
- ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED : indique que l’enclave prend en charge le débogage dynamique.
- ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE : indique que le débogage dynamique a été activé pour l’enclave.
Peut être utilisé pour vérifier si l’enclave a activé le débogage ou si elle a été activée. Plusieurs permutations peuvent être utilisées pour valider l’état de l’enclave.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1709 [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2016 [applications de bureau uniquement]
d’en-tête ntenclv.h

Voir aussi

VBS_ENCLAVE_REPORT

structures d’enclave

CreateEnclave