Appareil Bluetooth à basse consommation (BLE)

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

L'avenant suivant à la spécification de l'Association express autorise la compatibilité pour les appareils à basse consommation (LE) uniquement et les appareils audio à basse consommation (LEA) dans GFPS.

Niveaux de conformité

Les mots clés "devra", "doit", "va", "devrait", "peut" et "peut" mentionnés dans la spécification sont expliqués ci-dessous:

Terme Description
doit est obligatoire pour : permet de définir les exigences.
doit est utilisé pour exprimer:
une conséquence naturelle d'une exigence obligatoire précédemment énoncée ;
OU
une déclaration de fait incontestable (qui est toujours vraie, quelles que soient les circonstances).
will il est vrai que : ce terme n'est utilisé que dans des déclarations factuelles.
should est recommandé que : utilisé pour indiquer que, parmi plusieurs possibilités, l'une est recommandée car elle est particulièrement adaptée, mais pas obligatoire.
mai est autorisé à : utilisé pour autoriser des options.
peut est capable de : utilisé pour établir un lien entre les énoncés et l'énoncé d'une manière causale.

Caractéristique de la combinaison basée sur les clés

Message du demandeur au fournisseur

La requête brute type 0x00 de la caractéristique de paire basée sur les clés utilise le bit 4 pour indiquer si le Seeker prend en charge la spécification d'appareil BLE et utilise la Bit 5 indiquant si le Seeker prend en charge LE Audio.

Octet Type de données Description Valeur Obligatoire ?
0 uint8 Type de message 0x00 = requête 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 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 de communiquer le nom existant. 0 dans le cas contraire.
  • Bit 3: 1 pour l'écriture rétroactive de la clé de compte. 0 dans le cas contraire.
  • Bit 4: 1 si le Seeker est compatible avec la spécification d'appareil 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 à 7 sont réservés pour une utilisation future 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 BR/EDR du demandeur varie Présent uniquement si le bit 1 ou 3 d'indicateurs est défini
n - 15 Valeur aléatoire (sel) varie 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 de paire basée sur les clés peut être utilisée pour fournir une liaison supplémentaire options pour le Seeker.

Octet Type de données Description Valeur
0 uint8 Type de message 0x02 = réponse étendue de couplage basé sur des clés
1 uint8 Indicateurs
  • 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 Seeker supposera que le bit 1 est défini sur 1.
  • Bit 1: 1 si le fournisseur préfère une liaison LE, 0 dans le cas contraire.
  • Bit 2: 1 si le type d'adresse de la deuxième adresse est Aléatoire, 0 si Public.
  • Les bits 3 à 7 sont réservés pour une utilisation future 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 sur 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'adresse principale. Elle peut être liée si la liaison BR/EDR est privilégiée.
  • La seconde adresse doit pouvoir être associée à l'adresse e-mail secondaire si celle-ci est disponible.
varie
9 - 15 ou 15 Valeur aléatoire (sel) varie

Un fournisseur prenant en charge la spécification d'appareil BLE doit lire Bit 4 et Bit 5 pour comprendre ses capacités

  • Lorsque le bit 4 est égal à 0, le fournisseur ignore le bit 5 et répond avec le format type 0x01
  • Lorsque le bit 4 est égal à 1,
    • Dans le cas d'un fournisseur LE uniquement, il doit répondre par type 0x02 pour indiquer la préférence de liaison.
    • Pour le fournisseur en mode double, il peut répondre avec type 0x02 pour indiquer Préférence en matière d'association BR/EDR ou LE.
  • Pour les cas d'utilisation du double mode fournisseur LE Audio (LEA), consultez l'article Exemple: association avec le fournisseur en mode double LEA pour référence

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

Afin de prendre en charge le flux de messages pour les appareils BLE, l'Association express établit et maintenir un canal BLE L2CAP pour envoyer et recevoir des messages. Association express Le serveur L2CAP mettra en œuvre un contrôle de flux basé sur le crédit LE.

Cette caractéristique permet au demandeur de lire la valeur PSM, puis d'établir une connexion L2CAP sécurisée par 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. L'outil de recherche de FP 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
varie
1 - 2 uint16 La valeur PSM doit être comprise entre 0x80 et 0xFF varie

Remarque:Pour TWS, il existe deux principaux et secondaires. Le rôle de ces composants est interchangeables dans certaines conditions. En supposant que A est l'élément principal et que B est le composant secondaire, en raison de la décharge de la batterie du composant A , le composant B doit pour qu'il assume 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 avec Association express, il doit déconnecter de manière proactive une connexion L2CAP existante. L'utilisateur en quête de l'association express peut ensuite rétablir le L2CAP la connexion du flux de messages au nouveau composant principal.

Caractéristiques supplémentaires de la clé d'accès

Cette caractéristique vise à fournir une protection MITM sur la couche supplémentaire composants.

Protection MITM pour les faux membres du CSIS

L'Association express nécessite une protection MITM lors de la procédure d'association. En tant que CSIS n'offre pas de protection MITM, la conception actuelle de FP pour plusieurs doit être étendu pour fournir une protection MITM sur le composants.

Définition des caractéristiques

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

Messages

Le format de message est appliqué aux opérations de lecture, d'écriture et de notification.

Format de données chiffrées

Les données chiffrées sont envoyées via la connexion Fast Pair GATT.

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

Après avoir déchiffré les données chiffrées à l'aide d'une clé secrète partagée, le format est le suivant :

Octet Type de données Description Valeur
0 uint8 Type de message au choix :
  • 0x00 = Clé d'accès du chercheur
  • 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. Nouvelle tentative d'arrêt de l'outil de recherche de FP
11-15 Valeur aléatoire (sel) Variable

Le principal (premier composant lié) est le pont entre l'Association express Chercheur et composants supplémentaires de liaison. La caractéristique doit suivez les consignes suivantes:

  • À la réception d'une requête d'écriture de la part d'un chercheur en combinaison express, le Fournisseur doit
    • Définir l'adresse du composant en cours de liaison
    • Envoyer la clé d'accès au composant en cours de liaison
    • Définir le code d'état sur "En attente", 0x01
  • Lors de la réception d'une requête de lecture avant de recevoir une clé d'accès du composant le Fournisseur doit renvoyer un message contenant
    • Clé d'accès, n'importe quelle valeur
    • Adresse du composant en cours de liaison
    • Code d'état en attente, 0x01
  • Définit le résultat avant que le fournisseur n'envoie la notification au demandeur d'Association express pour 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
    • Clé d'accès, n'importe quelle valeur
    • Adresse du composant en cours de liaison
    • Code d'état de l'échec, 0x02

Consultez le schéma MITM 1 et Pour en savoir plus, consultez le schéma MITM 2.

Configuration requise pour les appareils LE

LE Advertising

Pour le mode détectable ou non visible, le fournisseur doit utiliser la RPA pour pour annoncer les données FastPair.

Capacité de liaison

Pour les appareils compatibles LE, le Seeker doit créer une liaison avec les LE Connection. Une fois la vérification de l'association basée sur les clés par Association express effectuée, le Le fournisseur doit autoriser la liaison avec la RPA et définir la capacité d'E/S sur DisplayYesNo pour valider les clés d'accès pour l'Association express.

Configuration requise pour l'appareil LEA

LEA Advertising

Pour les appareils en mode double: Pour le mode visible, le Fournisseur doit diffuser des annonces pour les données Association express avec des adresse e-mail. Pour le mode non visible, le Fournisseur doit annoncer les données de l'Association express avec la RPA. Nous vous recommandons vivement d'utiliser l'ancienne publicité (BT 4.2) pour prendre en charge pour assurer la rétrocompatibilité. Vous devez modifier IRK chaque fois que la configuration d'usine de l'appareil est rétablie.

Pour les appareils qui ne sont pas en mode double: Pour le mode "visible" ou "non visible", le Fournisseur doit utiliser (BT 5.0) à l'aide d'une RPA pour annoncer les données FastPair.

L'annonce LE Connectable contenant des données du service FP doit inclure : UUID CAS conformément aux Bluetooth Adapter Profile (BAP 1.0.1) et Profil audio courant cette exigence. Pour les publicités non visibles, si l'espace disponible est insuffisant dans l'ancienne publicité en raison de l'inclusion des données sur la batterie et les données SASS, est obligatoire pour inclure l'UUID CAS dans la réponse d'analyse dans ce cas.

Capacité de liaison LEA

Le Seeker doit créer une liaison avec la connexion LE existante. Après avoir réussi vérification de l'Association express basée sur des clés, le Fournisseur doit autoriser l'association à l'adresse d'identité et au RPA alors que le Fournisseur n'utilise pas le mode double, il doit autoriser l'association à la RPA et définir la capacité d'E/S sur DisplayYesNo pour l'Association express Validation des clés d'accès.

