Bluetooth® Mesh 基于证书的供应
技术概览
发布 : | 1.0.0 |
文件版本 : | 1.0 |
最后更新 : | 2023 年 9 月 19 日 |
作者 : |
马丁-伍利Bluetooth SIG |
Version |
Date |
Author |
Changes |
1.0.0 |
September 19, 2023 |
Martin Woolley, Bluetooth SIG |
Initial version |
备注 Bluetooth Mesh 配置文件 规范已更名,现称为Bluetooth Mesh 协议规范。本文件和相关文件在提及 1.1 版规范时将使用这一名称,但在提及 1.0 版规范时,仍将继续称其为Bluetooth Mesh 配置文件规范。 |
1.背景情况
Bluetooth Mesh 基于证书的供应在Bluetooth® Mesh 协议规范 1.1 版本中引入。要充分了解Bluetooth Mesh 基于证书的供应的功能和优势,有必要了解Bluetooth Mesh 1.0 版本的某些方面。本节将提供相关背景信息,为研究Bluetooth Mesh 基于证书的供应提供支持。
1.1 预备
配置是设备成为Bluetooth Mesh 网络一部分的程序。用户在调试网络或向网络添加新设备的过程中进行供应。它通常在繁忙的工作环境中进行,通常在设备实际安装后进行。
1.2 设备识别和凭证
未配置设备使用唯一的设备 UUID 标识自己。它们还可能有唯一的工厂分配的供应代码或静态公私密钥对。如果存在,(原始)公钥与设备身份没有可信关联。如果支持,设备制造商可提供人可读格式的代码,支持通过 NFC 扫描代码或公钥,或使用 Provisioner 的摄像头读取 QR 码。
1.3 身份验证
供应程序包括一个身份验证步骤,目的是让供应者用户验证正在供应的设备(被供应者)就是他们打算供应的物理设备。这样可以防止人为错误和中间人攻击。
Bluetooth® Mesh 配置文件 规范》1.0 版定义了几种认证形式。除了使用上述凭证外,还可以生成随机数字或字母序列,最终用户必须输入相应的序列。例如,输出 OOB 身份验证要求被供应者使用设备支持的操作输出一个随机选择的数字,该数字的大小必须符合要求。另外,设备制造商也可以随设备提供一个人类可读或机器可读的静态 OOB 验证码。例如,装有摄像头的供应者可以扫描印在设备上的 QR 码。供应者也可以选择接受使用全零认证值的认证。然后通过供应承载器进行涉及认证值的确认交换,如果成功,则对被供应者进行认证,并可继续执行剩余程序。
1.4 实际问题
使用Bluetooth® Mesh 1.0 中支持的身份验证选项可能会遇到一些实际问题。Provisionee 设备可能不在视线范围内或很难看到,而且每个设备的选项都需要终端用户的直接交互。此外,闪烁 LED 指示身份验证值等操作实际上只适用于小数字。小的验证值提供的熵值较低,并不特别安全。由于需要输入数据,长数字序列可能会造成负担,而且如果增加一个合适的显示屏,可能会使产品成本更高。
为解决这些问题,Bluetooth® Mesh v1.1 中引入了数字证书作为供应程序的一部分。下一节将概述数字证书,随后将具体介绍如何将数字证书用于设备配置。
1.5 数字证书
数字证书(简称证书)用于验证实体声称的身份。除身份外,每个实体还有一对数学上相关的密钥。公共密钥可以在不影响安全的情况下免费分发给任何人。相应的私人密钥永远不会公开,只有拥有密钥的实体才知道。验证身份的行为称为认证,在互联网世界中,证书是根据域名或主机名对服务器进行认证的主要方式。设备证书同样可用于识别特定设备。例如,Bluetooth® Mesh 配置使用设备 UUID 和公司(制造商)名称的组合作为标识。
证书是一种包含各种字段和值的数字文件。X.509 标准定义了证书文件的格式,并被普遍使用。证书的工作原理是将身份与实体的公开密钥值绑定,并提供一种机制,使第三方可以验证这种关联,从而确定与之通信的实体就是其声称的实体。
任何人都可以创建证书,但有可靠信任基础的证书则由可信组织颁发,该组织被称为证书颁发机构(CA)。CA 确认具有特定身份的实体与特定的公共密钥值相关联(绑定),且同一密钥不绑定任何其他身份。从本质上讲,CA 验证的是实体的真实身份。通过信任 CA,我们可以信任它签发的所有证书的真实性。
证书的内容、创建证书的安全程序以及签发机构的安全惯例都会影响对 CA 的信任,从而影响对 CA 签发的证书的信任。
在创建证书时,CA 使用其私人密钥生成证书正文的数字签名,并将签名附在证书上。该签发人签名的存在,表明 CA 认可证书中实体名称与公共密钥的关联。出于操作和安全原因,CA 通常会创建一个由一个或多个中间证书组成的证书链,并使用证书链末端的中间证书来签署最终实体证书。
要验证认证证书,执行认证程序的实体必须拥有 CA 的根证书并获得所有中间证书,然后用这些证书递归验证证书中 CA 的数字签名。认证实体信任 CA,并在验证签名时得出结论,证书中的身份信息和公用钥匙是可信的,因为受信任的 CA 已通过签名表明了这一点。
2.关于Bluetooth Mesh 基于证书的供应
2.1 能力和优势
基于证书的配置功能允许在配置过程中将数字证书用作设备验证的基础,并安全地验证设备 UUID 与特定公钥值的关联。
使用证书对设备进行身份验证时,用户不需要在配置过程中亲眼看到或听到设备。由于不需要用户在配置验证过程中与特定设备直接交互,因此必须有其他方法来授权允许加入网络的设备,如收集授权 UUID 列表、候选设备证书哈希值,或继续依赖静态 OOB 秘密。证书在许多方面都能提供更好的安全性,而且不会出现与输出 OOB 等方法相关的低熵问题。使用其他配置身份验证方法和操作所带来的实际和潜在安全问题,都可以通过这一功能得到缓解。
2.2 技术要点
2.2.1 设备证书
要在配置过程中使用基于证书的身份验证,mesh 设备必须有相关的数字证书,即设备证书。这是一个 X.509 格式的证书,在 X.509 主题名称字段中包含mesh 设备 UUID 值。设备的静态公钥也包含在证书中。证书还可能包含设备供应商和产品型号的标识符。
设备证书由第三方 CA 或设备供应商的内部 CA 签发和签署。证书应包含一个字段,说明其遵守的 CA 政策。
2.2.2 设备证书的可用性
未配置设备信标由设备广播,以指示其是否可以进行配置。这种信标包括一个名为 "OOB 信息"的字段,表示是否有 OOB 供应信息以及可以从哪个来源获得。如果第 7 位被设置,则表示设备支持基于证书的供应。
2.2.3 设备证书检索
在 Provisioner 发送Provisioning Invite PDU之前,必须向 Provisioner 提供适当的设备证书。设备证书有多种不同来源。
设备可使用一种名为 "供应记录"的新存储机制(见 2.2.4)来存储证书本身和中间证书。此外,供应记录还将包含一个 URI,表示一个互联网协议和地址,需要时可从该协议和地址下载证书。规范还解释了如何使用 NFC 标签和条形码等其他来源提供下载 URI。
证书的下载和验证由 Provisioner 执行。证书验证根据RFC5280 按照标准互联网工程任务组(IETF)程序进行。作为完整证书链一部分的中间证书也可存储在供应记录中。Provisioner 必须直接或通过其主机操作系统提供一种机制,用于加载和访问每个设备供应商的 CA 根证书,以便验证证书签名链。
在某些情况下,例如在新大楼安装mesh 网络时,可能没有互联网接入。为适应这种情况,供应程序可在现场供应新网络中的设备之前预加载设备证书。这种证书缓存程序不属于当前功能定义的一部分。
2.2.4 供应记录
供应记录提供了一种只读机制,用于访问供应过程中使用的存储信息。有多种已定义的记录类型,每种类型由 16 位数字记录 ID 标识。例如,ID 值为 0x0000 的记录包含基于证书的供应 URI,而 ID 值为 0x0001 的记录则包含设备证书。
定义了新的供应协议 PDU,允许列出或检索供应记录。使用 PDU 中的偏移量和片段大小参数,可将长记录检索为一系列片段。
2.2.5Bluetooth Mesh 远程调配和证书
Bluetooth® Mesh 远程供应功能允许即使不在供应器的直接无线电范围内也能供应设备。这具有实际优势,尤其是在调试新网络时。但这也意味着,有时需要配置的设备并不在用户的视线范围内。事实上,它们可能位于十层楼以上!
Bluetooth Mesh 基于证书的调配可与Bluetooth Mesh 远程调配一起使用,并能解决这一问题。
3.关闭
Bluetooth® Mesh 基于证书的配置提供了一种使用公钥基础设施验证设备的行业标准方法。证书减轻了终端用户授权设备加入网络的负担,并降低了恶意设备加入网络的可能性。它与Bluetooth Mesh 远程供应功能相辅相成,后者允许对未供应的设备进行供应,而这些设备无需处于供应程序应用的直接无线电范围内,因此可能在视线和听力范围之外。