Bagikan melalui


Fungsi GetRuntimeAttestationReport (sysinfoapi.h)

GetRuntimeAttestationReport API memungkinkan proses mode pengguna VTL0 untuk mengambil laporan pengesahan runtime yang ditandatangani dari Kernel Aman. Laporan ini menyediakan daftar driver yang dimuat dan informasi integritas kode, yang penting untuk memvalidasi integritas sistem dan memberlakukan kebijakan anti-cheat dalam aplikasi game dan sensitif terhadap keamanan.

Syntax

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

Parameter-parameternya

Nonce

Arahkan ke buffer 32 byte yang berisi nonce untuk mencegah serangan pemutaran ulang. Tentukan NULL apakah hanya menghitung ukuran output.

PackageVersion

Menentukan versi paket laporan runtime. Gunakan RUNTIME_REPORT_PACKAGE_VERSION_CURRENT untuk versi terbaru.

ReportTypesBitmap

Bitmap menentukan jenis laporan yang akan dihasilkan. RUNTIME_REPORT_TYPE_TO_MASK Gunakan makro untuk mengonversi nilai enum menjadi mask bitmap.

  • RuntimeReportTypeDriver = 0 (laporan driver)
  • RuntimeReportTypeCodeIntegrity = 1 (laporan integritas kode)
  • RUNTIME_REPORT_TYPE_MASK_ALL (semua laporan yang didukung)

ReportBuffer

Penunjuk ke buffer tempat laporan yang ditandatangani akan ditempatkan. Tentukan NULL untuk menghitung ukuran output yang diperlukan saja.

ReportBufferSize

Penunjuk ke variabel yang berisi ukuran buffer. Diperbarui dengan jumlah byte aktual yang ditulis atau, jika ReportBuffer adalah NULL, dengan ukuran yang diperlukan.

Mengembalikan nilai

  • Mengembalikan TRUE pada keberhasilan.
  • Mengembalikan FALSE pada kesalahan; gunakan GetLastError() untuk informasi kesalahan yang diperluas.

Komentar

API menyediakan laporan pengesahan runtime yang ditandatangani, yang dapat divalidasi oleh backend.

Panggil API secara berkala selama runtime untuk mempertahankan pengesahan up-to-date. Selalu hitung ukuran buffer yang diperlukan terlebih dahulu dengan meneruskan NULL untuk ReportBuffer, lalu alokasikan buffer dan panggil lagi untuk mengambil laporan.

Laporan hanya dapat dihasilkan ketika HVCI (Hypervisor-Protected Code Integrity) diaktifkan.

Buffer yang dikembalikan diatur sebagai "Paket Laporan Runtime," yang mencakup:

  • RUNTIME_REPORT_PACKAGE_HEADER
  • Nonce 32 byte
  • Satu atau beberapa RUNTIME_REPORT_DIGEST_HEADER (satu per jenis laporan)
  • Blob tanda tangan
  • Satu atau beberapa laporan runtime terautentikasi (masing-masing dengan RUNTIME_REPORT_HEADER)

Persyaratan Keamanan

  • TPM 2.0, Boot Aman, VBS, HVCI, dan IOMMU harus diaktifkan.
  • Bendera penandatanganan pengujian dan debug harus nonaktif.

Laporan pengesahan hanya valid jika fitur keamanan ini aktif.

Persyaratan

Persyaratan Nilai
Platform Target Windows
Header sysinfoapi.h (termasuk Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

Lihat juga