🔒 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
TPM 2.0 Standard actuel
⚙️ Fonctionnalités clés
PCRs — Platform Configuration Registers
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
Sealed Storage
systemd-cryptenroll + LUKS2 sous Linux.Gestion de clés
RNG Matériel
/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
🧱 Types d'implémentations
| Type | Description | Exemple | Sé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 |
🐧 TPM sous Linux — tpm2-tss, tpm2-tools, systemd
tpm2-tss v4.1.x
tpm2-tools v5.7
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
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
IMA — Integrity Measurement Architecture
clevis · swtpm · go-tpm
/dev/tpm0 et /dev/tpmrm0.☁️ vTPM Cloud & fTPM
AMD fTPM (PSP) faulTPM 2023
Intel PTT Intel ME/CSME
tpm2_getekcertificate -t i.