Come rinnovare i certificati X.509 dei dispositivi
Durante il ciclo di vita di una soluzione IoT, è necessario rinnovare i certificati. Due dei principali motivi del rinnovo sono costituiti da una possibile violazione della sicurezza e dalle scadenze dei certificati.
Il rinnovo dei certificati è una procedura consigliata per la sicurezza che consente di proteggere il sistema in caso di violazione. Come parte della metodologia di presunzione delle violazioni, Microsoft sostiene che, parallelamente alle misure preventive, sia necessario mettere in atto processi di sicurezza reattivi. In questi processi di sicurezza deve essere incluso anche il rinnovo dei certificati dei dispositivi. La frequenza di rinnovo dei certificati dipende dalle esigenze di sicurezza della soluzione in uso. I clienti di soluzioni con dati altamente sensibili potrebbero rinnovare i certificati ogni giorno, mentre altri potrebbero rinnovarli ogni due anni.
Il rinnovo dei certificati dei dispositivi comporta l'aggiornamento del certificato archiviato nel dispositivo e dell'hub IoT. Successivamente, il dispositivo può eseguire nuovamente il provisioning con l'hub IoT usando il provisioning normale con il servizio Device Provisioning (DPS).
Esistono diversi modi per ottenere nuovi certificati per i dispositivi IoT. È ad esempio possibile ottenere certificati dalla factory dei dispositivi, generare certificati in modo autonomo oppure richiedere a terzi di gestire per proprio conto la creazione di certificati.
I certificati si assegnano reciprocamente una firma in modo da formare una catena da un certificato dell'autorità di certificazione (CA) radice a un certificato foglia. Un certificato di firma è il certificato usato per firmare il certificato foglia in fondo alla catena. Può essere un certificato della CA radice o un certificato intermedio nella catena. Per altre informazioni, vedere Certificati X.509.
Esistono due modi diversi per ottenere un certificato di firma. Il primo, consigliato per i sistemi di produzione, consiste nell'acquistare un certificato di firma da una CA radice. In questo modo la sicurezza viene concatenata fino a un'origine attendibile.
Il secondo modo consiste nel creare i propri certificati X.509 usando uno strumento come OpenSSL. Questa è un'ottima soluzione per eseguire il test dei certificati X.509 ma offre poche garanzie in termini di sicurezza. È consigliabile usare questo approccio solo a scopo di test a meno che non si preveda di agire come provider di CA indipendente.
I certificati di un dispositivo devono sempre essere archiviati in un luogo sicuro, ad esempio in un modulo di protezione hardware. La modalità di rinnovo dei certificati dei dispositivi dipende da come sono stati creati e installati nei dispositivi per la prima volta.
Se si sono ottenuti i certificati da una terza parte, è necessario verificare in che modo è previsto il rinnovo dei certificati. Il processo può essere incluso in un accordo con la terza parte oppure può essere offerto come servizio separato.
Se si gestiscono i certificati dei dispositivi in modo autonomo, sarà necessario creare una propria pipeline per l'aggiornamento dei certificati. Assicurarsi che i certificati foglia, sia vecchi che nuovi, abbiano lo stesso nome comune (CN). Con lo stesso CN, il dispositivo può procedere a un nuovo provisioning senza creare un record di registrazione duplicato.
I meccanismi di installazione di un nuovo certificato in un dispositivo comportano spesso uno degli approcci seguenti:
È possibile attivare i dispositivi interessati per inviare una nuova richiesta di firma del certificato all'autorità di certificazione (CA) dell'infrastruttura a chiave pubblica (PKI). In questo caso, ogni dispositivo sarà probabilmente in grado di scaricare il nuovo certificato del dispositivo direttamente dall'autorità di certificazione (CA).
È possibile conservare una richiesta di firma del certificato da ogni dispositivo e usarla per ottenere un nuovo certificato del dispositivo dall'autorità di certificazione (CA) dell'infrastruttura a chiave pubblica (PKI). In questo caso, è necessario eseguire il push del nuovo certificato in ogni dispositivo in un aggiornamento del firmware usando un servizio di aggiornamento OTA sicuro, ad esempio Aggiornamento dispositivi per hub IoT.
Il certificato di un dispositivo può essere aggiunto manualmente a un hub IoT. Il certificato può anche essere gestito automaticamente tramite un'istanza del servizio Device Provisioning. In questo articolo si presuppone che venga usata un'istanza del servizio Device Provisioning per supportare il provisioning automatico.
Quando è inizialmente sottoposto a provisioning automatico, il dispositivo viene avviato e contatta il servizio di provisioning. Quest'ultimo risponde eseguendo un controllo di identità prima di creare un'identità del dispositivo in un hub IoT con il certificato foglia del dispositivo come credenziale. Il servizio di provisioning indica quindi al dispositivo l'hub IoT a cui è assegnato e il dispositivo usa il proprio certificato foglia per autenticarsi e connettersi all'hub IoT.
Dopo l'assegnazione di un nuovo certificato foglia, il dispositivo non può più connettersi all'hub IoT perché usa un nuovo certificato, mentre l'hub IoT riconosce solo il dispositivo con il certificato precedente. Il tentativo di connessione del dispositivo ha quindi come risultato un errore di connessione "non autorizzata". Per risolvere questo errore, è necessario aggiornare la voce di registrazione per il dispositivo in base al nuovo certificato foglia. Al termine del nuovo provisioning del dispositivo, il servizio di provisioning può aggiornare di conseguenza le informazioni del registro dei dispositivi dell'hub IoT.
Una possibile eccezione a questo errore di connessione è data da uno scenario in cui è stato creato un gruppo di registrazioni per il dispositivo nel servizio di provisioning. In questo caso, anche se non si rinnova il certificato radice o intermedio nella catena di certificati del dispositivo, quest'ultimo viene riconosciuto se il nuovo certificato fa parte della catena di certificati definita nel gruppo di registrazioni. Se questo scenario si presenta come reazione a una violazione della sicurezza, è come minimo necessario non consentire i certificati dei dispositivi specifici nel gruppo che sono stati presumibilmente violati. Per altre informazioni, vedere Non consentire dispositivi specifici in un gruppo di registrazione
La modalità di gestione dell'aggiornamento della voce di registrazione dipende dall'uso di registrazioni singole o di gruppo. Anche le procedure consigliate variano a seconda che i certificati vengano rinnovati a causa di una violazione della sicurezza o della scadenza. Le sezioni seguenti descrivono come gestire questi aggiornamenti.
Se si aggiornano i certificati in risposta a una violazione della sicurezza, è consigliabile eliminare immediatamente tutti i certificati compromessi.
Se si stanno eseguendo il rollback dei certificati per gestire le scadenze dei certificati, è consigliabile usare la configurazione del certificato secondario per ridurre i tempi di inattività per i dispositivi che tentano di effettuare il provisioning. Successivamente, quando il certificato secondario si avvicina alla scadenza e deve essere eseguito il rollback, è possibile eseguire la rotazione usando la configurazione primaria. La rotazione tra il certificato primario e quello secondario consente così di ridurre il tempo di inattività per i dispositivi che tentano il provisioning.
L'aggiornamento delle voci di registrazione per i certificati rinnovati viene eseguito nella pagina Gestisci registrazioni. Per accedere alla pagina, seguire questa procedura:
Accedere al portale di Azure e passare all'istanza del servizio Device Provisioning con la voce di registrazione per il dispositivo.
Selezionare Gestisci registrazioni.
Selezionare la scheda Registrazioni singole e quindi la voce dell'ID registrazione nell'elenco.
Selezionare le caselle di controllo Rimuovi o sostituisci certificato primario/secondario se si vuole eliminare un certificato esistente. Selezionare l'icona della cartella di file per cercare e caricare i nuovi certificati.
Se alcuni certificati sono stati compromessi, è necessario rimuoverli il prima possibile.
Se uno dei certificati sta per scadere, è possibile mantenerlo attivo, purché il secondo certificato sia ancora attivo dopo tale data.
Al termine, selezionare Salva.
Se è stato rimosso un certificato compromesso dal servizio di provisioning, il certificato può comunque essere usato per stabilire connessioni del dispositivo all'hub IoT purché esista una registrazione del dispositivo. È possibile risolvere questo problema in due modi:
Il primo consiste nel passare manualmente all'hub IoT ed eliminare immediatamente la registrazione del dispositivo associata al certificato compromesso. Quando il dispositivo esegue nuovamente il provisioning con un certificato aggiornato, viene creata una nuova registrazione del dispositivo.
Il secondo consiste nell'usare il supporto reprovisioning per eseguire il reprovisioning del dispositivo allo stesso hub IoT. Questo approccio può essere usato per sostituire il certificato per la registrazione del dispositivo sull'hub loT. Per altre informazioni, vedere Come effettuare il reprovisioning dei dispositivi.
Per aggiornare una registrazione di gruppo in risposta a una violazione della sicurezza, è necessario eliminare immediatamente la CA radice compromessa o il certificato intermedio.
Se è in corso l'aggiornamento dei certificati per gestire le scadenze dei certificati, è consigliabile usare la configurazione del certificato secondario per evitare tempi di inattività per i dispositivi che tentano di effettuare il provisioning. Successivamente, quando il certificato secondario è prossimo alla scadenza e deve essere aggiornato, è possibile eseguire la rotazione per usare la configurazione primaria. La rotazione tra il certificato primario e quello secondario consente così di azzerare il tempo di inattività per i dispositivi che tentano il provisioning.
Selezionare Certificati nella sezione Impostazioni del menu di spostamento per l'istanza del servizio Device Provisioning.
Selezionare il certificato compromesso o scaduto dall'elenco e quindi selezionare Elimina. Confermare l'eliminazione immettendo il nome del certificato e selezionare OK.
Seguire la procedura illustrata in Configurare i certificati della CA verificati per aggiungere e verificare i nuovi certificati della CA radice.
Selezionare Gestisci registrazioni nella sezione Impostazioni del menu di spostamento per l'istanza del servizio Device Provisioning e selezionare la scheda Gruppi di registrazione.
Selezionare il nome del gruppo di registrazione dall'elenco.
Nella sezione Impostazioni certificato X.509 e selezionare il nuovo certificato CA radice per sostituire il certificato compromesso o scaduto oppure per aggiungerlo come certificato secondario.
Seleziona Salva.
Se è stato rimosso un certificato compromesso dal servizio di provisioning, il certificato può comunque essere usato per stabilire connessioni del dispositivo all'hub IoT purché esistano registrazioni del dispositivo. È possibile risolvere questo problema in due modi:
Il primo consiste nel passare manualmente all'hub IoT e rimuovere immediatamente le registrazioni del dispositivo associate al certificato compromesso. Quando i dispositivi eseguono nuovamente il provisioning con i certificati aggiornati, viene quindi creata una nuova registrazione del dispositivo per ognuno di essi.
Il secondo consiste nell'usare il supporto reprovisioning per eseguire il reprovisioning del dispositivo allo stesso hub IoT. Questo approccio può anche essere usato per sostituire i certificati per le registrazioni del dispositivo sull'hub loT. Per altre informazioni, vedere Come effettuare il reprovisioning dei dispositivi.
Selezionare Gestisci registrazioni nella sezione Impostazioni del menu di spostamento per l'istanza del servizio Device Provisioning e selezionare la scheda Gruppi di registrazione.
Selezionare il nome del gruppo dall'elenco.
Selezionare le caselle di controllo Rimuovi o sostituisci certificato primario/secondario se si vuole eliminare un certificato esistente. Selezionare l'icona della cartella di file per cercare e caricare i nuovi certificati.
Se alcuni certificati sono stati compromessi, è necessario rimuoverli il prima possibile.
Se uno dei certificati sta per scadere, è possibile mantenerlo attivo, purché il secondo certificato sia ancora attivo dopo tale data.
Ogni certificato intermedio deve essere firmato da un certificato CA radice verificato già aggiunto al servizio di provisioning. Per altre informazioni, vedere Certificati X.509.
Se è stato rimosso un certificato compromesso dal servizio di provisioning, il certificato può comunque essere usato per stabilire connessioni del dispositivo all'hub IoT purché esistano registrazioni del dispositivo. È possibile risolvere questo problema in due modi:
Il primo consiste nel passare manualmente all'hub IoT ed eliminare immediatamente la registrazione del dispositivo associata al certificato compromesso. Quando i dispositivi eseguono nuovamente il provisioning con i certificati aggiornati, viene quindi creata una nuova registrazione del dispositivo per ognuno di essi.
Il secondo consiste nell'usare il supporto reprovisioning per eseguire il reprovisioning del dispositivo allo stesso hub IoT. Questo approccio può anche essere usato per sostituire i certificati per le registrazioni del dispositivo sull'hub loT. Per altre informazioni, vedere Come effettuare il reprovisioning dei dispositivi.
Una volta aggiornato il certificato sia nel dispositivo che nel servizio Device Provisioning, il dispositivo può effettuare nuovamente il provisioning contattando il servizio Device Provisioning.
Un modo semplice per programmare un nuovo provisioning per un dispositivo consiste nel configurare il dispositivo in modo da contattare il servizio di provisioning per passare attraverso il flusso di provisioning, nel caso in cui il dispositivo riceva un errore di connessione "non autorizzata" durante il tentativo di connettersi all'hub IoT.
Un altro modo è quello di mantenere la validità dei certificati vecchi e nuovi per un breve intervallo di tempo e usare l'hub IoT per inviare un comando ai dispositivi in modo da ripeterne la registrazione tramite il servizio di provisioning per aggiornare le informazioni sulla relativa connessione all'hub IoT. Poiché ogni dispositivo può elaborare i comandi in modo diverso, è necessario programmare il dispositivo affinché sappia cosa fare quando viene richiamato il comando. Esistono diversi modi per inviare comandi al dispositivo tramite l'hub IoT ed è consigliabile usare metodi diretti o processi per avviare l'operazione.
Una volta completato il provisioning, i dispositivi possono connettersi a hub IoT usando i nuovi certificati.
In risposta a una violazione della sicurezza, potrebbe essere necessario impedire l'uso di un certificato del dispositivo. Per impedire l'uso di un certificato del dispositivo, disabilitare la voce di registrazione per il dispositivo o il certificato di destinazione. Per altre informazioni, vedere Non consentire i dispositivi nell'articolo Gestire la registrazione .
Dopo che un certificato è stato incluso in una voce di registrazione disabilitata, qualsiasi tentativo di registrazione in un hub IoT tramite tale certificato non avrà esito positivo anche se è abilitato come parte di un'altra voce di registrazione.
- Per altre informazioni sui certificati X.509 nel servizio Device Provisioning, vedere Attestazione del certificato X.509
- Per informazioni su come eseguire una verifica del possesso per i certificati della CA X.509 con il servizio Device Provisioning in hub IoT di Azure, vedere Come eseguire la verifica dei certificati.
- Per informazioni su come usare il portale per creare un gruppo di registrazione, vedere Gestione delle registrazioni dei dispositivi con il portale di Azure.