设备认证基础:DAC 的结构与作用,PAI 的角色

好,咱们进入正题。Matter 设备要入网,第一关就是证明「我是谁」。这靠的就是一套证书体系。核心是两个东西:DAC(设备认证证书)和PAI(产品认证中间证书)。

说白了,DAC 就是设备的身份证。PAI 就是发证机关的中间章。没有它们,设备在 Matter 网络里就是个黑户。

DAC:设备的「出生证明」

DAC 全称 Device Attestation Certificate。它是在工厂生产时,就被烧录进设备里的。我见过不少团队,在这步上栽跟头——证书格式不对,或者私钥没保护好,导致整批设备报废。

DAC 的结构,遵循 X.509 v3 标准。但跟普通的 HTTPS 证书比,它有几个特殊字段。

字段 说明 我的经验
Subject 设备唯一标识,包含 Vendor ID 和 Product ID VID/PID 必须跟 CSA 注册的一致,否则认证失败
Public Key 设备公钥,对应私钥存储在安全元件中 私钥绝对不能明文存在 Flash 里,我吃过这个亏
Issuer 指向 PAI 的 DN(Distinguished Name) 这个链必须完整,缺一环就验证不过
Extensions 包含 dac_origin、vid_scoped 等关键扩展 扩展字段写错,Matter 协议栈直接拒绝连接

核心作用:DAC 让 Matter 网络中的 Commissioner(管理员设备)能验证三个事情:

  • 设备确实是某个认证厂商生产的
  • 设备没有被篡改过
  • 设备拥有合法的私钥,证明它是物理实体

PAI:连接信任的桥梁

PAI 是 Product Attestation Intermediate 的缩写。它夹在 DAC 和根证书(PAA)之间。

你想想看,如果每个设备的 DAC 都直接由根证书签发,那根证书就得在线签名,风险太大了。PAI 的作用就是分担风险。

厂商先向 CSA(Connectivity Standards Alliance)申请一个 PAI。然后用 PAI 去签发成千上万个 DAC。这样,即使某个 PAI 私钥泄露,也只是影响该产品系列,不会波及整个生态。

我个人的习惯:每个产品线用独立的 PAI。比如智能灯泡用 PAI-A,智能插座用 PAI-B。万一 PAI-A 出问题,灯泡全废了,但插座还能用。别问我为什么这么谨慎——我曾经见过一个厂商所有产品共用同一个 PAI,结果...嗯,很惨。

证书链的验证流程

设备入网时,会把自己的 DAC 和 PAI 一起发给 Commissioner。Commissioner 手里有预置的 PAA(Product Attestation Authority)根证书列表。

验证过程是这样的:

  1. Commissioner 用 PAA 的公钥验证 PAI 的签名
  2. 再用 PAI 的公钥验证 DAC 的签名
  3. 检查 DAC 中的 VID/PID 是否在 CSA 的认证列表中
  4. 验证设备是否拥有 DAC 对应的私钥(通过挑战-响应机制)

这四步,一步都不能少。我调试过一台设备,前三步都过了,第四步死活过不去。最后发现是安全元件里的私钥被读保护锁住了,设备根本拿不到私钥去签名。你说冤不冤?

DAC 与 PAI 的关系图

下面这张图,把整个信任链画清楚了。我建议你多看几遍,理解这个层级关系。

Matter 设备认证证书链结构 PAA(产品认证权威) CSA 联盟根证书 PAI(产品认证中间证书) 厂商产品线专属中间证书 DAC #1 设备 A 的身份证 DAC #2 设备 B 的身份证 DAC #N 设备 N 的身份证 验证方向: Commissioner 从 DAC 开始,逐级向上验证签名 直到信任的 PAA 根证书。任何一级签名无效, 设备都会被拒绝入网。

实际项目中的避坑指南

做 Matter 设备认证,有几个坑我踩过,你注意避开:

我曾经遇到过:

  • DAC 私钥泄露:工厂烧录时,私钥被调试接口读出来了。攻击者可以克隆设备。解决方案:用安全元件(SE)存储私钥,开启读保护。
  • 证书链不完整:设备只发了 DAC,没发 PAI。Commissioner 找不到中间证书,验证失败。解决方案:设备必须同时提供 DAC 和 PAI。
  • VID/PID 不匹配:DAC 里的 VID 跟设备实际声明的 VID 不一致。解决方案:烧录前做交叉校验。
  • 证书过期:DAC 和 PAI 都有有效期。设备出厂几年后,证书过期了,无法入网。解决方案:有效期至少设 10 年。

DAC 的存储与保护

DAC 和对应的私钥,必须存储在防篡改硬件中。Matter 规范明确要求使用安全元件或具备安全区域的 MCU。

我个人建议:

  • DAC 证书本身可以公开,但私钥必须隔离
  • 生产时,私钥在安全元件内部生成,永远不离开芯片
  • 烧录过程要加密传输,防止中间人窃取

你想想看,如果私钥被偷了,攻击者就能伪造你的设备。到时候 Matter 网络里混进一堆冒牌货,整个智能家居的安全就崩了。

小结一下

DAC 是设备的身份证,PAI 是厂商的中间章。它们一起构成了 Matter 设备认证的信任链。记住:

  • DAC 证明设备是谁生产的
  • PAI 证明 DAC 是合法的
  • PAA 是整个信任链的根