Piattaforma applicativaApplication platform

Le applicazioni eseguite su un dispositivo Azure Sphere operano in un contenitore all'interno di una sandbox.Applications that run on a Azure Sphere device operate in a sandboxed container. Questo ambiente è progettato per garantire la protezione di software e dati ed evitare l'interruzione del servizio.This environment is designed to maintain the security of software and data and to prevent disruption of service.

La figura mostra gli elementi software della piattaforma applicativa.The figure shows the software elements of the application platform. Gli elementi forniti da Microsoft sono grigi, mentre quelli forniti dal produttore del prodotto sono bianchi.Microsoft-supplied elements are gray, and manufacturer-supplied elements are white.

Piattaforma applicativa

Piattaforma applicativa di Azure SphereAzure Sphere Application Platform

La piattaforma applicativa supporta due ambienti operativi: Normal World e Secure World.The application platform supports two operating environments: Normal World and Secure World. Le applicazioni Azure Sphere sono eseguite in un contenitore di applicazioni nella modalità utente di Normal World e hanno accesso alle librerie di Azure Sphere e a un set limitato di servizi del sistema operativo.Azure Sphere applications run in an application container in Normal World user mode and have access to the Azure Sphere libraries and a limited set of OS services. Il kernel Linux personalizzato sottostante, che include i driver del dispositivo forniti da Microsoft, viene eseguito nella modalità di supervisione in Normal World, mentre il monitoraggio di sicurezza viene eseguito in Secure World.The underlying custom Linux kernel, which includes Microsoft-supplied device drivers, runs in Normal World supervisor mode, and the Security Monitor runs in Secure World. Solo il codice fornito da Microsoft può essere eseguito in modalità di supervisione o in Secure World.Only Microsoft-supplied code can run in supervisor mode or in Secure World.

Le applicazioni sono eseguite in contenitori che supportano un subset dell'ambiente POSIX.Applications run in containers that support a subset of the POSIX environment. Le funzioni di sistema sono accessibili solo tramite le librerie di Azure Sphere e i servizi di runtime. Il set completo delle funzioni di sistema POSIX non è disponibile.System functions are accessible only through the Azure Sphere libraries and run-time services; the complete set of POSIX system functions is not available.

A livello di hardware (non mostrato nel diagramma), un sottosistema di sicurezza fornisce una radice di attendibilità protetta basata su hardware.At the hardware level (not shown in the diagram), a security subsystem provides a hardware-based secure root of trust. All'avvio del dispositivo, il sottosistema di sicurezza convalida la protezione complessiva dell'hardware, quindi consente di visualizzare altri componenti solo dopo aver verificato che il firmware sia firmato correttamente.At device boot, the security subsystem validates overall hardware security, then brings up other components only after validating that their firmware is correctly signed. Allo stesso modo il firmware, prima di caricarlo, convalida la sicurezza del livello di software successivo, che a sua volta verifica il livello superiore.Similarly, the firmware validates the security of the next layer of software before loading it, and each subsequent layer of software validates the layer above it.

Sicurezza dell'applicazioneApplication security

La piattaforma applicativa di Azure Sphere è progettata per garantire la sicurezza del dispositivo, dell'applicazione e dei relativi dati.The Azure Sphere application platform is designed to ensure the security of the device, the application, and its data. Le funzioni per la protezione delle applicazioni includono:Application security features include:

  • Accesso limitato a risorse esterneLimited access to external resources
  • Funzionalità dell'applicazioneApplication capabilities
  • Requisiti per la firmaSigning requirements
  • Funzionalità del dispositivoDevice capabilities

Accesso alle risorseAccess to resources

Per evitare interferenze dannose provenienti da software esterno, le applicazioni Azure Sphere hanno accesso esclusivamente alle librerie e ai servizi di runtime forniti da Microsoft.To prevent malicious interference from outside software, Azure Sphere applications have access only to libraries and run-time services that Microsoft provides. Le librerie sono limitate per garantire che la piattaforma rimanga protetta e facilmente aggiornabile.The libraries are restricted to ensure that the platform remains secure and can be easily updated. Tra gli altri vincoli, le librerie non supportano file diretti I/O, la comunicazione interprocesso (IPC) o l'accesso alla shell.They do not support direct file I/O, inter-process communication (IPC), or shell access, among other constraints.

