Skip to main content
  1. Concetti/

TPM e HSM - Hardware Security Module e Trusted Platform Module

Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cos'e'
#

TPM e HSM sono due soluzioni hardware che proteggono chiavi crittografiche eseguendo le operazioni direttamente nel chip, senza mai esporre la chiave in chiaro alla memoria del sistema. La differenza e' di scala e scopo: il TPM protegge il singolo dispositivo in cui e' integrato, l'HSM protegge le chiavi master dell'intera organizzazione da un dispositivo centralizzato.

tpm-trusted-platform-module.webp

Esegue operazioni crittografiche in hardware in modo che la chiave privata non possa mai essere estratta dal chip, garantendo un root of trust fisico verificabile.

TL;DR
#

  1. TPM = chip sulla scheda madre. Integrato, non rimuovibile. Tre funzioni: misura l'integrita' del boot, genera e custodisce chiavi, fornisce attestazione hardware.
  2. Endorsement Key = identita' del dispositivo bruciata in fabbrica. Unica, non modificabile, non estraibile. E' il "serial number crittografico" del TPM.
  3. PCR (Platform Configuration Registers) = registri che misurano ogni componente del boot. Se qualcosa cambia (rootkit, bootloader modificato), il PCR cambia e il TPM non sblocca BitLocker.
  4. HSM = dispositivo enterprise dedicato. Protegge le chiavi master di CA, banche, sistemi di pagamento. La chiave non esce mai dal chip nemmeno per le operazioni: il dato entra nell'HSM, l'HSM firma/cifra e restituisce solo il risultato.
  5. Differenza operativa: TPM e' 1:1 con il dispositivo (embedded). HSM e' N:1 (molti server chiamano un HSM centralizzato via rete).

TPM - Trusted Platform Module
#

Il TPM e' un microchip saldato sulla scheda madre che implementa funzioni crittografiche in hardware. Non e' un processore generico: e' progettato specificamente per custodire segreti (chiavi, certificati, password) in modo che nessun software, nemmeno il kernel, possa estrarli direttamente.

tpm-chip-motherboard.webp

Come funziona il Secure Boot con PCR
#

Il Secure Boot non e' un semplice "blocca i boot loader non firmati": e' un processo di misura continua dove ogni componente verifica il successivo e registra il proprio hash in un PCR del TPM.

tpm-endorsement-key-root-of-trust.webp

