Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’API GetRuntimeAttestationReport permet à un processus en mode utilisateur VTL0 de récupérer un rapport d’attestation d’exécution signé à partir du noyau sécurisé. Ce rapport fournit une liste des pilotes chargés et des informations sur l’intégrité du code, qui est essentielle pour valider l’intégrité du système et appliquer des stratégies anti-triche dans les applications de jeu et sensibles à la sécurité.
Syntaxe
BOOL GetRuntimeAttestationReport(
UCHAR *Nonce,
UINT16 PackageVersion,
UINT64 ReportTypesBitmap,
PVOID ReportBuffer,
PUINT32 ReportBufferSize
);
Paramètres
Nonce
Pointeur vers une mémoire tampon de 32 octets contenant un nonce pour empêcher les attaques de relecture. Spécifiez NULL si seul le calcul de la taille de sortie.
PackageVersion
Spécifie la version du package du rapport d’exécution. Utiliser RUNTIME_REPORT_PACKAGE_VERSION_CURRENT pour la dernière version.
ReportTypesBitmap
Bitmap spécifiant les types de rapports à générer. Utilisez la RUNTIME_REPORT_TYPE_TO_MASK macro pour convertir des valeurs d’énumération en masques bitmap.
-
RuntimeReportTypeDriver= 0 (rapport du pilote) -
RuntimeReportTypeCodeIntegrity= 1 (rapport d’intégrité du code) -
RUNTIME_REPORT_TYPE_MASK_ALL(tous les rapports pris en charge)
ReportBuffer
Pointeur vers une mémoire tampon où le rapport signé sera placé. Spécifiez NULL pour calculer la taille de sortie requise uniquement.
ReportBufferSize
Pointeur vers une variable contenant la taille de la mémoire tampon. Mise à jour avec le nombre réel d’octets écrits ou, le cas ReportBuffer échéant NULL, avec la taille requise.
Valeur retournée
- Retourne TRUE en cas de réussite.
- Retourne FALSE lors de l’erreur ; utilisez GetLastError() pour obtenir des informations d’erreur étendues.
Remarques
L’API fournit un rapport d’attestation d’exécution signé, qui peut être validé par le serveur principal.
Appelez régulièrement l’API pendant l’exécution pour conserver up-to-date d’attestation. Calculez toujours la taille de mémoire tampon requise en passant d’abord NULL pour ReportBuffer, puis allouez la mémoire tampon et appelez à nouveau pour récupérer le rapport.
Le rapport ne peut être généré que lorsque HVCI (Hypervisor-Protected Intégrité du code) est activé.
La mémoire tampon retournée est organisée sous la forme d’un « package de rapport d’exécution », qui inclut :
- RUNTIME_REPORT_PACKAGE_HEADER
- Nonce de 32 octets
- Un ou plusieurs RUNTIME_REPORT_DIGEST_HEADER (un par type de rapport)
- Objet blob de signature
- Un ou plusieurs rapports d’exécution authentifiés (chacun avec un RUNTIME_REPORT_HEADER)
Spécifications de sécurité
- TPM 2.0, Secure Boot, VBS, HVCI et IOMMU doivent être activés.
- Les indicateurs de signature et de débogage de test doivent être désactivés.
Le rapport d’attestation est valide uniquement si ces fonctionnalités de sécurité sont actives.
Spécifications
| Requirement | Valeur |
|---|---|
| plateforme cible | Fenêtres |
| Header | sysinfoapi.h (include Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |