что значит сопряжение с ble менеджером

BLE под микроскопом

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

BLE под микроскопом. Часть 1

Зачем придумали BLE

Как только люди научились передавать информацию без помощи проводов, встала задача передачи данных, используя устройство с батарейным питанием. Проблема в том, что ему должно помогать другое устройство, которое будет постоянно либо прослушивать эфир, либо передавать данные. Проблема возникает в том случае, если и приемник и передатчик имеют батарейное питание. В этом случае приходит на помощь BlueTooth Low Energy (BLE). Он впервые вошел в протокол BlueTooth 4.0. На данный момент уже вышла спецификация BlueTooth 5.0, однако мы будем рассматривать в основном формат BlueTooth 4.0, иногда указывая нововведения для формата 5.0. В качестве одного из устройств обычно выступает смартфон, а второго — батарейный гаджет. Андроид поддерживает BLE с версии 4.3.

Для передачи и приема данных необходима энергия, поэтому поднимают скорость передачи данных, что бы в единицу времени успеть передать больше информации. Для этого в BLE принята скорость передачи информации в 1 Mbit/c. Однако не только скорость передачи данных важна. Самым важным в BLE является то, что устройства связи умеют переходить в синхронный режим работы. Другими словами, устройства спят 99% времени, потом просыпаются на очень короткое время, обмениваются информацией и опять засыпают. Однако перед тем как войти в этот режим, необходимо пройти процедуру синхронизации. Для этого существует режим «advertising». Его мы рассмотрим позднее. А перед тем как погрузится в описание протокола BLE, хотелось бы затронуть тему инструментальных средств, для работы с протоколом BLE.

Инструменты

Для того чтобы разобраться во всем многообразии посылок и запросов нам необходимы инструментальные средства. С их помощью мы смогли бы увидеть содержимое посылок и проконтролировать механизм взаимодействия между устройствами. Для этих целей мы будем использовать nRF51822 Development Dongle (PCA10000), программу сниффера и, для отображения результатов, хорошо известную всем сисадминам программу «Wireshark».

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Программы бесплатные, но достать сам донгл может оказаться проблемой. Однако без инструментария, заниматься разработкой таких сложных устройств будет весьма проблематично. На первом этапе может помочь программа на андроиде «nRF Connect».

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Она позволяет сканировать эфир, находить и разбирать посылки как присоединяемых, так и не присоединяемых устройств. У Nordic-a есть и ещё инструменты для разработки BLE устройств, но нам будет достаточно этих. На российском рынке присутствует представитель компании Nordic – фирма «Rutronik» (rutronik24.com, rutronik.com). Через её представителей можно приобрести необходимые микросхемы, отладочные платы и т.д. Кроме того, в интернете имеется форум, на котором представители фирмы отвечают на вопросы разработчиков.

Сначала вкратце поговорим о том, как пользоваться нашими инструментами. Вставим в разъем USB наш донгл и запустим программу ble_sniffer_win. Мы увидим следующее окно.

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Если донгл увидит BLE устройства, то внизу появится информация о них. В данном случае, в эфире присутствует одно устройство с именем «TestBLE». Так же отображается его уровень сигнала, MAC адрес и то, что этот адрес является случайным (random). Забегая вперед, хочется заметить, что здесь кроется один из подводных камней для разработчиков. Некоторые телефоны (LG G3S, Samsung S6) работают только с устройствами, MAC адреса которых зарегистрированы (public).

У сниффера есть два режима работы. Если мы нажмем кнопку «w» на клавиатуре, то запустится программа «Wireshark». Сниффер будет сканировать три рекламных канала и выдавать информацию обо всех устройствах объявления. Если мы сначала нажмем цифру на клавиатуре, такую же, как напротив интересующего нас устройства, то включится другой режим работы. В нем сниффер будет отслеживать трафик только одного выбранного устройства, причем как на каналах объявления, так и на рабочих каналах

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Используя «Wireshark», легко получить всю информацию о посылке. Программа состоит из трех окон. Сверху отображаются все принятые посылки, во втором окне – детальная информация о выбранном пакете, а в третьем окне отображается сам фрейм. В свою очередь, во втором окне имеется три блока информации. В самом верхнем – временные значения выбранного фрейма, во втором (Nordic BLE sniffer meta) – общая информация о фрейме, такие как уровень сигнала, частотный канал и некоторые другие. Самым интересным для нас является третий блок информации (Bluetooth Low Energy Link Layer). В нем можно посмотреть разбор самого фрейма. В дальнейшем мы будем говорить именно об этом блоке информации. Сначала мы разберем формирование рекламных пакетов.

Advertising

Посмотрим на рисунок ниже. На нем показаны распределения каналов по частотам для BLE. Рекламные каналы — это 37 (2402Мгц), 38 (2426Мгц) и 39 (2480Мгц) каналы. Такое распределение рекламных каналов выбрано не случайно. Во-первых, рекламные каналы попадают между каналами Wi-Fi (1, 6, 11 каналы), что позволяет даже при малом уровне мощности, быть услышанными другими устройствами. Во-вторых, когда мы разносим рекламные каналы далеко друг от друга, мы получаем гарантированную доставку сообщения. Это связано с интерференцией сигнала в помещениях. Известно, что в результате отражения радиосигналов от стен, может получиться ситуация, когда приемник и передатчик не слышат друг друга. Однако в нашем случае, когда передача рекламных пакетов идет последовательно на трех разных каналах, максимально удаленных друг от друга по частоте, этот эффект отсутствует.

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Рассмотрим теперь формат самого пакета advertising. В спецификации длина данных измеряется в октетах. Для нас это байты. Самым первым байтом идет преамбула. Она состоит из чередующихся нулей и единиц. Это нужно для синхронизации передатчика и приемника. Следом за преамбулой передаются четыре байта адреса доступа(Access Address). После него идет пакет данных (PDU). В спецификции 4.0 максимальная длина PDU составляет 39 байт, а в версии 5.0 длина пакета данных увеличена до 257 байт. В конце каждого рекламного пакета идут три байта контрольной суммы (CRC).

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Здесь надо заметить, что Access Address служит для того, что бы устройства понимали, для кого предназначен BLE пакет. Это своеобразный код доступа. Если этот код доступа не знаком устройству, то пакет игнорируется. На всех рекламных каналах, в отличии от рабочих, он одинаков (0x8E89BED6), поэтому все устройства на каналах объявления видят друг друга.

Рассмотрим теперь формат блока данных PDU. В самом начале пакета PDU идет заголовок длинной 16 бит. В нем содержится тип пакета, флаги TxAdd, RxAdd, а так же длина всего поля PDU в байтах. RFU – это зарезервированные поля. Для спецификации 4.0 это выглядит так:

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Для спецификации 5.0 увеличена длина поля Payload до 255 байт, а так же добавлены новые поля в заголовок:

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

Поле TxAdd как раз и отвечает за то, как будет видеться MAC адрес устройства. Если это поле равно единице, то МАС устройства будет виден как random. Рассмотрим теперь какие бывают типы advertising пакетов. На рисунке приведен их список для спецификации 4.0. В формате 5.0 их число увеличено, но мы будем рассматривать то, что есть в обоих форматах.

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджером

ADV_IND – это ненаправленные пакеты, которые рассылают устройства, готовые к присоединению. Большинство гаджетов при рассылке рекламных пакетов используют именно их.

ADV_DIRECT_IND — направленные рекламные пакеты присоединяемых устройств. Присоединять и обмениваться данными с ними может только конкретное устройство с заранее известным МАС адресом.

ADV_NONCONN_IND – рекламные пакеты, которые рассылают не присоединяемые устройства. Это маяки (beacon). Обычно они служат для получения какой-либо справочной информации. Например, при входе в магазин могут информировать об акциях. Кроме того, измеряя уровень сигналов от маяков и зная карту их расположения, можно осуществить автоматическое позиционирование внутри помещений. Это актуально для автоматизированных складов.

SCAN_REQ, SCAN_RSP, CONNECT_REQ – пакеты, которыми обмениваются присоединяемое устройство и телефон в процессе установления синхронного соединения. Эти пакеты и сам процесс присоединения мы рассмотрим во второй части статьи.

