Partager via


Attestation TPM

Cet article décrit les concepts impliqués lors de l’approvisionnement d’appareils à l’aide de l’attestation TPM (Trusted Platform Module) dans le service Device Provisioning (DPS). Cet article s’applique à toutes les personnes impliquées dans la préparation d’un appareil pour le déploiement.

Un module de plateforme sécurisée (TPM) est un type de module de sécurité matériel (HSM). Cet article part du principe que vous utilisez un module TPM discret, microprogramme ou intégré. Les modules TPM logiciels émulés sont bien adaptés au prototypage ou aux tests, mais ils ne fournissent pas le même niveau de sécurité que les TPM discrets, en firmware, ou intégrés. Nous vous déconseillons d’utiliser des modules TPM logiciels en production.

Cet article s’applique uniquement aux appareils utilisant TPM 2.0 avec la prise en charge des clés HMAC (Hash-Based Message Authentication Code) et leurs clés d’approbation. Le TPM est une norme ISO à l’échelle de l’industrie du Trusted Computing Group, et vous pouvez en savoir plus sur le TPM dans la spécification TPM 2.0 complète ou la spécification ISO/IEC 11889. Cet article suppose également que vous connaissez les paires de clés publiques et privées, ainsi que leur utilisation pour le chiffrement.

Les SDKs du Service Device Provisioning s'occupent de tout ce qui est décrit dans cet article. Il n’est pas nécessaire d’implémenter la prise en charge du module TPM si vous utilisez les kits SDK sur vos appareils. Cet article vous aide à comprendre conceptuellement ce qui se passe avec votre puce de sécurité TPM lorsque votre appareil provisionne et pourquoi il est si sécurisé.

Aperçu

Les modules TPM utilisent quelque chose appelé clé d’approbation (EK) comme racine sécurisée de confiance. L'EK est unique au module TPM, et le modifier transforme essentiellement l'appareil en un nouveau.

Les modules TPM ont un autre type de clé appelé clé racine de stockage (SRK). Le propriétaire du TPM peut générer une SRK après en avoir pris possession. Prendre possession du TPM revient à dire « quelqu’un définit un mot de passe sur le HSM » en langage TPM. Si un appareil TPM est vendu à un autre propriétaire, celui-ci peut prendre possession du TPM pour générer une nouvelle clé racine de stockage. La nouvelle génération SRK garantit que le propriétaire précédent ne peut pas utiliser le module TPM. Étant donné que la clé racine de stockage est unique au propriétaire du TPM, elle peut être utilisée pour sceller des données dans le TPM lui-même pour ce propriétaire. Le SRK fournit un sandbox pour que le propriétaire stocke ses clés et offre la possibilité de révoquer l'accès si l'appareil ou le TPM est vendu. C’est comme se déplacer dans une nouvelle maison : prendre possession change les verrous sur les portes et détruit tous les meubles laissés par les précédents propriétaires (SRK), mais vous ne pouvez pas changer l’adresse de la maison (EK).

Une fois qu’un appareil est configuré, il dispose à la fois d’un EK et d’un SRK disponible pour une utilisation.

Diagramme illustrant la prise en charge d’un module TPM.

Les étapes spécifiques impliquées dans la prise de contrôle d’un TPM varient selon le fabricant, l’ensemble des outils TPM utilisés et le système d’exploitation de l’appareil.

Le service Device Provisioning utilise la partie publique de l’EK (EK_pub) pour identifier et inscrire des appareils. Le fournisseur d’appareils peut lire l’EK_pub pendant le test de fabrication ou final et charger le EK_pub dans le service d’approvisionnement afin que l’appareil soit reconnu lorsqu’il se connecte à l’approvisionnement. Le service de provisionnement des appareils ne vérifie pas la clé racine de stockage (SRK) ni le propriétaire. Par conséquent, le TPM efface les données clientes, mais la paire de clés EK (et d’autres données du fournisseur) est conservée et l’appareil est toujours reconnu par le service de provisionnement des appareils lorsqu’il se connecte pour l’approvisionnement.

Processus d’attestation

Lorsqu'un appareil doté d'un TPM se connecte au service Device Provisioning, le service vérifie d'abord l'EK_pub fourni par rapport à l'EK_pub stocké dans la liste d'inscription. Si le EK_pubs ne correspond pas, l’appareil n’est pas autorisé à provisionner. Si les parties EK_pub correspondent, le service demande à l’appareil de prouver qu’il possède la partie privée de la paire de clés EK via une stimulation nonce, qui permet de prouver l’identité de façon sécurisée. Le service Device Provisioning génère une valeur nonce, qui est ensuite chiffrée avec la clé racine de stockage et la partie EK_pub, qui sont fournies par l’appareil lors de l’appel d’inscription initial. Le module TPM conserve toujours la partie privée de l’EK sécurisée. Cette sécurité empêche la contrefaçon et garantit que les jetons SAP sont approvisionnés en toute sécurité sur les appareils autorisés.

Passons en détail au processus d’attestation.

L’appareil demande une affectation IoT Hub

Tout d'abord, l'appareil se connecte au Service d'Approvisionnement de l'Appareil et demande d'approvisionnement. Ce faisant, l’appareil fournit au service son ID d’inscription, une étendue d’ID et les parties EK_pub et SRK_pub du TPM. Le service transmet la valeur once chiffrée à l’appareil et demande à l’appareil de déchiffrer cette valeur once et de l’utiliser pour signer un jeton SAP pour se connecter une fois de plus et terminer l’approvisionnement.

Diagramme montrant comment un appareil demande l’approvisionnement.

Stimulation nonce

L’appareil récupère la valeur nonce et utilise les parties privées de la paire de clés de type EK et de la clé racine de stockage pour déchiffrer la valeur nonce dans le TPM ; l’ordre du chiffrement nonce délègue la confiance de la paire de clés de type EK, qui est immuable, à la clé racine de stockage, qui peut être modifiée si une nouvelle personne prend possession du TPM.

Diagramme présentant le chiffrement d’un nonce.

Valider la valeur nonce et recevoir des informations d’identification

L’appareil peut ensuite signer un jeton SAP à l’aide de la nonce déchiffrée et rétablir une connexion au service Device Provisioning à l’aide du jeton SAP signé. Une fois la stimulation nonce terminée, le service autorise l’approvisionnement de l’appareil.

Diagramme montrant comment un appareil rétablit la connexion au service Device Provisioning pour valider la propriété EK.