证明

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

在配置过程中,经过认证的设备需要自行证明。换句话说,它需要证明其所声称的身份和产品的真实性。因此,所有 Matter 设备都具有包含认证密钥对和关联证书链的凭据。设备认证证书 (DAC) 是此链的一部分。在设备接受调试后,向其总工程师提交 DAC 后,总工程师将证明:

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

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

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

设备认证 PKI

DAC 是 X.509 v3 证书。X.509 的第一个版本由 ITU-T 于 1988 年发布。Matter 使用的 X.509 v3 公钥基础架构证书和证书吊销列表 (CRL) 由 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) 借助 CDMatter 设备可以证明其符合 Matter 协议。每当 Matter 认证流程完成时,Alliance 都会为设备类型创建一个 CD,以便供应商将其包含在固件中。该光盘包含以下信息及其他信息:
  • VID
  • 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 验证。