La sécurité et le jumelage
Le Bluetooth est un protocole sécurisé à l’origine, bien plus sûr que le Wi-Fi, par exemple.
Une sécurité implicite
La première chose qui protège le Bluetooth, c’est sa portée limitée : la majorité des équipements sont des périphériques de Classe 2, dont la portée excède rarement plus de 10 mètres. Il est possible d’utiliser des antennes directionnelles, mais cette pratique est marginale bien qu’assez simple à mettre en place : il suffit de relier le dongle Bluetooth à une antenne utilisée pour améliorer les réseaux Wi-Fi, car les fréquences utilisées sont proches. La deuxième chose, c’est que les périphériques Bluetooth sont indécelables par défaut : la majorité des périphériques doivent être explicitement placés en mode détection pour être vus par d’autres appareils que ceux auxquels ils sont jumelés.
Une sécurité explicite
Bien évidemment, le protocole Bluetooth implémente différentes méthodes de sécurisation. Un périphérique Bluetooth dispose d’une adresse unique, comme l’adresse MAC des cartes réseau. Cette adresse est formée de 48 bits : les trois premiers octets identifient le fabricant (24 bits), les 3 suivants sont ceux attribués au périphérique (24 bits). De plus, chaque périphérique se voit attribuer un type : PC, téléphone, oreillette, etc.
Trois modes pour le Bluetooth
Trois modes existent, numérotés de 1 à 3. Le niveau 1 n’a ni chiffrement ni authentification. Les appareils sont en mode « de promiscuité ». Ce niveau n’est disponible qu’à partir de la version 1.1 du Bluetooth. Le niveau 2 offre une protection au niveau de l’application (sur la couche L2CAP). La connexion s’effectue, et ensuite le gestionnaire propose l’authentification du périphérique. Le niveau 3 utilise une protection au niveau du canal de communication. L’authentification s’effectue par adresse Mac et code PIN, avant la connexion proprement dite.
La norme 2.1 du Bluetooth introduit un mode supplémentaire, le niveau 4 : la connexion ne peut s’effectuer que si c’est l’appareil en mode 4 qui initialise la communication.
Le jumelage
Avec les normes antérieures à la 2.1, les appareils utilisent un code PIN pour le pairage entre deux appareils. Le pairage consiste en une procédure de connexion entre 2 appareils, pour que ceux-ci puissent communiquer. Bien que le code puisse comprendre entre 1 et 16 octets, habituellement on travaille sur 4 octets (généralement 0000).
Le protocole utilise 3 étapes pour initialiser une connexion :
Création d’une clé d’initialisation : le maître envoie un nombre aléatoire (128bits) à l’esclave. L’esclave envoie son adresse BD_ADDR (48bits). À partir de ce nombre aléatoire, de la BD_ADDR et du code PIN (entré sur les deux périphériques) une clef d’initialisation est calculée.
Création d’une clef « de lien » (Link Key) : chacun des 2 périphériques utilise la clef d’initialisation pour coder un nombre aléatoire (128bits). Les 2 nombres aléatoires obtenus sont échangés, et un algorithme permet de créer une clef de liens à partir de ces 2 nombres.
L’authentification elle-même se déroule en utilisant un quatrième nombre aléatoire : une valeur 32bits (SRES) est créée via un algorithme, elle utilise la clef de lien, le nombre aléatoire et l’adresse BD_ADDR. Les périphériques vérifient mutuellement que les valeurs SRES sont identiques.
Les problèmes de sécurité à ce niveau : Certains appareils n’ont pas de dispositifs de saisie pour le code PIN (par exemple une oreillette), donc un code est fourni automatiquement avec le périphérique, et il n’est pas modifiable. Certains constructeurs proposent un code aléatoire, indiqué dans le manuel. D’autres utilisent un code par défaut, qui est souvent 0000 ou 1234, ce qui est pose des problèmes de sécurité.
En Bluetooth 2.1
La norme 2.1 introduit une nouvelle manière d’appairer deux appareils, le « Secure Simple Pairing ».
Concrètement, les deux appareils échangent une clé publique, et créent un nombre en fonction. Si les deux périphériques sont capables d’afficher des informations (et donc s’ils sont dotés d’un écran), ils affichent le code généré. L’utilisateur doit simplement accepter la connexion si les deux nombres sont identiques. Sur les appareils ne disposant pas d’un écran (une oreillette, par exemple), l’utilisateur doit simplement accepter la connexion, sans devoir taper un code PIN.
L’avantage au niveau de l’utilisation est évident, il n’y a plus de code PIN à taper pour l’utilisateur. Pour la sécurité, le Secure Simple Pairing est mieux sécurisé à la base, et le problème des appareils avec un code fixe et connu (le classique 0000 des oreillettes) disparaît.
Le bluetooth, c'est très bien, mais il arrive encore trop souvent que des portables de marques différentes et récents ne se voient pas
L'installation de certains dongles posent aussi problème, faute de pilotes génériques compatibles... ou trouvables tout simplement.
en francais on dit profils et non pas profiles. je sais bien que l'on en est pas à un anglicisme pret mais tout de meme, à la lecture, ca fait tache
Pour compléter "un peu d'histoire", le surnom de Dent Bleue n'est pas venu sans une bonne raison. Ce roi était un fana des mûres, consommation qui lui laissait en permanence les ... dents bleues.
les normes et les classe"S"
très bonne piqure de rappel pour tous ceux qui jugent que l'ihpone n'a pas besoin de Bt, ayant le wifi.
l'IR n'est pas réservé à la donnée. il existe bien d'autres normes (notamment pour faire des réseaux adhoc) mais qui dans la pratique n'ont jamais été utilisées.
Sympa ce petit dossier. Beau travail
Super le dossier, merci pour les explications
en francais on dit profils et non pas profiles. je sais bien que l'on en est pas à un anglicisme pret mais tout de meme, à la lecture, ca fait tache
C'est pas pour prendre la défense de l'auteur du dossier mais je ne le savait pas non plus
merci pour cet article instructif
sinon, stack ca veut dire pile ... dans l'article on dirait qu'il s'agit de deux choses différentes alors que ce n'est pas le cas.
dossier clair et concis _ félicitations !
callgod a écrit :
"en francais on dit profils et non pas profiles. je sais bien que l'on en est pas à un anglicisme pret mais tout de meme, à la lecture, ca fait tache"
Watchwolf a écrit :
"C'est pas pour prendre la défense de l'auteur du dossier mais je ne le savait pas non plus"
1. A callgod je signale (entre autres) qu'en français, on écrit 'à un anglicisme près' et non ''à un anglicisme pret' !
2. A Watchwolf je signale qu'en français, on écrit 'je ne le savais pas' et non 'je ne le savait pas' !
Heureusement que l'auteur de l'article ne fait pas autant de 'fotes' que les 'commenteurs'...
simplement cooooooooooooool
Je râle souvent mais je sais aussi dire bravo !
J'apprécie particulièrement la partie "histoire" car la culture a peut de place habituellement.
Merci le Dandu !
"Sous Linux la stack utilisée dépend essentiellement de la distribution." O_o ???
il n'y a que Bluez qui est la stack officielle et intégrée au Kernel ( http://www.bluez.org ).
(il y a eu autres stacks)
anonyme :
> Commentateur
(nom commun)Personne qui commente un texte, des nouvelles, une émission à la radio ou à la télévision.
commenteur n'existe pas... xD
Et ça donne des leçons... O_o
> Commentateur
(nom commun)Personne qui commente un texte, des nouvelles, une émission à la radio ou à la télévision.
commenteur n'existe pas... xD
Et ça donne des leçons... O_o
Message à TsH : ça deviens saoulant ces anonymes, là !
Bonjour,
Très intéressant article. Très clair.
Je voudrais savoir s'il est possible de relier un émetteur bluetooth à plusieurs récepteurs. Si oui, jusqu'à combien.
J'ai entendu parler d'une limitation à sept.
En fait, je voudrais réaliser (ou trouver) un système qui permette à un conférencier de parler, via une liaison Bluetooth à plusieurs personnes (jusqu'à une trentaine).
Pensez-vous que ce soit possible ?
Merci d'avance.