蓝牙物联网的安全漏洞分析

在当前的网络应用中,物联网具有对物品多样性、低成本、低速率、短距离等特征的泛在需求,这类需求主要通过蓝牙等低速网络协议实现。蓝牙是一种短距离通信开放标准,利用嵌入式芯片实现通讯距离在 10 m100m之间的无线连接。蓝牙的设计目标在于通过统一的近距离无线连接标准使各生产商生产的个人设备都能通过该网络协议更方便地实现低速率数据传输和交叉操作。蓝牙技术具有低成本、低功耗、模块体积小、易于集成等特点,非常适合在新型物联网移动设备中应用。

1 蓝牙技术的安全体系

1.1四级安全模式

1.1.1 安全模式1

安全模式1无任何安全机制,不发起安全程序,无验证、加密等安全功能,该模式下设备运行较快且消耗更小,但数据在传输过程中极易被攻击。蓝牙 V2.0 及之前的版本支持该模。

1.1.2 安全模式2

安全模式2是强制的服务层安全模式,只有在进行信道的逻辑通道建立时才能发起安全程序。该模式下数据传输的鉴权要求、认证要求和加密要求等安全策略决定了是否产生发起安全程序的指令。目前所有的蓝牙版本都支持该模式,其主要目的在于使其可与 V2.0之前的版本兼容。

1.1.3安全模式3

安全模式3为链路层安全机制。在该模式下蓝牙设备必须在信道物理链路建立之前发起安全程序,此模式支持鉴权、加密等功能。只有 V2.0以上的版本支持安全模式3,因此这种机制较之安全模式2缺乏兼容性和灵活度

1.1.4安全模式4

该模式类似于安全模式2,是一种服务级的安全机制,在链路密钥产生环节采用ECDH算法,比之前三种模式的安全性高且设备配对过程有所简化,可以在某种程度上防止中间人攻击和被动窃听。在进行设备连接时,和安全模式 3一样先判定是否发起安全程序,如需要则查看密钥是否可用,密钥若可用则使用 SSP 简单的直接配对方式,通过鉴权和加密过程进行连接。

1.2密管理

1.2.1链路密钥

链路密钥是128b的随机数,由伪随机数 RAND 和个人识别码 PIN、设备地址通过 E21或E22流密码算法启动。其中初始密钥及组合密钥经初始化过程生成后作为临时链路密钥在设备间完成鉴权后就被丢弃。主密钥可以用于设备在微微网内进行加密信息的广播,在发送广播信息时主密钥会替代原来的链路密钥。单元密钥生成后在蓝牙设备中会被保存且会一直应用于链路通信。

1.2.2 加密密钥

完成鉴权的蓝牙设备可以在通信中使用加密密钥来加密传递的数据。该密钥由对称加密算法E3 算法产生,字长为128 b,由伪随机数 RAND、鉴权过程产生的加密偏移数 COF和当前链路密钥K生成。蓝牙采用分组加密的方式,加密密钥和其他参数 (主体设备的设备地址随机数、蓝牙时钟参数)通过 EO算法产生二进制密钥流从而对传输数据进行加密、解密。

1.3 鉴权

鉴权的目的在于设备身份的认证,同时对参数传递是否成功进行反馈,它既可以是单向过程也可以是相互鉴权,但都需要事先产生链路密钥。被鉴权设备的设备地址、鉴权的主体设备立生的随机数以及链路密钥都参与其中,由此产生应答信息和鉴权加密偏移值,前者被传递至主体设备进行验证,若相同则鉴权成功。若鉴权失败则需要经过一定长度的等待时间才能再次进行鉴权。

2已知的蓝牙安全漏洞

2.1跳频时钟

蓝牙传输使用自适应跳频技术作为扩频方式,因此在跳频系统中运行计数器包含28位频率为 3.2 kHz的跳频时钟,使控制指令严格按照时钟同步、信息收发定时和跳频控制从而减少传输干扰和错误。但攻击者往往通过攻击跳频时钟对跳频指令发生器和频率合成器的工作产生干扰,使蓝牙设备之间不能正常通信,并且利用电磁脉冲较强的电波穿透性和传播广度来窃听通信内容和跳频的相关参数。

