Freigeben über


ENCLAVE_IDENTITY Struktur (ntenclv.h)

Beschreibt die Identität des primären Moduls einer Enklave.

Syntax

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;

Angehörige

OwnerId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Der Bezeichner des Besitzers für die Enklave.

UniqueId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Der eindeutige Bezeichner des primären Moduls für die Enklave.

AuthorId[IMAGE_ENCLAVE_LONG_ID_LENGTH]

Der Autorbezeichner des primären Moduls für die Enklave.

FamilyId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

Der Familienbezeichner des primären Moduls für die Enklave.

ImageId[IMAGE_ENCLAVE_SHORT_ID_LENGTH]

Der Bildbezeichner des primären Moduls für die Enklave.

EnclaveSvn

Die Sicherheitsversionsnummer des primären Moduls für die Enklave.

SecureKernelSvn

Die Sicherheitsversionsnummer des VM-Kernels (Virtual Secure Mode, VSM).

PlatformSvn

Die Sicherheitsversionsnummer der Plattform, die die Enklave hosten soll.

Flags

Flags, die die Laufzeitrichtlinie für die Enklave beschreiben.

Wert Bedeutung
ENCLAVE_FLAG_FULL_DEBUG_ENABLED
0x00000001
Die Enklave unterstützt das Debuggen.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED
0x00000002
Die Enklave unterstützt dynamisches Debuggen.
ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE
0x00000004
Das dynamische Debuggen ist für die Enklave aktiviert.

SigningLevel

Die Signierstufe des primären Moduls für die Enklave.

EnclaveType

Bemerkungen

Jede Enklave verfügt über eine ENCLAVE_IDENTITY, die konfiguriert ist, wenn die Enklave erstellt und festgelegt wird, wenn die Enklave initialisiert wird. Es enthält mehrere Eigenschaften, die unten beschrieben werden:

Eigentum Wie wird diese Eigenschaft generiert? Was ist der Wert beim Überprüfen dieser Eigenschaft?
OwnerId- Legen Sie fest, wann die Enklave erstellt wird (CreateEnclave) und kennzeichnet den Besitzer (Ersteller) der Enklave. Kann verwendet werden, um zwischen Enklaven zu unterscheiden, die vomselben Besitzer erstellt wurden.
UniqueId- Misst den gesamten Inhalt des Enklavenbilds eindeutig. Wenn das primäre Bild einer Enklave geladen wird, wird der Digest im PKCS#1-Teil der Authenticode-Signatur als Enklave Unique ID erfasst. Kann verwendet werden, um die genaue Instanz einer bestimmten Enklave zu unterscheiden, einschließlich der Eigenschaften des Codes, der innerhalb der Enklave und der Signiererinformationen ausgeführt wird.
AuthorId- Ein Herausgeber möchte möglicherweise ein bestimmtes Zertifikat zum Signieren verschiedener VBS-Enklaven verwenden und trotzdem eine andere Vertrauensstellung aus der Versiegelungsperspektive haben. Die Autoren-ID identifiziert eindeutig einen Enklavenherausgeber. Die Autoren-ID ist ein Hash von:

- Die Signierer-ID
- Der Antragstellername im Blattzertifikat
- Die OPUS-Informationen in der Signatur (sofern vorhanden). Dies wird über die signtool.exe Signierinfrastruktur hinzugefügt. In Szenarien, in denen Übermittlungen von Drittanbietern von Microsoft signiert werden, wird dies auch verwendet, um unterschiedliche Übermittlungen zu unterscheiden.
Kann verwendet werden, um den Enklavenherausgeber für Signaturzwecke zu unterscheiden.
FamilyId- Ein eindeutiger Bezeichner (GUID), der der Enklave vom Autor zugewiesen ist. Gibt Enklaven derselben Familie an. Kann verwendet werden, um zwischen Enklaven mit derselben Familie zu unterscheiden. Kann verwendet werden, um Import-, Versiegelungs- usw. Operationen zu Enklaven mit demselben FamilyIdzu erzwingen.
ImageId- Ein eindeutiger Bezeichner (GUID), der der Enklave vom Autor zugewiesen ist. Kann verwendet werden, um zwischen Enklaven mit demselben Bild zu unterscheiden. Kann verwendet werden, um Import-, Versiegelungs- usw. Operationen zu Enklaven mit demselben ImageIdzu erzwingen.
EnclaveSvn Die Sicherheitsversionsnummer des primären Bilds innerhalb der Enklave. Verglichen mit MinimumSvn für den Modulimport, um festzustellen, ob der Import abgelehnt wird. Sie wird auch bei Anmeldevorgängen verwendet.
PlatformSvn- Die Sicherheitsversionsnummer des VSM-Kernels. Keine Enklave darf keine Daten entsperren, die von einer späteren SVN-Enklave versiegelt wurden.
Flags Flags, die die Laufzeitrichtlinie der Enklave beschreiben:

- ENCLAVE_FLAG_FULL_DEBUG_ENABLED – Gibt an, dass die Enklave das Debuggen unterstützt.
- ENCLAVE_FLAG_DYNAMIC_DEBUG_ENABLED – Gibt an, dass die Enklave dynamisches Debuggen unterstützt.
- ENCLAVE_FLAG_DYNAMIC_DEBUG_ACTIVE – Gibt an, dass das dynamische Debuggen für die Enklave aktiviert wurde.
Kann verwendet werden, um zu bestätigen, ob die Enklave das Debuggen aktiviert hat oder ob sie aktiviert wurde. Mehrere Permutationen können verwendet werden, um den Zustand der Enklave zu überprüfen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 1709 [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2016 [nur Desktop-Apps]
Header- ntenclv.h

Siehe auch

VBS_ENCLAVE_REPORT

Enklavenstrukturen

CreateEnklave