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
Introduction
Bluetooth TM
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 pseudo-alé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 Frequency-hopping
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)
master
slave5
slave1
Piconet
slave3slave2
slave4
slave7
slave6
parked
slave
parked
slave
parked
slave
parked
slave
Ensemble de périphériques connectés de manière ad-hoc
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
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)
M
S S
S
SB
P
P
M=Master
S=Slave
P=Parked
SB=Standby
Architecture : scatternet
Liaison de piconets co-localisé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)
M
M
S S
S
S
P
SB
SB
P
P
M=Master
S=Slave
P=Parked
SB=Standby
Architecture
Application Framework
& Support
RF
BB
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Audio
Host Controller Layer
Radio
Bande de base
Link Manager Protocol
Logical Link Control &
Application Protocol
Architecture : couche radio
Opère dans la bande 2,4 GHz
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
RF
BB
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Audio
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)
RF
Architecture : bande de base
Contrôle la couche radio
Fournit les séquences de sauts de fréquence
Gère le cryptage bas niveau
RF
BB
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Audio
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
BB
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.
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
RF
BB
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Audio
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
LMP
Architecture : couche L2CAP
Logical Link Control and Adaptation Protocol : Protocole de contrôle du lien logique et de
l’adaptation Fonctions 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
RF
BB
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Audio
Architecture : couche (HCL ou) HCI
Module Bluetooth=carte séparée (PCI, USB)
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
RF
BB
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Audio
Architecture : couche HCI Host Controller Interface
Hôte 1 Hôte 2
Bluetooth hôte Bluetooth hôte
Drivers des
couches
supérieures
Drivers des
couches
supérieures
Drivers HCI Drivers HCI
Drivers de bus Drivers de bus Bus physique
(USB, PCCard, etc.)
Bus matériel
Bus physique (USB,
PCCard, etc.)
Bus matériel
Firmware HCI Firmware HCI
Firmware link
manager
Firmware link
manager
Contrôleur
bande de base
Contrôleur
bande de base
Wireless
Données utilisateur
HCI HCI
Physique Physique
Architecture : couche application
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
RF
BB
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Audio
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 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
Generic Access Profile
Serial Port Profile
Generic Object Exchange Profile
Generic Audio/Video Distribution Profile
Les profiles Bluetooth
Ext. Service Discovery Profile (1)
Service Discovery App. Profile
Common ISDN Access Profile
PAN Profile
ESDP (2)
Audio/Video Remote
Control Profile Cordless Telephony Profile
Intercom Profile
Hardcopy Cable Replacement Profile
Adv. Audio Distribution Profile
Video Distribution Profile
SIM Access Profile
File Transfert Profile
Object Push Profile
Synchronization Profile
Basic Imaging Profile
Basic Printing Profile
Headset Profile
Hands-free Profile
Dial-up Networking Profile
Fax Profile
LAN Profile
ESDP (3)
TCS-BIN Based Profiles
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.
…
INQUIRY PAGING CONNEXION
Etablissement de la connexion
A
But: Découverte des éléments inconnus
Contenu des réponses:
Device Address
Class of Device
Inquiry
B
slave B
master A
slave C
slave D
Paging But:
Etablir la connexion
Pratiqué indépendem-ment pour chaque élément
l’élément qui fait le Paging devient
le maître
ACL
MASTER
SLAVE 1
ACL
SLAVE 2
SLAVE 3
ACL SCO SCO SCO SCO ACL
Time Division Duplexing & Mixed Link Example
É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
PPP
Protocols and Usage Models
RFCOMM
TCP/IP
Baseband
L2CAP
OBEX
IrMC
TCS-BIN
Audio
Sync Dial-up
net.
Usage Models
File Transfer
AT-commands
Fax Headset LAN
Access
Cordless Phone
SDP
LMP
Baseband State Machine
Standby
Inquiry (Unknown
Address)
Page (Known
Address)
Connected
Data
Transfer
Park Hold Sniff
Unconnected
Standby
Connecting
States
Active
States
Low Power
Modes
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 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 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
Access to both devices
Manual input of security code ("PIN")
No need to store or remember
Based on stored keys
No user intervention
Authentication
Bluetooth security architecture
Security
Manager
Device
Database
Service
Database
“Service”
User Interface
Known devices - BD_ADDR
Paired devices - BD_ADDR & Link Key stored
Trusted devices - BD_ADDR & Link Key stored and device marked as trusted
Encryption - authentication or PIN
Authentication - Link Key or PIN
Authorization - manual or auto trust
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