ble name что за устройство

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Что такое Bluetooth Low Energy (BLE) и как его взламывают

Чтобы вы не ушли пока читаете скучную теорию — в этой статье я буду взламывать свою зубную щётку…

Bluetooth, как мы знаем, является одной из самых популярных и широко используемых беспроводных технологий в современном мире. В связи с быстрым ростом IoT, ускоряющим развитие технологии Bluetooth, Специальная группа по интересам Bluetooth (Bluetooth Special Interest Group (SIG)) предпринимает постоянные усилия по увеличению скорости передачи с максимальным акцентом на маяки, развлечения, сферу здравоохранения и фитнес.

Bluetooth Low Energy (BLE) является частью спецификации Bluetooth 4.0, которая также включает протоколы классического Bluetooth и протокол высокоскоростного Bluetooth (Classic Bluetooth and Bluetooth High Speed Protocols). По сравнению с классическим Bluetooth, BLE предназначен для использования меньшей мощности при сохранении аналогичного диапазона связи. BLE — это технология, которая всегда отключена и передаёт только короткие объёмы данных, когда это необходимо. Это значительно снижает энергопотребление, что делает его идеальным для использования в случаях, когда требуется постоянное долговременное соединение с низкой скоростью передачи данных. BLE идеально подходит для пульта дистанционного управления телевизором, но не для беспроводного устройства потоковой передачи мультимедиа, которому для передачи требуется большой объем данных.

Изначально Nokia разработала BLE для собственного проекта под названием «WIBREE», который впоследствии был передан Bluetooth SIG. BLE был задуман с акцентом на лучшую скорость сопряжения и энергоэффективность.

Что выделяет BLE?

На бумаге BLE выглядит хорошо, а как на практике?

Это хороший вопрос с точки зрения безопасности. Дело в том, что BLE — это просто протокол. Изготовители должны безопасно внедрить BLE в своё устройство. Известно, что даже самый сильный криптографический протокол не будет работать, если генератор случайных чисел не является «достаточно случайным». То же самое относится и к BLE. Таким образом, можно сказать, что безопасность BLE лежит в руках его исполнителей.

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

Давайте посмотрим на три основные уязвимости, которым BLE могут подвергать своих пользователей:

Итак, резюмируя, по своей задумке BLE это упрощённая версия Bluetooth, которая всегда не меняет каналы (частоты), что облегчает сниффинг и атаку человек-посередине. BLE не имеет встроенного протокола обеспечения безопасности. Реализация безопасности BLE возложена на производителей конечных устройств, которые не всегда подходят к этому добросовестно. По этой причине многие BLE устройства можно легко обнаружить практически в любое время их работы. При этом зачастую они не содержат каких-либо механизмов для ограничения чтения и даже записи на них, то есть открыты для подключения и модификации кому угодно.

Основные понятия в BLE

В BLE есть два основных понятия.

Общий профиль доступа (GAP)

Он ответственен за подключение и распространения информации о наличии устройства BLE. GAP отвечает за видимость устройства во внешнем мире, а также играет важную роль в определении того, как устройство взаимодействует с другими устройствами.

Следующие две концепции являются неотъемлемой частью GAP:

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

Центральные устройства: в основном это мобильные телефоны или гаджеты с увеличенной памятью и вычислительной мощностью.

Advertising process (обеспечение видимости устройства)

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

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

Протокол общих атрибутов (GATT)

Используя общий протокол данных, известный как протокол атрибутов, GATT определяет, как два устройства BLE обмениваются данными друг с другом, используя понятия — сервис (service) и характеристика (characteristic). Этот протокол сохраняет все сервисы и характеристики в справочной таблице с использованием 16-битных идентификаторов, как указано в Bluetooth SIG. Важно отметить, что GATT инициируется только после того, как Advertising процесс, регулируемый GAP, завершён.

Две основные концепции, которые образуют GATT

Сервисы

Сервисы можно представить просто как шкаф, в котором может быть много ящиков, которые в свою очередь называются характеристиками. Сервис может иметь много характеристик. Каждый сервис уникален сам по себе с универсально уникальным идентификатором (UUID), который может быть размером 16 бит для официальных адаптированных сервисов или 128 бит для пользовательских сервисов.

Характеристики

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

Вот спецификации SIG для характеристик и сервисов для устройств BLE. Любое устройство BLE, которое официально приняло UUID от SIG, должно использовать идентификатор, указанный ими в своих приложениях.

Например, официальный UUID мощности передачи (TX power) в соответствии с мандатом SIG равен 0x1804.

Чтобы было наглядно, посмотрите на этот пример сервисов и характеристик конкретного устройства:

Ещё один 16-битный сервис это «Generic Attribute (1801)», он содержит только одну 16-битную характеристику: Service Changed (2a05).

Далее идут три 128-битные сервиса, первый из них «a0f0fff050474d5382084f72616c2d42», содержит четыре 128-битных характеристики:

Имеется проблема в идентификации сервисов и характеристик. Для 16-битных сервисов и характеристик всё просто, ссылки на их значения даны выше. Что касается 128-битных сервисов и характеристик, то они у каждого производителя могут быть свои. То есть нужно приложит некоторые усилия, чтобы, к примеру, сопоставить что-то вроде d0611e78-bbb4-4591-a5f8-487910ae4366 с чем-то вроде Apple Continuity Service. Для сопоставления можно использовать как минимум два подхода:

Как взломать Bluetooth Low Energy

Суть процесса взлома Bluetooth Low Energy можно описать следующими стадиями:

Четвёртый этап является творческим и самым сложным. Иногда роль характеристик можно найти в документации разработчиков для данного устройства. Иногда приходится перебирать значения и смотреть, что поменялось в устройстве. Самый сложный вариант — это обратная инженерия перехваченного Bluetooth трафика или приложения для управление устройством.

Я покажу пример изменения BLE параметров на устройстве с помощью bettercap.

Вводим команду для включения модуля по обнаружению BLE устройств:

При обнаружении новых устройств и при потере видимости устройств будут выводиться примерно следующие сообщения:

Чтобы вывести устройства, которые в данный момент в пределах досягаемости, выполните команду:

Для показа характеристик конкретного устройства, запустите команду следующего вида, где вместо MAC укажите MAC-адрес устройства:

К примеру, меня интересует устройство C8:DF:84:1A:9F:26:

В столбце Properties вы увидите свойства данной характеристики, они могут быть:

В колонке Data присутствует текущее значение характеристики, либо дополнительная информация, например:

Для записи данных HEX_DATA в BLE устройство с указанным MAC адресом, в характеристику с идентификатором UUID:

Чтобы знать, что именно записывать, нужно понимать, за что отвечают характеристики. Вот пример значений для моего устройства — это электрическая зубная щётка Oral-B Genius 9000 (кстати, рекомендую). Значение характеристик я нашёл в Интернете.

Исследование и взлом Bluetooth Low Energy (BLE) с телефона

Поскольку на всех современных телефонах имеется Bluetooth, то вы можете использовать приложения для работы с Bluetooth Low Energy (BLE) окружающих устройств на телефоне.

Пример такого приложения — nRF Connect — бесплатная программа программа для Android, которая умеет сканировать для поиска BLE устройств, подключаться к ним и менять значение характеристик. Программа поддерживает макросы и другие продвинутые функции.

Просмотр сервисов устройства:

Просмотр свойств характеристик:

Редактирование значений характеристик:

Работа с Bluetooth Low Energy (BLE) в Linux

Конечно, в Linux можно работать с устройствами, поддерживающими BLE, напрямую, без таких программ как Bettercap.

К сожалению, этот аспект довольно запутанный. В Debian и производных программы для работы с Bluetooth Low Energy собраны в пакете bluez. В Arch Linux и производных, пакет bluez также имеется, но утилиты, которые нас интересуют, помещены в пакет bluez-utils. Но не это самая большая проблема.

После очередного обновления утилит bluez, авторы вдруг признали многие важные программы «устаревшими», а именно устаревшими объявлены:

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

Была составлена такая таблица замены:

