Attestazione certificato X.509
Questo articolo descrive i concetti necessari per il provisioning dei dispositivi che usano l'attestazione del certificato X.509 nel servizio Device Provisioning.This article describes the concepts involved when provisioning devices using X.509 certificate attestation in the Device Provisioning Service (DPS). L'articolo è di particolare interesse per tutte le persone coinvolte nella preparazione di un dispositivo per la distribuzione.
I certificati X.509 possono essere archiviati in un modulo di protezione hardware HSM.
Suggerimento
È consigliabile usare un modulo di protezione hardware con i dispositivi per archiviare in modo sicuro i segreti, come il certificato X.509, nei dispositivi in produzione.
Comprendere la catena di certificati X.509
L'uso di certificati X.509 come meccanismo di attestazione è un ottimo modo per aumentare la produzione e semplificare il provisioning dei dispositivi. I certificati X.509 sono in genere disposti in una catena di certificati in cui ogni certificato è firmato tramite la chiave privata del successivo certificato superiore e così via, terminando in un certificato radice autofirmato. Questa disposizione stabilisce una catena delegata di attendibilità dal certificato radice generato da un'autorità di certificazione attendibile (CA) attraverso ogni certificato intermedio al certificato finale installato in un dispositivo. Per altre informazioni, vedere Autenticazione dei dispositivi con i certificati della CA X.509.
Spesso la catena di certificati rappresenta una gerarchia logica o fisica associata ai dispositivi. Ad esempio, un produttore potrebbe creare la gerarchia di certificati seguente:
- Un certificato CA radice autofirmato inizia la catena di certificati.
- Il certificato radice genera un certificato ca intermedio univoco per ogni factory.
- Il certificato di ogni factory genera un certificato ca intermedio univoco per ogni riga di produzione nella factory.
- Il certificato della linea di produzione genera un certificato univoco del dispositivo (entità finale) per ogni dispositivo prodotto nella linea.
Per altre informazioni, vedere Comprensione concettuale dei certificati x.509 nel settore IoT.
Certificato radice
Un certificato radice è un certificato X.509 autofirmato che rappresenta un'autorità di certificazione (CA). Si tratta della parte finale, o trust anchor, della catena di certificati. I certificati radice possono essere rilasciati automaticamente da un'organizzazione o acquistati da un'autorità di certificazione radice. Il certificato radice può anche essere chiamato certificato CA radice.
Certificato intermedio
Un certificato intermedio è un certificato X.509 firmato dal certificato radice (o da un altro certificato intermedio con il certificato radice nella catena) e può anche firmare nuovi certificati. L'ultimo certificato intermedio in una catena firma il certificato foglia. Un certificato intermedio può anche essere chiamato certificato CA intermedio.
I certificati intermedi vengono usati in vari modi. Ad esempio, i certificati intermedi possono essere usati per raggruppare i dispositivi in base alle linee di prodotto, ai clienti che acquistano dispositivi, alle divisioni aziendali o alle fabbriche.
Si supponga che Contoso sia una grande azienda con la propria infrastruttura a chiave pubblica (PKI) usando il certificato radice denominato ContosoRootCert
. Ogni filiale di Contoso ha il proprio certificato intermedio firmato da ContosoRootCert
. Ogni filiale usa il certificato intermedio per firmare i certificati foglia per ogni dispositivo. In questo scenario Contoso può usare una singola istanza del servizio Device Provisioning in cui ContosoRootCert
è un certificato verificato. Possono avere un gruppo di registrazioni per ogni filiale. In questo modo ogni singola filiale non deve preoccuparsi di verificare i certificati.
Certificato "foglia" dell'entità finale
Un certificato foglia o un certificato di entità finale identifica un titolare del certificato. Include il certificato radice nella relativa catena di certificati e zero o più certificati intermedi. Un certificato foglia non viene usato per firmare altri certificati. Identifica in modo univoco un dispositivo per il servizio di provisioning e a volte viene definito certificato del dispositivo. Durante l'autenticazione, un dispositivo usa la chiave privata associata al certificato per rispondere a una verifica di possesso del servizio.
Usare certificati X.509 con DPS
Il servizio di provisioning espone due tipi di registrazione che è possibile usare per controllare l'accesso dei dispositivi con il meccanismo di attestazione X.509:
- Le voci di registrazione singola vengono configurate con il certificato del dispositivo associato a un dispositivo specifico. Queste voci controllano le registrazioni per dispositivi specifici.
- Le voci dei gruppi di registrazioni sono associate a un certificato della CA intermedia o radice specifico. Queste voci controllano le registrazioni per tutti i dispositivi che hanno un certificato intermedio o radice nella rispettiva catena di certificati.
Un certificato può essere specificato in una sola voce di registrazione nell'istanza del servizio Device Provisioning.
Supporto tls reciproco
Quando le registrazioni DPS sono configurate per l'attestazione X.509, tls reciproco (mTLS) è supportato dal servizio Device Provisioning.
Requisiti dell'algoritmo di crittografia DPS
Il servizio Device Provisioning accetta solo certificati X.509 che usano l'algoritmo Rivest-Shamir-Adleman (RSA) o l'algoritmo ECC (Elliptic Curve Cryptography) per la crittografia. ECC e RSA forniscono livelli equivalenti di forza di crittografia, ma ECC usa una lunghezza della chiave più breve.
Se si usano metodi ECC per generare certificati X.509 per l'attestazione del dispositivo, è consigliabile seguire le curve ellittiche seguenti:
- nistP256
- nistP284
- nistP521
Requisiti di denominazione dei certificati DPS
I certificati foglia usati con singole voci di registrazione devono avere il nome comune soggetto (CN) impostato sull'ID registrazione. L'ID registrazione identifica la registrazione del dispositivo con DPS e deve essere univoco per l'istanza del servizio Device Provisioning (ambito ID) in cui viene registrato il dispositivo.
Per i gruppi di registrazione, il nome comune del soggetto imposta l'ID dispositivo registrato con hub IoT. L'ID dispositivo verrà visualizzato nei record di registrazione per il dispositivo autenticato nel gruppo di registrazione. Per le registrazioni individuali, l'ID dispositivo può essere impostato nella voce di registrazione. Se non è impostato nella voce di registrazione, viene usato il nome comune del soggetto .
Per altre informazioni, vedere Autenticare i dispositivi firmati con certificati della CA X.509.
Requisiti della catena di dispositivi DPS
Quando un dispositivo tenta la registrazione tramite DPS usando un gruppo di registrazione, il dispositivo deve inviare la catena di certificati dal certificato foglia a un certificato verificato. In caso contrario, l'autenticazione non riesce.
Ad esempio, se viene verificato solo il certificato radice e viene caricato un certificato intermedio nel gruppo di registrazione, il dispositivo deve presentare la catena di certificati dal certificato foglia fino al certificato radice verificato. Questa catena di certificati include tutti i certificati intermedi tra loro. L'autenticazione ha esito negativo se DPS non può attraversare la catena di certificati a un certificato verificato.
Si consideri, ad esempio, un'azienda che usa la catena di dispositivi seguente per un dispositivo.
In questo esempio il certificato radice viene verificato con DPS e intermediate2
il certificato viene caricato nel gruppo di registrazione.
Se il dispositivo invia solo la catena di dispositivi seguente durante il provisioning, l'autenticazione non riesce. Poiché DPS non può tentare l'autenticazione presupponendo la validità del intermediate1
certificato.
Se il dispositivo invia la catena di dispositivi completa come indicato di seguito durante il provisioning, il servizio Device Provisioning può tentare l'autenticazione del dispositivo.
Ordine di operazioni dps con certificati
Quando un dispositivo si connette al servizio di provisioning, il servizio scorre la catena di certificati che inizia con il certificato del dispositivo (foglia) e cerca una voce di registrazione corrispondente. Usa la prima voce trovata nella catena per determinare se effettuare il provisioning del dispositivo. Ovvero, se esiste una registrazione singola per il certificato del dispositivo, il servizio di provisioning applica tale voce. Se non è presente una registrazione singola per il dispositivo, il servizio cerca un gruppo di registrazione che corrisponde al primo certificato intermedio. Se ne trova uno, applica tale voce; in caso contrario, cerca un gruppo di registrazioni per il certificato intermedio successivo e così via, nella catena fino alla radice.
Il servizio applica la prima voce trovata, in modo che:
- Se la prima voce di registrazione trovata è abilitata, il servizio effettua il provisioning del dispositivo.
- Se la prima voce di registrazione trovata è disabilitata, il servizio non effettua il provisioning del dispositivo.
- Se non viene trovata alcuna voce di registrazione per uno dei certificati nella catena di certificati del dispositivo, il servizio non effettua il provisioning del dispositivo.
Ogni certificato nella catena di certificati di un dispositivo può essere specificato in una voce di registrazione, ma può essere specificato in una sola voce nell'istanza del servizio Device Provisioning.
Questo meccanismo e la struttura gerarchica delle catene di certificati offrono una potente flessibilità nel modo in cui è possibile controllare l'accesso per singoli dispositivi e gruppi di dispositivi. Ad esempio, si suppongano cinque dispositivi con le catene di certificati seguenti:
- Dispositivo 1: certificato radice -> certificato A -> certificato 1
- Dispositivo 2: certificato radice -> Certificato A -> Certificato 2
- Dispositivo 3: certificato radice -> certificato A -> certificato 3
- Dispositivo 4: certificato radice -> certificato B -> certificato 4
- Dispositivo 5: certificato radice -> certificato B -> certificato 5
Inizialmente, è possibile creare un'unica voce di un gruppo di registrazioni abilitata per il certificato radice per abilitare l'accesso per tutti i dispositivi. Se il certificato B viene successivamente compromesso, è possibile creare una voce di un gruppo di registrazioni disabilitata per il certificato B in modo da impedire la registrazione del dispositivo 4 e del dispositivo 5. Se successivamente anche il dispositivo 3 viene compromesso, è possibile creare una voce di registrazione singola disabilitata per il certificato corrispondente. In questo modo, viene revocato l'accesso per il dispositivo 3, continuando a consentire la registrazione del dispositivo 1 e del dispositivo 2.