Устройство Bluetooth с низким энергопотреблением (BLE)

Реализация службы Google Fast Pair Service (GFPS) для устройств BLE совместима со спецификацией Bluetooth Core версии 4.2 или более поздней версии.

Следующее дополнение к спецификации Fast Pair обеспечит поддержку только устройств Low Energy (LE) и Low Energy Audio (LEA) в GFPS.

Уровни соответствия

Ключевые слова «должен», «должен», «будет», «должен», «может» и «может», упомянутые в спецификации, поясняются ниже:

Срок Описание
должен требуется — используется для определения требований.
должен используется для выражения:
естественное следствие ранее заявленного обязательного требования
ИЛИ
неоспоримое утверждение факта (которое всегда верно независимо от обстоятельств).
воля это правда, что - используется только в констатациях фактов.
должен рекомендуется - используется для обозначения того, что из нескольких возможностей один рекомендуется как особенно подходящий, но не обязательный.
может разрешено — используется для разрешения опций.
может может – используется для связи высказывания причинно-следственным образом.

Характеристика сопряжения на основе ключей

Сообщение от Искателя Поставщику

type 0x00 характеристики сопряжения на основе ключей использует бит 4, чтобы указать, поддерживает ли Seeker спецификацию устройства BLE , и использует бит 5, чтобы указать, поддерживает ли Seeker LE Audio .

Октет Тип данных Описание Ценить Обязательный?
0 uint8 Тип сообщения 0x00 = запрос на сопряжение на основе ключа Обязательный
1 uint8 Флаги
  • Бит 0 (MSB): устарел и игнорируется Seeker.
  • Бит 1: 1, если Искатель запрашивает, чтобы Поставщик инициировал соединение, и этот запрос содержит адрес BR/EDR Искателя. 0 иначе.
  • Бит 2: 1, если Искатель запрашивает, чтобы Поставщик уведомил существующее имя. 0 иначе.
  • Бит 3: 1, если это для записи ключа учетной записи задним числом . 0 иначе.
  • Бит 4: 1, если Seeker поддерживает спецификацию устройства BLE . 0 иначе.
  • Бит 5: 1, если Seeker поддерживает LE Audio. 0 иначе.
  • Биты 6–7 зарезервированы для использования в будущем и игнорируются.
варьируется Обязательный
2–7 uint48 Или:
  • Текущий адрес BLE провайдера
  • Идентификатор поставщика
варьируется Обязательный
8 - 13 uint48 Адрес BR/EDR Искателя варьируется Присутствует, только если установлен бит флагов 1 или 3.
н - 15 Случайное значение (соль) варьируется Обязательный

Сообщение от Поставщика Искателю

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

Октет Тип данных Описание Ценить
0 uint8 Тип сообщения 0x02 = Расширенный ответ на сопряжение на основе ключей
1 uint8 Флаги
  • Бит 0 (старший бит): 1, если поставщиком является устройство только LE, в противном случае — 0. Если бит 0 установлен в 1, Искатель будет считать, что Бит 1 установлен в 1.
  • Бит 1: 1, если провайдер предпочитает соединение LE, в противном случае 0.
  • Бит 2: 1, если тип второго адреса — «Случайный», 0 — если «Общий».
  • Биты 3–7 зарезервированы для использования в будущем и игнорируются.
варьируется
2 uint8 Количество адресов Провайдера
(в текущей версии это число 1 или 2, потому что нам нужно изменить режим блочного шифрования на AES-CTR, если число >= 3)
варьируется
3–8 или
3–14
  • Первый адрес должен быть идентификационным адресом первичного устройства и может быть связан, если предпочтительным является соединение BR/EDR.
  • Второй адрес должен быть связываемым адресом вторичного устройства, если вторичное устройство доступно.
варьируется
9–15 или 15 Случайное значение (соль) варьируется

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

  • Когда бит 4 равен 0, поставщик должен игнорировать бит 5 и ответить в формате type 0x01
  • Когда бит 4 равен 1,
    • Для поставщика только LE он должен ответить type 0x02 , чтобы указать предпочтение соединения LE.
    • Для поставщика двухрежимного режима он может ответить type 0x02 , чтобы указать предпочтение соединения BR/EDR или LE.
  • Сведения о случаях использования двухрежимного поставщика LE Audio (LEA) см. в разделе «Пример: сопряжение с двухрежимным поставщиком LEA».

Характеристика потока сообщений PSM (мультиплексор службы протокола)

Для поддержки потока сообщений для устройств BLE Fast Pair установит и будет поддерживать канал BLE L2CAP для отправки и получения сообщений. Сервер Fast Pair L2CAP должен реализовывать управление потоком на основе кредитов LE.

Эта характеристика позволяет Seeker считывать значение PSM, а затем устанавливать безопасное соединение L2CAP по значению PSM.

Характеристики службы быстрого сопряжения Зашифрованный Разрешения UUID
Поток сообщений PSM Да Читать FE2C1239-8366-4814-8EB0-01DE32100BEA
Октет Тип данных Описание Ценить
0 uint8 Состояние
  • 0x00 = Неизвестно. FP Seeker повторит попытку несколько раз
  • 0x01 = Готов к подключению
  • 0x02 = Недоступно. На этот раз FP Seeker не будет использовать этот компонент для подключения.
варьируется
1 - 2 uint16 Значение PSM должно находиться в диапазоне от 0x80 до 0xFF. варьируется

Примечание. В TWS есть два компонента: первичный и вторичный. Роли этих компонентов взаимозаменяемы в определенных условиях. Предполагая, что A является основным компонентом, а B — вторичным компонентом, из-за разрядки батареи компонента A компонент B должен взять на себя роль основного компонента, и этот сценарий называется role switch .

После role switch , если провайдер не может обработать поток сообщений Fast Pair, он должен заранее отключить существующее соединение L2CAP. Затем искатель быстрого соединения может повторно установить соединение потока сообщений L2CAP с новым основным компонентом.

Дополнительная характеристика ключа доступа

Эта характеристика предназначена для обеспечения защиты MITM дополнительных компонентов.

Защита MITM ложного члена CSIS

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

Определение характеристики

Характеристики обслуживания быстрой пары Зашифрованный Разрешение UUID
Дополнительный ключ доступа Да Читайте, пишите, сообщайте FE2C123A-8366-4814-8EB0-01DE32100BEA

Сообщения

Формат сообщения применяется для операций чтения, записи и уведомления.

Зашифрованный формат данных

Зашифрованные данные отправляются с использованием соединения Fast Pair GATT.

Октет Тип данных Описание Ценить
0-15 uint128 Зашифрованный дополнительный блок ключа доступа варьируется
Формат необработанных данных

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

Октет Тип данных Описание Ценить
0 uint8 Тип сообщения один из
  • 0x00 = ключ доступа Искателя
  • 0x01 = пароль провайдера
1-3 uint24 6-значный ключ доступа варьируется
4-9 uint48 Адрес целевого компонента соединения варьируется
10 uint8 Код состояния, используется только при операции чтения. Один из
  • 0x00 = Успех
  • 0x01 = Ожидание. Искатель FP повторяет попытку до истечения времени ожидания
  • 0x02 = Сбой. FP Seeker остановить повторную попытку
11-15 Случайное значение (соль) варьируется

Первичный (первый связанный компонент) является мостом между Fast Pair Seeker и дополнительными связующими компонентами. Характеристика должна соответствовать рекомендациям:

  • При получении запроса на запись от Fast Pair Seeker Провайдер должен
    • Установите адрес подключаемого компонента
    • Отправьте ключ доступа к привязываемому компоненту
    • Установите код состояния на Ожидание, 0x01.
  • При получении любого запроса на чтение до получения ключа доступа от связываемого компонента Поставщик должен вернуть сообщение с
    • Ключ доступа, любое значение
    • Адрес приклеиваемого компонента
    • Код состояния ожидания, 0x01
  • Прежде чем провайдер отправит уведомление в Fast Pair Seeker, он устанавливает результат запроса на чтение с помощью
    • Ключ доступа к приклеиваемому компоненту
    • Адрес приклеиваемого компонента
    • Код статуса успеха, 0x00
  • Если какая-либо неисправимая ошибка на стороне Поставщика, установите результат
    • Ключ доступа, любое значение
    • Адрес приклеиваемого компонента
    • Код состояния неисправности, 0x02

Дополнительные сведения см. на диаграмме MITM 1 и диаграмме MITM 2 .

Требования к устройству LE

ЛЕ Реклама

В режиме обнаружения или режиме отсутствия обнаружения Поставщик должен использовать RPA для объявления данных FastPair.

Возможность склеивания

Для устройств с поддержкой LE Seeker должен создать связь с существующим соединением LE. После прохождения проверки соединения на основе ключа быстрого соединения поставщик должен разрешить соединение с RPA и установить для возможности ввода-вывода значение Display YesNo для проверки ключа быстрого соединения.

Требования к устройствам LEA

ЛЕА Реклама

Для устройств с двойным режимом: для режима обнаружения Поставщик должен рекламировать данные быстрого соединения с идентификационным адресом. В режиме, недоступном для обнаружения, Поставщик должен объявлять данные Fast Pair с помощью RPA. Настоятельно рекомендуется использовать устаревшую рекламу (BT 4.2) для поддержки старых устройств в целях обратной совместимости. Изменение IRK требуется при каждом возврате устройства к заводским настройкам.

