27
- ELETTRONICA OGGI 465 - OTTOBRE 2017
PUBBLIREDAZIONALE
MENTOR
Endpoint IoT: pochi semplici passaggi
per garantire la sicurezza degli apparati
L
a sicurezza nell’ambito della IoT deve partire dal
basso – dai terminali. Per chi sviluppa software
per gli apparati della cosiddetta Internet of Things
(IoT) è fondamentale realizzare come sia necessario ga-
rantire non solo la sicurezza di tutti gli aspetti dell’appa-
rato relativi alle comunicazioni, ma anche quella dell’ap-
parato stesso. Chiaramente, quello della sicurezza è un
tema estremamente ampio, che inizia già dalla fase di
modellizzazione concettuale dell’appa-
rato per poi abbracciare tutti gli aspetti
relativi alla pianificazione, ai processi,
alle attività e alla tecnologia. Questo arti-
colo esamina alcuni elementi tecnologici
chiave che si rivelano utili, se non addirittura critici, per
la realizzazione di infrastrutture IoT sicure.
Autenticazione del codice
L’autenticazione del codice (Fig. 1) si basa sull’utilizzo di
una coppia di chiavi crittografiche, una pubblica e una
privata. La chiave pubblica viene resa nota e messa a
disposizione di chiunque. La chiave privata deve inve-
ce essere accessibile solo al rispettivo proprietario. Le
chiavi di ogni coppia sono tra loro matematicamente
correlate, in modo tale che qualsiasi cosa venga critto-
grafata mediante la chiave pubblica possa essere de-
criptata solo utilizzando la corrispondente chiave priva-
ta, e viceversa. Questo tipo di autenticazione garantisce
un elevato livello di riservatezza.
Secure-boot con autenticazione
L’avvio in sicurezza dell’apparato, o secure-boot, avvie-
ne (Fig. 2) mediante l’esecuzione iniziale di un primo sta-
dio del boot loader, memorizzato all’interno di un’area
protetta della memoria, in modo da non poter essere
manomesso da eventuali hacker. All’interno della me-
moria protetta sono inoltre custodite anche la firma e la
chiave crittografica del secondo stadio del boot loader.
Il primo stadio del boot loader può quindi calcolare la
firma del codice di secondo stadio, utilizzando le fun-
zioni hardware di crittografia e la chiave crittografica
appena menzionata. Se la firma del secondo stadio così
calcolata corrisponde a quella presente nella memoria,
si ha la certezza che anche il codice del secondo stadio
sia integro e possa quindi essere eseguito.
La chain of trust
Il processo che garantisce l’integrità del codice inizia
dunque assicurandosi che l’hardware provveda ad
autenticare la ROM di boot. Successivamente, la ROM
di boot autenticherà il sistema operati-
vo (OS), e infine l’OS potrà autenticare
il codice degli strati applicativi. Questa
strategia consente di garantire ottimi li-
velli di sicurezza, che vanno anche oltre
il dispositivo terminale. Consideriamo, ad esempio, le li-
brerie di codice necessarie per la connessione al cloud,
come il codice binario compilato del SDK di Microsoft
Azure – che Mentor ha integrato con i sistemi operativi
Nucleus
®
RTOS e Mentor
®
Embedded Linux
®
. Se il codi-
ce binario di tali librerie non venisse protetto, l’integri-
tà delle funzionalità di integrazione dell’apparato con il
cloud potrebbe essere messa a repentaglio.
Separazione dei processi
Gli odierni SoC a elevate prestazioni rendono disponibili
avanzate funzionalità di sistema. Tuttavia, la necessità di
ridurre le dimensioni, i consumi e i costi costringe gli
sviluppatori ad affrontare difficili sfide per riuscire a
eseguire applicazioni complesse con limitate risorse di
memoria. In situazioni di questo tipo, può rivelarsi uti-
le la separazione dei processi. La separazione dei pro-
cessi, sebbene non garantisca di per sé la sicurezza,
è senz’altro utile per contenere gli effetti dannosi che
applicazioni non corrette potrebbero avere sui processi
di altre applicazioni o addirittura del kernel. Il Process
Model implementato da Nucleus
®
partiziona la memoria
in modo da creare al suo interno delle regioni protette, il
che si rivela estremamente importante in quelle situazio-
ni caratterizzate da forti limitazioni di spazio, laddove sia
richiesta una impronta di memoria minimale.
Per maggiori informazioni su Nucleus
®
RTOS e Mentor
®
Embedded Linux
®
consultare:
www.mentor.comFig. 1 – Autenticazione del codice
Fig. 2 – Autenticazione del secure-boot