Требуется ли связывание для связи устройства BLE <-> Android, iOS? - PullRequest
1 голос
/ 28 апреля 2020

У нас есть устройство BLE и приложение для Android / ios для связи с устройством.

Требуется подключение приложения Android / ios к устройству без запроса на сопряжение. На устройстве не требуется защита.

Далее несколько вопросов по этому поводу:

  • Q1. Можно ли вообще подключить приложение android / ios к устройству BLE без запроса на сопряжение?
  • Q2. Требуется ли связь для связи BLE?
  • Q3. В чем недостаток устройства без склеивания? Будет ли разорвано соединение во время работы приложения?
  • Q4. Кто является инициатором или диалогом сопряжения, приложением или устройством?
  • Q5. При наличии устройства с протоколом безопасности Just Works, без связи и без защиты MITM, мы должны увидеть диалог сопряжения?

Ответы [ 3 ]

2 голосов
/ 29 апреля 2020

Пожалуйста, смотрите ответы на свои вопросы ниже: -

  • A1. Да, это возможно, потому что соединение и соединение - это два отдельных действия. Соединение - это когда вы устанавливаете sh канал связи с удаленным устройством, а сопряжение - когда вы обмениваетесь ключами безопасности с устройством и имеете возможность шифровать это соединение.
  • A2. Нет, сопряжение / соединение не требуется для связи BLE, но предпочтительно, чтобы иметь дополнительные функции и дополнительную безопасность для этого соединения.
  • A3. Нет, отсутствие связи не влияет на стабильность вашего соединения / общения. Есть несколько недостатков, которые включают в себя меньшую безопасность соединения, а также потенциальную невозможность найти устройство, если реализована конфиденциальность. Более подробная информация представлена ​​в ссылке ниже.
  • A4. Приложение является инициатором диалога сопряжения. В частности, центральное устройство (которое инициирует соединение) является тем, которое отвечает за инициирование сопряжения. Когда это центральное устройство запрашивает сопряжение с удаленным устройством, отображается диалоговое окно сопряжения.
  • A5. Я считаю, что это зависит от типа ОС (Android / iOS) и номера версии этой ОС, но, вообще говоря, диалог сопряжения не должен появляться, потому что, как следует из названия, он должен просто работать. При запросе защиты MITM появляется диалоговое окно сопряжения.

Ниже приведены подробные сведения о сопряжении / соединении и общении с BLE: -

Если создать связь с устройством Bluetooth LE

Я также рекомендовал бы попробовать приложение nRF Connect на iOS и Android, чтобы увидеть разницу между соединением и соединением и убедитесь, что у вас могут быть нормальные соединения без сопряжения.

0 голосов
/ 05 мая 2020

На основании того, что мы получили, и на основе ответов на этот вопрос.

  • A1 : Да, это возможно, если MITM не установлен, а схема безопасности установлена ​​на Just Works, что означает отсутствие защиты вообще.
  • A2 : соединение не требуется для связи BLE. Если устройство BLE не может хранить информацию о Бонде, это может привести к некоторым проблемам, которые возникли в нашем случае. Если устройство BLE может хранить и использовать информацию о связях, то рекомендуется связать.
  • A3 : Соединение не будет закрыто. Единственный недостаток, который мы получили, это то, что теперь требуется немного больше времени, чтобы восстановить соединение.
  • A4 : приложение инициирует соединение, но диалоговое окно отображается только в том случае, если устройство BLE запрашивает какой-либо тип защиты, это может быть MITM, шифрование, пин-код. Короткий ответ: можно избежать диалога сопряжения, изменив настройки на устройстве BLE.
  • A5 : При наличии устройства с протоколом безопасности Just Works, без соединения и без защиты MITM диалог сопряжения не должен быть представлен. У нас нет опыта в диалоге сопряжения на iOS и Android.
0 голосов
/ 29 апреля 2020

Чтобы добавить к ответу Юссифа:

A3: одно отличие состоит в том, что установка соединения будет быстрее, так как соединение позволяет использовать кэш GATT db. В противном случае повторное обнаружение службы должно выполняться при каждом подключении (если служба изменила характеристики c).

A4: на Android вы можете позвонить на createBond, чтобы начать сопряжение, но на iOS есть API для безопасности не существует, поэтому вам нужно либо взаимодействовать с характеристикой c, которая отправляет ошибку о необходимости сопряжения, либо удаленное устройство может отправить запрос безопасности для инициирования сопряжения.

A5: iOS показывает диалог «принять / прервать» для просто работ, Android нет.

...