Конфигурация

Роли

Профиль определяет две роли: Fast Pair Seeker и Fast Pair Provider . Seeker обычно представляет собой телефон, который ищет устройство для сопряжения. Провайдер — это устройство, которое объявляет о своем присутствии и готовности к сопряжению (например, обнаруживаемая пара наушников).

Fast Pair Seeker должен использовать роль GAP Central. Провайдер Fast Pair должен использовать роль периферийного устройства GAP.

Обнаружение устройства

Чтобы облегчить обнаружение устройства, провайдер Fast Pair должен рекламировать полезную нагрузку, указывающую на поддержку службы Google Fast Pair (с данными, как описано ниже). Искатель Fast Pair должен периодически сканировать и наблюдать за наличием рекламных кадров Fast Pair Provider и предпринимать действия в случае заинтересованности.

Идентификатор модели

Каждая модель Provider имеет 24-битный идентификатор модели, который предоставляется Google во время регистрации модели .

Мощность передачи

Устройства провайдера должны рекламироваться с низкой мощностью передачи ( TxPower ), чтобы ограничить воздействие рекламируемого устройства. Однако мощность должна быть достаточно высокой, чтобы реклама была видна с любого телефона на расстоянии не менее 1 метра.

Чтобы определить близость, искатель Fast Pair должен знать мощность передачи Fast Pair Provider. Для целей этого профиля TxPower определяется как мощность принятого сигнала в источнике (0 метров), измеренная в дБм (это то же самое, что и Eddystone ).

Это измеренное значение должно быть передано одним из следующих способов:

Включено в Рекламную запись
Устройство включает в себя тип данных Tx Power Level , там же. , § 1.5, в своем объявлении.
Предоставляется при регистрации модели
Производитель предоставляет Google мощность передачи и модель устройства, используемого для ее измерения, во время регистрации модели.
Устройство должно поддерживать постоянную мощность передачи для всех трансляций при использовании этой опции, чтобы измерения расстояния были точными.

Ключи: пара открытого/закрытого ключа защиты от спуфинга

После регистрации модели вместе с идентификатором модели Google распространяет 256-битный закрытый ключ защиты от спуфинга (целое число в [1,n–1] на эллиптической кривой secp256r1). Этот ключ должен храниться на устройстве провайдера и в идеале храниться внутри элемента безопасности ( SE ). Обратите внимание, что Secure Element настоятельно рекомендуется — в его отсутствие нет никакой гарантии, что злоумышленники не смогут подделать роль провайдера, потому что может произойти утечка закрытого ключа. Эта утечка ключа открывает возможность атаки «человек посередине»; поэтому при обнаружении олицетворения или злоупотребления функции Fast Pair, использующие этот ключ, могут быть отключены (например, уведомление «Нажмите для сопряжения», когда провайдер находится в режиме сопряжения).

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

Ключи: список ключей учетной записи

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

Список должен иметь возможность хранить не менее пяти ключей (то есть для этого списка должно быть выделено не менее 80 байтов). Провайдеры могут по желанию хранить больше, они просто должны убедиться, что ключи поместятся внутри их рекламного пакета. Точное число, которое можно сохранить, будет зависеть от того, сколько свободных байтов доступно в рекламном пакете; см. раздел « Фильтр ключа учетной записи » для получения дополнительной информации об определении того, сколько байтов будет занимать каждый ключ. Например, чтобы объявить 10 ключей учетных записей, в пакете должно быть доступно 15 байтов. Но для персональных устройств (например, наушников) количество ключей учетных записей не должно превышать 5. слишком большой, и, следовательно, он может быть уникальным и отслеживаемым.

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

Информация об адресе BLE

Чтобы предотвратить отслеживание, реклама BLE должна использовать случайный разрешимый частный адрес ( RPA ). Адрес должен меняться как минимум каждые 15 минут, пока устройство активно рекламирует, и каждый раз, когда состояние меняется с нерекламного на рекламное. Для изменения интервала рандомизации адресов следует использовать рандомизированное смещение.

Протокол атрибутов (ATT) Согласование размера MTU

По возможности следует использовать значение максимального блока передачи (MTU) ATT, равное 83, но допустимо значение по умолчанию, равное 23.