Ожидаете ли вы, что два устройства Bluetooth получат разные значения для DHKey при попытке сопряжения? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытался подключить два устройства Bluetooth в режиме безопасных подключений BLE, но он не взаимодействует.Во время сопряжения, после того, как устройства Bluetooth просят пользователя подтвердить их 6-значные числа (я использую Числовое Сравнение для этого теста), процесс аутентификации всегда терпит неудачу.У меня не было убедительного объяснения, почему, но сегодня я откопал следующее из btmon в bluez ... кажется, что два устройства вычисляют разные ключи Диффи-Хеллмана?

< 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?!

Я читаю здесь , что DHKey должен быть общим секретом;они говорят об этом, используя единственные местоимения.Это говорит мне о том, что DHKey является частью симметричной криптографии, которая должна шифровать трафик в будущем, а не асимметричной криптографии, которую мы использовали для сопряжения до этого момента.

Если этот анализ верен, то тот факт, что два ключа не совпадают, имеет значение и должен быть исследован.Но если я ошибаюсь, и эти записи относятся к торговым ключам при подготовке к асимметричной криптографии, то, что эти два ключа DHK отличаются, меня не удивит.Учитывая имя и контекст, чего бы все ожидали?

...