软件设计师网站有哪些学习软件开发的网站
2026/4/18 14:32:33 网站建设 项目流程
软件设计师网站有哪些,学习软件开发的网站,建个人网站能赚钱吗,临沂专业做网站公司一. 概念 1. 概念 蓝牙CTKD是蓝牙4.2版本引入的一种交叉传输密钥派生的安全机制#xff0c;全称 Cross-transport key derivation#xff0c;主要用在蓝牙双模设备上#xff0c;它可以跨越BLE和BT的边界#xff0c;通过将BLE配对生成的LTK转化成BT配对的LinkKey#xff…一. 概念1. 概念蓝牙CTKD是蓝牙4.2版本引入的一种交叉传输密钥派生的安全机制全称 Cross-transport key derivation主要用在蓝牙双模设备上它可以跨越BLE和BT的边界通过将BLE配对生成的LTK转化成BT配对的LinkKey从而直接实现BT的配对当然也可以通过BT配对生成的LinnkKey转化成BLE的LTK来实现BLE的配对。2. 应用场景主要应用在蓝牙双模设备上如蓝牙耳机、蓝牙手表上通过手机APP连接BLE并通过BLE的配对转化生成BT的配对密钥反之一样通过BT的配对转换生成BLE的配对密钥从而实现一次配对完成BT和BLE的配对提升双模产品的配对体验。3. 蓝牙设备端要求BT和BLE的MAC地址必须保持一致。在蓝牙核心规范中CTKD的介绍中并没有直接说明BT和BLE的MAC地址要保持一致但是在分析蓝牙配对绑定的流程中发现双方只在BLE配对的时候交换了一次MAC地址并没有发现有交互BT MAC的流程。但核心规范中的Controller层规范中读MAC地址的命令中有这样的描述On a BR/EDR/LE Controller, the public address shall be the same as the BD_ADDR。所以通过理论和实践结合可以得出结论支持CTKD特性的蓝牙双模式设备BT和BLE的MAC地址需要保持一致。设备BLE配对需要支持安全配对 Secure PairingSecure Pairing是蓝牙4.2支持的一种安全配对方式。与legacy Pairing配对方式使用AES对称加密算法来加密链路不同的是Secure Pairing使用椭圆曲线ECDH的公钥算法来进行配对和鉴权流程从而可以做到防窃听攻击增强了链路的安全性。4. 算法介绍不管是LinkKey转LTK还是LTK转LinkKey都会用到SMP中的算法h6/h74.1. 算法 h6函数 h6 用于将给定大小的密钥从一种类型转换为另一种具有等效安全强度的密钥类型。h6 函数的定义使用了具有 128 位密钥 W 的哈希函数 AES-CMACW。函数 h6 的输入为W128 位keyID32 位keyID 作为哈希函数 AES-CMAC 的输入 mW 的最高有效 128 位作为密钥 k。h6 的输出如下h6(W, keyID) AES-CMACW(keyID)4.2. 算法 h7函数 h7 用于将给定大小的密钥从一种类型转换为另一种具有等效安全强度的密钥类型。h7 函数的定义使用了具有 128 位密钥 SALT 的哈希函数 AES-CMACSALT。函数 h7 的输入为SALT128 位W128 位W 作为哈希函数 AES-CMAC 的输入 mSALT 作为密钥 k。h7 的输出如下h7(SALT, W) AES-CMACSALT(W)二. 密钥转换1. BLE密钥转换为BR/EDR的密钥Derivation of BR/EDR link key from LE LTK我们可以观察下流程在BLE 鉴权配对后就有了BR/EDR linkkey的生成步骤但是是否生成linkkey以及怎样生成linkkey就有流程讲究了1.1. 步骤一确认支持LTK转换Linkkey在SMP中pairing request/response的packet中有两个field其中Key Distribution的格式如下其中LinkKey是一个1比特字段。当SMP在LE传输层上运行时该字段置为1表示设备希望从LTK推导出链路密钥。若发起方和响应方的密钥分发/生成字段中的LinkKey位均被设为1则应使用从LTK计算BR/EDR链路密钥的流程。不支持LE安全连接的设备必须将该比特置零并在接收时忽略此比特。当SMP在BR/EDR传输层上运行时此字段保留供未来使用。我们抓取一个btsnoop来看下可以看到上面两段都支持SC以及LinkKey所以我们确定了希望转换Linkkey的机制就剩下怎么转换的问题了也就是步骤二了1.2. 步骤二本地计算LinkkeyLE 物理传输的长期密钥LTK可被转换为用于 BR/EDR 传输的 BR/EDR 链路密钥具体转换流程如下其中使用中间链路密钥ILK作为中间值流程图如下若至少有一台设备将 CT2 设置为 0则流程为ILK h6(LTK, tmp1)BR/EDR 链路密钥 h6(ILK, lebr)若两台设备均将 CT2 设置为 1则流程为ILK h7(SALT, LTK)BR/EDR 链路密钥 h6(ILK, lebr)字符串 lebr 通过 ASCII 编码映射为 keyID0x6C656272。字符串 tmp1 通过 ASCII 编码映射为 keyID0x746D7031并映射为 SALT盐值0x00000000_00000000_00000000_746D7031。注意若 LTK 的加密密钥长度小于 16 字节128 位则需在 LTK 被掩码之前推导 BR/EDR 链路密钥。NOTED4.2的流程有点区别只会用到h6算法这个大家知道就可以了Core 4.2的方式为ILK h6(LTK, “tmp1”)BR/EDR link key h6(ILK, “lebr”)2. BR/EDR的密钥转换为BLE密钥Derivation of LE LTK from BR/EDR link key我们可以先看下流程图我们可以看下如果你要连接需要安全等级的l2cap通道那么需要配对生成linkkey然后加密然后来判断是否是否支持cross-transport key(CRTK) generation,也就是图示①①包含步骤一/二, 然后再进行本地计算以及Key的分发也就是图示②,②步骤包括步骤三/四。2.1. 步骤一确认支持SMP over BR/EDR在确定这个需要几个我直接贴btsnoop了以上就是本地问下对端以及对端问询本地是否支持Extended feature以便查询是否有Fixed channel的支持因为SMP over BR/EDR是fixed channel,也就是0x07,如下图这个步骤交互出来就是类似这样但是哈·别认为到这里就结束了·这个只是互相告诉支持Fixed channel了但是都支持哪些Fixed channel呢所以需要额外的交互如下图只有双方都支持那么才有下一步谈恋爱的可能哈哈2.2. 步骤二SMP交互支持关于SMP的交互可以查看此文章https://wlink.blog.csdn.net/article/details/146436664这个里面主要是CT2会影响key的算法流程下面我们就来介绍下BR/EDR linkkey转换BLE ltk的流程2.3. 步骤三本地计算LTKLTKLE物理传输密钥可转换为BR/EDR传输的BR/EDR链路密钥具体过程如下使用中间链路密钥ILK作为中间值流程图如下若至少有一台设备将 CT2 设置为 0则流程为ILTK h6(Link Key, tmp2)LTK h6(ILTK, brle)若两台设备均将 CT2 设置为 1则流程为ILTK h7(SALT, Link Key)LTK h6(ILTK, brle)字符串 brle 通过 ASCII 编码映射为 keyID0x62726C65。字符串 tmp2 通过 ASCII 编码映射为 keyID0x746D7032并映射为 SALT盐值0x00000000_00000000_00000000_746D7032。NOTED4.2的流程有点区别只会用到h6算法这个大家知道就可以了Core 4.2的方式为ILTK h6(Link Key, “tmp2”)LTK h6(ILTK, “brle”)2.4. 步骤四进行Key的分发这个我们就不介绍了可以看我的SMP的文章

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询