蓝牙BLE理论及相关工具

BLE服务

  • BLE将自身服务归于多个service中,每个service中包括若干个characteristics;service和characteristic均使用16位UUID标识;
  • characteristic是存储数据的位置,characteristic中可以包括descriptors;descriptors有两类UUID 0x2901和0x2902,前者可以保存数据,后者决定当characteristic改变时是否广播(回调通知)
  • 获取设备实现的所有characteristics UUID没有限制,包括其相关属性(读、写、notify)

连接

  • 设备周期性广播、APP响应广播,然后双方自动进入连接状态,接着双方都可以要求加密连接和更新连接参数
  • ble4.2之前:配对过程使用明文传输交换temp key(TK),然后使用TK加密通信协商STK,STK用于加密后续通信。(BLE链路层安全特性)
  • ble4.2(LE Secure Connections)使用椭圆曲线ECDH(有限域的离散对数问题)用来安全的交换LTK,LTK用于加密后续通信
  • 配对过程交换TK:有静态pin code(000000) 、输入随机pin code和通过带外数据(NFC)三种方式。前两种方式均不能对抗嗅探攻击(但攻击时间窗口很小)
  • 有共享设备等业务场景,使用链路层的加密不够方便(即不存在配对过程),一般都会基于characteristic实现自定义加密通信,每次广播的数据都需要主动加密,否则就是裸奔
  • 因为BLE设备会产生很多关联方,所以LTK会包括Master Identification (EDIV, Rand) 作为标识符
  • 配对过程生成STK,绑定过程生成LTK。配对绑定是传输层机制(类似https协议),ble传输通道默认是加密的,应用层也可以增加额外加密
    -蓝牙BLE理论及相关工具_第1张图片

协议

  • ATT(属性协议) MTU默认23bytes,可以观察到分段写数据
  • GATT(通用属性协议)在蓝牙协议栈中相当于TCP/IP协议栈中的http协议

其他

  • 重放攻击:发送的无线信号可以全部嗅探到,也就可以重放,需要ble设备带有计数器功能
  • 中间人攻击:未连接时,BLE设备会广播设备信息,但频率不会太高;攻击者可以先持续与设备连接(连接状态中不会再发广播),然后发出同样的广播,误导APP进行连接
  • 随机化MAC地址:避免被追踪,仅配对过的设备可以解析出MAC地址,需配对设备交换过Identity Resolving Key (IRK)
  • 白名单:可以设置MAC白名单
  • 广播DoS:中间人广播盖过设备广播,APP连接到中间人服务。加密和签名防止中间人解密广播数据
    DOS攻击之后,用户可能手动发起配对,攻击者此时可以进行嗅探攻击
  • BLE设备最好一机一密
  • bluez修改ble mac
    android ble mac: adb shell settings get secure bluetooth_address
    bluez源码 ./configure --enable-experimental; make之后bdaddr 在tools/目录
    sudo bdaddr 4C:49:E3:03:10:5E; 需要重新插入蓝牙设备

android接口

BluetoothLeScanner.startScan()方法与传统BluetoothAdapter.startLeScan()方法

工具

  • bluez工具https://github.com/pcborenstein/bluezDoc/wiki/hcitool-and-gatttool-example
  • nRF-Connect android工具 https://github.com/NordicSemiconductor/Android-nRF-Connect/releases
  • gattack工具 https://gattack.io/ https://github.com/securing/docs/raw/master/whitepaper.pdf
  • ble sniffer: ubertooth(开源)/nRF51822 Nordic BLE

参考

  • BLE学习 Getting_Started_with_Bluetooth_Low_Energy 链接: https://pan.baidu.com/s/1tTw-A2jfdAmcRm8RIPm4rA 提取码: pyra
  • BLE security https://www.digikey.com/eewiki/display/Wireless/A+Basic+Introduction+to+BLE+Security
  • iot安全 https://sec.xiaomi.com/article/59
  • iot安全 https://sec.xiaomi.com/article/58

你可能感兴趣的:(网络安全,IoT,ble,iot)