Share via


EnclaveGetAttestationReport 함수(winenclaveapi.h)

현재 Enclave를 설명하고 enclave 형식을 담당하는 기관에서 서명하는 Enclave 증명 보고서를 가져옵니다.

구문

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

매개 변수

[in, optional] EnclaveData

Enclave가 서명된 보고서에 삽입하려는 데이터의 64 바이트 버퍼에 대한 포인터입니다. 예를 들어 이 버퍼에는 신뢰 당사자가 제공한 256비트 nonce와 Enclave가 소유하는 프라이빗 키에 해당하는 공개 키와 같이 Enclave가 전달하려는 추가 데이터의 SHA-256 해시가 포함될 수 있습니다. 이 매개 변수가 이 NULL면 보고서의 해당 필드가 0으로 채워집니다.

[out] Report

보고서를 배치해야 하는 버퍼에 대한 포인터입니다. 이 보고서는 enclave의 주소 범위 내에서 또는 호스트 프로세스의 주소 공간 내에 저장될 수 있습니다. 보고서 자체가 아니라 출력에 필요한 버퍼 크기만 계산해야 함을 나타내려면 를 지정 NULL 합니다.

[in] BufferSize

보고서 매개 변수가 가리키는 버퍼의 크기입니다. Report가 이NULLBufferSize는 0이어야 합니다. 보고서가 이 아니NULL고 보고서의 크기가 이 값보다 크면 오류가 반환됩니다.

[out] OutputSize

보고서의 크기를 받는 변수에 대한 포인터입니다.

반환 값

이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

EnclaveGetAttestationReport 는 enclave 내에서 호출해야 합니다.

EnclaveGetAttestationReport 는 현재 ENCLAVE_TYPE_SGX 형식의 enclave에 대해 지원되지 않습니다. VBS Enclave의 경우 EnclaveGetAttestationReport 가 가져오는 보고서는 VBS 관련 키를 사용하여 서명됩니다.

enclave 증명 보고서에는 enclave에 로드된 모든 코드의 ID와 enclave가 실행되는 방식을 제어하는 정책(예: enclave가 디버거 액세스 활성으로 실행 중인지 여부)이 포함됩니다. 또한 보고서에는 Enclave가 키 교환 프로토콜에서 사용하기 위해 생성한 소량의 정보도 포함됩니다.

EnclaveGetAttestationReport에서 생성하는 보고서는 다음 항목으로 구성됩니다.

Enclave 증명 보고서는 특정 코드가 enclave와 함께 실행되고 있다는 증거를 제공합니다. 유효성 검사 엔터티가 VBS가 켜져 있는 상태에서 호스트 시스템이 실행 중이라는 증명을 가져오는 경우 해당 엔터티는 Enclave 증명 보고서와 함께 해당 증명을 사용하여 특정 코드로 채워진 특정 Enclave가 로드되었는지 확인할 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 10 버전 1709 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winenclaveapi.h
라이브러리 Vertdll.lib
DLL Vertdll.dll

추가 정보

Enclave 함수

EnclaveVerifyAttestationReport

VBS_ENCLAVE_REPORT

VBS_ENCLAVE_REPORT_PKG_HEADER

VBS_ENCLAVE_REPORT_VARDATA_HEADER

VBS Enclave에서 사용할 수 있는 Vertdll API