Attestation de certificat X.509

Cet article décrit les concepts impliqués dans le provisionnement d’appareils avec une attestation de certificat X.509 dans le service Device Provisioning (DPS). Cet article concerne toutes les personnes impliquées dans la préparation d’un appareil pour le déploiement.

Les certificats X.509 peuvent être stockés dans un module de sécurité matériel HSM.

Conseil

Nous vous recommandons vivement d’utiliser un module HSM avec les appareils pour stocker en toute sécurité des secrets, comme le certificat X.509, sur vos appareils en production.

Provisionnement d’appareils avec des certificats X.509

Utiliser des certificats X.509 comme mécanisme d’attestation est un excellent moyen de mettre à l’échelle la production et de simplifier le provisionnement des appareils. Les certificats X.509 sont généralement organisés en une chaîne d’approbation de confiance dans laquelle chaque certificat est signé par la clé privée du certificat plus élevé suivant, et ainsi de suite, pour aboutir à un certificat racine auto-signé. Cette disposition établit une chaîne de confiance déléguée partant du certificat racine généré par une autorité de certification racine approuvée et passant par chaque certificat intermédiaire pour aboutir au certificat final installé sur un appareil. Pour plus d’informations, consultez Authentification des appareils à l’aide de certificats d’autorité de certification X.509.

La chaîne de certificats représente souvent une hiérarchie logique ou physique associée aux appareils. Par exemple, un fabricant peut créer la hiérarchie de certificats suivante :

  • Un certificat d’autorité de certification racine auto-signé commence la chaîne de certificats.
  • Le certificat racine génère un certificat d’autorité de certification intermédiaire unique pour chaque usine.
  • Chaque certificat d’usine génère un certificat d’autorité de certification intermédiaire unique pour chaque ligne de production de l’usine.
  • Le certificat de ligne de production génère un certificat d’appareil unique (entité finale) pour chaque appareil fabriqué dans la ligne.

Pour plus d’informations, consultez Informations conceptuelles sur les certificats de l’autorité de certification X.509 dans l’industrie IoT.

Certificat racine

Un certificat racine est un certificat X.509 auto-signé représentant une autorité de certification. Il constitue la dernière étape, ou ancre d’approbation, de la chaîne d’approbation. Les certificats racine peuvent être émis automatiquement par une organisation ou achetés à partir d’une autorité de certification racine. Le certificat racine est également appelé certificat d’autorité de certification racine.

Certificat intermédiaire

Un certificat intermédiaire est un certificat X.509 qui a été signé par le certificat racine (ou par un autre certificat intermédiaire contenant le certificat racine dans sa chaîne) et peut également signer de nouveaux certificats. Le dernier certificat intermédiaire dans une chaîne signe le certificat feuille. Un certificat intermédiaire est également appelé certificat d’autorité de certification intermédiaire.

Les certificats intermédiaires sont utilisés de diverses façons. Par exemple, ils peuvent être utilisés pour regrouper des appareils par gamme de produits, par clients qui achètent des appareils, divisions d’entreprise ou usines.

Imaginez que Contoso est une grande entreprise avec sa propre infrastructure à clé publique (PKI) utilisant le certificat racine nommé ContosoRootCert. Chaque filiale de Contoso a son propre certificat intermédiaire signé par ContosoRootCert. Chaque filiale utilise son certificat intermédiaire pour signer ses certificats feuille pour chaque appareil. Dans ce scénario, Contoso peut utiliser une seule instance DPS où ContosoRootCert est un certificat vérifié. Ils peuvent avoir un groupe d’inscription de certificats pour chaque filiale. De cette façon, chaque filiale individuelle n’a pas besoin de vérifier les certificats.

Certificat « feuille» d’entité finale

Un certificat feuille, ou certificat d’entité finale, identifie le détenteur du certificat. Il comporte le certificat racine dans sa chaîne de certificats et zéro ou plusieurs certificats intermédiaires. Le certificat feuille n’est pas utilisé pour signer d’autres certificats. Il identifie de façon unique un appareil dans le service de provisionnement et est parfois appelé certificat d’appareil. Pendant l’authentification, un appareil utilise la clé privée associée à ce certificat pour répondre à une question de vérification de possession émise par le service.

Les certificats feuille utilisés avec les entrées d’inscription individuelle doivent avoir le nom commun (CN) d’objet défini sur l’ID d’inscription. L’ID d’inscription identifie l’inscription de l’appareil auprès de DPS et doit être unique au sein de l’instance DPS (étendue de l’ID) auprès de laquelle l’appareil s’inscrit.

Pour les groupes d’inscription, le nom commun (CN) d’objet définit l’ID d’appareil inscrit dans IoT Hub. L’ID de l’appareil s’affiche dans la section Enregistrements d’inscription de l’appareil authentifié dans le groupe d’inscription. Pour les inscriptions individuelles, l’ID d’appareil peut être défini dans l’entrée d’inscription. S’il n’est pas défini dans l’entrée d’inscription, le nom commun (CN) sujet du certificat sera utilisé.

Pour plus d’informations, consultez Authentifier des appareils signés avec des certificats d’autorité de certification X.509.

Contrôler l’accès des appareils avec des certificats X.509

Le service de provisionnement expose deux types d’inscriptions de certificats que vous pouvez utiliser pour contrôler l’accès aux appareils avec le mécanisme d’attestation X.509 :

  • Les entrées d’inscription individuelle sont configurées avec le certificat d’appareil associé à un appareil spécifique. Ces entrées contrôlent l’inscription d’appareils spécifiques.
  • Les entrées de groupe d’inscriptions sont associées à un certificat d’autorité de certification intermédiaire ou racine spécifique. Ces entrées contrôlent les inscriptions de tous les appareils dont la chaîne de chaîne d'approbation contient ce certificat racine ou intermédiaire.

Un certificat ne peut être spécifié que dans une seule entrée d’inscription de votre instance DPS.

Prise en charge du protocole Mutual TLS

Lorsque les inscriptions DPS sont configurées pour l’attestation X.509, le protocole Mutual TLS (mTLS) est pris en charge par DPS.

Exigences de la chaîne d’appareils DPS

Quand un appareil tente une inscription avec DPS en utilisant un groupe d’inscription, l’appareil doit envoyer la chaîne de certificats du certificat feuille vers un certificat vérifié. Sinon, l’authentification échoue.

Par exemple, si seul le certificat racine est vérifié et qu’un certificat intermédiaire est téléchargé vers le groupe d’inscription, l’appareil doit présenter la chaîne de certificats du certificat feuille au certificat racine vérifié. Cette chaîne de certificats inclura l’ensemble des certificats intermédiaires entre les deux. L’authentification échoue si DPS ne peut pas suivre la chaîne de certificats jusqu’à un certificat vérifié.

Par exemple, imaginez une entreprise qui utilise la chaîne d’appareils suivante pour un appareil.

Diagramme montrant un exemple de chaîne de certificats d’appareil.

Dans cet exemple, le certificat racine est vérifié avec DPS et le certificat intermediate2 est chargé dans le groupe d’inscription.

Diagramme mettant en évidence les certificats racine et intermediate2 chargés dans DPS.

Si l’appareil envoie uniquement la chaîne d’appareil suivante pendant le provisionnement, l’authentification échoue. C’est parce que DPS ne peut pas tenter d’authentification en supposant la validité du certificat intermediate1.

Diagramme montrant l’échec de l’authentification de la chaîne de certificats parce qu’elle n’est pas chaînée à la racine.

Si l’appareil envoie la totalité de la chaîne d’appareils comme suit lors de l’approvisionnement, DPS peut tenter d’authentifier l’appareil.

Diagramme montrant un exemple de chaîne de certificats d’appareil correcte.

Ordre des opérations DPS avec certificats

Quand un appareil se connecte au service de provisionnement, le service parcourt sa chaîne de certificats en commençant par le certificat d’appareil (feuille) et recherche une entrée d’inscription correspondante. Il utilise la première entrée qu’il trouve dans la chaîne pour déterminer s’il faut provisionner l’appareil. Donc, s’il existe une inscription individuelle pour le certificat d’appareil, le service de provisionnement applique cette entrée. S’il n’y a pas d’inscription individuelle pour l’appareil, le service recherche un groupe d’inscription qui correspond au premier certificat intermédiaire. S’il en trouve une, il applique cette entrée. Sinon, il recherche un groupe d’inscription pour le certificat intermédiaire suivant, et ainsi de suite en remontant la chaîne jusqu’à la racine.

Le service applique la première entrée qu’il trouve, comme suit :

  • Si la première entrée d’inscription trouvée est activée, le service provisionne l’appareil.
  • Si la première entrée d’inscription trouvée est désactivée, le service ne provisionne pas l’appareil.
  • Si aucune entrée d’inscription n’est trouvée pour aucun des certificats dans la chaîne de certificats de l’appareil, le service ne provisionne pas l’appareil.

Chaque certificat de la chaîne de certificats d’un appareil peut être spécifié dans une entrée d’inscription, mais il peut être spécifié dans une seule entrée de l’instance DPS.

Ce mécanisme et la structure hiérarchique des chaînes de certificats vous donne de la flexibilité pour contrôler l’accès des appareils individuels et des groupes d’appareils. Par exemple, imaginez cinq appareils avec les chaînes d’approbation suivantes :

  • Appareil 1 : certificat racine -> certificat A -> certificat de l’appareil 1
  • Appareil 2 : certificat racine -> certificat A -> certificat de l’appareil 2
  • Appareil 3 : certificat racine -> certificat A -> certificat de l’appareil 3
  • Appareil 4 : certificat racine -> certificat B -> certificat de l’appareil 4
  • Appareil 5 : certificat racine -> certificat B -> certificat de l’appareil 5

Au départ, vous pouvez créer une entrée de groupe d’inscriptions activée unique pour le certificat racine afin de permettre l’accès pour les cinq appareils. Si, par la suite, le certificat B est compromis, vous pouvez créer une entrée de groupe d’inscriptions désactivée pour le certificat B afin d’empêcher l’inscription de l’appareil 4 et de l’appareil 5. Si, un peu plus tard, l’appareil 3 est compromis, vous pouvez créer une entrée d’inscription individuelle désactivée pour son certificat. Cette opération révoque l’accès de l’appareil 3, mais permet quand même à l’appareil 1 et à l’appareil 2 de s’inscrire.