保护 BLE 连接的安全——安全协议概述

了解蓝牙 LE 的安全功能和工具、如何使用它们,并了解它们如何保持连接安全。

蓝牙 LE 等通信协议需要优先考虑安全性。这是有充分理由的。他们携带着珍贵的货物:我们的数据!如果没有这些协议,我们的传感器数据、控制消息、自动化命令都将面临风险。它们都可能被一些不怀好意的网络流氓窃取、偷看或弄乱。所有这一切的后果是多方面的:诸如传感器读数不正确、自动化混乱、甚至整个网络down掉等问题。

举个例子,想象一个智能灌溉系统,其中传感器将数据发送到中央枢纽来决定何时何地浇水。如果来自传感器的信息被拦截或改变,您可能会遇到被淹没的花园或干涸的草坪。或者想象一个家庭自动化系统,其中恶意命令可能会在最糟糕的时间关闭您的安全灯。

确实,不同的无线通信协议根据其目的来解决不同的安全问题。也就是说,大多数人都有一套共同的目标,如下:

  • 保密性:这可确保通信内容无法被预期接收者以外的任何人阅读。这通常是通过加密来实现的,除非使用正确的解密密钥,否则得到的数据将不具备有效的信息。
  • 完整性:保证数据在传输过程中不被篡改。散列和数字签名等技术通常用于验证接收到的数据与发送的数据是否完全相同。
  • 身份验证:这一切都是为了确认身份 - 确保参与通信的设备确实是他们声称的设备。在现实生活中,我们使用护照等个人身份证明文件来证明我们的身份。同样,在无线通信中,这可能涉及预共享密钥或设备证书。身份验证有助于阻止冒名顶替者,如果没有身份验证,通信系统可能会遭受中间人 (MITM) 攻击。
  • 不可否认性:它可以防止设备否认它发送了消息。在低功耗世界中,这可能更具挑战性,但某些协议有巧妙的方法来处理它。
  • 可用性:它涉及设计网络以抵抗干扰、干扰或其他可能中断服务的攻击或从中恢复。
  • 授权:就是授予权限:每个设备可以做什么?它可以访问哪些数据?它可以执行哪些操作?这种级别的控制对于防止设备访问其管辖范围之外的信息或执行操作至关重要。
  • 隐私:在一个努力加强联系的世界中,任何人最不希望发生的事情就是被跟踪。隐私是确保这种情况不会发生的安全方面。它涉及隐藏或匿名设备的地址或其他识别功能,以防止未经授权的跟踪设备及其用户。

在本文中,我们将讨论蓝牙 LE 协议如何提供上述一些安全功能,以及构建安全 LE 设备时要考虑的关键注意事项。

 

SMP—蓝牙 LE 安全工具箱

顾名思义,低功耗蓝牙 (BLE) 专为短距离通信而设计,同时将功耗保持在最低水平。但仅仅因为它的功耗低并不意味着它在安全性上有所欠缺。相反,蓝牙 LE 结合了多种机制来确保安全通信。

蓝牙 LE 包含一个称为安全管理的集成组件,与安全管理器协议 (SMP) 配对。该协议提供了一个工具包(图 1),其中包含可选的安全功能,产品设计人员可以筛选这些功能以找到最适合其产品安全需求的功能。
 

Figure 1. Bluetooth LE’s security manager protocol (SMP) is a toolkit filled with security features for product designers to use.

图 1. 低功耗蓝牙的安全管理协议 (SMP) 是一个充满安全功能的工具包,可供产品设计人员使用。图片(已修改)由 Adob​​e Stock 提供

 

SMP 并不将其任何安全功能视为“必备”,但某些蓝牙profile规范确实需要最低级别的安全性。与此同时,在选择安全功能时,系统设计人员必须采取一些平衡措施。

他们必须从 SMP 工具箱中选择正确的安全工具,并记住,忽视安全功能可能会使他们的产品很容易受到偷偷摸摸的攻击。另一方面,堆积太多功能可能会增加开发和硬件成本,更不用说可能会影响设备的性能和最重要的用户体验 (UX)。

 

BLE 安全功能 — 检查 7 个属性

现在,让我们仔细看看蓝牙 LE 如何满足我们之前讨论过的安全属性。我们将一一讨论七个重要属性。

 
1. 连接加密满足保密性需求

加密是一种用于保密数据的技术。它的工作原理是将可读数据(或明文)转换为加扰的、不可读的格式(或密文)。这种转换需要两件事:加密算法,就像一组加扰过程的规则;以及密钥,它是一条独特的信息,可确保每次转换都是独一无二的。

如果您是预期的接收者,则可以使用适当的密钥和相反的算法将密文转换回可读的明文。

蓝牙 LE 使用一种称为 AES-CCM 的特殊加密。 AES-CCM 代表带有密码块链消息验证代码的高级加密标准。此方法执行两件事:通过加密(使用 AES)保持数据机密性,并验证数据的真实性(使用消息身份验证代码)。

为了创建和共享这些加密密钥,需要使用称为配对的过程。主要有两种类型:LE 传统配对和 LE 安全连接。 BLE v4.0 中引入的 LE Legacy Pairing 是最初的方法。然而,它有一个弱点:它容易受到被动窃听和 MITM(中间人)攻击。

为了解决这些安全问题,BLE v4.2 引入了一种更安全的方法,称为 LE 安全连接。这种新的配对过程使用称为椭圆曲线 Diffie-Hellman (ECDH) 的加密协议进行密钥交换。该协议允许两个设备甚至通过不安全的通道创建共享密钥,从而显着增强安全性。

而且,为了使其加密更加强大,蓝牙 LE 使用了一种称为会话密钥多样化 (SKD) 的技术。这是两个设备在配对时共享的值,用于生成会话密钥。密钥随每个会话而变化,这意味着每个加密会话都是唯一的。这确保了即使您在不同的会话期间加密相同的明文,生成的密文也不会相同。

 

2. 消息验证码 (MAC) 验证数据的真实性和完整性

消息验证码 (MAC),也称为消息识别码 (MIC),是一种加密机制,有助于确保通信过程中消息的真实性和完整性。他们确认消息在传输过程中没有被篡改并且来自合法来源。

以下是 MIC 的工作原理:

  1. 发送方设备 A 使用先前与接收方设备 B 建立的密钥为其消息创建 MIC。
  2. 设备 A 将消息连同计算出的 MIC 一起发送到设备 B。
  3. 当接收方设备 B 收到消息时,他使用相同的密钥为该消息生成自己的 MIC。
  4. 然后,设备 B 将他计算出的 MIC 与设备 A 发送的 MIC 进行比较。如果它们匹配,则接收方知道消息在发送时没有被更改,并且很可能来自设备 A。如果它们不匹配,则意味着该消息可能已被篡改或实际上并非来自设备 A 。

需要注意的一件事是,MIC 无法准确查明消息中发生了什么变化。他们只能验证消息是否可信。

 

3. 数字签名验证数据的真实性和完整性

数字签名使用一种称为非对称加密的方法,其中使用两个不同的密钥:用于签名的私钥和用于验证签名的公钥。此机制可确保消息来自特定来源,并且在传输过程中不会被更改。

在蓝牙 LE 中, 如果GATT 写入过程调用的是ATT的签名写入命令 ,则数字签名对该命令的数据签名。

通用属性配置文件 (GATT) 用于通过 BLE 连接发送和接收称为“属性”的短数据片段。 GATT 建立在属性协议 (ATT) 之上,它定义了这些数据传输的基本结构和操作。

当数据写入蓝牙 LE 设备上的属性时(称为 GATT 写入操作),验证该数据的真实性通常很重要。为此,可以使用 ATT 签名写入命令。该命令的工作原理是将数字签名附加到正在写入的属性值。

这是它的工作原理:

  1. 发送方设备 A 使用它的私钥为其消息创建数字签名,并将它的消息、数字签名和公钥发送给接收方设备 B。
  2. 当设备B收到消息和签名时,他使用他所知道的设备A的公钥来验证数字签名。如果签名验证正确,设备 B 可以确定两件事:消息确实来自设备 A(身份验证),并且消息在传输过程中没有被篡改(完整性)。
  3. 如果验证失败,则意味着消息不是来自设备 A,或者消息在传输过程中被修改。在这种情况下,该消息被视为不可信。

虽然数字签名和 MIC 都确保数据完整性和真实性,但它们的作用不同。 MIC 使用对称加密技术,其中涉及发送者和接收者都知道的共享密钥。同时,数字签名使用非对称加密技术,其中私钥用于签名,公钥用于验证签名。

 

4. 加密广播数据 (EAD) 和广播代码

虽然链路加密 (MIC) 和数字签名是蓝牙 LE 设备强大的安全功能,但它们主要用于互连通信。也就是说,当设备建立连接并在该上下文中进行通信时,它们最有用。

然而,BLE 还支持无连接通信,其中设备公开广播信息。这就是加密广播数据 (EAD) 和广播代码等机制发挥作用的地方。

EAD 功能(在蓝牙核心规范 5.4 版中引入)允许对广播数据包中传输的数据有效负载进行加密。

对于广播同步组(BIG)或流,广播代码用于加密。广播代码是一个 16 个八位字节的值,在 BIG 中的设备之间共享。该代码用于生成加密密钥,然后使用该密钥对广播到组中设备的数据进行加密。

 

5. 私有地址可防止设备跟踪

蓝牙 LE 设备有一个称为蓝牙设备地址 (BD_ADDR) 的公共地址。该地址是全球唯一的,并且在制造过程中被硬编码到设备中。本质上,它是设备的身份地址,有助于设备发现、连接建立和数据交换。

然而,BD_ADDR 存在潜在的隐私风险。由于地址保持静态,通过捕获 BD_ADDR,攻击者可以跟踪设备的移动并推断用户行为。

为了解决这些隐私问题,蓝牙 LE 引入了“私有地址”的概念(图 2)。这些地址不是身份地址;相反,它们通过用定期更改的随机生成的地址替换实际地址来隐藏设备的身份。这有助于维护用户隐私并保护设备免遭跟踪。
 

Figure 2. Format of a resolvable private address.

图 2.可解析私有地址的格式。图片由蓝牙安全学习指南提供

 

私有地址分为三种类型,每种类型提供不同级别的安全性:

  • 随机静态地址:这种类型的专用地址会在设备每次重新启动时发生变化。这是私有地址保护性最低的形式,因为它在电源周期之间保持不变,因此如果设备长时间保持打开状态,则可以进行跟踪。

  • 可解析私有地址 (RPA):这些地址提供更高级别的保护,因为它们更改更频繁(建议每 15 分钟更改一次),并且只能由与其共享称为身份解析密钥 ( IRK)在配对过程中。因此,即使攻击者成功捕获了 RPA,在没有 IRK 的情况下,他们也无法确定设备的实际身份地址。

  • 不可解析的私有地址 (NRP):这些(图 3)是最安全的私有地址类型。 NRP 无法由任何其他设备解析,即使是与该设备配对的设备也是如此。因此,它们完全屏蔽了设备的身份地址。

 

图 3. 不可解析的私有地址的格式。图片由蓝牙安全学习指南提供

 

6.属性权限

在蓝牙 LE 领域,连接设备之间的通信以客户端-服务器模型为中心。服务器包含一组数据,称为属性。这些属性可以是任何内容,从特定服务使用的数据到有关服务或服务器本身的元数据。

为了确保安全通信并保护这些属性,蓝牙 LE 通过称为属性权限的特性来进行授权访问。属性权限是一组规则或准则,用于管理允许哪些客户端以及在什么条件下访问或修改这些属性。

