Condividi tramite


Autenticare le identità con certificati X.509

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

Un certificato dell'autorità di certificazione 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.

La funzionalità CA X.509 consente l'autenticazione del dispositivo all'hub IoT usando un'autorità di certificazione (CA). Questa procedura consente di semplificare il processo di registrazione iniziale dei dispositivi e la logistica della catena di fornitura durante la produzione dei dispositivi stessi.

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 nell'hub IoT. In lingua inglese, il termine autenticazione viene talvolta abbreviato in AuthN.

L'autorizzazione è il processo di conferma delle autorizzazioni per un utente o un dispositivo autenticato nell'hub IoT. Specifica le risorse e i comandi a cui è consentito l'accesso e le operazioni che è possibile eseguire con tali risorse e comandi. In lingua inglese, il termine autorizzazione viene talvolta abbreviato in AuthZ.

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

Tipi di autenticazione del certificato

È possibile usare qualsiasi certificato X.509 per autenticare un dispositivo con hub IoT caricando un'identificazione personale del certificato o un'autorità di certificazione (CA) in hub IoT.

  • Firma della - CA X.509 Questa opzione è consigliata per gli scenari di produzione ed è l'obiettivo di questo articolo.

    Se il dispositivo ha un certificato X.509 firmato dalla CA, caricare un certificato CA radice o intermedio nella catena di firma per hub IoT prima di registrare il dispositivo. Il dispositivo ha un certificato X.509 con CA X.509 verificata nella catena di certificati. Quando il dispositivo si connette, presenta la catena di certificati completa e l'hub IoT può convalidarlo perché conosce la CA X.509. Più dispositivi possono eseguire l'autenticazione con la stessa CA X.509 verificata.

  • X.509 autofirmato

    Se il dispositivo ha un certificato X.509 autofirmato, si assegna hub IoT una versione del certificato per l'autenticazione. Quando si registra un dispositivo, si carica un'identificazione personale del certificato, ovvero un hash del certificato X.509 del dispositivo. Quando il dispositivo si connette, presenta il certificato e l'hub IoT può convalidarlo rispetto all'hash noto.

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.

Applicare l'autenticazione X.509

Per una maggiore sicurezza, è possibile configurare un hub IoT per non consentire l'autenticazione sas per dispositivi e moduli, lasciando X.509 come unica opzione di autenticazione accettata. Attualmente, questa funzionalità non è disponibile nel portale di Azure. Per configurarla, impostare disableDeviceSAS e disableModuleSAS su true nelle proprietà delle risorse dell'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

IoT richiede un'identità univoca per ogni dispositivo che si connette. Per l'autenticazione basata su certificati, queste identità sono sotto forma di certificati.

Un modo valido ma inefficiente per fornire un certificato univoco in ogni dispositivo consiste nel pregenerare i certificati e fornire a tutti i partner della supply chain le chiavi private corrispondenti. 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 tramite ritiro dei dispositivi, diventa un'attività uno-a-uno per ogni coppia chiave-dispositivo. Questa relazione impedisce la gestione dei gruppi dei dispositivi, a meno che il concetto di gruppi non venga in qualche modo integrato 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 è il risultato di una CA che firma una CA intermedia che a sua volta firma un'altra CA intermedia e così via fino a che una CA intermedia finale non firma un dispositivo. Le catene di certificati creano una relazione uno-a-molti tra un certificato della CA e i relativi dispositivi downstream. Questa relazione consente di registrare un numero qualsiasi di dispositivi in hub IoT registrando un certificato CA X.509 una sola volta.

L'autenticazione CA X.509 semplifica anche la logistica della supply chain. Un tipico flusso di produzione del dispositivo prevede più passaggi e responsabili. Usando le autorità di certificazione, è possibile firmare ogni responsabile in una catena di attendibilità crittografica anziché affidarle con 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 produce maggiore protezione 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 in 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 gruppi di registrazione.

Flusso di certificati X.509

Questa sezione descrive come usare i certificati della CA X.509 per autenticare i dispositivi che si connettono a hub IoT, che include i passaggi seguenti:

  • Ottenere un certificato della CA X.509.
  • Firmare i dispositivi usando i certificati della CA X.509.
  • Registrare il certificato della CA X.509 in hub IoT.
  • Autenticare i dispositivi firmati con ca X.509.
  • Revocare un certificato del dispositivo se è compromesso.

Ottenere un certificato della CA X.509

Il certificato della CA X.509 rappresenta l'elemento superiore della catena di certificati per ciascuno dei dispositivi disponibili. È possibile acquistare o crearne uno a seconda del modo in cui si intende usarlo.

Per gli ambienti di produzione, è consigliabile acquistare un certificato della CA X.509 da un provider di servizi di certificazione professionale.

