Partager via


Profil ACPI de l’environnement d’exécution approuvé

Licences : Microsoft s’engage à vous accorder une licence sans frais et sans redevances pour ses Revendications nécessaires à des conditions raisonnables et non discriminatoires uniquement pour faire, utiliser, vendre, proposer à la vente, importer ou distribuer toute implémentation de cette spécification. Les « revendications nécessaires » sont les revendications de brevets appartenant à Microsoft ou contrôlés par Microsoft qui sont techniquement nécessaires pour mettre en œuvre les parties requises (qui incluent également les éléments requis des parties facultatives) de cette spécification, où la fonctionnalité à l’origine de la violation est décrite en détail et non simplement référencée dans la présente Spécification.

1.0 Arrière-plan

Cette spécification définit l’objet d’appareil ACPI pour un appareil TPM 2.0 et les méthodes de contrôle associées à l’objet d’appareil ACPI requis pour Windows 8. Les méthodes de contrôle implémentent l’équivalent de l’interface ACPI de présence physique TCG, l’équivalent de l’interface d’atténuation des attaques de réinitialisation de plateforme et éventuellement une méthode ACPI pour envoyer une commande à l’appareil TPM 2.0.

Une table ACPI statique supplémentaire (TPM2) est utilisée pour définir le mécanisme de communication entre l’appareil TPM 2.0 et le système d’exploitation Windows 8.

Notes

Microsoft fait référence au « TPM » du groupe d’informatique approuvé. Next » terme as « TPM 2.0 »

2.0 Conditions requises

Cette spécification suppose une plateforme informatique qui prend en charge la communication basée sur ACPI, comme spécifié dans [ACPI09] entre un système d’exploitation et un environnement de microprogramme.

3.0 Scénarios d’utilisation (par exemple uniquement)

3.1 Envoi d’une commande de présence physique

Un scénario d’utilisation classique est le suivant :

  1. Dans l’environnement du système d’exploitation, une application détecte que l’appareil TPM 2.0 n’est pas entièrement provisionné pour une utilisation pour Windows 8. (Un exemple de la façon dont cela peut se produire est si une nouvelle image de système d’exploitation est installée après qu’une image de système d’exploitation précédente a provisionné le module de plateforme sécurisée 2.0.)

  2. L’application lance un Assistant système d’exploitation pour préparer l’appareil TPM 2.0 à utiliser.

  3. L’Assistant interagit avec l’administrateur de l’ordinateur via l’interface utilisateur et détermine que l’administrateur doit effacer l’appareil TPM 2.0 pour le provisionner, car la valeur d’autorisation de réinitialisation de l’appareil TPM 2.0 n’est pas disponible.

  4. Pour effacer l’appareil TPM 2.0, le système d’exploitation demande (en exécutant une méthode de contrôle ACPI pour l’objet d’appareil TPM 2.0) que le microprogramme effectue l’opération pour effacer l’appareil TPM 2.0 au prochain démarrage, à condition qu’un utilisateur physiquement présent confirme qu’il approuve l’effacement de l’appareil TPM 2.0.

  5. Le système d’exploitation redémarre la plateforme.

  6. Pendant la première partie du processus de démarrage, le microprogramme reconnaît la demande en attente du système d’exploitation pour effacer l’appareil TPM 2.0.

  7. Le microprogramme présente une interface utilisateur à un utilisateur physiquement présent lui demandant d’effectuer une action pour confirmer l’effacement de l’appareil TPM 2.0.

  8. Un utilisateur physiquement présent confirme l’effacement de l’appareil TPM 2.0.

  9. Le microprogramme efface l’appareil TPM 2.0 à l’aide de l’autorisation de la hiérarchie de plateforme.

  10. Si nécessaire, pour conserver l’effacement de l’appareil TPM 2.0, la plateforme est redémarré immédiatement.

  11. Le système d’exploitation démarre.

  12. Le système d’exploitation interroge (via une méthode de contrôle ACPI sur l’appareil TPM 2.0) si la dernière demande du système d’exploitation pour effacer l’appareil TPM 2.0 a été (a) réussie, (b) n’a pas été confirmée par l’utilisateur physiquement présent ou (c) a rencontré une autre erreur. Dans ce qui suit, nous supposons que l’appareil TPM 2.0 a été effacé avec succès.

  13. L’Assistant Approvisionnement d’appareils TPM 2.0 au sein du système d’exploitation exécute des commandes supplémentaires pour préparer l’appareil à une utilisation par Windows.

3.2 Demande d’effacement de la mémoire au prochain démarrage

Ce scénario illustre la façon dont la fonctionnalité d’effacement de la mémoire du système permet de contrecarrer les attaques qui récupèrent la mémoire système pour le matériel clé après le redémarrage inattendu de la plateforme.

  1. À partir du système d’exploitation, un administrateur sur un système avec un appareil TPM 2.0 active la fonctionnalité BitLocker pour le volume du système d’exploitation.

  2. La fonctionnalité BitLocker appelle la méthode de contrôle ACPI de l’appareil TPM 2.0 pour définir le bit ClearMemory défini dans la spécification d’atténuation des attaques de réinitialisation de la plateforme TCG.

  3. La fonctionnalité BitLocker chiffre le volume du système d’exploitation.

  4. L’administrateur laisse le système sans assistance avec l’écran verrouillé.

  5. Une personne malveillante vole le système pendant qu’il est en cours d’exécution.

  6. La personne malveillante insère une clé USB et retire rapidement la batterie du système et la réinsère.

  7. Le système démarre lorsque la batterie est réinsérée.

  8. Étant donné que le bit ClearMemory a été défini précédemment, le microprogramme efface la mémoire système entière avant de lancer tout code non fourni par le fabricant de la plateforme.

  9. La personne malveillante configure le microprogramme pendant le démarrage pour démarrer sur le périphérique USB même si le code sur le périphérique USB n’est pas correctement signé.

  10. Le code sur le périphérique USB analyse la mémoire système à la recherche de la clé principale de volume BitLocker, mais elle est introuvable.

    Avertissement

    Les étapes 11 à 16 sont similaires aux étapes précédentes, mais utilisez l’interface UEFI au lieu d’ACPI

  11. La personne malveillante tente de démarrer le système normalement.

  12. Étant donné que BitLocker a été activé avec le protecteur de clé TPM, cela permet à BootMgr de « décompresser » le volume master clé pour le volume du système d’exploitation, car les mesures correctes se trouvent sur l’appareil TPM 2.0 lors de l’exécution de BootMgr.

  13. Le démarrage passe à l’écran d’ouverture de session du système d’exploitation.

  14. La personne malveillante retire à nouveau puis réinsère la batterie et démarre le code à partir d’un périphérique USB.

  15. Étant donné que le bit ClearMemory a été défini, le microprogramme système efface la mémoire système entière pendant le démarrage.

  16. Même si le code du périphérique USB analyse la mémoire système, la clé de chiffrement du volume du système d’exploitation n’est pas en mémoire.

