Table of Contents Table of Contents
Previous Page  53 / 102 Next Page
Information
Show Menu
Previous Page 53 / 102 Next Page
Page Background

DIGITAL

AUTHENTICATION

53

- ELETTRONICA OGGI 464 - SETTEMBRE 2017

segreto, una “root key” (ovvero, la chiave di primo livello o

chiave radice).

Questa root key non è mai trasmessa direttamente tra l’host

e la memoria (che rappresentano il “challenger” e il “respon-

der”). Al contrario, viene generato un messaggio cifrato (un

HMAC – Hash-based Message Authetication Code; in pratica

un codice per l’autenticazione di un messaggio basato su

una funzione di hash) ottenuto mediante una combinazione

della root key e un elemento di tipo di-

namico come un numero casuale; que-

sta combinazione viene quindi elabora-

ta con l’algoritmo di cifratura SHA-256.

SHA-256, acronimo di Secure Hash

Algorithm con un digest (o impronta,

definibile come una sequenza di bit di

lunghezza fissa e con particolari carat-

teristiche che la rendono unica) di 256 bit, è una funzione

crittografica di hash conforme allo standard FIPS (Federal

Information Processing Standard) riconosciuto dall’agenzia

federale statunitense NIST (National Institute of Standards

and Technology). Si tratta di una funzione crittografica uti-

lizzata per l’elaborazione delle transazioni di tipo finanziario

ed è generalmente considerato praticamente inviolabile.

Per autenticare una memoria W74M, il controllore host con-

fronta il valore dell’HMAC della memoria rispetto al valore

che esso calcola utilizzando la sua root key e lo stesso nu-

mero random, elaborato sfruttando l’algoritmo SHA-256. Se

i due valori corrispondono, la memoria inizia a funzionare

regolarmente.

Poiché l’HMAC è generato in parte sfruttando un elemento

dinamico, come un numero casuale, il valore dell’HMAC è dif-

ferente ogni volta che viene generato. Ciò significa che tutti

gli attacchi che possono essere condotti con successo con-

tro una memoria flash con il tradizionale UID fisso, avranno

un esito negativo contro una memoria W74M. Considerando

l’elevato grado di sicurezza del la funzione SHA-256, in pra-

tica non sussiste il rischio concreto che un eventuale intru-

sore possa decifrare l’HMAC per rilevare il valore della root

key. L’esame della figura 1 evidenzia altre interessanti carat-

teristiche di W74M. In primo luogo, il contatore monolitico

non volatile fornisce una verifica supplementare dell’auten-

ticità della memoria. Il contatore parte da zero quando la

root key è stabilita e viene aggiunto un singolo incremento

in risposta a un comando inviato dal controllore host: ciò

significa che il contatore ha un valore unico che è noto so-

lamente alla memoria e all’host. Se il valore del contatore

fornito dalla memoria quando l’host lancia un challenge non

corrisponde al valore del contatore dell’host, il valore del-

l’HMAC della memoria non sarà lo stesso di quello calcolato

dall’host; ciò segnala al processore host che il dispositivo

di autenticazione W74M è stato manomesso. Il processore

accesso più probabile sarà rappresentato dalla memoria

flash esterna.

Per tale motivo, gli OEM cercano di proteggere il loro har-

dware preposto alla memorizzazione del codice con un

identificatore unico (UID – Unique ID) immagazzinato in una

partizione dello spazio di memoria della flash. In realtà, in

UID è una barriera abbastanza semplice da aggirare. Qual-

siasi progettista con un certo know how nel campo della

sicurezza sarà in grado di collegare

una MCU alla memoria e programmare

quest’ultima in modo tale che gli invii

il proprio UID. Una volta noto questo

identificatore unico, la RoT (Root-of-

Trust) dell’OEM è violata. Il codice me-

morizzato nel dispositivo può essere

copiato, dando così inizio alla clonazio-

ne del progetto del termostato.

Il punto debole di questo sistema di sicurezza della flash è

dato dal fatto che l’UID stesso non è sicuro. Si tratta di un

numero di codice permanente e immutabile: una volta letto

e trasferito dalla memoria, esso può essere utilizzato ancora

da un host non autorizzato.

La soluzione: autenticazione sicura e dinamica

In teoria, la soluzione a questo problema è semplice da im-

plementare: l’UID deve essere diverso ogni volta che un

l’host invia una sfida (challenge) alla memoria. Il vantaggio

di avere un UID fisso è legato alla semplicità di implemen-

tazione: esso deve essere programmato una volta nella me-

moria flash e una volta nel controllore host. Per l’autentica-

zione del dispositivo flash è richiesto un semplice confronto

tra i due valori. A questo punto è necessario individuare

una modalità che permetta di fornire una risposta a una

challenge proveniente dall’host che, pur essendo differente

ogni volta, possa essere riconosciuta dall’host stesso.

Cifratura simmetrica dell’ID di memoria

Si tratta di un problema che Winbond si propone di risol-

vere con la propria famiglia di flash W74M (Authentication

Flash) la cui architettura è riportata in figura 1. Azienda

conosciuta soprattutto per la sua vasta gamma di memorie

Flash NAND e NOR seriali, Winbond è il maggior produttore

su scala mondiale di flash seriali, con una quota di merca-

to pari a circa il 30%. Nel 2016 La società ha spedito 2,1

miliardi memorie flash seriali della serie SpiFlash. Per ri-

solvere le problematiche legate alla vulnerabilità della sicu-

rezza che interessa la porzione di memoria flash dei progetti

sviluppati dai clienti, Winbond ha quindi introdotto la serie

W74M. La metodologia base usata dalla società per proteg-

gere l’identità di una memoria prevede l’uso della cifratura

simmetrica: sia l’host sia la memoria conoscono lo stesso

Il livello di sicurezza

di un sistema elettronico

è determinato dal suo anello

più debole