Il termine Internet delle cose (IOT) talvolta può sembrare difficile da definire. In sostanza, tutti i dispositivi elettronici che possono connettersi e interagire con gli utenti o scambiare dati rientrano nell'ambito di questo termine generico. I dispositivi commercializzati come "Smart Home" o "Smart Healthcare", solo per fare due esempi tra i tanti, chiariscono maggiormente gli ambiti di applicazione in cui possiamo vedere effettivamente in azione l'IoT. Ma al di là del marketing intelligente e della terminologia generica, vi è un aspetto dell'IoT con cui la maggior parte di noi può concordare: generalmente, si assiste ad uno scarso approccio nell'implementazione della sicurezza.
La sicurezza dei dispositivi e dei sistemi connessi a Internet è una sfida costante, con nuovi approcci ai punti deboli del sistema che vengono condivisi e sfruttati ogni giorno. Microsoft, insieme con il proprio partner hardware MediaTek, ha sviluppato un nuovo approccio per fornire sia i dispositivi hardware che un ecosistema IoT in cui è integrato un sistema di sicurezza aggiornabile.
Azure Sphere Platform
Azure Sphere Platform di Microsoft offre la sicurezza in Internet al centro della sua proposta. La soluzione si basa su tre elementi fondamentali: un microcontrollore (MCU) protetto, un sistema operativo (OS) protetto e un servizio di sicurezza "chiavi in mano".
L'unità MCU protetta comprende un core di elaborazione, noto come sottosistema di sicurezza Pluton, che fornisce la base di attendibilità dell'hardware. Da qui, l'autenticazione con i servizi cloud e le necessarie operazioni di crittografia vengono eseguite utilizzando le chiavi private memorizzate in modo sicuro. Inoltre, viene fornito un servizio di supporto per gli aggiornamenti software OTA (Over-The-Air). Questa funzione ricavata dalle altre funzionalità della MCU lascia gli altri processori liberi di concentrarsi sulle operazioni di elaborazione in tempo reale, sulle funzionalità delle applicazioni e sulla connettività.
L'OS protetto è basato su un kernel Linux personalizzato e include un monitor di sicurezza per la protezione dell'accesso alle risorse critiche. Offrendo ulteriore robustezza, la soluzione fornisce un approccio containerizzato allo sviluppo di applicazioni che consente ai programmatori di dividere i codici in compartimenti.
Azure Sphere Security Service
L'elemento finale è rappresentato da Azure Sphere Security Service. Questa soluzione cloud consente di monitorare continuamente le minacce, garantendo affidabilità tra i dispositivi tramite il servizio Azure. Gli aggiornamenti del firmware possono essere eseguiti in modo sicuro sui nodi IoT e, con l'autenticazione, solo i dispositivi hardware originali possono essere programmati con i codici applicativi dei tool di sviluppo. Anche eventuali guasti sul campo o tendenze che possono indicare un funzionamento insolito possono essere rilevati tramite le dettagliate informazioni della piattaforma.
Uno dei primi dispositivi a fornire accesso all'ecosistema Azure Sphere è la MCU MediaTek MT3620, un dispositivo a tre core con blocco Wi-Fi integrato e il sottosistema di sicurezza Pluton. Per i codici applicativi, l'utente dispone di un Arm® Cortex®-A7, che funziona fino a 500 MHz, insieme a due Arm® Cortex®-M4F, che funzionano fino a 200 MHz Il core Arm® Cortex®-A7 è principalmente adatto per i codici utente di alto livello, mentre i due Cortex®-M4F possono gestire in tempo reale le funzioni di controllo. Le periferiche possono essere associate ad uno qualsiasi di questi tre core.
Il sottosistema Wi-Fi è controllato da un quarto processore, un core N9 RISC a 32 bit, e contiene una radio dual-band 802.11a/b/g/n, una banda base e un MAC. Progettato per applicazioni a bassa potenza, questo partizionamento assicura alla connettività wireless di raggiungere un'elevata velocità di throughput senza compromettere le prestazioni del resto del sistema.
Infine, un quinto processore, un altro Cortex®-M4F, offre sicurezza proteggendo la modalità di risparmio energia per l'intera MCU. Questo processore fornisce la base di attendibilità dell'hardware, include un generatore di numeri casuali con sistema di monitoraggio dell'entropia e presenta un pannello laterale con misure antimanomissione.
In totale, la MCU offre circa 5 MB di SRAM incorporata e 16 MB di memoria flash seriale SiP (System-in-Package). Tuttavia, dopo aver caricato il sistema operativo Linux, rimangono circa 512 KB di SRAM per eseguire un'applicazione Azure Sphere, con 256 KB disponibili durante l'esecuzione. La documentazione disponibile indica che, in alcuni casi, si potrebbe riscontrare una certa flessibilità relativamente a questi limiti.
Fattore chiave: bassa potenza
La bassa potenza è ovviamente un fattore chiave per la scelta delle piattaforme per applicazioni IoT. Il modello MT3620 richiede tra 0,01 mA e 0,02 mA per la sua modalità di risparmio energia più bassa in cui è operativo solo l'orologio in tempo reale (RTC). Il consumo di energia più elevato si verifica nei casi in cui viene utilizzata l'IC interna per la modalità di risparmio energia (PMIC). La riattivazione da questa modalità a bassa potenza richiede solo 24 ms, compresi il blocco PLL e l'avvio dell'oscillatore al cristallo. Con il Wi-Fi in modalità di sonno leggero, il consumo di energia si attesta sui 220 mA (al massimo 380 mA nel peggiore dei casi), raggiungendo i 520 mA (750 mA nel peggiore dei casi) con tutte le funzioni operative.
La guida introduttiva è semplificata poiché i produttori seguono la tendenza di associare piccoli SBC (Single Board Computer) con connettori che offrono una semplice connettività tramite shield plug-on. Il kit di sviluppo Azure Sphere MT3620 include due antenne Wi-Fi incorporate insieme a due connettori per antenne esterne. L'accesso alle periferiche su chip viene raggiunto tramite due file di doppini. La scheda include, inoltre, alcuni pulsanti di input, un pulsante di reset del sistema, LED utente e di stato e un connettore micro-USB che serve per fornire l'alimentazione e un'interfaccia per il debug.
Ambiente di sviluppo integrato Visual Studio
Il dispositivo è programmato e sottoposto a debug tramite l'ambiente di sviluppo integrato Visual Studio di Microsoft insieme al componente Azure Sphere SDK. Il runtime dell'applicazione è basato su un sottoinsieme di standard POSIX e costituito da librerie che forniscono accesso alle periferiche, con altre funzionalità accessibili tramite i servizi di runtime. L'I/O generico o la comunicazione interprocesso (IPC) sono bloccati a causa della configurazione del sistema di sicurezza. Tuttavia, dopo l'autenticazione con Azure Sphere, i codici applicativi possono interagire con i servizi cloud e utilizzare le librerie http(s) fornite.
L'approccio allo sviluppo del software funziona in modo leggermente diverso rispetto a quello di una MCU bare metal. Lo sviluppatore deve configurare un account Microsoft Azure, quindi richiedere il dispositivo, ossia associarlo con il tenant di Azure Sphere. Si tratta di un processo una tantum di tipo irreversibile. Dopo aver eseguito questa operazione, si consiglia di configurare la connessione Wi-Fi in quanto gli aggiornamenti al sistema operativo Azure Sphere vengono scaricati per l'installazione tramite questo collegamento. Questa operazione viene eseguita ogni 24 ore per mantenere il sistema aggiornato.
La scheda viene fornita in uno stato bloccato, pertanto non è possibile caricarvi codici. La IDE fornisce un'interfaccia della riga di comando tramite cui la scheda può essere sbloccata per la programmazione, dopodiché lo sviluppo del codice procede in modo molto simile a quanto effettuato dai tool di sviluppo incorporati. Le librerie software includono anche una funzionalità di registrazione completa per supportare il debug e l'analisi dei guasti.
La prototipazione rapida richiede un metodo per costruire velocemente l'hardware su una piattaforma programmabile allo scopo di attuare un'idea. A tal fine, lo starter kit Grove per Azure Sphere fornisce la soluzione. Il kit include uno shield con sei connettori per semplificare il collegamento del sensore in esso contenuto e sette schede di ingresso/uscita, che includono elementi come ad esempio un display OLED, un sensore ottico, un relè, un pulsante di comando e un sensore di temperatura. Ciascuna di esse è accuratamente separata e include un cavo di collegamento insieme a una descrizione della funzionalità del modulo e delle specifiche elettriche.
Semplificare la sicurezza
Dopo anni di sensazionalismo intorno all'IoT e a tutti i vari segmenti di mercato e spazi di applicazione che ne avrebbero tratto vantaggio, sembra che vi sia finalmente una piattaforma in grado di semplificare il suo aspetto più complesso: la sicurezza. L'approccio di Azure Sphere di integrare un sistema di sicurezza nell'hardware e collegarlo ad una soluzione cloud protetta assicura che il solito compromesso tra funzionalità delle applicazioni e sicurezza non costituisca più un punto di discussione. Inoltre, affidando il rilevamento delle minacce ad una piattaforma che le gestisce su base quotidiana, gli sviluppatori e i produttori possono concentrarsi sulla differenziazione dei prodotti sapendo di poter far fronte ai problemi legati alla sicurezza.