在Matter(前身为Project CHIP)中,Commissioning是指将Fabric(网络结构)凭证分配给新设备的过程。Commissioner是执行Commissioning过程的设备。Commissionee是需要被加入到Fabric中的新设备。
在顶层流程上看,Commissioning流程可以分解为多个阶段:
1 设备发现
在开始Commissioning流程之前,Commissionee必须开始广播自身。可以使用三种 Commissionable Discovery方法之一来进行广播。Commissionee 还必须提供 onboarding payload(有效负载) Passcode 。
2 连接到设备(PASE)
一旦Commissioner看到广播并匹配了 Discriminator(识别码),Commissioner 使用来自 onboarding payload 的密码(Passcode)进行 Passcode Authenticated Session Establishment(PASE)以连接到设备。这是安全建立双方设备用于通信的密钥的方法。
在此步骤中,Commissioner还会启用一个故障安全机制。故障安全提供了一种方法,如果Commissioning未成功完成,可以将设备回滚到其原始状态。
3 获取Commissionee信息
Commissioner从Commissionee中读取所有描述信息。Descriptor Cluster 位于设备的 endpoint-0上,描述了所有其他 endpoint。Commissioner 还读取到包括供应商ID、产品ID、产品名称 、 序列号 、设备类型 在内的基本信息。
4 Regulatory 配置
Commissioner使用 SetRegulatoryConfig 命令在Commissionee上配置 Regulatory 信息。Regulatory 信息包括配置设备的位置(室内/室外/两者皆有)或设置国家代码。
5 Commissionee 合法性认证
-
Commissionee认证过程的目标是确定设备是否经过认证,是否是真正的Matter设备。
-
Commissioner从Commissionee中提取Device Attestation Certificate(DAC,设备认证证书)和 Product Attestation Intermediate(PAI,产品认证中间证书)证书。这些证书包含了供应商ID、产品ID和认证公钥。
-
APP一旦接收到证书,Commissioner发出一个认证请求,该请求应由 Attestation Private Key(认证私钥)签名,并使用此来建立Commissionee的真实性(Matter SDK)。
证书签名请求(CSR)
Commissioner向Commissionee发送证书签名请求(CSR)。Commissionee创建一个将在稍后的Certificate Authenticated Session Establishment(CASE,证书认证会话建立)中使用的唯一操作密钥对。Commissionee将生成的CSR信息返回给Commissioner。
添加节点操作证书(NOC)
Commissioner使用从Commissionee收到的CSR信息,并将其传递给 Administrative Domain Manager(ADM,管理域管理器)以生成可信的Node Operational Certificate(NOC,节点操作证书)。Commissioner使用AddTrustedRootCertReq命令在Commissionee上安装根证书,然后使用AddNOC命令安装节点操作证书。
网络配置
Commissioner在Commissionee上配置操作网络。这对于Thread或Wi-Fi设备是必要的。对于已经连接到网络的以太网设备,不需要此步骤。它使用ScanNetworks、AddOrUpdateWifiNetwork和ConnectNetwork命令。
操作发现
一旦新绑定入网的设备连接到网络,Commissioner使用操作发现来在操作网络中查找该节点。操作发现是通过使用DNS-SD在操作网络中查找已投入使用的节点的过程。
如果Commissionee是Wi-Fi设备,则将使用mDNS来发现该设备。
操作发现帮助Commissioner和网络中的其他节点知道Commissionee正在使用的IP地址和端口。
CASE会话建立
一旦新投入使用的节点被发现,Commissioner与该设备之间将建立一个CASE会话。此会话由Commissioner发起,并由设备响应。在此步骤中,操作证书将被交换,通过验证它们位于相同的逻辑Fabric中,建立共享信任。
Commissioning完成
Commissioner使用CASE向新投入使用的设备发送 CommissioningComplete 命令。这是Commissioning过程的最后一步。CommissioningComplete还会自动解除故障安全计时器的设置。一旦成功完成Commissioning,该设备将在操作网络上运行,就像操作网络上的任何其他节点一样。