Condividi tramite


Gestore sicurezza di Azure IoT Edge

Si applica a:IoT Edge 1.5 segno di spunta IoT Edge 1.5

Importante

IoT Edge 1.5 LTS è la versione supportata. IoT Edge 1.4 LTS è di fine vita a partire dal 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Il gestore della sicurezza di Azure IoT Edge è un nucleo di sicurezza ben definito che protegge il dispositivo IoT Edge e i relativi componenti astraendo l'hardware sicuro basato su silicio. Il responsabile della sicurezza si concentra sulla protezione avanzata e offre un punto di integrazione della tecnologia ai produttori di apparecchiature originali (OEM).

Il responsabile della sicurezza astrae l'hardware del processore sicuro in un dispositivo IoT Edge e offre un framework di estendibilità per servizi di sicurezza aggiuntivi.

Il responsabile della sicurezza di IoT Edge difende l'integrità del dispositivo IoT Edge e delle relative operazioni software. Il gestore della sicurezza trasferisce il trust dalla radice hardware sottostante dell'hardware di trust (se disponibile) per eseguire il bootstrap del runtime IoT Edge e monitorare le operazioni in corso. Il responsabile della sicurezza di IoT Edge funziona con hardware sicuro in siliconi (se disponibile) per offrire le garanzie di sicurezza più elevate possibili.

Il gestore della sicurezza di IoT Edge offre anche un framework sicuro per le estensioni del servizio di sicurezza tramite moduli a livello di host. Questi servizi includono il monitoraggio della sicurezza e gli aggiornamenti che richiedono agenti all'interno del dispositivo con accesso con privilegi ad alcuni componenti del dispositivo. Il framework di estendibilità garantisce che queste integrazioni rispettino sempre la sicurezza complessiva del sistema.

Il responsabile della sicurezza di IoT Edge è responsabile di attività come:

  • Inizializzare il dispositivo Azure IoT Edge
  • Controllare l'accesso alla radice di fiducia dell'hardware del dispositivo tramite i servizi di certificazione
  • Monitorare l'integrità delle operazioni IoT Edge in fase di esecuzione
  • Effettuare il provisioning dell'identità del dispositivo e gestire la transizione dell'attendibilità, se necessario
  • Assicurati che gli agenti client per servizi come Aggiornamento dei dispositivi per l'hub IoT e Microsoft Defender per IoT funzionino in modo sicuro

Il gestore della sicurezza di IoT Edge ha tre componenti:

  • Runtime del modulo IoT Edge
  • Astrazioni del modulo di protezione hardware (HSM) tramite implementazioni standard come PKCS#11 e Trusted Platform Module (TPM)
  • Radice di fiducia in silicio hardware o HSM (facoltativo, ma altamente consigliato)

Modifiche apportate alla versione 1.2 e successive

Nelle versioni 1.0 e 1.1 di IoT Edge, un componente denominato daemon di sicurezza gestisce le operazioni di sicurezza logiche del gestore della sicurezza. Nella versione 1.2 diverse responsabilità principali passano al sottosistema di sicurezza del servizio di gestione delle identità di Azure IoT . Dopo che queste attività di sicurezza vengono spostate dal daemon di sicurezza, il suo nome non corrisponde più al suo ruolo. Per riflettere meglio le operazioni di questo componente nella versione 1.2 e successive, viene rinominato in runtime del modulo.

Runtime del modulo IoT Edge

Il runtime del modulo IoT Edge delega l'attendibilità dal sottosistema di sicurezza del servizio identità Azure IoT per proteggere l'ambiente di runtime del contenitore IoT Edge. Un servizio, ora delegato al servizio identità IoT di Azure, è il servizio di registrazione e rinnovo dei certificati automatizzato tramite un server EST. Per informazioni sul funzionamento e la creazione di un server EST di esempio per un dispositivo IoT Edge, provare l'esercitazione Configurare la registrazione su Server trasporto sicuro per Azure IoT Edge .

Il runtime del modulo è responsabile delle operazioni di sicurezza logiche del gestore della sicurezza. Rappresenta una parte significativa della base di elaborazione attendibile del dispositivo IoT Edge. Il runtime del modulo usa i servizi di sicurezza del servizio di gestione delle identità IoT, che a sua volta è avanzata dalla scelta del modulo HSM (Hardware Security Module) del produttore del dispositivo. È consigliabile usare moduli di protezione hardware per la protezione avanzata dei dispositivi.

Principi di progettazione

IoT Edge segue due principi fondamentali: ottimizzare l'integrità operativa e ridurre al minimo il bloat e la varianza.

