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

在当前的网络应用中,物联网具有对物品多样性、低成本、低速率、短距离等特征的泛在需求,这类需求主要通过蓝牙等低速网络协议实现。蓝牙是一种短距离通信开放标准,利用嵌入式芯片实现通讯距离在 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

相关推荐
AI服务老曹5 小时前
建立更及时、更有效的安全生产优化提升策略的智慧油站开源了
大数据·人工智能·物联网·开源·音视频
明达技术5 小时前
LVDS高速背板总线:打造分布式I/O高效数据传输新境界
分布式·物联网·自动化·lvds
橘色的喵16 小时前
嵌入式ARM平台Linux网络实时性能优化
linux·网络·arm开发·性能优化·实时·内核优化
BY-组态1 天前
组态软件基础知识
物联网·web组态·组态·scada·组态软件
__XWH1999__1 天前
IOT物联网低代码可视化大屏解决方案汇总
物联网·低代码
荣世蓥1 天前
2.ARM_ARM是什么
arm开发
憧憬一下2 天前
Linux 内核中断描述符 (irq_desc) 的初始化与动态分配机制详解
arm开发·嵌入式硬件·嵌入式·c/c++·linux驱动开发
亿道电子2 天前
【ARM】MDK-E203 Undefined identifier
arm开发·stm32·单片机·arm
ShuQiHere2 天前
【ShuQiHere】️计算机架构:x86 与 ARM 指令集架构的对比与发展
arm开发·架构
嵌入式种树2 天前
基于STM32的智能物联网家用机器人设计
stm32·物联网·机器人