2.2PIN 码问题

密钥控制图中的个人识别码 (PIN)为四位,是加密密钥和链路密钥的唯一可信生成来源,两个蓝牙设备在连接时需要用户在设备中分别输入相同的 PIN码才能配对。由于 PIN 码较短,使得加密密钥和链路密钥的密钥空间的密钥数限制在 105 数量级内,并且在使用过程中若用户使用过于简单的 PIN码(如连续同一字符)、长期不更换 PIN 码或者使用固定内置 PIN码的蓝牙设备,则更容易受到攻击。因此在 V2.1之后的版本中PIN 码的长度被增加至16位,在增大了密钥空间,提高了蓝牙设备建立连接鉴别过程的安全性的同时,也不会因为使用太长的数据串为通信带来不便。

2.3链路密钥欺骗

通信过程中使用的链路密钥基于设备中固定的单元密钥,而加密过程中其他信息是公开的,因此有较大漏洞。如设备 A 和不同设备进行通信时均使用自身的单元密作为链路密钥,攻击者利用和 A 进行过通信的设备 C 获取这个单元密,便可以通过伪造另一个和A通信过的设备 B 的设备地址计算出链路密,伪装成 B 来通过A的鉴权,B装成C亦然。

2.4 加密密销流重复

加密密钥流由 EO算法产生,生成来源包括主体设备时钟、链路密钥等。在一个特定的加密连接中,只有主设备时钟会发生改变。如果设备持续使用时间超过 23.3 小时,时钟值将开始重复,从而产生一个与之前连接中使用的相同的密钥流。密钥流重复则易被攻击者作为漏洞利用,从而得到传输内容的初始明文。

2.5鉴权过程/简单安全配对中的口令

除使用个人识别码PIN进行配对以外,蓝牙标准从 V2.1 版本开始,增加了简单安全配对SSP(Secure Simple Pairing,SSP) 方式。SSP方式比之前的 PIN码配对更方便,不像 PIN码配对那样需要两个有输入模块的配对设备同时输入配对密码,而SSP只需要有输出模块的两个配对设备确认屏幕上显示的是否是同一个随机数即可。通过设备搜索建立蓝牙物理连接,产生静态 SSP口令,鉴权这四步即可建立连接,但是这种关联模型没有提供中间人攻击保护,静态SSP口令很容易被中间人攻击攻破。

出处 物联网技术

原标题 蓝牙技术的安全漏洞及攻击方法分析

作者 杨宏立 徐嘉莹 周新丽

参考资料

https://www.hooketech.com/bluetooth-iot-security-vulnerabilities.html

相关推荐
蚂蚁舞1 小时前
在arm架构的Debian系统手动安装和卸载Mysql8的操作
arm开发·debian·安装mysql·mysql8·卸载mysql
m0_571372821 小时前
嵌入式学习——ARM 体系架构1
arm开发·学习
Zero_Era4 小时前
LKT4202UGM重新定义物联网设备安全标准
物联网·安全·嵌入式
生涯にわたる学び6 小时前
自旋锁/互斥锁 设备树 iic驱动总线 day66 67 68
arm开发
时序数据说11 小时前
时序数据库IoTDB的核心优势
大数据·数据库·物联网·开源·时序数据库·iotdb
TDengine (老段)11 小时前
中国时序数据库行业市场概览、投资热点及发展趋势预测报告
数据库·物联网·时序数据库·iot·tdengine
李小白2020020211 小时前
windows 10系统安装arm虚拟机
arm开发
TDengine (老段)13 小时前
TDengine 时间函数 TIMETRUNCATE 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
TDengine (老段)1 天前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
zskj_zhyl1 天前
七彩喜智慧养老:科技向善,让“养老”变“享老”的智慧之选
大数据·人工智能·科技·物联网·机器人