matter配网流程介绍
概述
matter配网分为三个阶段
1、设备发现阶段,此时设备发出蓝牙广播,数据是明文,所以敏感数据不能通过蓝牙发送
2、PASE阶段,CD(设备证书认证),NOC(节点信息配置) 都是通过PASE协商出的密钥进行加密
3、CASE阶段,完成CASE后,后续所有的数据交互都是通过CASE协商出的密钥来保证数据安全性的
入网信息
设备发现过程中用到的配网信息如下:
Onboarding Payload Element | Description |
---|---|
Version | Onboarding Payload的版本号 |
Vendor ID | CSA联盟分配的厂商ID |
Product ID | 厂商为产品分配的ID |
Commissioning Flow | - Standard commissioning flow: 未入网的设备上电自动广播advertising - User-intent commissioning flow: 未入网的设备上电不会自动广播advertising,需要用户触发 - Custom commissioning flow: 用户自定义Commissioning流程 |
Discovery Capabilities Bitmask | 入网设备支持的发现方式: - Soft-AP - BLE - On IP Network |
Discriminator | 设备鉴别码,Commissioner通过Discriminator找到想要添加的设备 |
Passcode | 入网密码 |
TLV Data | (可选的) TLV (Tag-length-value) data. 支持用户自定义 |
PASE介绍
Passcode-Authenticated Session Establishment(密码认证会话建立)
建立蓝牙连接后,需要通过PASE协商出共享密钥,来加密蓝牙连接上传输的matter数据,PASE基于 SPAKE2+ 协议
PASE会话建立完成后:设备和配网设备(APP\Matter control)交换设备证书,进行设备证书(DAC)认证以及操作证书(NOC)安装
CASE介绍
Certificate-authenticated session establishment(基于证书的会话建立)
CASE的目的是为同一fabric中的2个节点建立安全的连接是设备与节点之间建立的 即待配对设备完成前面的入网信息获取后,进行入网时建立CASE流程
配网流程
matter设备有三种配网流程
Commissioning Flow Name | Description |
---|---|
标准Commissioning流程 | 未入网的设备上电自动广播advertising |
用户介入的Commissioning流程 | 未入网的设备上电不会自动广播advertising,需要用户触发 |
用户自定义 Commissioning流程 | 用户自定义 |
以正常配网流程为例
整体流程概览
建立蓝牙连接前:
设备周期性的发出蓝牙广播,广播包中包含:vid、pid、discriminator、TLV data。Discriminator 为必须参数,其他为可选参数配对设备(APP\Matter control)扫描到广播包后,会和扫码得到的数据信息进行比对,如果VID、PID、Discriminator 一致,表明已经成功发现想要添加的设备
然后开始建立蓝牙连接
建立蓝牙连接后,需要通过PASE协商出共享密钥,来加密蓝牙连接上传输的matter数据,PASE基于 SPAKE2+ 协议
PASE会话建立完成后:设备和配网设备(APP\Matter control)交换设备证书,进行设备证书(DAC)认证以及操作证书(NOC)安装
PASE会话建立完成后:
设备和配网设备(APP\Matter control)交换设备证书,进行设备证书(DAC)认证以及操作证书(NOC)安装
PASE完成后会协商出如下密钥:
类型 | 作用 |
---|---|
I2RKey | 加/解密Initiator到Rsaponder的数据 |
R2IKey | 加/解密Rsaponder到Initiator的数据 |
AttestationChallenge | 设备认证时用到此参数 所有matter设备都有一个唯一的DAC证书以及DAC证书的对应私钥 |
所有matter设备都有一个唯一的DAC证书以及DAC证书的对应私钥
PAA证书
由CAS联盟认证的根证书颁发机构颁发 是一个自签名证书
PAI由PAA签发 PAA会为产品认证中间机构签发PAI证书 这个证书签发过程是用PAA的私钥为PAI的公钥进行签名
DAC由PAI签发 是由PAI签发,PAI用自己的私钥为设备的公钥签名,产生DAC证书
设备生产厂家可以向CSA联盟申请成为PAA证书颁发机构,产生PAA证书,为产品签发PAI证书,也可以使用CSA联盟认证的第三方PAA证书机构,申请签发PAI证书,PAI证书包含VID和PID ,一款产品可以使用相同的PAI证书来签发DAC证书
DAC证书和PAI证书需要烧录到matter设备上
NOC证书
NOC (节点操作证书)
1、用来证明设备在该Fabric中的合法性
2、设备中保存与NOC相对应的私钥
matter设备加入到Fabric后,配网设备(APP\Matter control)会为其颁发NOC证书
证书链RCAC-> ICAC -> NOC
RCAC由Commissioner自签名产生
ICAC由RCAC签发
NOC由ICAC签发
NOC不需要烧录到Matter设备,在设备加入Fabric后,配网设备(APP\Matter control)通过Matter将NOC安装到设备
Matter设备退出Fabric后,NOC信息需要清除
CD(认证声明)
Certification Declaration (CD)是由CSA联盟签发的产
品认证声明,拥有CD的设备表明它已通过了Matter认
证
§ 设备通过Matter认证后,CSA联盟会为其产生一个CD
文件,主要包含以下内容:
• format_version
• vendor_id
• product_id_array
• certificate_id
• certification_type -- 0测试CD 1做matter认证时使用 2 通过认证的CD
CD文件需要烧录到Matter设备上,在Commissioning
过程中Commissioner会验证CD文件的有效性
• 是否由CSA联盟签发
• CD中的VID/PID是否与Matter设备匹配
在建立了PASE安全蓝牙连接后 进行设备认证和NOC证书安装
验证DAC和CD是否合法有效
CD认证声明需要烧录到matter设备上
小结: DAC证书、PAI证书、CD认证声明 这三个信息需要烧录\集成到matter设备上
设备认证
device attestation
1、配对设备(APP\Matter control) 向需要配对设备请求设备证书链(DAC和PAI)
2、收到证书后,配对设备(APP\Matter control)会产生一个AttestationNonce 并向需要配对设备发送Attestaion Request 命令
3、 需要配对的设备收到Attestaion Request 后,会创建一个Attestaion Information(认证信息)的数据结构
这个数据结构中包含以下内容:
Attestation Information
• Attestation Elements
▸ Certificate Declaration (CD证书)
▸ Timestamp (时间戳)
▸ Attestation Nonce
▸ Firmware Information (optional)
▸ Vendor Specific information (optional)
• Attestation Challenge(generated by PASE) --> 是由PASE产生
• Attestation Signature(singed by Device Attestation Private Key ) --> 使用DAC相对应的私钥对Attestation Elements 和Attestation Challenge 进行签名产生
4、产生这个认证信息后,发送到配对设备(APP\Matter control)
5、配对设备对个信息进行认证 通过验证后进行下一步操作
节点操作证书签名请求
NOCSR request
1、配对设备(APP\Matter control)产生一个CSR nonce
2、发送这个CSR nonce到需要配对的设备
3、待配对设备产生一个密钥对,基于这个密钥对生产CSR infomation
这个数据结构中包含以下内容:
CSR(Certificate Signing Request) Information
• NOCSR Elements
▸ CSR
▸ CSRNonce
▸ Vendor_Reserved (optional)
• Attestation Challenge(generated by PASE)
• Attestation Signature(singed by Device Attestation Private Key ) -->使用DAC相对应的私钥对Attestation Elements 和Attestation Challenge 进行签名产生
4、待配对设备通过NOCSR Response 将这个数据发送到配对设备(APP\Matter control)
5、配对设备(APP\Matter control)对这个NOCSR information 进行验证 验证Attestation Signature 是否由与DAC相应的私钥进行签发的
安装NOC与节点信息配置
校验通过后
1、配对设备(APP\Matter control)通过 AddTrustedRootCertificate 将rootCA证书 发送给待配对设备
2、配对设备(APP\Matter control)通过AddNOC指令将中间证书和NOC证书发送给待配对设备
3、待配对设备将整个证书链保存,并从NOC中提取设备的Node id和 Fabric id
4、待配对设备创建一个ACL条目 ,授予配对设备(APP\Matter control)管理员权限
5、完成后,待配对设备会发送NOC Response 到配对设备
6、配对设备(APP\Matter control)将 Configure the operational network info(如wifi 会写入wifi账号密码、thread 会写入PANid、netwokrKey)发送到待配对设备
配置operational network information
• Thread
▸ Channel
▸ Panid
▸ ExtPanid
▸ Network Key
• WiFi
▸ SSID
▸ Password
7、待配对设备收到上面发送的入网信息后,可以直接加入到网络中
8、待配对设备会广播设备的域名:Fabricid-Nodeid._matter._tcp 进行设备发现
CASE会话建立
CASE 基于SIGMA协议
设备与节点之间建立的 即待配对设备完成前面的入网信息获取后,进行入网时建立CASE流程
1、sigma1阶段和sigma2阶段:发起连接的一方,产生临时密钥对并将公钥发送给回复方,回复方也产生临时密钥对,并将公钥回复给发起连接的一方,协商出共享密钥,为后续sigma通讯进行加密 (Sigma1.initiatorEphPubKey and Sigma2.responderEphPubKey)
2、sigma2和sigma3阶段:双方交换彼此的NOC 和 ICAC (Sigma2.encrypted2.responderNOCand Sigma3.encrypted3.initiatorNOC)
3、通过NOC所对应的私钥进行身份鉴别 (sigma-2- tbsdata and sigma-3-tbsdata)
4、协商出I2RKey ,R2IKey 和 AttestationChallenge
CASE会话建立成功后 ,commissioner 会通过CASE 会话发送 commissioning Complete 到 Commissionee ,Commissionee 成功解密这个条命令后,回复Response后,整个配网流程完成。
完整流程如下图