flowchart TD
    classDef hw fill:#1d3557,stroke:#457b9d,stroke-width:2px,color:#fff
    classDef fw fill:#2a9d8f33,stroke:#2a9d8f,stroke-width:2px,color:#000
    classDef os fill:#e9c46a33,stroke:#e9c46a,stroke-width:2px,color:#000
    classDef risk fill:#e6394633,stroke:#e63946,stroke-width:2px,color:#000
    classDef spacer fill:none,stroke:none,color:none

    SPACER[" "]:::spacer
    TPM["TPM Chip
(Root of Trust)"]:::hw UEFI["UEFI Firmware
misura hash → PCR[0]"]:::fw BOOT["Boot Loader
misura hash → PCR[4]"]:::fw OS["OS Kernel
misura hash → PCR[8]"]:::os BL["BitLocker
sblocca solo se PCR == expected"]:::os ROOTKIT["Rootkit nel boot loader
PCR[4] cambia"]:::risk subgraph CHAIN ["Secure Boot Chain"] direction TD SPACER TPM UEFI BOOT OS BL end SPACER ~~~ TPM TPM -->|misura| UEFI UEFI -->|misura| BOOT BOOT -->|misura| OS OS -->|verifica PCR| BL ROOTKIT -.->|tampering| BOOT

Se un rootkit modifica il boot loader, il PCR[4] registra un hash diverso da quello atteso. Quando BitLocker interroga il TPM per ottenere la chiave di decifratura, il TPM confronta i PCR attuali con i valori registrati durante il setup: se non corrispondono, rifiuta di rilasciare la chiave. Il disco resta cifrato anche se fisicamente estratto e montato su un altro sistema.

tpm-bitlocker-platform-verification.webp

Dev parallel: i PCR del TPM sono analoghi ai checksum di integrita' nei sistemi di deploy. Quando fai composer install --verify, verifichi che i pacchetti installati corrispondano agli hash nel composer.lock. Il TPM fa lo stesso per ogni componente del boot: se qualcosa non corrisponde, non sblocca. E' come se il tuo stack non partisse con un lockfile corrotto.


HSM - Hardware Security Module
#

L'HSM e' un dispositivo hardware dedicato che protegge chiavi crittografiche ad alto valore: chiavi private di Certificate Authority, chiavi di cifratura per banche e sistemi di pagamento, chiavi master per Key Management Systems enterprise. A differenza del TPM (embedded nel singolo dispositivo), l'HSM e' centralizzato e condiviso da molti servizi che lo interrogano via rete.

hsm-hardware-security-module-overview.webp

hsm-network-bank-servers-example.webp

Esempio banca con 50 server web: tutti i server devono firmare i JWT di sessione con la chiave privata della CA interna. Invece di distribuire la chiave privata su 50 server (rischio enorme), tutti i server chiamano l'HSM via rete con la richiesta di firma. L'HSM firma internamente e restituisce solo la firma. La chiave privata non tocca mai nessuno dei 50 server: vive solo nell'HSM, isolata fisicamente e logicamente.

Dev parallel: in AWS, CloudHSM e' l'HSM cloud-managed. A differenza del KMS standard dove AWS gestisce le chiavi (e ha quindi accesso teorico), CloudHSM garantisce che le operazioni avvengano in un HSM fisico nel datacenter AWS ma le chiavi sono completamente sotto il controllo dell'azienda. AWS non puo' accedere. Per compliance PCI-DSS livello 1, i sistemi di pagamento devono usare un HSM certificato per proteggere i PIN: il PIN viene cifrato nell'HSM del POS e il risultato cifrato viaggia verso la banca senza che il PIN in chiaro lasci mai il chip.


Differenza operativa TPM vs HSM
#

La distinzione critica per l'esame Security+ e' capire quando si usa uno e quando l'altro. Non sono in competizione: risolvono problemi diversi a scale diverse.

CaratteristicaTPMHSM
PosizioneIntegrato scheda madreDispositivo esterno (rack/USB/cloud)
Scala1 per dispositivo1 condiviso da N server
Chiave principaleEndorsement Key (EK)Master key organizzazione
Form factorChip 2cm su PCBRack 1U o USB token
Costo tipicoIncluso nel PC modernoMigliaia/decine di migliaia euro
Perdita dispositivoDisco inaccessibile senza backup keyCluster ridondato, chiavi safe
CertificazioneTCG TPM 2.0FIPS 140-2 Level 3/4

Dev parallel: pensa al TPM come alle variabili d'ambiente del tuo processo (legate a quel processo specifico, non esportabili fuori), e all'HSM come a un secrets manager centralizzato come HashiCorp Vault su hardware dedicato, dove tutti i microservizi chiamano lo stesso endpoint per ottenere segreti senza che questi vengano mai esposti in chiaro nei container.


KMS - Key Management System
#

Il KMS non e' hardware ma software che gestisce il ciclo di vita delle chiavi crittografiche: generazione, distribuzione, rotazione e revoca. Spesso il KMS usa internamente un HSM come backend per custodire le chiavi master. AWS KMS, Azure Key Vault e HashiCorp Vault sono esempi di KMS cloud-managed.

Il KMS associa ogni chiave a utenti o sistemi specifici, gestisce la rotazione automatica e mantiene l'audit log di chi ha usato quale chiave quando. Il KMS e' il software, l'HSM e' l'hardware dove vivono le chiavi piu' critiche.


Collegato a
#

  • cryptography - principi crittografici alla base di TPM/HSM
  • pki - l'HSM protegge la chiave privata della Root CA
  • ssl-tls - TLS usa certificati gestiti da PKI con HSM enterprise
  • ssh-key-authentication - autenticazione basata su chiavi: stesso principio di non esporre la privata

Related