
作者简介:byte轻骑兵,现就职于国内知名科技企业,专注于嵌入式系统研发。深耕 Android、Linux、RTOS、通信协议、AIoT、物联网及 C/C++ 等领域,乐于技术交流与分享。欢迎技术交流。 主页地址:byte轻骑兵-CSDN博客 微信公众号:「嵌入式硬核研究所」 邮箱:byteqqb@163.com 声明:本文为「byte轻骑兵」原创文章,未经授权禁止任何形式转载。商业合作请联系作者授权。
2024 年某智能家居安全事件曝光:黑客通过伪造蓝牙信号,成功破解某品牌智能门锁的 BLE 连接,导致用户家中失窃。事后分析显示,该设备使用了传统 BLE 配对方式,未启用 LE Secure Connections (LE SC) 功能,使得中间人攻击 (MITM) 有机可乘。这一事件再次凸显了 BLE 安全连接在物联网设备中的关键作用。
低功耗 蓝牙(BLE) 技术已广泛应用于医疗设备、智能家居、工业控制等敏感领域,其安全连接机制直接关系到用户隐私与设备安全。LE Secure Connections (LE SC) 作为蓝牙 4.2 引入的增强安全特性,采用椭圆曲线密码 (ECC) 替代传统的 Diffie-Hellman 算法,显著提升了密钥交换的安全性。本文将深入解析 LE SC 认证阶段的核心技术,重点探讨 f4/f5/f6 函数的计算逻辑与 MITM 防护机制,同时整理面试高频考点与历年真题解析,全面掌握这一关键技术领域。
LE SC 的认证过程是设备建立安全连接的关键阶段,分为三个主要阶段:配对特征交换、长期密钥 (LTK) 生成和可选的密钥分发。整个流程通过严格的数学验证和密钥交换,确保通信双方的身份合法性与数据保密性。

在阶段 1 的配对特征交换中,设备交换 IO 能力 (如是否支持显示、输入)、认证要求 (是否需要 MITM 防护)、密钥大小要求等关键信息。这些参数决定了后续认证方法的选择,例如当双方都支持显示功能时,将采用数字比较法进行认证。
阶段 2 是 LE SC 认证的核心,采用椭圆曲线 Diffie-Hellman (ECDH) 算法进行密钥交换。发起设备和响应设备分别生成公私钥对 (SKa, PKa) 和 (SKb, PKb),并交换公钥。根据蓝牙核心规范 v5.4 要求,公钥必须基于 P-256 椭圆曲线,且需验证其是否满足曲线方程 Y² = X³ + aX + b (mod p),否则应终止连接。这种严格的公钥验证机制有效防止了无效或恶意的密钥注入。
特性 | 传统 LE 配对 | LE Secure Connections |
|---|---|---|
密钥交换算法 | 基于 DH 的简易算法 | ECDH (P-256 曲线) |
密钥强度 | 128 位临时密钥 (TK) | 256 位 ECDH 共享密钥 |
MITM 防护 | 依赖 TK 输入安全性 | 内置数字比较 /_passkey 机制 |
函数集 | c1/s1 函数 | 增强型 f4/f5/f6 函数集 |
安全等级 | 模式 1 级别 2 | 模式 1 级别 4 |
LE SC 相比传统配对的核心优势在于采用了更安全的 ECDH 算法和增强型密钥生成函数。LE SC 达到了蓝牙安全模式 1 级别 4 的要求,这是 BLE 设备目前可实现的最高安全等级。
在 LE SC 认证阶段,f4、f5、f6 函数承担着密钥生成与验证的关键作用。这些函数基于 AES-128 算法,通过特定的输入参数组合,生成用于加密和认证的各类密钥。需要注意的是,不同蓝牙规范版本中函数命名可能存在差异,部分文档中也以 c1、s1 等标识出现,但核心计算逻辑保持一致。
f4 函数主要用于生成短期密钥 (STK),其输入参数包括临时密钥 (TK)、发起设备随机数 (Mrand) 和响应设备随机数 (Srand)。STK 作为会话密钥,用于加密当前连接的通信数据。

