Bluetooth vs 802.11 Similitudes Technologies sans fil ISM 2.4 Ghz Accès LAN Ethernet Différences Débits Porté de fonctionnement Techniques de modulation Nombre d utilisateurs Sécurité Complémentaires
Bluetooth TM Introduction Camille Diou Docteur en microélectronique LABORATOIRE INTERFACES CAPTEURS & MICROÉLECTRONIQUE UNIVERSITÉ DE METZ
Introduction : contexte Standard de liaison radio faible portée Motivations : remplacement de toute la connectique nécessaire à l interconnexion de matériels électroniques fixes ou portables Possibilité 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 : histoire Introduit par Ericsson en 1994 Harald 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
Webographie Special Interest Group (SIG) : Ericsson, IBM, Intel, Nokia, et Toshiba, adopté par 3000 entreprises Version 1.1 disponible gratuitement à : http://www.bluetooth.com IEEE 802.15.1 : standardisation des couches PHY et MAC (liaison physique et contrôle d accès)
Introduction : challenges Utilisation d une bande de fréquences libre d utilisation et universelle Dispositifs mobiles : nécessité de s adapter aux environnement changeant rapidement Implantation la plus petite possible : embarqué Puissance consommée : une faible fraction du dispositif hôte Établissement de la communication automatique Synchronisation des horloges
Introduction : spécifications Bande ISM (Industrial, Scientific & Medical) : 2,4 GHz Les spécifications Bluetooth comprennent : La spécification des protocoles matériels et logiciels Des profiles d utilisation et des contraintes d interopérabilité
Introduction : spécifications Opère dans la bande 2.4 GHz à un débit de données maximal de 1 Mb/s (v1) Étalement de spectre par saut de fréquence (Frequency Hopping Spread Spectrum) : divise la bande en n canaux (2.402-2.480 GHz = 79 canaux) Changement de canal de façon pseudoaléatoire, déterminée par le maître 8 périphériques par piconet (1 maître et 7 esclaves) Piconets combinés en scatternets
Avantages du Frequencyhopping Opère dans un environnement radio bruité Rend le lien robuste: Évite les interférences avec les autres signaux en sautant sur une nouvelle fréquence après avoir émis ou reçu un paquet Paquets courts et sauts de fréquences rapides limitent l impact des fours micro-ondes et autres sources
Usage : casques sans fils Bénéfices pour l utilisateur : Accès à des périphériques multiples Téléphones sans fils Opérations mains-libres
Usage : synchronisation Bénéfices pour l utilisateur : Synchronisation de proximité Maintenance aisée des bases de données Base de données d informations commune
Usage : points d accès données Bénéfices pour l utilisateur : Plus de connecteurs Accès Internet aisé Partage de connexion
Architecture: Réseau Bluetooth (Piconet) Ensemble de périphériques connectés de manière ad-hoc parked slave Une unité se comporte en maître, les autres en esclaves, pour la durée de la connexion piconet Chaque piconet a un unique motif/id de saut slave4 slave3 slave5 slave2 master Piconet parked slave parked slave slave1 slave6 parked slave slave7
Architecture : piconet Toplogie en étoile Maître définit l horloge et le saut de fréquence administre le piconet (polling) peut connecter jusqu à 7 esclaves simultanément ou 250 esclaves inactifs (parqués) Canaux logiques Asynchronous, packet oriented donc connection-less (ACL) Synchronous, connection-oriented - SCO (voice, slot reservation) S P S M=Master S=Slave SB P M S P=Parked SB=Standby
Architecture : scatternet Liaison de piconets colocalisés partageant des périphériques maîtres ou esclaves Un périphérique peut être à la fois maître et esclave Système haute capacité : chaque piconet a une capacité maximale (720 kbps) S S P S SB M=Master S=Slave SB P M M P S P=Parked SB=Standby
Architecture Applications Autres TCS RFCOMM SDP Application Framework & Support Data Audio L2CAP HCL LMP BB RF Logical Link Control & Application Protocol Host Controller Layer Link Manager Protocol Bande de base Radio
Applications Autres TCS RFCOMM SDP Architecture : couche radio Opère dans la bande 2,4 GHz RF Communication en étalement de spectre Saut de fréquence : frequency hopping 79 canaux espacés de 1MHz: 2402 + k MHz et k=0,1,,78 1600 changements/s : hop slot de 625 μs Sauts rapides : nombreux réseaux coexistants Faible taille de paquets : bande bruitée, taux d erreur élevé En-têtes des paquets protégés : correction d erreur Audio Data L2CAP BB HCL LMP
RF Architecture : couche radio Voix et données simultanément: 432 Kbps (full duplex), 721/56 Kbps (asymmetric) ou 3 canaux de voix simultanés en full duplex par piconet (CVSD @ 64 Kbps) ou une combinaison de voix et de données Trois classes de composants: Class 1 20 dbm (100 mw) Power control required Class 2 4 dbm (2.5 mw) Power control required Class 3 0 dbm ( 1 mw)
Applications Architecture : bande de base Autres TCS RFCOMM SDP Data Audio L2CAP HCL Contrôle la couche radio Fournit les séquences de sauts de fréquence Gère le cryptage bas niveau BB RF LMP
BB Architecture : bande de base SCO : Synchronous Connection Oriented Used primarily for voice Time bounded symmetric connection Use reserved, non-polled transmission slots ACL : Asynchronous Connectionless Used primarily for packet data Both symmetric and asymmetric Master controls the link Broadcast messages supported (address 0)
BB Architecture : bande de base Fournit 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
Bluetooth Packet Structure Access code identifies a piconet. Access code used for piconet communication derived from the master s address. Access codes used in inquiry, paging.
Packet Header AM_ADDR: 3 bits: address of slave in piconet. TYPE: One of 16 possible packet types FLOW: Used to stop flow on ACL link. ARQN: Positive or negative acknowlegement. SEQN: Inverted for each new transmitted packet. HEC: Header-error check. The entire header is protected by 1/3 rate FEC.
Applications Autres TCS RFCOMM SDP Architecture : couche LMP Link 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 Audio Data L2CAP BB RF HCL LMP
LMP Architecture : couche LMP Configuration 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ériques Gestion des clefs de liaison
Architecture : couche L2CAP Logical Link Control and Adaptation Protocol : Protocole de contrôle du lien logique et de l adaptation Fonctions de base : Autres TCS RFCOMM SDP 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 Audio Applications Data L2CAP BB RF HCL LMP
Architecture : couche (HCL ou) HCI Autres TCS RFCOMM SDP LMP Module Bluetooth=carte séparée BB (PCI, USB) RF Intègre les couches basses : radio, bande de base, LMP Les 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, accèpte les communications sur le bus physique Audio Applications Data L2CAP HCL
Architecture : couche HCI Host Controller Interface Hôte 1 Hôte 2 Bluetooth hôte Données utilisateur Bluetooth hôte Wireless Drivers des couches supérieures Contrôleur bande de base Contrôleur bande de base Drivers des couches supérieures Firmware link manager Firmware link manager Drivers HCI HCI Firmware HCI Firmware HCI HCI Drivers HCI Drivers de bus Physique Bus physique (USB, PCCard, etc.) Bus physique (USB, PCCard, etc.) Physique Drivers de bus Bus matériel Bus matériel
Architecture : couche application Applications Autres TCS RFCOMM SDP Data Audio L2CAP Les applications accèdent à la couche L2CAP directement ou à travers un protocole tel RFCOMM, TCS ou SDP Modè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 de sécurité, accès réseau en zones publiques BB RF HCL LMP
Profiles Les profiles permettent l interoperabilité entre des matériels de différents fabricants pour des services spécifiques et cas d utilisations Un profile : Définit un ensemble de messages et de procédures Donne une description complète de la communication entre deux éléments
Les profiles Bluetooth Il existe 13 profiles Bluetooth initiaux correspondant à autant de fonctions possibles dans une connexion : K1 : GAP Generic Access Profile K2 : SDAP Service Discovery Application Profile K3 : CTP Cordless Telephony Profile K4 : IP Intercom Profile K5 : SPP Serial Port Profile K6 : HS Headset Profile K7 : DNP Dial-up Networking Profile K8 : FP Fax Profile K9 : LAP LAN (Local Area Network) Access Profile K10 : GOEP Generic Object Exchange Profile K11 : OPP Object Push Profile K12 : FTP File Transfer Profile K13 : SP Synchronization Profile
Les profiles Bluetooth Aux profiles précédents on peut ajouter 12 profiles en phase finale de développement (à cette date): ESDP Play) Extended Service Discovery Profile (Universal Plug & 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 Bluetooth Generic Access Profile Audio/Video Remote Control Profile Ext. Service Discovery Profile (1) Common ISDN Access Profile Service Discovery App. Profile PAN Profile ESDP (2) TCS-BIN Based Profiles Cordless Telephony Profile Intercom Profile Hardcopy Cable Replacement Profile Generic Audio/Video Distribution Profile Adv. Audio Distribution Profile Video Distribution Profile Serial Port Profile Headset Profile Hands-free Profile Dial-up Networking Profile Fax Profile LAN Profile ESDP (3) SIM Access Profile Generic Object Exchange Profile File Transfert Profile Object Push Profile Synchronization Profile Basic Imaging Profile Basic Printing Profile
Les profiles Bluetooth Il existe aujourd'hui +20 profiles Bluetooth, qui correspondent à autant de fonctions possibles dans une connexion Bluetooth : GAP (Generic Access Profile) : assure le fonctionnement des couches de liaison basses. 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)
Les profiles Bluetooth GAVDP (Generic Audio/Video Distribution Profile) Advanced Audio Distribution Profile Video Distribution Profile TCS-BIN Based Profiles CTP (Cordless Telephony Profile) : permet aux téléphones cellulaires de fonctionner comme téléphones sans fil avec un PC ou une station de base. IP (Intercom Profile) : offre une utilisation en mode interphone ou talkie-walkie.
Les profiles 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.
Les profiles 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.
Etablissement de la connexion INQUIRY PAGING CONNEXION
Inquiry A But: Découverte des éléments inconnus Contenu des réponses: Device Address Class of Device
Paging slave D But: Etablir la connexion slave C master A Pratiqué indépendemment pour chaque élément slave B B l élément qui fait le Paging devient le maître
Time Division Duplexing & Mixed Link Example MASTER SCO ACL ACL SCO ACL SCO SCO ACL SLAVE 1 SLAVE 2 SLAVE 3
Établissement de la liaison Les étapes d établissement de la connexion peuvent se résumer 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 dispositif 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 Protocol Protocole de découverte des services L environnement Bluetooth change rapidement Les services disponibles doivent être découverts 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 peut demander à parcourir la liste des classes de services disponibles, ou chercher une classe de services particulière.
Exemple d une connexion réseau But: récupération des mails Les différentes étapes de la connexion: 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 connexion 1 Inquisition (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épond 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)
Établissement d une connexion 2 Découverte de services Le LMP utilise le SDP (Service Discovery Protocol) afin de découvrir les services disponibles sur ce point d accès Canal 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 L2CAP
Établissement d une connexion 3 Sécurité : appairage (pairing) à l aide d un code PIN : génération d une clef à partir du code PIN, et cryptage si nécessaire PPP : l application habituelle peut utiliser PPP au dessus de la couche RFCOMMM Les protocoles réseaux habituels : TCP/IP, etc. peuvent être utilisés pour envoyer des données via la liaison établie
Protocols and Usage Models Usage Models Sync File Transfer Dial-up net. Fax Headset LAN Access Cordless Phone IrMC TCP/IP Audio OBEX AT-commands PPP SDP RFCOMM TCS-BIN L2CAP LMP Baseband
Baseband State Machine Unconnected Standby Standby Connecting States Inquiry (Unknown Address) Page (Known Address) Active States Data Transfer Connected Low Power Modes Park Hold Sniff Release MAC Address Keep MAC Address
Les modes de fonctionnement Active 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 sleep d ici là. Les esclaves actifs sont contactés par le maître par polling. Maître Esclave
Les modes de fonctionnement Sniff mode Mode faible consommation : activité d écoute limitée Le LMP du maître fournit à l esclave un intervalle T sniff,un offset D sniff, et un nombre de tentatives N sniff. L esclave écoute les transmissions à un intervalle fixe T sniff, sur le slot d offset D sniff, et un nombre N sniff 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 après laquelle l esclave revient en mode actif
Les modes de fonctionnement Park 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.
Sécurité 3 modes de sécurité proposés (déployés ou non dans les équipements à la discrétion des fabricants) : mode de sécurité 1 : non sécurisé permet à un appareil d'offrir ses services à tous dispositifs à portée. mode de sécurité 2 : sécurisé au niveau applicatif permet de sécuriser de façon logicielle le dispositif en paramétrant les profiles mode de sécurité 3 : sécurisé au niveau de la liaison intervient sur la couche de liaison et permet d'établir une connexion avec authentification et chiffrement au moyen d'une clé
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
Pairing & Authentication Pairing Authentication Access to both devices Manual input of security code ("PIN") No need to store or remember Based on stored keys No user intervention
Bluetooth security architecture Service Database Authorization - manual or auto trust Authentication - Link Key or PIN Encryption - authentication or PIN Device Database User Interface Security Manager Service Trusted devices - BD_ADDR & Link Key stored and device marked as trusted Paired devices - BD_ADDR & Link Key stored Known devices - BD_ADDR
Bluetooth in the future Bluetooth was originally intended to be a cable replacement, but, has evolved to become an infrastructure for Personal Area Network (PAN) 2001: 10 million devices produced 2003: 70 millions 2004: Bluetooth 2.0 3Mbps theor. 2005: 670 millions 2006: ~1 billion
On April 21, 2010, the Bluetooth SIG completed the Bluetooth Core Specification version 4.0, which includes Classic Bluetooth, Bluetooth high speed and Bluetooth low energy protocols. Bluetooth high speed is based on Wi-Fi, and Classic Bluetooth consists of legacy Bluetooth protocols
Bibliographie Bluetooth Core Specification, Bluetooth Profiles Specification, http://www.bluetooth.com/dev/wpapers.asp Bluetooth Primer, Aman Kansal http://www.bluetooth.com http://www.palowireless.com http://www.softtooth.com http://www.digianswer.com/bluetooth http://www.wirelessdevnet.com http://www.anywhereyougo.com Renaud Bonnet, Les profiles Bluetooth, Décision Micro, 24/12/2002 : http://www.01net.com/article/199493.html http://www.certa.ssi.gouv.fr/site/certa-2007-inf- 003/#SECTION00042000000000000000