ADV_SCAN_IND – эти пакеты рассылает не присоединяемое устройство, которое может предоставить дополнительную информацию в ответ на запрос при сканировании.

Во второй части статьи мы рассмотрим различные режимы работы BLE устройств, а так же механизм «присоединения» устройства к телефону и переход на рабочие частоты.

Источник

Bluetooth Low Energy: подробный гайд для начинающих. Bluetooth 5 и безопасность

Это четвертая часть перевода книги Мохаммада Афане “Intro to Bluetooth Low Energy”. Сегодня мы рассмотрим возможности, появившиеся с новой версией стандарта а также различные методы обеспечения безопасности соединения и пользовательских данных в BLE.

7. Bluetooth 5

Рассмотрим список нововведений Bluetooth 5 (из официальной спецификации):

CSA 5 features (Higher Output Power)

Slot Availability Mask (SAM)

2 Msym/s PHY for LE

High Duty Cycle Non-Connectable Advertising

LE Advertising Extensions

LE Channel Selection Algorithm #2

В этой главе мы сфокусируемся на наиболее важных изменениях:

7.1 Удвоение скорости, увеличение дальности в 4 раза

Напомним, что PHY относится к физической части радио. Предыдущие спецификации Bluetooth (до Bluetooth 5) допускали использование только одного PHY, со скоростью передачи 1Мсим/с.
Как мы упоминали ранее, Bluetooth 5 привнес два новых (опциональных) PHY:

2M PHY:
Используется для удвоения скорости передачи (по сравнению с предыдущими версиями Bluetooth). Также добавляет несколько новых возможностей:
Уменьшение энергопотребления за счет того, что тот же объем данных передается за меньшее время, уменьшая время нахождения передатчика в активном состоянии.
Уменьшение уровня взаимных помех за счет меньшего времени нахождения передатчика в активном состоянии.

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

Кодированный PHY:
Используется для четырехкратного увеличения радиуса действия приемников и передатчиков по сравнению с предыдущими версиями BLE. Очевидное преимущество в увеличенной дальности передачи имеет два недостатка:
Увеличенное энергопотребление: так как для передачи одного бита используется несколько символов, нам требуется увеличить время активности передатчика.
Уменьшенная скорость: по той же причине, нам остаются доступны скорости 125 кбит/с или 500 кбит/с, в зависимости от используемой схемы кодирования.

Были достигнуты расстояния передачи до 800 метров (в пределах прямой видимости) во время тестирования. Это делает возможным использование BLE в устройствах, отдаленных на сотни метров друг от друга.

Скорости передачи, рассмотренные нами, определяют скорости, с которыми “сырые” данные передаются по радиоканалу. С учетом обязательных временных задержек между пакетами (150 микросекунд, согласно спецификации), а также служебной информации и с учетом прочих требований, накладываемых спецификацией (например ответы и пакеты подтверждения), реальная скорость передачи полезной информации будет ниже. Например, для 2M PHY максимальная скорость передачи полезных данных будет составлять порядка 1.4 Мбит/с.

7.1.1 2M PHY

Мы также упоминали о запрете использования 2M PHY для первичного адвертайзинга. Нам остаются две возможности использовать этот режим:

Вторичный адвертайзинг (режим расширенного адвертайзинга).

Адвертайзинг на первичном или вторичном канале с использованием 1M PHY. После установления соединения любая из сторон может запросить смену PHY на 2М.

7.1.2. Кодированный PHY

Bluetooth 5 позволяет значительно увеличить дальность передачи используя новый, кодированный PHY. Что в данном контексте означает кодирование? И как оно помогает увеличить дальность связи?

Используются следующие схемы кодирования:

S = 2, каждый бит данных кодируется 2 битами, максимальная скорость передачи 500 кбит/с.

S = 8, каждый бит данных кодируется 8 битами, максимальная скорость передачи 125 кбит/с.

7.2 Восьмикратное увеличение емкости пакетов адвертайзинга

7.2.1 Расширенные пакеты адвертайзинга

Bluetooth 5 добавил концепцию вторичных каналов адвертайзинга, которые позволяют устройству рассылать пакеты большего размера, чем разрешенные на первичных каналах адвертайзинга. Пакеты адвертайзинга, рассылаемые только с использованием первичных каналов, называются устаревшими, в то время как адвертайзинг, начинающийся на первичном канале и продолжающийся на вторичном, называется расширенным.

В случае расширенного адвертайзинга пакеты посылаются по первичному каналу и содержат информацию о том, на каком вторичном канале искать оставшуюся часть данных. Это позволяет передавать 255 байт данных вместо 31. Также это может быть полезно для разгрузки трех первичных каналов адвертайзинга.

Пакеты, передаваемые по вторичным каналам адвертайзинга могут использовать любой из трех существующих PHY, в то время как пакеты, передаваемые по первичным каналам могут использовать только классический 1М PHY или кодированный PHY. Это означает, что центральное устройство должно использовать соответствующий PHY при поиске периферийных устройств.

7.2.2 Периодический адвертайзинг

Представьте себе следующую ситуацию: у нас имеется множество температурных датчиков, распределенных по всему зданию. Показания температуры на них меняются со временем. Эти показания, вместе с сопутствующей служебной информацией (местоположение, время снятия показаний и проч.) должны быть переданы на устройства, передающие эти данные в облако.

Мы могли бы использовать расширенный адвертайзинг, так как размер наших пакетов превышает размер старого пакета адвертайзинга (31 байт), однако это означало бы, что центральному устройству пришлось постоянно слушать радиоканал в ожидании пакетов, потребляя большое количество энергии.

Вместо этого мы можем использовать новую возможность, появившуюся вместе с Bluetooth 5: периодический адвертайзинг. Это специальный случай расширенного адвертайзинга, он позволяет центральному устройству синхронизироваться с периферийными, которые рассылают расширенные пакеты через фиксированные интервалы времени. Это позволяет снизить энергопотребление, так как пакеты посылаются через длительные промежутки времени, и в то же время позволяет большому количеству центральных устройств синхронизироваться с периферийными.

7.3 Больше о расширенном адвертайзинге

Расширенный адвертайзинг использует вторичные каналы адвертайзинга, это те же самые каналы, что используются для передачи пакетов данных между двумя устройствами во время соединения. Пакеты расширенного адвертайзинга не считаются частью событий адвертайзинга, о которых мы говорили ранее (устаревший адвертайзинг), которые происходят на первичных каналах адвертайзинга (37, 38 и 39).

Расширенный адвертайзинг используется для того, чтобы не передавать вспомогательные пакеты на первичных каналах адвертайзинга, тем самым разгружая их. Разгрузка происходит путем передачи по первичному каналу указателя на вспомогательный пакет, передаваемый на вторичном канале. Пакет, передаваемый по первичному каналу, содержит номер радиоканала и сдвиг во времени относительно времени начала передачи расширенного пакета адвертайзинга.

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

Так как устройства, не поддерживающие Bluetooth 5, не могут обнаружить пакеты расширенного адвертайзинга, рекомендуется использовать дополнительный набор данных адвертайзинга, использующий только первичный канал и совместимый со старыми устройствами, чтобы позволить им принимать данные и устанавливать соединение.

Ниже представлена диаграмма, показывающая пример использования расширенного адвертайзинга:

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджеромРис. 20: Расширенный адвертайзинг (Источник: спецификация Bluetooth)

Режим периодического адвертайзинга позволяет нескольким устройствам коммуницировать без установления соединения. Периферийное устройство посылает данные синхронизации вместе с другими данными расширенного адвертайзинга, позволяя другому устройству быть синхронизированным с ним. Эта синхронизация позволяет устройству получать данные адвертайзинга через постоянные определенные отрезки времени.

На диаграмме ниже представлен пример использования периодического адвертайзинга:

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджеромРис. 21: Периодический адвертайзинг (Источник: спецификация Bluetooth)

Безопасность

Ознакомимся с некоторыми аспектами обеспечения безопасности.

Посмотрим на меры защиты, которые предоставляет BLE.

Рассмотрим вопросы обеспечения конфиденциальности.

Мне очень нравится старая шутка о том, что буква “S” в аббревиатуре IoT означает “Security”.

8.1 Проблемы обеспечения безопасности

Некоторые из наиболее распространенных аспектов безопасности любой системы представлены ниже:

Аутентификация: это доказательство того, что на другой стороне действительно находится требуемое устройство. Если вы подключаетесь к устройству с BLE, вы хотите быть уверены, что вы действительно подключаетесь к нему, а не к какому-то другому устройству, маскирующемуся под ваше.

Целостность: гарантирует нам, что принятые данные не повреждены и не подменены третьими лицами.

Конфиденциальность: обеспечивает уверенность в том, что наши данные не стали достоянием общественности.

Приватность: дает ответ на вопрос, насколько наше соединение скрыто и есть ли у сторонних устройств возможность отследить нас, особенно по Bluetooth-адресу.

Это наиболее общие аспекты безопасности, применимые к любой системе. Важность каждого из них зависит от сферы применения и типа устройства.

8.1.1 Типы атак

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

Слежка: в этой атаке устройства и пользователи отслеживаются по Bluetooth-адресу, что может дать доступ к их местоположению и спрогнозировать их действия в оффлайне.

8.2 Безопасность в BLE

Безопасность в BLE обеспечивается слоем менеджера безопасности (SM ).

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджеромРис. 22: Место менеджера безопасности в архитектуре BLE

Менеджер безопасности определяет протоколы и алгоритмы для генерации и обмена ключами между двумя устройствами. Он включает в себя пять функций безопасности:

Сопряжение: процесс создания общих секретных ключей двух устройств.

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

Аутентификация: процесс проверки того, что оба устройства имеют те же секретные ключи.

Шифрование: процесс шифрования данных, передаваемых между устройствами. Шифрование в BLE использует стандарт AES-128, симметричный алгоритм блочного шифрования (один и тот же ключ используется и для шифрования и для дешифровки данных на обеих сторонах).

Обеспечение целостности сообщений: процесс подписывания данных при передаче и проверки подписи при приеме. Это помимо простой проверки целостности при помощи контрольной суммы.

Bluetooth 4.2 также привнес термин “устаревшее соединение”, который в совокупности относится к методам сопряжения, используемым в ранних версиях протокола. Важно отметить, что устаревшие соединения по прежнему поддерживаются в Bluetooth 4.2 и более новых.

Менеджер безопасности решает различные проблемы обеспечения безопасности следующим образом:

Конфиденциальность путем шифрования.

Аутентификация через сопряжение и связывание устройств

Приватность через разрешимые приватные адреса.

Целостность при помощи цифровых подписей.

В BLE ведущее устройство является инициатором проведения мероприятий безопасности. Ведомое устройство может запросить о старте процедуры безопасности путем отправки запроса ведомому, однако принятие решения о начале процедуры всегда остается за ведущим.

Для лучшего понимания механизма обеспечения безопасности в BLE нам необходимо разобраться с двумя важными концепциями: сопряжением и связыванием. Но сперва давайте посмотрим на диаграмму, отображающую процесс обеспечения безопасности:

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджеромРис. 23: Различные фазы процесса обеспечения безопасности в BLE

Сопряжение это комбинация фаз 1 и 2. Связывание представлено в третьей фазе процесса. Отметим, что разница между LE Legacy Connections и LE Secure Connections заключается только в реализации фазы 2.

8.2.1 Сопряжение и связывание

Сопряжение это временная мера безопасности, которая вызывается и выполняется каждый раз при установлении или переподключении соединения для его шифрования. Для того, чтобы однократно зашифровать все последующие соединения, необходимо произвести связывание устройств.
Рассмотрим более подробно шаги процесса обеспечения безопасности:

8.2.1.1 Шаг 1

На этом шаге ведомое устройство может запросить ведущее о начале процесса сопряжения. Ведущее инициирует процесс сопряжения посылая запрос на сопряжение ведомому, на которое оно отвечает сообщением ответа на сопряжение.

