🔒 TPM — Trusted Platform Module

Cryptoprocesseur sécurisé · ISO/IEC 11889 · TCG TPM 2.0 · PCRs · Attestation distante · Sealed storage · BitLocker · LUKS · Linux tpm2-tools

← Retour Actualités IT++ 🛡️ Confidential Computing →

📐 Définition & standards TCG

Un Trusted Platform Module (TPM) est un cryptoprocesseur sécurisé conçu pour réaliser des opérations cryptographiques fondamentales ancrées dans le hardware. Il implémente la norme ISO/IEC 11889, conçue par le Trusted Computing Group (TCG) — consortium fondé en 2003 par AMD, HP, IBM, Intel et Microsoft. Il crée une racine de confiance matérielle : il génère, stocke et gère des clés cryptographiques de manière isolée du système d'exploitation.

TPM 1.2

2003–2011 · Obsolète · SHA-1 uniquement
Algorithmes fixés : RSA-2048 + SHA-1 uniquement. Mono-hiérarchie de clés (une seule SRK). 24 PCRs fixes, banque SHA-1 unique. Pas rétrocompatible avec TPM 2.0. Considéré obsolète pour toute nouvelle installation — Windows 11 requiert TPM 2.0.

TPM 2.0 Standard actuel

ISO/IEC 11889:2015 · Requis Windows 11
Algorithmes agiles : RSA, ECC (P-256, P-384), SHA-256, SHA-384, AES, HMAC. Multi-hiérarchies : Endorsement, Storage, Platform, Null. Plusieurs banques PCR simultanées (SHA-1, SHA-256, SHA-384). Anti-hammering standardisé (32 échecs → verrouillage). Requis obligatoirement par Windows 11 depuis 2021.

⚙️ Fonctionnalités clés

PCRs — Platform Configuration Registers

24 registres par banque · Chaîne de démarrage
Cœur du mécanisme de mesure. 24 PCRs par banque de hachage, initialisés à zéro au démarrage. Chaque mesure est étendue : PCR = Hash(PCR || nouveau_hash) — non réinitialisable avant reboot.

Allocations standardisées PC Client :
  • PCR 0 — Firmware UEFI (code BIOS)
  • PCR 4 — Bootloader (GRUB, shim)
  • PCR 7 — Secure Boot (état, certs)
  • PCR 10 — IMA (Linux, fichiers runtime)
  • PCR 11-15 — OS (BitLocker, systemd)

Attestation Distante

EK · AIK/AK · Quote · Nonce
Le TPM peut prouver cryptographiquement à un tiers qu'il est authentique et dans un état connu. Le vérificateur envoie un nonce, le TPM signe les valeurs PCR avec une clé AK (Attestation Key). Le résultat — un Quote — ne peut être falsifié. Frameworks : Keylime (Red Hat, Kubernetes), CHARRA (Fraunhofer).

Sealed Storage

Liaison aux PCRs · BitLocker · LUKS
Des données (ou clés) sont chiffrées et liées à un état précis du système (valeurs PCR). Le déchiffrement n'est possible que si les PCRs correspondent exactement. Application directe : BitLocker déverrouille le disque automatiquement au boot — uniquement si aucun composant n'a changé. Idem systemd-cryptenroll + LUKS2 sous Linux.

Gestion de clés

EK · SRK · Hiérarchies · Non-exportable
EK (Endorsement Key) : paire RSA ou ECC gravée en usine, unique par TPM, clé privée jamais exportable. SRK : clé racine de la hiérarchie de stockage. AK : clés d'attestation dérivées. Key wrapping/binding : une clé externe chiffrée par le TPM ne peut être déchiffrée que par ce même TPM.

RNG Matériel

TRNG · /dev/hwrng · Entropie
Le TPM intègre un générateur de nombres aléatoires hardware (TRNG). Sous Linux, il alimente /dev/hwrng et peut enrichir l'entropie de /dev/random. Note : en 2023, Linus Torvalds a temporairement désactivé le fTPM AMD dans le kernel à cause de problèmes de latence ("Let's just disable the stupid fTPM hwrnd thing"), puis corrigé par les constructeurs.

