Generic Access Profile
Generic Access Profile (GAP, общий профиль доступа) — это базовая спецификация в стеке протоколов Bluetooth, определяющая общие правила и процедуры для обнаружения устройств, установления соединений, управления безопасностью и уведомления пользователей. GAP является обязательным профилем для всех устройств Bluetooth, независимо от их класса (классический Bluetooth или Bluetooth Low Energy), и служит фундаментом для работы всех остальных профилей и приложений.
История и стандартизация
Профиль GAP был впервые определён в спецификации Bluetooth версии 1.0B, опубликованной в 1999 году. Его разработка велась в рамках Bluetooth Special Interest Group (SIG), консорциума, объединяющего производителей электроники, разработчиков программного обеспечения и телекоммуникационные компании. Основной целью создания GAP было обеспечение совместимости между устройствами разных производителей на самом низком уровне — уровне обнаружения и подключения.
С появлением Bluetooth 4.0 (2010 год), который ввёл технологию Bluetooth Low Energy (BLE), GAP был существенно переработан. Для BLE была разработана отдельная, но совместимая по концепции версия GAP, учитывающая особенности энергоэффективной работы: короткие пакеты данных, длительные периоды сна и асинхронные режимы связи. В последующих версиях (4.2, 5.0, 5.1, 5.2, 5.3, 5.4) GAP дополнялся новыми режимами, ролями и процедурами, например, поддержкой периодического вещания (Periodic Advertising) и синхронизированных каналов (Isochronous Channels).
Основные функции и роли GAP
GAP определяет, как устройства Bluetooth взаимодействуют друг с другом на этапе обнаружения и установления связи. Ключевые функции профиля включают:
- Управление режимами обнаружения: Устройство может быть видимым (discoverable), ограниченно видимым (limited discoverable) или невидимым (non-discoverable) для других устройств.
- Управление режимами подключения: Устройство может быть в режиме ожидания (standby), подключения (connectable) или вещания (broadcasting).
- Управление безопасностью: Определяет процедуры аутентификации, шифрования и связывания (pairing) устройств.
- Уведомление пользователя: Определяет, как устройство сообщает пользователю о событиях (например, о входящем соединении или завершении сопряжения).
Роли устройств в GAP
В рамках GAP устройства Bluetooth могут принимать одну из нескольких ролей, которые определяют их поведение в сети. Для классического Bluetooth и BLE роли различаются.
Для классического Bluetooth (BR/EDR):
- B (Broadcaster): Устройство, которое только передаёт данные (вещает), но не принимает входящие соединения. Пример — Bluetooth-маячок.
- O (Observer): Устройство, которое только слушает (сканирует) вещательные каналы, но не инициирует соединения. Пример — сканер Bluetooth-устройств.
- C (Central): Устройство, которое инициирует соединение с другими устройствами. Обычно это главное устройство (master) в пикосети. Пример — смартфон.
- P (Peripheral): Устройство, которое принимает входящие соединения. Обычно это подчинённое устройство (slave) в пикосети. Пример — Bluetooth-гарнитура.
Для Bluetooth Low Energy (BLE):
- Broadcaster: Устройство, которое только передаёт рекламные пакеты (advertising packets). Не может быть подключено. Пример — BLE-маячок (iBeacon, Eddystone).
- Observer: Устройство, которое только сканирует рекламные пакеты. Не может инициировать соединение. Пример — BLE-сканер.
- Central: Устройство, которое инициирует соединение с периферийным устройством. Обычно это главное устройство (master) в сети BLE. Пример — смартфон.
- Peripheral: Устройство, которое отправляет рекламные пакеты и может быть подключено центральным устройством. Обычно это подчинённое устройство (slave) в сети BLE. Пример — фитнес-браслет.
Процедуры и режимы GAP
GAP определяет набор процедур, которые устройства выполняют для взаимодействия.
Обнаружение устройств
Процесс обнаружения включает два этапа:
- Рекламная передача (Advertising): Периферийное устройство (Peripheral) периодически отправляет короткие рекламные пакеты, содержащие идентификатор устройства (например, MAC-адрес) и, возможно, имя устройства или другую информацию.
- Сканирование (Scanning): Центральное устройство (Central) сканирует эфир на наличие рекламных пакетов. При обнаружении пакета оно может запросить дополнительную информацию (например, полное имя устройства) через процедуру сканирования (Scan Request/Scan Response).
Установление соединения
После обнаружения устройства центральное устройство может инициировать соединение. Процедура включает:
- Запрос на соединение (Connection Request): Центральное устройство отправляет периферийному устройству запрос на соединение, указывая параметры соединения (интервал соединения, задержка, тайм-аут).
- Подтверждение соединения: Периферийное устройство принимает запрос, и между устройствами устанавливается логический канал связи.
Управление безопасностью
GAP определяет процедуры обеспечения безопасности, включая:
- Сопряжение (Pairing): Процесс обмена ключами шифрования между двумя устройствами. В BLE существует три фазы сопряжения (Phase 1, 2, 3), которые могут включать аутентификацию через PIN-код или числовое сравнение.
- Связывание (Bonding): Процесс сохранения ключей шифрования после разрыва соединения, что позволяет устройствам быстро восстановить защищённое соединение в будущем без повторного ввода PIN-кода.
- Шифрование (Encryption): Защита передаваемых данных с использованием ключей, полученных в процессе сопряжения.
Режимы работы
GAP определяет несколько режимов работы для устройств, которые влияют на их поведение при обнаружении и подключении:
- Режим необнаружимого (Non-discoverable mode): Устройство не отправляет рекламные пакеты и не отвечает на запросы сканирования. Оно невидимо для других устройств.
- Режим ограниченного обнаружения (Limited discoverable mode): Устройство отправляет рекламные пакеты только в течение ограниченного времени (например, 30 секунд). Используется для временного обнаружения, например, при включении режима сопряжения.
- Режим общего обнаружения (General discoverable mode): Устройство постоянно отправляет рекламные пакеты и доступно для обнаружения в любое время.
- Режим неподключения (Non-connectable mode): Устройство отправляет рекламные пакеты, но не принимает входящие запросы на соединение. Используется для маячков.
- Режим подключения (Connectable mode): Устройство отправляет рекламные пакеты и может принимать входящие запросы на соединение.
Взаимосвязь с другими профилями Bluetooth
GAP является базовым профилем, на котором строятся все остальные профили Bluetooth. Например:
- Generic Attribute Profile (GATT): Определяет структуру данных и методы обмена данными после установления соединения. GAP отвечает за установление соединения, а GATT — за передачу данных внутри этого соединения.
- Serial Port Profile (SPP): Эмулирует последовательный порт RS-232. GAP обеспечивает обнаружение и подключение устройств SPP.
- Hands-Free Profile (HFP): Используется для гарнитур. GAP обеспечивает сопряжение и подключение гарнитуры к телефону.
- Health Device Profile (HDP): Используется в медицинских устройствах. GAP обеспечивает безопасное обнаружение и подключение.
Применение
GAP используется во всех устройствах Bluetooth, включая:
- Смартфоны и планшеты: Для обнаружения и подключения гарнитур, фитнес-трекеров, клавиатур, мышей, автомобильных систем.
- Носимые устройства: Фитнес-браслеты, умные часы, наушники — все они используют GAP для сопряжения с телефоном.
- Умные колонки и IoT-устройства: Для обнаружения и подключения к домашней сети.
- Медицинское оборудование: Глюкометры, тонометры, пульсоксиметры — для передачи данных на смартфон.
- Промышленные устройства: Датчики, контроллеры, системы мониторинга — для беспроводной связи в условиях производства.
Критика и ограничения
Несмотря на широкое распространение, GAP имеет ряд ограничений:
- Энергопотребление: Постоянное сканирование и рекламная передача могут потреблять значительное количество энергии, особенно в классическом Bluetooth. В BLE эта проблема частично решена за счёт коротких интервалов передачи и длительных периодов сна.
- Безопасность: Процедуры сопряжения, особенно в ранних версиях Bluetooth, были уязвимы для атак (например, атака «человек посередине»). В BLE 4.2 и выше были введены более безопасные методы (LE Secure Connections).
- Совместимость: Разные производители могут по-разному реализовывать процедуры GAP, что иногда приводит к проблемам совместимости между устройствами разных брендов.
- Сложность настройки: Для конечного пользователя процесс сопряжения может быть неинтуитивным, особенно при использовании устройств с ограниченным интерфейсом (например, без экрана).
Источники
- Bluetooth Core Specification, Version 5.4, Volume 1, Part A: Architecture.
- Bluetooth Core Specification, Version 5.4, Volume 3, Part C: Generic Access Profile.
- Bluetooth SIG. «Bluetooth Core Specification 5.4». 2023.
- «Bluetooth Low Energy: The Developer's Handbook» by Robin Heydon. Prentice Hall, 2012.
- «Getting Started with Bluetooth Low Energy» by Kevin Townsend, Carles Cufí, Akiba, Robert Davidson. O'Reilly Media, 2014.
- «Bluetooth Essentials for Programmers» by Albert Huang, Larry Rudolph. Cambridge University Press, 2007.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →