The Fabric
对于 Fabric ,字面意思为织网,这里不翻译。Matter 定义为同一安全域下 Node 的集合,在该安全域下 Node 能够彼此认证建立安全通信。一个 Fabric 共享同一证书机构(Certificate Authority (CA))的根证书(Root of Trust),同时约定一个 Fabric ID。
在 Commissioning 过程中会为需要加入 Fabric 的 Node 分配证书,也就是 NOC。
基于如上安全特性,通常一个生态可以描述一个 Fabric,如上的 Google Fabric。一个设备可以同时加入多个 Fabric,也就是同时被多个生态使用,取决于设备能力。在 Matter 里这个重要功能被定义为 Multi-admin。
Operational credentials
这里详细介绍一个 Fabric 的 Operational 凭据。
- Root of Trust
即根证书, Commissioning 阶段会安装到设备上,之后可以通过管理员更新。通常一个生态为一个Trusted Root Certificate Authority (CA)。
- Node Operational Identifier
Operational Node ID,64位唯一数,在 Fabric 下设备唯一标识符。
- Node Operational Certificate
同一 Fabric 通信认证凭据,如下流程产生。
如上流程流程指示了 NOC 凭据安装的7个重要步骤,虚线框为需要加入 Fabric 的 Commissioniee 设备。
Commissioner 发起证书签名请求的请求
CSRRequest
。提示:
CSRRequest
,Certificate Signing Request Request,所以这里是证书签名请求的请求。- Commissionee 生成唯一秘钥对以及其他可选信息包含在
nocsr_tbs
。 - Commissionee 同时会对
nocsr_tbs
签名产生attenstation signature
。 - 包含
nocsr_tbs
和attenstation signature
通过CSRResponse
回复 Commissioner。 - Commissioner 完成验签后转到到 CA 进行公钥签名。
- CA 返回 NOC 证书。
- Commissioner 通过
AddNoc
命令完成 NOC证书的安装。
Multi-Admin
前面已经介绍,一个设备可以同时加入多个 Fabric,彼此通信安全独立。所以对于一个 Matter 设备可能包含多个 NOC 证书凭据,尽管在多个 Fabric 下 Data Model、 WiFi凭据等信息在多个 Fabric 的管理员之间共享,但是 NOC 凭据不会被共享。
同一个平台可以进行分享吗
同一平台的相同 Fabric 分享没啥意义,也不存在分享。如果你作为平台,同时新建两个 Fabric,之间是可以分享的,实际 iOS 也是这么做的。默认添加了 Apple Keychain,再分享到 Apple Home。
目前Matter相关的中文资料还是挺少的,好奇楼主都是自己理解、翻译和整理的吗
是的,当时因为是 Core Specification 还未公开,所以这一系列文档是来自 Google 公开的 Matter 开发文档。