Freigeben über


GetRuntimeAttestationReport-Funktion (sysinfoapi.h)

Die GetRuntimeAttestationReport-API ermöglicht es einem VTL0-Benutzermodusprozess, einen signierten Laufzeitnachweisbericht aus dem sicheren Kernel abzurufen. Dieser Bericht enthält eine Liste der geladenen Treiber und Codeintegritätsinformationen, die für die Überprüfung der Systemintegrität und das Erzwingen von Anti-Cheat-Richtlinien in Spielen und sicherheitsrelevanten Anwendungen unerlässlich sind.

Syntax

BOOL GetRuntimeAttestationReport(
  UCHAR   *Nonce,
  UINT16  PackageVersion,
  UINT64  ReportTypesBitmap,
  PVOID   ReportBuffer,
  PUINT32 ReportBufferSize
);

Die Parameter

Nonce

Zeigen Sie auf einen 32-Byte-Puffer, der eine Nonce enthält, um Replay-Angriffe zu verhindern. Geben Sie an NULL , ob nur die Ausgabegröße berechnet wird.

PackageVersion

Gibt die Paketversion des Laufzeitberichts an. Wird für die neueste Version verwendet RUNTIME_REPORT_PACKAGE_VERSION_CURRENT .

ReportTypesBitmap

Bitmap, die die Typen der zu generierenden Berichte angibt. Verwenden Sie das RUNTIME_REPORT_TYPE_TO_MASK Makro, um Enumerationswerte in Bitmapmasken zu konvertieren.

  • RuntimeReportTypeDriver = 0 (Treiberbericht)
  • RuntimeReportTypeCodeIntegrity = 1 (Codeintegritätsbericht)
  • RUNTIME_REPORT_TYPE_MASK_ALL (alle unterstützten Berichte)

ReportBuffer

Zeigen Sie auf einen Puffer, in dem der signierte Bericht platziert wird. Geben Sie NULL an, dass die erforderliche Ausgabegröße nur berechnet werden soll.

ReportBufferSize

Zeigen Sie auf eine Variable, die die Größe des Puffers enthält. Aktualisiert mit der tatsächlichen Anzahl geschriebener Bytes oder, falls ReportBuffer vorhanden NULL, mit der erforderlichen Größe.

Rückgabewert

  • Gibt WAHR bei Erfolg zurück.
  • Gibt FALSCH bei Fehler zurück; verwenden Sie GetLastError() für erweiterte Fehlerinformationen.

Bemerkungen

Die API stellt einen signierten Laufzeitnachweisbericht bereit, der vom Back-End überprüft werden kann.

Rufen Sie die API während der Laufzeit regelmäßig auf, um up-to-Datumsnachweis beizubehalten. Berechnen Sie zuerst die erforderliche Puffergröße, indem Sie NULL für ReportBuffer übergeben, dann den Puffer zuordnen und erneut aufrufen, um den Bericht abzurufen.

Der Bericht kann nur generiert werden, wenn HVCI (Hypervisor-Protected Codeintegrität) aktiviert ist.

Der zurückgegebene Puffer ist als "Laufzeitberichtspaket" organisiert, das Folgendes umfasst:

  • RUNTIME_REPORT_PACKAGE_HEADER
  • 32-Byte-Nonce
  • Mindestens ein RUNTIME_REPORT_DIGEST_HEADER (eins pro Berichtstyp)
  • Signatur-BLOB
  • Mindestens ein authentifizierter Laufzeitbericht (jeweils mit einem RUNTIME_REPORT_HEADER)

Sicherheitsanforderungen

  • TPM 2.0, Sicherer Start, VBS, HVCI und IOMMU müssen aktiviert sein.
  • Testsignatur- und Debugkennzeichnungen müssen deaktiviert sein.

Der Nachweisbericht ist nur gültig, wenn diese Sicherheitsfeatures aktiv sind.

Anforderungen

Anforderung Wert
Zielplattform Fenster
Header sysinfoapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

Siehe auch