Attestazione TPM

Questo articolo descrive i concetti relativi al provisioning dei dispositivi che usano l'attestazione TPM (Trusted Platform Module) nel servizio Device Provisioning.This article describes the concepts involved when provisioning devices using Trusted Platform Module (TPM) attestation in the Device Provisioning Service (DPS). L'articolo è di particolare interesse per tutte le persone coinvolte nella preparazione di un dispositivo per la distribuzione.

Un modulo TPM (Trusted Platform Module) è un tipo di modulo di protezione hardware ( HSM). Questo articolo presuppone che si stia usando un TPM discreto, firmware o integrato. I TPM emulati dal software sono adatti per la creazione di prototipi o test, ma non forniscono lo stesso livello di sicurezza dei TPM discreti, firmware o integrati. Non è consigliabile usare TPM software nell'ambiente di produzione.

Questo articolo è rilevante solo per i dispositivi con TPM 2.0 con supporto chiave HMAC e le relative chiavi di verifica dell'autenticità. TPM è uno standard ISO a livello di settore del gruppo trusted computing ed è possibile leggere altre informazioni su TPM nella specifica TPM 2.0 completa o nella specifica ISO/IEC 11889. Questo articolo presuppone anche che si abbia familiarità con coppie di chiavi pubbliche e private e come vengono usate per la crittografia.

Il Software Development KIT del dispositivo del servizio Device Provisioning SDK gestisce per l’utente tutte le informazioni descritte in questo articolo. Non è necessario implementare il supporto TPM se si usano gli SDK nei dispositivi. Questo articolo aiuta a comprendere concettualmente il comportamento del chip di sicurezza TPM durante il provisioning del dispositivo e spiega perché questa operazione è sicura.

Panoramica

I TPM utilizzano la cosiddetta chiave di verifica dell'autenticità come radice di attendibilità sicura. La chiave di verifica dell'autenticità è univoca per i TPM e modificarla significa essenzialmente modificare il dispositivo come fosse nuovo.

I TPM hanno un altro tipo di chiave denominata chiave radice di archiviazione (SRK). Una SRK può essere generata dal proprietario del TPM dopo che quest’ultima diventa proprietaria del TPM. Assumere la proprietà del TPM è il modo specifico del TPM di dire che qualcuno sta impostando una password nel modulo di protezione hardware. Se un dispositivo TPM viene venduto a un nuovo proprietario, il nuovo proprietario può assumere la proprietà del TPM per generare una nuova chiave di radice di archiviazione (SRK). La nuova generazione SRK garantisce che il proprietario precedente non utilizzi il TPM. Poiché la SRK è univoca per il proprietario del TPM, è utilizzabile per bloccare i dati nel TPM per tale proprietario. La SRK fornisce un ambiente sandbox in cui il proprietario può archiviare le chiavi e revocarne l’accesso se il dispositivo o il TPM viene venduto. È come cambiare casa: diventare proprietari significa cambiare le serrature alle porte e sbarazzarsi del mobilio dei proprietari precedente (SRK), ma non cambiare indirizzo di casa (chiave di verifica dell'autenticità).

Una volta configurato un dispositivo, è disponibile sia un EK che uno SRK per l'uso.

Diagramma che illustra l'acquisizione della proprietà di un TPM.

I passaggi specifici coinvolti nell'assumere la proprietà di un TPM variano a seconda del produttore, del set di strumenti TPM in uso e del sistema operativo del dispositivo.

Il servizio Device Provisioning utilizza la parte pubblica della chiave di verifica dell'autenticità (EK_pub) per identificare e registrare i dispositivi. Il fornitore del dispositivo può leggere la EK_pub durante la produzione o le fasi finali di test e caricare la EK_pub sul servizio di provisioning in modo che il dispositivo venga riconosciuto anche quando si connette per eseguire il provisioning. Il servizio Device Provisioning non verifica la SRK o il proprietario, in tal modo "eliminando" il TPM vengono cancellati i dati dei clienti, ma la chiave di verifica dell'autenticità (e altri dati del fornitore) vengono conservati e per il dispositivo verrà comunque riconosciuto dal servizio Device Provisioning quando si connette per eseguire il provisioning.

Processo di attestazione

Quando un dispositivo con un TPM si connette al servizio Device Provisioning, il servizio controlla prima di tutto il EK_pub fornito rispetto al EK_pub archiviato nell'elenco di registrazioni. Se il EK_pubs non corrisponde, il dispositivo non è autorizzato a effettuare il provisioning. Se le EK_pub corrispondono, il servizio richiede quindi al dispositivo di attestare la proprietà della parte privata della chiave di verifica dell'autenticità tramite una richiesta di verifica nonce, un richiesta sicura utilizzata per attestare l'identità. Il servizio Device Provisioning genera un parametro nonce e poi lo crittografa nuovamente con la SRK e, successivamente, con la EK_pub, le quali vengono fornite dal dispositivo durante la chiamata di registrazione iniziale. Il TPM conserva sempre in modo sicuro la parte privata della chiave di verifica dell'autenticità. Ciò impedisce la contraffazione e assicura che venga effettuato il provisioning dei token di firma di accesso condiviso per i dispositivi autorizzati.

Analizziamo il processo di un'attestazione in dettaglio.

Richiesta del dispositivo di un'assegnazione hub IoT

Prima di tutto, il dispositivo si connette al servizio di Device Provisioning e richiede l’esecuzione del provisioning. In questo modo, il dispositivo fornisce il servizio con l'ID registrazione, l’ambito ID e le EK_pub e SRK_pub dal TPM. Il servizio trasferisce nuovamente il parametro nonce crittografato al dispositivo e chiede a quest’ultimo di decrittografare tale parametro e utilizzarlo per firmare un token di firma di accesso condiviso per riconnettersi e completare il provisioning.

Provisioning delle richieste del dispositivo

Richiesta nonce

Il dispositivo accetta il parametro nonce e utilizza le parti private della chiave di verifica dell'autenticità e della chiave radice di archiviazione per decrittografarlo nel TPM; l'ordine di crittografia nonce richiama il trust dalla chiave di verifica dell'autenticità, che è immutabile, alla chiave radice di archiviazione, che possono cambiare se un nuovo proprietario assume la proprietà del TPM.

Decrittografia del parametro nonce

Convalida del parametro nonce e ricezione delle credenziali

Il dispositivo può quindi firmare un token di firma di accesso condiviso con il parametro nonce decrittografato e ristabilire una connessione con il servizio Device Provisioning utilizzando il token di firma di accesso condiviso firmato. Completata la richiesta nonce, il servizio consente al dispositivo di eseguire il provisioning.

Il dispositivo ristabilisce la connessione al servizio Device Provisioning per la convalida della proprietà della chiave di verifica dell'autenticità