Aller au contenu

TPM 2.0 et securite materielle TCG

Guide, TPM 2.0 et TCG

Le Trusted Platform Module (TPM) est le point d'ancrage de securite materielle standardise par le Trusted Computing Group (TCG), consortium industriel fonde en 2003 qui reunit Intel, AMD, Microsoft, IBM, HP et la plupart des fondeurs et fabricants de plates-formes. La specification TPM 2.0, publiee en 2014 et standardisee comme ISO/IEC 11889-1 a -4 en 2015, remplace TPM 1.2 (2005) desormais considere comme legacy. Cette page presente l'ecosysteme TCG et les normes, l'architecture TPM 2.0 et ses fonctions concretes (Endorsement Key, PCR, scellement, attestation), les form factors (discret, firmware, virtuel), les certifications (TCG Compliance, Common Criteria contre BSI-CC-PP-0030, FIPS 140-3), l'integration aux systemes d'exploitation (BitLocker, LUKS, IMA), l'usage en produit connecte et IoT, les compromis connus (ROCA, TPM-Fail, Sandman) et les pieges observes a l'integration de TPM discrets (Infineon SLB 9670, ST33, Nuvoton NPCT) ou firmware (AMD fTPM, Intel PTT) dans des produits PC, serveur, IoT et embarque.

Le Trusted Computing Group est l'organisme de normalisation qui maintient la specification TPM et une famille plus large de standards de trusted computing. Comprendre son perimetre conditionne les choix techniques et contractuels.

OrganismePerimetreType de livrable
TCG (Trusted Computing Group)TPM, attestation, measured boot, securite stockage, securite reseauLibrary Specifications, Platform TPM Profiles, programmes de certification
ISO/IEC JTC 1/SC 27Adoption de TPM 2.0 comme ISO/IEC 11889Norme internationale, citable librement
BSI (Allemagne)Profil de protection Common Criteria du TPM 2.0BSI-CC-PP-0030, Protection Profile reference
NIST (USA)Validation FIPS 140-3 du module, guidance cryptographiqueCertificats Cryptographic Module Validation Program (CMVP)
Constructeurs de TPMSilicium et firmware (Infineon, ST, Nuvoton, AMD, Intel, Microsoft)Produits TPM 2.0 conformes, certificats EK, bulletins de securite

Le TCG opere via des groupes de travail : TPM Work Group pour la bibliotheque coeur, PC Client pour les profils ordinateur personnel et serveur, Mobile pour le monde mobile, Embedded Systems pour l'IoT industriel, Storage pour les disques auto-chiffres, Network Equipment Building System (NEBS) et DICE (Device Identifier Composition Engine) pour les devices ultra-contraints. Les livrables sont publics, telechargeables depuis le site du TCG. La certification de conformite (TCG Compliance Programme) est un service payant, avec publication sur une liste publique.

Le TPM 1.2 (2005) etait lie a un profil algorithmique fixe : RSA-2048 pour l'asymetrique, SHA-1 pour le hashage, pas de support ECC natif, jeu de commandes ancre sur la structure de ces algorithmes. Les collisions SHA-1 (Stevens et al., 2017, puis SHAttered) et l'obsolescence progressive de RSA-2048 a l'horizon 2030 ont rendu cette architecture intenable.

Le TPM 2.0, redige a partir de 2011 et publie comme Library Specification 1.07 en 2014, puis standardise ISO/IEC 11889 en 2015, atteignant la version 1.62 en 2020 avec errata ulterieurs, devient algorithm-agile. La specification separe le profil algorithmique de l'architecture : un TPM 2.0 supporte un sous-ensemble choisi par le constructeur (SHA-256 obligatoire, SHA-384 optionnel, RSA-2048 en base, ECC NIST P-256 largement repandu, ECC BN-256 pour Direct Anonymous Attestation). Les hierarchies sont reorganisees (platform, storage, endorsement, null) et l'autorisation est generalisee via des policies (TPM2_PolicyOR, TPM2_PolicyPCR, TPM2_PolicySigned et autres).

Le materiel n'est pas compatible entre les deux : une carte mere TPM 1.2 ne se flashe pas en TPM 2.0. Les nouveaux designs visent TPM 2.0 ; le TPM 1.2 est en fin de vie et rejete par Windows 11, les baselines BitLocker recentes et la plupart des services d'attestation actuels.

Un TPM 2.0 expose un petit ensemble d'objets structurants.