Устаревший инструмент Самая подходящая замена
gatttool btgatt-client, D-Bus Gatt API
hciattach btattach
hciconfig btmgmt (и bluetoothctl?)
hcidump btmon (и btsnoop)
hcitool отсутствует, доступно в D-Bus Device API
rfcomm отсутствует, реализовано в D-Bus Profile1 API?
ciptool
sdptool отсутствует, кажется, что функциональность разбросана по разным объектам D-Bus: Profile, Advertising, и массивы UUIDs в device и adapter.

Слова «отсутствует» не вселяют уверенности. По этой причине для Debian и производных этот пакет компилируется с ключом —enable-deprecated, а на Arch Linux в дополнении к пакету bluez-utils, доступному в стандартных репозиториях, в AUR имеется пакет bluez-utils-compat, в котором тоже включены устаревшие инструменты.

В относительно свежих инструкциях, для взаимодействия с Bluetooth Low Energy используются утилиты:

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

Если запустить программу btmgmt:

И в ней выполнить команду:

То она выведет список обнаруженных устройств:

Будут выведены как BLE, так и обычные Bluetooth устройства.

Также умеет искать BLE устройства, если ввести:

С помощью команды connect можно подключиться к устройству, для этого нужно указать его MAC-адрес:

Информация по устройству:

Если перейти в меню GATT:

То можно получить список характеристик:

А также перезаписать характеристики устройства.

Для получения информации по отдельным характеристикам:

Ещё одна программа, которая выведет сразу все характеристики устройства — btgatt-client. Например, выполним подключение и посмотрим характеристики устройства с MAC C8:DF:84:1A:9F:26:

В дополнении к рассмотренным программам, в отдельной консоли можно запустить Bluetooth monitor:

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

Заключение

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

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

Источник

Для мобильных стражей: беспроводной стандарт Bluetooth Low Energy в системах безопасности

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

Технология Bluetooth Low Energy (BLE) 3 — Bluetooth 4.0 является технологией беспроводной связи для ближних коммуникаций, разработанной группой Bluetooth Special Interest Group (SIG). В отличие от предыдущих стандартов — Bluetooth 2.0, Bluetooth 2.1 + EDR, Bluetooth 3.0, стандарт BLE изначально ориентирован на применение в системах сбора данных, мониторинга с автономным питанием. В отличие от технологий сенсорных сетей, таких как, ZigBee, 6LoWPAN или Z-Wave, ориентированных на разветвленные распределенные сети с многочисленными передачами данных между узлами сети, Bluetooth Low Energy рассчитан на топологии типа «точка-точка» и «звезда». Основными областями применения BLE являются устройства обеспечения безопасности, управления электроприборами и отображения показаний, датчики с батарейным питанием, домашние медицинские приборы, спортивные тренажеры.

Успех предыдущих версий Bluetooth, подтвержденный массовым применением беспроводных интерфейсов данных стандартов в большом количестве устройств, в том числе — рассчитанных на обычного потребителя, позволяет ожидать аналогичной ситуации и с устройствами, поддерживающими стандарт BLE. В частности IEFT 6LoWPAN Working Group рассматривает BLE как одну из значительных составляющих т.н. «Интернета вещей» (Internet of Things) и разрабатывает спецификацию, позволяющую транслировать пакеты IPv6 посредством BLE [2, 3].

Компания BlueGiga является одной из первых компаний, которая начала внедрять технологию Bluetooth Low Energy в своих устройствах. Однорежимные устройства (single-mode) выпускаются с 2010 года, а с 2011 года — и двухрежимные (dual-mode). Ассортимент устройств с технологией Bluetooth Low Energy от BlueGiga позволяет строить на их основе решения для самых различных секторов рынка встраиваемых беспроводных устройств:

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

Ряд задач может быть решен на основе обнаружения присутствия других BLE-устройств в радиусе действия сигнала центрального узла. К таким решениям относятся устройства-сигнализаторы, позволяющие обнаруживать удаление владельца от сумочек, багажа, кошельков, портмоне со встроенным BLE-модулем и сигнализирующее ему и окружающим (при необходимости) о потере владельца. Модули серий BLE111, BLE112 благодаря своим компактным размерам, низкому профилю и малому потреблению позволяют встраивать сигнализирующие устройства непосредственно в предметы (карманы сумочек, корочки кошельков и записных книжек, стенки портфелей). Будучи встроенными в браслеты или брелоки, подобные устройства помогут, к примеру, не потерять ребенка в местах с большим скоплением людей (рынки, вокзалы, супермаркеты, аэропорты). Как бы это ни казалось странным, но такая проблема существует.

