Come bloccare la flash di autenticazione per impedire i furti

Di questi tempi, la sicurezza è la preoccupazione principale di tutti. I microcontroller e i prodotti systems-on-chip moderni sono progettati con funzionalità di sicurezza. Tuttavia, la memoria flash seriale è tradizionalmente la più esposta agli hacker. Questo libro bianco spiega come la flash di autenticazione può essere abbinata in modo sicuro e unico a un controller host autorizzato per prevenire i furti di proprietà intellettuale.

 1017_Authentication_Flash_Banner

Flash di autenticazione: colmare il gap di sicurezza lasciato dagli IC flash NOR convenzionali

Come risposta alla domanda degli OEM preoccupati della sicurezza, i produttori di microcontroller e sistemi su chip (systems-on-chip) (SoC) moderni di solito dotano i loro prodotti di una vasta gamma di funzionalità di sicurezza: oggi, le MCU da 32 bit standard pronte all'uso per applicazioni mainstream non finanziarie presentano spesso un acceleratore crittografico dell'hardware, un generatore di numeri casuali (random number generator, RNG) e posizioni di memoria sicure.

Ma la memoria flash seriale (la sede in cui viene archiviata gran parte delle preziosa proprietà intellettuale degli OEM) è tradizionalmente più vulnerabile rispetto ai SoC o ai microcontroller. Le debolezze di sicurezza nella memoria flash complementare in una MCU o in un SoC espongono gli OEM a rischi di danni commerciali di furto dei prodotti, causati dalla clonazione di progetti PCB decompilati. Questo articolo spiega come la flash di autenticazione può essere abbinata in modo sicuro e unico a un controller host autorizzato.

Le scorciatoie di sicurezza di oggi

Un requisito di sicurezza fondamentale per ogni OEM affidabile è quello di impedire la possibilità di furti o clonazioni delle IP dell'OEM, compresi i codici dell'applicazione, che vengono archiviati in una flash NOR seriale esterna.

Certamente, la gran parte del valore di un prodotto finale di elettronica non è un segreto. Prendiamo l'esempio di un termostato Internet of Things (IoT) per la casa intelligente: un'analisi minuziosa smontando la scheda del termostato permette la precisa identificazione di tutti i componenti e la possibilità di replicare fedelmente il layout della scheda da parte di qualunque fabbrica che voglia clonare il prodotto. Il progetto dell'hardware non è segreto.

Il codice dell'applicazione , o almeno tale dovrebbe essere. Un sistema elettronico, tuttavia, è forte solo se lo è il suo anello più debole. Oggi, i SoC o le MCU principali sono di norma fortemente protette dalla cifratura, da funzionalità anti-manomissione e di archiviazione sicura integrate nell'hardware e nel software. Perciò, se un attaccante vuole clonare il codice dell'applicazione, il punto di ingresso più probabile è un IC della memoria flash esterna.

Per questo motivo, oggi gli OEM "proteggono" di solito l'hardware per l'archiviazione del codice con un identificativo unico (UID) conservato nello spazio di memoria suddivisa nell'IC flash. In verità, tuttavia, un UID offre solo una barriera superficiale agli attacchi. Qualunque ingegnere con qualche conoscenza della sicurezza è in grado di individuare un UID e di disattivare facilmente l'abbinamento tra la MCU e l'hardware per l'archiviazione del codice. Una volta rimosso l'abbinamento, si rompe la fiducia da parte dell'OEM. Il codice archiviato sul dispositivo può essere copiato, e la clonazione del progetto del termostato può iniziare sul serio.

La debolezza in questo sistema di sicurezza flash è che l'UID è intrinsecamente non sicuro. È un numero di codice permanente e immutabile: una volta letto dalla memoria, può essere utilizzato nuovamente da un host non autorizzato.

La soluzione: autenticazione dinamica e sicura

In teoria, il rimedio a questo problema è facile da progettare: l'UID deve essere diverso ogni volta che la memoria è sollecitata dall'host. Ma il vantaggio dell'UID fisso che viene utilizzato oggi è la sua facilità di implementazione: deve essere programmato solo una volta nella memoria flash e una volta nel controller host; poi i due valori possono essere semplicemente messi a confronto per autenticare il dispositivo flash.

Quindi, in che modo la risposta a una sfida dell'host può essere diversa ogni volta ed essere comunque riconosciuta dall'host?

Cifratura simmetrica dell'ID di memoria

Questo è il problema che Winbond ha deciso di risolvere con la famiglia W74M di IC flash di autenticazione (vedere figura 1). Winbond è conosciuta soprattutto per il suo ampio portafoglio di IC di memoria flash NOR e NAND seriale; è il principale produttore al mondo di flash seriali, con una quota di mercato attorno al 30%. Nel 2016, Winbond ha consegnato 2,1 miliardi di unità di IC flash seriali SpiFlash®.

Ora si rivolge anche ai problemi dei clienti che hanno vulnerabilità di sicurezza nella porzione di memoria flash dei loro progetto: questo è il motivo dell'introduzione della famiglia W74M. Il metodo di base con il quale Winbond protegge l'identità di una memoria è la cifratura simmetrica: host e memoria condividono lo stesso segreto, una "chiave principale".

 

1017_Figure1_Winbond_Article1_1 

Figura 1: l'architettura del pacchetto multi-chip W74M

 

La chiave principale, comunque, non viene mai trasmessa direttamente tra l'host e la memoria (l'"attaccante" e il "difensore"). Invece, viene generato un messaggio cifrato (un codice di autenticazione del messaggio basato su hash o HMAC) combinando la chiave principale con un elemento dinamico come un numero casuale; poi questa combinazione viene elaborata tramite un algoritmo di cifratura, il SHA-256. SHA-256 sta per Secure Hash Algorithm (algoritmo hash di sicurezza) con un volume di 256 bit, una funzione di hash crittografico pubblicato dall'US National Institute of Standards and Technology (NIST) come standard federale dell'elaborazione delle informazioni (Federal Information Processing Standard, FIPS). È una funzione crittografica usata per l'elaborazione di transazioni finanziarie, ed è considerata praticamente inviolabile.

Visualizza prodotti correlati

W74M25JVZEIQ

Winbond Electronics Flash Visualizza

Per autenticare la memoria W74M, il controller host confronta i valori del HMAC della memoria con il valore che calcola usando la chiave principale e lo stesso numero casuale elaborato tramite lo SHA-256. Se i valori corrispondono, le normali operazioni di memoria possono continuare.

Dato che il HMAC viene parzialmente generato da un elemento dinamico, come un numero casuale, il valore del HMAC è diverso ogni volta che viene generato. Ciò vuol dire che gli attacchi che vanno a buon fine contro una memoria flash con un UID fisso e convenzionale, come quelli visti prima, saranno respinti se portati contro una memoria W74M. E poiché la funzione SHA-256 è così sicura, in pratica non ci sono rischi che un aggressore possa decrittare il HMAC per scoprire il valore della chiave principale.

La figura 1 mostra anche due altre interessanti caratteristiche della W74M. In primo luogo, il contatore monotono non volatile offre una verifica supplementare dell'autenticità della memoria. Il contatore parte da zero quando viene stabilito il codice principale, e viene aggiunto un solo incremento in risposta a un comando emesso dal controller host, il che significa che il contatore ha un valore unico conosciuto dalla memoria e dall'host. Se il valore del contatore fornito dalla memoria quando è impegnata dall'host non corrisponde al valore del contatore dell'host, il valore dell'HMAC della memoria non sarà lo stesso di quello calcolato dall'host: questo indica al processore host che il dispositivo di autenticazione W74M è stato manomesso.

Visualizza prodotti correlati

W74M01GVZEIG

Winbond Electronics Flash Visualizza

Il processore può usare questa conoscenza per proteggere il sistema host, ad esempio impedendo al dispositivo manomesso di poter accedere alle sue risorse. Questo protegge dal rischio che un aggressore sostituisca l'unità W74M montata sulla scheda dall'OEM con una W74M diversa per dirottarla.

