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 o suporte para dispositivos 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 is required to: usado para definir requisitos.
precisa é usado para expressar:
uma consequência natural de um requisito obrigatório declarado anteriormente
OU
uma declaração de fato indiscutível (que é sempre verdadeira, independentemente das circunstâncias).
vai it is true that: usado apenas em declarações de fatos.
deveria is recommended that: usado para indicar que, entre várias possibilidades, uma é recomendada como particularmente adequada, mas não obrigatória.
podem is permitted to: usado para permitir opções.
pode is able to: usado para relacionar declarações de maneira causal.

Característica de pareamento com base em chave

Mensagem do buscador para o provedor

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

Octeto 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 Sinalizações
  • Bit 0 (MSB): descontinuado e ignorado pelo Seeker.
  • Bit 1: 1 se o Buscador solicitar que o Provedor inicie a vinculação e essa solicitação contiver o endereço BR/EDR do Buscador. Caso contrário, 0.
  • Bit 2: 1 se o Buscador solicitar que o Provedor notifique o nome atual. Caso contrário, 0.
  • Bit 3: 1 se for para gravar retroativamente a chave da conta. Caso contrário, 0.
  • Bit 4: 1 se o Buscador for compatível com a especificação de dispositivo BLE. Caso contrário, 0.
  • Bit 5: 1 se o Buscador for compatível com LE Audio. Caso contrário, 0.
  • Os bits 6 e 7 são reservados para uso futuro e devem ser ignorados.
varia Obrigatório
2 - 7 uint48 Você pode:
  • Endereço BLE atual do provedor
  • Endereço de identidade do provedor
varia Obrigatório
8 - 13 uint48 Endereço BR/EDR do buscador 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 buscador

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 fornecer mais opções de vinculação ao buscador.

Octeto Tipo de dado Descrição Valor
0 uint8 Tipo de mensagem 0x02 = Resposta longa de pareamento com base em chave
1 uint8 Sinalizações
  • 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 Buscador vai presumir que o bit 1 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 do segundo endereço for aleatório, 0 se for público.
  • Os bits 3 a 7 são reservados para uso futuro e serão 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 cifra de bloco para AES-CTR se o número for >= 3)
varia
3 a 8 ou
3 a 14
  • O primeiro endereço será o endereço de identidade do dispositivo principal e poderá ser vinculado se a vinculação BR/EDR for preferencial.
  • O segundo endereço será o endereço vinculável do secundário, se ele estiver disponível.
varia
9 - 15 ou 15 Valor aleatório (salt) varia

Um Provedor compatível com a Especificação de Dispositivo BLE precisa ler os bits 4 e 5 para entender os recursos do Buscador.

  • Quando o bit 4 é 0, o provedor precisa ignorar o bit 5 e responder com o formato type 0x01.
  • Quando o bit 4 é 1,
    • Para o provedor somente LE, ele deve 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 BR/EDR ou LE.
  • Para casos de Provedor de modo duplo de LE Audio (LEA), consulte Exemplo: pareamento com Provedor de modo duplo de LEA para referência.

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

Para oferecer suporte ao fluxo de mensagens para dispositivos BLE, o Pareamento rápido vai estabelecer e manter um canal BLE L2CAP 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 Buscador leia o valor do PSM e estabeleça uma conexão L2CAP segura com base nele.

Característica do serviço de Pareamento Rápido Criptografado Permissões UUID
PSM do fluxo de mensagens Sim Ler FE2C1239-8366-4814-8EB0-01DE32100BEA
Octeto 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 no intervalo entre 0x80 e 0xFF varia

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

Após role switch, se o provedor não puder processar o fluxo de mensagens do Pareamento rápido, ele vai desconectar proativamente a conexão L2CAP atual. O buscador do Pareamento Rápido pode restabelecer a conexão do fluxo de mensagens L2CAP com o novo componente principal.

Característica adicional da chave de acesso

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

Proteção contra MITM de membro falso do CSIS

O Pareamento Rápido requer proteção contra MITM como parte do procedimento de pareamento. Como o CSIS não oferece proteção contra MITM, o design atual do 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 adicional Não 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.

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

Depois de descriptografar os dados criptografados usando o secret compartilhado, o formato é o seguinte:

