调试

Matter 中,调试是指为新设备分配 Fabric 凭据的过程。调试器是执行调试过程的设备。被调试设备是需要预配到 Fabric 中的新设备。

从宏观层面来看,调试流程可以分为多个阶段:

调试流程
图 1:调试流程 - 宏观层面

设备发现

在调试流程开始之前,被调试设备必须开始自行宣传。被调试设备可以使用三种 可调试发现 方法中的任何一种来宣传自己。被调试设备还必须提供初始配置有效负载。

连接到设备 (PASE)

调试器看到宣传内容并匹配判别器后,调试器会使用初始配置载荷中的密码执行Passcode Authenticated Session Establishment (PASE)来连接到设备。此方法用于安全地建立两个设备都能够用来建立通信的密钥。在此步骤中,调试器还会启用故障保护机制。如果调试未成功完成,故障保护机制提供了一种将设备回滚到原始状态的方法。

获取被调试设备信息

调试器会从被调试设备读取所有描述符。DescriptorCluster 位于设备的端点 0 上,并描述了所有其他端点。调试器还会读取基本信息集群,其中包括供应商 ID、产品 ID、产品名称和序列号等信息。在此步骤中,调试器还会读取被调试设备的设备类型,这有助于在调试器端提供良好的用户体验。

监管配置

调试器使用 SetRegulatoryConfig 命令在被调试设备上配置监管信息。监管信息包括配置设备的位置(室内/室外/两者)或设置国家/地区代码等信息。

被调试设备证明

被调试设备证明过程的目标是确定设备是否已通过认证,以及是否是正品 Matter 设备。调试器从被调试设备提取设备证明证书 (DAC)产品证明中间 (PAI) 证书。 这些证书包含供应商 ID、产品 ID 和证明公钥。收到证书后,调试器会发出质询请求,该请求应由证明私钥签名,并使用该请求来确定被调试设备的真实性。

证书签名请求 (CSR)

调试器向被调试设备发送证书签名请求 (CSR)。 被调试设备会创建一个唯一的运行密钥对,该密钥对将在稍后的 Certificate Authenticated Session Establishment (CASE) 中使用。被调试设备会将生成的 CSR 信息返回给调试器。

添加节点运行证书 (NOC)

调试器使用从被调试设备收到的 CSR 信息,并将其传递给管理网域管理器 (ADM) 以生成受信任的节点运行证书 (NOC)。调试器使用 AddTrustedRootCertReq 命令在被调试设备上安装根证书,然后使用 AddNOC 命令安装节点运行证书。

网络预配

调试器在被调试设备上配置运行网络。Thread 或 Wi-Fi 设备需要执行此 步骤。以太网设备不需要执行此步骤,因为设备已连接到网络。它使用 ScanNetworksAddOrUpdateWifiNetworkConnectNetwork 命令。

运行发现

新调试的节点连接到网络后,调试器 会使用 运行发现 功能在运行网络上查找该节点。运行发现是指使用 DNS-SD 在运行网络上查找已调试节点的过程。如果被调试设备是 Wi-Fi 设备,它将使用 mDNS 来发现设备。

运行发现有助于调试器和网络中的其他节点了解被调试设备正在使用的 IP 地址和端口。

CASE 会话建立

发现新调试的节点后, CASE会话会在调试器与 设备之间建立。此会话由调试器发起,并由设备响应。在此步骤中,系统会交换运行证书,并通过验证它们是否位于同一逻辑 Fabric 中来建立共享信任。

调试完成

调试器使用 CASE 向新调试的设备发送 CommissioningComplete 命令。这是调试过程中的最后一步。CommissioningComplete 还会自动停用故障保护计时器。成功完成调试后,设备将像运行网络上的任何其他节点一样运行。