Autenticare le identità con certificati X.509

hub IoT usa i certificati X.509 per autenticare i dispositivi. L'autenticazione X.509 consente l'autenticazione di un dispositivo IoT a livello fisico come parte della definizione di connessione standard TLS (Transport Layer Security).

Un certificato della CA X.509 è un certificato digitale che può firmare altri certificati. Un certificato digitale è considerato un certificato X.509 se è conforme allo standard di formattazione del certificato prescritto dallo standard RFC 5280 di IETF. Un'autorità di certificazione (CA) indica che il titolare può firmare altri certificati.

Questo articolo descrive come usare i certificati dell'autorità di certificazione X.509 per autenticare i dispositivi che si connettono a hub IoT, che include i passaggi seguenti:

  • Come ottenere un certificato della CA X.509
  • Come registrare il certificato della CA X.509 all'hub IoT
  • Come firmare i dispositivi con i certificati della CA X.509
  • Come vengono autenticati i dispositivi firmati con i certificati della CA X.509

Importante

Le funzionalità seguenti per i dispositivi che usano l'autenticazione dell'autorità di certificazione X.509 non sono ancora disponibili a livello generale e la modalità di anteprima deve essere abilitata:

  • HTTPS, MQTT su WebSocket e AMQP su protocolli WebSocket.
  • Caricamenti di file (tutti i protocolli).

Queste funzionalità sono disponibili a livello generale nei dispositivi che usano l'autenticazione con identificazione personale X.509. Per altre informazioni sull'autenticazione X.509 con hub IoT, vedere Certificati X.509 supportati.

La funzionalità ca X.509 consente l'autenticazione del dispositivo per hub IoT tramite un'autorità di certificazione (CA). Semplifica il processo iniziale di registrazione dei dispositivi e la logistica della supply chain durante la produzione dei dispositivi.

Autenticazione e autorizzazione

L'autenticazione è il processo di dimostrazione di chi si dice di essere. L'autenticazione verifica l'identità di un utente o di un dispositivo per hub IoT. A volte viene abbreviato in AuthN. L'autorizzazione è il processo di conferma delle autorizzazioni per un utente o un dispositivo autenticato in hub IoT. Specifica le risorse e i comandi a cui è consentito l'accesso e le operazioni che è possibile eseguire con tali risorse e comandi. L'autorizzazione viene talvolta abbreviata in AuthZ.

Questo articolo descrive l'autenticazione tramite certificati X.509. È possibile usare qualsiasi certificato X.509 per autenticare un dispositivo con l'hub IoT caricando un'identificazione personale del certificato o un'autorità di certificazione (CA) nell'hub IoT di Azure.

I certificati X.509 vengono usati per l'autenticazione in hub IoT, non per l'autorizzazione. A differenza di Microsoft Entra ID e firme di accesso condiviso, non è possibile personalizzare le autorizzazioni con certificati X.509.

Applicare l'autenticazione X.509

Per maggiore sicurezza, un hub IoT può essere configurato per non consentire l'autenticazione sas per dispositivi e moduli, lasciando X.509 come unica opzione di autenticazione accettata. Attualmente, questa funzionalità non è disponibile in portale di Azure. Per configurare, impostare disableDeviceSAS e disableModuleSAS su true sulle proprietà della risorsa hub IoT:

az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --set properties.disableDeviceSAS=true properties.disableModuleSAS=true

Vantaggi dell'autenticazione del certificato della CA X.509

L'autenticazione dell'autorità di certificazione X.509 è un approccio per autenticare i dispositivi hub IoT usando un metodo che semplifica notevolmente la creazione dell'identità dei dispositivi e la gestione del ciclo di vita nella supply chain.

Un attributo distintivo dell'autenticazione CA X.509 è la relazione uno-a-molti che un certificato della CA ha con i dispositivi downstream. Questa relazione consente la registrazione di un numero qualsiasi di dispositivi in hub IoT registrando un certificato CA X.509 una sola volta. In caso contrario, i certificati univoci devono essere preregistrati per ogni dispositivo prima che un dispositivo possa connettersi. Questa relazione uno-a-molti semplifica anche le operazioni di gestione del ciclo di vita dei certificati dei dispositivi.

Un altro importante attributo dell'autenticazione CA X.509 è la semplificazione della logistica della supply chain. L'autenticazione sicura dei dispositivi richiede che ogni dispositivo contenga un segreto univoco, ad esempio una chiave come base per l'attendibilità. Nell'autenticazione basata su certificato questo segreto è una chiave privata. Un tipico flusso di produzione del dispositivo prevede più passaggi e responsabili. La gestione sicura delle chiavi private del dispositivo in più responsabili e il mantenimento dell'attendibilità è un'operazione complessa e costosa. Usando le autorità di certificazione si risolve questo problema, poiché ogni responsabile firma in una catena di crittografia considerata attendibile invece che dimostrarsi attendibile con delle chiavi private del dispositivo. Ogni responsabile firma i dispositivi nel rispettivo passaggio del flusso di produzione. Il risultato complessivo è una catena di alimentazione ottimale con una responsabilità incorporata tramite l'uso della catena di crittografia di attendibilità.

Questo processo garantisce la massima sicurezza quando i dispositivi proteggono le chiavi private univoche. A questo scopo, è consigliabile usare moduli HSM (Hardware Secure Modules) in grado di generare internamente chiavi private.

Il servizio Device Provisioning (DPS) hub IoT di Azure semplifica il provisioning di gruppi di dispositivi negli hub. Per altre informazioni, vedere Esercitazione: Effettuare il provisioning di più dispositivi X.509 usando i gruppi di registrazione.

Ottenere un certificato della CA X.509

Il certificato della CA X.509 è la parte superiore della catena di certificati per ognuno dei dispositivi. È possibile acquistarne o crearne uno, a seconda di come si intende usarlo.

Per gli ambienti di produzione, è consigliabile acquistare un certificato CA X.509 da un provider di servizi di certificazione professionale. Il vantaggio dell'acquisto di un certificato della CA risiede nel fatto che la CA radice funge da terze parti attendibili a garanzia della legittimità dei dispositivi in uso. Prendere in considerazione questa opzione se i dispositivi fanno parte di una rete IoT aperta in cui interagiscono con prodotti o servizi di terze parti.

È anche possibile creare un certificato della CA X.509 autofirmato a scopo di test. Per altre informazioni sulla creazione di certificati per i test, vedere Creare e caricare certificati per i test.

Nota

Non è consigliabile usare certificati autofirmato per gli ambienti di produzione.

Indipendentemente dal modo in cui si ottiene il certificato della CA X.509, assicurarsi di mantenere sempre il segreto della chiave privata corrispondente e protetto. Questa precauzione è necessaria per creare attendibilità nell'autenticazione ca X.509.

Firmare i dispositivi nella catena di certificati

Il proprietario di un certificato ca X.509 può firmare crittograficamente una CA intermedia che a sua volta può firmare un'altra CA intermedia e così via, fino a quando l'ultima CA intermedia termina questo processo firmando un certificato del dispositivo. Il risultato è una catena a catena di certificati nota come catena di certificati di attendibilità. Questa delega di trust è importante perché stabilisce una catena di custodia di variabili crittografiche ed evita la condivisione delle chiavi di firma.

Diagram that shows the certificates in a chain of trust.

Il certificato del dispositivo (detto anche certificato foglia) deve avere il nome comune (CN) impostato sull'ID dispositivo (CN=deviceId) usato durante la registrazione del dispositivo IoT in hub IoT di Azure. Questa impostazione è obbligatoria per l'autenticazione.

Per i moduli che usano l'autenticazione X.509, il certificato del modulo deve avere il nome comune (CN) formattato come CN=deviceId/moduleId.

Informazioni su come creare una catena di certificati come fatto durante la firma dei dispositivi.

Registrare il certificato della CA X.509 in hub IoT

Registrare il certificato della CA X.509 per hub IoT, che lo usa per autenticare i dispositivi durante la registrazione e la connessione. La registrazione del certificato della CA X.509 è un processo in due passaggi che include il caricamento del file del certificato e la definizione della prova di possesso.