Canal de communication interne entre les composants

La connexion GATT existante est conservée pour assurer la protection MITM sur le composants supplémentaires. Le composant principal lié doit gérer le message les livraisons entre le chercheur de l'association express et ses autres composants.

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

  • Une fois la procédure de paire basée sur les clés effectuée sur le composant principal, envoie un message pour modifier la capacité d'E/S restante composants
  • Une fois l'Association express terminée, le composant principal envoie un message pour réinitialiser Capacité d'E/S des autres composants
  • Lors de l'exécution d'une procédure de clé d'accès supplémentaire, le composant principal gère Diffusions de clés d'accès entre le chercheur d'association express et ses autres composants

Délai de modification de la capacité d'E/S

  • Remplacement de la capacité d'E/S par DisplayYesNo lorsque la procédure de couplage basé sur les clés a réussi.
    • Si l'appareil est constitué de plusieurs composants, tous les composants doivent être définis sur DisplayYesNo
    • Le Fournisseur doit faire exception ne pas définir la capacité d'E/S sur DisplayYesNo est Retroactive Pair, dont le bit 3 de requête de couplage basé sur les clés est défini sur 1, voir Message du demandeur au fournisseur
  • Définir la fonctionnalité d'E/S sur le paramètre par défaut
    • Association initiale
      • Si la connexion LE est déconnectée, mettre fin à la session Association express
      • Une fois l'instance principale liée, s'il n'y a pas d'autre écriture de clé d'accès requête dans 15 secondes, mettre fin à la session Association express
      • Après réception d'une demande d'écriture de clé d'accès supplémentaire, si le composant l'association ne l'est pas dans les 15 secondes, mettre fin à la session Association express
      • Une fois tous les composants associés, en l'absence d'écriture de clé de compte, requête dans les 15 secondes, mettre fin à la session Association express
      • Après réception de la demande d'écriture de clé de compte, définissez un délai avant expiration de 15 secondes sur terminer la session Association express
    • Association ultérieure
      • Si la connexion LE est déconnectée, mettre fin à la session Association express
      • Une fois l'instance principale liée, s'il n'y a pas d'autre écriture de clé d'accès requête dans les 15 secondes, mettre fin à la session Association express
      • Après réception d'une demande d'écriture de clé d'accès supplémentaire, si le composant l'association ne l'est pas dans les 15 secondes, mettre fin à la session Association express
      • Lorsque tous les composants sont liés, mettre fin à la session d'association express

Masquer l'indication dans l'interface utilisateur

Lorsque le casque n'est pas prêt à être associé, le Fournisseur doit utiliser type 0b0010 définir une indication de masquage de l'interface utilisateur pour les données de la clé du compte afin d'indiquer au demandeur de ne pas afficher UI d'association ultérieure (voir Charge utile publicitaire: données de compte Association express).

Configuration requise pour les appareils LE Audio

Configuration Bluetooth requise

Consultez les recommandations relatives aux casques Android et LE Audio.

Assistance CTKD

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

Annonce sur les cibles

Un périphérique périphérique doit utiliser une annonce ciblée pour solliciter une connexion à partir d'un appareil central couplé. Annonces ciblées définies dans BAP et CAP de la gestion des connexions conformément au tableau 8.4 CAP 1.0 (p. 48/58).

Assistance GATT EATT pour les serveurs

EATT permet à l'appareil central d'envoyer plusieurs transactions GATT en parallèle. lorsque l'appareil est associé. Pour l'appareil compatible avec la CSIP, elle augmentera les performances de la connexion de profil, avant de commencer à créer rapidement une liaison CSIP procédure pour les autres écouteurs.

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

Configuration requise pour l'Association express

LE Advertising

Pour le mode détectable ou le mode non visible, si l'appareil possède plusieurs les données de l'Association express doivent être annoncées par le composant principal. Si le appareil n'est pas prêt pour une association ultérieure, le composant secondaire peut annoncent les données de l'Association express pour les fonctionnalités étendues. voir Masquer l'indication de l'interface utilisateur

Visibilité du service GATT