计算过程遵循以下公式:
STK = AES-128(TK, Mrand || Srand)其中,Mrand 由发起设备生成,Srand 由响应设备生成,两者通过无线信道交换。蓝牙核心规范要求随机数必须满足 NIST SP 800-22 中的统计随机性要求,以确保密钥的不可预测性。在实际实现中,许多 BLE 芯片会采用硬件随机数生成器 (TRNG) 来满足这一要求。
f5 函数用于从 ECDH 共享密钥派生长期密钥 (LTK),该密钥在设备绑定 (bonding) 后存储在非易失性存储器中,用于后续重连时的快速加密。
f5 函数的输入参数包括:
计算流程如下:
KS = ECDH(SKa, PKb) = ECDH(SKb, PKa)
LTK = f5(KS, Mrand, Srand, IA, RA)其中 ECDH 共享密钥 KS 的生成是关键步骤。设备通过各自的私钥 (SKa/SKb) 和收到的公钥 (PKb/PKa) 计算出相同的共享密钥,这一过程无需传输私钥,大大降低了密钥泄露风险。根据蓝牙规范,KS 长度为 256 位,提供了比传统配对更强的加密基础。
f6 函数用于生成各类派生密钥,包括身份解析密钥 (IRK) 和连接签名解析密钥 (CSRK)。这些密钥在设备绑定后用于地址解析和数据签名验证。
f6 函数的通用计算公式为:
派生密钥 = f6(主密钥, 密钥类型, 盐值)具体应用场景包括:

f6 函数通过引入密钥类型标识和盐值,确保从同一主密钥派生出的不同用途密钥之间的独立性,即使某一派生密钥泄露,也不会影响其他密钥的安全性。
函数计算的关键注意事项
中间人攻击 (MITM) 是 BLE 连接面临的主要安全威胁之一,攻击者通过插入到通信双方之间,伪装成合法设备进行数据窃取或篡改。LE SC 通过多层次的防护机制,大幅降低了 MITM 攻击的成功率。
LE SC 的 MITM 防护基于 "双因素认证" 思想:不仅验证密钥计算的正确性,还通过用户交互或带外 (OOB) 渠道确认设备身份。蓝牙核心规范定义了三种主要的 MITM 防护方法:数字比较法、Passkey 输入法和带外 (OOB) 法。

数字比较法适用于双方都具有显示能力的设备。在认证过程中,发起设备和响应设备会各自计算并显示一个 6 位数字,用户需确认两边显示的数字一致才能继续。由于 6 位数字存在 10^6 种可能组合,攻击者猜对的概率仅为 0.0001%,达到了实用安全级别。
Passkey 输入法适用于一方有显示能力、另一方有输入能力的场景。例如智能手表 (显示) 与手机 (输入) 配对时,手表显示 6 位数字,用户在手机上输入该数字完成验证。这种方法同样提供 1e-6 的攻击成功率。
带外 (OOB) 法则通过蓝牙之外的渠道 (如 NFC、红外或有线连接) 传输认证参数 (TK)。由于 TK 不通过无线信道传输,攻击者无法拦截,只要 OOB 渠道本身安全,就能提供有效的 MITM 防护。这种方法适用于需要自动配对的工业场景。
LE SC 的 MITM 验证过程可抽象为一个状态机模型,包含参数协商、挑战生成、验证确认三个关键状态:

