Title: Spcification Bluetooth' Scurit'
1Spécification Bluetooth. Sécurité.
2Sécurité Bluetooth Bilan des faiblesses
- Spécification Bluetooth.
- Introduction
- Les différentes couches
- Mécanismes de découverte et connexion
- La sécurité Bluetooth.
- Ce quon peut en attendre.
- Flexibilité, mise en place.
- Vulnérabilités
- Quelques services (profiles)
3Introduction à Bluetooth
- Spécification de communications sans fil, courte
distance et faible consommation dénergie,
destinée à des éléments tels que PDA, téléphones,
PC, - Développé à lorigine par Ericsson création en
1998 du Bluetooth Special Interest Group, avec
Ericsson, IBM, Intel, Nokia, Toshiba. Aujourdhui
plus de 2000 entreprises y participent.http//www
.bluetooth.org - Débit
- Voix 64kbps, Max 3 simultanément.
- Données Symétrique 433 kbps, Asymétrique
723/57 kbps. - Distance de transmission 10 30 mètres.
4CouchePhysique
- Bande de fréquence des
- 2.4 GHz (micro-ondes)
- ISM (Industrial, Scientific Medical) sans
licence.
5Introduction à Bluetooth
6Couche Physique
- Communication entre un maître et jusquà sept
esclaves (piconet). Communication entre plusieurs
piconet scatternet.
7Couche physique
- Time Division Duplex Canal physique divisé en
slots de 625µs. Communication alternée entre le
maître et les esclaves.
8Couche physique
- Possibilité d'émettre sur plusieurs slots (5 max)
9Couche physique
- Canal de communication composé de 72 sauts de
fréquences (Frequency Hopping) 1600 sauts par
seconde. - Séquence de sauts définie à partir de ladresse
Bluetooth BD_ADDR du maître (48 bits). Position
dans la séquence de saut (synchronisation)
déterminée à laide de lhorloge du maître (27
bits). - Modulation de fréquence (Gaussian Frequency Shift
Keying).
10Couche physique
- Bluetooth enhanced AFH Adaptive frequency
Hopping - V1.2 de la norme
- Améliorer la cxistence avec WiFi (partage de la
bande des 2,4GHz) - Pkt error rate
- Signal strength
11Couche Liaison (Baseband)
- 2 types de liens
- SCO Synchronous Connection-Oriented link
- QoS de type commutation de circuit réservation
de slots. - Transport de la voix.
- 64 kb/s.
- 1 Master et 3 esclaves
- TSCO délai entre 2 envoies du Maître.
- Esclave répond dans le slot suivant.
- Pas de CRC, jamais retransmis.
- ACL Asynchronous Connection-Less link.
- Transport de données.
- Utilise les slots non réservés par SCO
- Gestion de la retransmission de paquets
endommagés. - Débits Symétrique 433.9 kbps, Asymétrique
(723.2kbps, 57.6kbps)
12Baseband
- Adresse Bluetooth BD_ADDR
- 48 bits
- A la manière de IEEE802
LAP Lower Address Part
Ex 0080982453BC
UAP Uper Address Part
NAP Non-significant Address Part
13Baseband
14Baseband/Access Code
- Access Code
- Identifie le canal de communication
- 3 types
- CAC Channel Access Code
- identification du piconet.
- Généré à partir de l'_at_ du maître.
- DAC Device Access Code
- utilisé dans la phase de paging.
- Généré à partir de l'_at_ de l'unité visée.
- IAC Inquiry Access Code
- utilisé dans la phase d'Inquiry
- GIAC General IAC utilisé pour la découverte
d'autres unités - DIAC Dedicated IAC utilisé pour la découverte
des unités qui partagent des caractéristiques
communes.
15Baseband/Access Code
- Access Code
- Préambule
- 2 types suivant le 1er bit suivant.
- Éviter un courant continu pour faciliter la sync .
16Baseband/Access Code
- Sync word
- À partir des _at_ Bluetooth
- Différent suivant le type d'AC (IAC, DAC, CAC)
- Trailer
- 2 types suivant le 1er bit précédent.
- Pas forcement présent dans DAC, IAC.
- Utile pour les paquets de synchronisation (FHS).
17Baseband/Header
- AM_ADDRESS adresse temporaire d'une unité active
du piconet000 broadcast. - Type
- 16 ?
- Interprétation ? selon SCO ou ACL.
- Donne le nombre de slots occupés par le paquet.
18Baseband/Header/Type
Paquets de contrôle
1 slot
3 slots
5 slots
19Baseband/Header/Type
- Quelques paquets
- ID simplement Access Code DAC ou IAC utilisé
pour paging, inquiry. Donc pas dans le tableau
précédent (pas de Header!) - NULL ACHeader, payload 0. Utilisé pour Ack
des données. - POLL ACHeader, payload 0. Impose une réponse
(Ack) de la part du correspondant. - FHS synchronisation fournit l'horloge de
l'émetteur et son _at_. - DM1 contrôle et données sur SCO ou ACL.
- HV dans les liens SCO transport de la voix.
- DV données et voix. Retransmission possible des
données, pas de la voix. - DM dans les liens ACL data ou contrôle. FEC
(correction) CRC (détection) - DH idem DH, sans le FEC.
20Baseband/Header
- Flow
- Pour ACL
- Contrôle de flux (STOP)
- ARQN
- Pour acquitter des données
- SEQN
- Pour s'assurer qu'on acquitte bien la bonne
trame alterné après chaque transmission. - Permet de détecter les doublons.
- HEC Header Error Check (cf CRC)
21Baseband/Payload
- Payload SCO 240 bits, pas d'en-tête
- Payload ACL
- Header longueur de la charge utile, couche
supérieure LMP, L2CAP. 8 ou 16 bits. - Body 0 - 339 octets.
- CRC 16 bits.
22Baseband/Payload
23Établissement de connexiondécouverte du
voisinage.
- INQUIRY
- Unité "découvrable" dans l'état INQUIRY SCAN
- Parcours une séquence de sauts de fréquence
définie à partir d'une adresse de référence,
partagée par tous (LAP 0x9E8B33). - Séquence composée de 32 sauts.
- Change de fréquence tous les 1,28s
- Attend la réception d'un GIAC ou DIAC.
- Répond avec un paquet FHS (i.e. _at_ et horloge)
- Unité qui effectue une découverte de réseau est
dans l'état INQUIRY - envoie des paquets ID, courts (simplement AC)
- envoie GIAC ou DIAC suivant le type d'unité
cherché. - n'envoie aucune info le concernant.
- durée de 10s max.
24Établissement de connexion
- Paging
- Unité "connectable" dans l'état PAGE SCAN
- Parcours une séquence de sauts de fréquence
définie à partir de SON adresse bluetooth. - Séquence composée de 32 sauts. Change de
fréquence tout les 1.28s - écoute et attente de son DAC durant Tw page
scan. - période de scan Tpage scan
- Après réception, passe dans l'état "Slave
Response" puis répond avec un paquet "ID"
contenant son DAC. Attend alors un Paquet FHS.
f
1.28
t
T w page scan
T page scan
25Établissement de connexion
- Paging
- Unité cherchant à se connecter dans l'état PAGE
- Envoi un "page" i.e. un paquet ID avec le DAC de
l'équipement cible. - séquence de saut connaît LAP (dérive de la
BD_ADDR du futur esclave), suite à Inquiry ou
mémorisé lors d'une communication antérieure. - phase possède l'horloge (suite à Inquiry) du
futur esclave ou approximation de l'horloge
(mémorisée lors d'une communication précédente,
mais dérive). - Utilisation de trains de fréquences, centrés
autour de la fréquence supposée - trains A f(k-8) f(k).. f(k7)
- trains B f(k-16).. f(k-9), f(k8)f(k15)
26Établissement de connexion
- Paging
- Unité cherchant à se connecter dans l'état PAGE
- paquets ID très courts on en envoie 2 par
slots - attente d'une réponse ID avec le DAC du futur
esclave - répond avec un paquet FHS et passe dans l'état
"Master Response"
27Établissement de connexion
28Établissement de connexion
29Établissement de connexion
30Sécurité Bluetooth Bilan des faiblesses
- Spécification Bluetooth.
- Introduction
- Les différentes couches
- Mécanismes de découverte et connexion
- La sécurité Bluetooth.
- Ce quon peut en attendre.
- Flexibilité, mise en place.
- Vulnérabilités
- Quelques services (profiles)
31Sécurité
- Assurer la sécurisation de la couche liaison
- Authentification des unités Bluetooth.
- Confidentialité des échanges.
- 3 niveaux pour mettre en place de façon flexible
ces mécanismes - Mode 1 Pas de sécurité
- Mode 2 Sécurité au niveau service (après
létablissement de la connexion L2CAP). Mise en
place dun security manager qui gère les accès
aux différents services - Ouvert à tous.
- Authentification nécessaire.
- Authentification et Autorisation nécessaires.
- Mode 3 Sécurité au niveau liaison (LMP)
32 33Sécurité
- Éléments intervenants
- BD_ADDR (48 bits).
- Clefs de liaison (128 bits).
- KAB combination key.
- KA unit key.
- KMASTER master key.
- KINIT initialisation key.
- Clefs de chiffrement KC (8-128 bits).
- Aléas (128 bits).
- PIN (8-128 bits).
34Sécurité
- Mise en place
- Association de deux unités Bluetooth (bonding)
- Création dune clef dinitialisation.
- Création dune clef de liaison.
- Échange de la clef de liaison.
- Authentification.
- Création dune clef de chiffrement (optionnel).
- pairing.
- Connexion dunités déjà associées préalablement
(possèdent déjà une clef de liaison) - Authentification.
- Création dune clef de chiffrement (optionnel).
35Sécurité
- Génération des clefs utilisation de SAPHER,
Cylink. - Chiffrement par blocs de 128 bits.
- Candidat à lAES, NESSIE.
- Utilisé dans
- E1 (Authentification).
- E21(Unit key, Combination key).
- E22 (Initialisation, clef de groupe).
- E3 (clef de chiffrement).
- Légère Modification de SAFER pour empêcher une
réversibilité.
36Sécurité
- E0 Chiffrement par flux
- Composition
- IV Kc (8-128 bits), BD_ADDR (48 bits), aléa
(128), horloge (26). - Quatre LFSR 25, 31, 33 et 39 bits.
- Un mélangeur.
- 2 niveaux.
37(No Transcript)
38Sécurité
- Chiffrement de la payload
- Format de la payload
39Sécurité
- Authentification, pairing
- A,B honnêtes, C attaquant.
- - Génération de KINIT
- Une seule donnée secrète le code PIN.
40Sécurité
- - Création et échange de la clef de liaison
- Échanges daléas chiffré par KINIT (Xor).
- - Authentification de B par A
41Faiblesses protocolaires
- Conséquences
- Confidentialité perdue.
- Si C peut modifier sa BD_ADDR, une imposture est
possible. - Imposture possible sans avoir à recommencer une
phase de pairing. - Attaque réalisée off-line.
- Difficulté de réalisation
- Écoute de la phase de pairing.
- PIN code faible .
- Parades
- Éviter les endroits publics pour la phase
dappariement. - Couche logicielle.
- PIN bien choisi.
42Faiblesses protocolaires
43Faiblesse des Unit Keys
- 3 unités A (ressources limités), B, C.
- Pairing de A avec C
- Création de KINIT.
- A calcule KA à partir dun aléa et de sa BD_ADDR
avec E21. - A négocie et fournit KA à C, qui devient la clef
de liaison. - Conclusion
- C peut désormais écouter et déchiffrer toutes les
conversations de A. - Si C peut modifier sa BD_ADDR, il peut réaliser
des impostures. - C nest pas obligé de sappairer avec A, sil
utilise lattaque précédente (pairing). - Parades
- Utilisation des Combination Keys sil ny a pas
de contraintes matérielles réelles.
44Déni de service
- Temps dattente après un échec de la phase
dappariement - Usurper lidentité dun utilisateur légitime et
effectuer des tentatives de connexion avec de
mauvais paramètres (PIN/clefs erronés) le temps
dattente croît exponentiellement - Sur-consommation dénergie.
45Cryptanalyse de E0
- Hypothèse de travail à clair connu
- Saarinen
- Complexité de 2100, avec 125 bits de message
connu. - Jakobsson et Wetzel
- Complexité de 266, avec 266 bits de message
connu. - Fluhrer et Lucks
- Complexité de 284 pour 132 bits de message connu.
- Complexité de 273 pour 243 bits connus.
- Krause
- Complexité de 277 pour 128 bits de connu.
- Études théoriques, restent inapplicables
aujourdhui car trop complexes, ou nécessitent
trop de clair connu.
46Sécurité Bluetooth Bilan des faiblesses
- Spécification Bluetooth.
- Introduction
- Les différentes couches
- Mécanismes de découverte et connexion
- La sécurité Bluetooth.
- Ce quon peut en attendre.
- Flexibilité, mise en place.
- Vulnérabilités
- Quelques services (profiles)
47Link Manager Protocol
- Commandes pour la gestion de la connexion ou de
la sécurité - LMP_encryption_key_size_req
- LMP_switch_role
- LMP_max_power
- LMP_name_req
48L2CAP
- Logical Link Control and Adaptation Protocol
- Protocol multiplexing car non géré au niveau de
la Baseband (pas de champs "type"). - Segmentation et réassemblement gérer les
données des couches supérieures en fonction des
différentes MTU possibles. - Utilisation de Channels pour identifier les flux.
49SDP
- Service Discovery Profile
- Donne les services disponibles sur un équipement,
et le moyen de les obtenir. - Service Class donne le type de service
(printer, headset, ) en fonction d'un code
50Bluetooth
- Pour aller plus loin
- http//www.bluetooth.org