Octeto Tipo de dado Descrição Valor
0 uint8 Tipo de mensagem um de
  • 0x00 = chave de acesso do buscador
  • 0x01 = Chave de acesso do provedor
1-3 uint24 Chave de acesso de 6 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 Um de
  • 0x00 = Sucesso
  • 0x01 = Pendente. Repetição do buscador de FP até o tempo limite
  • 0x02 = Falha. FP Seeker stop retry
11-15 Valor aleatório (salt) varia

O principal (primeiro componente vinculado) é a ponte entre o buscador de 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 buscador de Pareamento rápido, o provedor precisa
    • Definir o endereço do componente que está sendo vinculado
    • Envie a chave de acesso para o componente que está sendo vinculado.
    • Defina 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 precisa retornar uma mensagem com
    • Chave de acesso, qualquer valor
    • Endereço do componente que está sendo vinculado
    • Código de status pendente, 0x01
  • Antes de enviar a notificação ao buscador de Pareamento rápido, o provedor define o resultado da solicitação de leitura com
    • Chave de acesso do componente que está sendo vinculado
    • Endereço do componente que está 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 que está sendo vinculado
    • Código de status de falha, 0x02

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

Requisitos do dispositivo LE

Anúncio de LE

Para o modo detectável ou não detectável, o Provedor precisa usar o RPA para anunciar dados do Pareamento rápido.

Capacidade de vinculação

Para dispositivos compatíveis com LE, o Buscador precisa criar um vínculo com a conexão LE existente. Depois de passar na verificação de pareamento baseado em chave do Pareamento rápido, o provedor precisa 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 de LEA

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

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

O anúncio conectável de LE que contém dados de serviço de FP precisa incluir o UUID de 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 o recurso 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), independentemente 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 nesse caso.

Capacidade de vinculação de LEA

O buscador precisa criar um vínculo com a conexão LE atual. Depois de passar na verificação de pareamento com base em chave do Pareamento rápido, o provedor de modo duplo precisa permitir a vinculação com o endereço de identidade e o RPA, enquanto o provedor de modo não duplo precisa permitir a vinculação com o RPA e definir o recurso de E/S como DisplayYesNo para a verificação de chave de acesso do Pareamento rápido.

Canal de comunicação interna entre componentes

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

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

  • Quando o procedimento de pareamento baseado em chave é transmitido no componente principal, ele precisa 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 precisa processar as entregas de chaves de acesso entre o buscador do Pareamento rápido e os componentes restantes.

Hora de mudar a capacidade de IO

  • 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 precisarão ser definidos como DisplayYesNo.
    • Uma exceção em que o Provedor não pode mudar o recurso de E/S para DisplayYesNo é Retroactive Pair, em que o Bit 3 da Solicitação de Pareamento Baseado 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 o dispositivo principal for vinculado, se não houver outra solicitação de gravação de chave de acesso em 15 segundos, encerre a sessão de 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 até 15 segundos, encerre a sessão de Pareamento rápido.
      • Depois que todos os componentes forem vinculados, se não houver uma solicitação de gravação de chave de conta em 15 segundos, encerre a sessão de 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 de Pareamento rápido.
    • Pareamento subsequente
      • Se a conexão LE for desconectada, encerre a sessão de Pareamento rápido.
      • Depois que o dispositivo principal for vinculado, se não houver outra solicitação de gravação de chave de acesso em até 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 até 15 segundos, encerre a sessão de Pareamento rápido.
      • Quando todos os componentes estiverem vinculados, encerre a sessão de Pareamento rápido.

Ocultar indicação da interface

Quando o fone de ouvido não estiver pronto para pareamento, o Provedor vai usar type 0b0010 para definir a indicação de ocultar a IU para os dados da chave da conta, informando ao Buscador que não deve mostrar a IU de pareamento subsequente (consulte Payload de publicidade: dados da conta de Pareamento rápido).

Requisitos de dispositivos LE Audio

Requisitos do Bluetooth

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

Suporte ao CTKD

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

Anúncio de destino

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

Suporte ao servidor GATT EATT

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

Se o provedor não for um único dispositivo, mas um conjunto coordenado com a implementação do 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 armazenamento em cache do GATT definido no Bluetooth 5.1.

Requisitos do Pareamento Rápido

Anúncio de LE

