Как предотвратить несанкционированное подключение пользователей к устройству Arduino BLE? - PullRequest
0 голосов
/ 09 марта 2020

Я смотрел эту демонстрацию BLE для Arduino:

https://github.com/dzindra/BLE-iOS-demo/blob/master/esp32blinky/esp32blinky.ino

Я заметил, что нет "Аутентификации / Авторизации" или явного "кода подключения" ".

Код состоит из создания сервисов и характеристик и их рекламы. В лучшем случае вы можете увидеть следующие обратные вызовы, которые запускаются при подключении клиента:

class MyServerCallbacks: public BLEServerCallbacks {
    void onConnect(BLEServer* pServer) {
      Serial.println("Connected");
    };

    void onDisconnect(BLEServer* pServer) {
      Serial.println("Disconnected");
    }
};

Мне было интересно, какой подход люди используют для обеспечения того, чтобы пользователи могли подключаться к BLE Arduino, только если они являются владельцем (для Например, нажав кнопку для запуска режима подключения) et c ...

При более глубоком поиске я обнаружил: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLETests/Arduino/security/BLE_server/BLE_server_passkey/BLE_server_passkey.ino

Этот другой пример показывает как ESP32, действующий в качестве клиента, будет аутентифицироваться на сервере:

https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLETests/Arduino/security/BLE_client/BLE_client_passkey/BLE_client_passkey.ino

Оба эти примера являются хорошими примерами того, как два ESP32 могут выступать в качестве клиента / сервер и аутентифицировать друг друга. Но тогда как мне заставить мой iPhone пройти аутентификацию? Я использую следующий пример iPhone для простого подключения без аутентификации.

Все выглядит немного "хакерским", и мне было интересно, есть ли авторитетный ответ о том, как подключиться к BLE Arduino с аутентификацией?

РЕДАКТИРОВАТЬ: По сути, я не хочу, чтобы случайные люди просто подключались к моему BLE-устройству. Мне не нужно ничего больше, чем это (мне не нужно шифрование). Я просто хочу запретить случайным людям подключаться к моему устройству и разрывать соединение со смартфоном с моим BLE-устройством.

...