Evaluation des attaques sur protocole Bluetooth : Différence entre versions

De Wiki de Projets IMA
(Trame Bluetooth)
(Trame Bluetooth)
Ligne 126 : Ligne 126 :
  
 
{| class="wikitable"
 
{| class="wikitable"
! style="background-color:#6495ED; color:#FFFFFF" | En-tête (18 bits répétés 3 fois pour garantir la réception = 54 bits)
+
! colspan="3" style="background-color:#6495ED; color:#FFFFFF" | En-tête (18 bits répétés 3 fois pour garantir la réception = 54 bits)
 
|- style="text-align: center;"
 
|- style="text-align: center;"
 
| '''Adresse MAC'''
 
| '''Adresse MAC'''

Version du 16 mai 2017 à 13:21

Description du stage

Dans le cadre de ma quatrième année d'études en Informatique, Microélectronique et Automatique, je dois effecuer un stage ingénieur de six semaines minimum. J'ai choisi d'effectuer mon stage à L'IRCICA (Institut de Recherche sur les Composants logiciels et matériels pour l’Information et la Communication Avancée) à Villeneuve d'Ascq. L'objectif de mon stage est d'évaluer les attaques sur le protocole bluetooth. Pour cela, je dispose d'une enceinte bluetooth Nokia Play 360° et d'un module Ubertooth One.

Avancement du Stage

Semaine 1

Prise en main du module Ubertooth One

Le module Ubertooth one est une plateforme open source destinée aux expérimentations sur le protocle Bluetooth. Le module comprend :

  • un microcontrôleur LPC175x ARM Cortex-M3
  • un module RF front end CC2400
  • un module de transmission sans fil CC2400
  • un port USB-A 2.0 permettant de le connecter sur un ordinateur
  • Un connecteur RP-SMA RF destiné à connecter une antenne Bluetooth

Il permet d'envoyer et de recevoir des paquets à 2,4 GHz, qui est la fréquence du Bluetooth, mais aussi de voir le traffic Bluetooth en temps réel en mode moniteur. L'appareil est comparable à un module Bluetooth de classe 1, c'est à dire qu'il a une puissance maximale de 100 mW (20 dBm) et une portée de 100 mètres sans obstacles.

Figure 1 : Module Ubertooth One et son antenne


Schematic de l'Ubertooth One

Installation des packages Ubertooth One

Le projet Ubertooth étant open source, l'intégralité du code nécessaire à l'utilisation du module est disponible librement sur Git. J'ai commencé par installer les différents packages nécessaires.

1) Tout d'abord :

sudo apt-get install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev \
pkg-config libpcap-dev python-numpy python-pyside python-qt4

2) Installation de libbtbb :

sudo ldconfig
wget https://github.com/greatscottgadgets/libbtbb/archive/2017-03-R2.tar.gz -O libbtbb-2017-03-R2.tar.gz
tar xf libbtbb-2017-03-R2.tar.gz
cd libbtbb-2017-03-R2
mkdir build
cd build
cmake ..
make
sudo make install

3) Installation des outils Ubertooth :

wget https://github.com/greatscottgadgets/ubertooth/releases/download/2017-03-R2/ubertooth-2017-03-R2.tar.xz -O ubertooth-2017-03-R2.tar.xz
tar xf ubertooth-2017-03-R2.tar.xz
cd ubertooth-2017-03-R2/host
mkdir build
cd build
cmake ..
make
sudo make install

4) Installation de Wireshark

sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake
cd libbtbb-2017-03-R2/wireshark/plugins/btbb
mkdir build
cd build
cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..
make
sudo make install
sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake
cd libbtbb-2017-03-R2/wireshark/plugins/btbredr
mkdir build
cd build
cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..
make
sudo make install

Recherches sur le protocole Bluetooth

Généralités

Le Bluetooth est un standard de communication permettant l'échange bidirectionnel de données à très courte distance en utilisant des ondes radio UHF sur une bande de fréquence de 2,4 GHz. Son objectif est de simplifier les connexions entre les appareils électroniques en supprimant des liaisons filaires.

Historique
  • 1994 : création par le fabricant suédois Ericsson.
  • 1999 : sortie de la version 1.0 et du premier téléphone Bluetooth.
  • 2004 : sortie de la version 2.0 avec un meilleur débit (passage de 1 à 3 Mb/s).
  • 2009 : sortie de la version 3.0.
  • 2010 : sortie de la version 4.0 plus performante et moins gourmande en énergie. La bande passante permet des restitutions musicales stéréophoniques de qualité comparable au CD.
  • 2016 : sortie de la version 5 avec un débit théorique jusqu'a 2 Mb/s et rayon d'action jusqu'a 240 mètres.
La couche radio

La couche radio (la couche la plus basse) est gérée au niveau matériel. C'est elle qui s'occupe de l'émission et de la réception des ondes radio. Elle définit les caractéristiques telles que la bande de fréquence et l'arrangement des canaux, les caractéristiques du transmetteur, de la modulation, du récepteur. Le système Bluetooth opère dans les bandes de fréquences ISM (Industrial, Scientific and Medical) 2,4 GHz dont l'exploitation ne nécessite pas de licence vu la faible puissance d'émission et le risque faible d'interférences. Cette bande de fréquences est comprise entre 2 400 et 2 483,5 MHz. Différents types de modulations peuvent être utilisées par l'émetteur : PSK à 2, 4 ou 8 symboles. Le Bluetooth utilise 79 canaux numérotés de 0 à 78 séparés de 1 MHz. Le codage de l'information se fait par sauts de fréquence. Il existe 3 classes de modules Bluetooth sur le marché caractérisant leur puissance et leur portée :

  • Classe 1 : 100 mW (20 dBm), 100 mètres
  • Classe 2 : 2,5 mW (4 dBm), 10 à 20 mètres
  • Classe 3 : 1 mW (0 dBm), quelques mètres
Trame Bluetooth
Code d'accès (Access code) En-tête (Header) Données (Payload)
72 bits 54 bits 0 à 2745 bits


Code d'accès (72 bits)
Préambule Code (Terminaison)
4 bits 64 ou 68 bits (4 bits)
0101 ou 1010
Permet de détecter le début de la trame
0101 ou 1010
Permet de détecter la fin de la trame si code sur 64 bits


En-tête (18 bits répétés 3 fois pour garantir la réception = 54 bits)
Adresse MAC Type Flow ARQN SEQN HEC
3 bits 4 bits 1 bit 1 bit 1 bit 8 bits
Medium Access Control
Adresse active de l'esclave
SCO, ACL, NULL, POLL / type de FEC / durée du payload Contrôle de flow pour signaler que la mémoire tampon est pleine Automatic Repeat reQuest sequence Number
Indication de l’acquittement (ACK)
SEQuence Number
Numéro de séquence
Header Error Control
Le Bluetooth Low Energy (BLE)

Le Bluetooth Low Energy ou Bluetooth 4.0 est une alternative au Bluetooth "classique", avec une réduction du coût et de la consommation en puissance, tout en conservant une portée de communication équivalente. Il cherche à adresser des appareils à faible puissance de calcul, à faible coût de production et dont l’espérance de vie est à maximiser.

Semaine 2

Semaine 3

Semaine 4

Semaine 5

Semaine 6

Bibliographie

  • Getting Started with Bluetooth Low Energy

Kevin Townsend, Carles Cufi, Akiba & Robert Davidson
O'Reilly Media, 2014