基于BLE安全攻击反制措施之浅析

近年来出现了越来越多的低功耗蓝牙应用,即ble(bluetooth low energy),比如说智能手环、防丢器等,对蓝牙的安全要求也越来越高。这篇文章将深入浅出说明ble4.0~4.2中的一些安全攻击反制措施,从而引出ble中最主要的两个安全机制“加密”和“认证”。
1. 加密(encryption)
两个设备正常通信,device1往device2发送123,device2往device1发送456,这种通信方式非常危险,因为在空中的数据包都是明文。窃听设备device3很容易就能获取device1和device2的通信内容。
图1
针对以上攻击,ble4.0提供以下反制方法,device1和device2首先协商出一个密钥key,device1将加密过后的数据text1发送给device2,device2得到text1之后根据之前协商的key解出device1真正发送的内容123。第三方能够偷听到text1和text2,但是没有key就没办法解出device1和device2真正的通信内容。
图2
从上图可以知道,链路是否安全取决于密钥key会不会被device3获取到。对于ble4.0来说,其实只要device3窃听device1和device2协商密钥过程,就能够获取密钥key,所以这是ble4.0的一个漏洞,只有保证协商密钥过程中不被别人窃听,才认为链路是安全的。
针对ble4.0的漏洞,ble4.2增加了基于椭圆曲线的dh密钥交换协议(ecdh),使用该交换协议目的就是在device3窃听的情况下,仍然能够协商出device3不知道的密钥key。在举例子前,我们需要了解以下知识:
对于椭圆曲线的离散对数数学难题可用如下简单的话描述:
k为正整数,p是椭圆曲线上的点(称为基点)。
q = k * p
已知k和p,很容易推导出q;已知q和p,很难推导出k。
对于该数学难题这里不展开说明,只说明它们是如何和ble关联起来的,这里的‘*’不是普通乘法符号,看成是一种特殊的运算法则即可。
图3
经过ecdh之后,device1和device2就能得到共享密钥key,基于该共享密钥key可以衍生出ltk密钥,用于后续对称加密。至此,ble的加密部分已到尾声,下一节将会从另一个攻击角度,引出ble的另一个安全机制:认证。
2. 认证
device1希望与device2建立直接连接。但是,存在device3屏蔽掉真实的信号,同时伪装成device1和device2,导致空间中实际存在两个连接,而不是一个连接,这样的攻击叫做中间人攻击。正常情况下, device2和device1建立连接之后会进行ecdh,形成第三方无法解密的安全链路,这一点我们在上一节提到过;但是在中间人攻击下,实际是device3分别和device1和device2进行ecdh,所以对于device3来说,device1和device2发送的数据都是没有秘密的。
图4
为了防止中间人攻击,ble在连接之后加入了“认证”机制,目的就是在设备device3存在的情况下,device1知道自己连接上的是device2还是设备device3。
正常认证过程如下:
第一步:device1和device2交换公钥;
第二步:device1和device2用蓝牙以外的交流方式达成共识,使用相同的配对码;
第三步:device1生成随机数nai,device2生成随机数nbi;
第四步:device1将相关参数代入函数f得出cai,发给device2;
第五步:device2将相关参数代入函数f得出cbi,发给device1;
第六步:device1将nai发给device2;
第七步:device2用刚刚收到的nai校验第四步收到的cai;
第八步:device2校验cai成功,将nbi发给device1;
第九步:device1用刚刚收到的nbi校验第五步收到的cbi。
图5
下图是中间人攻击下的认证过程,通过对比正常认证过程可以发现问题会出现在第五步。
为了让device2第七步能够校验通过,device3在第五步一定要发送给device2恰当的cai。
所以第五步似乎有两种方案:
将第四步收到的cai,直接发给device2。
因为pk1不等于pk2,所以第七步校验会出错。
私自捏造cai发给device2。
由于不知道nai和passkey两个参数,所以无法确认cai的值是多少。
也就是说,无论device3怎么样做都没办法通过第七步校验,导致认证不通过。所以通过“认证”机制可以给连接提供中间人攻击保护。
图6
为了方便理解上面用到的例子是经过简化的,有些地方会与标准协议有出入,但是原理是一样的。
zlg52810p0-1-tc是基于nrf52810的无线透传模块,串口at指令控制,使用简单方便。除了支持ble的加密和认证安全机制外,还支持ble4.2的le data packet length extension与ble5的2m phy特性,大大提高了传输速率。

如何利用51单片机设计一个蓝牙控制风扇系统
linux运维常用命令解析
台积电受iPhoneX影响,连续两季出现业绩下滑
百大案例 | 财通证券携手华为夯实网络底座,打造金融科技发展新引擎
西门子助力铁路实现自动化控制运行
基于BLE安全攻击反制措施之浅析
抢滩穿戴式商机 台半导体业者频出奇招
开鸿智谷OpenHarmony教育成果亮相北京教育装备展
示波器差分探头的优势体现在哪些方面
两大操作系统对比,MacOS和Windows哪个更适合办公
怎样才叫真正理解卡尔曼滤波Kalman Filter?
固高科技为中国企业提供从底层设备直通云端的‘工业4.0’云端解决方案
比特币如果不是一种可行的货币,那么加密货币一定是一种资产
HDI和一般PCB的区别
仪器灵敏度与检出限的区别
Fitbit接连收购Pebble、Vector 智能手表会有新期待?
谷歌推出DeepVariant程序,能够识别基因突变
航空5G通信基建加速:5G通信技术迎来高速发展
ch32和gd32哪个好用?
市场竞争激烈,电力电缆的主要优点是什么