Сообщения запроса на сопряжение и ответа на сопряжение представляют собой обмен функциями, поддерживаемыми обоими устройствами, и требованиями безопасности, предъявляемыми устройствами. Каждое из сообщений включает в себя следующую информацию:

Возможности ввода-вывода: наличие дисплея, клавиатуры или кнопок.

Поддержка передачи сообщений другим методом, например при помощи NFC.

Требования аутентификации: включают в себя требование на защиту от атаки посредника, требование на связывание и поддержку безопасных соединений.

Максимальный размер ключа шифрования, поддерживаемый устройством.

Различные ключи безопасности, использование которых могут запросить устройства.

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

что значит сопряжение с ble менеджером. Смотреть фото что значит сопряжение с ble менеджером. Смотреть картинку что значит сопряжение с ble менеджером. Картинка про что значит сопряжение с ble менеджером. Фото что значит сопряжение с ble менеджеромРис. 24: возможности ввода-вывода и метод связывания (источник: спецификация Bluetooth 5)

8.2.1.2 Шаг 2

Как было упомянуто ранее, реализация второго шага зависит от выбранного метода: LE Legacy Connections или LE Secure Connections. Рассмотрим разницу между этими двумя методами:

LE Legacy Connections:
В устаревших соединениях используются два ключа: временный ключ и кратковременный ключ. Временный ключ, в связке с другими передаваемыми данными, используется для генерации кратковременного ключа, шифрующего соединение.

LE Secure Connections:
В безопасных соединениях при сопряжении не происходит обмена секретными ключами между устройствами по радиоканалу. Вместо этого устройства используют алгоритм эллиптических кривых Диффи-Хеллмана для генерации пары из публичного и секретного ключа. После этого устройства обмениваются только публичными ключами и генерируют из них общий секретный долговременный ключ.

Преимущество использования эллиптических кривых Диффи-Хеллмана состоит в том, что они исключают возможность перехватить или узнать общий секретный ключ, даже при наличии у злоумышленника обоих публичных ключей. Узнать больше о эллиптических кривых и методах их работы можно здесь. Также я нашел видео, хорошо объясняющее их принцип работы.

8.2.1.3 Шаг 3

Третий шаг представляет собой процесс связывания устройств. Это опциональный шаг, который избавляет от необходимости пересопряжения при каждом новом соединении для защиты канала связи.

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

8.2.2 Методы сопряжения

Устаревшие соединения и безопасные соединения имеют различные методы сопряжения. Некоторые из этих методов имеют одинаковое название, но различаются в своих деталях. Используемый метод сопряжения определяется возможностями устройств, которыми они обмениваются на первом шаге.

8.2.2.1 LE Legacy Connections (все версии Bluetooth)

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

Метод “Just Works”:
В этом методе временный ключ равен 0. По очевидным причинам этот метод является наименее защищенным из всех.

Пароль:
В этом методе временный ключ представляет собой шестизначное число, передаваемое между пользовательскими устройствами. Например, оно может быть введено вручную на одном из устройств. Сложность заключается в необходимости иметь минимальные возможности ввода-вывода на устройствах, такие как дисплей и клавиатура, что ограничивает возможность использования этого метода.

8.2.2.2 LE Secure Connections (Bluetooth версии 4.2 и более новые)

Метод “Just Works”:
В этом методе публичные ключи для каждого устройства вместе с другими сгенерированными значениями передаются между двумя устройствами через BLE.

Out of Band (OOB), использование другого метода передачи:
В этом методе ключи передаются с использованием другой среды передачи (например, NFC).

Пароль:
В этом методе используются шестизначные цифры. Они должны быть введены пользователем на каждом устройстве или же одно из устройств сгенерирует это число для того, чтобы пользователь ввел его на другом устройстве.

Сравнение чисел:
Этот метод не отличается от первого за исключением дополнительного шага в конце процедуры. Этот дополнительный шаг позволяет организовать защиту от атак посредника. Это наиболее защищенный из всех методов сопряжения.

Примечание: безопасность в BLE это довольно обширный раздел, который не может быть рассмотрен полностью в этой книге. Вы можете узнать больше о различных методах сопряжения и особенностях их работы, изучив диаграммы сообщений, представленные в спецификации Bluetooth 5 (Vol 3, Part H, Appendix C. page 2364).

