Appareil Bluetooth Low Energy (BLE)

L'implémentation du service Google Association express (GFPS) pour les appareils BLE est compatible avec la spécification Bluetooth Core v4.2 ou version ultérieure.

L'avenant suivant à la spécification Fast Pair permettra la prise en charge des appareils à basse consommation (LE) uniquement et à basse consommation audio (LEA) dans GFPS.

Niveaux de conformité

Les mots clés "shall", "must", "will", "should", "may" et "can" mentionnés dans la spécification sont expliqués ci-dessous :

Terme Description
doit est requis pour : utilisé pour définir les exigences.
doit est utilisé pour exprimer :
 une conséquence naturelle d'une exigence obligatoire précédemment énoncée
OU
 une affirmation factuelle indiscutable (toujours vraie, quelles que soient les circonstances).
sera il est vrai que : n'est utilisé que dans les déclarations de faits.
should est recommandé : utilisé pour indiquer que, parmi plusieurs possibilités, l'une est recommandée comme particulièrement adaptée, mais pas obligatoire.
mai est autorisé à : utilisé pour autoriser des options.
peut est capable de : utilisé pour établir un lien de causalité entre les énoncés.

Caractéristique d'association basée sur une clé

Message de l'utilisateur au fournisseur

La requête brute type 0x00 de la caractéristique d'association basée sur une clé utilise le bit 4 pour indiquer si le chercheur est compatible avec la spécification des appareils 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 d'association basée sur une clé Obligatoire
1 uint8 Indicateurs
  • Bit 0 (MSB) : obsolète et ignoré par Seeker.
  • Bit 1 : 1 si le demandeur demande au fournisseur d'initier l'association, 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 de notifier le nom existant. 0 dans le cas contraire.
  • Bit 3 : 1 si l'écriture rétroactive de la clé de compte est activée. 0 dans le cas contraire.
  • Bit 4 : 1 si le détecteur est compatible avec la spécification des appareils BLE. 0 dans le cas contraire.
  • Bit 5 : 1 si le Seeker est compatible avec LE Audio. 0 dans le cas contraire.
  • Les bits 6 et 7 sont réservés pour une utilisation ultérieure et doivent être ignorés.
varies Obligatoire
2 - 7 uint48 Soit :
  • Adresse BLE actuelle du fournisseur
  • Adresse d'identité du fournisseur
varies Obligatoire
8 - 13 uint48 Adresse BR/EDR du demandeur varies Présent uniquement si le bit 1 ou 3 des indicateurs est défini
n – 15 Valeur aléatoire (salt) varies Obligatoire

Message du fournisseur au demandeur

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 basée sur une clé peut être utilisé pour fournir des options d'association supplémentaires au demandeur.

Octet Type de données Description Valeur
0 uint8 Type de message 0x02 = Réponse étendue à l'association basée sur une clé
1 uint8 Indicateurs
  • Bit 0 (MSB) : 1 si le fournisseur est un appareil LE uniquement, 0 sinon. Si le bit 0 est défini sur 1, le Seeker part du principe que le bit 1 est défini sur 1.
  • Bit 1 : 1 si le fournisseur préfère l'association LE, 0 dans le cas contraire.
  • Bit 2 : 1 si le type d'adresse de la deuxième adresse est "Aléatoire", 0 si "Publique".
  • Les bits 3 à 7 sont réservés pour une utilisation ultérieure et doivent être ignorés.
varies
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 blocs en AES-CTR si le nombre est supérieur ou égal à 3)
varies
3-8 ou
3-14
  • La première adresse doit être l'adresse d'identité de l'appareil principal et doit pouvoir être associée si l'association BR/EDR est préférée.
  • La deuxième adresse doit être une adresse pouvant être associée à l'appareil secondaire, si celui-ci est disponible.
varies
9 – 15 ou 15 Valeur aléatoire (salt) varies

Un fournisseur compatible avec la spécification des appareils BLE doit lire les bits 4 et 5 pour comprendre les capacités du chercheur.

  • Lorsque le bit 4 est défini sur 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, la réponse doit être type 0x02 pour indiquer la préférence d'association LE.
    • Pour un fournisseur en mode double, il peut répondre avec type 0x02 pour indiquer une préférence d'association BR/EDR ou LE.
  • Pour les cas de fournisseur en mode double LE Audio (LEA), consultez Exemple : Association avec un fournisseur en mode double LEA pour référence.

Caractéristique PSM (Protocol Service Multiplexor) du flux de messages

Pour prendre en charge le flux de messages pour les appareils BLE, l'Association express établira et maintiendra un canal BLE L2CAP pour l'envoi et la réception de messages. Association express Le serveur L2CAP doit implémenter le contrôle de flux basé sur le crédit LE.

