首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LTK是如何在蓝牙低能连接中形成的?

LTK是如何在蓝牙低能连接中形成的?
EN

Stack Overflow用户
提问于 2018-05-24 11:29:44
回答 1查看 3.5K关注 0票数 1

我正在研究Android和传感器之间的BLE连接,当我试图解密Wireshark .pcap文件时,我遇到了问题,因为我不太确定LTK是如何形成的。

有一个屏幕截图与包Encryption_Req & Encryption_Rsp关于我得到了什么,使用德州仪器用嗅探器。

Rsp

我认为LTK是与SKDm & SKDm或SKDs &SKDm相匹配的。

意思是: BE952D3D760331A834CC6A4274417E48 (SKDm -> SKD)

或: A834CC6A4274417E48BE952D3D760331 (SKDs -> SKDm)

我不确定这是正确的还是我遗漏了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-24 22:08:14

LTK是存储在设备中的长期密钥,在键合后进行交换。在遗产配对中,从设备只需选择一个随机LTK并将其发送给主程序。在中,LTK来自diffie交换。

LL_ENC_REQ和LL_ENC_RSP数据包包含“会话密钥多样化器”,而不是LTK (因为如果在启用加密之前以明文形式发送密钥,这会破坏安全性)。为了确保每个新连接的安全,每个连接都使用一个新的会话密钥。若要创建此会话密钥,每个设备都会生成8+4字节随机数据。SKDm和SKD值连接到一个16字节的SKD。会话密钥由LTK作为值和SKD作为密钥的AES加密生成。注意,在连接SKDm和SKD之后,在将其输入到标准的AES函数之前,将其全部反转,因为蓝牙很少使用endian,但AES标准使用的是大endian。

所以487E4174426ACC34A83103763D2D95BE是你的SKD格式,所有的AES库期待。

LL_ENC_REQ中的Rand和EDIV字段作为标识符发送到从键,以便它可以在其数据库中查找LTK。

应该将IVm和IVs值连接起来以获得IV (而不是反转)。此IV被用作AES-CCM加密中的nonce的一部分.参见蓝牙核心规范5.0,第6卷,E部分,第2.1章。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50508258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档