3.3 Émission d’une commande sur l’appareil TPM 2.0

Cet exemple ne s’applique pas à toutes les architectures système.

  1. Le pilote Windows TPM 2.0 souhaite émettre une commande sur l’appareil TPM 2.0.

  2. Le pilote Windows TPM 2.0 écrit la commande à exécuter sur l’adresse physique lue à partir de la zone de contrôle définie par ACPI précédemment lors de l’initialisation du pilote Windows TPM 2.0.

  3. Le pilote Windows TPM 2.0 exécute la méthode de contrôle ACPI pour exécuter une commande TPM 2.0.

  4. Le pilote Windows TPM 2.0 interroge les registres dans la zone de contrôle jusqu’à ce qu’ils indiquent que la commande TPM est terminée.

  5. Le pilote TPM Windows lit la réponse de la commande à partir de l’adresse physique lue à partir de la zone de contrôle définie par ACPI précédemment lors de l’initialisation du pilote TPM Windows.

4.0 Exigences ACPI générales pour le système et l’appareil TPM 2.0

4.1 Considérations relatives à l’alimentation

ACPI D1/D2

L’appareil TPM 2.0 PEUT prendre en charge ACPI D1 et/ou ACPI D2, mais doit se comporter comme s’il était à l’état d’alimentation ACPI D0 alors qu’il était dans D1 ou D2.

ACPI S3 (veille)

Le TPM 2.0 PEUT prendre en charge S3, mais l’entrée et la sortie de l’état de faible consommation S3 pour l’appareil DOIVENT être contrôlées par le fabricant du système/de la plateforme.

Le système d’exploitation (ou tout autre logiciel exécuté dans l’environnement du système d’exploitation) NE DOIT PAS être en mesure de placer l’appareil TPM 2.0 dans S3 ou de provoquer la fermeture de l’appareil TPM 2.0 de S3. Par exemple, si l’appareil TPM 2.0 se trouve sur un bus, le système d’exploitation NE DOIT PAS être en mesure de mettre hors tension le bus, ce qui entraîne l’entrée de l’appareil TPM 2.0 dans S3.

Le pilote TPM Windows 8 tente d’émettre une commande TPM2_Shutdown avant d’entrer S3 (veille).

Si une plateforme matérielle prend en charge S3 et que le module TPM ne conserve pas son état tant que le système est dans S3, la plateforme DOIT émettre les commandes TPM2_Init et TPM2_Startup(TPM_SU_STATE) nécessaires pendant la reprise S3. Il est possible que le système d’exploitation n’ait pas terminé la commande TPM2_Shutdown avant l’entrée dans S3. Cela peut entraîner le renvoi d’une erreur TPM2_Startup(TPM_SU_STATE). Le microprogramme système qui reprend à partir de S3 DOIT traiter correctement une erreur TPM2_Startup. Par exemple, en désactivant l’accès au module de plateforme sécurisée via du matériel, en émettant une commande TPM2_Startup(TPM_SU_CLEAR) et en configurant l’appareil en toute sécurité en effectuant des actions telles que l’extension d’un séparateur avec un condensé d’erreur (0x01) dans les fichiers PCR 0 à 7 et le verrouillage des index NV.

Le système DOIT prendre en compte le temps écoulé pendant S3 en décrémentant le nombre d’échecs d’attaques du dictionnaire TPM (TPM_PT_LOCKOUT_COUNTER) pour la durée pendant laquelle le système était dans S3 selon l’intervalle de verrouillage (TPM_PT_LOCKOUT_INTERVAL). Cela peut nécessiter une implémentation de plateforme pour fournir une tension de secours afin de conserver l’horloge TPM et/ou l’état pendant S3, ou une plateforme peut également fournir en toute sécurité des informations sur le temps écoulé pendant que le système était dans un état de faible puissance afin que le module TPM puisse mettre à jour de manière fiable son nombre d’échecs d’autorisation pour sa logique d’attaque de dictionnaire.

États à faible consommation d’énergie pour les systèmes de secours connectés

Windows 8 n’effectue aucune action supplémentaire associée au module de plateforme sécurisée lors de l’entrée et de la sortie des états de faible consommation d’énergie pour les systèmes de secours connectés. La plateforme DOIT effectuer toutes les actions nécessaires pour que le module TPM se comporte comme s’il était dans D0 chaque fois que le système entre et sort d’états de faible consommation pour les systèmes de secours connectés. Cela peut nécessiter une implémentation de plateforme pour fournir une tension de secours pour alimenter l’horloge TPM et/ou conserver l’état. Sinon, une plateforme PEUT avoir besoin de fournir en toute sécurité des informations sur le temps écoulé alors que le système était dans un état de faible consommation au module de plateforme sécurisée, afin que le module TPM puisse mettre à jour de manière fiable son nombre d’échecs d’autorisation pour sa logique d’attaque de dictionnaire.

Système désactivé

Le système DOIT prendre en compte en toute sécurité le temps écoulé pendant l’arrêt complet en décrémentant le nombre d’échecs d’attaques du dictionnaire du module de plateforme sécurisée (TPM_PT_LOCKOUT_COUNTER) pour la durée pendant laquelle le système était dans S5 selon l’intervalle de verrouillage (TPM_PT_LOCKOUT_INTERVAL).