Il processo di caricamento comporta il caricamento di un file che contiene il certificato. Questo file non deve contenere mai le chiavi private.

Il passaggio relativo all'uso del token proof-of-possession prevede un processo basato sulla crittografia e sullo scambio della richiesta di verifica e della relativa risposta tra il dispositivo e l'hub IoT. Dato che il contenuto del certificato digitale è pubblico e quindi soggetto a intercettazioni, hub IoT deve verificare di essere effettivamente proprietario del certificato CA. È possibile scegliere di verificare automaticamente o manualmente la proprietà. Per la verifica manuale, hub IoT di Azure genera una richiesta casuale che si firma con la chiave privata corrispondente del certificato della CA. Se si mantiene il segreto della chiave privata e protetto come consigliato, si dispone solo delle conoscenze per completare questo passaggio. In questo metodo il fattore determinante della relazione di attendibilità è dato dalla riservatezza delle chiavi private. Dopo aver firmato la richiesta di verifica, completare questo passaggio e verificare manualmente il certificato caricando un file contenente i risultati.

Informazioni su come registrare il certificato della CA.

Autenticare i dispositivi firmati con certificati ca X.509

Ogni hub IoT ha un registro delle identità che archivia le informazioni sui dispositivi e i moduli autorizzati a connettersi. Prima che un dispositivo o un modulo possa connettersi, deve essere presente una voce per tale dispositivo o modulo nel registro delle identità dell'hub IoT. Un dispositivo o un modulo esegue l'autenticazione con l'hub IoT in base alle credenziali archiviate nel registro delle identità.

Con il certificato della CA X.509 registrato e i dispositivi connessi a una catena di certificati di attendibilità, il passaggio finale è l'autenticazione del dispositivo quando il dispositivo si connette. Quando un dispositivo con firma CA X.509 si connette, carica la catena di certificati per la convalida. La catena include tutti i certificati della CA intermedi e i certificati del dispositivo. L'hub IoT userà queste informazioni per autenticare il dispositivo in un processo che si articola in due passaggi. L'hub IoT convalida a livello di crittografia la catena di certificati per la verifica della coerenza interna e quindi genera una richiesta di verifica del token proof-of-possession per il dispositivo. L'hub IoT dichiara quindi autentico il dispositivo alla ricezione di una risposta valida a fronte del token proof-of-possession dal dispositivo. Questa dichiarazione presuppone che la chiave privata del dispositivo sia protetta e che solo il dispositivo sia in grado di rispondere a questa richiesta di verifica. È consigliabile usare chip sicuri come moduli HSM (Hardware Secure Modules) nei dispositivi per proteggere le chiavi private.

Una connessione riuscita del dispositivo all'hub IoT completa il processo di autenticazione e indica un'installazione corretta. Ogni volta che un dispositivo si connette, hub IoT rinegozia la sessione TLS e verifica il certificato X.509 del dispositivo.

Revocare un certificato del dispositivo

hub IoT non controlla gli elenchi di revoche di certificati dall'autorità di certificazione durante l'autenticazione dei dispositivi con autenticazione basata su certificato. Se si dispone di un dispositivo che deve essere bloccato dalla connessione a hub IoT a causa di un certificato potenzialmente compromesso, è necessario disabilitare il dispositivo nel registro delle identità. Per altre informazioni, vedere Disabilitare o eliminare un dispositivo in un hub IoT.

Scenario di esempio

Company-X rende Smart-X-Widget progettati per l'installazione professionale. La Società-X affida in outsource sia la produzione sia l'installazione. Factory-Y produce smart-X-Widgets e Il tecnico-Z li installa. La Società-X vuole che Smart-X-Widget sia disponibile direttamente da Factory-Y a Technician-Z per l'installazione e quindi per connettersi direttamente all'istanza di Company-X di hub IoT. A tale scopo, la Società-X deve completare alcune operazioni di installazione singole per preparare lo Smart-X-Widget alla connessione automatica. Questo scenario end-to-end include i passaggi seguenti:

  1. Acquisire il certificato della CA X.509

  2. Registrare il certificato della CA X.509 in hub IoT

  3. Firmare i dispositivi in una catena di certificati

  4. Connessione i dispositivi

