Dispositivo Bluetooth de baixa energia (BLE)

A implementação do Serviço de pareamento rápido do Google (GFPS, na sigla em inglês) para dispositivos BLE é compatível com a especificação principal do Bluetooth v4.2 ou mais recente.

O seguinte adendo à especificação do pareamento rápido vai permitir a compatibilidade com dispositivos somente de baixa energia (LE) e áudio de baixa energia (LEA) no GFPS.

Níveis de conformidade

As palavras-chave "deve", "precisa", "vai", "deveria", "pode" e "consegue" mencionadas na especificação são explicadas abaixo:

Termo Descrição
dever é obrigatório para: usado para definir requisitos.
precisa é usado para expressar:
uma consequência natural de um requisito obrigatório declarado anteriormente
OU
uma declaração indiscutível de um fato (que é sempre verdadeiro, independente das circunstâncias).
vai é verdade que: usado apenas em declarações de fatos.
deveria é recomendado que: usado para indicar que, entre várias possibilidades, uma é recomendada como particularmente adequada, mas não obrigatória.
podem tem permissão para: usado para permitir opções.
pode é capaz de: usado para relacionar declarações de maneira causal.

Característica de pareamento baseada em chave

Mensagem do solicitante para o provedor

A solicitação bruta type 0x00 da característica de pareamento com base em chaves usa o bit 4 para indicar se o buscador é compatível com a especificação do dispositivo BLE e usa o bit 5 para indicar se o buscador é compatível com o LE Audio.

Octet Tipo de dado Descrição Valor Obrigatório?
0 uint8 Tipo de mensagem 0x00 = solicitação de pareamento com base em chave Obrigatório
1 uint8 Flags
  • Bit 0 (MSB): descontinuado e ignorado pelo Seeker.
  • Bit 1: 1 se o Seeker solicitar que o Provider inicie a vinculação, e essa solicitação contiver o endereço BR/EDR do Seeker. 0 caso contrário.
  • Bit 2: 1 se o Seeker solicitar que o Provider notifique o nome atual. 0 caso contrário.
  • Bit 3: 1 se for para gravar a chave da conta retroativamente. 0 caso contrário.
  • Bit 4: 1 se o Seeker for compatível com a especificação de dispositivo BLE. 0 caso contrário.
  • Bit 5: 1 se o Seeker for compatível com LE Audio. 0 caso contrário.
  • Os bits 6 a 7 são reservados para uso futuro e devem ser ignorados.
varia Obrigatório
2 a 7 uint48 Uma das seguintes opções:
  • Endereço BLE atual do provedor
  • Endereço de identidade do provedor
varia Obrigatório
8 a 13 uint48 Endereço de BR/EDR do requerente varia Presente apenas se o bit 1 ou 3 das flags estiver definido
n: 15 Valor aleatório (salt) varia Obrigatório

Mensagem do provedor para o solicitante

Quando o bit 4 da solicitação é definido, a nova mensagem de resposta type 0x02 para a característica de pareamento baseado em chave pode ser usada para oferecer mais opções de vinculação ao Seeker.

Octet Tipo de dado Descrição Valor
0 uint8 Tipo de mensagem 0x02 = resposta estendida de pareamento com base em chave
1 uint8 Flags
  • Bit 0 (MSB): 1 se o provedor for um dispositivo somente LE, 0 caso contrário. Se o bit 0 estiver definido como 1, o Seeker vai presumir que o bit 1 também está definido como 1.
  • Bit 1: 1 se o provedor preferir a vinculação LE, 0 caso contrário.
  • Bit 2: 1 se o tipo de endereço do segundo endereço for aleatório, 0 se for público.
  • Os bits de 3 a 7 são reservados para uso futuro e devem ser ignorados.
varia
2 uint8 Número de endereços do provedor
(na versão atual, o número é 1 ou 2, porque precisamos modificar o modo de criptografia de bloco para AES-CTR se o número for >= 3)
varia
3 a 8 ou
3 a 14
  • O primeiro endereço precisa ser o endereço de identidade do dispositivo principal e associável se a associação BR/EDR for preferida.
  • O segundo endereço será o endereço associável do secundário se ele estiver disponível.
varia
9 a 15 ou 15 Valor aleatório (salt) varia

