已认证设备 是指已通过 Connectivity Standards Alliance (Alliance) Matter 认证流程的设备。
在调试流程中,已认证设备需要进行证明 。 换句话说,它需要证明自己是其声称的设备,并且是正品。因此,所有 Matter 设备都具有凭据 ,其中包括证明密钥对和关联的证书链。 设备证明证书 (DAC) 是此链的一部分。调试中的设备向调试器出示 DAC 后,调试器将证明:
- 该设备由已认证的制造商制造。
- 该设备是正品。
- 该设备已通过 Matter 合规性测试。
在开发阶段,制造商无需完成完整的证明流程即可测试其设备。测试人员应明确知晓该设备正在测试中,尚未获得认证和发布。一旦制造商进入生产阶段,预配器的生态系统就应强制执行所有证明要求。
证明使用公钥基础架构 (PKI),该架构利用根证书授权机构和中间证书,类似于广泛用于 SSL/TLS 的服务器身份验证证书。此过程称为设备证明证书链。
设备证明 PKI
DAC 是 X.509 v3 证书。ITU-T 于 1988 年发布了第一个版本的 X.509。Matter使用的具有公钥基础架构证书和 证书吊销列表 (CRL) 的 X.509 v3 由RFC5280指定。它包含:
- 公钥
- 发卡机构
- 主题
- 证书序列号
- 有效期,其中失效时间可能是不确定的
- 签名
供应商 ID 和产品 ID 是 DAC 主题中 MatterDACName 的属性。
DAC 对于每台设备都是唯一的,并且与产品中的唯一证明密钥对相关联。它由与设备制造商关联的 CA 颁发。
DAC 的签名根据产品证明中间证书 (PAI) 进行验证,该证书也由 PAA 颁发。不过,供应商可以选择为每个产品(特定于 PID)、产品组或其所有产品创建一个 PAI。
在信任链的根部,产品证明授权机构 (PAA) 证书授权机构 (CA) 公钥验证来自 PAI 的签名。请注意,Matter受信任证书存储区是联合的,调试器信任的 PAA 证书集维护在中央可信数据库(分布式合规性账本)中。在可信集中输入 PAA 需要满足由 Alliance管理的证书政策。
PAI 也是 X.509 v3 证书,其中包括:
- 公钥
- 发卡机构
- 主题
- 证书序列号
- 有效期,其中失效时间可能是不确定的
- 签名
供应商 ID 和产品 ID(可选)是 DAC 主题中 MatterDACName 的属性。
最后,PAA 是链中的根证书,并且是自签名的。它包含:
- 签名
- 公钥
- 发卡机构
- 主题
- 证书序列号
- 有效期
其他证明文档和消息
证明流程包含多个文档和消息。以下内容简要概述了它们的功能和组成。下图有助于理解它们的层次结构。
| 文档 | 说明 |
|---|---|
| 认证声明 (CD) | 借助 CD,
Matter 设备
可以证明其符合
Matter 协议。
每当
Matter
认证流程完成时,
Alliance都会为设备类型创建一个 CD
,以便供应商将其包含在
固件中。CD 除其他信息外,还包括:
|
| 固件信息(可选) | 固件信息 包含 CD 版本号以及固件中一个或多个组件的摘要,例如操作系统、文件系统、引导加载程序。摘要可以是软件组件的哈希值,也可以是软件组件的已签名清单的哈希值。 供应商也可以选择仅在固件信息中包含其组件的“哈希值的哈希值”,而不是一系列单独的哈希值。 固件信息是证明流程中的可选元素,适用于供应商具有处理证明密钥对的安全启动环境的情况。 |
| 证明信息 | 从被调试器发送到调试器的消息。证明信息结合了包含证明元素 的 TLV 和证明签名 。 |
| 证明元素 | 这是一个包含以下内容的 TLV:
|
| 证明质询 | 在 Passcode Authenticated Session Establishment (PASE)/ Certificate Authenticated Session Establishment (CASE)会话 建立期间派生的带外质询,用于进一步保护该过程 并避免重放签名。来自 CASE会话、PASE会话或恢复的 CASE会话。 |
| 证明 TBS(待签名) | 包含证明元素和证明质询的消息。 |
| 证明签名 | 证明 TBS 的签名,使用设备证明私钥进行签名。 |
证明程序
调试器负责证明被调试器。它执行以下步骤:
- 调试器生成一个随机的 32 字节证明 Nonce。在密码学术语中,Nonce(一次性使用的数字)是在密码学过程中生成的随机数,旨在一次性使用。
- 调试器将 Nonce 发送给 DUT,并请求证明信息。
- DUT 生成证明信息,并使用证明私钥对其进行签名。
- 调试器从设备恢复 DAC 和 PAI 证书,并 从其 Matter 信任 存储区查找 PAA 证书。
- 调试器验证证明信息。以下是验证条件:
- 必须验证 DAC 证书链,包括对 PAI 和 PAA 的撤消检查。
- DAC 上的 VID 与 PAI 上的 VID 匹配。
- 证明签名有效。
- 设备证明元素中的 Nonce 与调试器提供的 Nonce 匹配。
- 使用某个知名认证声明签名 密钥,认证声明签名有效。Alliance
- 固件信息(如果存在且受调试器支持)与分布式合规性账本中的条目匹配。
- 设备基本信息集群、认证声明和 DAC 之间也会进行额外的 VID/PID 验证。