4.2 Tables ACPI

Un système avec un appareil TPM 2.0 DOIT fournir une table d’objets d’appareil avec un ID de périphérique matériel et une table statique spécifique au fournisseur de système d’exploitation (TPM2), comme décrit ci-dessous.

La table TPM2 et l’objet d’appareil TPM 2.0 DOIVENT être persistants une fois la plateforme livrée à un client. (Par exemple, les options de microprogramme NE DOIVENT PAS autoriser le masquage de la table TPM2 ou de l’objet d’appareil TPM 2.0.) Une exception est si un système est fourni avec une option autre que la valeur par défaut pour fournir des fonctionnalités TPM 1.2 au lieu de la fonctionnalité TPM 2.0 (c.-à-d. pour la compatibilité avec des systèmes d’exploitation plus anciens comme Windows 7.) Dans ce cas, la table TPM2 et l’objet d’appareil TPM 2.0 PEUVENT être supprimés via une option de configuration du BIOS et l’énumération d’un module TPM 1.2 effectuée. Remarque : Un système de secours connecté pour Windows 8 est nécessaire pour être fourni, par défaut, avec un TPM 2.0 visible par le système d’exploitation. Contactez Microsoft pour obtenir des conseils techniques sur le basculement entre un module TPM 2.0 et un module TPM 1.2 sur une plateforme matérielle.

Table ACPI de l’objet de périphérique TPM 2.0 4.3

4.3.1 Hiérarchie de bus

La table Device Object DOIT se trouver sous la table DSDT de l’espace de noms ACPI. L’objet d’appareil TPM 2.0 DOIT se trouver sous le bus système à l’emplacement « root\_SB ».

4.3.2 Identificateur matériel

L’identificateur matériel plug-and-play réel (par exemple, _HID) pour l’objet d’appareil TPM 2.0 DOIT être « MSFT0101 » ou l’appareil DOIT avoir un ID compatible « MSFT0101 » et le _HID peut être spécifique au fournisseur.

4.3.3 Descripteurs de ressources

L’objet d’appareil ACPI TPM 2.0 DOIT revendiquer toutes les ressources utilisées par l’appareil TPM 2.0.

4.3.4 Méthodes de contrôle

4.3.4.1 Atténuation des attaques de réinitialisation de plateforme

Le système DOIT implémenter toutes les parties ACPI et UEFI de [TCG08] pour UEFI. L’objet d’appareil DOIT implémenter l’interface de méthode de contrôle définie dans [TCG08], section 6. L’interface est requise même si la plateforme efface inconditionnellement la mémoire à chaque démarrage. L’effacement de la mémoire NE DOIT PAS être conditionnel à l’état de l’appareil TPM 2.0 (en revanche, [TCG08] ne nécessite pas l’effacement de la mémoire si le module TPM 1.2 n’est pas détenu). De plus, les sections 3 et 5 du [TCG08] DOIVENT être implémentées. La fonction de requête _DSM DOIT être implémentée (index de fonction 0) conformément à la spécification ACPI. (Remarque : La spécification ACPI 4.0 comporte une erreur concernant la valeur de retour de la méthode _DSM. La valeur de retour de la méthode _DSM doit être une mémoire tampon contenant 0x03.) L’implémentation DOIT détecter automatiquement un arrêt ordonné du système d’exploitation et effacer le bit ClearMemory sur de tels événements.

Remarque spéciale pour les systèmes Arm basés sur UEFI avec un TPM 2.0 : sur les systèmes Arm basés sur UEFI dotés d’un module de plateforme sécurisée (TPM) 2.0, Windows 8 demande inconditionnellement que la mémoire soit effacée à l’aide de l’interface UEFI à chaque démarrage. L’implémentation de l’interface ACPI est toujours requise, mais l’interface PEUT être implémentée pour ne pas modifier l’état des indicateurs ClearMemory ou DisableAutoDetect. (Remarque : Microsoft recommande l’implémentation de l’interface ACPI conformément à la spécification TCG, de sorte que l’appel de l’interface ACPI modifie l’état de ClearMemory ou DisableAutoDetect.)

4.3.4.2 Interface de présence physique

Le système DOIT implémenter la spécification définie dans [TCG11] conformément aux notes supplémentaires ci-dessous :

  1. L’utilisation de TPM dans la spécification TCG doit être comparée à l’appareil TPM 2.0.

  2. Les méthodes de contrôle définies dans la section 2 DOIVENT être implémentées avec les restrictions suivantes :

    1. La fonction de requête _DSM DOIT être implémentée (index de fonction 0) conformément à la spécification ACPI. (Remarque : La spécification ACPI 4.0 comporte une erreur concernant la valeur de retour de la méthode _DSM. La valeur de retour de la méthode _DSM doit être une mémoire tampon contenant 0x01FF.)

    2. L’implémentation DOIT retourner la valeur « 2 : Redémarrage » pour « Obtenir Platform-Specific action vers l’environnement pré-système d’exploitation ». Les opérations PPI DOIVENT se produire pour une transition d’un redémarrage et DOIVENT se produire pour une transition d’arrêt.

    3. L’implémentation des méthodes de contrôle suivantes est facultative : « Envoyer une demande d’opération TPM à l’environnement pré-système d’exploitation » (peut renvoyer « 2 : Échec général ») et « Envoyer la langue utilisateur préférée » (peut renvoyer « 3 : Non implémenté »).

  3. Les exigences de la section 3 DOIVENT être implémentées avec les révisions suivantes :

    1. Le BIOS n’a pas besoin de fournir un stockage persistant pour l’indicateur NoPPIProvision, car les opérations qu’il autorise ne sont pas pertinentes pour l’état de l’appareil TPM 2.0.

    2. Le tableau 2 est révisé comme suit :

      Tableau 1 : tableau 2 révisé de l’IPP

      OperationValue

      Nom de l’opération

      Statistiques du module de plateforme sécurisée

      Indicateurs de mgmt du module de plateforme sécurisée bios

      Obligatoire ou Facultatif

      Quand la confirmation de présence physique est requise

      Peut avoir besoin d’un cycle de démarrage supplémentaire

      0

      Aucune opération

      M

      1-4

      Aucune opération

      M

      5

      TPM2_ClearControl(NO) +

      TPM2_Clear

      X

      M

      NoPPIClear est FALSE

      X

      6-11

      Aucune opération

      M

      12-13

      Aucune opération

      O

      14

      TPM2_ClearControl(NO) +

      TPM2_Clear

      X

      M

      NoPPIClear est FALSE

      X

      15-16

      Aucune opération

      M

      17

      SetNoPPIClear_False

      X

      O1

      18

      SetNoPPIClear_True

      X

      O1

      Toujours

      19-20

      Aucune opération

      O2

      21-22

      TPM2_ClearControl(NO) +

      TPM2_Clear

      X

      M

      NoPPIClear est FALSE

      X

      23 - 127

      Réservé

      >=128

      Spécifique au fournisseur

      X

      X

      O

      X

      Important

      Par SetNoPPIClear_False : si le BIOS implémente les éléments marqués « O1 » ou « O2 », il doit les implémenter en tant qu’ensemble. Pour l’opération No qui suit SetNoPPIClear_True, le BIOS ne doit pas implémenter les opérations 19 et 20 s’il n’implémente pas l’opération 12.

    3. Le tableau 3 est révisé comme suit :

      opération

      Valeur

      opération

      Nom

      Commandes TPM envoyées par le BIOS et d’autres actions bios pour effectuer l’opération

      0

      Aucune opération

      Aucune opération

      1-4, 6-13, 15-16, 19-20

      Aucune opération

      Pas d'opération. Toutefois, le numéro de l’opération DOIT être mémorisé et le résultat en cas de requête à partir du système d’exploitation, il DOIT retourner la réussite.

      5, 14, 21, 22

      Effacer

      TPM2_ClearControl(NO) +

      TPM2_Clear

      <PLATFORM RESET>* [*Si nécessaire pour conserver les modifications du module TPM à partir de TPM2_CLEAR. Microsoft prévoit que ce n’est pas nécessaire sur la plupart des systèmes.]

      17

      SetNoPPIClear_False

      (Exiger une présence physique pour clear.)

      Cette opération ne change pas l’état du module TPM.

      Efface l’indicateur de gestion du module de plateforme sécurisée du BIOS NoPPIClear sur FALSE.

      18

      SetNoPPIClear_True

      (N’exigez pas de confirmation de présence physique pour effacer.)

      Cette opération ne change pas l’état du module TPM.

      Définit l’indicateur de gestion du module de plateforme sécurisée du BIOS NoPPIClear sur TRUE.

      23 - 127

      Réservé

      Réservé, ne pas implémenter ou utiliser

      >=128

      Spécifique au fournisseur

      Mappage des commandes TPM à une opération spécifique au fournisseur

  4. L’esprit de l’article 4 DOIT être maintenu pour obtenir la confirmation d’un utilisateur physiquement présent lorsqu’il est nécessaire d’effectuer une opération, mais que le mécanisme réel n’a pas besoin d’être des appuis sur la touche. Les clés ou tout autre mécanisme permettant d’affirmer le consentement dépendent du fabricant de la plateforme.

    Opérateur

    Valeur

    opération

    Nom

    Confirmation

    Texte

    5, 14, 21 et 22

    Effacer

    Une modification de configuration a été demandée pour effacer le module TPM (Trusted Platform Module) de cet ordinateur

    AVERTISSEMENT : L’effacement efface les informations stockées sur le module TPM. Vous perdrez toutes les clés créées et l’accès aux données chiffrées par ces clés.

    Appuyez sur <CAK> pour effacer le module TPM

    Appuyez sur <RK> pour rejeter cette demande de modification et continuer

    18

    SetNoPPIClear_True

    Une modification de configuration a été demandée pour permettre au système d’exploitation d’effacer le module TPM (Trusted Platform Module) de l’ordinateur sans demander de confirmation de l’utilisateur à l’avenir.

    REMARQUE : Cette action n’efface pas le module de plateforme sécurisée, mais en approuvant cette modification de configuration, les actions futures pour effacer le module de plateforme sécurisée ne nécessiteront pas de confirmation de l’utilisateur.

    AVERTISSEMENT : L’effacement efface les informations stockées sur le module TPM. Vous perdrez toutes les clés créées et l’accès aux données chiffrées par ces clés.

    Appuyez sur <CAK> pour approuver les demandes futures du système d’exploitation afin d’effacer le module de plateforme sécurisée (TPM)

    Appuyez sur <RK> pour rejeter cette demande de modification et continuer

  5. La section 5 est informative.

  6. Les systèmes de secours connectés PEUVENT encoder en dur NoPPIClear sur TRUE et ne pas implémenter les opérations 17 et 18. Cela signifie qu’ils n’ont pas besoin d’implémenter de boîtes de dialogue de confirmation pour les actions de présence physique, car aucune opération de présence physique ne nécessite la confirmation de l’utilisateur.

  7. Le microprogramme DOIT laisser les hiérarchies de stockage et d’approbation activées lorsqu’il passe le contrôle au code du chargeur de programme initial, comme le Gestionnaire de démarrage Windows.

4.3.4.3 Méthode de démarrage ACPI facultative

Remarque : Certaines plateformes PEUVENT implémenter cette méthode ACPI facultative pour permettre au système d’exploitation de demander au microprogramme d’exécuter ou d’annuler une commande TPM 2.0. L’utilisation de la méthode ACPI Start est déterminée par le champ StartMethod de la table ACPI statique (voir section 4.4).) Si le champ StartMethod de la table ACPI statique indique l’utilisation de cette méthode, la méthode ACPI Start DOIT être implémentée. Les fonctions ACPI définies ici doivent résider dans l’objet méthode de contrôle _DSM. [Remarque : Il ne s’agit pas d’une méthode de contrôle dans la table ACPI TPM2.] La méthode _DSM définie ici DOIT être implémentée comme suit :

UUID

Révision

Fonction

Description

6bbf6cab-5463-4714-b7cd-f0203c0368d4

0

0

Comme décrit dans [ACPI09], section 9.14.1.

0

1

Démarrer

Début de la fonction

Arguments d’entrée :

Arg0 (Buffer): UUID = 6bbf6cab-5463-4714-b7cd-f0203c0368d4
Arg1 (Integer): Revision ID = 0
Arg2 (Integer): Function Index = 1
Arg3 (Package): Arguments = Empty Package

Valeur de retour :

Type : entier

Description de la valeur de retour :

0 : réussite

1 : Échec général

Comportement fonctionnel :

Cette fonction indique au système de passer en revue les status s’inscrit dans la zone de contrôle de l’appareil TPM 2.0 et de prendre les mesures appropriées pour exécuter ou annuler la commande TPM 2.0.

La fonction n’est pas bloquante. L’appel est retourné immédiatement. (N’essayez pas d’exécuter des commandes à partir de la méthode ACPI. Les appels AML doivent être courts.) Lorsque la valeur de retour 0 est retournée, la commande envoyée a été acceptée et sera exécutée par le microprogramme ou annulée si le champ Annuler est déjà défini. Dans la mesure du possible, le système doit retourner une réponse TPM au lieu d’un échec général de cet appel. Par exemple, une commande ne peut pas être traitée maintenant, une mémoire tampon de réponse de TPM2_RC_RETRY peut être écrite et le champ START peut être CLEARed. Si la commande a été annulée parce que le champ Cancel a été défini, cette méthode peut écrire un code de retour TPM2_RC_Cancelled dans la mémoire tampon de réponse, effacer le champ Démarrer et renvoyer la valeur 0. Si le champ Annuler est défini, la méthode peut renvoyer la valeur 0 et l’appareil TPM 2.0 peut par la suite terminer ou annuler la commande conformément aux exigences d’annulation d’une commande.

Lorsque la valeur de retour 1 est retournée, le microprogramme ne peut pas lire ou agir sur la demande. En dehors de la valeur de retour, la demande équivaut à un NO-OP. Par exemple, (a) un pilote de système d’exploitation incorrect demande l’exécution de commandes supplémentaires avant qu’une commande précédente ne soit terminée, (b) la zone de contrôle n’est pas en mémoire physique [peut-être en raison d’une altération de la mémoire], ou (c) les adresses physiques de commande ou de réponse n’existent pas. Une valeur de retour de 1 peut entraîner l’arrêt du pilote Windows TPM 2.0 à l’aide du périphérique TPM 2.0 jusqu’au prochain démarrage complet du système (cela exclut les cycles de mise en veille prolongée/reprise).

Remarque : une fois l’exécution de la commande démarrée, cette méthode n’est pas appelée une deuxième fois si le système d’exploitation choisit l’option annuler la commande en cours d’exécution. (Toutefois, il est possible que la méthode de contrôle soit appelée initialement pour une commande alors que le champ d’annulation est défini.)

4.4 Table ACPI statique TPM2

Une table ACPI nommée « TPM2 » répertoriée dans la table ACPI « RSDT » décrit l’interface matérielle TPM 2.0 de la plateforme. Le pilote Windows TPM 2.0 utilise cette table pour déterminer la façon dont il doit communiquer avec l’appareil TPM 2.0. Les paramètres de la table ACPI requis pour prendre en charge cette interface sont illustrés dans le tableau ci-dessous.

Tableau 3 : Disposition de table ACPI TPM2

Champ

Longueur des octets

Décalage d’octet

Description

En-tête

Signature

4

00h

« TPM2 ». Signature de la table d’interface matérielle de l’appareil TPM 2.0

Longueur

4

04h

Longueur de la table, en octets, y compris l’en-tête, à partir du décalage 0. Ce champ est utilisé pour enregistrer la taille de la table entière.

Révision

1

08h

Révision de cette table, y compris les données et la structure référencées par elle. Si une structure référencée par ce changement (par exemple, Zone de contrôle), cette révision DOIT changer. Valeur 03h.

Somme de contrôle

1

09h

La table entière, y compris le champ somme de contrôle, DOIT être ajoutée à zéro pour être considérée comme valide.

OEM ID

6

0Ah

ID OEM par spécification ACPI. Chaîne fournie par l’OEM qui identifie l’OEM (il peut s’agir du fournisseur de puces).

OEM Table ID

8

10h

L’ID de table OEM est l’ID de modèle du fabricant (attribué par l’OEM identifié par « ID OEM » ; peut être le fournisseur du circuit de puces).

Révision OEM

4

18h

Révision OEM pour l’ID de table OEM donné. Par ACPI, « [un] numéro de révision fourni par l’OEM. Les plus grands nombres sont supposés être des révisions plus récentes. »

ID du créateur

4

1Ch

ID de fournisseur de l’utilitaire qui a créé la table. Pour les tables contenant des blocs de définition, il s’agit de l’ID du compilateur ASL.

Révision du créateur

4

20h

Révision de l’utilitaire qui a créé la table. Pour les tables contenant des blocs de définition, il s’agit de la révision du compilateur ASL.

Indicateurs

4

24h

Réservé

DOIT toujours être égal à zéro

Adresse de la zone de contrôle

8

28h

Adresse physique de la zone de contrôle. Peut être dans la mémoire de l’appareil TPM 2.0 ou dans la mémoire réservée par le système pendant le démarrage. Le pilote TPM 2.0 conserve la connaissance de cette adresse tout au long d’un cycle de démarrage, y compris les cycles de mise en veille prolongée et de reprise. Si le système n’utilise pas la zone de contrôle, cette valeur DOIT être tous les zéros.

Start, méthode

4

30h

Le sélecteur de méthode de démarrage détermine le mécanisme utilisé par le pilote Windows TPM 2.0 pour communiquer les commandes TPM 2.0 à l’appareil et pour informer l’appareil TPM 2.0 qu’une commande est disponible pour le traitement. Ce champ peut contenir l’une des valeurs suivantes :

Valeur

Description

0

Réservé.

1

Réservé (spécifique au fournisseur)

2

Utilise la méthode ACPI Start.

3-5

6

Réservé (spécifique au fournisseur)

Réservé à l’interface d’E/S mappée en mémoire (TIS 1.2+Annuler). Cette option n’est pas Windows 8 conforme à la certification matérielle. L’utilisation de cette option nécessite une Windows 8 demande d’urgence WHLK approuvée pour la certification de logo. Contactez Microsoft pour plus d’informations.

7

8

Utilise l’interface de mémoire tampon de réponse de commande.

Utilise l’interface de mémoire tampon de réponse de commande avec la méthode START ACPI.

Réservé.

 

Paramètres spécifiques à la plateforme

variable

34h

Le contenu des paramètres spécifiques à la plateforme est déterminé par le mécanisme de démarrage utilisé par l’interface d’appareil TPM 2.0 de ce système. Ce champ contient des valeurs qui peuvent être utilisées pour lancer le traitement des commandes. Ces informations peuvent être spécifiques au fournisseur. Pour les valeurs de méthode de démarrage de 2 ou 6, le champ n’est pas utilisé et la longueur d’octets est égale à zéro.

4.4.1 Contenu de la zone de contrôle

La structure zone de contrôle contient des champs status ainsi que d’autres bits/champs de contrôle et une ou plusieurs adresses. La zone de contrôle contient l’adresse physique de la mémoire tampon de commande et l’adresse physique de la mémoire tampon de réponse.

Toutes les implémentations d’interface TPM 2.0 n’utilisent pas la zone de contrôle. Par exemple, une valeur de méthode de démarrage de 6 n’utilise pas la zone de contrôle et les informations de cette section ne s’appliquent pas à la plateforme.

La zone de contrôle DOIT être en mémoire ACPI AddressRangeReserved.

La structure zone de contrôle est indiquée dans le tableau ci-dessous et, sauf indication contraire, tous les accès à la zone de contrôle sont effectués au format little endian.

Tableau 4 : Disposition de la zone de contrôle

Champ

Longueur des octets

Offset

Description

Champs d’état

Champs status TPM 2.0

Réservé

4

00h

Réservé. (DOIT être égal à zéro.)

Error

4

04h

SET par le module TPM 2.0 pour indiquer une condition d’erreur

Annuler

4

08h

SET par le PILOTE pour abandonner le traitement des commandes

Démarrer

4

0Ch

DÉFINI par le PILOTE pour indiquer qu’une commande est disponible pour le traitement.

Contrôle d’interruption

8

10h

Réservé. (DOIT être égal à zéro.)

Taille de la commande

4

18h

Taille de la mémoire tampon de commandes

Commande

8

1Ch

Ce champ contient l’adresse physique de la mémoire tampon de commande. Notez que la mémoire tampon de commandes réelle (et non l’adresse physique de la mémoire tampon de commande) est au format big-endian, comme l’exige TCG.

Taille de la réponse

4

24h

Taille de la mémoire tampon de réponse

response

8

28h

Ce champ contient l’adresse physique de la mémoire tampon de réponse. Notez que la mémoire tampon de réponse réelle (et non l’adresse physique de la mémoire tampon de réponse) est au format big-endian, comme l’exige TCG.

Le pilote TPM 2.0 lit les informations suivantes une fois lors de l’initialisation du système d’exploitation :

  1. Adresse physique de la zone de contrôle

  2. Taille de la mémoire tampon de commandes

  3. Emplacement physique de la mémoire tampon de commandes

  4. Taille de la mémoire tampon de réponse

  5. Emplacement physique de la mémoire tampon de réponse

Pour les systèmes qui utilisent la zone de contrôle (c’est-à-dire que la valeur méthode de démarrage n’est pas égale à 6) et qui prennent en charge la mise en veille prolongée et la reprise, les cinq valeurs ci-dessus DOIVENT rester constantes pendant les cycles de mise en veille prolongée et de reprise.

Erreur 4.4.1.1

L’appareil TPM 2.0 peut DÉFINIR ce status. Il ne peut écrire ce status que lorsque Start a la valeur SET. Immédiatement après que l’appareil TPM 2.0 set cette status, la valeur start est définie. Le pilote Windows TPM 2.0 ne lit pas le champ Erreur, sauf si le champ Démarrer est CLEAR.

Une valeur SET du champ Erreur est traitée comme une erreur générique de l’appareil TPM 2.0 ou de son interface matérielle. Toute valeur SET entraîne l’annulation de la commande actuelle. La commande DOIT être restaurée, de sorte que l’appareil TPM 2.0 reste dans un état cohérent.

Pour un appareil avec une méthode ACPI Start, ce champ ne doit être utilisé que pour les erreurs pour lesquelles un code de réponse ne peut pas être fourni. Exemple : la mémoire tampon de réponse n’est pas en mémoire physique. Le pilote Windows TPM 2.0 peut cesser d’utiliser le périphérique TPM 2.0 lorsque ce champ est DÉFINI.

La valeur initiale de ce champ après ExitBootServices DOIT indiquer si l’appareil fonctionne ou non.

4.4.1.2 Annuler

Le pilote Windows TPM 2.0 peut DÉFINIR ce champ pour demander que le traitement de l’appareil TPM 2.0 de la commande actuelle soit arrêté. Le pilote Windows TPM 2.0 n’appelle pas la méthode Start pour lancer le traitement de la demande d’annulation.

Lorsque Cancel est DÉFINI par le pilote Windows TPM 2.0 et que l’appareil TPM 2.0 traite une commande, l’appareil TPM 2.0 arrête le traitement de la commande actuelle au plus tôt. Pour la plupart des commandes, l’appareil TPM 2.0 doit terminer la commande et fournir une réponse normale. Pour les commandes de longue durée (par exemple, la génération de clé RSA), l’appareil TPM 2.0 peut se fermer avec TPM_RC_CANCELLED. L’appareil TPM 2.0 doit terminer ou annuler la commande dans les 90 secondes. (En règle générale, la plupart des commandes TPM 2.0 doivent se terminer en moins de 500 ms, à l’exception des commandes de génération de clés RSA qui peuvent prendre plus de temps et l’annulation des commandes doit se produire dans un délai de 200 ms)

