BLE通讯的安全性

概述

在开发蓝牙低功耗(Bluetooth LE)应用时,对通信链路进行安全防护是最重要的需求之一。蓝牙LE协议提供了丰富的安全特性,包括身份认证(authentication)、完整性(integrity)、保密性(confidentiality)以及隐私(privacy)等。在本课中,我们将全面讲解蓝牙LE安全架构的原理和关键机制。


你将学习如下内容:

  • 蓝牙LE安全架构的基本组成和核心概念

  • 不同安全级别的作用场景

  • 设备配对(Pairing)与绑定(Bonding)过程

  • 实现和验证链路加密

  • 如何有效管理蓝牙安全密钥


配对过程

保护无线通信最常用的做法就是对连接进行加密,加密会将传输中的数据转化为仅有权限的设备才能读取的形式。

要加密链路,通信双方必须拥有相同的密钥。生成、分发、认证这些加密密钥的过程叫做配对(pairing)过程。

每次需要重新加密链路时,设备都要再次执行配对过程。除了“配对”,还有一个术语叫“绑定”(bonding),指的是双方将加密密钥保存在设备中,之后再次连接可直接重用该密钥实现快速加密。在绑定过程中,双方还可以交换和存储身份密钥,以便今后通过随机可解析私有地址(RPRA)识别彼此。


定义

  • 配对(Pairing):指为加密目的生成、分发和认证密钥的过程。

  • 绑定(Bonding):是配对之后,将密钥用于后续重新连接加密的过程。


蓝牙LE将加密过程分为三个阶段。


阶段1:发起配对

为了发起配对,有时也包括绑定过程,中心设备需要发送配对请求(Pairing Request),外围设备回复配对响应(Pairing Response)。在这一阶段,双方设备会交换配对特征信息,用于决定第二阶段采用哪种配对方法,以及第三阶段要分发哪些密钥。

最重要的是,双方会交换各自的I/O能力(输入/输出能力),类型包括:

  • DisplayOnly:仅有显示

  • DisplayYesNo:有显示+选择“是/否”

  • KeyboardOnly:仅有按键输入

  • NoInputNoOutput:无输入输出

  • KeyboardDisplay:按键+显示

除了I/O能力,还会交换支持哪些安全特性、是否请求绑定等内容。


注意

只有中心设备能发送配对请求。外围设备可以发送安全请求(Security Request)来触发中心发起配对请求,但这种做法并不常见。


阶段2:执行配对

第二阶段会生成用来加密连接的密钥。采用哪种配对方法,取决于第一阶段交换的信息。

LE传统配对(LE Legacy Pairing)下,双方交换一个临时密钥(TK),再计算生成短期密钥(STK),之后用STK加密链路。但STK容易被破解,因此蓝牙4.2提出了LE Secure Connections。LE Secure Connections中,双方生成、交换更安全的密钥,用于生成长期密钥(LTK),LTK用于链路加密。更多区别见本课的“传统配对与安全连接”。

传统配对有三种TK交换方法,称为配对方式(pairing methods)。LE Secure Connections 兼容传统三种方式,并新增一种数字比较(numeric comparison,传统方式不支持)。配对过程的安全性取决于采用哪种方式。

配对方式

  • Just Works:双方以明文交换信息自动生成STK,用户只需接受,无身份认证。

  • Passkey Entry:一台设备显示6位数字,另一台用户输入这串数字。I/O能力决定谁显示谁输入。

  • Out of Band (OOB):通过蓝牙以外的方式(比如NFC)交换密钥。

  • Numeric Comparison(仅LE Secure Connections支持):双方都显示6位数字,用户确认显示内容一致。

image

采用哪种方式,取决于OOB标志、MITM(防中间人攻击)标志和双方I/O能力,这三项都在阶段1时交换。
OOB/MITM优先决定是否直接用OOB,否则按 I/O 能力决定配对方式。
LE Secure Connections只需任一设备OOB标志置位即可。配对方式选取规则具体参见表格(略)。
本阶段生成的密钥将用于第二阶段后加密链路。如果只进行配对(不做绑定),仅需前两阶段,能跳过第三阶段。


阶段3:密钥分发

本阶段使用长期密钥LTK分发其它密钥。传统配对中LTK在本阶段生成,LE Secure Connections则在第二阶段生成。其它密钥用于设备下次重连识别身份、重用相同LTK快速加密。

image

posted @ 2025-11-26 14:02  毛豆*_*  阅读(66)  评论(0)    收藏  举报