Matter Commissioning

5.5 Commissioning流程

两种流程:并发和非并发

并发的Commissioner 和Commissionee具有两个网络,一个是控制网络就是配网后的wifi或者家庭Thread。另一个是Commission网络。可以在相同或者不同的网络上。

General Commissioning Cluster的SupportsConcurrentConnection可以判断是否支持并发Commission

  1. 启动调试的专员应具有可用的监管和结构信息,并且应具有准确的日期、时间和时区。

  2. 委托人和委托人应使用发现过程通过蓝牙、Wi-Fi 或以太网等网络接口找到对方,并在彼此之间建立委托通道(参见第 5.4 节“设备发现”)。

  3. 委托人和委托人应在委托通道上使用 PASE(参见第 4.13.1 节“密码验证会话建立 (PASE)” )建立加密密钥。调试通道上的所有后续消息都使用 PASE 派生的加密密钥进行加密。在 PASE 会话建立完成后,委托人应自动将故障安全计时器设置为 60 秒超时。这是为了防止 Commissioner 在没有启用故障安全装置的情况下中止调试过程,这可能会使设备无法接受额外的连接。

  4. 专员应在 PASE 会话建立完成后 60 秒内使用 ArmFailSafe 命令(参见第 11.9.7.2 节“ArmFailSafe 命令” )将受托人上的故障安全计时器重新设置为所需的调试超时。在调用ArmFailSafe命令之前,委托人可以通过读取 BasicCommissioningInfo 属性(参见第 11.9.6.2 节“BasicCommissioningInfo 属性” )从委托人处获取设备信息,包括有关故障安全值的指南。

  5. 如果委托人在其 FeatureMap 中设置了(即 Wi-Fi)或(即线程)功能标志的任何端点上至少有一个网络调试集群实例,则委托人应在委托人中配置监管信息。如果委托人支持时间集群,委托人应该配置 UTC 时间、时区和 DST 偏移量。此信息的配置顺序并不重要。UTC 时间使用 SetUtcTime 命令(参见第 11.16.7.1 节“SetUtcTime 命令”)配置,而时区和 DST 偏移量通过 TimeZone(参见第 11.16.6.6 节“TimeZone 属性”)和 DstOffset 属性(参见第 11.16.6.7 节)设置, “DstOffset 属性”WITH), 分别。使用 SetRegulatoryConfig 配置监管信息(请参阅第 11.9.7.4 节“SetRegulatoryConfig 命令”)。

  6. 专员应确定受托人作为经过认证的物质设备的真实性(参见第 6.2.3 节“设备证明程序”)。

    • 如果受托人出于任何原因未能通过设备证明程序,则受托人可以根据依赖于实施的政策选择继续进行试运行或终止试运行。

    • 一旦程序失败,委托人应该警告用户委托人不是完全可信的设备,并且可以让用户选择授权或拒绝委托。这样的警告使用户能够选择 Commissionee 对其 Fabric 的信任,用于开发工作流程以及自制设备开发。这样的警告应该包含委托人可以提供的关于委托人的尽可能多的信息,并且应该适应失败的原因,例如在过期证书的情况和签名验证失败的情况之间有所不同。

    • 设备证明程序失败的原因可能包括但不限于以下内容:

      • 委托人属于当前正在开发或尚未获得认证的设备类型(请参阅认证声明中的certification_type )。

      • 委托人的 PAA 不在委托人的信任集中。

      • 专员获悉出示的PAA 或 PAI 证书已被撤销,或特定的设备认证证书已被撤销。

      • 由于程序错误、恶意或其他原因,委托人未能证明拥有设备认证私钥。

      • 委托人的设备认证证书链的元素之一不符合设备认证程序的策略验证步骤,包括有效期错误。

    • 如果 Commissioner 出于任何原因拒绝调试,它应该以足够的详细信息通知用户原因,以便用户理解原因,以便他们可以确定是否可以使用不同的 Commissioner 来调试设备。

  7. 在设备证明程序做出继续调试的决定之后,委托人应使用 CSRRequest 命令(参见第 11.17.7.5 节,“CSRRequest 命令”)向委托人请求操作 CSR。CSRRequest 命令将导致在委托方生成新的操作密钥对。

  8. 专员应在收到来自受托人的 CSRResponse 命令(参见第 11.17.7.5 节,“CSRRequest 命令”)后,使用特定于实现的方式生成或以其他方式获取包含操作 ID 的操作证书。

  9. 委托人应使用AddTrustedRootCertificate和AddNOC命令在委托人上安装操作凭证(参见图 38,“节点操作凭证流程”) 。

  10. Commissioner 可以以任何它认为合适的方式在 Commissionee 上配置访问控制列表(参见Access Control Cluster ),如果在上一步中命令添加的单数条目为命令提供的节点 ID授予对CASEAddNOC身份验证类型的管理特权不足以表达其所需的访问控制策略。

  11. 如果委托人既支持又需要它,委托人应使用 AddOrUpdateWiFiNetwork(参见第 11.8.8.4 节“AddOrUpdateWiFiNetwork 命令”)和 AddOrUpdateThreadNetwork(参见第 11.8.8.5 节“AddOrUpdateThreadNetwork 命令”)等命令在委托人处配置操作网络). 如果委托人尚未在所需的运营网络上,则需要进行网络调试。Commissionee 支持网络调试,如果它有任何NetworkCommissioning集群实例。委托人可以使用 ScanNetworks 命令了解委托人可见的网络(请参阅第 11.8.8.2 节“ScanNetworks 命令”)。

  12. 委托人应触发委托人使用 ConnectNetwork 命令(参见第 11.8.8.10 节“连接网络命令” )连接到操作网络,除非委托人已经在所需的操作网络上。

  13. 调试过程的最终定稿开始。由专员在委托人的 ACL 中配置的管理员应使用操作发现来发现委托人。该管理员可以是专员本身,或专员已将任务委派给的另一个节点。

  14. 管理员应通过运营网络与受托人开启一个 CASE(参见第 4.13.2 节“证书认证会话建立(CASE)”)会话。

  15. 在前面的步骤中通过操作网络与受托人建立了 CASE 会话的管理员应调用 CommissioningComplete 命令(参见第 11.9.7.6 节,“CommissioningComplete 命令”)。调用 CommissioningComplete 命令后的成功响应结束调试过程。

虽然在许多情况下,第 13-15 步的管理员将是专员节点本身,但它可能是由专员配置的另一个节点,具有针对专员的一般调试集群的管理权限。这是为了支持在完成调试时的灵活性。从委托人的角度来看,一旦节点在其刚刚委托的结构上具有节点操作证书和关联的节点操作标识符,委托人的ACL中所有具有管理权限的节点都是等效的。

委托人可以配置 UTC 时间、操作 ID 和操作证书等,在委托人处,在委托完成后通过操作网络,或在 PASE 派生的加密密钥被激活后通过委托通道进行任意数量的交互的信息在调试期间建立。

在并发连接调试流程中,调试通道应在成功执行第 15 步(CommissioningComplete 命令调用)后终止。在非并发连接调试流程中,调试通道应在第 12 步成功后终止(触发在受托人处加入运营网络)。调试通道终止时,应删除 PASE 派生的加密密钥。一旦委托人收到 CommissioningComplete 命令,委托人和委托人均应终止 PASE 会话。

在并发连接调试流程和非并发连接调试流程中,Commissioner 可以选择继续调试并覆盖步骤 6 中的失败(Commissionee attestation)。

并发Commission

Matter Commissioning_第1张图片

非并发

Matter Commissioning_第2张图片

5.6.Administrator 辅助的Commission 步骤

Administrator使用 Open Commissioning Window 让设备进入Commission状态。

有两种方式:

1. Basic Commissioning Method (BCM) 基本,可选

Administrator通过CASE向节点发送Open Commissioning Window的命令,节点收到命令后,应通过 DNS-SD进行发现广播。

新的Administrator进行Commissiong配置。

2.Enhanced Commissioning Method (ECM) 增强 ,必选

节点和委托人/管理员必须实施此方法。使用 ECM 时,节点的当前管理员通过CASE会话指示节点进入打开调试窗口。它应选择一个新的RANDOM密码并计算并发送相应的PAKE密码验证器给节点。密码的实际值不得发送到节点。当前的管理员然后如下所述提供新的密码和鉴别器。在收到开放调试窗口后,节点应通过 DNS-SD 通告其存在(参见第 5.4.2.7 节“使用现有的 IP 承载网络”和可调试节点发现)命令。Sleepy Nodes 应该在它们的 TXT 广告中包含可选的SII密钥。

5.6.3.1. 介绍 ECM 的载入有效载荷

根据第一个打开 OCW 的管理员的能力,至少应使用以下一种或多种方法显示密码和其他相关信息:

  1. 如果支持用户界面显示,则应使用 11 位变体使用手动配对代码的文本表示来显示临时载入有效负载:它不应包含VENDOR_IDPRODUCT_ID作为使用 ECM 的节点载入不能受用户意图或自定义流程的约束。

  2. 如果支持用户界面显示,临时 Onboarding Payload 也应该使用第 5.1.3 节“QR 代码”中包含的定义显示,但要遵守以下限制:

    1. 如果只有一个节点受到 ECM 的影响,则载入有效负载中的供应商 ID 和产品 ID应与该节点的相同。

    2. 如果多个节点使用相同的载入有效载荷接受 ECM ,则供应商 ID 应设置为0x0000(事项标准)并且产品 ID 应设置为(与设备公告中宣传产品 ID0x0000所使用的值一致) .

    3. Custom Flow元素应设置0为指示标准流。

    4. 应仅设置第Discovery Capabilities Mask2 位以指示节点仅可在 IP 网络上发现。

    5. Passcode元素应由现有管理员设置为与为此 ECM 操作选择的密码相同的值。

    6. Discriminator元素应由现有管理员设置为与第 11.18.8.1 节“OpenCommissioningWindow (OCW) 命令”Discriminator中的参数相同的值。

    7. 如果多个节点受 ECM 约束,第 5.1.5 节“TLV 内容”应包含一个条目,kTag_NumberofDevices其中包含预期参与此 ECM 操作的载入的设备数量。

    8. 当 OCW 命令的调试超时参数设置为小于允许的最大值(15 分钟)时,第 5.1.5 节“TLV 内容”应包含一个条目,kTag_CommissioningTimeout其中包含用于此 ECM 操作的调试超时参数的值.

  3. 如果仅支持音频输出,则应使用手动配对代码格式的语音提示传送临时入职有效载荷。应该有一种方法可供用户重复配对代码。

远程用户界面,包括视觉和音频——例如制造商特定的移动应用程序或网络用户界面——在用于传输入职信息的可接受机制集中被明确允许。

Commissioning Window此方法允许当前管理员设置多个节点,以通过打开“打开调试窗口”并将PAKE密码验证器发送到一系列节点来与具有适当 的新管理员进行调试。新管理员使用手动配对代码中的信息来发现处于调试模式的节点并使用新密码调试它们。

以下步骤描述了 ECM 调试的可能事件顺序:

  1. 当前管理员使用新的设置密码将节点置于指定时间窗口的调试模式,并从相关节点接收有关“打开调试窗口”命令的成功响应。

    1. 当目标节点中有一个或多个SED时,当前管理员可以指导用户执行一些操作以将这些设备从它们的睡眠周期中“唤醒”。

  2. 当前管理员如上所述提供入职有效负载。

  3. 新管理员使用图 30“并发连接调试流程”中概述的步骤在规定的窗口内完成调试

5.7.设备三种Commissiong流程

  • Standard Commissioning Flow

  • User-Intent Commissioning Flow

  • Custom Commissioning Flow

你可能感兴趣的:(Matter,iot)