Appareil Bluetooth à basse consommation (BLE)
L'implémentation du service GFPS (Google Fast Pair Service) pour les appareils BLE est compatible avec la spécification Bluetooth Core 4.2 ou version ultérieure.
L'addendum suivant à la spécification Fast Pair permet de prendre en charge les appareils à faible consommation d'énergie (LE) uniquement et les appareils audio à faible consommation d'énergie (LEA) dans GFPS.
Niveaux de conformité
Les mots clés "doit", "doit", "va", "devrait", "peut" et "peut" mentionnés dans la spécification sont expliqués ci-dessous:
Terme | Description |
---|---|
shall | est obligatoire pour : utilisé pour définir les exigences. |
doit | est utilisé pour exprimer: une conséquence naturelle d'une exigence obligatoire précédemment indiquée OU une déclaration de fait incontestable (qui est toujours vraie quelles que soient les circonstances). |
sera | Il est vrai que : ne s'utilise que dans les énoncés de fait. |
should | Il est recommandé de : indique que parmi plusieurs possibilités, l'une est recommandée comme particulièrement adaptée, mais pas obligatoire. |
mai | est autorisé à : permet d'autoriser des options. |
peut | peut : utilisé pour relier une déclaration de manière causale. |
Caractéristique d'association basée sur une clé
Message du demandeur au fournisseur
La requête brute type 0x00
de la caractéristique d'association basée sur des clés utilise le bit 4 pour indiquer si le Seeker prend en charge la spécification d'appareil BLE, et le bit 5 pour indiquer s'il est compatible avec LE Audio.
Octet | Type de données | Description | Valeur | Obligatoire ? |
---|---|---|---|---|
0 | uint8 |
Type de message | 0x00 = demande de couplage basée sur une clé |
Obligatoire |
1 | uint8 |
Options
|
varie | Obligatoire |
2 à 7 | uint48 |
Soit:
|
varie | Obligatoire |
8 – 13 | uint48 |
Adresse du BR/EDR du demandeur | varie | Présent uniquement si le bit 1 ou 3 des indicateurs est défini |
n : 15 | Valeur aléatoire (sel) | varie | Obligatoire |
Message du fournisseur au chercheur
Lorsque le bit 4 de la requête est défini, le nouveau message de réponse type 0x02
pour la caractéristique d'association par clé peut être utilisé pour fournir des options de liaison supplémentaires à l'appareil à rechercher.
Octet | Type de données | Description | Valeur |
---|---|---|---|
0 | uint8 |
Type de message | 0x02 = Réponse étendue d'association basée sur une clé |
1 | uint8 |
Options
|
varie |
2 | uint8 |
Nombre d'adresses du fournisseur (dans la version actuelle, le nombre est 1 ou 2, car nous devons modifier le mode de chiffrement par bloc en AES-CTR si le nombre est supérieur ou égal à 3) |
varie |
3 - 8 ou 3 - 14 |
|
varie | |
9 - 15 ou 15 | Valeur aléatoire (sel) | varie |
Un fournisseur compatible avec la spécification de l'appareil BLE doit lire les bits 4 et 5 pour comprendre les capacités du chercheur.
- Lorsque le bit 4 est à 0, le fournisseur doit ignorer le bit 5 et répondre au format
type 0x01
. - Lorsque le bit 4 est défini sur 1,
- Pour un fournisseur LE uniquement, il doit répondre avec
type 0x02
pour indiquer la préférence d'association LE. - Pour le fournisseur dual mode, il peut répondre avec
type 0x02
pour indiquer la préférence de liaison BR/EDR ou LE.
- Pour un fournisseur LE uniquement, il doit répondre avec
- Pour les cas de fournisseur en mode dual LE Audio (LEA), consultez Exemple: Association avec un fournisseur en mode dual LEA pour référence.
Caractéristique PSM (Protocol Service Multiplexor) du flux de messages
Afin de prendre en charge le flux de messages pour les appareils BLE, l'Association express établira et conservera un canal BLE L2CAP pour envoyer et recevoir des messages. Le serveur L2CAP Fast Pair doit implémenter le contrôle de flux basé sur les crédits LE.
Cette caractéristique permet au chercheur de lire la valeur PSM, puis d'établir une connexion L2CAP sécurisée en fonction de la valeur PSM.
Caractéristique du service d'association express | Chiffré | Autorisations | UUID |
---|---|---|---|
PSM de flux de messages | Oui | Lire | FE2C1239-8366-4814-8EB0-01DE32100BEA |
Octet | Type de données | Description | Valeur |
---|---|---|---|
0 | uint8 |
État
|
varie |
1 - 2 | uint16 |
La valeur PSM doit être comprise entre 0x80 et 0xFF. | varie |
Remarque:Pour les TWS, il existe deux composants: primaire et secondaire. Le rôle de ces composants est interchangeables dans certaines conditions. En supposant qu'A soit le composant principal et que B soit le composant secondaire. En raison du déchargement de la batterie sur le composant A, le composant B doit jouer le rôle de composant principal. Ce scénario s'appelle role switch
.
Après role switch
, si le fournisseur ne peut pas gérer le flux de messages Fast Pair, il doit déconnecter de manière proactive la connexion L2CAP existante. L'utilisateur qui cherche à utiliser l'association express peut ensuite rétablir la connexion au flux de messages L2CAP avec le nouveau composant principal.
Caractéristique de clé d'accès supplémentaire
Cette caractéristique permet de fournir une protection MITM sur les composants supplémentaires.
Protection contre les attaques MITM de faux membres du CSIS
L'Association express nécessite une protection contre les attaques MITM lors de la procédure d'association. Comme le CSIS ne fournit pas de protection MITM, la conception actuelle de la FP pour plusieurs composants doit être étendue pour fournir une protection MITM sur les composants supplémentaires.
Définition des caractéristiques
Caractéristique de service Fast Pair | Chiffré | Autorisation | UUID |
---|---|---|---|
Clé d'accès supplémentaire | Oui | Read,write,notify | FE2C123A-8366-4814-8EB0-01DE32100BEA |
Messages
Le format de message est appliqué aux opérations de lecture, d'écriture et de notification.
Format des données chiffrées
Les données chiffrées sont envoyées à l'aide de la connexion GATT Fast Pair.
Octet | Type de données | Description | Valeur |
---|---|---|---|
0-15 | uint128 | Bloc de clé d'accès supplémentaire chiffré | Variable |
Format de données brutes
Après avoir déchiffré les données chiffrées à l'aide du secret partagé, le format est le suivant :
Octet | Type de données | Description | Valeur |
---|---|---|---|
0 | uint8 | Type de message | l'un des éléments suivants :
|
1-3 | uint24 | Clé d'accès à 6 chiffres | Variable |
4-9 | uint48 | Adresse du composant de liaison cible | Variable |
10 | uint8 | Code d'état, utilisé uniquement par les opérations de lecture | Au choix :
|
11-15 | Valeur aléatoire (sel) | Variable |
Le principal (premier composant de liaison) est le pont entre le chercheur de paires express et les autres composants de liaison. La caractéristique doit respecter les directives suivantes:
- Lorsqu'il reçoit une requête d'écriture de la part du chercheur d'association express, le fournisseur doit :
- Définir l'adresse du composant qui est associé
- Envoyer la clé d'accès au composant associé
- Définir le code d'état sur "En attente", 0x01
- Lorsqu'il reçoit une demande de lecture avant de recevoir la clé d'accès du composant associé, le fournisseur doit renvoyer un message avec le code d'erreur
- Clé d'accès, n'importe quelle valeur
- Adresse du composant en cours de liaison
- Code d'état en attente, 0x01
- Avant que le fournisseur n'envoie une notification au chercheur d'association express, il définit le résultat de la requête de lecture avec
- Clé d'accès du composant en cours de liaison
- Adresse du composant en cours de liaison
- Code d'état de réussite, 0x00
- En cas d'erreur irrécupérable côté fournisseur, définissez le résultat sur :
- Clé d'accès, n'importe quelle valeur
- Adresse du composant associé
- Code d'état de l'échec, 0x02
Pour en savoir plus, consultez les schémas MITM 1 et MITM 2.
Configuration requise pour les appareils LE
LE Advertising
Pour le mode visible ou non visible, le fournisseur doit utiliser la RPA pour annoncer les données FastPair.
Capacité de collage
Pour les appareils compatibles avec LE, le chercheur doit créer une liaison avec la connexion LE existante. Une fois la validation de l'association basée sur la clé Fast Pair effectuée, le fournisseur doit autoriser l'association avec RPA et définir la capacité d'E/S sur DisplayYesNo pour la validation de la clé d'accès Fast Pair.
Configuration requise pour l'appareil LEA
LEA Advertising
Pour les appareils à double mode : pour le mode visible, le fournisseur doit diffuser les données Fast Pair avec l'adresse d'identité. Pour le mode non visible, le fournisseur doit diffuser les données de l'Association express avec RPA. Il est fortement recommandé d'utiliser l'ancienne annonce (BT 4.2) pour prendre en charge les anciens appareils à des fins de rétrocompatibilité. Vous devez modifier IRK chaque fois que la configuration d'usine de l'appareil est rétablie.
Pour les appareils non dual-mode : pour le mode visible ou non visible, le fournisseur doit utiliser la publicité étendue (BT 5.0) avec RPA pour diffuser les données FastPair.
L'annonce LE Connectable contenant des données de service FP doit inclure un UUID CAS conforme aux exigences du profil d'adaptateur Bluetooth (BAP 1.0.1) et du profil audio commun. Pour les annonces non visibles, si l'espace disponible dans l'ancienne annonce n'est pas suffisant en raison de l'inclusion de données sur la batterie et SASS, il est obligatoire d'inclure l'UUID CAS dans la réponse d'analyse.
Capacité de liaison LEA
Le chercheur doit créer un lien avec la connexion LE existante. Après avoir réussi la validation de l'association basée sur la clé Fast Pair, le fournisseur dual mode doit autoriser l'association avec l'adresse d'identité et l'RPA, tandis que le fournisseur non dual mode doit autoriser l'association avec l'RPA et définir la capacité d'E/S sur DisplayYesNo pour la validation de la clé d'accès Fast Pair.
Canal de communication interne entre les composants
La connexion GATT existante est conservée pour effectuer la protection MITM sur les composants supplémentaires. Le composant de liaison principal doit gérer la distribution des messages entre l'utilisateur de l'association express et ses autres composants.
La communication interne est utilisée pour Initial Pair
et Subsequent Pair
.
- Lorsque la procédure d'association par clé est transmise au composant principal, celui-ci doit envoyer un message pour modifier la capacité d'E/S de ses autres composants.
- Une fois l'Association express terminée, le composant principal envoie un message pour réinitialiser la capacité d'E/S des autres composants.
- Lors de l'exécution de la procédure de clé d'accès supplémentaire, le composant principal doit gérer les envois de clés d'accès entre le chercheur Fast Pair et les autres composants.
Heure de modifier la capacité d'E/S
- Modification de la capacité d'E/S en DisplayYesNo lorsque la procédure d'association par clé a réussi
- Si l'appareil comporte plusieurs composants, tous les composants doivent être définis sur DisplayYesNo.
- Le fournisseur ne doit pas modifier la capacité d'E/S en DisplayYesNo, sauf pour
Retroactive Pair
, dont le bit 3 de la requête d'association basée sur une clé est défini sur 1. Consultez la section Message du chercheur au fournisseur.
- Définir la capacité d'E/S sur le paramètre par défaut
- Association initiale
- Si la connexion LE est interrompue, mettre fin à la session d'Association express
- Une fois l'association principale effectuée, si aucune requête d'écriture de clé d'accès supplémentaire n'est envoyée sous 15 secondes, mettez fin à la session Fast Pair.
- Une fois la requête d'écriture de clé d'accès supplémentaire reçue, si le composant associé n'est pas associé dans un délai de 15 secondes, mettez fin à la session d'Association express.
- Une fois tous les composants associés, si aucune requête d'écriture de clé de compte n'est envoyée sous 15 secondes, mettez fin à la session Fast Pair.
- Une fois la requête d'écriture de la clé de compte reçue, définissez le délai avant expiration sur 15 secondes pour mettre fin à la session Fast Pair.
- Association ultérieure
- Si la connexion LE est interrompue, mettre fin à la session d'Association express
- Une fois l'appareil principal associé, si aucune requête d'écriture de clé d'accès supplémentaire n'est envoyée sous 15 secondes, mettez fin à la session Fast Pair.
- Une fois la requête d'écriture de clé d'accès supplémentaire reçue, si le composant associé n'est pas associé sous 15 secondes, mettez fin à la session d'Association express.
- Lorsque tous les composants sont associés, mettre fin à la session d'Association express
- Association initiale
Masquer l'indication de l'UI
Lorsque le casque n'est pas prêt à être associé, le fournisseur doit utiliser type 0b0010
pour définir l'indication de masquage de l'UI pour les données de clé de compte afin d'indiquer au chercheur de ne pas afficher l'UI d'association ultérieure (voir la section Charge utile publicitaire: données de compte Fast Pair).
Exigences concernant les appareils audio LE
Configuration Bluetooth requise
Consultez les recommandations pour les casques audio LE Audio sur Android.
Assistance CTKD
Pour les appareils dual mode, la CTKD de LE vers BR/EDR est obligatoire et conforme aux exigences de la BAP.
Annonce Target
Un appareil périphérique doit utiliser une annonce ciblée pour solliciter une connexion à partir d'un appareil central associé. Les annonces ciblées sont définies dans BAP et CAP pour la gestion des connexions conformément au tableau 8.4 CAP 1.0 (p. 48/58).
Assistance du serveur GATT EATT
EATT permet à l'appareil central d'envoyer plusieurs transactions GATT en parallèle lorsque l'appareil est associé. Pour l'appareil compatible avec CSIP, cela améliore les performances de la connexion de profil, puis lance bientôt la procédure d'association CSIP pour les autres écouteurs.
Mise en cache robuste avec GATT (fortement recommandé)
Si le fournisseur n'est pas un seul appareil, mais un ensemble coordonné avec l'implémentation de CSIP, il doit implémenter le stockage en cache GATT défini dans Bluetooth 5.1 pour réduire le nombre de fois où la découverte de services est effectuée et accélérer la connexion.
Exigences concernant l'Association express
LE Advertising
Pour le mode visible ou non visible, si l'appareil comporte plusieurs composants, les données Fast Pair doivent être diffusées par le composant principal. Si l'appareil n'est pas prêt pour l'association ultérieure, le composant secondaire peut diffuser des données Fast Pair pour des fonctionnalités étendues. Consultez la section Masquer l'indication de l'UI.
Visibilité du service GATT
La base de données GATT doit être identique pour toutes les connexions GATT de transport LE. Le service audio LE (0x184E) doit être inclus dans la base de données GATT de la connexion Fast Pair.
Exemple: association à un fournisseur en mode double LEA
Scénario 1 : Lorsque l'utilisateur ne prend pas en charge le LEA
Le Fournisseur doit disposer d'une rétrocompatibilité pour le demandeur qui n'accepte pas le LEA.
Composants
- Fournisseur: A2DP/HFP/LEA
- Contrôleur: A2DP/HFP
Comportement attendu pour l'association initiale / ultérieure
- Le fournisseur annonce les données de service Fast Pair (0xFE2C) avec l'adresse d'identité (initiale) ou l'RPA (ultérieure).
- Utiliser l'ancienne version de la publicité
- Le chercheur reçoit l'annonce du fournisseur avec l'adresse d'identité pour l'association initiale ou l'RPA pour l'association ultérieure
- Le chercheur envoie une requête d'association basée sur une clé.
- Le bit 5 du flag de la requête d'association basée sur une clé est défini sur 0
- Le fournisseur envoie une réponse d'association basée sur une clé avec une adresse publique dans l'un des cas suivants :
- Si le type de message 0x01 est utilisé, l'adresse doit être une adresse publique.
- Si le type de message 0x02 est utilisé
- Le bit 0 doit être à 0
- Le bit 1 doit être égal à 0
- L'adresse doit être publique.
- Le chercheur crée une liaison avec le transport BR/EDR
- La capacité d'E/S est définie sur "DisplayYesNo" pour BR/EDR
- Le chercheur et le fournisseur effectuent la procédure de validation de la clé d'accès Fast Pair
Scénario 2 – Lorsque le demandeur soutient LEA
Composants
- Fournisseur
- Compatible avec A2DP/HFP/LEA
- Composant unique
- Chercheur
- Prise en charge d'A2DP/HFP/LEA
Comportement attendu pour la paire initiale / la paire suivante
- Le fournisseur annonce les données de service Fast Pair (0xFE2C) avec l'adresse d'identité (initiale) ou l'RPA (ultérieure).
- Utiliser l'ancienne publicité
- Le chercheur envoie une requête d'association basée sur une clé.
- L'indicateur bit-5 de la requête de couplage basé sur une clé est défini sur 1
- Le fournisseur envoie une réponse d'association basée sur des clés avec un message de type 0x02.
- Le bit 0 doit être à 0
- Le bit 1 doit être défini sur 1
- L'adresse est l'adresse d'identité
- Le Seeker crée une association avec la connexion LE existante sur le transport LE.
- La direction de la CTKD est de LE à BR/EDR
- La capacité d'E/S est définie sur DisplayYesNo pour LE
- Le chercheur et le fournisseur effectuent la procédure de validation de la clé d'accès Fast Pair
Scénario 3 : lorsque le demandeur est compatible avec les autorités locales et les services de police
Composants
- Fournisseur
- Compatible avec A2DP/HFP/LEA
- Plusieurs composants
- L'élément principal est BR/EDR/LE
- Le composant secondaire est réservé aux appareils LE
- Chercheur
- Compatible avec A2DP/HFP/LEA
Comportement attendu pour l'association initiale / ultérieure
- Le composant principal annonce les données de service Fast Pair (0xFE2C) avec l'adresse d'identité (initiale) ou l'RPA (ultérieure).
- Utiliser l'ancienne publicité
- Le Seeker envoie une requête d'association basée sur des clés au composant principal.
- Le bit 5 du flag de la requête d'association basée sur une clé est défini sur 1
- Le composant principal envoie une réponse d'association basée sur une clé avec le type de message 0x02.
- Le bit 0 doit être à 0
- Le bit 1 doit être défini sur 1
- Voici les adresses :
- La première adresse est l'adresse d'identité du composant principal.
- La deuxième adresse est l'adresse associable du composant secondaire. Le deuxième composant utilise également cette adresse pour effectuer la publicité CSIP.
- Le chercheur crée un lien avec le composant principal sur la connexion LE existante.
- La direction de la CTKD est de LE à BR/EDR
- La capacité d'E/S est définie sur DisplayYesNo pour LE
- Le demandeur crée une liaison avec le composant secondaire dont l'adresse provient d'une réponse étendue de couplage basé sur des clés.
- La capacité d'E/S doit être "DisplayYesNo". Sinon, refusez la demande d'association.
- Le demandeur et le fournisseur suivent la procédure de protection MITM pour associer le composant secondaire. Le Fournisseur doit mettre en œuvre les deux scénarios.
- Le chercheur attend d'être associé au composant secondaire.
Schéma séquentiel pour l'interception de trafic
Cette session décrit la séquence de la procédure de protection contre les attaques MITM.
Obtenir la clé d'accès du composant associé par notification
Obtenir la clé d'accès du composant associé par lecture
Problème connu
La FP pour LEA a été optimisée pour fonctionner avec Android V(Android 15).
À l'inverse, nous avons rencontré de nombreux problèmes avec des casques compatibles avec LEA, mais qui ne disposent pas de l'implémentation correcte de l'Association express via LEA (c'est-à-dire uniquement l'Association express via Classic). Plus précisément, par exemple, lorsque l'RPA du fournisseur n'est pas générée par la clé de résolution de l'identité (IRK) appropriée et que l'adresse ne peut pas être résolue. Bien que nous n'ayons pas pu tester une liste complète de configurations de casques, nos tests limités ont révélé divers problèmes, y compris l'impossibilité d'afficher les notifications de batterie des écouteurs, l'absence de fonctionnalité de commutation audio (SASS), des échecs d'association initiaux et ultérieurs généralisés, etc.
Par conséquent, nous recommandons vivement aux partenaires d'implémenter la spécification Fast Pair-LEA à la fois pour les nouveaux appareils et les appareils existants sur le terrain (via des mises à jour Over-the-Air) compatibles avec les deux modes.