Spcification Bluetooth' Scurit' - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

Spcification Bluetooth' Scurit'

Description:

M canismes de d couverte et connexion. La s curit Bluetooth. Ce qu'on ... Address Part. UAP: Uper Address Part. NAP: Non-significant Address Part ... – PowerPoint PPT presentation

Number of Views:116
Avg rating:3.0/5.0
Slides: 51
Provided by: calm1
Category:

less

Transcript and Presenter's Notes

Title: Spcification Bluetooth' Scurit'


1
Spécification Bluetooth. Sécurité.
  • Benoît Calmels

2
Sé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)

3
Introduction à 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.

4
CouchePhysique
  • Bande de fréquence des
  • 2.4 GHz (micro-ondes)
  • ISM (Industrial, Scientific Medical) sans
    licence.

5
Introduction à Bluetooth
  • Pile protocolaire

6
Couche Physique
  • Communication entre un maître et jusquà sept
    esclaves (piconet). Communication entre plusieurs
    piconet scatternet.

7
Couche physique
  • Time Division Duplex Canal physique divisé en
    slots de 625µs. Communication alternée entre le
    maître et les esclaves.

8
Couche physique
  • Possibilité d'émettre sur plusieurs slots (5 max)

9
Couche 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).

10
Couche 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

11
Couche 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)

12
Baseband
  • 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
13
Baseband
  • Format des paquets

14
Baseband/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.

15
Baseband/Access Code
  • Access Code
  • Préambule
  • 2 types suivant le 1er bit suivant.
  • Éviter un courant continu pour faciliter la sync .

16
Baseband/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).

17
Baseband/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.

18
Baseband/Header/Type
  • Type (suite)

Paquets de contrôle
1 slot
3 slots
5 slots
19
Baseband/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.

20
Baseband/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)

21
Baseband/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.

22
Baseband/Payload
  • Débits

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
30
Sé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)

31
Sé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
  • Security Manager

33
Sé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).

34
Sé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).

35
Sé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é.

36
Sé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)
38
Sécurité
  • Chiffrement de la payload
  • Format de la payload

39
Sécurité
  • Authentification, pairing
  • A,B honnêtes, C attaquant.
  • - Génération de KINIT
  • Une seule donnée secrète le code PIN.

40
Sécurité
  • - Création et échange de la clef de liaison
  • Échanges daléas chiffré par KINIT (Xor).
  • - Authentification de B par A

41
Faiblesses 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.

42
Faiblesses protocolaires
  • Complexité des PINs

43
Faiblesse 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.

44
Dé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.

45
Cryptanalyse 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.

46
Sé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)

47
Link 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

48
L2CAP
  • 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.

49
SDP
  • 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

50
Bluetooth
  • Pour aller plus loin
  • http//www.bluetooth.org
Write a Comment
User Comments (0)
About PowerShow.com