È anche possibile creare un certificato ca X.509 autofirmato a scopo di test. Per altre informazioni sulla creazione di certificati per il test, vedere Creare e caricare certificati per il test. Non è consigliabile usare certificati autofirmato per gli ambienti di produzione.

Indipendentemente dalla modalità di acquisizione del certificato della CA X.509, assicurarsi di non divulgare mai la corrispondente chiave privata.

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 fanno parte di una rete IoT aperta in cui interagiscono con prodotti o servizi di terze parti.

Per acquistare un certificato della CA X.509, scegliere un provider di servizi di 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.

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

Firmare i dispositivi nella catena di certificati

Il proprietario di un certificato ca X.509 può firmare in modo crittografico una CA intermedia che a sua volta può firmare un'altra CA intermedia e così via, fino a quando l'ultima CA intermedia firma un certificato del dispositivo. Il risultato è una catena di certificati a cascata definita catena di certificati. Questa delega di trust è importante perché stabilisce una catena di custodia ed evita la condivisione delle chiavi di firma.

Questa sequenza di certificati nella catena presenta la logica consegna 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. L'ultima CA intermedia firma infine ogni dispositivo e inserisce tutti i certificati dell'autorità dalla catena nel dispositivo.

Diagramma che mostra i certificati in una catena di attendibilità.

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 simile a quella creata durante il processo di firma dei dispositivi.

Registrare il certificato della CA X.509 nell'hub IoT

Registrare il certificato della CA X.509 per hub IoT, che lo usa per autenticare i dispositivi. Un certificato della CA X.509 può autenticare qualsiasi dispositivo con la CA nella catena di certificati di attendibilità. 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 di prova del possesso implica un processo di risposta e una richiesta di crittografia tra l'utente e hub IoT per verificare di essere effettivamente proprietari del certificato della CA. È possibile scegliere di verificare automaticamente o manualmente la proprietà. Per la verifica manuale, hub IoT genera una richiesta casuale che si firma con la chiave privata del certificato della CA. Se la chiave privata non è stata divulgata ed è stata conservata in un luogo protetto come consigliato, solo l'utente proprietario sarà in grado di 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, caricare un file contenente i risultati per completare la verifica.

Informazioni su come registrare il certificato della CA.

Autenticare i dispositivi firmati con certificati della CA X.509

Con il certificato della CA X.509 registrato e i dispositivi firmati con una catena di certificati di attendibilità, il passaggio finale è l'autenticazione del dispositivo. Al momento della connessione, un dispositivo firmato con un certificato della CA X.509 carica la relativa catena di certificati per la convalida. L'hub IoT userà queste informazioni per autenticare il dispositivo in un processo che si articola in due passaggi.

In primo luogo, hub IoT convalida crittograficamente la catena di certificati per la coerenza interna. Quindi, hub IoT rilascia una richiesta di verifica del possesso 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. Per proteggere le chiavi private nei dispositivi, è consigliabile usare chip sicuri quali, ad esempio, i moduli di protezione hardware.

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, l'hub IoT rinegozia la sessione TLS e verifica il certificato X.509 del dispositivo.

Revocare un certificato del dispositivo

L'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 è presente un dispositivo che deve essere bloccato dalla connessione a hub IoT a causa di un certificato potenzialmente compromesso, disabilitare il dispositivo nel registro delle identità. Per altre informazioni, vedere Disabilitare o eliminare un dispositivo.

Scenario di esempio

L'azienda X produce widget smart X progettati per l'installazione professionale. La Società-X affida in outsource sia la produzione sia l'installazione. La factory Y produce i widget smart X e il tecnico Z li installa. L'azienda X vuole che i widget smart X siano forniti direttamente dalla factory Y al tecnico Z per l'installazione e quindi per la connessione diretta all'istanza dell'hub IoT dell'azienda X. A tale scopo, Company-X deve completare alcune operazioni di configurazione una tantum per preparare Smart-X-Widget per la connessione automatica. Questo scenario end-to-end include i passaggi seguenti:

  1. Ottenere il certificato della CA X.509

  2. Registrare il certificato della CA X.509 nell'hub IoT

  3. Firmare i dispositivi in una catena di certificati

  4. Connettere i dispositivi

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

Ottenere il certificato

L'azienda X può acquistare un certificato della 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.

Diagramma che mostra il flusso per la generazione di un certificato della CA X.509.

Registrare il certificato nell'hub IoT

L'azienda X deve registrare l'autorità di certificazione X.509 sull'hub IoT in cui verrà usata per autenticare i widget smart X al momento della connessione. Si tratta di un processo unico che offre la possibilità di autenticare e gestire un numero qualsiasi di dispositivi widget smart X. La relazione uno-a-molti tra certificati della CA e certificati del dispositivo è uno dei principali vantaggi dell'uso del metodo di autenticazione della CA X.509. L'alternativa consisterebbe nel caricare le identificazioni personali del certificato singolo per ogni dispositivo widget smart X aggiungendo così dei 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.

Diagramma che mostra il flusso di processo per la registrazione di un certificato della CA X.509.

Caricare il certificato

Il processo di caricamento del certificato della CA X.509 è proprio quello di caricare il certificato della CA nell'hub IoT. Hub IoT si aspetta il certificato in un file.

Il file del certificato non deve in nessuna circostanza contenere chiavi private. Le procedure consigliate dagli standard che regolano l'infrastruttura a chiave pubblica (PKI) impongono che la conoscenza della chiave privata dell'azienda X in questo caso risieda esclusivamente all'interno dell'azienda 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 agente di intercettazione potrebbe intercettare un certificato e provare a caricarlo come proprio. In questo esempio, l'hub IoT deve assicurarsi che il certificato della CA che l'azienda X ha caricato appartenga realmente all'azienda X. Lo fa richiedendo all'azienda X di dimostrare di essere realmente in possesso del certificato tramite un flusso di proof-of-possession (PoP).

Per il flusso di verifica del possesso, hub IoT genera un numero casuale per la firma di Company-X usando la chiave privata. Se l'azienda X ha seguito le procedure consigliate dell'infrastruttura a chiave pubblica e ha protetto la propria chiave privata, allora è l'unica in grado di poter rispondere correttamente alla richiesta di proof-of-possession. 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

In questo esempio, l'autenticazione basata su certificato significa che ogni widget smart X deve possedere un certificato univoco del dispositivo. Invece di creare singole coppie di certificati/chiavi per ogni dispositivo, Company-X decide di usare i certificati CA e creare una catena di certificati di attendibilità per ogni 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.

Diagramma che mostra un esempio di gerarchia della catena di certificati.

Il diagramma seguente illustra come la catena di certificati di trust si riunisce nell'esempio relativo ai widget smart X.

Diagramma che mostra la catena di certificati di attendibilità dai certificati di una società ai certificati di un'altra società.

  1. L'azienda X non interagisce fisicamente con nessuno dei widget smart X. Avvia la catena di certificati di attendibilità firmando il certificato CA intermedio della factory Y.
  2. Factory-Y ha ora un proprio certificato CA intermedio con una firma di Company-X. Passa copie di questi elementi a ogni dispositivo. Usa anche il certificato CA intermedio per firmare il certificato CA intermedio del tecnico-Z e i certificati del dispositivo Smart-X-Widget.
  3. Il tecnico-Z ha ora un proprio certificato CA intermedio con una firma di Factory-Y. Passa copie di questi elementi a ogni dispositivo. Usa anche il certificato CA intermedio per firmare i certificati del dispositivo Smart-X-Widget.
  4. Ogni dispositivo widget smart X 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 ritracciati alla radice originale dell'azienda X.

Il metodo di autenticazione della CA garantisce una contabilità protetta nella catena di alimentazione del dispositivo. A causa del processo della catena di certificati, le azioni di ogni membro nella catena sono registrate e crittograficamente e verificabili.

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 dei chip in silicone protetti sotto forma di moduli di protezione hardware (HSM) in grado di generare chiavi internamente e proteggere le chiavi private. L'azienda X deve aggiungere un chip sicuro solo nella distinta dei componenti di widget smart X.

Autenticare i dispositivi

I dispositivi prodotti per l'autenticazione della CA X.509 sono dotati di certificati univoci del dispositivo e di una catena di certificati dalle rispettive catena di alimentazione della produzione. La connessione del dispositivo, anche per la prima volta, ha luogo in un processo a due fasi: il caricamento della catena di certificati e la proof-of-possession.

In questo esempio, ogni Smart-X-Widget carica il certificato univoco del dispositivo insieme ai certificati della CA Factory-Y e Technician-Z X.509 e quindi risponde alla richiesta di verifica del possesso da hub IoT.

Usando il certificato CA X.509 preregistrato da Company-X, hub IoT convalida che la catena di certificati caricata sia coerente internamente e che il proprietario valido del certificato CA X.509 abbia originato la catena. È quanto accade con il processo di registrazione della CA di X.509: l'hub IoT usa un processo di richiesta-risposta di proof-of-possession per verificare che la catena e pertanto il certificato del dispositivo appartenga effettivamente al dispositivo che lo sta caricando. Una risposta corretta attiva hub IoT per accettare il dispositivo come autentico e concedergli la connessione.

Diagramma che mostra il flusso per la convalida di un certificato del dispositivo.

La base della relazione di attendibilità risiede nelle chiavi private di protezione che comprendono 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 da qualsiasi certificato nella catena.

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.