蓝牙低功耗GATT安全级别

1nc*_*t0r 9 security bluetooth bluetooth-lowenergy bluez

我正在调查与GATT相关的蓝牙低功耗(BLE)中可用的安全类型.更具体地说,当使用指定了不同安全级别(低,中,高)的gatttool时,会进行什么样的操作?我的理解是BLE中的安全管理器支持4种不同的安全属性:

  • 没有配对
  • 与不支持中间人(MitM)保护的关联模型配对(JustWorks)
  • 与MitM保护配对(密钥输入,数字比较,OOB)
  • LE安全连接配对.

这些安全属性是否与gatttool指定的安全级别相关,还是在阅读蓝牙规范时我错过了其他一些安全功能?

编辑:我想扩展我的问题,以澄清问题.4.2蓝牙堆栈如何确定是否使用传统配对?也就是说,如果我有两个BLE 4.2设备配对的数据包捕获,我如何判断是否正在使用传统配对与使用ECDH的配对?Secure Connections标志是否表明不应使用传统配对,或仅仅是它自己的模式确保使用FIPS批准的算法?

Tim*_*Tim 8

你是对的,但你忘记了BLE通讯中的一个主要威胁.以下是三个基本威胁:

中间人(MITM):

MITM要求攻击者能够监视和更改消息或将消息注入通信信道

窃听:

被动窃听是在未经同意的情况下秘密收听(通过使用嗅探设备)私人通信

隐私/身份跟踪:

由于大多数蓝牙LE广告和数据包具有发送数据的设备的源地址,因此第三方设备可以将这些地址与用户的身份相关联并通过该地址跟踪用户

报价来自developer.bluetooth.org.

您已经提到了针对MitM和窃听的保护,但仍然存在身份跟踪问题.

针对身份跟踪的保护是使用不能通过时间链接到同一设备的MAC地址,即改变的MAC地址(通常每15分钟).MAC地址有四种类型:

  1. 公共地址:此地址未加密,包含公司唯一ID和设备ID.这是不安全的,因为它不会随着时间而改变.
  2. 随机静态地址:这个地址是随机的(由于里面的标志而被称为随机)和未加密的.一旦它发生变化,您就无法重新连接已经了解您的设备,您必须从头开始重新启动连接.
  3. 随机可解析的私有地址:该地址可以由知道其IRK的设备解决,IRK是设备之间的共享秘密.至于静态随机地址,它经常变化,但总是可以解析.这是最常见的选择,因为它保留了隐私并允许恢复连接.
  4. 随机不可解析的私有地址:此地址无法解析.核心规范并没有对它说太多,似乎并不常见.与静态地址的区别在于它不存储,因为它是私有地址(即设备不希望能够恢复与私有地址设备的连接).

这在BLE Core Spec 4.2 Vol中有解释.3 C部分15.1.1蓝牙设备地址类型.

关于安全级别,我不知道gatttool但我会假设它与nRF Connect/Master Control Panel或LightBlue类似.您在此处看到的可能是与每个属性关联的安全级别.有四个安全级别,每个属性可以不同:

模式1级别1:

无需加密.该属性可在纯文本非加密连接上访问.

模式1级别2:

需要未经身份验证的加密.必须加密连接才能访问此属性,但不需要对加密密钥进行身份验证(尽管可以).

模式1级别3:

需要验证加密.必须使用经过身份验证的密钥对连接进行加密才能访问此属性.

模式1级别4:

经过身份验证的LE Secure Connections与加密配对.必须使用自4.2版本以来在蓝牙LE中引入的安全连接配对对连接进行加密.

模式1级1-3的定义来自Robert Davidson,Akiba,Carles Cufi,Kevin Townsend的" 低功耗蓝牙入门 ".

设备也可以处于一种调用模式Secure Connection Only,其中除了模式1级别1之外的所有服务都只能在模式1级别4中访问.