Gestore sicurezza di Azure IoT Edge

Si applica a:Segno di spunta IoT Edge 1.5 IoT Edge 1.5 Segno di spunta IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS è di fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Il gestore sicurezza di Azure IoT Edge è una tecnologia di sicurezza ben delimitata per la protezione del dispositivo IoT Edge e di tutti i relativi componenti tramite l'astrazione dell'hardware del processore di sicurezza. Il responsabile della sicurezza è il punto focale per la protezione avanzata e fornisce il punto di integrazione della tecnologia ai produttori di apparecchiature originali (OEM).

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

Il responsabile della sicurezza di IoT Edge mira a difendere l'integrità del dispositivo IoT Edge e di tutte le operazioni software intrinseche. 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 gestore sicurezza di IoT Edge è costituito da software che opera in combinazione con l'hardware del processore di sicurezza, se disponibile, per offrire le massime garanzie di sicurezza.

Inoltre, il gestore della sicurezza di IoT Edge fornisce 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 tali integrazioni rispettino in modo coerente la sicurezza complessiva del sistema.

Le responsabilità del gestore sicurezza di IoT Edge includono, in via esemplificativa:

  • Eseguire il bootstrap del dispositivo Azure IoT Edge.
  • Controllare l'accesso alla radice di attendibilità dell'hardware del dispositivo tramite i servizi notarili.
  • Monitorare l'integrità delle operazioni di IoT Edge in fase di esecuzione.
  • Effettuare il provisioning dell'identità del dispositivo e gestire la transizione dell'attendibilità, se applicabile.
  • Assicurarsi il funzionamento sicuro degli agenti client per i servizi, tra cui Aggiornamento dispositivi per hub IoT e Microsoft Defender per IoT.

Il gestore della sicurezza di IoT Edge è costituito da tre componenti:

  • Runtime del modulo IoT Edge
  • Astrazioni del modulo di protezione hardware (HSM) tramite implementazioni standard, ad esempio PKCS#11 e Trusted Platform Module (TPM)
  • Radice hardware silicon di trust 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 era responsabile delle operazioni di sicurezza logiche del gestore della sicurezza. Nell'aggiornamento alla versione 1.2 sono state delegate diverse responsabilità chiave al sottosistema di sicurezza del servizio di gestione delle identità di Azure IoT. Dopo che queste attività basate sulla sicurezza sono state rimosse dal daemon di sicurezza, il nome non ha più senso. Per riflettere meglio il lavoro svolto da questo componente nella versione 1.2 e successive, è stato 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 responsabile della sicurezza di IoT Edge implementa gli standard di interfaccia Trusted Platform Module e PKCS#11 per l'integrazione di moduli di protezione hardware. Con questi standard, praticamente qualsiasi modulo di protezione hardware, incluso quelli con interfacce proprietarie, può essere integrato. È consigliabile usare moduli di protezione hardware per la protezione avanzata.

Hardware della radice di attendibilità per il processore sicuro

Un processore sicuro è necessario per ancorare l'attendibilità nell'hardware del dispositivo IoT Edge. I processori sicuri possono essere di diversi tipi, come Trusted Platform Module (TPM), embedded Secure Element (eSE), Arm TrustZone, Intel SGX e tecnologie per processori sicuri personalizzate. L'uso di una radice di attendibilità con processori sicuri è fortemente consigliato, considerati i rischi associati alla possibilità di accesso fisico ai dispositivi IoT.

Il gestore sicurezza di IoT Edge ha come obiettivo di identificare e isolare i componenti che difendono la sicurezza e l'integrità della piattaforma Azure IoT Edge per la protezione avanzata personalizzata. Le terze parti, come i produttori di dispositivi, devono fare uso delle funzionalità di sicurezza personalizzate disponibili con l'hardware dei relativi dispositivi.

Informazioni su come rafforzare la protezione di Azure IoT con Trusted Platform Module (TPM) 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

Per altre informazioni sulla protezione dei dispositivi IoT Edge, leggere i post di blog seguenti: