Matter 必知必会

人人都会的 Matter

Posted by Hurshi on 2023.05.13

专有名词

名词 中文解释 英文全称
DCL 分布式加密安全网络 distributed compliance ledger
PKI 设备认证公钥基建 Device Attestation Public Key Infrastructure
PAA 产品认证机构 Product Attestation Authority
PAI 中间产品认证,由 PAA 签发 Product Attestation Intermediat
DAC 设备认证证书,由 PAA 或者 PAI 签发 Device Attestation Certification
RCAC 根证书 Root Certificate Authority Certificate
ICAC 中间证书 Intermediate Certificate Authority Certificate
NOC 节点操作证书 Node Operational Certificate
CD 证书声明 Certification Declaration
Commissioning 通过分配操作节点 ID 和节点操作凭据将节点引入结构的操作序列 Sequence of operations to bring a Node into a Fabric by assigning anOperational Node ID and Node Operational credentials.
Commissioner 执行调试的节点的角色 A Role of a Node that performs Commissioning.
Commissionee 一个被委托成为节点的实体 An entity that is being Commissioned to become a Node.
Fabric 通信节点的逻辑集合,共享公共信任根和公共分布式配置状态 A logical collection of communicating Nodes, sharing a common root of trust,and a common distributed configuration state.
PASE 用于Commissioning时建立首个单播安全会话,核心是利用Passcode协商出共享密钥,PASE是安全会话生命周期中的握手阶段
Passcode:用于使用PASE建立首个安全会话,通常Passcode是印在二维码上或者以NFC tag的方式通过近场通信获取到。
Passcode-Authenticated Session Establishment
PAKE 使用弱密钥参与共享密钥协商的算法 Password-Authenticated Key Exchange
CASE 用于除了使用PASE以外的所有单播安全会话,CASE是安全会话生命周期中的握手阶段 Certificate Authenticated Session Establishment

配网

整体流程

Step1:建立 PASE 会话

详细过程请看 Bilibili UP主 TorchIoTBootCamp 的视频 @Mark

预备知识
  • PBKDF:是一种基于密码的密钥派生函数;由比如 20202021 这样的简单密码通过一系列转换,生成比如0s45XD2_d6@f*ads8Y92wlEsSvIjsl9这样复杂的密码;
  • SPAKE2+:是 PBKDF 的其中一种非常安全的算法,它是一种基于密码协商的密钥派生算法;它基于”椭圆曲线”,或者”素数域上的加法群”。
协商对称密钥
  1. 首先,双方协商 PBKDF 的参数,比如 哈希函数,迭代次数,盐,密钥长度等等;
  2. 然后,通过带外传输简单密码使用 SPAKE2+进行协商,算出对称密钥 SharedKey;
  3. PASE 会话建立成功,使用 SharedKey 进行后续的数据交换;

Step2:设备认证(Device Attestation)

预备知识

DCL,PAA,PAI,DAC 都是为了校验设备的合法性

  • DCL
    • 采用区块链技术,由供应商、测试机构、CSA认证中心共同维护。
    • 成员各自独立管理各自的数据中心,在 DCL 中包含设备信息,PAA 列表
  • PAA:各厂商的设备根证书;
  • DAC:被 PAA 或者 PAI 签发,烧录进设备中;
认证过程:
  1. App 生成 nonce,发给设备请求提供认证信息;
  2. 设备使用 DAC 私钥为其加签,并返回给 App;
  3. App 根据通过 DAC 追溯到 PAA,然后到 DCL 中去查询是否合法;

Step3:NOC

NOC 格式

NOC 中包含 Fabric Id 和 NodeId(Node Operational Identifier)

流程
  1. 设备生成 NOC 公私钥,并将公钥发给 App;(私钥永远不会走网络,只会保存在本地)
  2. App 使用ICAC将NOC公钥加签;
  3. App 将 NOC 公钥返回给设备;

Step4:ACL

预备知识
  • ACL 可以出现在 PASE 阶段,也可以出现在 CASE 阶段;

  • 在 PASE 阶段,将当前本步骤最重要的是将 App 节点加入到设备的 ACL 中,以供后续的交互;

过程
  1. HOLDER

到此为止,调试模式结束,PASE 通道关闭;配网完成;

后续所有的连接,都会基于 CASE 会话

连接

CASE 会话

预备知识
  • SIGMA:基于 Diffie-Hellman 算法的密钥协商协议;因为 Diffie-Hellman 在安全性上不能阻止中间人攻击,重防攻击以及 Identity Misbinding 攻击,所以 SIGMA 通过签名消息认证 的方式的方式解决此类问题。
建立过程