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网络证明身份。

我画了一张图,帮你直观理解这个层次关系:

Matter证书层次结构图 Matter 证书层次结构 根CA (CSA) 信任锚点,离线存储 PAI (产品中间证书) 制造商签发,产品线级 DAC (设备认证证书) 每设备唯一,烧录在安全芯片中 说明: DAC由PAI签发,PAI由根CA签发。验证时逐级向上,直到信任锚点。

嗯,这里要注意: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的基石,而证书就是信任的载体。管好证书,你的设备就安全了一半。