鸣涧 发表于 2024-9-11 09:21:26

【技术专栏】BLE 蓝牙低功耗Host-SMP概述

本文希望通过对BLE配对加密机制的深入解析,帮助读者更好地理解和应用BLE技术。在实际开发中,建议优先选择安全配对加密模式,以确保设备间通信的安全性。
1中间人攻击(MITM)

在Just Works配对中,由于缺乏用户验证,攻击者可以冒充一方设备与另一方进行配对,从而窃取或篡改通信数据。Numeric Comparison和Passkey Entry等方法通过用户参与来增强抗MITM攻击的能力。

2窃听

如果配对过程中密钥交换未加密,攻击者可以窃听通信并推导出密钥。使用ECDH等算法可有效防止窃听,确保密钥的安全传输。

3穷举破解

针对较短的密钥或密码,如Passkey Entry中的6位数字,攻击者可以通过穷举法破解。尽管BLE协议使用了消息认证码来增加破解难度,但Passkey的有限组合仍可能被攻击。

因此,在蓝牙无线传输中,进行数据安全加密必不可少。BLE中安全管理协议(Security Manager Protocol,简称SMP)就是负责管理配对与加密过程,确保设备之间的数据传输安全。本文将探讨BLE的传统配对加密与安全配对加密,并展示SMP配对加密的流程图,以便读者更好地理解BLE的安全机制。

二 SMP概述

SMP(Security Manager Protocol)是一种用于BLE设备之间配对的安全管理器协议,主要负责在BLE设备配对过程中管理密钥生成、分发和存储,并在设备间建立加密链路,确保后续通信的机密性与完整性。

如下图所示,安全管理器位于 LE 架构中的 L2CAP 之上。它使用 L2CAP 的服务来执行其不同的程序,进行配对和加密。配对是两个BLE设备在建立加密通信前必须完成的过程,目的是生成共享的加密密钥,一旦链路被加密,用于解析随机地址、验证签名数据和加密未来链路的各种密钥在主从之间交换。


不同的加密模式与配对方式具有不同的安全等级(Security Levels)。

LE SMP的安全等级共有四种:

常见的L2CAP基础模式数据交互如下。


[*]Level 1:无安全性(No_Authentication_No_Encryption)对应的安全属性:No security requirements描述:通信过程中没有任何加密或身份验证。
[*]Level 2:未认证的加密(Unauthenticated_Pairing_with_Encryption)对应的安全属性:Unauthenticated no MITM protection 描述:数据加密,但没有MITM保护,通信安全性较低。
[*]Level 3:已认证的加密(Authenticated_Pairing_with_Encryption)对应的安全属性:Authenticated MITM protection描述:数据加密并且经过身份验证,具备MITM防护,安全性较高。
[*]Level 4: LE安全连接(Authenticated_LE_Secure_Connection_Pairing_with_Encryption) 对应的安全属性:LE Secure Connections pairing描述:使用LE Secure Connections技术,提供最强的加密和MITM保护。

2.1加密模式与配对方法

BLE配对加密模式主要分为两种:传统配对加密(LE Legacy Pairing)和安全配对加密(LE Secure Connections Pairing)。两者在加密算法、密钥分发配对流程和抗攻击能力上存在差异。

LE SMP配对方法主要有四种,设备在第1阶段的配对功能交换中交换身份验证要求和 IO 功能,以确定在第 2 阶段应使用以下哪种配对方法。

Just Works


[*]描述: 不需要用户交互,设备直接完成配对过程。配对过程中使用的临时密钥(Temporary Key, TK)默认设置为0。
[*]安全性: 安全等级为level2,较低,没有用户确认或验证的步骤。基本的容易受到中间人攻击(Man-in-the-Middle, MITM)。
[*]适用场景: 适用于不需要高安全性的设备或用户体验优先的场景,例如智能家居设备。

Numeric Comparison (仅适用于 LE Secure Connections)


[*]描述: 两个设备会显示一个6位的数字,用户需要确认这两个数字是否相同。只有当两个设备显示的数字一致且用户确认时,配对才会成功。
[*]安全性: 安全等级为level4,较高,防止MITM攻击。通过用户确认数字比较,确保配对设备的合法性。
[*]适用场景: 适用于具备显示屏的设备,如智能手机或平板电脑。

Passkey Entry


[*]描述: 一方设备显示一个6位的数字(Passkey),用户需要在另一方设备上手动输入该数字。
[*]安全性: 传统加密模式下安全等级为level3,安全加密模式下安全等级为level4,安全性较高,依赖于用户手动输入的过程来防止MITM攻击。
[*]适用场景: 适用于至少有一个设备具备显示和输入功能的场景,如蓝牙键盘或门锁。

Out Of Band (OOB)


[*]描述: 设备通过BLE以外的通信通道(如NFC或二维码)交换配对信息。这种方法通过独立于BLE的渠道传递加密密钥。
[*]安全性: 传统加密模式下安全等级为level3,安全加密模式下安全等级为level4,最高,因为配对信息通过一个与BLE独立的安全通道传输,几乎不可能被MITM攻击拦截。
[*]适用场景: 适用于需要最高安全性的场景,如支付设备或门禁系统。

2.2配对流程

SMP配对过程如下图所示,配对是一个三阶段的过程。前两个阶段是强制性的,而第三阶段是可选的。阶段1和阶段2可以在链路(加密或未加密)上执行,而阶段3仅在使用阶段2中生成的STK(或LTK)加密的链路上执行。这三个阶段如下图所示。


第 1 阶段:配对功能交换


第 2 阶段(LE 传统配对):短期密钥 (STK) 生成

第 2 阶段(LE 安全连接):长期密钥 (LTK) 生成


第 3 阶段(可选,基于STL/LTK):密钥分发


根据抓包示意图,可以直观的看到双方配对加密的操作,下图为传统配对加密每个流程的抓包数据,与上述加密配对流程对应。



安全机制比较与使用建议

传统配对加密和安全配对加密在安全性上的主要区别如下:


[*]加密算法:传统配对使用AES-CMAC算法,安全配对使用ECDH算法,后者具有更强的抗攻击能力。
[*]密钥分发:传统配对中密钥交换过程易被截获,安全配对通过ECDH算法动态生成密钥,避免了密钥被拦截的风险。
[*]抗MITM攻击:传统配对的“Just Works”模式几乎没有抗MITM能力,而安全配对通过数字比较、Passkey输入等方式,有效提升了抗攻击能力。
为了提升BLE设备的安全性,应尽量避免使用Just Works配对方式,而优先选择具备MITM保护的Passkey Entry或Numeric Comparison。在需要极高安全性的场景下,OOB配对方式是最佳选择,因为它在BLE通信通道之外交换密钥,大大降低了被窃听的风险。

四 结语

随着物联网设备的普及,BLE的安全性越来越受到关注。从传统配对加密到安全配对加密,BLE不断提升自身的安全防护能力,保护用户的数据隐私。

泰凌BLE 协议栈全面支持所有安全等级,能够为产品提供稳健的多层次安全防护,确保设备间的通信安全可靠。

本文希望通过对BLE配对加密机制的深入解析,帮助读者更好地理解和应用BLE技术。在实际开发中,建议优先选择安全配对加密模式,以确保设备间通信的安全性。
页: [1]
查看完整版本: 【技术专栏】BLE 蓝牙低功耗Host-SMP概述