8.3 Приватность

Обеспечение приватности является еще одной важной задачей для пользователя, и к ней стоит отнестись со всем вниманием. Каждое Bluetooth-устройство имеет свой адрес и, если не предприняты определенные меры безопасности, этот адрес может быть использован для отслеживания пользователя. К счастью, BLE предоставляет все необходимые функции для защиты от этой уязвимости.

Устройство может использовать часто меняющийся приватный адрес в качестве своего Bluetooth-адреса, который могут получить только доверенные устройства. В данном случае это связанные устройства. Случайный приватный адрес генерируется при помощи ключа идентификации, которым два связанных устройства обмениваются во время третьего шага. Таким образом, связанное устройство имеет доступ к ключу идентификации и может расшифровать случайный адрес.

8.4 Обзор различных ключей безопасности

Существует множество ключей и переменных, используемых в различных процедурах безопасности. Рассмотрим их все.

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

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

Долговременный ключ:
Этот ключ создается и сохраняется на устройстве во время третьего шага процесса обеспечения безопасности в устаревших соединениях и во время второго шага в безопасных соединениях. Он сохраняется на каждом из двух связанных устройств и используется в последующих соединениях между двумя устройствами.

Зашифрованный диверсификатор и случайное число:
Два этих значения используются для создания и идентификации долговременного ключа. Они также сохраняются на устройстве во время процесса связывания.

Ключ расшифровки подписи соединения:
Используется для подписывания передаваемых данных и проверки подписи принятых данных на другом устройстве. Этот ключ сохраняется на обоих связанных устройствах.

Ключ идентификации:
Используется для расшифровки случайного частного адреса. Этот ключ уникален для каждого устройства, ключ ведущего устройства сохраняется на ведомом, а ключ ведомого сохраняется на ведущем.

8.5 Режимы и уровни безопасности

Также существуют различные уровни каждого режима:

Режим безопасности 1

Уровень 1: Отсутствие защиты (нет аутентификации и шифрования).

Уровень 2: Непроверенное сопряжение с шифрованием.

Уровень 3: Проверенное сопряжение с шифрованием.

Уровень 4: Проверенное безопасное сопряжение со связыванием и шифрованием.

Режим безопасности 2

Уровень 1: Непроверенное сопряжение с подписыванием данных.

Уровень 2: Проверенное сопряжение с подписыванием данных.

Соединение признается проверенным или непроверенным в зависимости от выбранного метода сопряжения. В таблице, приведенной на рисунке 24, перечислены условия, при которых метод сопряжения признается проверенным.

Соединение между двумя устройствами должно быть установлено с использованием одного режима, но в то же время могут использоваться различные уровни этого режима (используемые характеристики могут требовать различных уровней безопасности). Приведем пример:

Одна характеристика может не предъявлять требований безопасности при ее чтении (уровень 1).

Та же самая характеристика может требовать 3 уровень при записи.

Другая характеристика может требовать уровня 4 на чтение и запись в характеристику.

8.6 Как запускается процесс обеспечения безопасности при соединении?

Существует набор ситуаций, проведение которых требует обеспечения безопасности соединения. Вот некоторые из них:

Ведущее устройство посылает запрос на сопряжение, что ведет к отправке ведомым ответа на сопряжение.

Ведомый отправляет запрос на обеспечение безопасности, на который ведущее устройство отправляет запрос на сопряжение и ожидает от ведомого ответа на этот пакет.

Клиент запрашивает доступ к характеристике, представленной на сервере, которая требует определенного уровня обеспечения безопасности. Это вызывает запуск процесса сопряжения и, возможно, связывание устройств.

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

Два связанных устройства соединяются друг с другом, запуская шифрование с использованием сохраненных ключей.

Примечание: iOS не позволяет требовать специальных разрешений (таких как сопряжение, аутентификация или шифрование) для обнаружения сервисов и характеристик. Вместо этого она требует от сервера ограничить доступ к значениям характеристик до завершения процесса сопряжения. Указания к проектированию под iOS с использованием Bluetooth могут быть найдены здесь.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *