LTK大小的堆栈强制

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
7个员额/0个新员额
最后一篇文章
杰米谢伯特
离线
最后一次见到:11个月2天前
加入:2014-10-24 14:17
LTK大小的堆栈强制

DA14581芯片的BLE堆栈是否强制执行BLE LTK大小限制(7-16字节),以便应用程序始终相信密钥大小有效?

谢谢

关键词:
LTK
设备:
PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨JamesHiebert,

嗨JamesHiebert,

你能澄清你的问题吗?DA14581芯片的BLE堆栈强制执行BLE LTK大小限制(7-16字节)是什么意思。请注意,LTK为16字节。

谢谢,下午好

杰米谢伯特
离线
最后一次见到:11个月2天前
加入:2014-10-24 14:17
你好,对话,

你好,对话,

BLEV4.1规范说LTK可以在7到16字节之间。

第2.4.2.3节LTK、EDIV和Rand的生成

“生成的LTK大小不得超过协商的加密密钥大小,其大小可能需要减小(见第2.3.4节)”。

2.3.4加密密钥大小
每个设备应具有最大和最小加密密钥长度参数
它定义了加密密钥的最大和最小大小
允许八位字节。最大和最小加密密钥长度参数
应在7个八位字节(56位)和16个八位字节(128位)之间,在1个八位字节(8位)中
位)步骤。这是由配置文件或设备应用程序定义的。

启动和响应设备的较小值为最大加密
密钥长度参数应用作加密密钥大小。

启动装置和响应装置应检查结果是否正确
加密密钥大小不小于该密钥的最小密钥大小参数
设备,如果是,设备应发送配对失败且有错误的命令
代码“加密密钥大小”。

可以存储加密密钥大小,以便任何服务都可以对其进行检查
具有最小加密密钥长度要求。
如果密钥的加密密钥大小小于16个八位字节(128位),则应
可以通过屏蔽生成密钥的相应MSB来创建,以提供
具有约定加密密钥大小的结果密钥。遮蔽物应为
在生成之后和分发之前完成(对于LTK),使用或
存储。

例如,如果使用128位加密密钥
0x123456789ABCDEF0123456789ABCDEF0

它被减少到7个八位字节(56位),然后生成的密钥
0x0000000000003456789ABCDEF0。

因此,我的问题是,如果主机发送无效密钥大小,堆栈是否会将无效大小(<7或>16)传递给应用程序(例如,在GAPC_LTK_EXCH风格的绑定请求指示中)?

PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨JamesHiebert,

嗨JamesHiebert,

根据DA14581的rom代码,只有当LTK大于16字节时才会进行检查。因此,如果LTK大于16字节,rom代码将发送前16字节以获得有效大小。如果LTK大小小于7字节,则未使用的字节将被零屏蔽。在这两种情况下,LTK大小都将为16字节,因此如果e master发送的大小无效,rom代码中存在更正。

谢谢,下午好

杰米谢伯特
离线
最后一次见到:11个月2天前
加入:2014-10-24 14:17
谢谢你提供的信息。

谢谢你提供的信息。关于传递的密钥的大小,还有一个后续问题:

如果主设备的LTK大小为7,而从设备的LTK大小为16,并且还应生成LTK,则从设备的堆栈会向应用程序发送GAPC_BOND_REQ_IND(GAPC_LTK_EXCH)消息,其中data.key_size字段值为7。

相反,如果主机的LTK大小为5(这是一个无效的大小),而从机的LTK大小为16,并且还应该生成LTK,那么从机堆栈是否仍会向应用程序发送GAPC_BOND_REQ_IND(GAPC_LTK_EXCH)消息?如果是,它是否会指示(无效)密钥大小为5?

PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨JamesHiebert,

嗨JamesHiebert,

在每种情况下,主设备和从设备发送的LTK都会被rom代码修改为16字节。在您提出的两个问题中,为了获得16字节的大小,主机的LTK将被零屏蔽。

谢谢,下午好

杰米谢伯特
离线
最后一次见到:11个月2天前
加入:2014-10-24 14:17
嗨,对话,

嗨,对话,

我知道堆栈将密钥填充为16字节大小。我的问题是关于主LTK大小为5时报告的“密钥大小”字段。如果主设备和从设备协商的LTK大小为7,则该值为7。如果主机提供的LTK大小为5,将是什么?我正在尝试确定应用程序是否能够确定GAPC_LTK_EXCH堆栈消息提供的无效密钥大小并作出反应。