Questa funzionalità di protezione è pertinente alla seconda caratteristica mostrata in figura 1: ci sono quattro tipi di combinazioni di chiave principale/HMAC/contatore monotono in ciascun dispositivo W74M. Un tipo verrà usato per l'autenticazione del controller del dispositivo host. Gli altri tre "canali" di autenticazione sono progettati, ad esempio, per i dispositivi IoT che devono verificare la propria identità per accedere ai servizi di rete (vedi figura 2). Come si vede, una chiave principale diversa può essere archiviata con sicurezza per ciascun canale di autenticazione e condivisa con il dispositivo host di riferimento. Ciò vuol dire che le chiavi principali del dispositivo host, del gateway Internet e del servizio cloud restano segrete: un dispositivo non conosce la chiave principale di un altro.

 

 1017_Figure2_Winbond_Article1_2

Fig. 2: autenticazione multi-strato abilitata dalla W74M

 

Un altro caso di utilizzo di questa funzionalità di autenticazione multi-strato è in un sistema complesso come un drone, che è composto di più elementi. Un dispositivo W74M in uno di questi elementi può essere usato per autenticare:

– il processore principale del drone
– il modulo amovibile della batteria
– il comando a distanza
– una fotocamera

L'autenticazione cifrata sicura permette al produttore del drone di essere certo che vengano usate solo fotocamere e batterie sostitutive di marca e impedisce la possibilità di un dirottamento non autorizzato del drone in volo.

Implementazione sicura

Come abbiamo detto in precedenza, le funzioni crittografiche di W74M sono estremamente sicure. Inoltre, le chiavi principali sono archiviate in uno spazio di memoria OTP che non può essere letta da dispositivi esterni.

Lo stesso dispositivo W74M è intrinsecamente sicuro. Un'implementazione sicura richiede anche un provisioning sicuro, per essere certi che le chiavi principali programmate in ciascuna unità W74M e ogni SoC o controller host restino un segreto dell'OEM. Di norma questo dipende dai processi di produzione e di provisioning dell'OEM, anche se Winbond può farsi carico in modo opzionale del provisioning della chiave principale del W74M per conto del cliente.

La famiglia W74M di dispositivi flash di autenticazione è disponibile in densità diverse che vanno da 32 Mb a 1 Gb, in pacchetti standard. Ciò vuol dire che i progetti di dispositivi sicuri che oggi incorporano un IC flash NOR/NAND per l'archiviazione del codice e un IC idi autenticazione esterno possono sostituire questi due chip con un solo pacchetto W74M adatto a una presa flash standard, offrendo una riduzione del costo dei materiali e del numero dei componenti fornendo il livello più sicuro di autenticazione.

Il W74M è anche disponibile come dispositivo di autenticazione multi-strato senza capacità di memoria flash NOR, con numeri parte W74M00AVSSIG e W74M00AVSNIG.

CS Lin
Responsabile Marketing, Winbond Electronics Corporation America 

Ultime notizie

Sorry, your filter selection returned no results.

Non perderti le ultime novità sull'elettronica

Abbiamo aggiornato la nostra politica sulla privacy. Si prega di prendere un momento per rivedere questi cambiamenti. Cliccando su Accetto, l'utente accetta la Politica sulla privacy e Condizioni di utilizzo di Arrow Electronics.

Il nostro sito web mette i cookies sul vostro dispositivo per migliorare la vostra esperienza e il nostro sito. Leggete altre informazioni sui cookies che usiamo e su come disabilitarli qui. I cookies e le tecnologie di tracking possono essere usati per scopi commerciali.

Con un click su “Accept”, voi consentite l'inserimento dei cookies sul vostro dispositivo e l'uso da parte nostra di tecnologie di tracking. Per avere altre informazioni e istruzioni su come disabilitare i cookies e le tecnologie di tracking, clickate su “Read More” qui sotto. Mentre l'accettazione dei cookies e delle tecnologie di tracking è volontaria, una loro disabilitazione potrebbe determinare un funzionamento non corretto del sito web, ed alcuni messaggi di allarme potrebbero essere per voi meno importanti.

Noi rispettiamo la vostra privacy. Leggete qui la nostra politica relativa alla privacy