每个属性都有自己的一组权限,这些权限决定连接的设备如何与该属性交互。

这些权限分为三个主要类别:

  • 访问权限:这些权限决定客户端对服务器属性的访问类型。访问权限可以设置为“读”、“写”或“读/写”。

  • 加密权限:加密权限是指客户端访问特定属性之前所需的加密级别。一般有两个级别:未加密和加密。某些属性可能允许在没有任何加密的情况下进行访问,但对于更敏感的数据,服务器可能要求在进行任何访问或数据交换之前对客户端连接进行加密。

  • 身份验证权限:身份验证权限要求客户端在访问特定属性之前证明其身份。这可以通过使用与允许身份验证的关联模型配对来实现。身份验证成功后,客户端设备将被授予对该属性的访问权限。

 

7. 接受列表以解决不可用问题

通用访问配置文件 (GAP) 外围设备是一种自我通告并接受连接的设备,一次只能连接到一个设备。此限制可能会被攻击者利用,攻击者可以连接到外围设备,使其在需要时无法合法使用。

为了解决这个问题,蓝牙 LE 集成了一项称为“接受列表”的功能。接受列表是外围设备允许连接的可信设备的白名单。它包含外围设备信任并希望允许连接的设备的地址。

当另一个设备尝试连接时,外围设备会检查接受列表。如果传入设备的地址在列表中,则外围设备接受连接请求。如果不是,则忽略该请求。这确保了只有受信任的设备才能连接,从而提供了重要的安全层。

通过使用接受列表,蓝牙 LE 设备可以有效地保护自己免受不需要的连接和潜在的拒绝服务攻击。

 

构建安全 BLE 设备的关键考虑因素

构建蓝牙 LE 设备时,您的实施决策可能会对系统的整体安全性产生重大影响。

这些安全提示将有助于确保安全性成为您设计的核心:

  1. 跟上最新的蓝牙核心规范:始终确保您的产品或应用程序基于最新的蓝牙核心规范。至少,它应该满足相关配置文件中定义的安全要求。

  2. 采用强大的配对:使用配对关联模型来提供针对中间人 (MITM) 攻击的保护。这意味着设计具有必要的输入/输出功能的设备。

  3. 请勿使用小于 16 的加密密钥:这是最大密钥大小,使用小于 16 的加密密钥可能会损害设备的安全性。如果您的应用程序需要提高安全性,请将您的设备设置为禁止配对,并立即终止与尝试使用小于 16 个八位位组的加密密钥的设备的任何连接。

  4. 使用安全身份验证:如果必须使用 LE 旧版配对,建议采用安全带外 (OOB) 机制进行身份验证。

  5. 使用地址随机化:选择随机私有地址而不是静态可跟踪身份地址。为了进一步增强隐私性,请按照规范中建议的频率定期刷新这些地址(15 分钟,参考:蓝牙核心规范 5.2 第 6 卷,B 部分第 6.1 节)。

  6. 实施应用层安全性:特别是对于与移动应用程序配对的 BLE 设备,请考虑实施您自己的应用程序层安全协议来补充 BLE 安全性。

  7. 设置属性权限:注意配置属性权限,以便更精细地控制谁可以访问哪些数据。

  8. 允许更新:确保您的设备可以接收软件更新。此功能至关重要,因为它可以纠正已流通设备中已知的安全漏洞。

 

利用丰富的工具箱

LE 安全管理器协议是一个丰富的工具箱,其中充满了提供机密性、数据完整性、授权和防止设备跟踪的工具。这些是烘焙安全蓝牙 LE 设备所需的成分。

如果您是产品设计师,则必须将安全性嵌入到产品的 DNA 中。我们在本文中强调的 LE 安全功能旨在简化此任务。但这还不是路的尽头。请继续关注后续文章,该文章将深入探讨针对蓝牙 LE 功能的常见攻击。它将提供更全面的了解,帮助您进一步加强设备的安全性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值