设备认证基础: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)根证书列表。
验证过程是这样的:
- Commissioner 用 PAA 的公钥验证 PAI 的签名
- 再用 PAI 的公钥验证 DAC 的签名
- 检查 DAC 中的 VID/PID 是否在 CSA 的认证列表中
- 验证设备是否拥有 DAC 对应的私钥(通过挑战-响应机制)
这四步,一步都不能少。我调试过一台设备,前三步都过了,第四步死活过不去。最后发现是安全元件里的私钥被读保护锁住了,设备根本拿不到私钥去签名。你说冤不冤?
DAC 与 PAI 的关系图
下面这张图,把整个信任链画清楚了。我建议你多看几遍,理解这个层级关系。
实际项目中的避坑指南
做 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 是整个信任链的根