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