Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API GetRuntimeAttestationReport позволяет процессу пользовательского режима VTL0 получить подписанный отчет аттестации среды выполнения из безопасного ядра. В этом отчете представлен список загруженных драйверов и сведений о целостности кода, необходимых для проверки целостности системы и применения политик защиты от мошенничества в игровых и защищенных приложениях.
Синтаксис
BOOL GetRuntimeAttestationReport(
UCHAR *Nonce,
UINT16 PackageVersion,
UINT64 ReportTypesBitmap,
PVOID ReportBuffer,
PUINT32 ReportBufferSize
);
Параметры
Nonce
Указатель на 32-байтовый буфер, содержащий nonce, чтобы предотвратить атаки воспроизведения. Укажите NULL , только вычисляет ли размер выходных данных.
PackageVersion
Указывает версию пакета отчета среды выполнения. Используется RUNTIME_REPORT_PACKAGE_VERSION_CURRENT для последней версии.
ReportTypesBitmap
Растровое изображение, указывающее типы отчетов для создания. Используйте макрос для преобразования значений перечисления RUNTIME_REPORT_TYPE_TO_MASK в маски растрового изображения.
-
RuntimeReportTypeDriver= 0 (отчет драйвера) -
RuntimeReportTypeCodeIntegrity= 1 (отчет о целостности кода) -
RUNTIME_REPORT_TYPE_MASK_ALL(все поддерживаемые отчеты)
ReportBuffer
Указатель на буфер, в котором будет помещен подписанный отчет. Укажите NULL , чтобы вычислить только необходимый размер выходных данных.
ReportBufferSize
Указатель на переменную, содержащую размер буфера. Обновлено с фактическим числом записанных байтов или( если ReportBuffer имеется NULL) с требуемым размером.
Возвращаемое значение
- Возвращает значение TRUE при успешном выполнении.
- Возвращает значение FALSE при ошибке; используйте GetLastError() для расширенных сведений об ошибке.
Замечания
API предоставляет подписанный отчет аттестации среды выполнения, который можно проверить серверной частью.
Периодически вызывайте API во время выполнения, чтобы поддерживать аттестацию up-toдаты. Всегда вычисляйте требуемый размер буфера сначала путем передачи NULL для ReportBuffer, а затем выделите буфер и вызов еще раз, чтобы получить отчет.
Отчет можно создать только при включении HVCI (Hypervisor-Protected целостности кода).
Возвращаемый буфер упорядочен как пакет отчета среды выполнения, который включает в себя:
- RUNTIME_REPORT_PACKAGE_HEADER
- 32-байтовый nonce
- Один или несколько RUNTIME_REPORT_DIGEST_HEADER (один на тип отчета)
- BLOB-объект подписи
- Один или несколько отчетов среды выполнения с проверкой подлинности (каждый из которых имеет RUNTIME_REPORT_HEADER)
Требования к безопасности
- TPM 2.0, безопасная загрузка, VBS, HVCI и IOMMU должны быть включены.
- Флаги подписывания тестов и отладки должны быть отключены.
Отчет аттестации действителен только в том случае, если эти функции безопасности активны.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Виндоус |
| Header | sysinfoapi.h (включая Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |