link key 删除⽅法: 去配对流程由应⽤触发,在触发去配对流程时,由应⽤同时删除link key。 应⽤层SC安全配对流程配置 在custom_config.h 中使能 CFG_BT_BREDR #ifndef CFG_BT_BREDR #define CFG_BT_BREDR 1 #endif 使能配对 ble_gap_pair_enable(true); 安全参数配置,IO能⼒推荐使⽤IO_NO_INPUT...
配对过程还可以生成LinkKey,LinkKey是用来给经典蓝牙进行加密的。通过这个可以将BLE配对产生的配对密钥转化成经典蓝牙的密钥。生成算法如下: 如果至少有一端设置 CT2 = 0 则: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ILK=h6(LTK,“tmp1”)BR/EDRlink key=h6(ILK,“lebr”) 如果两端的CT2都设置...
第二种则是使用128bit的静态但随机的值叫加密根和一个每个受信任设备唯一的16bit的分散因数来生成,这种方式称为“Key Hierarchy”。 这段话出自于NIST SP 800-121中 3.2.3 Legacy Low Energy Key Generation and Distribution,原文如下: Once the link is encrypted using the STK, the two devices distribute ...
逻辑链路控制及自适应协议层(Logical Link Control and Adaptation Protocol,简写 L2CAP):L2CAP在经典蓝牙中的作用更为强大,在BLE中主要负责协议复用的功能,无论是SM还是ATT等协议栈的数据都可以通过L2CAP连接HCL传输到控制器里面,并向上连接应用的接口。LL只关心传输的数据本身,L2CAP就要区分是加密通道还是普通通道,...
额外补充一点,蓝牙支持一种交叉密钥派生的特性,简称CTKD,这种特性可以使用ble配对生成的LTK转化为BT配对的LinkKey,从而实现通过BLE的配对将其转化成BT的配对,这个特性用在蓝牙耳机、智能手表等产品上可以大幅提升产品的配对体验。当然也可以反过来,通过BT配对生成的LinkKey可以转化为BLE的LTK。这个特性后面会专门写一篇来...
hiv String HiLink版本号。 fwv String 固件版本号。 hwv String 硬件版本号。 swv String 软件版本号。 protType String 协议类型。默认取值为4,表示蓝牙BLE连接协议。 如果门锁支持BLE+Wi-Fi,则取值为12。 0:未定义 1:Wi-Fi 2:Z-Wave 3:ZigBee 4:BlueTooth 5:PLC 6:BLE M...
#define GAPBOND_KEYDIST_MLINK 0x80 //!< Master Link Key /** @} End GAPBOND_IO_CAP_DEFINES */ 总结下来,就是Encryption Key, IRK, SRK, Link Key。我想问如下5个问题: 1. IRK、SRK若不设置,是不是不影响绑定和通讯?这两个Key会影响什么?
#define GAPBOND_KEYDIST_MLINK 0x80 //!< Master Link Key /** @} End GAPBOND_IO_CAP_DEFINES */ 总结下来,就是Encryption Key, IRK, SRK, Link Key。我想问如下5个问题: 1. IRK、SRK若不设置,是不是不影响绑定和通讯?这两个Key会影响什么?
LinkKey是一个有1位的字段。当SMP在LE传输上运行时,LinkKey字段被设置为1,以指示设备希望从LTK派导出链接密钥。当启动器和响应器密钥分发/生成字段中的两个设备都将链接密钥设置为1时,应使用从LTK计算BR/EDR链接密钥的程序。不支持LE安全连接的设备应将此位设置为零,并在接收时忽略它。当SMP在BR/EDR传输上运行...
和经典蓝牙一样,协议为处于连接状态的BLE设备,定义了两种Link Layer角色:Master和Slave。Master是连接的发起方(Initiator),可以决定和连接有关的参数(很重要,后面会详细介绍)。Slave是连接的接受方(Advertiser),可以请求连接参数,但无法决定。 在SM(Security Manager)的规范中,配对是指“Master和Slave通过协商确立用于加...