Для устройств без двухрежимного режима: для режима обнаружения или режима отсутствия обнаружения Поставщик должен использовать расширенную рекламу (BT 5.0) с RPA для объявления данных FastPair.

Объявление с возможностью подключения LE, содержащее данные службы FP, должно включать CAS UUID в соответствии с требованиями профиля адаптера Bluetooth (BAP 1.0.1) и общего аудиопрофиля . Для необнаружимой рекламы, если в устаревшей рекламе недостаточно места из-за включения данных о батарее и SASS, в этом случае обязательно включить CAS UUID в ответ на сканирование.

Возможность соединения LEA

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

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

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

Внутренняя связь используется для Initial Pair и Subsequent Pair

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

Время изменить возможности ввода-вывода

  • Измените возможность ввода-вывода на DisplayДаНет, когда процедура сопряжения на основе ключей пройдена.
    • Если устройство состоит из нескольких компонентов, для всех компонентов должно быть установлено значение DisplayДаНет.
    • Единственным исключением, при котором Поставщик не должен изменять возможность ввода-вывода на DisplayДаНет, является Retroactive Pair , у которой бит 3 запроса на сопряжение на основе ключа установлен в 1, см. Сообщение от Искателя Поставщику.
  • Измените возможности ввода-вывода на настройки по умолчанию.
    • Первоначальное сопряжение
      • Если соединение LE разорвано, завершите сеанс быстрого соединения.
      • Если после подключения основного устройства не будет получен дополнительный запрос на запись ключа доступа в течение 15 секунд, завершите сеанс быстрого соединения.
      • Если после получения дополнительного запроса на запись ключа доступа подключаемый компонент не подключается в течение 15 секунд, завершите сеанс быстрого соединения.
      • Если после соединения всех компонентов в течение 15 секунд не будет запроса на запись ключа учетной записи, завершите сеанс быстрого соединения.
      • После получения запроса на запись ключа учетной записи установите тайм-аут 15 секунд для завершения сеанса быстрого соединения.
    • Последующее сопряжение
      • Если соединение LE разорвано, завершите сеанс быстрого соединения.
      • Если после подключения основного устройства не будет получен дополнительный запрос на запись ключа доступа в течение 15 секунд, завершите сеанс быстрого соединения.
      • Если после получения дополнительного запроса на запись ключа доступа подключаемый компонент не подключается в течение 15 секунд, завершите сеанс быстрого соединения.
      • Когда все компоненты будут соединены, завершите сеанс быстрого соединения.

Скрыть индикацию пользовательского интерфейса

Если гарнитура не готова к сопряжению, Поставщик должен использовать type 0b0010 чтобы установить индикацию скрытия пользовательского интерфейса для данных ключа учетной записи, чтобы сообщить Искателю не показывать пользовательский интерфейс последующего сопряжения (см. Рекламные полезные данные: Данные учетной записи быстрого сопряжения ).

Требования к аудиоустройству LE

Требования Bluetooth

См . рекомендации по гарнитуре Android, LE Audio .

Поддержка CTKD

Для двухрежимного устройства CTKD от LE до BR/EDR является обязательным и соответствует требованиям BAP .

Целевое объявление

Периферийное устройство должно использовать целевое объявление для запроса соединения от сопряженного центрального устройства. Целевые объявления определены в BAP и CAP для управления соединениями в соответствии с таблицей 8.4 CAP 1.0 (p48/58).

Поддержка сервера GATT ETT

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

Если поставщик представляет собой не одно устройство, а скоординированный набор с реализацией CSIP , чтобы уменьшить количество раз, требующих обнаружения служб, и ускорить соединение, поставщик должен реализовать кэширование GATT, определенное в Bluetooth 5.1.

Требования к быстрому соединению

ЛЕ Реклама

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

Видимость услуг ГАТТ

База данных GATT должна быть одинаковой для всех транспортных соединений LE GATT. Служба LE Audio (0x184E) должна быть включена в базу данных GATT для соединений Fast Pair.

Пример: Сопряжение с поставщиком двойного режима LEA

Сценарий 1. Когда Seeker не поддерживает LEA

Поставщик должен иметь обратную совместимость с Seeker, который не поддерживает LEA.

Компоненты
  • Поставщик: A2DP/HFP/LEA
  • Искатель: A2DP/HFP
Ожидаемое поведение для начальной пары/последующей пары
  • Поставщик объявляет данные службы Fast Pair (0xFE2C) с идентификационным адресом (начальным) или RPA (последующим).
    • Используйте устаревшую рекламу
  • Искатель получает рекламу Провайдера с идентификационным адресом для первоначального или RPA для последующего сопряжения.
  • Искатель отправляет запрос на соединение на основе ключа
    • Бит флага 5 запроса на сопряжение на основе ключа установлен на 0.
  • Поставщик отправляет ответ на соединение на основе ключей с публичным адресом одним из следующих способов:
    • Если используется тип сообщения 0x01, адрес должен быть общедоступным.
    • Если используется тип сообщения 0x02
      • Бит-0 должен быть 0
      • Бит-1 должен быть 0
      • Адрес должен быть публичным
  • Искатель создает связь с транспортом BR/EDR
    • Для возможностей ввода-вывода установлено значение Display YesNo для BR/EDR.
  • Искатель и Провайдер выполняют процедуру проверки пароля Fast Pair.

Сценарий 2. Когда Искатель поддерживает LEA

Компоненты
  • Поставщик
    • Поддержка A2DP/HFP/LEA
    • Однокомпонентный
  • Искатель
    • ПоддержкаA2DP/HFP/LEA
Ожидаемое поведение для начальной пары/последующей пары
  • Поставщик объявляет данные службы Fast Pair (0xFE2C) с идентификационным адресом (начальным) или RPA (последующим).
    • Используйте устаревшую рекламу
  • Искатель отправляет запрос на соединение на основе ключа
    • Бит флага 5 запроса на сопряжение на основе ключа установлен на 1.
  • Поставщик отправляет ответ на соединение на основе ключей с типом сообщения 0x02.
    • Бит-0 должен быть 0
    • Бит-1 должен быть 1
    • Адрес является идентификационным адресом.
  • Искатель создает связь с существующим соединением LE на транспорте LE.
    • Направление CTKD — от LE до BR/EDR.
    • Возможности ввода-вывода установлены на Display YesNo для LE.
  • Искатель и Провайдер выполняют процедуру проверки пароля Fast Pair.

Сценарий 3 — когда Seeker поддерживает LEA и CSIP.

Компоненты
  • Поставщик
    • Поддержка A2DP/HFP/LEA
    • Несколько компонентов
      • Первичный компонент: BR/EDR/LE.
      • Вторичный компонент предназначен только для LE.
  • Искатель
    • Поддержка A2DP/HFP/LEA
Ожидаемое поведение для начальной пары/последующей пары
  • Основной компонент объявляет данные службы Fast Pair (0xFE2C) с идентификационным адресом (начальным) или RPA (последующим).
    • Используйте устаревшую рекламу
  • Искатель отправляет запрос на сопряжение на основе ключа основному компоненту.
    • Бит флага 5 запроса на сопряжение на основе ключа установлен на 1.
  • Основной компонент отправляет ответ на соединение на основе ключей с типом сообщения 0x02.
    • Бит-0 должен быть 0
    • Бит-1 должен быть 1
    • Адрес указан ниже:
      • Первый адрес — это идентификационный адрес основного компонента.
      • Второй адрес — это связываемый адрес для вторичного компонента, второй компонент также использует этот адрес для объявления CSIP.
  • Искатель создает связь с основным компонентом существующего соединения LE.
    • Направление CTKD — от LE до BR/EDR.
    • Возможности ввода-вывода установлены на Display YesNo для LE.
  • Искатель создает связь со вторичным компонентом, адрес которого взят из расширенного ответа на соединение на основе ключей.
    • Возможности ввода-вывода должны быть DisplayДаНет, в противном случае отклоните запрос на сопряжение.
  • Искатель и Поставщик выполняют процедуру защиты MITM для сопряжения вторичного компонента, Поставщик должен реализовать в обоих сценариях.
  • Искатель ждет, пока не соединится со вторичным компонентом.

Последовательная диаграмма для MITM

В этом сеансе описывается последовательность процедуры защиты MITM.

Получить ключ доступа от компонента, подключаемого посредством уведомления.

Получите ключ доступа от компонента, подключаемого при чтении.

Известная проблема

FP for LEA оптимизирован для работы с Android V.

И наоборот, мы столкнулись с многочисленными проблемами с гарнитурами, которые поддерживают LEA, но не имеют правильной реализации Fast Pair over LEA (т. е. только Fast Pair over Classic). В частности, например, когда RPA поставщика не генерируется с помощью правильного ключа разрешения идентификации (IRK), и адрес не может быть разрешен. Хотя нам не удалось протестировать полный список конфигураций гарнитуры, наше ограниченное тестирование выявило различные проблемы, в том числе отсутствие отображения уведомлений о заряде батареи в наушниках, отсутствие функции переключения звука (SASS), широко распространенные начальные и последующие сбои сопряжения и многое другое.

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