L'EK est une paire de cles asymetriques (RSA-2048 ou ECC NIST P-256) injectee a la fabrication du silicium par le constructeur, partie privee non extractible. Le certificat EK associe est signe par une autorite de certification intermediaire constructeur (Infineon, ST, Nuvoton, AMD, Intel), elle-meme rattachee a une racine publique listee par le TCG. L'EK prouve que le TPM est un vrai TPM certifie d'un constructeur connu, sans reveler l'identite plate-forme. C'est le point d'ancrage de confiance pour toute l'attestation aval.

La SRK est creee lorsque le proprietaire de plate-forme prend le controle du TPM (TPM2_CreatePrimary dans la hierarchie storage). C'est la racine de la hierarchie de cles applicative : les cles generees et scellees par la plate-forme en descendent. La SRK ne sort jamais du TPM et disparait quand la propriete est reinitialisee.

L'AIK, parfois appelee Attestation Key (AK), est une cle de signature generee par le TPM, derivee de l'EK mais pseudonyme : elle ne revele pas directement l'identite EK. Elle est certifiee soit par une Privacy CA (service externe qui valide la chaine EK et emet un certificat AIK), soit par Direct Anonymous Attestation (DAA), protocole zero-knowledge qui prouve que l'AIK provient d'un vrai TPM sans identifier le TPM. L'AIK signe les quotes de PCR lors de l'attestation distante.

Les PCR sont des registres extend-only, au nombre de 24 dans le profil standard PC Client (PCR 0 a 23). Chaque mesure obeit a la regle PCR[n] = SHA-256(PCR[n] concatene avec mesure). L'architecture interdit d'ecraser un PCR : seule l'extension est permise. Le firmware de boot etend PCR 0 a 7 avec ses mesures (UEFI, option ROM, boot loader, secure boot state, boot policy) ; l'OS etend PCR 8 et au-dela.

PCRContenu typique (profil TCG PC Client)
PCR 0Mesure firmware UEFI (BIOS), S-CRTM
PCR 1Configuration plate-forme (options BIOS, oprom config)
PCR 2, 3Option ROM, drivers
PCR 4Boot loader (MBR ou loader UEFI)
PCR 5Table de partitions GPT
PCR 7Etat Secure Boot et cles de signature
PCR 8 a 15Mesures systeme d'exploitation et applications
PCR 17 a 22Dynamic Root of Trust (DRTM, Intel TXT, AMD SKINIT)
PCR 23Usage applicatif, reinitialise regulierement par l'OS

Le layout PCR differe entre Windows et Linux : une donnee scellee sur un OS ne se descelle quasi jamais sur l'autre.

Le scellement lie une donnee a un etat de PCR choisi. Le TPM ne descelle que si les PCR correspondent a la valeur attendue. Le quoting produit un rapport signe des valeurs de PCR sous une cle d'attestation, utilise en attestation distante. Ces deux mecanismes forment le coeur du measured boot et du trusted boot.

Form factorExemplesAvantagesLimites
TPM discret (dTPM)Infineon SLB 9670, ST33TPHF20, Nuvoton NPCT75xIsolation physique, evaluation Common Criteria forte (EAL 4+), surface d'attaque independanteNomenclature, surface PCB, interfacage SPI/I2C/LPC
TPM firmware (fTPM)Intel PTT dans le Management Engine, AMD fTPM dans le Platform Security ProcessorAucune puce supplementaire, pas de cout nomenclatureSurface d'attaque partagee avec le firmware plate-forme, evaluation Common Criteria plus limitee
TPM virtuel (vTPM)QEMU/KVM avec swtpm, VMware vTPM, Hyper-V vTPMAdapte aux machines virtuelles, isolation logicielle par VMAncrage de confiance remonte a l'hyperviseur
TPM logiciel (swtpm)swtpm, simulateur de reference IBM TPM 2.0Developpement, pipelines CI, tests d'integrationAucune securite reelle, usage developpement uniquement

Choix typique : dTPM pour PC, serveur, defense, paiement, industriel et automobile ; fTPM pour portables grand public ; vTPM pour workloads cloud ; swtpm pour pipelines CI.

Un TPM discret expose l'une de plusieurs interfaces physiques.

InterfaceVitesse typiqueUsage
LPC (Low Pin Count)33 MHz, legacyPC plus anciens, de moins en moins utilise pour cause de latence bus
SPIjusqu'a 33 MHz typiquementInterface moderne de reference, PC, serveur, embarque
I2C400 kHz a 1 MHzSystemes embarques, IoT, interactions plus lentes
FIFO (memory-mapped)depend de la plate-formeVariante sur certaines plates-formes