Ottimizzare l'integrità operativa

Il runtime del modulo IoT Edge opera con l'integrità più elevata possibile all'interno della funzionalità di difesa di una determinata radice di hardware attendibile. Con l'integrazione corretta, l'hardware della radice di attendibilità misura e monitora il daemon di sicurezza in modo statico e in fase di esecuzione per impedire la manomissione.

L'accesso fisico dannoso ai dispositivi è sempre una minaccia in IoT. La radice dell'hardware di trust svolge un ruolo importante per difendere l'integrità del dispositivo IoT Edge. La radice di attendibilità dell'hardware si presenta in due varianti:

  • Elementi sicuri per la protezione di informazioni riservate come segreti e chiavi di crittografia.
  • Proteggere le enclave per la protezione di segreti come chiavi e carichi di lavoro sensibili, ad esempio modelli di Machine Learning riservati e operazioni di misurazione.

Esistono due tipi di ambienti di esecuzione per l'uso della radice di attendibilità dell'hardware:

  • L'ambiente di esecuzione standard o avanzato (REE, Rich Execution Environment), che si basa sull'uso di elementi sicuri per proteggere le informazioni riservate.
  • L'ambiente di esecuzione attendibile (TEE, Trusted Execution Environment), che si basa sull'uso della tecnologia delle enclavi sicure per proteggere le informazioni riservate e offrire la protezione per l'esecuzione del software.

Per i dispositivi che usano enclave sicuri come radice di attendibilità hardware, la logica sensibile all'interno del runtime del modulo IoT Edge deve trovarsi all'interno dell'enclave. Le parti non sensibili del runtime del modulo possono trovarsi all'esterno dell'ambiente tee. In tutti i casi, è consigliabile che i produttori di progettazione originali (ODM) e i produttori di apparecchiature originali (OEM) estendono l'attendibilità dal modulo HSM per misurare e difendere l'integrità del runtime del modulo IoT Edge all'avvio e al runtime.

Ridurre al minimo il software bloat e la varianza

Un altro principio di base per il runtime del modulo IoT Edge consiste nel ridurre al minimo la varianza. Per il livello di attendibilità più elevato, il runtime del modulo IoT Edge può essere strettamente associato alla radice dell'attendibilità dell'hardware del dispositivo e funziona come codice nativo. In questi casi, è comune aggiornare il software IoT Edge tramite la radice hardware dei percorsi di aggiornamento sicuri dell'attendibilità anziché i meccanismi di aggiornamento del sistema operativo, che possono risultare difficili. Il rinnovo della sicurezza è consigliato per i dispositivi IoT, ma requisiti di aggiornamento eccessivi o payload di aggiornamento di grandi dimensioni possono espandere la superficie delle minacce in molti modi. Ad esempio, si potrebbe essere tentati di ignorare alcuni aggiornamenti per ottimizzare la disponibilità dei dispositivi. Di conseguenza, la progettazione del runtime del modulo IoT Edge è concisa per mantenere la base di elaborazione attendibile ben isolata di piccole dimensioni per incoraggiare gli aggiornamenti frequenti.

Architettura

Il runtime del modulo IoT Edge sfrutta qualsiasi radice hardware disponibile della tecnologia trust per la protezione avanzata. Consente anche la suddivisione tra un ambiente di esecuzione standard/avanzato (REE) e un ambiente di esecuzione attendibile (TEE), quando le tecnologie hardware offrono ambienti di quest'ultimo tipo. Le interfacce specifiche del ruolo consentono ai componenti principali di assicurare l'integrità del dispositivo IoT Edge e delle relative operazioni.

Architettura di runtime del modulo Azure IoT Edge

Interfaccia cloud

L'interfaccia cloud consente l'accesso ai servizi cloud che integrano la sicurezza dei dispositivi. Ad esempio, questa interfaccia consente l'accesso al servizio Device Provisioning per la gestione del ciclo di vita delle identità dei dispositivi.

API di gestione

L'API di gestione viene chiamata dall'agente IoT Edge durante la creazione/avvio/arresto/rimozione di un modulo IoT Edge. Il runtime del modulo archivia le "registrazioni" per tutti i moduli attivi. Queste registrazioni eseguono il mapping dell'identità di un modulo ad alcune proprietà del modulo. Ad esempio, queste proprietà del modulo includono l'identificatore del processo (pid) del processo in esecuzione nel contenitore e l'hash del contenuto del contenitore Docker.

