killerarthas

BLE加密流程

1
阅读(3579)

BLE中的安全部分采用AES-CCM算法,所谓AES-CCM算法,主要包括2部分,分别是加密部分和认证部分;在BLE中分别表现为对payload的加密以及生成MIC进行信息的完整性校验,这2部分调用的都是AES-128加密算法。

蓝牙AES-CCM加密主要是提升蓝牙通信中的安全性,保障数据在链路层的安全可靠。

BLEAES-CCM中的加密以及生成MIC部分如下所示:

CCM算法中可分为对A模块的加密和对B模块的加密,其中A模块产生密文,对B模块的加密最终生成MICA模块和B模块分别为:

LL_DATA1 0e 1f 7a 70 d6 64 15 22 6d f2 6b 17 83 9a 06 04 05 59 6b d6 56 4f 79 6b 5b

9c e6 ff 32 f7 5a 6d 33

Length 0x1F (i.e. 27 + 4 = 31 dec)

Data (LSO to MSO)

Clear 17 00 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 31 32 33 34 35 36

37 38 39 30

Encrypted 7a 70 d6 64 15 22 6d f2 6b 17 83 9a 06 04 05 59 6b d6 56 4f 79 6b 5b

9c e6 ff 32

MIC (32-bit value MSO to LSO) 0xF75A6D33