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
  • Bit 0 (MSB): obsolète et ignoré par Seeker.
  • Bit 1: 1 si le demandeur demande au fournisseur d'initier la liaison, et que cette demande contient l'adresse BR/EDR du demandeur. 0 dans le cas contraire.
  • Bit 2: 1 si le demandeur demande au fournisseur d'indiquer le nom existant. 0 dans le cas contraire.
  • Bit 3: 1 si l'opération vise à écrire rétroactivement la clé de compte. 0 dans le cas contraire.
  • Bit 4: 1 si le traceur est compatible avec la spécification de l'appareil BLE. 0 dans le cas contraire.
  • Bit 5: 1 si l'appareil à la recherche est compatible avec LE Audio. 0 dans le cas contraire.
  • Les bits 6 à 7 sont réservés pour une utilisation ultérieure et doivent être ignorés.
varie Obligatoire
2 à 7 uint48 Soit:
  • Adresse BLE actuelle du fournisseur
  • Adresse d'identité du fournisseur
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
  • Bit 0 (MSB): 1 si le fournisseur est un appareil LE uniquement, 0 dans le cas contraire. Si le bit 0 est défini sur 1, le chercheur suppose que le bit 1 est défini sur 1.
  • Bit 1: 1 si le fournisseur préfère l'association LE, 0 sinon.
  • Bit 2: 1 si le type d'adresse de la deuxième adresse est "Random" (Aléatoire), 0 si elle est publique.
  • Les bits 3 à 7 sont réservés à une utilisation ultérieure et doivent être ignorés.
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
  • La première adresse doit être l'adresse d'identité de l'élément principal et doit pouvoir être associée si l'association BR/EDR est privilégiée.
  • La deuxième adresse doit être l'adresse associable de l'adresse secondaire, si elle est disponible.
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 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
  • 0x00 = Inconnu. FP Seeker réessaiera plusieurs fois
  • 0x01 = Prêt à se connecter
  • 0x02 = Indisponible. FP Seeker n'utilisera pas ce composant pour se connecter cette fois-ci
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 :
  • 0x00 = clé d'accès de l'utilisateur à la recherche
  • 0x01 = Clé d'accès du fournisseur
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 :
  • 0x00 = Opération réussie
  • 0x01 = En attente. Nouvelle tentative du demandeur de FP jusqu'à expiration du délai d'inactivité
  • 0x02 = Échec. Arrêt de la nouvelle tentative de recherche de FP
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

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.

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.