Sous Linux, le noyau expose deux peripheriques caractere : /dev/tpm0 pour l'acces brut (utilise par le sous-systeme integrity) et /dev/tpmrm0 avec le resource manager cote noyau (utilise par les applications espace utilisateur). La pile de reference est tpm2-tss (Trusted Software Stack, couches ESAPI, SAPI, TCTI) plus tpm2-tools (ligne de commande). La bibliotheque tpm2-pkcs11 expose le TPM comme un token PKCS#11 pour OpenSSL ou l'integration navigateur.

Sous Windows, l'acces passe par l'API TPM Base Services (TBS), encapsulee par Windows Cryptography API: Next Generation (CNG) et exposee aux applications via des providers specifiques. BitLocker, Windows Hello et Credential Guard utilisent le TPM directement via ces API.

Certifications, TCG Compliance, Common Criteria, FIPS 140-3

Section intitulée « Certifications, TCG Compliance, Common Criteria, FIPS 140-3 »

Un produit TPM 2.0 fait l'objet de plusieurs certifications.

Le TCG opere un programme de conformite base sur le TPM 2.0 Test Suite. Le constructeur soumet son produit, execute la suite de tests (couverture fonctionnelle de la bibliotheque TPM), et recoit une declaration TCG Certified TPM listee sur la liste publique du TCG. Cette certification est une conformite (le TPM fait ce que dit la specification), pas une securite en tant que telle.

La reference securite est l'evaluation Common Criteria contre le profil de protection BSI-CC-PP-0030 Trusted Platform Module Library Family 2.0, publie par le BSI allemand. Ce profil de protection definit les exigences fonctionnelles de securite (SFR) attendues d'un TPM 2.0 et les exigences d'assurance. Niveau d'assurance typique : EAL 4 augmente avec AVA_VAN.4 ou AVA_VAN.5 (analyse de vulnerabilites Moderee ou Haute), ALC_DVS.2 et ALC_FLR.1.

Infineon (SLB 9670, SLB 9672), ST (ST33TPHF20, ST33KTPM2X) et Nuvoton (NPCT75x) detiennent tous des certificats Common Criteria courants contre ce profil, listes sur le portail BSI et sur le portail international Common Criteria. Les evaluations de TPM firmware existent mais sont plus rares : AMD fTPM et Intel PTT n'ont historiquement pas poursuivi un certificat Common Criteria equivalent a une puce dediee. Pour le cadre plus large, voir Common Criteria, ISO/IEC 15408.

Pour le marche federal americain, le module cryptographique embarque dans le TPM est souvent valide sous FIPS 140-3 (ou son predecesseur FIPS 140-2, en sunset depuis septembre 2026). La validation est conduite sous le programme NIST Cryptographic Module Validation Program (CMVP), au niveau 1 ou 2 typiquement pour un TPM. Le resultat est un certificat de validation publie sur la liste CMVP. Pour le cadre complet, voir FIPS 140-3.

BitLocker utilise le TPM pour sceller la Volume Master Key (VMK) sur PCR 0, 2, 4, 7 et 11 (profil par defaut), ce qui couple le dechiffrement disque a l'etat secure boot. Un changement de BIOS, de cles secure boot, de boot loader rompt le scellement et declenche la recuperation BitLocker (prompt de cle de recuperation). Sous Windows 11, TPM 2.0 est obligatoire, ce qui a fait de l'activation du fTPM un point critique sur les cartes meres livrees avec fTPM desactive par defaut.

La pile de reference utilise dm-crypt pour le chiffrement disque complet, LUKS2 pour l'enveloppe de cle, et le mecanisme de descellement couple au TPM via l'une de deux voies : clevis (framework pluggable supportant TPM 2.0, Tang et Shamir secret sharing) ou systemd-cryptenroll (natif, depuis systemd 248). Dans les deux cas, la passphrase LUKS est scellee contre un profil PCR choisi a l'enrolement (couramment PCR 7 pour l'etat secure boot, PCR 0 pour le firmware UEFI, PCR 1 pour la configuration plate-forme). Le descellement au boot est silencieux si les PCR correspondent, retombe sur saisie de passphrase sinon.

Le noyau Linux implemente IMA (Integrity Measurement Architecture) pour mesurer les executables, fichiers de configuration et objets choisis a l'execution. IMA etend un PCR dedie (PCR 10 par convention) et produit un journal de mesures lisible dans /sys/kernel/security/ima/ascii_runtime_measurements. Coupler IMA au TPM permet l'attestation distante de l'etat d'execution, au-dela du boot initial.

