Stratégie Attestation version 1.0

Les propriétaires d’instance peuvent utiliser la stratégie Azure Attestation pour définir ce qui doit être validé pendant le flux d’attestation. Cet article présente les fonctionnements du service d’attestation et du moteur de stratégie. Chaque type d’attestation possède sa propre stratégie d’attestation. La grammaire et le traitement pris en charge sont largement identiques.

Policy version 1.0

La version minimale de la stratégie prise en charge par le service est la version 1.0.

A diagram that shows Azure Attestation using policy version 1.0.

Le flux du service d’attestation est le suivant :

  • La plateforme envoie la preuve d’attestation dans l’appel d’attestation au service d’attestation.
  • Le service d’attestation analyse la preuve et crée une liste de revendications qui sont ensuite utilisées dans l’évaluation de l’attestation. Ces revendications sont classées logiquement sous forme d’ensembles de revendications entrantes.
  • La stratégie d’attestation chargée est utilisée pour évaluer la preuve sur les règles créées dans la stratégie d’attestation.

Policy version 1.0 comporte trois segments :

  • version : la version est le numéro de version de la grammaire qui est suivie.
  • authorizationrules : collection de règles de revendication qui sont vérifiées en premier, pour déterminer si l’attestation doit passer à la section issuancerules. Utilisez cette section pour filtrer les appels qui ne nécessitent pas d’application de règles d’émission. Aucune revendication ne peut être émise de cette section vers le jeton de réponse. Ces règles peuvent être utilisées pour faire échouer l’attestation.
  • issuancerules : collection de règles de revendication qui sont évaluées pour ajouter des informations au résultat de l’attestation, tel que défini dans la stratégie. Les règles de revendication s’appliquent dans l’ordre dans lequel elles sont définies. Elles sont également facultatives. Ces règles peuvent être utilisées pour ajouter des informations à l’ensemble de revendications sortantes et au jeton de réponse. Ces règles ne peuvent pas être utilisées pour faire échouer l’attestation.

Les revendications suivantes sont prises en charge par Policy version 1.0 dans le cadre des revendications entrantes.

Attestation TPM

Utilisez ces revendications pour définir des règles d’autorisation dans une stratégie d’attestation TPM (Trusted Platform Module) :

  • aikValidated : valeur booléenne qui contient des informations si le certificat AIK (Attestation Identity Key) a été validé ou non.
  • aikPubHash : la chaîne contenant la valeur base64 (SHA256) (clé publique AIK au format DER).
  • tpmVersion : la valeur entière qui contient la version principale du module TPM.
  • secureBootEnabled : la valeur booléenne indiquant si le démarrage sécurisé est activé.
  • iommuEnabled : la valeur booléenne qui indique si l’unité de gestion de la mémoire d’entrée-sortie est activée.
  • bootDebuggingDisabled : la valeur booléenne qui indique si le débogage de démarrage est désactivé.
  • notSafeMode : la valeur booléenne qui indique si Windows n’est pas en mode sans échec.
  • notWinPE: la valeur booléenne qui indique si Windows n’est pas en mode WinPE.
  • vbsEnabled : la valeur booléenne qui indique si la sécurité basée sur la virtualisation (VBS) est activée.
  • vbsReportPresent : la valeur booléenne qui indique si un rapport d’enclave VBS est disponible.

Attestation VBS

Utilisez les revendications suivantes pour définir des règles d’autorisation dans une stratégie d’attestation VBS :

  • enclaveAuthorId : la valeur de chaîne qui contient la valeur codée Base64Url de l’ID de l’auteur d’enclave. Il s’agit de l’identificateur d’auteur de la famille du module principal de l’enclave.
  • enclaveImageId : la valeur de chaîne qui contient la valeur codée Base64Url de l’ID de l’image d’enclave. Il s’agit de l’identificateur d’image de la famille du module principal de l’enclave.
  • enclaveOwnerId : la valeur de chaîne qui contient la valeur codée Base64Url de l’ID de propriétaire d’enclave. Il s’agit de l’identificateur de propriétaire de l’enclave.
  • veFamilyId: la valeur de chaîne qui contient la valeur codée Base64Url de l’ID de famille d’enclave. Il s’agit de l’identificateur de la famille du module principal de l’enclave.
  • enclaveSvn : la valeur entière contenant le numéro de la version de sécurité du module principal de l’enclave.
  • enclavePlatformSvn : la valeur entière contenant le numéro de la version de sécurité de la plateforme qui héberge l’enclave.
  • enclaveFlags : la revendication enclaveFlags est une valeur entière qui contient des indicateurs décrivant la stratégie d’exécution pour l’enclave.

Exemples de stratégies pour différents types d’attestations

Exemple de stratégie pour le module de plateforme sécurisée (TPM) :

version=1.0;

authorizationrules { 
    => permit();
};


issuancerules
{
[type=="aikValidated", value==true]&& 
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] && 
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};