证明

经过认证的设备是指已通过 Connectivity Standards Alliance (Alliance) Matter 认证流程的设备。

在调试过程中,认证设备需要对自身进行证明。换句话说,它需要证明其产品与所声称产品相符,且是正品。因此,所有 Matter 设备都具有包含认证密钥对和关联的证书链的凭据。设备认证证书 (DAC) 是此链的一部分。经调试设备将 DAC 提交给其调试器后,调试器将证明:

  • 它是由经过认证的制造商生产的
  • 是正品设备。
  • 它已通过 Matter 项合规性测试。

在开发阶段,制造商无需完整的认证流程即可测试其设备。应明确告知测试人员,设备正在测试,尚未经过认证和发布。制造商进入生产阶段后,预配程序的生态系统应强制执行所有认证要求。

Attestation 使用利用根证书授权机构和中间证书的公钥基础架构 (PKI),方式与广泛采用的用于 SSL/TLS 的服务器身份验证证书类似。此过程称为“设备认证证书链”。

设备认证 PKI

DAC 是 X.509 v3 证书。X.509 的第一个版本由 ITU-T 在 1988 年发布。Matter 使用具有公钥基础架构证书和证书吊销列表 (CRL) 的 X.509 v3 由 RFC5280 指定。它包含:

  • 公钥
  • 颁发者
  • 主题
  • 证书序列号
  • 有效期(失效日期不确定)
  • 签名

供应商 ID 和产品 ID 是 DAC 主题中 MatterDACName 的属性。

DAC 对每台设备而言都是唯一的,并与产品中的唯一认证密钥对关联。它由与设备制造商关联的 CA 颁发。

DAC 的签名会根据产品认证中间证书 (PAI)(同样由 PAA 颁发)进行验证。但是,供应商可以选择为每个产品(特定于 PID)、产品组或为其所有产品创建一个 PAI。

在信任链的根部,产品认证机构 (PAA) 和证书授权机构 (CA) 公钥会验证来自 PAI 的签名。请注意,Matter 信任存储区是联合的,并且由调试器信任的 PAA 证书集维护在可信中央数据库(分布式合规性分类账)中。如要在可信集内输入 PAA,需满足由 Alliance 管理的证书政策。

Matter 认证公钥基础架构
图 1:Matter 认证公钥基础架构

PAI 也是 X.509 v3 证书,其中包含:

  • 公钥
  • 颁发者
  • 主题
  • 证书序列号
  • 有效期(失效日期不确定)
  • 签名

供应商 ID 和产品 ID(可选)是 DAC 主题中 MatterDACName 的属性。

最后,PAA 是链中的根证书,并且是自签名证书。其中包括:

  • 签名
  • 公钥
  • 颁发者
  • 主题
  • 证书序列号
  • 有效性

其他证明文档和消息

认证流程包含一些文档和消息。以下各项是其功能和组合的简要概览。下图有助于您了解其层次结构。

证明文档层次结构
图 2:证明文档层次结构
文档 说明
认证声明 (CD) CD 允许 Matter 设备证明其符合 Matter 协议。 每当 Matter 认证流程完成时,Alliance 都会为设备类型创建 CD,以便供应商可以将其包含在固件中。CD 还包含其他信息:
  • 视频 ID
  • PID(一个或多个)
  • 服务器类别 ID
  • 客户端类别 ID
  • 安全级别
  • 安全信息
  • 认证类型(开发、临时或官方)
  • 签名
固件信息(可选) 固件信息包含 CD 版本号以及固件中组件(例如操作系统、文件系统、引导加载程序)的一个或多个摘要。摘要可以是软件组件的哈希,也可以是软件组件的已签名清单的哈希。

供应商还可以选择仅将组件的“哈希哈希”添加到固件信息中,而不是包含各个哈希的数组。

固件信息是安全认证流程中的可选元素。
证明信息 委员会发送给该专员的消息。证明信息由包含证明元素证明签名的 TLV 组成。
证明元素 这是一个包含以下内容的 TLV:

  • 证书声明
  • 时间戳
  • 证明 Nonce
  • 固件信息(可选)
  • 供应商具体信息(选填)
认证挑战 Passcode Authenticated Session Establishment (PASE)/Certificate Authenticated Session Establishment (CASE) 会话建立期间产生的带外质询,用于进一步保护流程并避免重放签名。来自 CASE 会话、PASE 会话或恢复的 CASE 会话。
认证 TBS(待签名) 包含证明元素和证明质询的消息。
认证签名 认证 TBS 的签名,使用设备认证私钥进行签名。

证明程序

专员负责为委员会提供证明。它会执行以下步骤:

  1. 调试器会生成一个 32 字节的随机认证 Nonce。在加密术语中,Nonce(一个数字,一次使用一次)是在加密过程中生成并且只能使用一次的随机数。
  2. 调试器将 Nonce 发送到 DUT 并请求认证信息。
  3. DUT 生成认证信息,并使用认证私钥对其进行签名。
  4. 调试器会从设备中恢复 DAC 和 PAI 证书,并从其 Matter 信任库中查找 PAA 证书。
  5. 委员会对证明信息进行验证。以下是验证条件:
    • 必须验证 DAC 证书链,包括对 PAI 和 PAA 的撤消检查。
    • DAC 上的 VID 与 PAI 上的 VID 一致。
    • 认证签名有效。
    • 设备认证元素中的 Nonce 与委员会提供的 Nonce 匹配。
    • 使用 Alliance 中众所周知的认证签名密钥之一时,证书声明签名仍然有效。
    • 固件信息(如果存在并由调试器支持)与分布式合规性分类账中的条目匹配。
    • 设备基本信息集群、认证声明和 DAC 之间还会进行额外的 VID/PID 验证。