The Fabric

Maintenant que nous avons compris certains concepts clés d'un nœud, nous allons analyser ce qui permet aux appareils de communiquer entre eux.

La spécification Matter utilise des méthodes sophistiquées pour chiffrer et déchiffrer les informations, ainsi que des mécanismes sécurisés pour garantir l'identité d'un nœud et partager les identifiants cryptographiques.

Lorsqu'un ensemble d'appareils d'un réseau partage le même domaine de sécurité et permet ainsi une communication sécurisée entre les nœuds, il est désigné par le terme "Fabric". Les fabrics partagent le même certificat de premier niveau de l'autorité de certification (CA) (racine de confiance) et, dans le contexte de l'autorité de certification, un identifiant unique de 64 bits nommé ID de fabric.

Le processus de mise en service consiste à attribuer les identifiants Fabric à un nouveau nœud afin qu'il puisse communiquer avec les autres nœuds du même Fabric.

Identifiants opérationnels

La racine de confiance est définie sur un nœud lors de la mise en service par le commissaire, généralement un appareil doté d'une interface utilisateur graphique, tel qu'un smartphone, un hub ou un ordinateur, après l'avoir reçue d'un gestionnaire de domaine administratif (ADM), qui sera souvent un écosystème agissant en tant qu'autorité de certification racine de confiance (AC).

Le commissaire a accès à l'AC. Il demande donc les identifiants opérationnels du nœud à l'autorité de certification au nom du nœud en cours de mise en service ou du bénéficiaire de la mise en service. Les identifiants se composent de deux parties :

L'identifiant opérationnel du nœud (ou ID de nœud opérationnel) est un nombre de 64 bits qui identifie de manière unique chaque nœud du tissu.

Le certificat opérationnel de nœud (NOC) est l'ensemble des identifiants que les nœuds utilisent pour communiquer et s'identifier dans un Fabric. Ils sont générés par le processus de demande de signature de certificat opérationnel de nœud (NOCSR).

NOCSR est une procédure qui s'exécute sur le nœud en cours de mise en service. Il lie plusieurs éléments cryptographiques, puis les envoie au commissaire, qui demande l'avis de non-objection correspondant à l'écosystème de l'autorité de certification. La figure 1 illustre cette arborescence de dépendances et l'ordre dans lequel certaines opérations se produisent.

Dépendances de la génération de NOC
Figure 1 : Dépendances de la génération de NOC

Bien qu'il soit important de comprendre chaque élément cryptographique pour le développement du SDK, l'analyse complète de leur rôle et de leurs implications ne fait pas partie du champ d'application de ce guide. Il est important de noter les points suivants :

  • Les NOC sont émis par l'écosystème de l'autorité de certification sur des fabrics de production réels.
  • Les NOC sont liés de manière cryptographique à la paire de clés opérationnelles du nœud (NOKP) unique.
  • La clé NOKP est générée par le nœud en cours de mise en service lors du processus de mise en service.
  • Les informations NOCSR envoyées à l'écosystème incluent la clé publique opérationnelle du nœud, mais la clé privée opérationnelle du nœud n'est jamais envoyée au commissaire ni à l'autorité de certification.
  • Le processus NOCSR utilise les entrées de la procédure d'attestation, signe les informations CSRSR et valide ainsi la demande de l'autorité de certification pour générer un NOC approuvé.

La procédure d'attestation est utilisée par le commissaire pour certifier que :

  • L'appareil a été certifié Matter.
  • L'appareil est bien ce qu'il prétend être : il prouve de manière cryptographique son fournisseur, son ID de produit et d'autres informations de fabrication.

Multi-administrateur

Les nœuds peuvent également être mis en service sur plusieurs Fabrics. Cette propriété est souvent appelée "multi-administrateur". Par exemple, un appareil peut être mis en service à la fois dans le Fabric du fabricant et dans celui d'un écosystème cloud. Chaque Fabric gère un ensemble différent de communications chiffrées et fonctionne de manière indépendante.

Comme plusieurs Fabrics peuvent coexister, un appareil peut avoir plusieurs ensembles d'identifiants opérationnels de nœud. Toutefois, le modèle de données du nœud est partagé : les attributs, les événements et les actions du cluster sont communs aux fabrics. Ainsi, bien que les identifiants Thread et/ou Wi-Fi soient définis lors du processus de mise en service, ils font partie du cluster opérationnel de mise en réseau, partagés entre tous les Fabrics et faisant partie du DM du nœud, et non des identifiants Fabric.