Le pilote Windows TPM 2.0 peut effacer cette valeur lorsque le champ Démarrer est CLEAR. La valeur initiale de ce champ après ExitBootServices DOIT être CLEAR.

4.4.1.3 Démarrer

Le pilote Windows TPM 2.0 peut DÉFINIR cette status pour indiquer qu’une nouvelle commande a été placée dans la mémoire tampon de commandes. Le pilote Windows TPM 2.0 peut appeler la méthode Start pour lancer le traitement de la commande. L’appareil TPM 2.0 efface ce status lorsqu’il termine le traitement d’une commande.

Le pilote Windows TPM 2.0 peut effacer cette status lorsque l’appel de la méthode Start a échoué.

La valeur initiale de ce champ après ExitBootServices DOIT être CLEAR.

4.4.1.4 Commande

Il s’agit de l’adresse physique dans laquelle le pilote Windows TPM 2.0 écrit la commande à exécuter. Le pilote Windows TPM 2.0 n’écrit jamais une commande supérieure à « Taille de commande ».

Le pilote Windows TPM 2.0 NE DOIT PAS écrire dans cette zone de mémoire, sauf si le champ Démarrer est CLEAR. Notez que l’adresse est spécifiée au format little-endian dans la zone de contrôle, mais que la mémoire tampon de commande réelle est au format big-endian comme l’exige TCG.

4.4.1.5 Réponse

Il s’agit de l’adresse physique à partir de laquelle le pilote Windows TPM 2.0 lit les réponses de commande. Le pilote Windows TPM 2.0 ne lit jamais une réponse supérieure à « Taille de réponse ».

Le pilote Windows TPM 2.0 lit une réponse uniquement une fois que le champ Démarrer passe de SET à CLEAR et que Error a la valeur CLEAR. Notez que l’adresse est spécifiée au format little-endian dans la zone de contrôle, mais que la mémoire tampon de réponse réelle est au format big-endian comme l’exige TCG.

4.5 Définition de l’interface de zone de contrôle

Pour les plateformes matérielles qui utilisent la zone de contrôle comme interface TPM 2.0, cette section et les informations de la section 4.4 décrivent l’interaction du pilote TPM 2.0 avec le matériel. Un exemple de système qui utilise la zone de contrôle est un système avec une valeur de méthode de démarrage de 2 dans la table TPM2.

4.5.1 Combinaisons d’états

Le tableau 5 décrit le comportement attendu pour les modifications apportées par le pilote TPM Windows 2.0. Notez que seules certaines combinaisons sont autorisées. Seules les combinaisons et modifications autorisées sont documentées. Toutes les autres combinaisons ne sont pas valides. Les modifications de champ sans action par le pilote Windows TPM 2.0 signifient que l’appareil TPM 2.0 ou la méthode ACPI Start ont modifié les champs.

Les états marqués de « 0 » indiquent que ce champ est CLAIR. Les états marqués de « 1 » indiquent que ce champ est DÉFINI. Les états marqués par « ? » indiquent que la valeur de ce champ peut être CLEAR ou SET. Les champs status sont abrégés par : « ERR » - Error, 'CCL' - Cancel et 'STR' - Start. Un champ peut être écrit par le pilote Windows TPM 2.0 ou par l’interface de périphérique TPM 2.0, qui est détaillée dans la colonne action.

|---

État actuel

---|

|---

Champ écrit

---|

|---

État suivant

---|

Action effectuée par l’interface d’appareil TPM 2.0

#

ERR

CCL

STR

ERR

CCL

STR

ERR

CCL

STR

1

0

1

0

-

0

-

0

0

0

La valeur Cancel du pilote Windows TPM 2.0 permet de préparer la zone de contrôle pour la commande suivante. Le pilote Windows TPM 2.0 peut effacer la valeur Annuler uniquement lorsque START a la valeur CLEAR.

(L’appareil TPM 2.0 NE DOIT PAS écrire dans le champ Annuler.)

2

0

0

0

-

-

1

0

0

1

Le pilote Windows TPM 2.0 exécute la valeur Start pour indiquer qu’une commande est présente dans la zone Commande.

Le pilote Windows TPM 2.0 peut appeler la méthode ACPI Start pour lancer l’exécution de la commande. Une fois la méthode ACPI Start terminée, l’appareil TPM 2.0 DOIT terminer les commandes et effacer le champ Start dans les 90 secondes. Le dépassement de la limite de temps peut amener le pilote Windows TPM 2.0 à supposer que l’appareil TPM 2.0 est bloqué.

3

0

?

1

-

-

0

0

?

0

L’appareil TPM 2.0 affiche le champ Démarrer quand il termine le traitement de la commande ou annule la commande.

Si la commande a été annulée, une réponse avec le code de retour TPM_RC_CANCELLED est placée dans la mémoire tampon de réponse et Start est CLEARed.

Le pilote Windows TPM 2.0 peut lire la mémoire tampon de réponse alors que le champ Démarrer est CLAIR. Le pilote Windows TPM 2.0 NE DOIT PAS lire la mémoire tampon de réponse tant que le champ Démarrer est DÉFINI.

4

0

0

1

-

1

-

0

1

1

Le pilote Windows TPM 2.0 set Cancel pour indiquer que l’appareil TPM 2.0 doit annuler la commande actuelle. En règle générale, les commandes de longue durée doivent être annulées au point pratique suivant. Des commandes en cours d’exécution peuvent être effectuées. Plus précisément, l’appareil TPM 2.0 DOIT EFFACER le champ Démarrer dans les 90 secondes après que le champ Annuler est DÉFINI. (Une bonne cible de performances est de 200 ms au lieu de 90 secondes.) Remarque : Il est possible que le champ Cancel soit défini lorsque la méthode ACPI Start est appelée, car un thread du système d’exploitation peut DÉFINIR le champ Cancel avant qu’un autre thread appelle la méthode ACPI Start.

