Che cos'è Azure Sphere?
Azure Sphere è una piattaforma applicativa sicura di alto livello, con funzionalità di comunicazione e sicurezza predefinite per i dispositivi connessi a Internet. È costituito da un'unità microcontroller (MCU) crossover, sicura e connessa, un sistema operativo personalizzato basato su Linux di alto livello e un servizio di sicurezza basato sul cloud che garantisce sicurezza continua e rinnovabile.
Il microcontroller Azure Sphere integra le funzionalità di elaborazione in tempo reale con la possibilità di eseguire un sistema operativo di alto livello. Un microcontroller Azure Sphere, con il sistema operativo e la piattaforma per applicazioni, consente la creazione di dispositivi sicuri connessi a Internet che possono essere aggiornati, controllati, monitorati e gestiti da remoto. Un dispositivo connesso che include un MCU di Azure Sphere, insieme o al posto di una MCU esistente, offre una maggiore sicurezza, produttività e opportunità. Ad esempio:
- Un ambiente applicativo protetto, connessioni autenticate e uso esplicito di periferiche riduce al minimo i rischi di sicurezza dovuti allo spoofing, al software non autorizzato o agli attacchi Denial of Service, tra gli altri.
- Gli aggiornamenti software possono essere distribuiti automaticamente dal cloud in qualsiasi dispositivo connesso, per correggere problemi, offrire nuove funzionalità o contrastare i metodi di attacco emergenti, migliorando così la produttività del personale di supporto.
- I dati sull'uso del prodotto possono essere segnalati al cloud tramite una connessione protetta per facilitare la diagnosi dei problemi e la progettazione di nuovi prodotti, aumentando così le possibilità del servizio prodotto, le interazioni positive con i clienti e lo sviluppo futuro.
Il servizio di sicurezza di Azure Sphere è un aspetto integrale di Azure Sphere. Mediante questo servizio, gli MCU di Azure Sphere si connettono in modo sicuro al cloud e al Web. Il servizio assicura che il dispositivo venga avviato solo con una versione autorizzata di software originali approvati. Fornisce inoltre un canale protetto tramite il quale Microsoft può scaricare e installare automaticamente gli aggiornamenti del sistema operativo nei dispositivi distribuiti nel campo per attenuare i problemi di sicurezza. Non è richiesto alcun intervento da parte del produttore o dell'utente finale, risolvendo così un comune problema di sicurezza.
Nota
Azure Sphere fa riferimento all'interfaccia basata su PAPI come Azure Sphere (legacy) e all'interfaccia integrata di Azure Resource Manager come Azure Sphere (integrato).
Scenario di Azure Sphere
Per informazioni sul funzionamento di Azure Sphere in un'impostazione reale, prendere in considerazione questo scenario.
Contoso, Ltd., è un produttore di elettrodomestici che incorpora un microcontroller di Azure Sphere nelle lavastoviglie. La lavastoviglie DW100 associa il microcontroller con diversi sensori e un'applicazione di onboarding di alto livello in esecuzione sul microcontroller di Azure Sphere. L'applicazione comunica con il servizio di sicurezza di Azure Sphere e con i servizi cloud di Contoso. Il diagramma seguente illustra questo scenario:
Lavastoviglie connesse alla rete di Contoso
A partire dall'angolo superiore sinistro e procedendo in senso orario:
Microsoft rilascia gli aggiornamenti per il sistema operativo Azure Sphere tramite il servizio di sicurezza per Azure Sphere.
Il settore progettazione di prodotti di Contoso rilascia gli aggiornamenti per l'applicazione di DW100 tramite il servizio di sicurezza di Azure Sphere.
Il servizio di sicurezza di Azure Sphere distribuisce in modo sicuro il sistema operativo aggiornato e il software applicativo di Contoso DW100 nelle lavastoviglie nelle ubicazioni degli utenti finali.
L’assistenza per le lavastoviglie di Contoso comunica con il servizio di sicurezza di Azure Sphere per determinare quale versione del software Azure Sphere e del software applicativo DW100 eseguire su ogni dispositivo dell'utente finale e per raccogliere i dati di segnalazione degli errori che sono stati segnalati al servizio. L’assistenza per le lavastoviglie di Contoso comunica anche con il servizio cloud di Contoso per informazioni aggiuntive.
I servizi cloud di Contoso supportano le applicazioni per la risoluzione dei problemi, l’analisi dei dati e l'interazione dei clienti. I servizi cloud di Contoso possono essere ospitati da Microsoft Azure, dal servizio cloud di un altro fornitore o dal cloud di Contoso.
I modelli Contoso DW100 nelle ubicazioni degli utenti finali scaricano il software del sistema operativo e applicativo aggiornato tramite la connessione al servizio di sicurezza di Azure Sphere. Inoltre, possono comunicare con l'applicazione del servizio cloud di Contoso per segnalare dati aggiuntivi.
Ad esempio, i sensori sulla lavastoviglie potrebbe monitorare la temperatura dell'acqua, la temperatura di asciugatura e il livello del brillantante, quindi caricare questi dati nei servizi cloud di Contoso, in cui verranno analizzati da un'applicazione per individuare potenziali problemi. Se la temperatura di asciugatura risulta insolitamente calda o fredda, potrebbe essere presente una parte difettosa. Pertanto, Contoso esegue la diagnostica in modalità remota e invia una notifica al cliente che sono necessarie operazioni di riparazione. Se la lavastoviglie è coperta da garanzia, l'applicazione del servizio cloud potrebbe anche verificare che il negozio locale del cliente abbia la parte sostitutiva, riducendo in tal modo le visite per la manutenzione e i requisiti di inventario. Analogamente, se il livello dell'agente di risciacquo è basso, la lavastoviglie potrebbe segnalare al cliente di acquistare altro agente di risciacquo direttamente dal produttore.
Tutte le comunicazioni avvengono su connessioni protette e autenticate. Il personale di supporto e di progettazione di Contoso può visualizzare i dati tramite il servizio di sicurezza di Azure Sphere, le funzionalità di Microsoft Azure o un'applicazione di servizio cloud specifica di Contoso. Inoltre, Contoso può fornire applicazioni web e applicazioni per dispositivi mobili per i clienti, con cui i proprietari della lavastoviglie possono richiedere assistenza, monitorare l'utilizzo delle risorse della lavastoviglie o interagire con l'azienda.
Attraverso gli strumenti di distribuzione di Azure Sphere, Contoso indirizza ogni aggiornamento software dell'applicazione al modello di lavastoviglie appropriato e il servizio di sicurezza di Azure Sphere distribuisce gli aggiornamenti software ai dispositivi corretti. Sulla lavastoviglie è possibile installare esclusivamente aggiornamenti software firmati e verificati.
Azure Sphere e le sette proprietà dei dispositivi a sicurezza elevata
Uno dei principali obiettivi della piattaforma Azure Sphere è di fornire sicurezza di alto valore a un costo ridotto, in modo che i dispositivi con tecnologia microcontroller, in grado di influire sui prezzi, possano connettersi in modo sicuro e affidabile a Internet. Dato che giocattoli connessi alla rete, appliance e altri dispositivi consumer sono sempre più diffusi, la protezione è fondamentale. Non solo è necessario che l'hardware del dispositivo sia protetto, ma anche il software e le connessioni cloud devono essere sicure. Una lacuna della sicurezza, in un punto qualsiasi dell'ambiente operativo, minaccia l'intero prodotto e potenzialmente qualunque cosa e chiunque nelle vicinanze.
Sulla base di decenni di esperienza di Microsoft nella sicurezza di Internet, il team di Azure Sphere ha identificato sette proprietà dei dispositivi altamente sicuri. La piattaforma Azure Sphere è progettata sulla base di queste sette proprietà:
Radice di attendibilità basata su hardware. Una radice di attendibilità basata sull'hardware garantisce che il dispositivo e l'identità relativa non possano essere separati e, pertanto, impedisce la falsificazione o lo spoofing del dispositivo. Ogni MCU (microcontroller) di Azure Sphere è identificato da una chiave di crittografia non falsificabile, generata e protetta dall'hardware del sottosistema di sicurezza Pluton, progettato da Microsoft. Ciò garantisce una radice di attendibilità dell'hardware, protetta e a prova di manomissione, dal produttore all'utente finale.
Difesa profonda. Una difesa profonda fornisce più livelli di sicurezza e, pertanto, consente più mitigazioni contro ogni minaccia. Ogni livello del software, all'interno della piattaforma Azure Sphere, verifica che il livello superiore sia protetto.
Trusted computing base ridotto. La maggior parte del software del dispositivo rimane al di fuori del trusted computing base, riducendo in tal modo la superficie di attacco. Solo il Monitor di sicurezza, Pluton runtime e il sottosistema Pluton, tutti protetti e forniti da Microsoft, sono in esecuzione sul trusted computing base.
Raggruppamenti dinamici. I raggruppamenti dinamici limitano la portata di qualsiasi singolo errore. Gli MCU Azure Sphere contengono contromisure in silicio, tra cui le firewall dell'hardware, per impedire la propagazione della violazione della sicurezza da un singolo componente agli altri componenti. Un ambiente di runtime, "sandbox" vincolato impedisce alle applicazioni di danneggiare il codice o i dati protetti.
Autenticazione senza password. L'uso dei certificati firmati e convalidati da una chiave di crittografia non falsificabile fornisce un sistema di autenticazione molto più efficace rispetto alle password. La piattaforma Azure Sphere richiede a ogni elemento software di riportare la firma. Le comunicazioni da dispositivo a cloud e da cloud a dispositivo richiedono un'ulteriore autenticazione, ottenuta con i certificati.
Segnalazione errori. Gli errori nel software o nell'hardware del dispositivo sono tipici degli attacchi di sicurezza emergenti; gli errori che causano un errore del dispositivo costituiscono un attacco Denial of Service. La comunicazione da dispositivo a cloud fornisce un avviso anticipato di potenziali errori. I dispositivi Azure Sphere possono segnalare automaticamente i dati operativi e gli errori a un sistema di analisi basato sul cloud e gli aggiornamenti e la manutenzione possono essere eseguiti in remoto.
Protezione rinnovabile. Il software del dispositivo viene aggiornato automaticamente per correggere le vulnerabilità note o le violazioni della sicurezza, senza richiedere alcun intervento da parte del produttore del prodotto o dell'utente finale. Il servizio di sicurezza di Azure Sphere aggiorna automaticamente le applicazioni e il sistema operativo di Azure Sphere.
Architettura di Azure Sphere
Lavorando congiuntamente, l'hardware, il software e il servizio di sicurezza di Azure Sphere forniscono approcci unici e integrati per la manutenzione, il controllo e la sicurezza dei dispositivi.
L'architettura hardware fornisce una base di elaborazione efficacemente protetta per i dispositivi connessi, consentendo di concentrarsi sul prodotto.
Analogamente, grazie a un kernel del sistema operativo personalizzato e protetto che viene eseguito sul monitoraggio di sicurezza scritto da Microsoft, l'architettura software consente di concentrare il lavoro richiesto per il software sulle funzionalità IoT e specifiche del dispositivo a valore aggiunto.
Il servizio di sicurezza di Azure Sphere supporta l'autenticazione, gli aggiornamenti software e la segnalazione degli errori tramite canali protetti da cloud a dispositivo e da dispositivo a cloud. Il risultato è un'infrastruttura di comunicazione sicura che garantisce che i prodotti eseguano il sistema operativo Azure Sphere più aggiornato. Per diagrammi di architettura ed esempi di architetture cloud, vedere Esplorare le architetture di Azure.
Architettura hardware
Un microcontroller crossover di Azure Sphere consiste in core multipli su un singolo die, come illustrato nella figura seguente.
Architettura hardware del microcontroller di Azure Sphere
Ciascun core con i relativi sottosistemi associati si trova in un differente dominio attendibile. La radice di attendibilità risiede nel sottosistema di sicurezza Pluton. Ogni livello dell'architettura presuppone che il livello superiore possa essere potenzialmente compromesso. All'interno di ogni livello, l'isolamento delle risorse e i raggruppamenti dinamici offrono una maggiore sicurezza.
Sottosistema di sicurezza Microsoft Pluton
Il sottosistema di sicurezza Pluton è la radice protetta di attendibilità basata su hardware (in silicio) per Azure Sphere. Include un processore core di sicurezza, motori di crittografia, un generatore di numeri casuali hardware, un generatore di chiavi pubbliche/private, la crittografia simmetrica e asimmetrica, il supporto per la verifica dell'ECDSA per l'avvio protetto e l'avvio misurato in silicio per supportare l'attestazione remota con un servizio cloud e varie misure contro la manomissione, tra cui un'unità di rilevamento dell'entropia.
Come parte del processo di avvio protetto, il sottosistema Pluton avvia vari componenti software. Fornisce inoltre servizi di runtime, elabora richieste da altri componenti del dispositivo e gestisce i componenti critici per le altre parti del dispositivo.
Core dell'applicazione di alto livello
Il core dell'applicazione di alto livello presenta un sottosistema ARM Cortex-A con un'unità di gestione della memoria completa (MMU). Consente la compartimentazione basata su hardware dei processi usando la funzionalità della zona di attendibilità ed è responsabile dell'esecuzione del sistema operativo, delle applicazioni di alto livello e dei servizi. Supporta due ambienti operativi: Normal World (NW), che esegue codice sia in modalità utente che in modalità supervisore, e Secure World (SW), che esegue solo Il monitoraggio della sicurezza fornito da Microsoft. Le applicazioni di alto livello vengono eseguite in modalità utente NW.
Core in tempo reale
I core in tempo reale includono un sottosistema I/O ARM Cortex-M in grado di eseguire applicazioni con funzionalità in tempo reale come codice bare metal o un sistema operativo in tempo reale (RTOS). Tali applicazioni possono eseguire il mapping di periferiche e comunicare con applicazioni di alto livello, ma non possono accedere direttamente a Internet.
Connettività e comunicazioni
Il primo microcontroller di Azure Sphere offre un trasmettitore Wi-Fi 802.11 b/g/n che opera nelle frequenze a 2,4 GHz e 5 GHz. Le applicazioni di alto livello possono configurare, usare ed eseguire query sul sottosistema di comunicazione wireless, ma non possono programmarlo in modo diretto. In aggiunta o in sostituzione del Wi-Fi, i dispositivi Azure Sphere predisposti possono comunicare su una rete Ethernet.
I/O multiplex
La piattaforma Azure Sphere supporta un'ampia gamma di funzionalità di I/O, che consentono di configurare i dispositivi incorporati per soddisfare i requisiti del prodotto e del mercato. È possibile eseguire il mapping delle periferiche di I/O al core dell'applicazione di alto livello o a un core per operazioni in tempo reale.
Firewall di Microsoft
I firewall hardware sono contromisure in silicio che forniscono protezione "sandbox" per garantire che le periferiche di I/O siano accessibili unicamente ai core a cui sono associate. I firewall impongono la compartimentazione, impedendo così a una minaccia alla sicurezza localizzata nel core di un'applicazione di alto livello di influire sull'accesso dei core in tempo reale alle rispettive periferiche.
RAM e memoria flash integrate
I microcontroller di Azure Sphere offrono un minimo di 4 MB di RAM integrata e 16 MB di memoria flash integrata.
Architettura software e sistema operativo
La piattaforma applicativa di alto livello esegue il sistema operativo di Azure Sphere insieme a un'applicazione di alto livello specifica del dispositivo, in grado di comunicare sia con Internet che con applicazioni con operazioni in tempo reale eseguite nei core per operazioni in tempo reale. La figura di seguito mostra gli elementi di questa piattaforma.
Gli elementi forniti da Microsoft sono visualizzati in grigio.
Piattaforma applicativa di alto livello
Microsoft fornisce e gestisce tutto il software diverso da quello delle applicazioni specifiche del dispositivo. Tutti i software che vengono eseguiti sul dispositivo, inclusa l'applicazione di alto livello, sono firmati dall'autorità di certificazione di Microsoft. Gli aggiornamenti dell'applicazione vengono distribuiti attraverso la pipeline attendibile di Microsoft e la loro compatibilità con l'hardware del dispositivo di Azure Sphere viene verificata di volta in volta prima dell'installazione.
Runtime dell'applicazione
Il runtime dell'applicazione fornito da Microsoft si basa su un subset dello standard POSIX. È costituito da librerie e servizi di runtime eseguiti in modalità utente NW. Questo ambiente supporta le applicazioni di alto livello create.
Le librerie di applicazioni supportano le funzionalità di rete, archiviazione e comunicazione richieste dalle applicazioni di alto livello, ma, tra gli altri vincoli, non supportano l'I/O diretto di file generici o l'accesso alla shell. Queste restrizioni assicurano che la piattaforma rimanga protetta e che Microsoft possa fornire aggiornamenti di sicurezza e manutenzione. Inoltre, le librerie vincolate forniscono una superficie dell'API stabile a lungo termine, in modo che il software del sistema possa essere aggiornato per migliorare la sicurezza mantenendo la compatibilità binaria per le applicazioni.
Servizi del sistema operativo
I servizi del sistema operativo ospitano il contenitore dell'applicazione di alto livello e sono responsabili della comunicazione con il servizio di sicurezza di Azure Sphere. Gestiscono l'autenticazione di rete e il firewall di rete per tutto il traffico in uscita. Durante lo sviluppo, i servizi del sistema operativo comunicano anche con un PC connesso e l'applicazione di cui viene eseguito il debug.
Kernel personalizzato basato su Linux
Il kernel personalizzato basato su Linux viene eseguito in modalità supervisore insieme a un caricatore di avvio. Il kernel viene attentamente ottimizzato per il footprint della memoria flash e della RAM del microcontroller di Azure Sphere. Fornisce una superficie per l'esecuzione interrompibile dei processi dello spazio dell'utente in spazi di indirizzi virtuali distinti. Il modello di driver espone le periferiche del microcontroller ai servizi del sistema operativo e alle applicazioni. Tra i driver di Azure Sphere sono inclusi Wi-Fi (che include uno stack di rete TCP/IP), UART, SPI, I2C e GPIO.
Monitoraggio di sicurezza
Il monitoraggio di sicurezza fornito da Microsoft viene eseguito in SW. È responsabile per la protezione degli hardware sensibili dal punto di vista della sicurezza come la memoria, la memoria flash e altre risorse condivise del microcontroller, oltre che per l'esposizione sicura dell'accesso limitato a tali risorse. Il monitoraggio di sicurezza stabilisce e controlla per mezzo di una porta logica l'accesso al sottosistema di sicurezza di Pluton e la radice di attendibilità dell'hardware e agisce come watchdog per l'ambiente NW. Il monitoraggio avvia il caricatore di avvio, espone i servizi di runtime all'ambiente NW e gestisce i firewall dell'hardware e altri componenti di silicio non accessibili per NW.
Servizio di sicurezza di Azure Sphere
Il servizio di sicurezza di Azure Sphere include tre componenti: autenticazione senza password, aggiornamento e segnalazione errori.
Autenticazione senza password. Il componente di autenticazione fornisce l'attestazione remota e l'autenticazione senza password. Il servizio di attestazione remoto si connette tramite un protocollo basato su challenge-response che usa la funzionalità di avvio misurato nel sottosistema di Pluton. Verifica che il dispositivo venga avviato non solo con il software corretto, ma anche con la versione corretta dello stesso.
Quando l'attestazione ha esito positivo subentra il servizio di autenticazione, che comunica tramite una connessione TLS protetta e rilascia un certificato che il dispositivo può presentare a un servizio Web come Microsoft Azure o il cloud privato di una società. Il servizio Web convalida la cantena di certificati, verificando pertanto che il dispositivo sia originale, che il relativo software sia aggiornato e che la fonte sia Microsoft. Il dispositivo può quindi connettersi in modo sicuro e protetto al servizio online.
Aggiornamento. Il servizio di aggiornamento distribuisce gli aggiornamenti automatici per il sistema operativo Azure Sphere e per le applicazioni. Il servizio di aggiornamento garantisce il funzionamento continuativo e consente la manutenzione e l'aggiornamento remoti del software applicativo.
Segnalazione errori. Il servizio segnalazione errori fornisce semplici report sugli arresti anomali per il software distribuito. Per ottenere dati avanzati, usare le funzionalità di analisi e report incluse in una sottoscrizione di Microsoft Azure.
Tutti i dati inattivi archiviati con il servizio di sicurezza di Azure Sphere vengono crittografati per impostazione predefinita. Il servizio di sicurezza archivia i dati in Archiviazione di Azure, Azure Cosmos DB e Azure Key Vault usando l'implementazione della crittografia dei dati inattivi per ogni servizio.