Um provedor que oferece suporte à especificação de dispositivo BLE precisa ler o bit 4 e o bit 5 para entender os recursos do buscador.

  • Quando o bit 4 é 0, o provedor ignora o bit 5 e responde com o formato type 0x01.
  • Quando o bit 4 é 1,
    • Para um provedor somente LE, ele vai responder com type 0x02 para indicar a preferência de vinculação LE.
    • Para o provedor de modo duplo, ele pode responder com type 0x02 para indicar a preferência de vinculação de BR/EDR ou LE.
  • Para casos de provedores de modo duplo LE Audio (LEA), consulte Exemplo: pareamento com um provedor de modo duplo LEA para referência

Característica do PSM (multiplexador de serviço de protocolo) de fluxo de mensagens

Para oferecer suporte ao fluxo de mensagens em dispositivos BLE, o Pareamento rápido vai estabelecer e manter um canal L2CAP BLE para enviar e receber mensagens. Pareamento rápido O servidor L2CAP precisa implementar o controle de fluxo baseado em crédito LE.

Essa característica permite que o Seeker leia o valor do PSM e estabeleça uma conexão L2CAP segura pelo valor do PSM.

Característica do serviço de Pareamento Rápido Criptografado Permissões UUID
Gerente de vendas de parceiro do Message Stream Sim Ler FE2C1239-8366-4814-8EB0-01DE32100BEA
Octet Tipo de dado Descrição Valor
0 uint8 Estado
  • 0x00 = Desconhecido. O FP Seeker vai tentar várias vezes.
  • 0x01 = Pronto para conectar
  • 0x02 = Indisponível. O FP Seeker não vai usar esse componente para se conectar desta vez.
varia
1 - 2 uint16 O valor de PSM precisa estar entre 0x80 e 0xFF. varia

Observação:para o TWS, há dois componentes: primário e secundário. Em determinadas condições, as funções desses componentes são intercambiáveis. Supondo que A seja o componente principal e B seja o secundário, devido ao consumo da bateria no componente A , o componente B precisa assumir a função de componente principal. Esse cenário é chamado de role switch.

Depois de role switch, se o provedor não conseguir processar o fluxo de mensagens do Pareamento rápido, ele vai desconectar proativamente a conexão L2CAP atual. Em seguida, o buscador do Pareamento Rápido pode restabelecer a conexão de fluxo de mensagens L2CAP com o novo componente principal.

Característica adicional da chave de acesso

Essa característica é para oferecer proteção contra MITM nos componentes adicionais.

Proteção contra MITM de membros falsos do CSIS

O Pareamento rápido exige proteção contra MITM como parte do procedimento de pareamento. Como o CSIS não oferece proteção contra MITM, o design atual de FP para vários componentes precisa ser estendido para oferecer proteção contra MITM nos componentes adicionais.

Definição de característica

Característica do serviço de Pareamento Rápido Criptografado Permissão UUID
Chave de acesso extra Sim Ler,gravar,notificar FE2C123A-8366-4814-8EB0-01DE32100BEA

Mensagens

O formato da mensagem é aplicado às operações de leitura, gravação e notificação.

Formato de dados criptografados

Os dados criptografados são enviados usando a conexão GATT do Pareamento Rápido.

Octet Tipo de dado Descrição Valor
0-15 uint128 Bloco de chave de acesso adicional criptografado varia
Formato de dados brutos

Depois de descriptografar os dados criptografados usando a senha secreta, o formato será como abaixo

Octet Tipo de dado Descrição Valor
0 uint8 Tipo de mensagem um destes:
  • 0x00 = chave de acesso do requerente
  • 0x01 = chave de acesso do provedor
1-3 uint24 Chave de acesso de seis dígitos varia
4-9 uint48 Endereço do componente de vinculação de destino varia
10 uint8 Código de status, usado apenas pela operação de leitura. Uma das seguintes opções:
  • 0x00 = Sucesso
  • 0x01 = Pendente. Nova tentativa do FP Seeker até o tempo limite
  • 0x02 = Falha. Nova tentativa de parada do FP Seeker
11-15 Valor aleatório (salt) varia