Questi passaggi sono illustrati in Esercitazione: Creare e caricare certificati per il test.

Acquisire il certificato

Company-X può acquistare un certificato CA X.509 da un'autorità di certificazione radice pubblica o crearne uno tramite un processo autofirmato. Entrambe le opzioni comportano due passaggi di base: la generazione di una coppia di chiavi pubblica/privata e la firma della chiave pubblica in un certificato.

Dettagli su come l'esecuzione di questi passaggi cambi con provider di servizio diversi.

Diagram showing the flow for generating an X.509 CA certificate.

Acquistare un certificato

Il vantaggio dell'acquisto di un certificato della CA risiede nell'avere un atto della CA radice ben noto che funge da terza parte attendibile a garanzia della legittimità dei dispositivi IoT quando si connettono i dispositivi. Scegliere questa opzione se i dispositivi interagiscono con prodotti o servizi di terze parti.

Per acquistare un certificato ca X.509, scegliere un provider di servizi certificati radice. Il provider ca radice illustra come creare la coppia di chiavi pubblica/privata e come generare una richiesta di firma del certificato per i servizi. Una richiesta di firma del certificato è il processo formale di richiesta di un certificato da parte di un'autorità di certificazione. Il risultato dell'acquisto è un certificato da usare come certificato di autorità. Data la grande diffusione di certificati X.509, è probabile che il certificato sia stato formattato correttamente in relazione allo standard IETF RFC 5280.

Creare un certificato autofirmato

Il processo di creazione di un certificato della CA X.509 autofirmato è simile all'acquisto di un certificato, ad eccezione del fatto che non implica un firmatario di terze parti come l'autorità di certificazione radice. In questo esempio, Company-X firmerebbe il certificato dell'autorità anziché un'autorità di certificazione radice.

È possibile scegliere questa opzione per il test fino a quando non si è pronti per acquistare un certificato dell'autorità. È anche possibile usare un certificato ca X.509 autofirmato nell'ambiente di produzione se i dispositivi non si connettono a servizi di terze parti all'esterno di hub IoT.

Registrare il certificato in hub IoT

Company-X deve registrare la CA X.509 per hub IoT dove serve per autenticare Smart-X-Widgets durante la connessione. Questo processo monouso consente di autenticare e gestire un numero qualsiasi di dispositivi Smart-X-Widget. La relazione uno-a-molti tra certificati ca e certificati del dispositivo è uno dei principali vantaggi dell'uso del metodo di autenticazione della CA X.509. L'alternativa consiste nel caricare singole identificazioni personali del certificato per ogni dispositivo Smart-X-Widget, aggiungendo così ai costi operativi.

La registrazione del certificato della CA X.509 è un processo in due passaggi: caricare il certificato e quindi fornire la prova di possesso.

Diagram showing the process flow for registering an X.509 CA certificate.

Caricare il certificato

Il processo di caricamento del certificato della CA X.509 è solo questo: caricare il certificato della CA in hub IoT. Hub IoT si aspetta il certificato in un file.

Il file di certificato non deve in alcun caso contenere chiavi private. Le procedure consigliate dagli standard che regolano l'infrastruttura a chiave pubblica (PKI) impongono che la conoscenza della chiave privata della Società-X risieda esclusivamente all'interno della Società-X.

Dimostrare il possesso

Il certificato della CA X.509, come qualsiasi certificato digitale, contiene informazioni pubbliche che sono soggette a intercettazione. Di conseguenza, un utente malintenzionato può intercettare un certificato e provare a caricarlo come proprio. In questo esempio, hub IoT deve assicurarsi che il certificato CA Company-X caricato appartenga realmente a Company-X. Lo fa sfidando la Società-X a dimostrare che possiedono il certificato tramite un flusso di prova di possesso (PoP).

Per il flusso di verifica del possesso, hub IoT genera un numero casuale da firmare da Company-X usando la chiave privata. Se l'azienda-X ha seguito le procedure consigliate per l'infrastruttura PKI e ha protetto la propria chiave privata, solo essi sarebbero in grado di rispondere correttamente alla richiesta di verifica del possesso. L'hub IoT prosegue per registrare il certificato della CA di X.509 al momento di una risposta con esito positivo della richiesta di proof-of-possession.

Una risposta corretta alla richiesta di proof-of-possession da parte dell'hub IoT completa la registrazione dell'autorità di certificazione X.509.

Firmare i dispositivi in una catena di certificati

IoT richiede un'identità univoca per ogni dispositivo che si connette. Per l'autenticazione basata su certificati, queste identità sono sotto forma di certificati. In questo esempio, l'autenticazione basata su certificato significa che ogni Smart-X-Widget deve possedere un certificato univoco del dispositivo.

Un modo valido ma inefficiente per fornire certificati univoci in ogni dispositivo consiste nel pre-generare certificati per Smart-X-Widgets e per considerare attendibili i partner della supply chain con le chiavi private corrispondenti. Per La Società-X, ciò significa affidare sia Factory-Y che Technician-Z. Questo metodo presenta sfide che devono essere superate per garantire l'attendibilità, come indicato di seguito:

  • La necessità di condividere delle chiavi private del dispositivo con i partner della catena di alimentazione, oltre a ignorare le procedure consigliate dell'infrastruttura PKI di non condividere mai le chiavi private, rende costosa la costruzione dell'attendibilità nella catena di alimentazione. Richiede sistemi come sale sicure per ospitare chiavi private del dispositivo e processi come controlli di sicurezza periodici. Entrambi comportano dei costi aggiuntivi per la catena di alimentazione.

  • Tenere conto in modo sicuro dei dispositivi nella supply chain e successivamente gestirli nella distribuzione, diventa un'attività uno-a-uno per ogni coppia chiave-dispositivo dal punto di generazione del certificato univoco del dispositivo (e chiave privata) al ritiro del dispositivo. Ciò preclude la gestione del gruppo di dispositivi a meno che il concetto di gruppi sia in qualche modo integrato in modo esplicito nel processo. La gestione della contabilità e del ciclo di vita del dispositivo, pertanto, diventa un onere difficile di operazioni.

L'autenticazione del certificato della CA X.509 offre soluzioni eleganti a queste sfide tramite catene di certificati. Una catena di certificati deriva dalla firma di una CA intermedia che a sua volta firma un'altra CA intermedia e così via, fino a quando un'autorità di certificazione intermedia finale firma un dispositivo. In questo esempio, la Società-X firma l'Azienda-Y, che a sua volta firma il Tecnico-Z che infine firma lo Smart-X-Widget.

Diagram showing an example of a certificate chain hierarchy.

Questa cascata di certificati nella catena rappresenta la consegna logica dell'autorità. Molte catene di fornitura seguono questa distribuzione logica, in cui ogni CA intermedia viene firmata nella catena durante la ricezione di tutti i certificati CA upstream e l'ultima CA intermedia firma infine ogni dispositivo e inserisce tutti i certificati di autorità dalla catena nel dispositivo. Questa consegna è comune quando l'azienda manifatturiera con contratto con una gerarchia di fabbriche commissiona una particolare fabbrica per fare la produzione. Nel corso della gerarchia ci potrebbero essere più livelli (ad esempio, per tipo di prodotto/geografia linea di produzione/tipo), solo l'azienda alla fine ottiene di interagire con il dispositivo, ma la catena è gestita dalla parte superiore della gerarchia.

Le catene alternative possono avere ca intermedie diverse interagiscono con il dispositivo, nel qual caso l'autorità di certificazione che interagisce con il dispositivo inserisce il contenuto della catena di certificati in quel punto. I modelli ibridi sono anche possibili laddove solo alcune delle autorità di certificazione abbiano un'interazione fisica con il dispositivo.

Il diagramma seguente illustra come la catena di certificati di trust si riunisce nell'esempio Smart-X-Widget.

Diagram showing the certificate chain of trust from the certificates of one company to the certificates of another company.

  1. Company-X non interagisce fisicamente con nessuno dei Smart-X-Widget. Avvia la catena di certificati di attendibilità firmando il certificato CA intermedio di Factory-Y.
  2. Factory-Y ha ora un proprio certificato CA intermedio e una firma di Company-X. Passa copie di questi elementi al dispositivo. Usa anche il certificato CA intermedio per firmare il certificato CA intermedio del tecnico-Z e il certificato del dispositivo Smart-X-Widget.
  3. Il tecnico-Z ha ora un proprio certificato CA intermedio e una firma di Factory-Y. Passa copie di questi elementi al dispositivo. Usa anche il certificato CA intermedio per firmare il certificato del dispositivo Smart-X-Widget.
  4. Ogni dispositivo Smart-X-Widget ha ora un proprio certificato di dispositivo univoco e copie delle chiavi pubbliche e delle firme da ogni certificato CA intermedio con cui ha interagito in tutta la catena di fornitura. Questi certificati e firme possono essere ricontracciati alla radice originale company-X.

Il metodo CA di autenticazione infonde responsabilità sicure nella supply chain di produzione del dispositivo. A causa del processo della catena di certificati, le azioni di ogni membro della catena vengono registrate e verificabili in modo crittografico.

Questo processo si basa sul presupposto che la coppia di chiavi pubblica/privata univoca del dispositivo venga creata in modo indipendente e che la chiave privata sia sempre protetta all'interno del dispositivo. Fortunatamente, esistono chip di siliconi sicuri sotto forma di moduli HSM (Hardware Secure Modules) in grado di generare internamente chiavi e proteggere le chiavi private. La Società-X deve aggiungere un chip sicuro solo nella distinta dei componenti di Smart-X-Widget.

Autenticare i dispositivi

Dopo aver registrato il certificato ca di primo livello per hub IoT e i dispositivi hanno i certificati univoci, come si connettono? Registrando un certificato della CA X.509 per hub IoT una volta, come si connettono potenzialmente milioni di dispositivi e vengono autenticati per la prima volta? Tramite lo stesso flusso di caricamento e verifica del possesso del certificato rilevato in precedenza con la registrazione del certificato DELLA CA X.509.

I dispositivi prodotti per l'autenticazione CA X.509 sono dotati di certificati di dispositivo univoci e di una catena di certificati dalla rispettiva catena di fornitura di produzione. La connessione del dispositivo, anche per la prima volta, avviene in un processo in due passaggi: caricamento della catena di certificati e prova del possesso.

Durante il caricamento della catena di certificati, il dispositivo carica il certificato univoco e la catena di certificati in hub IoT. Usando il certificato della CA X.509 preregistrato, hub IoT convalida che la catena di certificati caricata sia coerente internamente e che la catena sia stata originata dal proprietario valido del certificato CA X.509. Come per il processo di registrazione della CA X.509, hub IoT usa un processo di verifica della verifica del possesso per verificare che la catena, e quindi il certificato del dispositivo, appartenga al dispositivo che lo carica. Una risposta corretta attiva hub IoT per accettare il dispositivo come autentico e concedergli la connessione.

In questo esempio, ciascun Smart-X-Widget potrebbe caricare il proprio certificato univoco del dispositivo insieme ai certificati della CA X.509 dell'Azienda-Y e del Tecnico-Z e quindi rispondere alla richiesta di proof-of-possession dall'hub IoT.

Diagram showing the flow for validating a device certificate.

La base dell'attendibilità è la protezione delle chiavi private, incluse le chiavi private del dispositivo. Non è quindi possibile sottolineare abbastanza l'importanza dei chip di siliconi sicuri sotto forma di moduli HSM (Hardware Secure Modules) per proteggere le chiavi private del dispositivo e la procedura consigliata complessiva di non condividere mai chiavi private, come una factory che affida un'altra con la propria chiave privata.

Passaggi successivi

Usare il servizio Device Provisioning per effettuare il provisioning di più dispositivi X.509 usando i gruppi di registrazione.

Per altre informazioni sui campi che costituiscono un certificato X.509, vedere Certificati X.509.

Se si dispone di un certificato CA radice o di un certificato CA subordinato e si vuole caricarlo nell'hub IoT, è necessario verificare di essere proprietari del certificato. Per altre informazioni, vedere Esercitazione: Creare e caricare certificati per il test.