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_ENABLED0x00000001 |
L’enclave prend en charge le débogage. |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED0x00000002 |
L’enclave prend en charge le débogage dynamique. |
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE0x00000004 |
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 |