Condividi tramite


Funzione EnclaveGetAttestationReport (winenclaveapi.h)

Ottiene un report di attestazione dell'enclave che descrive l'enclave corrente ed è firmato dall'autorità responsabile del tipo dell'enclave.

Sintassi

HRESULT EnclaveGetAttestationReport(
  [in, optional] const UINT8 [ENCLAVE_REPORT_DATA_LENGTH] EnclaveData,
  [out]          PVOID                                    Report,
  [in]           UINT32                                   BufferSize,
  [out]          UINT32                                   *OutputSize
);

Parametri

[in, optional] EnclaveData

Puntatore a un buffer di dati a 64 byte che l'enclave vuole inserire nel report firmato. Ad esempio, questo buffer potrebbe includere un nonce a 256 bit fornito dalla relying party, seguito da un hash SHA-256 di dati aggiuntivi che l'enclave vuole trasmettere, ad esempio una chiave pubblica che corrisponde a una chiave privata proprietaria dell'enclave. Se questo parametro è NULL, il campo corrispondente del report viene riempito con zere.

[out] Report

Puntatore a un buffer in cui deve essere posizionato il report. Questo report può essere archiviato all'interno dell'intervallo di indirizzi dell'enclave o all'interno dello spazio indirizzi del processo host. Specificare NULL per indicare che devono essere calcolate solo le dimensioni del buffer necessario per l'output e non il report stesso.

[in] BufferSize

Dimensione del buffer a cui punta il parametro Report . Se Report è NULL, BufferSize deve essere zero. Se report non NULLè e se le dimensioni del report sono maggiori di questo valore, viene restituito un errore.

[out] OutputSize

Puntatore a una variabile che riceve le dimensioni del report.

Valore restituito

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

EnclaveGetAttestationReport deve essere chiamato dall'interno di un'enclave.

EnclaveGetAttestationReport non è attualmente supportato per le enclave con un tipo di ENCLAVE_TYPE_SGX. Per le enclave VBS, il report che EnclaveGetAttestationReport ottiene la firma usando una chiave specifica di VBS.

Il report di attestazione dell'enclave contiene l'identità di tutto il codice caricato nell'enclave, nonché i criteri che controllano la modalità di esecuzione dell'enclave, ad esempio se l'enclave è in esecuzione con l'accesso al debugger attivo. Il report include anche una piccola quantità di informazioni che l'enclave ha generato per l'uso in un protocollo di scambio di chiavi.

Il report generato da EnclaveGetAttestationReport è costituito dagli elementi seguenti:

Il report di attestazione dell'enclave fornisce una prova dell'esecuzione di codice specifico con un'enclave. Se un'entità di convalida ottiene anche la prova che il sistema host è in esecuzione con la sicurezza basata su vbs attivato, tale entità può usare tale prova insieme al report di attestazione dell'enclave per verificare che sia stata caricata un'enclave specifica, popolata con codice specifico.

Requisiti

   
Client minimo supportato Windows 10 versione 1709 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winenclaveapi.h
Libreria Vertdll.lib
DLL Vertdll.dll

Vedi anche

Funzioni dell'enclave

EnclaveVerifyAttestationReport

VBS_ENCLAVE_REPORT

VBS_ENCLAVE_REPORT_PKG_HEADER

VBS_ENCLAVE_REPORT_VARDATA_HEADER

API Vertdll disponibili nelle enclave VBS