Le Bluetooth Low Energy (BLE) est une technologie de communication sans fil orientée vers un faible taux de consommation d'énergie et optimisée pour la transmission de petits paquets de données. Conçu initialement pour les dispositifs connectés (Internet des objets ou IoT), BLE trouve des applications dans les dispositifs médicaux, les capteurs, les accessoires sportifs, et bien plus encore. Tandis que le Bluetooth classique se concentre sur un débit plus élevé, BLE se spécialise dans les communications intermittentcielles pour maximiser l’autonomie des batteries.
L'intérêt principal de BLE repose sur sa conception architecturale qui segmente la communication en plusieurs couches indépendantes. Cette division permet de simplifier l’intégration dans divers types d’appareils et d’optimiser la garantie d’une faible consommation d'énergie.
Le protocole BLE suit une architecture modulaire similaire au modèle OSI, mais adaptée aux exigences de basse consommation et aux transmissions de courte portée. Voici une présentation des principales couches :
La couche physique est responsable de la transmission radio. Elle opère dans la bande ISM de 2,4 GHz et utilise la modulation GFSK (Gaussian Frequency Shift Keying). Selon les versions, la vitesse de transfert peut varier, par exemple à 1 Mbps pour la version LE 1M ou jusqu'à 2 Mbps pour LE 2M.
La couche de liaison gère l'établissement, le maintien et la terminaison des connexions entre les appareils. Elle est également responsable de la création des paquets et intègre des mécanismes de chiffrement pour sécuriser les échanges.
Cette couche joue le rôle de multiplexeur logique. Elle segmente et reforme les paquets de données, permettant ainsi la gestion de plusieurs flux logiques simultanément.
L’Attribute Protocol est central au BLE puisqu’il définit la structure des données échangées entre dispositifs. ATT organise les informations sous forme d’attributs qui sont identifiés par des UUIDs uniques.
GATT est construit sur ATT et structure les données en regroupant des attributs en services et caractéristiques. Ce profil permet aux dispositifs d’exposer et d’accéder aux données de manière hiérarchique et cohérente.
Le Generic Attribute Profile (GATT) est le cœur de la communication BLE. Il définit comment un appareil, agissant en tant que serveur, expose ses services et caractéristiques, et comment un autre appareil, agissant en tant que client, peut interroger ces services pour lire, écrire ou recevoir des notifications.
Un service représente un ensemble logique de fonctionnalités. Chaque service est identifié par un UUID de 16 ou 128 bits. Par exemple, le service de fréquence cardiaque possède un UUID prédéfini (0x180D). Un service est composé de caractéristiques, qui contiennent des données spécifiques. Chaque caractéristique dispose également d’un UUID unique et peut avoir plusieurs propriétés, telles que:
Lorsqu’un client se connecte à un serveur BLE, il entame un processus de découverte afin d’identifier les services disponibles. Une fois les services découverts, le client peut interroger ou modifier les caractéristiques selon les permissions définies par le serveur. Par exemple, un capteur de température peut offrir un service de mesure de température, et le client pourra lire la valeur mesurée et, si nécessaire, recevoir des notifications lors d’un changement de température.
Plusieurs applications pratiques illustrent l'importance de GATT dans la communication BLE :
Composant | Description | Exemple |
---|---|---|
Service | Ensemble de caractéristiques liées regroupées pour une fonction spécifique. | Service de fréquence cardiaque (UUID: 0x180D) |
Caractéristique | Élément de données avec propriétés spécifiques (lecture, écriture, notification). | Mesure de la fréquence cardiaque (UUID: 0x2A37) |
Découverte | Mécanisme par lequel un client identifie les services et caractéristiques d’un serveur. | Recherche des services disponibles après connexion |
La sécurité dans BLE est cruciale, notamment dans les domaines sensibles comme la santé, la domotique et le paiement électronique. Le protocole intègre divers mécanismes pour authentifier les appareils et assurer que seuls les dispositifs autorisés accèdent aux données.
Le processus de pairing concerne l'établissement initial d’une connexion sécurisée entre deux dispositifs. Durant le pairing, les appareils échangent des clés de chiffrement. Après le pairing réussi, le processus de bonding permet de mémoriser ces clés pour des connexions futures, évitant ainsi une nouvelle phase de négociation à chaque connexion.
Dans certains scénarios, le pairing peut être renforcé par une validation utilisateur, par exemple via l'affichage d'un code PIN ou une simple confirmation, rendant difficile pour un attaquant de réaliser une attaque de type "Man-In-The-Middle" (MITM).
BLE offre différents niveaux d’authentification et de sécurité pour répondre aux besoins de divers cas d’usage:
Voici quelques scénarios illustrant l'application des mécanismes de sécurité dans des dispositifs BLE :
Le protocole BLE a été conçu pour optimiser la consommation d’énergie et faciliter l’intégration dans des dispositifs variés. Cependant, il présente aussi certaines limites :
La polyvalence de BLE se reflète dans les nombreux domaines où il est implémenté :
Aspect | Description | Exemple d'application |
---|---|---|
Architecture en couches | Divisée en PHY, Link Layer, L2CAP, ATT et GATT | Moniteurs de santé et dispositifs IoT |
Routes GATT | Services et caractéristiques pour structurer la communication | Gestion des commandes pour ampoules connectées |
Sécurité BLE | Pairing, bonding, utilisation d’AES-CCM et authentifications multiples | Casques sans fil et systèmes de contrôle d’accès |