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)。

Matter 三级证书链:签发向下,验证向上 签发方向 ↓ 验证方向 ↑ PAA 根证书 自签名 · 信任锚 · 预置在设备/控制器 VID 范围 · 长期有效(约 20~25 年) 签发 PAI PAI 中间证书 由 PAA 签发 · 可多级/多张 限定 PID/VID 范围 · 有效期约 5~10 年 签发 DAC DAC 设备证书 由 PAI 签发 · 一机一证 绑定设备公钥 · 含 VID/PID · 有效期约 10 年 验证签名 验证签名 信任锚 PAA 公钥预置 验证链的终点 验证要点 1. 签名逐级校验 2. 有效期检查 3. VID/PID 一致性 4. 基本约束 CA=true 5. 密钥用途匹配 6. 吊销状态检查 7. 链到信任锚为止 Matter 裁剪 · 无 CRL/OCSP 在线 · 用 CD 吊销列表 · 固定三级结构 · 强制 VID/PID 绑定 · 证书体积受限

三级证书各自的职责与关键字段

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 后,验证流程如下:

  1. 用 PAI 的公钥验证 DAC 的签名,确认 DAC 确实由该 PAI 签发。
  2. 检查 DAC 的有效期、basicConstraints、keyUsage、extendedKeyUsage 是否符合 Matter 规范。
  3. 用 PAA 的公钥验证 PAI 的签名,确认 PAI 确实由该 PAA 签发。
  4. 检查 PAI 的 basicConstraints CA=true、keyUsage keyCertSign、有效期和路径长度约束。
  5. 确认 PAA 是预置的信任锚之一,且其 VID 范围覆盖 DAC 中的 VID。
  6. 检查 DAC 中的 VID/PID 是否与设备声明的信息一致。
  7. 检查证书是否在吊销列表(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。这些扩展让证书不仅证明“谁签发了它”,还证明“它属于哪个厂商、哪个产品”。

实践提示:在开发阶段,可以使用 Matter SDK 提供的测试 PAA/PAI/DAC 证书链进行本地验证。测试证书的 VID 通常为 0xFFF1~0xFFF4,PID 为 0x8000~0x801F。生产环境必须使用由认证 PAA 签发的正式证书,否则无法通过 Matter 认证。

一个可参考的证书链检查清单

检查项 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 规范,避免到认证测试时才发现字段缺失或约束错误。

常见错误:PAI 的 pathLenConstraint 设置不当会导致多级 PAI 无法验证;DAC 的 extendedKeyUsage 缺少 clientAuth 会导致 commissioner 拒绝连接;VID/PID 与设备实际声明不一致会导致认证失败。这些错误在开发阶段容易被忽略,但在认证测试中会直接导致不通过。

总结来说,Matter 的 PAA→PAI→DAC 三级链是一个“信任锚预置、逐级签名、逐级验证”的模型。PAA 是根,PAI 是中间层,DAC 是设备身份。验证时从 DAC 出发,逐级向上,直到信任锚。Matter 在此基础上裁剪了在线吊销机制,扩展了 VID/PID 等专用字段,使其更适合物联网设备的资源约束和认证需求。掌握这条链的签发、验证和信任锚机制,是后续做证书工程、设备认证和排障的核心基础。