Можно ли установить шифрование канального уровня и механизмы сопряжения для Bluetooth в приложении для Android?

Я работаю над проектом по перехвату трафика Bluetooth Low Energy (BLE). Bluetooth предлагает различные механизмы сопряжения, такие как «Just Works» и «Passkey Entry». Кроме того, соединение Bluetooth может быть зашифровано на канальном уровне.

Чтобы протестировать эти разные ситуации, у меня возникла идея написать приложение для Android, реализующее различные механизмы безопасности. Итак, мой вопрос:

Можно ли указать механизм сопряжения и включить или выключить шифрование канального уровня в приложении для Android?

Я просмотрел документацию Android, но не смог найти там ответ.


person arne.z    schedule 28.11.2016    source источник


Ответы (1)


Невозможно указать механизм сопряжения из приложения для Android. Можно было бы неявно реализовать механизм сопряжения, позволив удаленному устройству Bluetooth поддерживать только определенный механизм сопряжения.

Невозможно включать и выключать шифрование канального уровня из приложения для Android. Проверить статус шифрования можно скрытым методом BluetoothDevice.isEncrypted (https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r21/core/java/android/bluetooth/BluetoothDevice.java#1020). Можно включать и выключать шифрование канального уровня с удаленного устройства Bluetooth.

person TobiasMelin    schedule 29.11.2016