2. Matter证书链与信任模型
Matter 的设备身份体系并不是“一张证书走天下”,而是一条严格的三级证书链:PAA(Product Attestation Authority,产品认证授权机构)→ PAI(Product Attestation Intermediate,产品认证中间证书)→ DAC(Device Attestation Certificate,设备认证证书)。理解这条链的签发方向、验证方向和信任锚位置,是后续做设备认证、证书烧录、认证测试和排障的基础。
先明确一个容易混淆的点:签发方向是自上而下的,验证方向是自下而上的。PAA 签发 PAI,PAI 签发 DAC;验证时设备端或 commissioner 从 DAC 出发,用 PAI 的公钥验证 DAC 签名,再用 PAA 的公钥验证 PAI 签名,最终把信任落在预置的 PAA 根证书上。这个“预置的 PAA”就是 Matter 信任模型的信任锚(Trust Anchor)。
三级证书各自的职责与关键字段
PAA 是信任锚。它是一张自签名根证书,公钥被预置在 Matter 设备(用于设备端验证 commissioner 的证书)和 commissioner/控制器(用于验证设备证书)中。PAA 通常由认证机构或生态联盟维护,其 VID 范围覆盖其签发的所有 PAI。PAA 的有效期很长,一般 20~25 年,因为它一旦更换,所有依赖它的设备都需要重新预置信任锚。
PAI 是中间层。它由 PAA 签发,可以有多张、甚至多级,用于按产品线、厂商或批次划分。PAI 的关键字段包括:basicConstraints CA=true、keyUsage keyCertSign、以及可选的 pathLenConstraint。PAI 的有效期通常 5~10 年,比 PAA 短,便于轮换。PAI 的 VID 必须与 PAA 一致或在其允许范围内。
DAC 是设备身份证书。它由 PAI 签发,一机一证,绑定设备唯一的公钥(对应设备私钥,通常存放在安全芯片或 TEE 中)。DAC 的关键字段包括:basicConstraints CA=false、keyUsage digitalSignature、extendedKeyUsage clientAuth,以及 Matter 特有的 VID、PID 属性。DAC 的有效期一般 10 年左右,但实际部署中会结合设备生命周期调整。
验证过程:从 DAC 到信任锚
当 commissioner 拿到设备的 DAC 后,验证流程如下:
- 用 PAI 的公钥验证 DAC 的签名,确认 DAC 确实由该 PAI 签发。
- 检查 DAC 的有效期、
basicConstraints、keyUsage、extendedKeyUsage是否符合 Matter 规范。 - 用 PAA 的公钥验证 PAI 的签名,确认 PAI 确实由该 PAA 签发。
- 检查 PAI 的
basicConstraints CA=true、keyUsage keyCertSign、有效期和路径长度约束。 - 确认 PAA 是预置的信任锚之一,且其 VID 范围覆盖 DAC 中的 VID。
- 检查 DAC 中的 VID/PID 是否与设备声明的信息一致。
- 检查证书是否在吊销列表(CD)中。
任何一步失败,验证即终止,设备无法通过认证。这个顺序很重要:先验证签名,再检查属性,最后检查吊销状态,因为签名验证是基础,属性检查是合规性,吊销检查是时效性。
Matter 对 PKI 的裁剪与扩展
Matter 并没有直接照搬通用 PKI,而是做了针对性裁剪和扩展。裁剪方面:去掉了在线 CRL 和 OCSP,因为 Matter 设备通常资源受限且可能离线,改用证书吊销列表(CD, Certificate Revocation List),由 DCL(Distributed Compliance Ledger)分发。同时,Matter 固定了三级证书结构,不允许任意深度的链,简化了验证逻辑。
扩展方面:Matter 在 X.509 基础上增加了 Matter 专用扩展,例如 1.3.6.1.4.1.37244.1.1(VID)和 1.3.6.1.4.1.37244.1.2(PID),以及用于设备认证的 Attestation Information。这些扩展让证书不仅证明“谁签发了它”,还证明“它属于哪个厂商、哪个产品”。
一个可参考的证书链检查清单
| 检查项 | PAA | PAI | DAC |
|---|---|---|---|
| basicConstraints | CA=true | CA=true | CA=false |
| keyUsage | keyCertSign, cRLSign | keyCertSign, cRLSign | digitalSignature |
| extendedKeyUsage | — | — | clientAuth |
| 有效期 | 约 20~25 年 | 约 5~10 年 | 约 10 年 |
| VID/PID | VID 范围 | VID 范围 | 具体 VID/PID |
| 签名者 | 自签名 | PAA | PAI |
这张表可以直接用于证书生成后的自检,也可以作为认证测试前的预检清单。实际项目中,建议把这张表固化成脚本,在 CI 阶段自动校验生成的证书链是否符合 Matter 规范,避免到认证测试时才发现字段缺失或约束错误。
pathLenConstraint 设置不当会导致多级 PAI 无法验证;DAC 的 extendedKeyUsage 缺少 clientAuth 会导致 commissioner 拒绝连接;VID/PID 与设备实际声明不一致会导致认证失败。这些错误在开发阶段容易被忽略,但在认证测试中会直接导致不通过。
总结来说,Matter 的 PAA→PAI→DAC 三级链是一个“信任锚预置、逐级签名、逐级验证”的模型。PAA 是根,PAI 是中间层,DAC 是设备身份。验证时从 DAC 出发,逐级向上,直到信任锚。Matter 在此基础上裁剪了在线吊销机制,扩展了 VID/PID 等专用字段,使其更适合物联网设备的资源约束和认证需求。掌握这条链的签发、验证和信任锚机制,是后续做证书工程、设备认证和排障的核心基础。