Bluetooth – Synopsis de l’établissement de la connexion

image_pdfimage_print

Principe général

L’établissement d’une connexion entre deux périphériques Bluetooth suit une procédure relativement compliquée permettant d’assurer un certain niveau de sécurité, selon le déroulé suivant :

  1. Mode passif
  2. Phase d’inquisition : découverte des points d’accès
  3. Synchronisation avec le point d’accès (paging)
  4. Découverte des services du point d’accès
  5. Création d’un canal avec le point d’accès
  6. Pairage à l’aide d’un code PIN (sécurité)
  7. Utilisation du réseau

En utilisation normale un périphérique fonctionne en «mode passif», c’est-à-dire qu’il est à l’écoute du réseau.

L’établissement de la connexion commence par une phase appelée «phase d’inquisition» (en anglais «inquiry»), pendant laquelle le périphérique maître envoie une requête d’inquisition à tous les périphériques présents dans la zone de portée, appelés points d’accès. Tous les périphériques recevant la requête répondent avec leur adresse.

Le périphérique maître choisit une adresse et se synchronise avec le point d’accès selon une technique, appelée paging, consistant notamment à synchroniser son horloge et sa fréquence avec le point d’accès.

Un lien s’établit ensuite avec le point d’accès, permettant au périphérique maître d’entamer une phase de découverte des services du point d’accès, selon un protocole appelé SDP (Service Discovery Protocol).

A l’issue de cette phase de découverte de services, le périphérique maître est en mesure de créer un canal de communication avec le point d’accès en utilisant le protocole L2CAP.

Selon les besoins du service, un canal supplémentaire, appelé RFCOMM, fonctionnant au-dessus du canal L2CAP pourra être établi afin de fournir un port série virtuel. En effet certaines applications sont prévues pour se connecter à un port standard, indépendant de tout matériel. C’est le cas par exemple de certaines applications de navigation routière prévues pour se connecter à n’importe quel dispositif GPS Bluetooth.

Cas particulier du pairage

Il se peut que le point d’accès intègre un mécanisme de sécurité, appelé pairage (en anglais pairing), permettant de restreindre l’accès aux seuls utilisateurs autorisés afin de garantir un certain niveau d’étanchéité du picoréseau. Le pairage se fait à l’aide d’une clé de chiffrement communément appelée «code PIN[1]» Le point d’accès envoie ainsi une requête de pairage au périphérique maître. Ceci peut la plupart du temps déclencher une intervention de l’utilisateur pour saisir le code PIN du point d’accès. Si le code PIN reçu est correct, l’association a lieu.

En mode sécurisé, le code PIN sera transmis chiffré à l’aide d’une seconde clé, afin d’éviter tout risque de compromission.

Lorsque le pairage est effectif, le périphérique maître est libre d’utiliser le canal de communication ainsi établi.

A noter : comme une adresse Bluetooth est permanente, le pairage est préservé même si le nom Bluetooth est changé.

De façon plus précise, avec les normes antérieures à la 2.1, les appareils utilisent un code PIN pour le pairage entre deux appareils. Bien que le code puisse comprendre entre 1 et 16 octets, habituellement on travaille sur 4 octets.

Le protocole utilise 3 étapes pour initialiser une connexion :

  1. Création d’une clé d’initialisation : le maître envoie un nombre aléatoire (128bits) à l’esclave. L’esclave envoie son adresse BD_ADDR (48bits). À partir de ce nombre aléatoire, de la BD_ADDR et du code PIN (entré sur les deux périphériques) une clef d’initialisation est calculée.
  2. Création d’une clef “de lien” (Link Key) : chacun des 2 périphériques utilise la clef d’initialisation pour coder un nombre aléatoire (128bits). Les 2 nombres aléatoires obtenus sont échangés, et un algorithme permet de créer une clef de liens à partir de ces 2 nombres.
  3. L’authentification elle-même se déroule en utilisant un quatrième nombre aléatoire : une valeur 32bits (SRES) est créée via un algorithme, elle utilise la clef de lien, le nombre aléatoire et l’adresse BD_ADDR. Les périphériques vérifient mutuellement que les valeurs SRES sont identiques.

[1] Personal Information Number

 

Pour aller plus loin…

 

Leave a Reply

Your email address will not be published. Required fields are marked *