web analytics

Measured Boot, Trusted Boot e TPM, un’introduzione

tpm pcr model

In questo articolo vi farò una panoramica su quelli che sono i sistemi per effettuare l’audit e mantenere sicura (o almeno provarci), la catena di avvio di un sistema operativo. Vi parlerò, quindi, di come funziona il measured boot con la sua remote attestation, il trusted boot ed il Trusted Platform Module o TPM.

Measured Boot, TPM, PCR e dintorni

Chiariamo prima un punto, cosa che potrebbe essere necessaria per gli utenti meno tecnici. Il TPM lo utilizziamo tutti, tutti i giorni. Per farvi un esempio immediato, ogni qual volta digitate il PIN di Windows Hello state utilizzando il TPM. Questo chip, infatti, serve per rendere il sistema maggiormente sicuro, proteggendolo da una serie di attacchi. In particolare, per quanto riguarda il processo di avvio di un sistema operativo, viene utilizzato all’interno di una tecnologia chiamata measured boot. Questa serve a garantire che, quando una piattaforma si avvia, sta eseguendo un codice che non è stato compromesso.

tpm chain of trust

Il processo di avvio ha il compito di inizializzare i principali componenti hardware e, successivamente, avviare il sistema operativo della piattaforma. Il measured boot misura ogni componente del processo di avvio, ovvero genera un hash e, successivamente, lo conserva in un registro del Trusted Platform Module integrato nel sistema.

Measured boot: i registri di configurazione della piattaforma

Il TPM, quindi, ha diversi registri denominati registri di configurazione della piattaforma o PCR. Ogni slot ha uno scopo diverso: ad esempio, PCR0 contiene la misurazione del BIOS e di altri componenti, PCR2 contiene eventuali ROM opzionali, e così via. Per una mappatura completa, fate riferimento all’immagine seguente.

pcr slots usage map

I PCR vanno considerati come degli slot di memoria che possono essere letti in un secondo momento, ma che non possono essere modificati una volta scritti. Ciò fornisce la garanzia che una volta che un valore viene scritto in una PCR dal TPM, può essere considerato costante per la durata del sistema, fino allo spegnimento o al riavvio. I PCR, quindi, possono essere letti dal TPM per i suoi scopi o da entità esterne al TPM (remote attestation).

Il trusted boot

Questo processo di avvio misurato, quindi, consente di interrogare i registri del TPM al completamento del processo, e di verificare se i valori negli slot PCR corrispondono ai valori previsti, calcolatati con versioni verificate dei vari componenti del boot. Una cosa importante da notare è che il TPM, in realtà, non ha alcuna capacità di interferire direttamente con il processo di avvio. Se si tenta di avviare il codice modificato su un sistema, infatti, il TPM conterrà misurazioni diverse, ma l’avvio avrà comunque esito positivo.

os meadured boot model

Esiste, tuttavia, una tecnologia alternativa che fa un altro passo in avanti, in termini di efficacia, il trusted boot. Questo processo non solo misura gli hash, ma esegue anche un controllo rispetto ad un valore previsto. Se il controllo fallisce, il processo si interrompee l’avvio del sistema fallisce. Il trusted boot, quindi, dovrebbe impedire al sistema di eseguire firmware modificato accidentalmente o intenzionalmente.

measured boot tpm pcr linux logs

Riepilogo ed una considerazione su trusted computing e cloud computing

  • Measured Boot: il firmware del PC registra tutto il processo di avvio. Questi log possono poi essere analizzati in un momento successivo, per valutare la loro correttezza;
  • Trusted Boot: verifica l’integrità di ogni componente del processo di avvio, prima di caricarlo;
  • L’avvio misurato si riduce alla registrazione degli hash e non interrompe o inibisce in altro modo l’utilizzo del sistema. Una volta avviato, il sistema operativo (o un altro componente) può confrontare gli hash di avvio misurati con i valori certi memorizzati in modo sicuro altrove, per determinare se il sistema è compromesso.

Fin quando si parla di un sistema locale, o comunque di un sistema di cui abbiamo il pieno controllo, i processi di audit che vi ho fin qui descritto sembrano funzionare. Più sfumata la situazione nel momento in cui utilizziamo un sistema sul cloud. In tal caso, infatti, ci si affida al gestore dei servizi cloud, e si relativizza il concetto di trusted computing.

sharing-caring-1Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.

[VIA]