La base de données GATT doit être identique pour toutes les connexions GATT du transport LE. LE Audio (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 le demandeur n'accepte pas LEA

Le Fournisseur doit disposer d'une rétrocompatibilité pour le demandeur qui n'a prend en charge LEA.

Composants
  • Fournisseur: A2DP/HFP/LEA
  • Chercheur: A2DP/HFP
Comportement attendu pour la paire initiale / la paire suivante
  • Le fournisseur annonce le service Association express (0xFE2C) par l'adresse d'identité (initiale) ou l'appel RPA (ultérieur).
    • Utiliser l'ancienne version de la publicité
  • Le demandeur reçoit les annonce avec l'adresse d'identité pour la première ou la RPA pour l'association ultérieure
  • Le Seeker 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 0
  • Le fournisseur envoie une réponse de couplage basée sur des clés avec une adresse publique dans l'une des les éléments suivants:
    • Si le type de message 0x01 est utilisé, l'adresse doit être une adresse publique
    • Si le type de message 0x02 est utilisé
      • Bit-0 doit être 0
      • Bit-1 doit être 0
      • L'adresse doit être publique
  • The Seeker crée un lien 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 des clés d'accès par Association express

Scénario 2 – Lorsque le demandeur soutient LEA

Composants
  • Fournisseur
    • Compatible avec A2DP/HFP/LEA
    • Composant unique
  • Chercheur
    • SupportA2DP/HFP/LEA
Comportement attendu pour la paire initiale / la paire suivante
  • Le fournisseur annonce le service Association express (0xFE2C) par l'adresse d'identité (initiale) ou l'appel RPA (ultérieur).
    • Utiliser l'ancienne version de la publicité
  • Le Seeker 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.
    • Bit-0 doit être 0
    • Bit-1 doit être 1
    • L'adresse est l'adresse d'identité
  • Le Seeker crée un lien avec le Connexion LE sur LE Transport
    • 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 des clés d'accès par Association express

Scénario 3 : lorsque le demandeur apporte son soutien à la LEA et au CSIP

Composants
  • Fournisseur
    • Compatible avec A2DP/HFP/LEA
    • Plusieurs composants
      • L'élément principal est BR/EDR/LE
      • Le composant secondaire est LE uniquement
  • Chercheur
    • Compatible avec A2DP/HFP/LEA
Comportement attendu pour la paire initiale / la paire suivante
  • Le composant principal annonce l'Association express les données de service (0xFE2C) avec l'adresse d'identité (initiale) ou l'adresse d'accès principale (RPA, ultérieure).
    • Utiliser l'ancienne version de la publicité
  • L'application Seeker envoie une requête d'association basée sur des clés au composant principal.
    • L'indicateur bit-5 de la requête de couplage basé sur une clé est défini sur 1
  • Le composant principal envoie une réponse d'association basée sur des clés avec un message de type 0x02.
    • Bit-0 doit être 0
    • Bit-1 doit être 1
    • L'adresse est la suivante :
      • La première adresse est l'adresse d'identité du composant principal.
      • La deuxième adresse est l'adresse pouvant être associée pour le composant secondaire, Le second composant utilise également cette adresse pour diffuser des annonces CSIP.
  • Le Seeker crée un lien avec le 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 Seeker crée un lien avec les composant 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 refuser la demande d'association
  • Le demandeur et le fournisseur suivent la procédure de protection MITM pour associer le composant secondaire, le Fournisseur devra mettre en œuvre les deux scénarios
  • L'utilisateur attend d'être lié au composant secondaire

Diagramme séquentiel pour MITM

Cette session vise à décrire la séquence de la procédure de protection MITM.

Obtenir la clé d'accès à partir du composant en cours d'association via une notification

Obtenir la clé d'accès à partir du composant en cours de liaison via la fonction de lecture

Problème connu

FP pour LEA a été optimisé pour fonctionner avec Android V.

À l'inverse, nous avons rencontré de nombreux problèmes avec les casques compatibles avec LEA. mais qu'il manque la bonne implémentation de l'Association express plutôt que LEA (c'est-à-dire que seule l'Association express utilise classique). Plus précisément, par exemple, lorsque le RPA du fournisseur n'est pas généré par la clé de résolution d'identité (IRK) correcte et que l'adresse ne peut pas être résolue. Nous n'avons pas pu tester une liste complète de casques nos tests limités ont révélé différents problèmes, y compris des défaillances pour afficher les notifications relatives à la batterie des écouteurs, absence de commutation audio (SASS) les échecs d'association initiaux et ultérieurs généralisés, etc.

Par conséquent, nous conseillons vivement aux partenaires d'implémenter l'approche Association express-LEA pour les nouveaux appareils et les appareils existants sur le terrain. (via des mises à jour Over The Air) compatibles avec le double mode.