Устройство 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 | Флаги
| варьируется | Обязательный |
2–7 | uint48 | Или:
| варьируется | Обязательный |
8 - 13 | uint48 | Адрес BR/EDR Искателя | варьируется | Присутствует, только если установлен бит флагов 1 или 3. |
н - 15 | Случайное значение (соль) | варьируется | Обязательный |
Сообщение от Поставщика Искателю
Когда бит 4 запроса установлен, новый type 0x02
для характеристики сопряжения на основе ключей может использоваться для предоставления искателю дополнительных возможностей соединения.
Октет | Тип данных | Описание | Ценить |
---|---|---|---|
0 | uint8 | Тип сообщения | 0x02 = Расширенный ответ на сопряжение на основе ключей |
1 | uint8 | Флаги
| варьируется |
2 | uint8 | Количество адресов Провайдера (в текущей версии это число 1 или 2, потому что нам нужно изменить режим блочного шифрования на AES-CTR, если число >= 3) | варьируется |
3–8 или 3–14 |
| варьируется | |
9–15 или 15 | Случайное значение (соль) | варьируется |
Поставщик, который поддерживает спецификацию устройства BLE, должен прочитать бит 4 и бит 5, чтобы понять возможности искателя.
- Когда бит 4 равен 0, поставщик должен игнорировать бит 5 и ответить в формате
type 0x01
- Когда бит 4 равен 1,
- Для поставщика только LE он должен ответить
type 0x02
чтобы указать предпочтение соединения LE. - Для поставщика двойного режима он может ответить
type 0x02
чтобы указать предпочтение соединения BR/EDR или LE.
- Для поставщика только 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 | Состояние
| варьируется |
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 | Тип сообщения | один из
|
1-3 | uint24 | 6-значный ключ доступа | варьируется |
4-9 | uint48 | Адрес целевого компонента соединения | варьируется |
10 | uint8 | Код состояния, используется только при операции чтения. | Один из
|
11-15 | Случайное значение (соль) | варьируется |
Первичный (первый связанный компонент) является мостом между быстрым поиском пар и дополнительными связующими компонентами. Характеристика должна соответствовать рекомендациям:
- При получении запроса на запись от 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 дополнительных компонентов. Основной связанный компонент должен обрабатывать доставку сообщений между Fast Pair Seeker и его остальными компонентами.
Внутренняя связь используется для 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 для других контактов.
Надежное кэширование GATT (настоятельно рекомендуется)
Если поставщик представляет собой не одно устройство, а скоординированный набор с реализацией CSIP , чтобы уменьшить количество раз, требующих обнаружения служб, и ускорить соединение, поставщик должен реализовать кэширование GATT, определенное в Bluetooth 5.1.
Требования к быстрому соединению
ЛЕ Реклама
В режиме обнаружения или режиме отсутствия обнаружения, если устройство состоит из нескольких компонентов, данные быстрого соединения должны объявляться основным компонентом. Если устройство не готово к последующему сопряжению, вторичный компонент может объявить данные быстрого сопряжения для расширенных функций. см . «Скрыть индикацию пользовательского интерфейса» .
Видимость услуг ГАТТ
База данных GATT должна быть одинаковой для всех транспортных соединений LE GATT. Служба LE Audio (0x184E) должна быть включена в базу данных GATT соединения Fast Pair.
Пример: Сопряжение с поставщиком двойного режима LEA
Сценарий 1 — Когда Искатель не поддерживает 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 YesNo, в противном случае отклоните запрос на сопряжение.
- Искатель и Поставщик выполняют процедуру защиты MITM для сопряжения вторичного компонента, Поставщик должен реализовать в обоих сценариях.
- Искатель ждет, пока не соединится со вторичным компонентом.
Последовательная диаграмма для MITM
Целью данного сеанса является описание последовательности процедуры защиты MITM.
Получить ключ доступа от компонента, подключаемого посредством уведомления.
Получите ключ доступа от компонента, подключаемого при чтении.
Известная проблема
FP для LEA оптимизирован для работы с Android V (Android 15).
И наоборот, мы столкнулись с многочисленными проблемами с гарнитурами, которые поддерживают LEA, но не имеют правильной реализации Fast Pair over LEA (т. е. только Fast Pair over Classic). В частности, например, когда RPA поставщика не генерируется с помощью правильного ключа разрешения идентификации (IRK), и адрес не может быть разрешен. Хотя нам не удалось протестировать полный список конфигураций гарнитуры, наше ограниченное тестирование выявило различные проблемы, в том числе отсутствие отображения уведомлений о заряде батареи в наушниках, отсутствие функции переключения звука (SASS), широко распространенные начальные и последующие сбои сопряжения и многое другое.
Поэтому мы настоятельно рекомендуем партнерам внедрить спецификацию Fast Pair-LEA как для новых устройств, так и для существующих устройств (посредством беспроводных обновлений), которые поддерживают два режима.