Mise en service

La mise en service dans Matter correspond au processus d'attribution d'identifiants Fabric à un nouvel appareil. L'élément mis en service est l'appareil qui assure le processus de mise en service. L'élément mis en service est le nouvel appareil qui doit être mis en service dans Fabric.

De manière générale, le flux de mise en service peut être divisé en plusieurs étapes :

Flux de mise en service
Figure 1 : Flux de mise en service (niveau élevé)

Détection d'appareils

Avant le début du flux de mise en service, l'élément mis en service doit commencer à s'annoncer. Il peut s'annoncer à l'aide de l'une des trois méthodes de détection pouvant être mises en service. Il doit également fournir la charge utile d'intégration.

Se connecter à l'appareil (PASE)

Une fois que l'élément mis en service a vu l'annonce et correspond au discriminateur, il utilise le code secret de la charge utile d'intégration pour établir Passcode Authenticated Session Establishment (PASE) afin de se connecter à l'appareil. Il s'agit de la méthode permettant d'établir de manière sécurisée des clés que les deux appareils pourront utiliser pour communiquer. À cette étape, l'élément mis en service arme également un mécanisme de sécurité. Ce mécanisme permet de rétablir l'état d'origine de l'appareil si la mise en service n'aboutit pas.

Obtenir des informations sur l'élément mis en service

L'élément mis en service lit tous les descripteurs de l'élément mis en service. Le DescriptorCluster se trouve sur le point de terminaison 0 de l'appareil et décrit tous les autres points de terminaison. L'élément mis en service lit également le cluster d'informations de base, qui inclut des informations telles que l'ID du fournisseur, l'ID du produit, le nom du produit et le numéro de série. À cette étape, l'élément mis en service lit également le type d'appareil de l'élément mis en service, ce qui permet de déterminer l'expérience utilisateur côté élément mis en service.

Configuration réglementaire

L'élément mis en service configure les informations réglementaires sur l'élément mis en service à l'aide de la commande SetRegulatoryConfig. Les informations réglementaires incluent des informations telles que la configuration de l'emplacement (intérieur/extérieur/les deux) de l'appareil ou la configuration du code pays.

Attestation de l'élément mis en service

L'objectif de la procédure d'attestation de l'élément mis en service est de déterminer si un appareil a été certifié et s'il s'agit d'un véritable appareil Matter. L'élément mis en service extrait le certificat d'attestation de l'appareil (DAC) et le certificat intermédiaire d'attestation du produit (PAI) de l'élément mis en service. Ces certificats contiennent l'ID du fournisseur, l'ID du produit et la clé publique d'attestation. Une fois les certificats reçus, l'élément mis en service effectue une demande de défi qui doit être signée par la clé privée d'attestation et l'utilise pour établir l'authenticité de l'élément mis en service.

Demande de signature de certificat (CSR)

L'élément mis en service envoie une demande de signature de certificat (CSR) à l'élément mis en service. L'élément mis en service crée une paire de clés opérationnelles unique qui sera utilisée ultérieurement dans une Certificate Authenticated Session Establishment (CASE). L'élément mis en service renvoie les informations CSR résultantes à l'élément mis en service.

Ajouter un certificat opérationnel de nœud (NOC)

L'élément mis en service utilise les informations CSR reçues de l'élément mis en service et les transmet au gestionnaire de domaine administratif (ADM) pour générer un certificat opérationnel de nœud (NOC) de confiance. L'élément mis en service installe le certificat racine sur l'élément mis en service à l'aide de la commande AddTrustedRootCertReq, puis installe le certificat opérationnel de nœud à l'aide de la commande AddNOC.

Mise en service du réseau

L'élément mis en service configure le réseau opérationnel sur l'élément mis en service. Cette étape est nécessaire pour les appareils Thread ou Wi-Fi. Elle n'est pas nécessaire pour les appareils Ethernet, car l'appareil est déjà connecté au réseau. Elle utilise les commandes ScanNetworks, AddOrUpdateWifiNetwork et ConnectNetwork.

Détection opérationnelle

Une fois le nouveau nœud mis en service connecté au réseau, l'élément mis en service utilise la détection opérationnelle pour trouver le nœud sur le réseau opérationnel. La détection opérationnelle est le processus par lequel les nœuds mis en service sont trouvés sur le réseau opérationnel à l'aide de DNS-SD. Si l'élément mis en service est un appareil Wi-Fi, il utilise mDNS pour le détecter.

La détection opérationnelle permet à l'élément mis en service et aux autres nœuds du réseau de connaître l'adresse IP et le port utilisés par l'élément mis en service.

Établissement de session CASE

Une fois le nouveau nœud mis en service détecté, une CASE session est établie entre l'élément mis en service et l'appareil. Cette session est lancée par l'élément mis en service et l'appareil y répond. À cette étape, les certificats opérationnels sont échangés et une confiance partagée est établie en validant qu'ils se trouvent dans le même Fabric logique.

Mise en service terminée

L'élément mis en service utilise CASE pour envoyer la commande CommissioningComplete au nouvel appareil mis en service. Il s'agit de la dernière étape du processus de mise en service. CommissioningComplete désarme également automatiquement le minuteur de sécurité. Une fois la mise en service terminée, l'appareil fonctionne comme n'importe quel autre nœud du réseau opérationnel.