Мы реализовали связь между устройством Linux и мобильным приложением через BLE. Мы можем читать и записывать данные, используя бесплатное приложение «nRF Connect». Теперь нам нужно поддержать безопасность BLE. В основном наши данные чувствительны. Мы хотим защитить наши данные от MITM. Поэтому нам необходимо поддерживать разумный высокий уровень безопасности. Кажется, нам нужен «Режим безопасности 1, уровень 3: аутентифицированное соединение с шифрованием». Наше устройство не поддерживает визуальный ввод. Мы используем BlueZ, D-Bus и Python3 на стороне Linux.
Но у меня есть несколько практических вопросов:
- Для сопряжения, как мы поддерживаем защиту паролем? Это только для разработчика мобильных приложений?
- Как мы узнаем, когда происходит сопряжение на стороне Linux? Есть ли обратный вызов или уведомление, которое мы можем использовать из BlueZ Python API?
- Как работает шифрование данных? Некоторые упоминали AES-CMAC, некоторые упоминали AES-CCM? Какой из них мы должны использовать? Так что нам просто нужно зашифровать данные на Linux Python и отправить данные?