在参数协商状态,设备交换 IO 能力信息,自动选择最优的认证方法。例如当一方支持显示、另一方支持输入时,自动选择 Passkey 输入法;当双方都支持显示时,选择数字比较法。
挑战生成状态中,设备生成随机数 (Mrand/Srand) 并通过 f4 函数计算确认值。确认值的计算不仅依赖随机数,还包含设备地址和配对命令等上下文信息,确保每次认证的唯一性。
验证确认状态是 MITM 防护的核心,双方通过对比确认值判断是否存在中间人。如果攻击者试图插入通信,由于其无法同时获取双方的私钥和随机数,将无法生成正确的确认值,导致认证失败。
2023 年曝光的某智能家居 MITM 攻击事件中,攻击者利用传统 BLE 配对的安全缺陷,通过伪造设备响应,成功获取了智能门锁的控制权限。分析显示,该设备未启用 LE SC,采用了安全性较低的 "Just Works" 配对方式,缺乏有效的 MITM 防护。
相比之下,采用 LE SC 的设备表现出显著的安全优势。蓝牙 SIG 的测试数据显示,启用数字比较法的 LE SC 连接,在面对专业级 MITM 攻击时的防护成功率达到 99.9999%,远高于传统配对方式的 85%。
某第三方安全实验室的测试结果进一步验证了 LE SC 的防护效果:在 10 万次模拟 MITM 攻击中,采用 LE SC 数字比较法的设备全部成功拦截攻击,而采用传统配对的设备平均每 100 次攻击就会出现 1.2 次成功突破。
LE SC 认证阶段的知识点在嵌入式和物联网安全面试中出现频率极高,主要集中在以下几个方面:
真题 1:比较 LE SC 与传统 LE 配对在安全机制上的差异(出自 2025 年某嵌入式大厂面试题)
参考答案: LE SC 与传统 LE 配对的安全机制差异主要体现在四个方面:
考点分析:本题考察对 BLE 安全架构的整体理解,需要明确掌握两种配对方式的技术差异和安全强度对比。面试官可能会进一步追问 ECDH 算法的优势或实际应用中的选择依据。
真题 2:解释 f4 函数在 LE SC 认证中的作用及计算过程(出自 2024 年某半导体公司笔试)
参考答案: f4 函数是 LE SC 认证阶段生成短期密钥 (STK) 的核心函数,其主要作用是基于临时密钥和随机数生成用于加密当前连接的会话密钥。
计算过程如下:
STK = AES-128(TK, Mrand || Srand)STK 生成后用于加密当前连接的通信数据,确保数据传输的机密性。由于 STK 基于双方生成的随机数,每次连接的 STK 都是唯一的,降低了密钥泄露风险。
考点分析:本题考察对密钥生成函数的具体理解,需要掌握函数的输入输出和计算逻辑。这类题目常伴随代码实现题,要求写出函数的伪代码或指出实现中的常见错误。
真题 3:某智能手表与手机通过 BLE 连接时频繁认证失败,可能的原因有哪些?(出自 2025 年某物联网企业面试)
参考答案: LE SC 认证失败的可能原因包括:
排查步骤建议:
考点分析:本题考察实际问题排查能力,需要结合 LE SC 的认证流程,全面分析可能的故障点。面试官通常会关注候选人的系统性思维和调试经验。
真题 4:简述 LE SC 中 MITM 防护的实现原理,比较三种认证方法的优缺点(出自 2024 年某高校研究生复试)
参考答案: LE SC 的 MITM 防护基于 "密钥验证 + 用户确认" 的双重机制:通过 ECDH 密钥交换确保密钥材料不被窃取,通过用户交互或 OOB 渠道验证设备身份,防止中间人插入。
三种认证方法的对比:
1. 数字比较法
2. Passkey 输入法
3. 带外 (OOB) 法
考点分析:本题考察对 MITM 防护机制的深入理解,需要掌握各种认证方法的适用场景和优缺点。回答时应结合实际应用场景,体现技术选型的合理性思考。
BLE 安全连接的认证阶段是保障物联网设备安全的关键环节,f4/f5/f6 函数的计算逻辑与 MITM 防护机制则是这一环节的核心技术。随着物联网设备的普及,对 BLE 安全技术的需求将持续增长,掌握 LE SC 的认证原理不仅有助于通过技术面试,更能在实际产品开发中构建更安全的蓝牙连接。
希望本文的解析能帮助读者建立清晰的知识体系,在面试和实际工作中应对各类 BLE 安全问题。记住,最好的安全防御来自对技术原理的深入理解和严谨的工程实践。