Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'API GetRuntimeAttestationReport consente a un processo in modalità utente VTL0 di recuperare un report di attestazione di runtime firmato dal kernel protetto. Questo report fornisce un elenco di driver caricati e informazioni sull'integrità del codice, essenziali per la convalida dell'integrità del sistema e l'applicazione di criteri anti-inganno nelle applicazioni sensibili alla sicurezza e ai giochi.
Sintassi
BOOL GetRuntimeAttestationReport(
UCHAR *Nonce,
UINT16 PackageVersion,
UINT64 ReportTypesBitmap,
PVOID ReportBuffer,
PUINT32 ReportBufferSize
);
Parametri
Nonce
Puntatore a un buffer a 32 byte contenente un nonce per impedire attacchi di riproduzione. Specificare NULL se calcolare solo le dimensioni dell'output.
PackageVersion
Specifica la versione del pacchetto del report di runtime. Usare RUNTIME_REPORT_PACKAGE_VERSION_CURRENT per la versione più recente.
ReportTypesBitmap
Bitmap che specifica i tipi di report da generare. Utilizzare la RUNTIME_REPORT_TYPE_TO_MASK macro per convertire i valori di enumerazione in maschere bitmap.
-
RuntimeReportTypeDriver= 0 (report driver) -
RuntimeReportTypeCodeIntegrity= 1 (report sull'integrità del codice) -
RUNTIME_REPORT_TYPE_MASK_ALL(tutti i report supportati)
ReportBuffer
Puntatore a un buffer in cui verrà inserito il report firmato. Specificare NULL per calcolare solo le dimensioni di output necessarie.
ReportBufferSize
Puntatore a una variabile contenente le dimensioni del buffer. Aggiornato con il numero effettivo di byte scritti o, se ReportBuffer è NULL, con le dimensioni necessarie.
Valore restituito
- Restituisce TRUE in caso di esito positivo.
- Restituisce FALSE in caso di errore; usare GetLastError() per informazioni estese sugli errori.
Osservazioni:
L'API fornisce un report di attestazione di runtime firmato, che può essere convalidato dal back-end.
Chiamare periodicamente l'API durante il runtime per mantenere up-to-date attestazione. Calcolare sempre prima le dimensioni del buffer necessarie passando NULL per ReportBuffer, quindi allocare il buffer e chiamare di nuovo per recuperare il report.
Il report può essere generato solo quando HVCI (Hypervisor-Protected l'integrità del codice) è abilitata.
Il buffer restituito è organizzato come "Pacchetto di report di runtime", che include:
- RUNTIME_REPORT_PACKAGE_HEADER
- Nonce a 32 byte
- Uno o più RUNTIME_REPORT_DIGEST_HEADER (uno per tipo di report)
- BLOB di firma
- Uno o più report di runtime autenticati (ognuno con un RUNTIME_REPORT_HEADER)
Requisiti di sicurezza
- TPM 2.0, Avvio protetto, VBS, HVCI e IOMMU devono essere abilitati.
- I flag di firma di test e debug devono essere disattivati.
Il report di attestazione è valido solo se queste funzionalità di sicurezza sono attive.
Requisiti
| Requisito | Value |
|---|---|
| Piattaforma di destinazione | Windows |
| Header | sysinfoapi.h (include Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |