Piattaforma delle applicazioni

Le applicazioni eseguite in un dispositivo Azure Sphere operano in un contenitore in modalità sandbox. Questo ambiente è progettato per mantenere la sicurezza di software e dati e per evitare interruzioni del servizio.

La figura mostra gli elementi software della piattaforma dell'applicazione. Gli elementi forniti da Microsoft sono grigi e gli elementi forniti dal produttore sono bianchi.

Piattaforma delle applicazioni

Piattaforma applicativa Azure Sphere

La piattaforma applicativa supporta due ambienti operativi: Normal World e Secure World. Le applicazioni Azure Sphere vengono eseguite in un contenitore di applicazioni in modalità utente Normal World e hanno accesso alle librerie Azure Sphere e a un set limitato di servizi del sistema operativo. Il kernel Linux personalizzato sottostante, che include i driver di dispositivo forniti da Microsoft, viene eseguito in modalità supervisore normal world e il monitoraggio della sicurezza viene eseguito in Secure World. Solo il codice fornito da Microsoft può essere eseguito in modalità supervisore o in Secure World.

Le applicazioni vengono eseguite in contenitori che supportano un sottoinsieme dell'ambiente POSIX. Le funzioni di sistema sono accessibili solo tramite le librerie Azure Sphere e i servizi di runtime; il set completo di funzioni di sistema POSIX non è disponibile.

A livello di hardware (non mostrato nel diagramma), un sottosistema di sicurezza fornisce una radice di trust sicura basata sull'hardware. All'avvio del dispositivo, il sottosistema di sicurezza convalida la sicurezza hardware complessiva, quindi visualizza altri componenti solo dopo aver convalidato che il firmware è firmato correttamente. Allo stesso modo, il firmware convalida la sicurezza del livello successivo del software prima di caricarlo e ogni livello di software successivo convalida il livello al di sopra di esso.

Sicurezza delle applicazioni

La piattaforma dell'applicazione Azure Sphere è progettata per garantire la sicurezza del dispositivo, dell'applicazione e dei relativi dati. Le caratteristiche di sicurezza delle applicazioni includono:

  • Accesso limitato alle risorse esterne
  • Funzionalità dell'applicazione
  • Requisiti di firma
  • Funzionalità del dispositivo

Accesso alle risorse

Per evitare interferenze dannose da software esterno, le applicazioni Azure Sphere hanno accesso solo alle librerie e ai servizi di runtime forniti da Microsoft. Le librerie sono limitate per garantire che la piattaforma rimanga sicura e possa essere facilmente aggiornata. Tra gli altri vincoli, non supportano l'I/O di file diretto, la comunicazione tra processi (IPC) o l'accesso alla shell.

Funzionalità dell'applicazione

Le funzionalità dell'applicazione sono le risorse necessarie a un'applicazione. Le funzionalità dell'applicazione includono le periferiche GPIO e UART utilizzate dall'applicazione, gli host Internet a cui si connette e l'autorizzazione per modificare la configurazione Wi-Fi. Ogni applicazione deve avere un manifesto dell'applicazione, che identifica queste risorse.

Requisiti di firma

Tutti i pacchetti di immagini distribuiti in un dispositivo Azure Sphere devono essere firmati. Azure Sphere SDK e [az sphere image-package](.. /reference/az sphere-image-package.md) command sign image packages for testing by using an SDK signing key. I dispositivi Azure Sphere si fidano di questa chiave solo se è presente anche la funzionalità Dispositivo di sviluppo dell'app.

I pacchetti di immagini con i segni di produzione del servizio azure sphere security quando vengono caricati nel cloud. I pacchetti di immagini con firma di produzione possono essere sideload o caricati dal cloud.

Funzionalità del dispositivo

Una funzionalità del dispositivo consente all'utente di eseguire un'attività specifica del dispositivo. Le funzionalità del dispositivo sono concesse dal servizio di sicurezza Azure Sphere e vengono archiviate nella memoria flash del chip Azure Sphere. Per impostazione predefinita, i chip Azure Sphere non hanno funzionalità del dispositivo.

AppLa funzionalità di sviluppo del dispositivo cambia il tipo di firma attendibile del dispositivo. Per impostazione predefinita, i dispositivi Azure Sphere considera attendibili i pacchetti di immagini firmati con firma di produzione, ma non i pacchetti di immagini firmati con SDK. Di conseguenza, non è possibile trasferire in sideload di un pacchetto di immagini firmato da SDK in un dispositivo Azure Sphere che non dispone di questa funzionalità. Quando la funzionalità appSviluppo è presente, tuttavia, il dispositivo considera attendibili i pacchetti di immagini firmati con SDK. Consente inoltre a un utente di avviare, arrestare, eseguire il debug o rimuovere un'applicazione dal dispositivo. In sintesi, la funzionalità di sviluppo di applicazioni deve essere presente nel dispositivo prima di poter:

  • Sideload an image package that was built by Visual Studio or the azsfera image-package command.
  • Avviare, arrestare, eseguire il debug o rimuovere un pacchetto di immagini dal dispositivo Azure Sphere, indipendentemente da come è firmato il pacchetto di immagini.

Il comando di abilitazione-sviluppo del dispositivo az sphere crea e applica la funzionalità appSviluppo e impedisce al dispositivo di ricevere gli aggiornamenti delle applicazioni cloud.