La bibliotheque tpm2-pkcs11 expose le TPM comme un token PKCS#11 a OpenSSL ou toute application compatible PKCS#11. Cela permet des operations de signature et de dechiffrement de type HSM avec le TPM agissant comme magasin cryptographique a faible cout, adapte a l'authentification par certificat client X.509, au code signing sur environnements de build embarques ou au scellement de cles privees d'AC.

Azure DPS supporte l'attestation par TPM. Le device declare son endorsement key public (EKpub) a DPS ; DPS valide que l'EKpub est signe par une autorite intermediaire connue d'un constructeur de TPM, puis emet un challenge d'attestation que le TPM signe sous une cle d'attestation derivee. En succes, DPS provisionne le device vers son IoT Hub. La chaine de provisioning tombe si le certificat intermediaire constructeur manque du dossier cote device : erreur frequente en premier deploiement.

AWS IoT ne supporte pas nativement l'attestation EK TPM ; l'integration passe par un certificat client X.509 long-terme, dont la cle privee est generee et stockee dans le TPM. L'authentification mutual TLS au broker AWS utilise ensuite le TPM comme magasin de cle privee, sans extraction de la cle.

Le standard Matter de la Connectivity Standards Alliance impose un Device Attestation Certificate (DAC) ancre dans un element de stockage securise materiel, souvent un secure element plutot qu'un TPM discret (le TPM est rare dans les devices Matter grand public a cause de la nomenclature). La logique de chaine de confiance reste la meme : certificat intermediaire vendor, certificat racine constructeur, attestation lors du commissioning fabric. Pour le detail, voir certification Matter.

AspectTPM 2.0Secure Element (SE)HSM
Form factorPuce discrete ou firmware, integree a une plate-formePuce discrete, plus petite, offload crypto generiqueAppliance reseau ou carte PCI, datacenter
Usage typiqueConfiance de boot, scellement, attestation, cle scellee a l'etat plate-formeOffload crypto generique, identite IoT, paiement, tickets transportOperations crypto haut debit (TLS, code signing, PKI)
StandardisationTCG, ISO/IEC 11889GlobalPlatform, JavaCard, EMVCo pour le paiementFIPS 140-3, Common Criteria pour les plus gros
Exemples typiquesInfineon SLB 9670, ST33, Nuvoton NPCT, fTPMNXP A71CH, SE050, Microchip ATECC608B, Infineon OPTIGA TrustThales Luna, Utimaco, AWS CloudHSM
Ordre nomenclatureFaible pour fTPM, modere pour dTPMFaibleEleve

Les produits embarques choisissent souvent un SE plutot qu'un TPM (nomenclature plus faible, interface plus simple), mais la montee en charge de Matter, de l'IoT industriel regule et du Cyber Resilience Act pousse l'attestation vers des devices type TPM, avec puce evaluee Common Criteria.

AnneeCompromisPerimetre toucheMitigation
2017ROCA (CVE-2017-15361)Bibliotheque Infineon RSALib, generation de cles RSA dans TPM 1.2 et 2.0Mise a jour firmware, regeneration des cles RSA affectees
2019TPM-Fail (CVE-2019-11090, CVE-2019-16863)Canal auxiliaire temporel sur ECDSA dans Intel fTPM et ST33TPHF20Mise a jour firmware, mitigations dans la pile cryptographique
2024SandmanVariante cold boot sur dTPM expose sur bus SPIChiffrement de bus (TPM 2.0 supporte le chiffrement de session depuis spec 1.38), controle d'acces physique

La lecon operationnelle generale est la meme : tout TPM en service doit etre inventorie avec sa version firmware, et la version firmware verifiee contre les bulletins de securite publies. Le measured boot via PCR reste la mitigation visible cote utilisateur : un TPM compromis qui aurait produit une valeur scellee malicieuse se trahit par une attestation qui ne correspond plus a l'etat de reference attendu.

Le Cyber Resilience Act, publie en novembre 2024 (Reglement (UE) 2024/2847) et applicable en decembre 2027, fixe les exigences essentielles de cybersecurite pour les produits avec elements numeriques. Le TPM n'est pas nomme explicitement mais plusieurs exigences CRA ont une lecture naturelle TPM : boot securise, integrite et confidentialite des donnees, limitation de la surface d'attaque, processus de gestion des vulnerabilites, voie de mise a jour de securite.

Pour les produits classes importants (annexe III) ou critiques (annexe IV), ou l'evaluation de conformite est renforcee (tiers le cas echeant), concevoir sans ancrage materiel securise devient difficile a justifier. Le TPM 2.0, ou un secure element aux proprietes equivalentes, est l'une des voies pratiques pour repondre a ces exigences. Pour le cadre large, voir Cyber Resilience Act.

La sequence typique pour une equipe d'ingenierie integrant un TPM 2.0 dans un nouveau produit electronique.

  1. Choisir le form factor (dTPM, fTPM, aucun plus SE) en mappant les contraintes de nomenclature, l'exigence de certification (Common Criteria pour les secteurs regules), le modele d'attaque et les OS cibles.
  2. Selectionner la puce (Infineon SLB 9672, ST33KTPM2X, Nuvoton NPCT75x pour dTPM ; support plate-forme AMD ou Intel pour fTPM), verifier le certificat Common Criteria courant, la validation FIPS 140-3 si pertinent, et les bulletins de securite actifs.
  3. Definir le bus (SPI 25 a 33 MHz recommande pour dTPM moderne, I2C pour embarque ultra-contraint, LPC uniquement en compatibilite legacy).
  4. Router la PCB avec protection ESD appropriee, decouplage d'alimentation, placement BGA dans le respect du dry pack, et plan de masse dedie a la puce.
  5. Integrer la pile logicielle (tpm2-tss et tpm2-tools sous Linux, API TBS sous Windows, SDK vendor pour RTOS).
  6. Provisionner la chaine de certificats EK, charger le certificat intermediaire constructeur sur le device, valider la chaine au premier boot.
  7. Definir le profil PCR pour le scellement (couramment PCR 0, 2, 4, 7 sous Windows ; PCR 7 plus optionnel sous Linux), tester le comportement de descellement sur scenarios de mise a jour firmware.
  8. Mettre en oeuvre l'attestation vers le back-end (Azure DPS, AWS IoT via X.509, plate-forme IoT interne), avec validation de la chaine EK cote serveur.
  9. Prevoir les mises a jour firmware du TPM (le constructeur fournit des bundles firmware), avec inventaire de versions et suivi des bulletins de securite.
  10. Documenter la chaine de confiance dans le dossier de securite (AC racine, intermediaire, EK, AIK, donnees scellees) pour l'evaluation CRA, Common Criteria ou sectorielle.
PiegeConsequence
TPM discret en BGA mal soude ou sous-protege ESDTPM instable en champ, retours sporadiques difficiles a diagnostiquer
Bus LPC utilise pour SRTM sur plate-forme moderneBoot allonge de plusieurs centaines de millisecondes, impact utilisateur perceptible
fTPM desactive par defaut au BIOSScellement BitLocker ou LUKS rompu silencieusement au premier deploiement
Chaine de certificats EK non chargee sur le deviceProvisioning Azure DPS echoue, message Unauthorized EK
Reutilisation de donnees scellees sous Windows sur systeme LinuxDescellement echoue systematiquement, layout PCR differe
TPM avec version firmware vulnerable ROCA encore en serviceCles RSA factorisables, audit de securite non conforme
FIPS 140-2 declare au lieu de FIPS 140-3 apres septembre 2026Validation expiree, marche federal bloque
Confusion entre TCG Compliance et Common CriteriaCroyance que la conformite couvre la securite, lacune dans le dossier de securite
Scellement sur PCR 0 avec mises a jour BIOS frequentesPrompts de cle de recuperation routiniers, charge de support
Pas d'inventaire des versions firmware sur la flotteImpossible de reagir a un nouveau bulletin de securite dans un delai compatible CRA

Sources & références

  1. TPM 2.0 Library Specification, version 1.62 (2020) , Trusted Computing Group trustedcomputinggroup.org/resource/tpm-library-specification/
  2. ISO/IEC 11889-1 a -4:2015, Information technology, Trusted Platform Module Library , ISO/IEC www.iso.org/standard/66510.html
  3. BSI-CC-PP-0030, Trusted Platform Module Library Family 2.0, Protection Profile , Bundesamt fuer Sicherheit in der Informationstechnik (BSI) www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/Zertifizierung-und-Anerkennung/Zertifizierung-von-Produkten/Zertifizierung-nach-CC/Schutzprofile-Protection-Profiles/schutzprofile-protection-profiles_node.html
  4. FIPS 140-3, Security Requirements for Cryptographic Modules (2019) , NIST csrc.nist.gov/publications/detail/fips/140/3/final
  5. TCG PC Client Platform TPM Profile Specification , Trusted Computing Group trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
  6. Pile logicielle TPM 2.0 sous Linux (tpm2-tss, tpm2-tools) , communaute tpm2-software github.com/tpm2-software