Anti-Hammering

TPM 2.0 standardisé · 32 échecs → lock
Protection contre les attaques par force brute sur les codes PIN. TPM 2.0 standardise : 32 tentatives échouées → verrouillage, puis 1 tentative «oubliée» toutes les 10 minutes. Réinitialisation possible uniquement avec le mot de passe propriétaire du TPM — inaccessible depuis l'OS.

🧱 Types d'implémentations

TypeDescriptionExempleSécurité
dTPM (Discret) Puce dédiée physiquement séparée, tamper-resistant, bus LPC ou SPI Infineon SLB 9670, STMicro FIPS 140 niveau 3 — le plus élevé. ⚠ SPI sniffing possible
iTPM (Intégré) Intégré dans un autre composant (contrôleur I/O) Intel ME, Broadcom Hardware-based, pas de bus externe exposé
fTPM (Firmware) S'exécute dans un TEE du CPU (AMD PSP, Intel PTT/ME) AMD PSP fTPM, Intel PTT Comparable à iTPM, résistant au bus sniffing. faulTPM 2023
vTPM (Virtuel) Fourni par un hyperviseur pour les machines virtuelles AWS Nitro, Azure, GCP Shielded Dépend de la sécurité de l'hyperviseur
sTPM (Software) Émulation logicielle pure — swtpm (IBM) swtpm, QEMU Minimal — usage test/développement uniquement
⚠ Point critique — dTPM SPI sniffing : la communication entre le CPU et un dTPM externe via bus SPI/LPC n'est pas chiffrée. Des attaques physiques permettent de capturer les clés BitLocker en passif (démonstration Tom's Hardware 2024). Mitigation : activer un PIN BitLocker, ou préférer le fTPM (pas de bus externe).

🐧 TPM sous Linux — tpm2-tss, tpm2-tools, systemd

tpm2-tss v4.1.x

TCG TSS · SAPI · ESAPI · FAPI
Implémentation de référence de la TCG TSS (TPM Software Stack). 4 couches : TCTI (transport), SAPI (bas niveau), ESAPI (abstraction crypto, sessions HMAC/chiffrement), FAPI (haut niveau JSON). CVE-2024-29040 corrigé dans la mise à jour SUSE 2025.

tpm2-tools v5.7

CLI complet · 80+ commandes
Outils CLI pour toutes les opérations TPM 2.0 : tpm2_getcap, tpm2_pcrread, tpm2_quote, tpm2_seal, tpm2_unseal, tpm2_getekcertificate… CVE-2024-29038 et CVE-2024-29039 corrigés en v5.7.

systemd-cryptenroll

Depuis systemd 248 · LUKS2 uniquement
Enrôler un volume LUKS2 dans le TPM : systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+7 /dev/sda2. Déverrouillage automatique uniquement si les PCRs correspondent. Supporte les signed PCR policies. Incompatible LUKS1.

Keylime

Red Hat · Attestation continue · Kubernetes
Framework d'attestation distante continue pour Linux. Surveille l'intégrité du système en permanence via TPM. Intégrable dans Kubernetes pour l'attestation des nœuds. Utilisé en production par Red Hat.

IMA — Integrity Measurement Architecture

Kernel Linux · PCR 10 · Fichiers runtime
Mesure l'intégrité des fichiers au runtime (à l'exécution), stocke les hashes dans PCR 10. Compatible TPM — les mesures sont attestables. Fonctionne avec EVM (Extended Verification Module) pour les attributs étendus. Activé par défaut dans certaines distributions enterprise.

clevis · swtpm · go-tpm

Déchiffrement auto · Tests · Dev
clevis : framework de déchiffrement automatique (Tang server, TPM2, etc.). swtpm (IBM) : émulateur logiciel pour tests et QEMU. go-tpm (Google), wolfTPM : bibliothèques alternatives pour les développeurs. Support kernel natif depuis Linux 4.0 via /dev/tpm0 et /dev/tpmrm0.

☁️ vTPM Cloud & fTPM

AMD fTPM (PSP) faulTPM 2023

AMD Platform Security Processor · ARM Cortex-A5
Implémenté dans l'AMD PSP, un Cortex-A5 ARM intégré dans chaque CPU Ryzen/EPYC. Activé dans le BIOS. faulTPM (TU Berlin, 2023) : voltage glitching permet de compromettre le PSP et extraire des clés BitLocker sans PIN sur les systèmes modernes. Mitigé par mise à jour firmware PSP.

Intel PTT Intel ME/CSME

Intel Platform Trust Technology
Implémenté dans l'Intel ME (Management Engine) ou Intel CSME. Activé dans le BIOS sous "Intel PTT". Pas de bus externe exposé — résistant au SPI sniffing. Détectable par tpm2_getekcertificate -t i.

AWS Nitro TPM GA 2022

EC2 Nitro · TPM 2.0
TPM 2.0 virtuel dans les instances EC2 Nitro. Permet l'attestation des instances EC2 et le sealed storage pour LUKS/BitLocker dans les VMs cloud.

Azure vTPM Confidential VMs

SEV-SNP + TDX · Attestation intégrée
vTPM composant critique des Confidential VMs Azure (SEV-SNP et TDX). Utilisé pour l'attestation distante des VMs confidentielles — preuve que la VM tourne sur du matériel certifié non compromis.

Google Shielded VM vTPM

Premier provider · GA
Google a été le premier fournisseur cloud à proposer des vTPMs dans ses Shielded VMs. Intégré aux Confidential VMs SEV-SNP N2D et TDX C3. Mesure et atteste l'état du firmware et du bootloader.

VMware vTPM

vSphere 6.7+ · On-premises
vTPM disponible dans vSphere depuis la version 6.7 pour les VMs Windows 11 et Linux sécurisées. Permet BitLocker sans puce TPM physique dans les VMs — basé sur le Provider Manager de vCenter.

📰 Vulnérabilités & actualités 2022–2026

Fév. 2026 CVE-2026-0714 — Moxa UC-1222A : clés LUKS exposées par sniffing SPI passif
Le dTPM SPI d'un routeur industriel Moxa expose la clé LUKS en clair pendant le boot — attaque passive sans démonter la puce. Illustre le problème structurel du bus SPI non chiffré.
Oct. 2024 TPM SPI sniffing sur laptops Windows 11 modernes — SCRT Blog
Démonstration que le sniffing du bus SPI fonctionne même avec un PIN BitLocker activé sur des laptops récents avec dTPM discret. Script SPITkey automatise l'attaque. Mitigation : utiliser le fTPM intégré au CPU.
2024 CVE-2024-29038, CVE-2024-29039 (tpm2-tools) · CVE-2024-29040 (tpm2-tss)
Correctifs de sécurité publiés pour la stack logicielle tpm2-software. Mise à jour tpm2-tools v5.7 et tpm2-tss v4.1.x recommandée pour toutes les distributions.
2023 faulTPM (TU Berlin) — voltage glitching sur AMD PSP, contourne BitLocker
Chercheurs de l'Université Technique de Berlin découvrent une vulnérabilité dans le PSP AMD permettant d'extraire des clés BitLocker par attaque physique via voltage glitching, même sur des Ryzen récents supportés par Windows 11.
2026 UAPI Group — Registre Linux des PCRs standardisé
Le groupe UAPI (systemd) publie le registre officiel des allocations de PCRs pour Linux, standardisant l'usage des PCRs 0–15 entre les différents composants (UEFI, GRUB, systemd, IMA, BitLocker).
Oct. 2025 Fin du support Windows 10 (14 oct. 2025) — migration forcée vers TPM 2.0
La fin du support Windows 10 le 14 octobre 2025 force la migration vers Windows 11, et donc l'adoption généralisée du TPM 2.0. Impact massif sur le marché des PCs et sur le remplacement des machines incompatibles.

Trusted Computing Group

ArchWiki TPM

Microsoft TPM Fundamentals

Wikipedia TPM