Funzionalità dell'applicazioneApplication capabilities

Le funzionalità dell'applicazione sono le risorse richieste da un'applicazione.Application capabilities are the resources that an application requires. Tali funzionalità includono le periferiche GPIO e UART usate dall'applicazione, l'host internet a cui si connette e l'autorizzazione a modificare la configurazione Wi-Fi.Application capabilities include the GPIO and UART peripherals that the application uses, the internet hosts to which it connects, and permission to change the Wi-Fi configuration. Ogni applicazione deve disporre di un manifesto dell'applicazione in cui identificare le risorse.Every application must have an application manifest, which identifies these resources.

Requisiti per la firmaSigning requirements

Tutti i pacchetti immagine distribuiti in un dispositivo Azure Sphere devono essere firmati.All image packages deployed to an Azure Sphere device must be signed. Azure Sphere SDK e il comando azsphere image-package firmano i pacchetti immagine per i test usando la chiave di firma di un SDK.The Azure Sphere SDK and the azsphere image-package command sign image packages for testing by using an SDK signing key. I dispositivi Azure Sphere considerano attendibile questa chiave solo se è presente anche la funzionalità del dispositivo appDevelopment.Azure Sphere devices trust this key only if the appDevelopment device capability is also present.

Il servizio di sicurezza di Azure Sphere applica la firma di produzione ai pacchetti immagine quando vengono caricati nel cloud.The Azure Sphere Security Service production-signs image packages when you upload them to the cloud. I pacchetti immagine con la firma di produzione possono essere trasferiti localmente o caricati dal cloud.Production-signed image packages can be sideloaded or loaded from the cloud.

Funzionalità del dispositivoDevice capabilities

Una funzionalità del dispositivo consente all'utente di svolgere un'attività specifica del dispositivo.A device capability allows a user to perform a device-specific activity. Le funzionalità del dispositivo sono concesse dal servizio di sicurezza di Azure Sphere e sono archiviate nella memoria flash del chip di Azure Sphere.Device capabilities are granted by the Azure Sphere Security Service and are stored in flash memory on the Azure Sphere chip. Per impostazione predefinita, i chip di Azure Sphere non dispongono di nessuna funzionalità del dispositivo.By default, Azure Sphere chips have no device capabilities.

La funzionalità del dispositivo appDevelopment cambia il tipo di firma considerata attendibile dal dispositivo.The appDevelopment device capability changes the type of signing that the device trusts. Per impostazione predefinita, i dispositivi Azure Sphere considerano attendibili i pacchetti immagine firmati dal produttore, ma non quelli firmati tramite SDK.By default, Azure Sphere devices trust production-signed image packages but do not trust SDK-signed image packages. Di conseguenza, non è possibile trasferire localmente un pacchetto immagine firmato tramite SDK in un dispositivo Azure Sphere sprovvisto di questa funzionalità.As a result, you cannot sideload an SDK-signed image package to an Azure Sphere device that does not have this capability. Quando la funzionalità appDevelopment è presente, tuttavia, il dispositivo considera attendibili i pacchetti immagine firmati tramite SDK.When the appDevelopment capability is present, however, the device trusts SDK-signed image packages. Inoltre, la funzionalità consente all'utente di avviare, arrestare, eseguire il debug o rimuovere un'applicazione dal dispositivo.In addition, it enables a user to start, stop, debug, or remove an application from the device. In pratica, la funzionalità di sviluppo dell'applicazione deve essere presente nel dispositivo prima di poter:In summary, the application development capability must be present on the device before you can:

  • Trasferire localmente un pacchetto immagine creato con Visual Studio o con il comando azsphere image-package.Sideload an image package that was built by Visual Studio or the azsphere image-package command.
  • Avviare, arrestare, eseguire il debug o rimuovere un pacchetto immagine dal dispositivo Azure Sphere, indipendentemente dal tipo di firma del pacchetto immagine.Start, stop, debug, or remove an image package from the Azure Sphere device, regardless of how the image package is signed.

Il comando azsphere device enable-development crea e applica la funzionalità appDevelopment e impedisce al dispositivo di ricevere aggiornamenti dell'applicazione cloud.The azsphere device enable-development command creates and applies the appDevelopment capability and prevents the device from receiving cloud application updates.