Para o 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 de pareamento rápido.

Exemplo: pareamento com o provedor de modo duplo LEA

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

O Provedor precisa ter compatibilidade com versões anteriores para o Buscador que não oferece suporte a LEA.

Componentes
  • Provedor: A2DP/HFP/LEA
  • Buscador: A2DP/HFP
Comportamento esperado para o pareamento inicial / subsequente
  • O provedor anuncia os dados de serviço do Pareamento rápido (0xFE2C) com o endereço de identidade (inicial) ou RPA (subsequente).
    • Usar publicidade legada
  • O buscador recebe o anúncio do provedor com o endereço de identidade para o pareamento inicial ou o RPA para o pareamento subsequente.
  • O buscador envia uma solicitação de pareamento baseado em chave
    • O bit-5 da flag da solicitação de pareamento baseado em chave está definido como 0
  • O Provedor envia uma resposta de pareamento com base em chave com 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 Buscador cria um vínculo com o transporte BR/EDR
    • O recurso de E/S está definido como DisplayYesNo para BR/EDR
  • O buscador e o provedor realizam o procedimento de verificação da chave de acesso do Pareamento rápido.

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

Componentes
  • Provedor
    • Suporte a A2DP/HFP/LEA
    • Componente único
  • Seeker
    • Suporte a A2DP/HFP/LEA
Comportamento esperado para o pareamento inicial / subsequente
  • O provedor anuncia os dados de serviço do Pareamento rápido (0xFE2C) com o endereço de identidade (inicial) ou RPA (subsequente).
    • Usar publicidade legada
  • O buscador envia uma solicitação de pareamento baseado em chave
    • O bit-5 da flag da solicitação de pareamento baseado em chave está definido como 1.
  • O provedor envia uma 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
    • O endereço é o endereço de identidade
  • O Buscador cria um vínculo com a conexão LE existente no transporte LE
    • A direção do CTKD é de LE para BR/EDR
    • O recurso de E/S está definido como DisplayYesNo para LE
  • O buscador e o provedor realizam o procedimento de verificação da chave de acesso do Pareamento rápido.

Cenário 3: quando o Seeker é compatível com LEA e CSIP

Componentes
  • Provedor
    • Suporte a A2DP/HFP/LEA
    • Vários componentes
      • O componente principal é BR/EDR/LE
      • O componente secundário é somente LE
  • Seeker
    • Suporte a A2DP/HFP/LEA
Comportamento esperado para o pareamento inicial / subsequente
  • O componente principal anuncia os dados de serviço da Pareamento rápido (0xFE2C) com o endereço de identidade (inicial) ou o RPA (subsequente).
    • Usar publicidade legada
  • O buscador envia uma solicitação de pareamento com base em chave para o componente principal.
    • O bit-5 da flag da solicitação de pareamento baseado em chave está definido como 1.
  • O componente principal envia uma 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
    • O endereço é o seguinte:
      • 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, que também usa esse endereço para fazer o anúncio do CSIP.
  • O buscador cria um vínculo com o componente principal na conexão LE atual
    • A direção do CTKD é de LE para BR/EDR
    • O recurso de E/S está definido como DisplayYesNo para LE
  • O buscador cria um vínculo com o componente secundário com o endereço da resposta estendida do pareamento baseado em chave
    • A capacidade de E/S precisa ser DisplayYesNo. Caso contrário, rejeite a solicitação de pareamento.
  • O buscador e o provedor realizam o procedimento de proteção contra MITM para parear o componente secundário. O provedor precisa implementar os dois cenários.
  • O buscador aguarda até que o vínculo com o componente secundário seja estabelecido.

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 que está sendo 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 fones de ouvido que oferecem suporte ao LEA, mas não têm a implementação correta do Pareamento Rápido por LEA (ou seja, apenas o Pareamento Rápido por Classic). Especificamente e, por exemplo, quando o RPA do provedor não é gerado pela chave de resolução de identidade (IRK, na sigla em inglês) 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 da funcionalidade de troca de áudio (SASS), falhas generalizadas de pareamento inicial e subsequente e muito mais.

Portanto, recomendamos que os parceiros implementem a especificação Pareamento rápido-LEA para dispositivos novos e atuais em campo (com atualizações OTA) que oferecem suporte a modos duplos.