Queste proprietà vengono usate dall'API del carico di lavoro per verificare che il chiamante sia autorizzato per un'azione.

L'API di gestione è un'API con privilegi, che può essere chiamata solo dall'agente di IoT Edge. Poiché il runtime del modulo IoT Edge esegue il bootstrap e avvia l'agente IoT Edge, verifica che l'agente IoT Edge non sia stato manomesso, quindi può creare una registrazione implicita per l'agente IoT Edge. Lo stesso processo di attestazione impiegato dall'API viene usato anche per limitare l'accesso all'API di gestione solo all'agente di IoT Edge.

API del contenitore

L'API contenitore interagisce con il sistema contenitore in uso per la gestione dei moduli, ad esempio Moby o Docker.

API del carico di lavoro

L'API del carico di lavoro è accessibile a tutti i moduli. Fornisce una prova di identità, come un certificato X509 o un token firmato del modulo di protezione hardware, e il bundle di attendibilità corrispondente a un modulo. Il bundle di attendibilità contiene i certificati della CA per tutti gli altri server che i moduli devono considerare attendibili.

Il runtime del modulo IoT Edge usa un processo di attestazione per proteggere questa API. Quando un modulo chiama questa API, il runtime del modulo tenta di trovare una registrazione per l'identità. Se l'operazione riesce, usa le proprietà della registrazione per misurare il modulo. Se il risultato del processo di misurazione corrisponde alla registrazione, viene generata una nuova prova di identità. I certificati della CA (bundle di attendibilità) corrispondenti vengono restituiti al modulo. Il modulo usa questo certificato per connettersi all'hub IoT o ad altri moduli oppure per avviare un server. Quando il token firmato o il certificato sta per scadere, è responsabilità del modulo richiedere un nuovo certificato.

Integrazione e manutenzione

Microsoft gestisce la base di codice principale per il runtime del modulo IoT Edge e il servizio di gestione delle identità di Azure IoT in GitHub.

Quando si legge la codebase di IoT Edge, tenere presente che il runtime del modulo si è evoluto dal daemon di sicurezza. La codebase può comunque contenere riferimenti al daemon di sicurezza.

Installazione e aggiornamenti

L'installazione e gli aggiornamenti del runtime del modulo IoT Edge vengono gestiti tramite il sistema di gestione dei pacchetti del sistema operativo. I dispositivi IoT Edge con radice hardware di attendibilità devono fornire protezione avanzata aggiuntiva all'integrità del runtime del modulo gestendone il ciclo di vita tramite i sistemi di gestione di avvio e aggiornamenti sicuri. I produttori di dispositivi devono esplorare queste strade in base alle funzionalità dei rispettivi dispositivi.

Controllo delle versioni

Il runtime di IoT Edge tiene traccia e segnala la versione del runtime del modulo IoT Edge. La versione è restituita tramite l'attributo runtime.platform.version della proprietà segnalata del modulo dell'agente di IoT Edge.

Modulo di protezione hardware

Il gestore della sicurezza di IoT Edge usa gli standard di interfaccia Trusted Platform Module e PKCS#11 per integrare moduli di protezione hardware. Questi standard consentono di integrare quasi tutti i moduli di protezione hardware, inclusi quelli con interfacce proprietarie. Usare i moduli di protezione hardware per rafforzare la sicurezza.

Hardware della radice di attendibilità per il processore sicuro

La sicurezza del silicio garantisce la fiducia nell'hardware dei dispositivi IoT Edge. Il silicio sicuro include il Modulo Piattaforma Fidato (TPM), l'Elementi Sicuri integrati (eSE), Arm TrustZone, Intel SGX e tecnologie personalizzate di silicio sicuro. L'uso di una radice di fiducia sicura basata su silicio nei dispositivi è importante a causa delle minacce che derivano dall'accesso fisico ai dispositivi IoT.

Il responsabile della sicurezza di IoT Edge identifica e isola i componenti che proteggono la sicurezza e l'integrità della piattaforma Azure IoT Edge per la protezione avanzata personalizzata. I produttori di dispositivi e altre terze parti possono usare funzionalità di sicurezza personalizzate disponibili con l'hardware del dispositivo.

Informazioni su come rafforzare il gestore della sicurezza di Azure IoT con TPM (Trusted Platform Module) usando software o TPM virtuale:

Creare ed effettuare il provisioning di un dispositivo IoT Edge con un TPM virtuale in Linux o Linux in Windows.

Passaggi successivi

Altre informazioni sulla protezione dei dispositivi IoT Edge sono disponibili nei post di blog seguenti: