3. 证书链与PKI体系:Matter证书层次结构、DAC/PAI/CA证书管理、证书生命周期管理
聊到Matter安全,绕不开的就是证书。说白了,整个Matter设备的信任体系,就是靠一套证书链撑起来的。我刚开始接触Matter时,觉得这不就是PKI那一套嘛,没什么新鲜的。但真正上手做产品才发现,坑比想象的多得多。
今天我们就来拆解一下Matter的证书层次结构,以及DAC、PAI、CA这些证书到底怎么管、怎么用。
3.1 Matter证书层次结构
Matter的证书链分三层,结构非常清晰。你想想看,一个设备要加入Matter网络,它得证明自己是合法的。怎么证明?靠的就是从根到叶子的一串证书。
核心结构:根CA(Certificate Authority)→ PAI(Product Attestation Intermediate)→ DAC(Device Attestation Certificate)
根CA是信任的锚点,由CSA(Connectivity Standards Alliance)统一管理。PAI是产品级的中间证书,由设备制造商自己签发。DAC是每个设备独有的,烧录在设备里,用于向Matter网络证明身份。
我画了一张图,帮你直观理解这个层次关系:
嗯,这里要注意:DAC和PAI的密钥对,必须在安全环境中生成。我见过一些厂商为了省成本,在普通MCU里生成私钥,结果被提取出来,整个产品线的设备都能被仿冒。这个教训很深刻。
3.2 DAC/PAI/CA证书管理
证书管理听起来高大上,其实核心就三件事:生成、存储、分发。但每件事做不好,都会出大问题。
3.2.1 根CA证书管理
根CA是信任的源头,它的私钥一旦泄露,整个Matter生态的信任就崩塌了。我个人习惯,根CA的私钥必须离线存储,放在硬件安全模块(HSM)里,平时不联网。
| 管理项 | 要求 | 常见问题 |
|---|---|---|
| 私钥存储 | HSM或离线保险柜 | 放在服务器硬盘上,被黑客拖库 |
| 签名操作 | 必须物理接触HSM | 远程签名,中间人篡改 |
| 有效期 | 建议10-20年 | 太短导致频繁更新,太长增加风险 |
| 备份策略 | 多地多副本,加密存储 | 单点故障,丢失后无法恢复 |
警告:根CA私钥绝对不能出现在任何开发环境、测试环境或CI/CD流水线中。我曾经见过一个团队,把根CA私钥放在Git仓库里,虽然仓库是私有的,但后来被内部员工泄露,后果非常严重。
3.2.2 PAI证书管理
PAI是产品线的中间证书。比如你生产智能灯泡和智能插座,可以共用同一个PAI,也可以分开。我建议按产品线划分,这样如果某个产品线出问题,只需要吊销对应的PAI,不影响其他产品。
PAI的私钥同样需要保护,但可以适当放宽一些。比如放在专用的签名服务器上,通过API调用签名。但记住,绝对不能把PAI私钥下放到产线。
3.2.3 DAC证书管理
DAC是每个设备独有的。它的私钥必须在设备的安全芯片(如SE、TEE)中生成,私钥永远不离开安全芯片。公钥导出后,由PAI签名生成DAC证书。
我在项目中遇到过一个问题:某厂商为了加快产线速度,在PC上批量生成DAC密钥对,然后烧录到设备里。结果PC被植入木马,几千个设备的私钥全部泄露。后来他们不得不召回所有产品。
避坑指南:产线上烧录DAC时,一定要做签名验证。我曾经遇到一批设备,DAC证书和私钥不匹配,导致设备无法加入Matter网络。排查了三天才发现是产线脚本写错了。
3.3 证书生命周期管理
证书不是永久的,它有生命周期。从生成到吊销,每一步都要管好。
3.3.1 证书生成
生成证书时,有几个关键字段必须填对:
- Subject:设备的唯一标识,比如VID/PID + 序列号
- Key Usage:DAC必须是Digital Signature,不能乱填
- Validity:DAC有效期通常3-5年,PAI可以5-10年
- CRL Distribution Points:证书吊销列表的地址,必须可访问
我习惯在生成证书后,立即做一次自检:用OpenSSL验证证书链是否完整,私钥是否匹配。这一步不能省。
# 验证DAC证书链
openssl verify -CAfile rootCA.pem -untrusted pai.pem dac.pem
# 检查私钥是否匹配证书
openssl x509 -in dac.pem -noout -pubkey | openssl rsa -pubin -in /dev/stdin -modulus -noout
openssl rsa -in dac.key -modulus -noout
# 比较两个modulus是否一致
3.3.2 证书分发与安装
DAC证书和私钥必须在安全环境下安装到设备中。产线上常用的方式有两种:
| 方式 | 安全性 | 效率 | 推荐场景 |
|---|---|---|---|
| 安全芯片预置 | 高 | 中 | 高安全要求设备 |
| 产线安全烧录 | 中 | 高 | 大批量生产 |
安全芯片预置,说白了就是芯片出厂时已经烧好了DAC。产线只需要把芯片焊上去就行。产线安全烧录,则是在产线上通过安全通道把证书写入设备。我个人更推荐前者,因为减少了产线环节的风险。
3.3.3 证书更新与吊销
证书到期前,设备需要更新证书。但Matter设备通常是离线工作的,怎么更新?
嗯,这里有个机制:Matter支持OTA更新证书。设备在联网时,会检查证书有效期,如果快到期了,就从制造商服务器下载新的DAC。但前提是设备必须有一个有效的当前证书,否则无法建立安全通道。
吊销是更棘手的问题。如果某个设备被破解,或者私钥泄露,需要吊销它的DAC。Matter使用CRL(证书吊销列表)来管理。设备在加入网络时,会检查CRL,如果自己的证书在列表里,就会被拒绝入网。
注意:CRL的更新频率很重要。更新太慢,被吊销的设备还能继续使用;更新太快,网络流量会很大。我建议CRL至少每天更新一次,紧急情况下可以立即推送。
3.3.4 证书归档与审计
所有签发的证书,包括已吊销的,都必须归档。这不是为了好看,而是为了事后审计。比如某个设备出了安全事故,你需要查它的证书是什么时候签发的、谁签的、什么时候吊销的。
我习惯用数据库记录每张证书的完整生命周期:签发时间、签发人、设备ID、吊销时间、吊销原因。这样出了问题,可以快速定位。
总结一下:证书管理不是一锤子买卖。从根CA到DAC,每一层都要管好。生成时验证,存储时加密,分发时安全,吊销时及时。任何一个环节出问题,都可能让整个Matter网络失去信任。
好了,证书链和PKI体系就讲到这里。记住,信任是Matter的基石,而证书就是信任的载体。管好证书,你的设备就安全了一半。