5

0

?

1

1

-

-

1

?

1

L’appareil TPM 2.0 indique une condition d’erreur dans l’appareil. L’état de l’appareil TPM 2.0 est comme si l’exécution de la commande n’avait jamais démarré. Le pilote Windows TPM 2.0 traite cette valeur comme une défaillance générique du périphérique TPM 2.0 et annule le traitement de la commande.

6

1

?

1

-

-

0

1

?

0

Les CLEAR de l’appareil TPM 2.0 indiquent le champ Démarrer immédiatement après avoir activé le champ Erreur.

Le pilote Windows TPM 2.0 inspecte uniquement le champ Erreur lorsque le champ Démarrer est CLEAR ou si l’exécution ou l’annulation de la commande ne se produit pas dans la fenêtre de temps requise. Le pilote Windows TPM 2.0 peut cesser d’utiliser le périphérique TPM 2.0 lorsque le champ Erreur est DÉFINI.

4.5.2 Diagramme d’état lors de l’utilisation de la méthode START ACPI

Ce diagramme d’état est à titre informatif uniquement. La description normative du comportement est le texte des sections précédentes. S’il existe des transitions d’état manquantes ou ambiguës, consultez le texte ci-dessus.

États de l’appareil tpm 2.0 lors de l’utilisation de la méthode acpi start

Figure 1 : États de l’appareil TPM 2.0 lors de l’utilisation de la méthode ACPI Start

Notes

(a) Notez que plusieurs threads simultanés peuvent interagir simultanément avec la zone de contrôle. Par exemple : un thread peut lancer une commande en définissant le champ Start, puis en émettant la méthode Start. Un autre thread peut définir le champ Annuler en parallèle. Par conséquent, la possibilité d’avoir le champ Cancel défini après avoir défini le champ Start, mais avant d’émettre la méthode Start. (b) Un pilote Windows TPM 2.0 peut réagir aux conditions d’erreur différemment de ce qui est illustré. Il peut, par instance, passer à un état d’erreur lorsqu’un délai d’expiration atteint.

4.5.3 Diagramme d’état sans méthode ACPI Start

Ce diagramme d’état est à titre informatif uniquement. La description normative du comportement est le texte des sections précédentes. Si des transitions d’état sont manquantes ou ambiguës, consultez le texte ci-dessus.

États de l’appareil tpm 2.0 sans méthode acpi start

Figure 2 : États de l’appareil TPM 2.0 sans méthode ACPI Start

4.6 Interface d’E/S mappée en mémoire

Pour les plateformes matérielles qui utilisent l’interface d’E/S mappée en mémoire, cette section et les informations de la section 4.4 décrivent l’interaction du pilote TPM 2.0 avec le matériel. Un système qui utilise l’interface d’E/S mappée en mémoire est un système avec une valeur de méthode de démarrage de 6 dans la table TPM2.

4.6.1 Spécifications de l’interface TPM TCG

Le système DOIT respecter la configuration requise de l’interface matérielle TPM 1.2 dans [TCG12] pour les sections suivantes :

Section 9.1 : Niveaux de localité du module de plateforme sécurisée

Section 9.2 : Localités d’utilisation

Section 9.3 : Utilisation de la localité par registre

Section 10 : Espace d’inscription du module de plateforme sécurisée (TPM)

Section 11 : Interaction et flux système

Sauf : Mode d’échec de la section 11.2.4

Sauf section 11.2.5 : Durée de commande, élément normatif 2

Sauf tout de la section 11.2.6 : Délais d’expiration

À l’exception de la section 11.2.8 : Auto-test et initialisation précoce de la plateforme

Sauf tout de la section 11.2.9 : Taille de la mémoire tampon d’entrée

Sauf la section 11.2.10 : Erreurs, éléments normatifs 2c et 3.

Section 13 : Protocole matériel TPM

Pour les futures ébauches de spécifications de [TCG12], veuillez contacter Microsoft.

4.6.2 Prise en charge de l’annulation d’une commande

Windows requiert l’appareil TPM 2.0 pour permettre l’annulation d’une commande TPM 2.0 à l’aide de l’interface d’E/S mappée en mémoire en affichant le comportement décrit ci-dessous.

Le bit 24 précédemment inutilisé du registre STS est défini comme en écriture seule et appelé commandCancel.

Une écriture de « 1 » dans commandCancel pendant la phase d’exécution de la commande PEUT annuler la commande en cours d’exécution et une réponse DOIT être retournée. La réponse indique si la commande a été annulée (aucun changement d’état TPM 2.0, mais un code de réponse d’annulation TPM_RC_CANCELLED est retourné) ou terminé (une réponse TPM 2.0 standard est retournée indiquant le résultat de la commande). Écrit dans la commandeInscrire lorsque le module de plateforme sécurisée n’est pas dans l’état d’exécution de la commande DOIT être ignoré.

4.6.3 Exigences supplémentaires

  1. Toutes les commandes TPM DOIVENT s’exécuter dans un délai maximal de 90 secondes.

  2. Si le pilote TPM 2.0 demande d’annuler une commande, il doit se terminer ou annuler dans les 90 secondes.

  3. Les valeurs TIMEOUT suivantes DOIVENT être implémentées : TIMEOUT_A = 1 seconde, TIMEOUT_B = 2 secondes, TIMEOUT_C = 1 seconde, TIMEOUT_D = 1 seconde.

  4. La taille minimale de la mémoire tampon d’entrée DOIT être 0x500 (ou supérieure).

5.0 Références

[ACPI09]

« Advanced Configuration and Power Interface Specification », version 4.0, 16 juin 2009.

[TCG08]

Groupe informatique approuvé, « Spécification d’atténuation des attaques de réinitialisation de plateforme TCG », version 1.0, 15 mai 2008.

[TCG11]

Trusted Computing Group, « TCG Physical Presence Interface Specification », version 1.20, 10 février 2011.

[TCG12]

Trusted Computing Group, « PC Client Work Group PC Client PC TPM Interface Specification (TIS) version 1.21, révision 1.00.