Cette caractéristique permet au Seeker de lire la valeur PSM, puis d'établir une connexion L2CAP sécurisée par la valeur PSM.

Caractéristique du service Association express Chiffré Autorisations UUID
PSM du flux de messages Oui Lecture 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 pour la connexion
  • 0x02 = Non disponible. FP Seeker n'utilisera pas ce composant pour se connecter cette fois-ci.
varies
1 - 2 uint16 La valeur PSM doit être comprise entre 0x80 et 0xFF. varies

Remarque : Pour TWS, il existe deux composants : principal et secondaire. Le rôle de ces composants est interchangeable dans certaines conditions. En supposant que A soit le composant principal et B le composant secondaire, en raison de la décharge de la batterie du composant A , le composant B doit assumer le rôle de composant principal. Ce scénario est appelé role switch.

Après role switch, si le fournisseur ne peut pas gérer le flux de messages Association express, il doit déconnecter de manière proactive la connexion L2CAP existante. Le détecteur Association express peut ensuite rétablir la connexion au flux de messages L2CAP avec le nouveau composant principal.

Caractéristique supplémentaire des clés d'accès

Cette caractéristique vise à fournir une protection MITM sur les composants supplémentaires.

Protection MITM pour les faux membres CSIS

L'Association express nécessite une protection MITM dans le cadre de la procédure d'association. Étant donné que CSIS ne fournit pas de protection MITM, la conception actuelle de FP pour plusieurs composants doit être étendue pour fournir une protection MITM sur les composants supplémentaires.

Définition des caractéristiques

Caractéristique du service Association express Chiffré Autorisation UUID
Clé d'accès supplémentaire Oui Lire,écrire,notifier FE2C123A-8366-4814-8EB0-01DE32100BEA

Messages

Le format du 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 de l'Association express.

Octet Type de données Description Valeur
0-15 uint128 Bloc de clés d'accès supplémentaires chiffré Variable
Format des données brutes

Une fois les données chiffrées dé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
  • 0x00 = Clé d'accès du demandeur
  • 0x01 = Clé d'accès du fournisseur
1-3 uint24 Clé d'accès à six chiffres Variable
4-9 uint48 Adresse du composant d'association cible Variable
10 uint8 Code d'état (utilisé uniquement par l'opération de lecture) Une des
  • 0x00 = Réussite
  • 0x01 = En attente. Nouvelle tentative de recherche d'empreinte digitale jusqu'à expiration du délai
  • 0x02 = Échec. Arrêter la nouvelle tentative de FP Seeker
11-15 Valeur aléatoire (salt) Variable

Le composant principal (premier composant associé) sert de pont entre le détecteur Association express et les autres composants associés. La caractéristique doit respecter les consignes suivantes :

  • Lorsqu'il reçoit une requête d'écriture de Fast Pair Seeker, le fournisseur doit
    • Définir l'adresse du composant en cours d'association
    • Envoyer la clé d'accès au composant en cours d'association
    • 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 en cours d'association, le fournisseur doit renvoyer un message avec
    • Clé d'accès, n'importe quelle valeur
    • Adresse du composant en cours d'association
    • Code d'état "En attente", 0x01
  • Avant que le fournisseur n'envoie une notification à Fast Pair Seeker, il définit le résultat de la demande de lecture avec
      .
    • Clé d'accès du composant en cours d'association
    • Adresse du composant en cours d'association
    • Code d'état de réussite, 0x00
  • En cas d'erreur irrécupérable du côté du fournisseur, définissez le résultat sur
    • Clé d'accès, n'importe quelle valeur
    • Adresse du composant en cours d'association
    • Code d'état d'échec, 0x02

Pour en savoir plus, consultez les schémas 1 et 2 sur les attaques MITM.

Configuration requise pour les appareils LE

LE Advertising

En mode détectable ou non détectable, le Fournisseur doit utiliser RPA pour diffuser les données Fast Pair.

Capacité de liaison

Pour les appareils compatibles LE, le demandeur doit créer une association avec la connexion LE existante. Une fois la validation de l'association basée sur une clé Association express réussie, le Fournisseur doit autoriser l'association avec l'APR et définir la capacité d'E/S sur DisplayYesNo pour la validation de la clé d'accès Association express.

Configuration requise pour les appareils LEA

LEA Advertising

Pour les appareils à double mode : Pour le mode détectable, le fournisseur doit diffuser les données Association express avec l'adresse d'identité. En mode non détectable, le Fournisseur doit diffuser les données de l'Association express avec RPA. Il est fortement recommandé d'utiliser l'ancienne publicité (BT 4.2) pour prendre en charge les anciens appareils et assurer la rétrocompatibilité. Il est nécessaire de modifier l'IRK chaque fois que la configuration d'usine de l'appareil est rétablie.

Pour les appareils non double mode : Pour le mode détectable ou non détectable, le fournisseur doit utiliser la publicité étendue (BT 5.0) avec RPA pour diffuser les données Fast Pair.

La publicité connectable LE contenant des données de service FP doit inclure CAS UUID conformément aux exigences du Bluetooth Adapter Profile (BAP 1.0.1) et du Common Audio Profile.

Le fournisseur peut indiquer la capacité LEA en incluant le CAS UUID (0x1853) dans les données de service (type AD 0x16) ou dans les UUID de classe de service de 16 bits (type AD 0x02 ou 0x03), quel que soit le mode détectable.

Pour les annonces non détectables, si l'espace disponible dans les anciennes annonces est insuffisant en raison de l'inclusion des données de batterie et SASS, il est obligatoire d'inclure l'UUID CAS dans la réponse d'analyse.

Capacité de liaison des agences de sécurité

Le demandeur doit créer un lien avec la connexion LE existante. Après avoir réussi la validation de l'association basée sur une clé Association express, le fournisseur à double mode doit autoriser l'association avec l'adresse d'identité et l'adresse RPA, tandis que le fournisseur sans double mode doit autoriser l'association avec l'adresse RPA et définir la capacité d'E/S sur "DisplayYesNo" pour la validation du code secret Association express.

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 associé principal doit gérer la distribution des messages entre le demandeur d'association express et ses composants restants.

La communication interne est utilisée pour Initial Pair et Subsequent Pair.

  • Lorsque la procédure d'association basée sur une clé réussit sur le composant principal, celui-ci doit envoyer un message pour modifier la capacité d'E/S de ses composants restants.
  • Une fois l'association express terminée, le composant principal doit envoyer un message pour réinitialiser la capacité d'E/S de ses composants restants.
  • Lors de l'exécution de la procédure de clé d'accès supplémentaire, le composant principal doit gérer la transmission des clés d'accès entre le détecteur Association express et ses composants restants.

Modifier la capacité d'E/S

  • Passer de la capacité d'E/S à DisplayYesNo lorsque la procédure d'association basée sur une clé est réussie
    • Si l'appareil comporte plusieurs composants, ils doivent tous être définis sur DisplayYesNo.
    • Une exception à la règle selon laquelle le fournisseur ne doit pas modifier la capacité d'E/S en DisplayYesNo est Retroactive Pair, dont le bit 3 de la demande d'association basée sur une clé est défini sur 1. Consultez Message du demandeur au fournisseur.
  • Rétablir le paramètre par défaut de la capacité d'E/S
    • Association initiale
      • Si la connexion LE est déconnectée, mettez fin à la session Association express.
      • Une fois le serveur principal associé, si aucune autre demande d'écriture de clé d'accès n'est reçue dans les 15 secondes, la session Association express se termine.
      • Si une demande d'écriture de clé d'accès supplémentaire est reçue et que le composant à associer n'est pas associé dans les 15 secondes, mettez fin à la session Association express.
      • Une fois tous les composants associés, si aucune demande d'écriture de clé de compte n'est effectuée dans les 15 secondes, mettez fin à la session Association express.
      • Une fois la demande d'écriture de la clé de compte reçue, définissez un délai de 15 secondes pour mettre fin à la session Association express.
    • Association ultérieure
      • Si la connexion LE est déconnectée, mettez fin à la session Association express.
      • Une fois le serveur principal associé, si aucune autre demande d'écriture de clé d'accès n'est reçue dans les 15 secondes, mettez fin à la session Association express.
      • Si une demande d'écriture de clé d'accès supplémentaire est reçue et que le composant à associer n'est pas associé dans les 15 secondes, mettez fin à la session Association express.
      • Lorsque tous les composants sont liés, mettez fin à la session 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 demandeur de ne pas afficher l'UI d'association ultérieure (voir Charge utile de l'annonce : données de compte Association express).

Configuration requise pour les appareils LE Audio

Conditions requises pour le Bluetooth

Consultez Recommandations concernant les casques LE Audio pour Android.

Assistance CTKD

Pour les appareils à double mode, le CTKD de LE à BR/EDR est obligatoire et conforme aux exigences du BAP.

Annonce de la cible

Un périphérique doit utiliser une annonce ciblée pour solliciter une connexion à 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 de CAP 1.0 (p. 48/58).

Compatibilité avec le 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, les performances de connexion du profil seront améliorées, puis la procédure d'association CSIP commencera bientôt pour les autres écouteurs.

Si le fournisseur n'est pas un appareil unique, mais un ensemble coordonné avec une implémentation CSIP, pour réduire le nombre de découvertes de services et accélérer la connexion, le fournisseur doit implémenter la mise en cache GATT définie dans Bluetooth 5.1.

Exigences liées à l'Association express

LE Advertising

En mode détectable ou non détectable, si l'appareil comporte plusieurs composants, les données Association express doivent être annoncé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 Association express pour des fonctionnalités étendues. Consultez 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 LE Audio (0x184E) doit être inclus dans la base de données GATT de la connexion Association express.

Exemple : Association avec un fournisseur LEA en mode double

Scénario 1 : Lorsque le Seeker n'est pas compatible avec LEA

Le Fournisseur doit être rétrocompatible avec le Demandeur qui ne prend pas en charge LEA.

Composants
  • Fournisseur : A2DP/HFP/LEA
  • Seeker : A2DP/HFP
Comportement attendu pour l'association initiale / ultérieure
  • Le fournisseur annonce les données du service Association express (0xFE2C) avec l'adresse d'identité (initiale) ou l'adresse RPA (ultérieure).
    • Utiliser l'ancienne version de la publicité
  • Le demandeur reçoit l'annonce du fournisseur avec l'adresse d'identité pour le premier appairage ou le RPA pour les appairages ultérieurs.
  • Le demandeur envoie une demande 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 formats 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 défini sur 0.
      • Le bit 1 doit être défini sur 0.
      • L'adresse doit être une adresse publique.
  • Le demandeur crée une liaison avec le transport BR/EDR.
    • La capacité d'E/S est définie sur DisplayYesNo pour BR/EDR
  • Le demandeur et le fournisseur effectuent la procédure de validation de la clé d'accès Association express.

Scénario 2 : Lorsque le Seeker est compatible avec LEA

Composants
  • Fournisseur
    • Compatible avec A2DP/HFP/LEA
    • Composant unique
  • Seeker
    • SupportA2DP/HFP/LEA
Comportement attendu pour l'association initiale / ultérieure
  • Le fournisseur annonce les données du service Association express (0xFE2C) avec l'adresse d'identité (initiale) ou l'adresse RPA (ultérieure).
    • Utiliser l'ancienne version de la publicité
  • Le demandeur envoie une demande 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 1.
  • Le fournisseur envoie une réponse d'association basée sur une clé avec le type de message 0x02.
    • Le bit 0 doit être défini sur 0.
    • Le bit 1 doit être défini sur 1.
    • L'adresse est l'adresse de l'identité
  • Le demandeur crée un lien avec la connexion LE existante sur le transport LE.
    • La direction CTKD va de LE à BR/EDR.
    • La capacité d'E/S est définie sur DisplayYesNo pour LE
  • Le demandeur et le fournisseur effectuent la procédure de validation de la clé d'accès Association express.

Scénario 3 : lorsque le Seeker prend en charge la LEA et que le CSIP est impliqué

Composants
  • Fournisseur
    • Compatible avec A2DP/HFP/LEA
    • Plusieurs composants
      • Le composant principal est BR/EDR/LE.
      • Le composant secondaire est réservé à LE
  • Seeker
    • Compatible avec A2DP/HFP/LEA
Comportement attendu pour l'association initiale / ultérieure
  • Le composant principal annonce les données du service Association express (0xFE2C) avec l'adresse d'identité (initiale) ou l'adresse RPA (ultérieure).
    • Utiliser l'ancienne version de la publicité
  • Le demandeur envoie une demande d'association basée sur une clé 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 défini sur 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 la publicité CSIP.
  • Le demandeur crée un lien avec le composant principal sur la connexion LE existante.
    • La direction CTKD va de LE à BR/EDR.
    • La capacité d'E/S est définie sur DisplayYesNo pour LE
  • Le chercheur crée un lien avec le composant secondaire dont l'adresse provient de la réponse étendue de l'association basée sur une clé.
    • La capacité d'E/S doit être "DisplayYesNo". Sinon, la demande d'association doit être refusée.
  • Le demandeur et le fournisseur doivent suivre la procédure de protection MITM pour associer le composant secondaire. Le fournisseur doit implémenter les deux scénarios suivants :
  • Le Seeker attend d'être associé au composant secondaire.

Diagramme séquentiel pour MITM

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 à partir du composant en cours d'association par lecture

Problème connu

FP pour LEA a été optimisé 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 la bonne implémentation Association express sur LEA (c'est-à-dire uniquement Association express sur Classic). Par exemple, lorsque le RPA du fournisseur n'est pas généré par la bonne clé de résolution d'identité (IRK) 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'échec de l'affichage des 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, et plus encore.

Nous conseillons donc vivement aux partenaires d'implémenter la spécification Fast Pair-LEA pour les nouveaux appareils et les appareils existants sur le terrain (via des mises à jour OTA) compatibles avec les modes doubles.