EO_493
DIGITAL SECURITY 56 - ELETTRONICA OGGI 493 - APRILE 2021 le stesse interfacce di programmazione per installare anche le chiavi relative all’applicativo? Questa è esat- tamente la funzionalità che Renesas ha integrato nei suoi RA6M4 (ed anche nelle serie di MCU successive), offrendo il supporto per il provisioning delle chiavi si- cure attraverso le interfacce di programmazione. Gestione delle chiavi in produzione Per agevolare la gestione delle chiavi in produzione, le interfacce di programmazione supportano un proto- collo specifico di comandi che permettono all’utente di trasmettere alla SCE una certa chiave di installazione insieme con un payload criptato (si tratta delle chiavi dell’applicativo da installare), mediante il firmware di boot già integrato nel micro. Il diagramma concettuale di questo processo è raffigu- rato nella figura 2. Il sotto-sistema SCE include un Hardware Root Key (HRK), il quale viene utilizzato in combinazione con le funzionalità di generazione delle chiavi, per creare del- le “key encryption keys” (KEKs). Queste KEKs posso- no essere usate per la trasmissione di qualsiasi chia- ve utente (in formato criptato) all’interno della SCE, dove poi possono essere decriptate in modo sicuro e ricostruite per ulteriori utilizzi durante il processo di installazione. Allo scopo di descrivere al meglio la funzionalità, le KEK risultanti dalla funzione KDF(HRK) verranno denominate HRK. La stessa HRK è ovviamente protetta e non accessibile all’esterno del confine della SCE. Allo stesso modo, la HRK è presente esclusivamente all’interno della SCE. Come può dunque un utente preparare la sua chiave utente per essere installata per mezzo dell’interfaccia firmware di boot in produzione (Fig. 3)? Il primo passo è scegliere (generare) una chiave di installazione (la chiave verde nella figura 3) e la chia- ve utente (la chiave gialla nella medesima figura 3). La chiave di installazione è simmetrica AES, mentre la chiave utente può essere di qualsiasi tipo e dimen- sione supportata dall’acceleratore SCE, simmetrica o asimmetrica. Questa operazione deve essere eseguita in un ambiente sicuro per pre- servare la confidenzialità delle chiavi. La chiave utente rappresenta il payload e viene criptata dall’u- tente con la chiave di installazio- ne. Ovviamente anche la chiave di installazione deve essere crip- tata, altrimenti chiunque inter- cetti il protocollo di comunica- zione o copi i dati di installazione salvati all’interno dell’ambiente di programmazione potrebbe facilmente decriptare la chiave utente. Ma come fa l’utente a conoscere la HRK, in modo da criptare la chiave di installazione con essa? Non può vederla. Come può quindi Renesas condividere in modo segreto la chiave senza esporla? Un servizio “ad hoc” Renesas offre un servizio gratuito ai suoi clienti per criptare la chiave di installazione per mezzo della HRK, senza esporre il contenuto della HRK stessa. Questo servizio è gestito tramite un server sicuro dedicato al Device Lifecycle Management dei microcontrollori (server DLM). Ogni utente può registrarsi per usufruire di questo servizio e generare i dati necessari per l’o- perazione di programmazione. Tutte le comunicazioni tra l’utente e il server sono sicure e criptate via PGP. In questa procedura, l’utente invia la chiave di installa- zione (mai la chiave utente!) in modo sicuro al server DLM e riceve in cambio la versione criptata della stes- sa, tramite la HRK. Il processo è descritto nella figura 3 dalla chiave verde “inglobata” all’interno della chiave blu. Dopo che l’utente ha trasmesso la chiave d’installa- zione all’MCU (mediante il protocollo di programma- zione), la chiave d’installazione può essere decriptata con successo all’interno della SCE. In questo modo essa (la chiave verde) è stata trasferita in modo sicuro all’interno del sottosistema SCE. Ora la chiave d’installazione può essere a sua volta uti- lizzata per decriptare la chiave utente (la chiave gialla) all’interno della SCE. A questo punto, la chiave gialla è stata trasmessa in modo sicuro e ricostruita all’interno della SCE. Che cosa manca ora? Certamente la chiave utente (chiave gialla) deve essere in qualche modo salvata nella memoria del MCU, altrimenti quando non più ali- mentato, essa andrà persa. Tuttavia, la chiave gialla non deve essere esportata in chiaro per non danneg- giare la confidenzialità del sistema. Fig. 2 – Provisioning della MCU per mezzo della interfaccia di programmazione
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzg4NjYz