EMB_83
EMBEDDED 83 • FEBBRAIO • 2022 62 SOFTWARE | ROOT OF TRUST ovvero la prova d’identità. L’identità deve ovviamente es- sere unica. Una volta stabilita e provata l’identità, è pos- sibile realizzare un canale di comunicazione protetto. Il collegamento è crittografato utilizzando chiavi crittogra- fiche. Sia l’identità del dispositivo sia le chiavi crittografiche de- rivano da numeri casuali (random) che vengono denomi- nati semi (seed). Unmicrocontrollore protetto, un’identità unica e le chiavi crittografiche formano una RoT (Root of Trust), che rappresenta la base della protezione di una rete IoT. Come integrare una RoT in un chip a semiconduttore Per creare una RoT all’interno di un microcontrollore ci sono due metodologie fondamentali. Quella più diffusa utilizza un computer esterno denominato HSM (Hardwa- re Security Module). Si tratta di un computer il cui compito è generare numeri random e chiavi crittografiche, nonché di gestire queste chiavi. Le chiavi sono generate all’esterno del micro- controllore e vengono successivamente programmate in quest’ultimo, processo che va sotto il nome di iniezione della chiave (key injection), utilizzando un’interfaccia di programmazione. L’iniezione della chiave comporta l’in- sorgere di problemi di protezione in quanto spesso l’inter- faccia non è crittografata. La seconda metodologia utilizzata prevede che sia il chip stesso a generare valori unici e convertirli in chiavi critto- grafiche. In generale il microcontrollore può utilizzare le variazioni fisiche casuali (random) che verificano duran- te il processo di produzione per generare semi random. Queste variazioni di processo vengono identificate dall’a- cronimo PUF (Physical Unclonable Function - funzioni fi- siche non clonabili). Queste funzioni PUF generano semi random, che possono quindi essere convertiti in identità e chiavi crittografiche da un acceleratore di generazione di chiavi, una funzione circuitale periferica che è già inte- grata nel microcontrollore. Iniezione della chiave: uno sguardo in profondità L’iniezione della chiave può risulare abbastanza costosa in quanto richiede un’apparecchiatura di programmazio- ne specialistica. Tale operazione viene di solito eseguita da un’azienda di programmazione specializzata che uti- lizza programmatori strettamente correlati all’HMS. La necessità di entrare in contatto con terze parti comporta l’insorgere di rischi per la sicurezza, ragion per cui tale metodologia non risulta conforme alle più recenti racco- mandazioni degli esperti, che consigliano un approccio alla protezione di tipo “zero-trust” (fiducia zero, ovvero non esiste nulla di sicuro), evitando quindi il coinvolgi- mento di terze parti. Le chiavi iniettate devono essere archiviate nella memoria all’interno del dispositivo. Esse sono generalmente archiviate in una memoria no volatile e protette dalla tecnologia di sicurezza hardware all’inter- no del microcontrollore. La tecnologia TrustZone di Arm , ad esempio, suddivide l’ambiente di esecuzione inmemo- ria, periferiche e funzioni protette e non protette. Anche con l’adozione di queste misure, le chiavi possono risultare vulnerabili e quindi esposte alla lettura da parte di eventuali intrusori per il semplice fatto che risiedono in una memoria Flash standard del dispositivo. Un’ulteriore vulnerabilità è rappresentata dal fatto che le chiavi sono spesso trasferite ai dispositivi utilizzato una connessione non crittografata, che può essere la connessione tra l’H- SM e il programmatore o, più comunemente, tra il pro- grammatore e i dispositivi stessi, esponendole quindi al pericoli di attacchi. Eliminare alcuni rischi per la sicurezza mediante le funzioni PUF Ora si andrà a esaminare in modo più dettagliato le fun- zioni PUF. Le PUF SRAM (ovvero basate sulla memoria SRAM) è un ottimo esempio di tecnologia PUF di prima generazione. Una memoria SRAM è integrata nella mag- gior parte dei microcontrollori e dei microprocessori. Nel momento in cui questi chip vengono alimentati, le celle della SRAM assumono uno dei due stati possibili, zero o uno. Lo stato in cui queste celle si stabilizzano dipende da piccole variazioni fisiche del wafer di silicio. Le variazioni sono casuali e vengono usate per creare i semi che posso- no essere utilizzati per generare le chiavi crittografiche. La SRAM presente in un dispositivo diventa l’impronta digitale di quel microcontrollore al quale fornisce quin- di un’identità unica. Poiché le PUF SRAM utilizzano una tecnologia di memoria già presente nel microcontrollore, è richiesto solamente il software necessario per il pilotag- gio delle PUF. La memoria Flash è un altro tipo di PUF. Anche questa memoria è disponibile nella maggior parte dei microcon- trollori. Le celle di una Flash vengono programmate “sovraccari- candole” al punto da causare alcune rotture (breakdown) nello strato di isolamento di ossido di silicio dei gate dei transistor all’interno di ciascuna cella di memoria. A cau- sa del mismatch (disaccoppiamento dovuto alle inevitabili variazione di processo) che esiste tra i due transistor che compongono ciascuna cella flash, si otterrà uno zero op-
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzg4NjYz