尝试配对时,您是否希望两个蓝牙设备的DHKey达到不同的值?

时间:2018-12-17 16:59:11

标签: bluetooth diffie-hellman

我一直在尝试让两个蓝牙设备在BLE安全连接模式下配对,但没有配合。配对期间,蓝牙设备要求用户确认其6位数字(我正在使用数字比较进行此测试)后,身份验证过程始终会失败。我没有令人信服的原因解释,但是今天我从bluez的 btmon 中挖出了以下内容……这两个设备似乎在计算不同的Diffie Hellman密钥?

< ACL Data TX: Handle 5 flags 0x00 dlen 21 //I interpret this as transmitting a Diffie Hellman key to the respondant
      SMP: Pairing DHKey Check (0x0d) len 16
        E: 9b6628f5e7a44dc1ce482b7d5d162dfc

@ MGMT Event: Command Complete (0x0001) plen 10 //irrelevant
      User Confirmation Reply (0x001c) plen 7                                            
        Status: Success (0x00)                                                                           
        LE Address: 00:16:A4:4A:3A:60 (Ezurio Ltd)                                      
> HCI Event: Number of Completed Packets (0x13) plen 5                     
        Num handles: 1                                                                                       
        Handle: 5                                                                                                  
        Count: 1                                                                                                    

> ACL Data RX: Handle 5 flags 0x02 dlen 21 //this is the respondant replying with it's own Diffie Hellman
      SMP: Pairing DHKey Check (0x0d) len 16
        E: ad2d6f48721273b576958623d7b008b2 //different than the previous DHKey?!

我正在读here,认为DHKey应该是共享机密;他们用单数代词来谈论它。这对我来说,DHKey是对称加密的一部分,该对称加密应该用于加密未来的流量,而不是到目前为止我们一直用于配对的非对称加密。

如果该分析是正确的,则两个密钥不一致的事实是相关的,应进行调查。但是,如果我错了,并且这些条目引用交易密钥以准备非对称密码,那么这两个DHKey的不同就不会令我感到惊讶。有了名称和上下文,每个人都会期望什么?

0 个答案:

没有答案