– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 1 Camille Diou Docteur en microélectronique PAN : PAN : les réseaux les réseaux personnels personnels et et Bluetooth Bluetooth Bluetooth TM LABORATOIRE INTERFACES CAPTEURS & MICROÉLECTRONIQUE UNIVERSITÉ DE METZ
88
Embed
Bluetooth personnels les réseaux Bluetooth TMuv.utbm.free.fr/SM51/Cours_Bluetooth_C_Diou.pdf · GPRS UMTS Satellite WPAN Bluetooth ... d’attachement/détachement d’esclaves de
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
PAN : les réseaux personnels et PAN : les réseaux personnels et BluetoothBluetooth
Introduction au BluetoothPositionnement et usageArchitectureLes profilesÉtablissement d’une connexionLes états de fonctionnementLes modes de fonctionnementÉtablissement de la liaisonSécurité
Introduction : contexteStandard de liaison radio faible portéeMotivations : remplacement de toute la connectique nécessaire à l’interconnexion de matériels électroniques fixes ou portablesPossibilité d’accéder à des réseaux locaux (LANs) ou de réaliser des picoréseaux (piconets)Objectifs :� Faible consommation� Faible coût� Interopérabilité totale sans intervention de l’utilisateur
Introduction : histoireIntroduit par Ericsson en 1994Harald Blaatand « Bluetooth » II, roi du Danemark de 940 à 981. Sa pierre tombale indiquait :� Harald a christianisé la Scandinavie� Harald a contrôlé le Danemark et la Norvège� Harald pensait que les ordinateurs portables et les téléphones mobiles
devaient communiquer sans fils
Special Interest Group (SIG) : Ericsson, IBM, Intel, Nokia, et Toshiba, adopté par 3000 entreprisesVersion 1.1 disponible gratuitement à : http://www.bluetooth.comEn cours de normalisation : norme IEEE 802.15.1
Introduction : challengesUtilisation d’une bande de fréquences libre d’utilisation et universelleDispositifs mobiles : nécessité de s’adapter aux environnement changeant rapidementImplantation la plus petite possible : embarquéPuissance consommée : une faible fraction du dispositif hôteÉtablissement de la communication automatiqueSynchronisation des horloges
Introduction : spécificationsBande ISM (Industrial, Scientific & Medical) : 2,4 GHz� Plus qu’une radio : une solution end-to-end
Les spécifications Bluetooth comprennent :� La spécification des protocoles matériels et logiciels� Des profiles d’utilisation et des contraintes d’interopérabilité
IEEE 802.15.1 : standardisation des couches PHY et MAC (liaison physique et contrôle d’accès)
802.15 définit les WPANWireless Personal Area Networks
Faible portéeFaible consommationFaible coûtRéseaux réduitsCommunication de périphériques dans un espace d’opération personnel (Personal Operating Space)
Introduction : spécificationsOpère dans la bande 2.4 GHz à un débit de données maximal de 1 Mb/sÉtalement de spectre par saut de fréquence (FrequencyHopping Spread Spectrum) : divise la bande en n canaux (2.402 - 2.480 GHz = 79 canaux)Changement de canal de façon pseudo-aléatoire, déterminée par le maître8 périphériques par piconet (1 maître et 7 esclaves)Piconets combinés en scatternets
Usage : synchronisationBénéfices pour l’utilisateur : � Synchronisation de proximité� Maintenance aisée des bases de données� Base de données d’informations commune
Architecture : couche radioOpère dans la bande 2,4 GHzCommunication en étalement de spectre � Saut de fréquence : frequency hopping� Sauts rapides : nombreux réseaux coexistants� Faible taille de paquets : bande bruitée, taux d’erreur élevé
Mode voix en CVSD : supporte des taux d’erreur élevéEn-têtes des paquets protégés : correction d’erreurSauts de fréquence : � 2402 + k MHz et k=0,1,…,78 � 1600 changements/s : hop slot de 625 µs
Architecture : bande de baseContrôle la couche radioFournit les séquences de sauts de fréquenceGère le cryptage bas niveauDeux type de liaisons :� SCO : Synchronous Connection Oriented : synchrone orienté
connexion, typiquement pour la voix� ACL : Asynchronous Connection less : asynchrone sans connexion,
pour les applications de transfert de données ne nécessitant pas de liaison synchrone
Architecture : bande de baseFournit les fonctionnalités requises pour : � la synchronisation des horloges, � l’établissement des connexions, � l’inquisition (inquiry) des adresses des périphériques présents, � la correction d’erreur des paquets
5 canaux différents : � information de contrôle, � information de gestion de liaison, � données synchrones, � données asynchrones, � données isosynchrones
Architecture : couche LMPLink Manager Protocol : Protocole de gestion de liaison� Gestion des piconets� Configuration de la liaison� Fonctions de sécurité
Fournit les fonctionnalités de :� d’attachement/détachement d’esclaves� de basculement de rôle maître/esclave� d’établissement des liaisons ACL/SCO� de gestion des modes low-power : hold, sniff et park
Architecture : couche LMPConfiguration de la liaison :� Définition des paramètres de liaison� Qualité de service (QoS : Quality of Service)� Contrôle de la consommation
Authentification des périphériquesGestion des clefs de liaison
Architecture : piconetEnsemble de périphériques connectés de manière ad-hocUne unité se comporte en maître, les autres en esclaves, pour la durée de la connexion piconetLe maître définit l’horloge et le saut de fréquenceChaque piconet a un unique motif/ID de saut Chaque maître connecter jusqu’à 7 esclave simultanément ou 200+ esclaves inactifs (parqués)
Architecture : scatternetLiaison de piconets co-localisés partageant des périphériques maîtres ou esclavesUn périphérique peut être à la fois maître et esclaveRadios are symmetric (same radio can be master or slave)Système haute capacité : chaquepiconet a une capacité maximale (720 Kbps) M
Architecture : couche L2CAPLogical Link Control and Adaptation Protocol :Protocole de contrôle du lien logique et de l’adaptationFonctions de base :� Multiplexage : plusieurs applications peuvent utiliser un même lien
entre deux périphériques simultanément� Segmentation et ré-assemblage : réduction de la taille des paquets
fournis par l’application à la taille acceptée par la bande de base ; L2CAP = 64 ko, BB = 2745 bits
� Qualité de service : les applications peuvent demander de la QoS sur des paramètres tels bande passante, latence et retard ; L2CAP vérifie si la liaison peut satisfaire la demande et l’effectue dans le cas où c’est possible
Architecture : couche HCIModule Bluetooth = carte séparée (PCI, USB) Intègre les couches basses : radio, bde base, LMPLes données doivent traverser un bus physique : nécessité d’introduire deux couches supp :� Driver HCI : driver pour le HCI, réside dans l’hôte (logiciel), formate les
données� Host Controller Interface : réside dans le matériel bluetooth, accepte
Architecture : couche applicationLes applications accèdent à la couche L2CAP directement ou à travers un protocole tel RFCOMM, TCS ou SDPModèles d’utilisation :� Téléphone trois-en-un : un seul combiné fonctionne comme intercom,
téléphone, ou mobile selon les services disponibles� L’attaché-case : liaison portable / téléphone� Synchronisation automatique� Casques sans-fils� Kits mains libre pour véhicule� Domotique, partage de données lors de réunions, alarmes, systèmes
Les profiles BluetoothAux profiles précédents on peut ajouter 12 profiles en phase finale de développement :� ESDP Extended Service Discovery Profile (Universal Plug & Play)� A2DP Advanced Audio Distribution Profile � AVRCP Audio Video Remote Control Profile� BIP Basic Imaging Profile� BPP Basic Printing Profile� CIP Common ISDN Access Profile� GAVDP Generic Audio Video Distribution Profile� HFR Hands-Free Profile� HCRP Hardcopy Cable Replacement Profile� HID Human Interface Device Profile� PAN PAN (Personal Area Networking) Profile� SAP SIM Access Profile
Les profiles BluetoothIl existe aujourd'hui 21 profiles Bluetooth, qui correspondent àautant de fonctions possibles dans une connexion Bluetooth :
GAP (Generic Access Profile) : assure le fonctionnement des couches de liaison basses. � AVRCP (A/V Remote Control Profile) � ESDP (Extended Service Discovery Profile)� CIP (Common ISDN Acces Profile)� SDAP (Service Discovery Application Profile) : permet à une
application au sein d'un équipement Bluetooth de découvrir les services Bluetooth d'autres équipements et d'acquérir les données nécessaires à l'établissement d'une connexion.
� PAN (Personal Area Network Profile)� HCRP (Hardcopy Cable Replacement Profile)
Les profiles BluetoothIl existe aujourd'hui 21 profiles Bluetooth, qui correspondent àautant de fonctions possibles dans une connexion Bluetooth :
SPP (Serial Port Profile) : permet l'émulation d'un connecteur série. 3HS (Headset) : communication sur oreillette.� HP (Headset Profile) : permet l’utilisation de casques sans fil avec les
dispositifs audio (téléphones, lecteurs MP3)� HFP (Hands Free Profile) : permet l’utilisation en mode mains libres
de dispositifs audio (téléphones, interphones, etc.)� DNP (Dial-Up Networking Profile) : autorise la connexion à un
modem, ou l'utilisation d'un tél. mobile comme modem.� FP (Fax Profile) : service fax.� LAP (Local Area Network Profile) : donne accès au réseau local ou
permet le fonctionnement en mode réseau local.� SAP (SIM Access Profile)
Les profiles BluetoothIl existe aujourd'hui 21 profiles Bluetooth, qui correspondent àautant de fonctions possibles dans une connexion Bluetooth :
GOEP (Generic Object Exchange Profile) : profile générique d'échange d'objets pour synchronisation, FTP, Push...� FTP (File Transfer Profile) : service situé du côté de l'application qui
provoque un transfert de fichiers vers un équipement Bluetooth.� OPP (Object Push Profile) : service situé du côté de l'application qui
fait du Push vers un appareil Bluetooth, typiquement pour l'expédition d'une carte de visite.
� SP (Synchronisation Profile) : service situé du côté de l'application qui lance une opération de synchronisation vers un équipement BT.
Établissement d’une connexionExemple d’un connexion réseaux : récupération des mailsLes différentes étapes de la connexions :� Inquisition (Inquiry)� Paging� Établissement de la liaison (Link establishment)� Découverte de services (Service discovery)� Canal L2CAP� Canal RFCOMM� Sécurité� PPP� Protocoles réseaux
Établissement d’une connexionInquisition (Inquiry) : Le dispositif qui atteint un nouvel environnement initie une inquisition afin de trouver les points d’accès accessibles :
� Tous les points d’accès présents répondent par leur adresse� Le dispositif choisit l’un des points d’accès qui répondent
Paging� Procédure en bande de base� Synchronisation du dispositif avec le point d’accès� Offset et phase d’horloge du saut de fréquence
Établissement de la liaison� LMP, Liaison synchrone (SCO) ou asynchrone (ACL)
Découverte de services� Le LMP utilise le SDP (Service Discovery Protocol) afin de découvrir
Établissement d’une connexionCanal L2CAP� À partir des information du SDP, un canal L2CAP est créé vers le point
d’accès� Directement utilisé par l’application ou via un autre protocole (ex:
RFCOMM)
Canal RFCOMM : permet l’émulation d’un port série au-dessus de L2CAPSécurité : appairage (pairing) à l’aide d’un code PIN : génération d’une clef à partir du code PIN, et cryptage si nécessairePPP : l’application habituelle peut utiliser PPP au dessus de la couche RFCOMMMLes protocoles réseaux habituels : TCP/IP, etc. peuvent être utilisés pour envoyer des données via la liaison établie
différentes : séquence de saut d’inquisition (inquiry hop sequence) appelé train. Un péri-phérique qui peut être interrogé écoute l’une de ces 16 fréquences
Inquiry : interrogation– Le temps total requis pour
cette opération est de 10,24 secondes mais si un nombre suffisant de réponses est récolté dans un intervalle de temps plus faible, l’inquiry peut être interrompu.
Inquiry scan : recherche d’ interrogation� attente pendant un temps
suffisant à la couverture de 16 fréquences
� l’entrée dans l’état inquiry scan a lieu depuis l’état standby ou l’état connected ; si elle se fait depuis l’état connecté, les liaisons SCO en opération sont maintenues alors que les liaisons ACL sont suspendues.
� la présence de liaisons SCO peut prolonger les procédures d’inquiry
Les étatsInquiry response :réponse à l’interrogation� Après avoir émis sa réponse,
il poursuit la phase d’inquiryscan sans attendre d’acquittement.
� Le dispositif en phase d’inquiry peut ensuite continuer cette procédure aussi longtemps qu’il le désire. Il pourra utiliser les informations contenues dans la réponse plus tard, pour passer à l’état page.
Les étatsPage : mise en page� Nécessite uniquement
l’adresse du dispositif cible, mais la connaissance de son horloge accélère la procédure
� Le dispositif initiant la mise en page(paging) est appelé « maître ». À partir de l’information sur l’horloge, il détermine à quel endroit de la séquence de sauts l’esclave est en train d’écouter en mode page scan. Cette estimation peut se révéler fausse.
Les modes de fonctionnementActive mode� L’unité participe activement au canal� Maître et esclaves transmettent sur les différents slots en alternance� Le maître transmet sur les slots pairs, l’esclave adressé sur les impairs� Des transmissions régulières sont effectuées pour conserver la
synchronisation de l’esclave avec le canal� Amélioration pour l’économie d’énergie : le maître informe l’esclave sur
l’instant où il sera adressé : l’esclave peut donc passer en mode sleepd’ici là.
� Les esclaves actifs sont contactés par le maître par polling.
Les modes de fonctionnementSniff mode� Mode faible consommation : activité d’écoute limitée� Le LMP du maître fournit à l’esclave un intervalle Tsniff,un offset Dsniff, et
un nombre de tentatives Nsniff.� L’esclave écoute les transmissions à un intervalle fixe Tsniff, sur le slot
d’offset Dsniff, et un nombre Nsniff de fois.
Hold mode� Le lien ACL vers l’esclave est suspendu : l’esclave ne supporte donc
plus les paquets ACL sur le canal, mais les éventuelles liaisons SCO continuent d’être supportées
� L’esclave conserve son adresse de membre actif.� Le maître et l’esclave se mettent d’accord pour la durée du mode hold
Les modes de fonctionnementPark mode� Mode très basse consommation : l’activité est minimale� L’esclave rend son adresse de membre actif et reçoit une adresse de
membre parqué sur 8 bits ainsi qu’une adresse de requête d’accès sur 8 bits également
� L’adresse de membre parqué est utilisée par le maître pour déparquer l’esclave alors que l’adresse de requête d’accès est utilisée par l’esclave afin de demander au maître d’être déparqué
� En plus de permettre l’économie d’énergie, le mode park permet au maître d’avoir plus de 7 esclaves dans le piconet.
Établissement de la liaisonDès l’état de connexion atteint� Le LMP démarre l’établissement de la liaison : il utilise ses paquets
LMP envoyés par la bande de base à la place des paquets L2CAP� Le paquet LMP consiste en un opcode, un ID de transaction, et un
contenu dépendant de l’opcode. � Les paquets sont envoyés aux LMP plutôt qu’au L2CAP et aux couches
hautes. � Les étapes d’établissement de la connexion peuvent résumées en :
� Les paquets POLL et leurs réponses sont utilisés pour échanger les informations de configuration sans interaction de l’hôte
� Envoi de LMP_host_connect_request� Réponse du disp. distant avec LMP_not_accepted ou LMP_accepted� L’esclave qui répond peut demander l’échange des rôles. Le premier
dispositif répond avec un paquet approprié pour accepter ou refuser la requête
� La liaison est maintenant établie au niveau du gestionnaire de liaison, mais l’application peut ne pas savoir quels sont les services disponibles
Service Discovery ProtocolProtocole de découverte des services� L’environnement Bluetooth change rapidement� Les services disponibles doivent être découvert � SDP : moyen pour les applications de découvrir les services
disponibles ainsi que leurs caractéristiques� Les périphériques proposant un service exécutent un serveur SDP, les
périphériques recherchant un service exécute un client SDP� Un client est exécuté par application, mais un périphérique exécute un
seul serveur SDP qui maintient un enregistrement pour chaque service proposé par le dispositif Bluetooth
� Un client peut demander à parcourir la liste des classes de services disponibles, ou chercher une classe de services particulière.
� Lorsqu’il y a peu de services, ils peuvent ne pas être divisés en classes et les handles sont directement envoyés à l’esclave, sinon des descripteurs de classes sont envoyés et le client peut effectuer une recherche détaillée au sein d’une classe.
Liaison L2CAP� Évènements : messages reçus des couches inférieures (LMP ou HCI)
ou supérieures (applications)� Actions : réponses aux évènements renvoyées par la couche L2CAP
Séquence pour l’établissement d’une connexion� Évènement/Action 0 : demande de connexion d’une couche de plus
haut niveau, envoi d’un paquet de requête de connexion par le L2CAP au L2CAP distant. Paquet transporté par la bande de base.
� Évènement / Action 1 : réception du paquet précédent par le L2CAP distant, réponse par un paquet de réponse à la connexion. Le L2CAP aura interrogé l’application cible avant de prendre en charge le paquet.
� Évènement / Action 2 : réception du paquet de réponse et demande des paramètres de configuration (QoS)
� Évènement / Action 3 : demande de configuration et envoi de la réponse à la demande de configuration. Le L2CAP peut envoyer sa propre demande de configuration pour des paramètres additionnels
� Évènement / Action 4 : demande de configuration précédente et envoi de la configuration
SécuritéRéseau sans fil : accessible à tous� Les communications doivent être cryptées� L’accès aux périphériques doit être restreint aux dispositifs autorisés � Ces deux fonctions sont prises en charge par la bande de base,
l’application pouvant crypter elle-même les données pour augmenter la sécurité
� 4 valeurs sont utilisées :� L’adresse du dispositif, publique� Une clef d’authentification sur 128 bits, privée� Une clef de cryptage configurable de 8 à 128 bits, privée� Un nombre aléatoire
� La procédure nécessite de connaître un code PIN pour pouvoir accéder à un périphérique
SécuritéPrincipale étapes de la procédure� Une clef d’initialisation est générée à l’aide du code PIN, de la longueur
du code PIN, d’un nombre aléatoire et de l’adresse du périphérique� Une procédure d’authentification est engagée par le vérifieur en
utilisant une technique de réponse à un challenge :� Un nombre aléatoire est envoyé par le vérifieur� À partir de ce nombre, de la clef d’initialisation, et de l’adresse, le
demandeur peut générer une réponse connue par le point d’accès� Cette réponse est renvoyée et vérifiée par le vérifieur
� Le demandeur peut initier une procédure d’authentification du vérifieur équivalente
SécuritéPrincipale étapes de la procédure� Chaque unité Bluetooth possède une clef unit key stockée en ROM ;
celle-ci est cryptée à l’aide de la clef d’initialisation puis envoyée à l’autre unité qui la décrypte à l’aide de la clef échangée précédemment
� Le second dispositif combine cette clef avec sa propre unit key afin de générer un clef de liaison, si les deux périphériques gèrent cette technique ; sinon l’une des deux clefs sert de clef de liaison
� La clef de liaison est communiquée au premier dispositif et la clef d’initialisation est annulée
� Une clef de cryptage est générée à partir de la clef de liaison, d’un nombre aléatoire, et d’un nombre généré par une procédure prédéfinie.
� Cette clef de cryptage peut être générée indépendamment par les deux dispositifs sans échange d’information
� La clef d’authentification (de liaison) peut être conservée en mémoire pour une liaison ultérieure : toutes les étapes de génération etd’échange de clefs seront alors inutiles
• Les nombres LK_RANDA et LK_RANDB sont échangés en leur appliquant un XOR avec la clef de liaison courante :
- A envoie K ⊕⊕⊕⊕ LK_RANDA
- B envoie K ⊕⊕⊕⊕ LK_RANDB
• Chaque unité peut donc reconstituer la clef LK_RANDx de l’autre unité, et créer la clef de liaison finale par simple XOR entre les deux clefs d’unité :
BibliographieBluetooth Core Specification, Bluetooth Profiles Specification, http://www.bluetooth.com/dev/wpapers.aspBluetooth Primer, Aman KansalRenaud Bonnet, Les profiles Bluetooth, Décision Micro, 24/12/2002 : http://www.01net.com/article/199493.html