#android #encryption #bluetooth-lowenergy #sniffer
#Android #шифрование #bluetooth — низкое энергопотребление #сниффер
Вопрос:
Я пытаюсь включить шифрование на BLE-канале между Android (API-19) и csr1010. Не имеет значения, какой метод сопряжения следует использовать, «просто работает» или «пароль».
Я установил флаги шифрования в записи adv и попытался подключиться к iPhone4S. Шифрование включено, поскольку сопряжение запрашивается в начале каждого соединения. Я сам проверил это с помощью анализатора / анализатора, и он подтвердил, что шифрование включено с помощью поля «Расшифровано анализатором = ДА».
Когда я попытался подключиться и подключиться к Android (Galaxy S4 с API-19), используя функцию «.getDevice ().createBond ()», Android подтвердил соединение, где bondState == 12, как описано в «http://developer.android.com/reference/android/blu …».
Но когда я попытался отправить данные и проверить это на интерфейсном анализаторе, данные были представлены совершенно нормально и не зашифрованы, где «Расшифровано анализатором = НЕТ»
Теперь мой вопрос:
- Если bondState = 12 и установлено соединение, обязательно ли это означает, что шифрование включено?
- Достаточно ли выполнить соединение с помощью функции «createBond ()», чтобы включить шифрование во всех будущих соединениях с этими 2 связанными устройствами, или я должен сделать что-то еще, например, обмен LTK?
Спасибо и KR Moe
Ответ №1:
Используйте 4.4.3 или 4.4.4 для правильного шифрования. В основном соединение означает просто «запомнить и переподключиться», а не аутентификацию / шифрование. На 4.4.3 это работает вместе, хотя, если вы отметите характеристики, требующие шифрования.