次の方法で共有


GetRuntimeAttestationReport 関数 (sysinfoapi.h)

GetRuntimeAttestationReport API を使用すると、VTL0 ユーザー モード プロセスは、セキュリティで保護されたカーネルから署名されたランタイム構成証明レポートを取得できます。 このレポートには、読み込まれたドライバーとコード整合性情報の一覧が表示されます。これは、システムの整合性を検証し、ゲームおよびセキュリティに依存するアプリケーションでチート対策ポリシーを適用するために不可欠です。

構文

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

パラメーター

Nonce

リプレイ攻撃を防ぐための nonce を含む 32 バイト バッファーへのポインター。 出力サイズのみを計算する場合は、 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

バッファーのサイズを含む変数へのポインター。 書き込まれた実際のバイト数、または ReportBufferNULL場合は、必要なサイズで更新されます。

戻り値

  • 成功した場合は TRUE を返します。
  • エラー時に FALSE を返します。拡張エラー情報には GetLastError() を使用します。

注釈

API には、バックエンドで検証できる署名付きランタイム構成証明レポートが用意されています。

実行時に API を定期的に呼び出して、up-to-date 構成証明を維持します。 常に必要なバッファー サイズを最初に計算するには、ReportBuffer に NULL を渡してからバッファーを割り当て、再度呼び出してレポートを取得します。

レポートは、HVCI (Hypervisor-Protected コード整合性) が有効になっている場合にのみ生成できます。

返されるバッファーは、次のような "ランタイム レポート パッケージ" として編成されます。

  • RUNTIME_REPORT_PACKAGE_HEADER
  • 32 バイトの nonce
  • 1 つ以上のRUNTIME_REPORT_DIGEST_HEADER (レポートの種類ごとに 1 つ)
  • 署名 BLOB
  • 1 つ以上の認証済みランタイム レポート (それぞれRUNTIME_REPORT_HEADER)

セキュリティ要件

  • TPM 2.0、セキュア ブート、VBS、HVCI、IOMMU を有効にする必要があります。
  • テスト署名フラグとデバッグ フラグはオフにする必要があります。

構成証明レポートは、これらのセキュリティ機能がアクティブな場合にのみ有効です。

Requirements

Requirement 価値
ターゲット プラットフォーム の ウィンドウズ
Header sysinfoapi.h (Windows.h を含む)
Library Kernel32.lib
DLL Kernel32.dll

こちらも参照ください