Matter 系列之 Commissioning

Matter 2022-08-20 3106 次浏览 次点赞


Commissioning

Commissioning 在 Matter 特指给一个新设备分配 Fabric 操作凭据的一系列流程。该流程中区分两个不同的角色,Commissioner 作为该流程的操作者, Commissionee 即为该新设备。

通常地,手机 App 作为这里的 Commissioner ,而我们购买的智能硬件作为 Commissionee。如下流程指示 Commissioning 流程的关键步骤。

Commissioning flow

Device discovery

区分的不同的 Commissioning 方法和产品形态,这里的设备发现可以是 Commissioner 发现 Commissionee ,也可以是 Commissionee 发现 Commissioner。 对于 Matter 里面约定为:

  • Commissionable Node 发现

    提示:Commissionable Node 即为发生 Commissioning 流程后的 Commissionee。
  • Commissioner 发现

当然在 Commissionee 成功加入 Fabric 后这里还包含 Operationnal 发现,对应如上图的倒数第二关键步骤。

在智能手机作为 Commissioner 的情形下通常是手机通过蓝牙或者基于 mDNS 的 DNS-SD 进行设备发现。是蓝牙还是 mDNS 取决于Commissioner 和 Commissionee 是否已经在同一个局域网,WiFi 设备通常需要是蓝牙,因为它还需要后续步骤配置用户家庭路由器的 SSID 和 Password,对于以太网设备插上网线即已经在同一局域网。发现 Commissionee 既可以发起后续的 Commissioning 流程。

当然如果 Commissionee 设备上有类似显示屏,可以交互,也可以由他通过 DNS-SD 发起 Commissioner 的发现然后发起 Commissioning 的初始化。

Connect to device (PASE)

一旦完成如上设备发现流程,即开始 Commissioning 阶段的安全会话建立。区分于最后一个步骤的 CASE 会话,PASE(Passcode Authenticated Session Establishment )会话主要是用以 Commissioning 阶段。PASE 是基于 SPAKE2+ 的口令认证和秘钥交换,即 Commissioner 设备通过二维码扫描或者 NFC 的方式从带外获取包含在 On Board Payloading 的 Passcode 信息,然后基于该口令彼此完成认证和秘钥协商,通过 ECDH 避免秘钥的直接的交换。

Get Commissionee information

一旦建立上 PASE 安全会话,Commissioner 将从 Commissionee 读取一些基础信息,例如 Basic Information Cluster 中的 厂商 ID、产品 ID、产品名称设备序号等, 当然也可以从 Descriptor Cluster 读取设备功能描述信息用以 App 界面的交互。

Regulatory config

同时,Commissioner 会对 Commissionee 进行一些常规信息配置,例如位置(室内、室外)或者地区信息。

Commissionee attestation

之后 Commissioner 会完成对 Commissionee 的设备认证,该流程主要是验证这是是否是一个合规的 Matter 设备。主要步骤是从设备获取 Device Attestation Certificate (DAC) 和 Product Attestation Intermediate (PAI) ,之后完成证书链的验证,即通过 DCL 获取的根证书完成 PAI 证书的验证,然后通过 PAI 完成 DAC 证书验签。然后使用 DAC 中公钥用以同设备进行签名/验签挑战。当然该过程中也会对 VID 、PID 信息就行验证。

Certificate Signing Request (CSR)

再后面 Commissioner 会发送证书签名请求给 Commissionee 让其准备秘钥对,用以完成后续的 NOC 证书签发,这里 NOC 即后续 Fabric 内单播通信 Certificate Authenticated Session Establishment (CASE) 的重要凭据。

Add Node Operational Certificate (NOC)

Commissioner 一旦完成 NOC 证书签发会通过 AddNOC 进行安装。当然 NOC 也是 2/3 级证书链结构,所以 Commissionee 会通过 AddTrustedRootCertReq 完整根或者中间证书的安装。需要说明的是 AddNOC 同时会指定一个管理员 Administrative Domain Manager (ADM) 用以后续对 Commissionee 的访问控制。

Network provisioning

对于 WiFi 设备或者 Thread 设备,这里通过ScanNetworksAddOrUpdateWifiNetworkConnectNetwork 完成网络的接入。以太网设备(网线)不需要该步骤。

Operational discovery

一旦 Commissionee 完成如上的网络配置和 Commissioner 在同一个网络(局域网/Thread 网络)。Commissioner 开始通过 DNS-SD 开始查找刚刚加入的 Commissionee 设备。这里的发现主要就是发现 IPv6 地址,一旦知道了IPv6 地址,就可以开始后续的安全会话建立。

CASE session establishment

Commissioner 一旦发现了新设备,开始通过 CASE 进行安全会话的建立,PASE 和 CASE 安全机制类似,主要是通过如上步骤安装的 NOC 证书进行双向认证,然后通过 ECDH 协商会话秘钥。

Commissioning complete

到这里,已经完成所有 Commissioning 步骤 ,需要通过 CASE 会话发送 CommissioningComplete 关闭 fail-safe 定时器,指示整个流程完成。


本文由 Jay 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处,点赞3

还不快抢沙发

添加新评论