Dispositivo Bluetooth de bajo consumo (BLE)
La implementación del servicio de vinculación rápida de Google (GFPS) para dispositivos BLE es compatible con la especificación Bluetooth Core versión 4.2 o posterior.
El siguiente anexo a la especificación de Vinculación rápida permitirá la compatibilidad con dispositivos solo de baja energía (LE) y audio de baja energía (LEA) en GFPS.
Niveles de cumplimiento
A continuación, se explican las palabras clave “debe”, “debe”, “hará”, “debería”, “puede” y “puede” que se mencionan en la especificación:
Término | Descripción |
---|---|
shall | es obligatorio: Se usa para definir requisitos. |
imprescindible | se usa para expresar lo siguiente: una consecuencia natural del requisito obligatorio indicado anteriormente O una declaración de hecho indiscutible (que siempre es verdadera independientemente de las circunstancias). |
la | es verdad que: Solo se usa en afirmaciones de hechos. |
should | Se recomienda: Se usa para indicar que, entre varias posibilidades, se recomienda una como particularmente adecuada, pero no es obligatoria. |
mayo | is permitted to: Se usa para permitir opciones. |
lata | Puede: Se usa para relacionar una afirmación de manera causal. |
Característica de vinculación basada en claves
Mensaje del buscador al proveedor
La solicitud sin procesar type 0x00
de la característica de vinculación basada en claves usa el Bit 4 para indicar si el Seeker admite la especificación de dispositivo BLE y el Bit 5 para indicar si el Seeker admite audio de bajo consumo.
Octet | Tipo de datos | Descripción | Valor | ¿Es obligatorio? |
---|---|---|---|---|
0 | uint8 |
Tipo de mensaje | 0x00 = Solicitud de vinculación basada en claves |
Obligatorio |
1 | uint8 |
Marcas
|
varía | Obligatorio |
2 a 7 | uint48 |
Puedes hacer lo siguiente:
|
varía | Obligatorio |
8 a 13 | uint48 |
Dirección de BR/EDR del solicitante | varía | Presente solo si se establecieron los bits 1 o 3 de las marcas |
n: 15 | Valor aleatorio (sal) | varía | Obligatorio |
Mensaje del proveedor al solicitante
Cuando se configura el bit 4 de la solicitud, se puede usar el nuevo mensaje de respuesta type 0x02
para la característica de vinculación basada en claves a fin de proporcionar opciones de vinculación adicionales al Seeker.
Octet | Tipo de datos | Descripción | Valor |
---|---|---|---|
0 | uint8 |
Tipo de mensaje | 0x02 = Respuesta extendida de la vinculación basada en claves |
1 | uint8 |
Marcas
|
varía |
2 | uint8 |
Cantidad de direcciones del proveedor (en la versión actual, el número es 1 o 2, ya que debemos modificar el modo de algoritmo de cifrado por bloques a AES-CTR si el número es >= 3) |
varía |
De 3 a 8 o de 3 a 14 |
|
varía | |
9-15 o 15 | Valor aleatorio (sal) | varía |
Un proveedor que admita la Especificación del dispositivo BLE debe leer los bits 4 y 5 para comprender las capacidades del buscador.
- Cuando el bit 4 sea 0, el proveedor debe ignorar el bit 5 y responder con el formato
type 0x01
. - Cuando el bit 4 es 1,
- En el caso del proveedor solo para LE, debe responder con
type 0x02
para indicar la preferencia de vinculación de LE. - En el caso del proveedor de modo dual, puede responder con
type 0x02
para indicar la preferencia de vinculación BR/EDR o LE.
- En el caso del proveedor solo para LE, debe responder con
- Para casos de proveedores de modo dual de audio LE (LEA), consulta Ejemplo: Vinculación con un proveedor de modo dual de LEA como referencia.
Característica de PSM (multiplexor de servicio de protocolo) de flujo de mensajes
Para admitir la transmisión de mensajes en dispositivos BLE, Vinculación rápida establecerá y mantendrá un canal L2CAP BLE para enviar y recibir mensajes. El servidor L2CAP de Vinculación rápida debe implementar el control de flujo basado en créditos de LE.
Esta característica permite que el buscador lea el valor de PSM y, luego, establezca una conexión L2CAP segura según el valor de PSM.
Característica del servicio de Vinculación rápida | Encriptado | Permisos | UUID |
---|---|---|---|
PSM de flujo de mensajes | Sí | Leer | FE2C1239-8366-4814-8EB0-01DE32100BEA |
Octet | Tipo de datos | Descripción | Valor |
---|---|---|---|
0 | uint8 |
Estado
|
varía |
1 - 2 | uint16 |
El valor de PSM debe estar entre 0x80 y 0xFF. | varía |
Nota: Para TWS, hay dos componentes: el principal y el secundario. Las funciones de estos componentes son intercambiables en determinadas condiciones. Suponiendo que A es el componente principal y B es el secundario, debido al agotamiento de la batería en el componente A , el componente B debe asumir el rol de componente principal y esta situación se denomina role switch
.
Después de role switch
, si el proveedor no puede controlar el flujo de mensajes de Vinculación rápida, debe desconectar de forma proactiva la conexión L2CAP existente. Luego, el buscador de Vinculación rápida puede restablecer la conexión de flujo de mensajes L2CAP con el nuevo componente principal.
Característica de llave de acceso adicional
Esta característica es proporcionar protección contra MITM en los componentes adicionales.
Protección contra MITM de miembros falsos de CSIS
La Vinculación rápida requiere protección contra MITM como parte del procedimiento de vinculación. Como la CSIS no proporciona protección contra MITM, el diseño actual de la FP para varios componentes debe extenderse para proporcionar protección contra MITM en los componentes adicionales.
Definición de la característica
Característica del servicio de Vinculación rápida | Encriptado | Permiso | UUID |
---|---|---|---|
Llave de acceso adicional | Sí | Leer,escribir,notificar | FE2C123A-8366-4814-8EB0-01DE32100BEA |
Mensajes
El formato de mensaje se aplica a las operaciones de lectura, escritura y notificación.
Formato de datos encriptados
Los datos encriptados se envían mediante la conexión GATT de Vinculación rápida.
Octet | Tipo de datos | Descripción | Valor |
---|---|---|---|
0-15 | uint128 | Bloqueo de llave de acceso adicional encriptado | varía |
Formato de datos sin procesar
Después de desencriptar los datos encriptados con el secreto compartido, el formato es el siguiente:
Octet | Tipo de datos | Descripción | Valor |
---|---|---|---|
0 | uint8 | Tipo de mensaje | uno de
|
1-3 | uint24 | Llave de acceso de 6 dígitos | varía |
4-9 | uint48 | Dirección del componente de vinculación de destino | varía |
10 | uint8 | Código de estado, que solo usa la operación de lectura | Uno de
|
11-15 | Valor aleatorio (sal) | varía |
El principal (primer componente vinculado) es el puente entre el buscador de vinculación rápida y los componentes de vinculación adicionales. La característica debe seguir las pautas:
- Cuando reciba una solicitud de escritura del buscador de Vinculación rápida, el proveedor deberá hacer lo siguiente:
- Establece la dirección del componente que se vinculará.
- Envía la llave de acceso al componente que se vinculará.
- Establece el código de estado como Pendiente, 0x01.
- Cuando reciba una solicitud de lectura antes de recibir la llave de acceso del componente que se vinculará, el proveedor debe mostrar un mensaje con lo siguiente:
- Llave de acceso, cualquier valor
- Dirección del componente que se vincula
- Código de estado pendiente, 0x01
- Antes de que el proveedor envíe una notificación al buscador de Vinculación rápida, establece el resultado de la solicitud de lectura con
- .
- Llave de acceso del componente que se vinculará
- Dirección del componente que se vinculará
- Código de estado de éxito, 0x00
- Si hay algún error irrecuperable del proveedor, establece el resultado como
- Llave de acceso, cualquier valor
- Dirección del componente que se vinculará
- Código de estado de error, 0x02
Consulta el diagrama 1 de MITM y el diagrama 2 de MITM para obtener más detalles.
Requisitos de los dispositivos LE
LE Advertising
En el modo detectable o el no detectable, el proveedor debe usar la RPA para anunciar los datos de FastPair.
Capacidad de vinculación
En el caso de los dispositivos compatibles con LE, el buscador debe crear una vinculación con la conexión LE existente. Después de aprobar la verificación de vinculación basada en llaves de Fast Pair, el proveedor debe permitir la vinculación con RPA y establecer la capacidad de E/S en DisplayYesNo para la verificación de llaves de acceso de Fast Pair.
Requisitos de los dispositivos de la LEA
LEA Advertising
Para dispositivos de modo dual: Para el modo detectable, el proveedor debe anunciar los datos de Vinculación rápida con la dirección de identidad. En el caso del modo no detectable, el Proveedor deberá anunciar los datos de Vinculación rápida con el RPA. Se recomienda usar anuncios heredados (BT 4.2) para admitir dispositivos más antiguos con fines de retrocompatibilidad. Es necesario cambiar el IRK cada vez que se restablece la configuración de fábrica del dispositivo.
Para dispositivos que no son de modo dual: Para el modo detectable o no detectable, el proveedor debe usar publicidad extendida (BT 5.0) con RPA para anunciar datos de FastPair.
El anuncio conectable LE que contiene datos del servicio de FP debe incluir el UUID de CAS de conformidad con el requisito del perfil de adaptador Bluetooth (BAP 1.0.1) y el perfil de audio común. En el caso de los anuncios no detectables, si no hay suficiente espacio disponible en el anuncio heredado debido a la inclusión de datos de batería y SASS, es obligatorio incluir el UUID de CAS en la respuesta de análisis en ese caso.
Capacidad de vinculación LEA
El buscador debe crear una vinculación con la conexión LE existente. Después de aprobar la verificación de vinculación basada en claves de Vinculación rápida, el proveedor de modo dual debe permitir la vinculación con la dirección de identidad y la RPA, mientras que el proveedor que no es de modo dual debe permitir la vinculación con la RPA y establecer la capacidad de E/S en DisplayYesNo para la verificación de llaves de acceso de Vinculación rápida.
Canal de comunicación interna entre componentes
Se mantiene la conexión GATT existente para realizar la protección de MITM en los componentes adicionales. El componente vinculado principal debe controlar las publicaciones de mensajes entre el buscador de Vinculación rápida y sus componentes restantes.
La comunicación interna se usa para Initial Pair
y Subsequent Pair
.
- Cuando el procedimiento de vinculación basada en claves pasa en el componente principal, este debe enviar un mensaje para cambiar la capacidad de E/S de los componentes restantes.
- Cuando se complete la vinculación rápida, el componente principal deberá enviar un mensaje para restablecer la capacidad de E/S de los componentes restantes.
- Cuando se ejecuta el procedimiento de llave de acceso adicional, el componente principal debe controlar las entregas de llaves de acceso entre el buscador de vinculación rápida y sus componentes restantes.
Es hora de cambiar la capacidad de E/S
- Se cambió la capacidad de E/S a DisplayYesNo cuando se aprobó el procedimiento de vinculación basada en claves.
- Si el dispositivo tiene varios componentes, todos los componentes se deben configurar en DisplayYesNo
- Una excepción en la que el proveedor no debe cambiar la capability de E/S a DisplayYesNo es
Retroactive Pair
, cuyo bit 3 de la solicitud de vinculación basada en claves está configurado en 1. Consulta Mensaje del buscador al proveedor.
- Cambia la capacidad de E/S al parámetro de configuración predeterminado
- Vinculación inicial
- Si se desconecta la conexión LE, finaliza la sesión de Vinculación rápida.
- Después de que se vincule el dispositivo principal, si no hay una solicitud de escritura de llave de acceso adicional en 15 segundos, finaliza la sesión de Vinculación rápida.
- Después de recibir una solicitud de escritura de llave de acceso adicional, si el componente que se vincula no se vincula en un plazo de 15 segundos, finaliza la sesión de Vinculación rápida.
- Después de que se vinculen todos los componentes, si no hay una solicitud de escritura de la clave de la cuenta en un plazo de 15 segundos, finaliza la sesión de Vinculación rápida.
- Después de recibir la solicitud de escritura de la clave de la cuenta, establece un tiempo de espera de 15 segundos para finalizar la sesión de Vinculación rápida.
- Vinculación posterior
- Si se desconecta la conexión de LE, finaliza la sesión de Vinculación rápida
- Después de que se vincule el dispositivo principal, si no hay una solicitud de escritura de llave de acceso adicional en un plazo de 15 segundos, finaliza la sesión de Vinculación rápida.
- Después de recibir una solicitud de escritura de llave de acceso adicional, si el componente que se vincula no se vincula en un plazo de 15 segundos, finaliza la sesión de Vinculación rápida.
- Cuando todos los componentes estén vinculados, finaliza la sesión de Vinculación rápida
- Vinculación inicial
Oculta la indicación de la IU
Cuando los auriculares no estén listos para vincularse, el proveedor debe usar type 0b0010
para establecer la indicación de ocultación de la IU para los datos de clave de la cuenta para indicarle al buscador que no muestre la IU de vinculación posterior (consulta Carga útil publicitaria: Datos de la cuenta de vinculación rápida).
Requisitos de los dispositivos de audio LE
Requisitos de Bluetooth
Consulta las recomendaciones de auriculares para Android y LE Audio.
Asistencia de CTKD
Para los dispositivos de modo dual, la CTKD de LE a BR/EDR es obligatoria y está alineada con los requisitos de BAP.
Anuncio de segmentación
Un dispositivo periférico debe usar el anuncio segmentado para solicitar una conexión desde un dispositivo central vinculado. Los anuncios segmentados se definen en BAP y CAP para la administración de conexiones según la tabla 8.4 de CAP 1.0 (p. 48/58).
Compatibilidad con el servidor EATT de GATT
EATT permite que el dispositivo central envíe varias transacciones GATT en paralelo cuando el dispositivo está vinculado. En el caso de los dispositivos compatibles con CSIP, aumentará el rendimiento de la conexión de perfiles y, luego, comenzará el procedimiento de vinculación CSIP para los otros auriculares.
Almacenamiento en caché robusto de GATT (muy recomendado)
Si el proveedor no es un solo dispositivo, sino un conjunto coordinado con la implementación de CSIP, para reducir la cantidad de veces que se realiza la detección de servicios y acelerar la conexión, el proveedor debe implementar el almacenamiento en caché de GATT definido en Bluetooth 5.1.
Requisitos de Vinculación rápida
LE Advertising
En el caso del modo detectable o el no detectable, si el dispositivo tiene varios componentes, el componente principal debe anunciar los datos de Vinculación rápida. Si el dispositivo no está listo para la vinculación posterior, el componente secundario puede anunciar datos de Vinculación rápida para funciones extendidas. Consulta Cómo ocultar la indicación de IU.
Visibilidad del servicio GATT
La base de datos de GATT debe ser la misma para todas las conexiones de GATT de transporte LE. Se debe incluir el servicio de audio LE (0x184E) en la base de datos de GATT de la conexión de Vinculación rápida.
Ejemplo: Vinculación con un proveedor de modo dual LEA
Situación 1: Cuando el buscador no admite LEA
El proveedor debe tener retrocompatibilidad con el buscador que no admite LEA.
Componentes
- Proveedor: A2DP/HFP/LEA
- Buscador: A2DP/HFP
Comportamiento esperado para la vinculación inicial o posterior
- El proveedor anuncia los datos del servicio de vinculación rápida (0xFE2C) con la dirección de identidad (inicial) o la RPA (posterior).
- Usa la publicidad heredada
- El buscador recibe el anuncio del proveedor con la dirección de identidad para la vinculación inicial o la RPA para la vinculación posterior.
- El buscador envía una solicitud de vinculación basada en claves
- El bit 5 de la marca de la solicitud de vinculación basada en claves se establece en 0.
- El proveedor envía una respuesta de vinculación basada en claves con la dirección pública en uno de los siguientes formatos:
- Si se usa el tipo de mensaje 0x01, la dirección debe ser pública.
- Si se usa el tipo de mensaje 0x02
- Bit-0 debe ser 0
- Bit-1 debe ser 0
- La dirección debe ser pública.
- The Seeker crea un vínculo con el transporte BR/EDR
- La capacidad de E/S se establece en DisplayYesNo para BR/EDR.
- El buscador y el proveedor realizan el procedimiento de verificación de la llave de acceso de Fast Pair.
Situación 2: Cuando el buscador admite LEA
Componentes
- Proveedor
- Compatibilidad con A2DP/HFP/LEA
- Componente único
- Buscador
- Compatibilidad con A2DP/HFP/LEA
Comportamiento esperado para la vinculación inicial o posterior
- El proveedor anuncia los datos del servicio de vinculación rápida (0xFE2C) con la dirección de identidad (inicial) o la RPA (posterior).
- Usa la publicidad heredada
- El buscador envía una solicitud de vinculación basada en claves.
- El bit 5 de la marca de la solicitud de vinculación basada en claves se establece en 1.
- El proveedor envía una respuesta de vinculación basada en claves con el tipo de mensaje 0x02.
- El bit 0 debe ser 0.
- El bit 1 debe ser 1.
- La dirección es la dirección de identidad
- El buscador crea una vinculación con la conexión LE existente en el transporte LE.
- La dirección de CTKD es de LE a BR/EDR.
- La capacidad de E/S se establece en DisplayYesNo para LE.
- El buscador y el proveedor realizan el procedimiento de verificación de la llave de acceso de Fast Pair.
Situación 3: Cuando el Seeker involucra a LEA y CSIP
Componentes
- Proveedor
- Compatibilidad con A2DP/HFP/LEA
- Varios componentes
- El componente principal es BR/EDR/LE
- El componente secundario es solo para LE
- Buscador
- Compatibilidad con A2DP/HFP/LEA
Comportamiento esperado para la vinculación inicial o posterior
- El componente principal anuncia datos del servicio de vinculación rápida (0xFE2C) con la dirección de identidad (inicial) o la RPA (posterior).
- Cómo usar la publicidad heredada
- El buscador envía una solicitud de vinculación basada en claves al componente principal.
- El bit 5 de la marca de la solicitud de vinculación basada en claves se establece en 1.
- El componente principal envía una respuesta de vinculación basada en claves con el tipo de mensaje 0x02.
- Bit-0 debe ser 0
- El bit 1 debe ser 1.
- Las direcciones son las siguientes:
- La primera dirección es la dirección de identidad del componente principal.
- La segunda dirección es la dirección vinculable para el componente secundario. El segundo componente también usa esta dirección para realizar anuncios de CSIP.
- El buscador crea una vinculación con el componente principal en la conexión LE existente.
- La dirección de CTKD es de LE a BR/EDR.
- La capacidad de E/S se establece en DisplayYesNo para LE.
- El buscador crea una vinculación con el componente secundario cuya dirección proviene de la respuesta extendida de vinculación basada en claves.
- La capability de E/S debe ser DisplayYesNo, de lo contrario, se rechaza la solicitud de vinculación.
- El solicitante y el proveedor realizan el procedimiento de protección contra MITM para vincular el componente secundario. El proveedor debe implementar ambas situaciones.
- El buscador espera hasta que se una al componente secundario
Diagrama secuencial de MITM
En esta sesión, se describe la secuencia del procedimiento de protección contra MITM.
Cómo obtener la llave de acceso del componente que se vincula mediante una notificación
Obtén una llave de acceso del componente que se une con lectura
Problema conocido
La FP para LEA se optimizó para funcionar con Android V(Android 15).
Por el contrario, encontramos muchos problemas con auriculares que admiten LEA, pero que no tienen la implementación correcta de Vinculación rápida a través de LEA (es decir, solo Vinculación rápida a través de Classic). En particular, por ejemplo, cuando la RPA del proveedor no la genera la clave de resolución de identidad (IRK) correcta y la dirección no se puede resolver. Si bien no pudimos probar una lista completa de configuraciones de auriculares, nuestra prueba limitada reveló varios problemas, incluidos errores de visualización de la batería de los auriculares, falta de funcionalidad de cambio de audio (SASS), errores de vinculación iniciales y posteriores, y mucho más.
Por lo tanto, recomendamos a los socios que implementen la especificación de Fast Pair-LEA para los dispositivos nuevos y existentes en el campo (a través de actualizaciones inalámbricas) que admitan modos duales.