Аналогичным образом BLE-устройства могут служить для учета времени прихода/ухода работников: они устанавливаются на входе или выдаются по приходу на работу. Возможна также реализация систем мониторинга присутствия:

Немаловажной областью применения BLE-устройств могут стать автомобильные системы. При помощи специальных BLE-брелоков или непосредственно со смартфона, оснащенного Bluetooth, возможно управление и настройка ряда автомобильных систем, начиная от личных настроек водителя (климат, предпочтительная радиостанция) до дополнительного уровня противоугонной системы. Таким уровнем может быть блокировка запуска автомобиля в отсутствии BLE-устройства (или любого из предварительно зарегистрированных устройств хозяина с Bluetooth) в радиусе действия BLE-узла, находящегося в автомобиле.

Ниже рассмотрим ключевые особенности стека протоколов Bluetooth Low Energy и BLE-устройств, поставляемых BlueGiga.

Стек протоколов Bluetooth Low Energy

Структура стека

Как и классический стек протоколов Bluetooth, стек BLE состоит из двух основных частей: контроллера (Controller) и узла сети (Host). Контроллер включает в себя физический и канальный уровень и часто реализуется в виде системы-на-кристалле (СнК) с интегрированным беспроводным трансивером. Часть стека, именуемая узлом сети реализуется программно на микроконтроллере приложений и включает в себя функциональность верхних уровней: уровень логической связи (Logical Link Control — LLC), протокол адаптации (Adaptation Protocol — L2CAP), протокол атрибутов (Attribute Protocol — ATT), протокол атрибутов профилей устройств (Generic Attribute Profile — GATT), протокол обеспечения безопасности (Security Manager Protocol — SMP), протокол обеспечения доступа к функциям профиля устройств (Generic Access Profile (GAP). Взаимодействие между верхней и нижней частями стека осуществляется интерфейсом Host Controller Interface (HCI). Дополнительная функциональность прикладного уровня может быть реализована поверх уровня узла сети. На рисунке 1 представлена структура стека протоколов BLE [1, 3].

Рис. 1. Структура стека протоколов Bluetooth Low Energy (BLE) — а) и пакета данных BLE — б)

Несмотря на то, что некоторые функции контроллера BLE заимствованы у классического Bluetooth, они не совместимы между собой, т.е. устройство, поддерживающее только BLE (однорежимное устройство — single-mode device) не сможет взаимодействовать с устройством, поддерживающим только Bluetooth 2.x/3.0. Для осуществления взаимодействия между ними хотя бы одно из устройств должно поддерживать оба стека протоколов (двухрежимное устройство — dual-mode device).

Однорежимные устройства обладают наименьшим потреблением и в основном представляют собой конечные исполнительные устройства. Двухрежимные устройства предполагают возможность периодического получения энергии, располагаются на различных мобильных устройствах, а также могут функционировать и как обычные Bluetooth-устройства. Схема взаимодействия между однорежимными, двухрежимными устройствами и классическими Bluetooth-устройствами представлена на рисунке 2 [1, 4].

Рис. 2. Схема взаимодействия между однорежимными, двухрежимными устройствами и классическими Bluetooth-устройствами

Физический уровень

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

Для каналов объявления выделено три частотных канала в центре полосы, что минимизирует перекрытие с каналами 1, 6 и 11 стандарта IEEE 802.11. Остальные 37 каналов используются для обмена данными. Для снижения влияния помех, многолучевого распространения, а также снижения влияния соседних устройств при обмене данными происходит скачкообразное переключение частоты (рис. 3) [1].

Рис. 3. Соотношение частотных каналов BLE и каналов IEEE 802.11

Канальный уровень

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

Двунаправленный обмен между BLE-устройствами возможен только после установления соединения между ними. Создание нового соединения между двумя устройствами является асимметричной процедурой, в течение которой устройство-объявитель по каналам объявления сигнализирует о своей готовности к соединению, в то время как другое устройство (инициатор соединения) прослушивает данные каналы. Когда инициатор обнаруживает нужное устройство, он может послать запрос на установление соединения (Connection Request) объявителю, который устанавливает между ними соединение. С этого момента устройства могут осуществлять обмен по каналам данных. Пакеты, относящиеся к установленному соединению, будут отмечены сгенерированным случайным образом 32-битным кодом доступа.

Также как и в классическом варианте Bluetooth, в BLE для установленного соединения одно из устройств выступает в качестве ведущего (master), второе — ведомого (slave). В ходе процедуры установления соединения — инициатор и объявитель, соответственно. Ведущее устройство может поддерживать несколько соединений с ведомыми, в то время как ведомое устройство может иметь только одно подключение — к ведущему. Таким образом, BLE-устройство одновременно может принадлежать только одной пико-сети. В этом кроется еще одно отличие BLE от Bluetooth — в последнем случае ведомое устройство в свою очередь могло выступать в качестве ведущего устройства своей собственной пико-сети.

Для экономии энергии ведомое устройство по умолчанию находится в спящем состоянии, периодически просыпаясь для проверки наличия пакетов данных от ведущего. Ведущий определяет для своих ведомых устройств моменты времени, в которые ведомый просыпается для прослушивания канала, регулируя тем самым доступ устройств к среде передачи по схеме разделения времени (Time Division Multiple Access — TDMA). Ведущее устройство также задает ведомым схему переключения частотных каналов. Параметры соединения передаются в сообщении запроса на установление соединения и могут быть обновлены при необходимости (например при смене схемы переключения каналов для устранения перекрытия с частотными каналами других устройств).

После установления соединения физический канал передачи данных разделяется на неперекрывающиеся временные интервалы, называемые событиями соединения (connection events) или фреймами. В течение фрейма все пакеты передаются по одному частотному каналу. Каждый фрейм начинается с передачи пакета ведущим устройством. В том случае, если ведомое устройство получило пакет, оно должно послать пакет-подтверждение. В то же время подтверждения от ведущего устройства ведомому не требуется. Между двумя последовательными пакетами должен быть выдержан интервал времени не менее 150 мкс — т.н. межкадровый интервал (Inter Frame Space — IFS).

До тех пор, пока между ведущим и ведомым продолжается обмен пакетами, событие соединения (или фрейм обмена) считается открытым. В пакетах данных, в случае необходимости дальнейшего обмена, установлен бит More Data (MD). Если ни одно из устройств не имеет данных для передачи, событие соединения будет закрыто, и ведомое устройство уже не должно прослушивать канал до начала следующего фрейма. Другими причинами, приводящими к закрытию события соединения, являются два последовательно принятых пакета с ошибками, неверный адрес устройства в пакете. Для контроля битовых ошибок в пакете после поля данных следует поле 24-битной контрольной суммы.

Для нового события соединения ведущий и ведомый используют новый частотный канал, заданный в карте переключения каналов. Время между началом двух последовательных событий соединения задается параметром connInterval, является кратным 1,25 мс и может лежать в пределах от 7,5 мс до 4 с. Вторым важным параметром для пико-сети BLE является параметр connSlaveLatency, определяющий количество последовательных фреймов, в течении которых ведомое устройство не прослушивает канал и может на это время отключить трансивер. Данный параметр является целым числом в пределах от 0 до 499, которое не должно превышать контрольного интервала супервизора — параметр connSupervisionTimeout. Параметр connSupervisionTimeout может принимать значения в диапазоне от 100 мс до 32 с. Его назначение — обнаружение потери соединения с устройством из-за ухудшения качества канала связи или перемещения его за пределы досягаемости [3].

На канальном уровне для управления потоком данных действует механизм остановки и ожидания (stop-and-wait mechanism) на основе т.н. кумулятивного подтверждения, служащего одновременно и оповещением об ошибке. Заголовок каждого пакета, передаваемого по каналам данных, содержит два однобитных поля, называемых порядковым номером и следующим ожидаемым порядковым номером (Sequence Number (SN) и Next Expected Sequence Number (NESN) соответственно). SN идентифицирует пакет, тогда как NESN показывает, какой пакет ожидается от устройства, с которым установлено соединение. Если пакет устройством принят успешно, поле NESN в его следующем пакете будет увеличено, и такой пакет одновременно будет считаться пакетом подтверждения. В противном случае, если устройство обнаруживает ошибку (не сходится контрольная сумма), полю NESN в принятом пакете нельзя доверять, и устройство, принявшее такой пакет, повторяет отправку своего последнего пакета, что на стороне приемника в такой ситуации будет воспринято как сообщение об ошибке.

L2CAP

Протокол L2CAP в BLE является упрощенной и оптимизированной версией соответствующего протокола в Bluetooth 2.x/3.x. В BLE основной задачей L2CAP является мультиплексирование данных трех протоколов (ATT, SMP, Link Layer) для соединения канального уровня. Отвечает за установление логического соединения. Не производится сегментирования пакетов или сборки пакетов, т.к. максимальная полезная нагрузка L2CAP в BLE составляет 23 байта.

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

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

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

Клиент также может послать серверу команды на изменение значений атрибутов.

Протокол GATT определяет среду исполнения, используемую ATT для обнаружения сервисов и обмена характеристиками между устройствами. Характеристика в данном случае представляет собой набор данных, включающих в себя значения и свойства. Данные, относящиеся к сервисам и характеристикам, сохраняются в атрибутах.

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

Вопросы безопасности BLE

BLE предлагает несколько сервисов безопасности для защиты данных, передаваемых между парой соединенных устройств. Большинство из поддерживаемых сервисов могут быть описаны в терминах двух режимов: LE Security Mode 1 и LE Security Mode 2. Эти режимы обеспечивают сервисы безопасности на канальном уровне и уровне ATT, соответственно [3].

Канальный уровень BLE поддерживает шифрование и аутентификацию на основе алгоритма Cipher Block Chaining-Message Authentication Code (CCM) и блочного шифра AES-128. При использовании в соединении шифрования и аутентификации, к полезной нагрузке (PDU) добавляется четырехбайтное сообщение проверки целостности Message Integrity Check (MIC), после чего поля PDU и MIC шифруются.

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

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

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

Таблица 1. Сервисы и уровни безопасности, определенные в стеке протоколов BLE [3]

Режим Уровень
безопасности
Тип соединения
(Pairing)
Шифрование Проверка
целостности
Уровень стека
LE Security Mode 1 Уровень 1 Нет Нет Нет Канальный уровень (Link Layer)
Уровень 2 Без аутентификации Есть Есть
Уровень 3 Аутентификация Есть Есть
LE Security Mode 2 Уровень 1 Без аутентификации Нет Есть Уровень ATT
(ATT Layer)
Уровень 2 Аутентификация Есть Есть

Логическое соединение устройств (pairing) происходит в три этапа. На первом этапе соединенные на канальном уровне устройства объявляют свои доступные возможности ввода-вывода, и на основе их принимается решение о методе взаимодействия на втором этапе.

Целью второго этапа является генерация короткоживущего ключа (Short-Term Key — STK), который будет использован на третьем этапе для обеспечения безопасности передачи распространения ключевой информации. На втором этапе устройства первоначально договариваются о временном ключе (Temporary Key — TK) при помощи одного из методов:

Метод Out Of Band (передача вне полосы) предполагает передачу временного ключа по альтернативным каналам, например, используя NFC. В методе Passkey Entry ключ задает пользователь в виде последовательности из шести цифр. Когда применение обоих методов невозможно, используется метод Just Work, хотя он не поддерживает проверку аутентификаций, и не защищен от атаки типа «посредник» (Man In The Middle — MITM).

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

На третьем этапе каждая из конечных точек соединения может передать другой конечной точке до трех 128-битных ключей, называемых Long-Term Key (LTK), Connection Signature Resolving Key (CSRK) и Identity Resolving Key (IRK).

LTK используется для генерации 128-битного ключа для шифрования и аутентификации на канальном уровне, CSRK — для подписи данных на уровне ATT, а IRK — для генерации частных адресов.

Протокол управления безопасностью Security Manager Protocol (SMP), работающий поверх фиксированного канала уровня L2CAP, отслеживает выполнение всех трех этапов.

Уязвимым местом BLE на текущий момент является незащищенность ни одного из реализованных в нем методов установления соединения от пассивного прослушивания. Однако, в следующих версиях BLE планируется использование эллиптической криптографической кривой и алгоритма обмена открытыми ключами (алгоритм Диффи-Хэлмана).

Уровень GAP и профили приложений

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

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

Эксплуатационные характеристики BLE

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

Для устройств BLE потребление будет зависеть от роли устройства в соединении и параметрах соединения, в частности от connInterval, connSlaveLatency, connSupervisionTimeout, а также от качества связи.

Среднее энергопотребление узла в режиме ведомого в зависимости от величины connInterval представлено на рисунке 4 [3].

Рис. 4. Средний ток потребления BLE-устройства в режиме ведомого (узел построен на базе СнК CC2450, connSlaveLatency=0)

В [3] также представлены результаты теоретического анализа времени автономной работы BLE-устройства в качестве ведомого в зависимости от интервала следования событий связи connInterval и уровня битовых ошибок (BER) (рисунки 5 и 6, соотвестственно).

Рис. 5. Теоретические оценки времени автономной работы BLE-устройства на основе CC2540 (от батареи емкостью 230 мАч в режиме ведомого устройства при уровне ошибок равном 0 и максимальном значении connSlaveLatency)

Рис. 6. Теоретические оценки времени автономной работы BLE-устройства на основе CC2540
(от батареи емкостью 230 мАч в режиме ведомого устройства при различном уровне ошибок и различных значениях параметров connInterval и connSlaveLatency)

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

Сравнительные характеристики технологий BLE, Bluetooth, ZigBee, 6LoWPAN, Z-Wave представлены в таблице 2 [1, 3].

Таблица 2. Некоторые сравнительные характеристики технологий BLE, Bluetooth, ZigBee, 6LoWPAN, Z-Wave

3,6 кбайт ОЗУ 32…64 кбайт ПЗУ; 2…16 кбайт ОЗУ

Области применения BLE

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

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

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

Модули Bluetooth Low Energy компании BlueGiga

На данный момент BlueGiga предлагает серии BLE-устройств [5, 6]:

Модуль BT111

BT111 предназначен для приложений, в которых необходима работа и с классическими Bluetooth-устройствами, и с устройствами Bluetooth Low Energy, и представляет собой миниатюрный модуль поверхностного монтажа со встроенной антенной (рис. 7).

Рис. 7. Внешний вид двухрежимного BLE-модуля BT111

В основе BT111 лежит беспроводная система-на-кристалле CS8510 [7], содержащая Bluetooth-трансивер, 16-битный RISC-микроконтроллер с достаточно эффективной схемой управления энергопотреблением и распределением памяти. Ядро микроконтроллера при поддержке контроллера прерываний и таймера исполняет стек протоколов Bluetooth, а также отслеживает беспроводной интерфейс и интерфейс к хост-контроллеру. Встроенный в CS8510 LDO-регулятор позволяет модулю работать в диапазоне напряжений от 1,8 до 3,6 В.

CSR8510 дополнительно имеет SPI-, PCM- и USB (Full-speed 12 Мбит/с)-интерфейсы. Кроме того, доступны до четырех линий ввода-вывода, которые могут быть использованы в качестве линий индикаторов, в качестве входных линий, а также в режиме совместимости с Wi-Fi.

Помимо самой однокристальной системы CS8510 в состав BT111 входят: монопольная керамическая антенна, входной фильтр, EEPROM объемом 32 кбайта и кварцевый резонатор на 26 МГц. Структурная схема BT111 представлена на рисунке 8.

Рис. 8. Структурная схема BLE модуля BT111

Антенна обеспечивает усиление порядка 0,5 дБм, радиочастотный фильтр позволяет уменьшать уровень помех модуля. Встроенная EEPROM может быть использована для хранения настроек модуля, таких как выходная мощность передатчика, конфигурация периферийных интерфейсов, настройки и идентификаторы USB, адрес Bluetooth.

BT111 может работать совместно с Wi-Fi-устройствами. Для этого предусмотрено три режима совместимости:

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

В CS8510 56 кбайт оперативной памяти разделятся между кольцевыми буферами для голосовых данных или для пакетов данных для каждого из поддерживаемых активных соединений. Встроенная постоянная память объемом 5 Мбайт предназначена для хранения прошивки стека протоколов, настроек модуля и кода прикладных программ.

Модуль BLE112

Модуль BLE112 (рис. 9) является однорежимным BLE-модулем, предназначенным для сенсорных систем и BLE-аксессуаров с батарейным питанием. BLE112 поддерживает практически все возможности устройств BLE — беспроводная передача данных, поддержка стека протоколов BLE и ряда профилей BLE-устройств, дополнительно присутствует возможность хранения пользовательских приложений. Таким образом, возможна работа модуля BLE без внешнего контроллера.

Рис. 9. Внешний вид модуля BLE112

BLE112 отличает достаточно низкое энергопотребление и широкий диапазон напряжений питания. Так он может напрямую работать от 3 В батарейки типа «монета» или от пары батареек типа ААА. В режиме сна модуль потребляет только порядка 400 нА, переход в активный режим осуществляется за доли миллисекунд, а в режиме передачи ток потребления составляет около 27 мА (при выходной мощности 0 дБм).

BLE112 основан на BLE-процессоре от Texas Instruments СС2540 [8], и в дополнение к самому беспроводному процессору имеет встроенные кварцевые резонаторы на 32 МГц и на 32,678 КГц, обеспечивающие тактирование CC2540, согласующий фильтр и миниатюрную керамическую антенну. На печатной плате модуля предусмотрено также посадочное место для UFL-разъема, позволяющего подключать внешнюю антенну.

Структурная схема BLE112 представлена на рисунке 10.

Рис. 10. Структурная схема модуля BLE112

СС2450 содержит высокопроизводительный микроконтроллер архитектуры 8051 с 8 кбайт оперативной памяти и до 256 кбайт флеш-памяти с возможностью перепрограммирования самим устройством. Пятиканальный контроллер прямого доступа в память позволяет весьма эффективно организовать работу с периферийными устройствами и памятью, существенно экономя ресурсы процессорного ядра. Контроллер прерываний обслуживает до 18 каналов прерываний с четырьмя уровнями приоритета, включая прерывания от таймеров, периферийных устройств, линий ввода-вывода.

Набор периферийных устройств включает в себя:

Еще одним устройством, предлагаемым BlueGiga для приложений BLE, является USB-BLE модуль BLED112 (рис. 11). Сохраняя функциональность, аналогичную модулю BLE112 (за исключением возможностей ввода-вывода), он выполнен в формате USB-устройства и позволяет подключать другие BLE к персональному компьютеру. BLED112 может также выполнять роль виртуального COM-порта или USB-HID устройства.

Рис. 11. Внешний вид USB-BLE модуля BLED112

BLED112 может также быть полезен при отладке и демонстрации приложений, использующих стек протоколов Bluetooth Low Energy.

Программное обеспечение

BlueGiga предоставляет ряд инструментов и сред для разработки BLE-приложений, а также для настройки модулей и отладки встроенного программного обеспечения.

Программный интерфейс BGAPI TM совместно с библиотекой BGLib TM C-library позволяет достаточно легко и эффективно использовать ресурсы модулей BlueGiga при помощи внешнего хост-контроллера (рис. 12).

Рис. 12. Структурная схема программного обеспечения, предоставляемого BlueGiga

Программный пакет Profile Toolkit TM позволяет производить разработку и отладку пользовательских приложений для BLE-модулей.

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

Заключение

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

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

Литература

2. Johanna Nieminen. Connecting IPv6 capable Bluetooth Low Energy sensors with the Internet of Things// http://www.futureinternet.fi/seminar2012/Nieminen_IPv6_over_BTLE_300512.pdf

3. Carles Gomez, Joaquim Oller and Josep Paradells. Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology. http://www.mdpi.com/1424-8220/12/9/11734

6. Виктор Алексеев. Новые модули Bluetooth 4.0 серии BLE производства Bluegiga.//Беспроводные технологии. 2011. №2. С. 16 — 22.

Источник

Читайте также:  при какой температуре погибает ногтевой грибок
Сказочный портал