O principal (primeiro componente vinculado) é a ponte entre o Seeker do pareamento rápido e os outros componentes de vinculação. A característica precisa seguir as diretrizes:

  • Ao receber uma solicitação de gravação do Fast Pair Seeker, o provedor precisa
    • Defina o endereço do componente que está sendo vinculado.
    • Enviar a chave de acesso para o componente que está sendo vinculado
    • Definir o código de status como "Pendente", 0x01
  • Ao receber qualquer solicitação de leitura antes de receber a chave de acesso do componente que está sendo vinculado, o provedor vai retornar uma mensagem com
    • Chave de acesso, qualquer valor
    • Endereço do componente sendo vinculado
    • Código de status pendente, 0x01
  • Antes de o provedor enviar a notificação para o Fast Pair Seeker, defina o resultado para a solicitação de leitura com
    • Chave de acesso do componente que está sendo vinculado
    • Endereço do componente sendo vinculado
    • Código de status de sucesso, 0x00
  • Se houver um erro irrecuperável no lado do provedor, defina o resultado
    • Chave de acesso, qualquer valor
    • Endereço do componente sendo vinculado
    • Código de status de falha, 0x02

Consulte o diagrama 1 do MITM e o diagrama 2 do MITM para mais detalhes.

Requisitos do dispositivo LE

LE Advertising

No modo detectável ou não detectável, o provedor precisa usar RPA para anunciar dados do FastPair.

Capacidade de vinculação

Para dispositivos compatíveis com LE, o Seeker precisa criar uma vinculação com a conexão LE atual. Depois de passar na verificação de pareamento com base em chaves do Pareamento rápido, o provedor vai permitir a vinculação com o RPA e definir a capacidade de E/S como DisplayYesNo para a verificação de senha do Pareamento rápido.

Requisitos de dispositivos para LEA

Anúncio da LEA

Para dispositivos de modo duplo: No modo detectável, o provedor vai anunciar dados de Pareamento rápido com endereço de identidade. No modo não detectável, o provedor precisa anunciar dados do Pareamento rápido com RPA. É altamente recomendável usar publicidade legada (BT 4.2) para oferecer suporte a dispositivos mais antigos e compatibilidade com versões anteriores. É necessário mudar o IRK sempre que o dispositivo for redefinido para a configuração original.

Para dispositivos que não são de modo duplo: No modo detectável ou não detectável, o provedor usará publicidade estendida (BT 5.0) com RPA para anunciar dados do FastPair.

O anúncio conectável LE que contém dados do serviço FP precisa incluir o UUID do CAS de acordo com o perfil do adaptador Bluetooth (BAP 1.0.1) e o requisito do perfil de áudio comum.

O provedor pode indicar a capacidade de LEA incluindo o UUID do CAS (0x1853) nos dados de serviço (tipo de anúncio 0x16) ou nos UUIDs de classe de serviço de 16 bits (tipo de anúncio 0x02 ou 0x03), independente do modo detectável.

Para anúncios não detectáveis, se não houver espaço suficiente no anúncio legado devido à inclusão de dados de bateria e SASS, é obrigatório incluir o UUID do CAS na resposta de verificação.

Capacidade de vinculação de LEA

O Seeker precisa criar uma vinculação com a conexão LE atual. Depois de passar pela verificação de pareamento baseada em chave do Pareamento rápido, o provedor de modo duplo vai permitir a vinculação com o endereço de identidade e o RPA, enquanto o provedor de modo único vai permitir a vinculação com o RPA e definir a capacidade de E/S como DisplayYesNo para a verificação de senha do Pareamento rápido.

Canal de comunicação interna entre componentes.

A conexão GATT atual é mantida para realizar a proteção MITM nos componentes adicionais. O componente principal vinculado vai processar as entregas de mensagens entre o pareamento rápido Seeker e os componentes restantes.

A comunicação interna é usada para Initial Pair e Subsequent Pair

  • Quando o procedimento de pareamento baseado em chave for aprovado no componente principal, ele vai enviar uma mensagem para mudar a capacidade de E/S dos componentes restantes.
  • Quando o Pareamento rápido for concluído, o componente principal vai enviar uma mensagem para redefinir a capacidade de E/S dos componentes restantes.
  • Ao executar o procedimento de chave de acesso adicional, o componente principal vai processar as entregas de chaves de acesso entre o Fast Pair Seeker e os componentes restantes.

Hora de mudar a capacidade de E/S

  • Mudar a capacidade de E/S para DisplayYesNo quando o procedimento de pareamento baseado em chave for aprovado
    • Se o dispositivo tiver vários componentes, todos eles deverão ser definidos como DisplayYesNo
    • Uma exceção é que o provedor não pode mudar a capacidade de E/S para DisplayYesNo. É Retroactive Pair, cujo bit 3 da solicitação de pareamento com base em chave está definido como 1. Consulte Mensagem do buscador para o provedor.
  • Mudar a capacidade de E/S para a configuração padrão
    • Pareamento inicial
      • Se a conexão LE for desconectada, encerre a sessão de pareamento rápido.
      • Depois que a chave principal for vinculada, se não houver outra solicitação de gravação de chave de acesso em 15 segundos, encerre a sessão do pareamento rápido.
      • Depois que outra solicitação de gravação de chave de acesso for recebida, se o componente que está sendo vinculado não for vinculado em 15 segundos, encerre a sessão do pareamento rápido.
      • Depois que todos os componentes estiverem conectados, se não houver uma solicitação de gravação da chave da conta em 15 segundos, encerre a sessão do pareamento rápido.
      • Depois que a solicitação de gravação da chave da conta for recebida, defina o tempo limite de 15 segundos para encerrar a sessão do pareamento rápido.
    • Pareamento subsequente
      • Se a conexão LE for desconectada, encerre a sessão de pareamento rápido.
      • Depois que a chave primária for vinculada, se não houver outra solicitação de gravação de chave de acesso em 15 segundos, encerre a sessão do pareamento rápido.
      • Depois que outra solicitação de gravação de chave de acesso for recebida, se o componente que está sendo vinculado não for vinculado em 15 segundos, encerre a sessão do pareamento rápido.
      • Quando todos os componentes estiverem conectados, encerre a sessão de pareamento rápido.

Ocultar indicação da interface

Quando o headset não estiver pronto para pareamento, o provedor vai usar type 0b0010 para definir a indicação de ocultar a interface do usuário para dados da chave da conta e informar ao buscador para não mostrar a interface de pareamento subsequente (consulte Payload de publicidade: dados da conta do Fast Pair).

Requisitos do dispositivo de áudio LE

Requisitos do Bluetooth

Consulte Android, recomendações de fones de ouvido LE Audio.

Suporte a CTKD

Para dispositivos de modo duplo, a CTKD do LE para BR/EDR é obrigatória e está alinhada aos requisitos do BAP.

Anúncio de destino

Um dispositivo periférico precisa usar o anúncio segmentado para solicitar uma conexão de um dispositivo central pareado. Os anúncios segmentados são definidos no BAP e no CAP para gerenciamento de conexões de acordo com a Tabela 8.4 do CAP 1.0 (p48/58).

Suporte ao servidor EATT GATT

O EATT permite que o dispositivo central envie várias transações GATT em paralelo quando o dispositivo está conectado. Para o dispositivo compatível com CSIP, isso vai aumentar o desempenho da conexão de perfil e, em seguida, iniciar o procedimento de vinculação CSIP para os outros buds.

Se o provedor não for um único dispositivo, mas um conjunto coordenado com implementação de CSIP, para reduzir o número de vezes que a descoberta de serviços é feita e acelerar a conexão, o provedor precisa implementar o cache GATT definido no Bluetooth 5.1.

Requisitos do Pareamento Rápido

LE Advertising

No modo detectável ou não detectável, se o dispositivo tiver vários componentes, os dados do Pareamento Rápido serão anunciados pelo componente principal. Se o dispositivo não estiver pronto para o pareamento subsequente, o componente secundário poderá anunciar dados de Pareamento rápido para recursos estendidos. Consulte Ocultar indicação da interface.

Visibilidade do serviço GATT

O banco de dados GATT precisa ser o mesmo para todas as conexões GATT de transporte LE. O serviço LE Audio (0x184E) precisa ser incluído no banco de dados GATT da conexão do Pareamento rápido.

Exemplo: pareamento com um provedor de modo duplo LEA

Cenário 1: quando o Seeker não é compatível com LEA

O provedor precisa ter compatibilidade com versões anteriores para o requerente que não oferece suporte à LEA.

Componentes
  • Provedor: A2DP/HFP/LEA
  • Procurador: A2DP/HFP
Comportamento esperado para o pareamento inicial / subsequente
  • O provedor anuncia dados do serviço de pareamento rápido (0xFE2C) com endereço de identidade (inicial) ou RPA (subsequente).
    • Usar a publicidade legada
  • O Seeker recebe o anúncio do Provider com o endereço de identidade para pareamento inicial ou RPA para pareamentos subsequentes.
  • O solicitante envia uma solicitação de pareamento com base em chave
    • O bit 5 da flag da solicitação de pareamento com base em chave está definido como 0.
  • O provedor envia a resposta de pareamento baseado em chave com o endereço público em uma das seguintes opções:
    • Se o tipo de mensagem 0x01 for usado, o endereço será público.
    • Se o tipo de mensagem 0x02 for usado
      • O bit 0 precisa ser 0
      • O bit 1 precisa ser 0
      • O endereço precisa ser público.
  • O Seeker cria vínculo com o transporte de BR/EDR
    • A capacidade de E/S é definida como DisplayYesNo para BR/EDR
  • O solicitante e o provedor fazem o procedimento de verificação da chave de acesso do Pareamento rápido

Cenário 2: quando o Seeker é compatível com LEA

Componentes
  • Provedor
    • Suporte a A2DP/HFP/LEA
    • Componente único
  • Seeker
    • SupportA2DP/HFP/LEA
Comportamento esperado para o pareamento inicial / subsequente
  • O provedor anuncia dados do serviço de pareamento rápido (0xFE2C) com endereço de identidade (inicial) ou RPA (subsequente).
    • Usar a publicidade legada
  • O solicitante envia uma solicitação de pareamento com base em chave
    • O bit 5 da flag da solicitação de pareamento com base em chave está definido como 1.
  • O provedor envia uma resposta de pareamento baseado em chave com o tipo de mensagem 0x02
    • O bit 0 precisa ser 0
    • O bit 1 precisa ser 1
    • O endereço é o endereço de identidade
  • O Seeker cria uma vinculação com a conexão LE atual no transporte
    • A direção do CTKD é de LE para BR/EDR
    • A capacidade de E/S é definida como DisplayYesNo para LE
  • O solicitante e o provedor fazem o procedimento de verificação da chave de acesso do Pareamento rápido

Cenário 3: quando o requerente tem suporte para LEA e CSIP envolvidos

Componentes
  • Provedor
    • Suporte a A2DP/HFP/LEA
    • Vários componentes
      • O componente principal é BR/EDR/LE
      • O componente secundário é exclusivo para LE
  • Seeker
    • Suporte a A2DP/HFP/LEA
Comportamento esperado para o pareamento inicial / subsequente
  • O componente principal anuncia dados do serviço de pareamento rápido (0xFE2C) com endereço de identidade (inicial) ou RPA (subsequente).
    • Usar a publicidade legada
  • O Seeker envia uma solicitação de pareamento com base em chave ao componente principal
    • O bit 5 da flag da solicitação de pareamento com base em chave está definido como 1.
  • O componente principal envia a resposta de pareamento com base em chave com o tipo de mensagem 0x02
    • O bit 0 precisa ser 0
    • O bit 1 precisa ser 1
    • Os endereços são:
      • O primeiro endereço é o endereço de identidade do componente principal.
      • O segundo endereço é o endereço vinculável do componente secundário. O segundo componente também usa esse endereço para fazer a publicidade de CSIP.
  • O Seeker cria uma conexão com o componente principal na conexão LE atual.
    • A direção do CTKD é de LE para BR/EDR
    • A capacidade de E/S é definida como DisplayYesNo para LE
  • O Seeker cria uma vinculação com o componente secundário cujo endereço é da resposta estendida de pareamento baseado em chave.
    • A capacidade de E/S precisa ser DisplayYesNo. Caso contrário, rejeite a solicitação de pareamento.
  • O Solicitante e o Provedor fazem o procedimento de proteção MITM para parear o componente secundário. O Provedor precisa implementar os dois cenários.
  • O Seeker aguarda até que esteja vinculado ao componente secundário.

Diagrama sequencial para MITM

Esta sessão descreve a sequência do procedimento de proteção contra MITM.

Receber a chave de acesso do componente que está sendo vinculado por notificação

Receber a chave de acesso do componente vinculado por leitura

Problema conhecido

O FP para LEA foi otimizado para funcionar com o Android V(Android 15).

Por outro lado, encontramos vários problemas com headsets que oferecem suporte a LEA, mas não têm a implementação correta do Pareamento rápido via LEA (ou seja, apenas Pareamento rápido via Classic). Por exemplo, quando a RPA do provedor não é gerada pela chave de resolução de identidade (IRK) correta e o endereço não pode ser resolvido. Embora não tenhamos conseguido testar uma lista abrangente de configurações de fones de ouvido, nossos testes limitados revelaram vários problemas, incluindo falha na exibição de notificações de bateria dos fones de ouvido, falta de funcionalidade de troca de áudio (SASS), falhas generalizadas de pareamento inicial e subsequente e muito mais.

Por isso, recomendamos que os parceiros implementem a especificação Fast Pair-LEA para dispositivos novos e atuais em campo (por atualizações OTA) que oferecem suporte a modos duplos.