Aide - Recherche - Membres - Calendrier
Version complète : Le Bluetooth Qu'est ce que c'est ?!
Forum Mobiles > Les Mobiles > Discussions générales
afr0dysiak


Mon téléphone est bluetooth, mon ordinateur portable est bluetooth, ma toute nouvelle voiture supporte le bluetooth, mais qu'est ce que c'est que ce bluetooth ? Le bluetooth est présent dans de plus en plus de domaines, mais n'est pas ou peu connu du grand public. Pourtant cette norme de communication sans fil pose énormément de problèmes de sécurité, et d'intégrité. Dans ce topic, nous allons voir comment fonctionne cette norme ainsi que les problèmes de sécurité rencontrés.



Présentation

Le Bluetooth est né du regroupement des fabricants Ericsson, qui est l'initiateur de ce projet,d'IBM, d'Intel, de Nokia et de Toshiba. Le bluetooth a été créé afin de mettre en relation de nombreux périphériques sans fil.

Actuellement, plus de 3000 marques font partie du Bluetooth Spécial Interest Group, dont Microsoft, 3com, Motorola... L'expansion et la réussite du bluetooth ont permis de voir ses compétences s'accroître. Ce type de connexion est maintenant, non seulement dans l'informatique, mais dans la téléphonie, l'automobile et presque tous les systèmes possédant de l'informatique embarquée.


Norme et Fonctionalité

Le bluetooth est cependant limité à 8 connexions simultanées, à partir du même composant. la communication établie, est du type Maître-Esclave. Un maître avoir un ou plusieurs esclaves. Deux esclaves peuvent communiquer entre eux seulement en passant par leur maître commun. Pour augmenter le nombre de périphériques connectés ensemble, on peut alors relier plusieurs maîtres, qui partageront leurs esclaves. On appelle ce type de réseau, un picoréseau.
Pour communiquer, le bluetooth utilise les fréquences de la bande 2400 - 2483,5 MHz. Mais durant une communication, la fréquence varie plusieurs fois par seconde. La vitesse maximale de transfert est 1Mb/s ce qui est peu mais suffisant pour l'usage qui lui est réservé.


Fonctionnement

Pour Fonctionner, le bluetooth utilise deux types de connexions :
Connexion Synchrone : ce type de connexion permet les débits descendants et montants égaux, de 432Kb/s permanent.
Un maître peut donc avoir trois connexions synchrones établie en même temps. Elle est bien adaptée pour les picoréseaux, l'échange entre maîtres se fait à la même vitesse dans les deux sens. Bien que la connexion, une fois établie, soit permanente, des pertes de données sont possibles, et dues à des erreurs de décodage. Dans le cas d'une erreur, le maître ou l'esclave ayant reçu le paquet erroné renvoie à son maître un paquet indiquant l'erreur. Puis le maître envoie le paquet de nouveau. Cette protection contre les erreurs d'envoi est efficace, mais incompatible avec des connexions faisant transporter la voix. En effet, si lors de votre conversation, un paquet est mal envoyé, votre interlocuteur recevra votre phrase coupée. Puis dans la phrase suivante, il recevra la syllabe ou le mot manquant.

Connexion Asynchrone : cette connexion asynchrone permet des débits de 721Kb/s dans un sens et 57Kb/s dans l'autre sens. Elle est utilisée principalement pour la navigation internet où l'on sait que la reception est souvent plus importante que l'envoi. De même, pour une connexion asynchrone est parfaitement adapté. La plupart du temps, l'imprimante reçoit les informations de l'ordinateur.


Schéma Connexion réseau Bluetooth




Etablissement de la Communication
l'établissement d'une connexion bluetooth peut s'effectuer de différentes manières au niveau sécurité.



Etapes de Sécurité

Dès lors que deux modules veulent entrer en contact, la sécurité du réseau doit s'établir. En premier lieu une Init Key est générée, puis une Link Key. Pour la suite, le type de sécurité employé est différent selon la communication que l'on veut établir. Dans le cas d'un communication entre notre module et plusieurs autres, on utilise la Master Key. Pour une communication de type Point to Point, d'un module à un autre, on utilisera alors une Unit/Combination Key. Une fois ces clefs générées, elles sont échangées dans le cas d'une Master Key, car la Combination Key est générée par les deux modules. La clef Init Key n'est plus utilisable à partir de ce moment, on peut donc l'effacer. Pour finir, les deux modules utilisent des Encryption Key qui leur permettront de coder les données envoyés.
Nous venons de voir succintement comment se déroulait l'ensemble des étapes d'une communication sécurisée avec la norme Bluetooth. Détaillons maintenant ces procédés.


Création Des Link Keys

Parmi les Link Keys, ont retrouve les combination keys, unit keys master keys et initialization keys, cela dépend de l'application désirée.

Init Key : au démarrage d'un échange de données entre plusieurs modules bluetooth, nous avons vu qu'une init Key est créée. Le module maître du réseau envoie en clair sur le réseau un nombre aléatoire de 128 bits, RAND, à l'autre module. Puis, à l'aide des codes pin et de leur longueur, chaque module utilise l'algorithme E22 pour calculer avec sa Key Init de 128 bits. Une fois l'Init Key transmise à l'autre module, elle peut être effacée du module.

Unit Key : la clef Unit est définie à chaque allumage d'un module bluetooth. Elle est donc unique, et stockée dans la mémoire interne du module. Elle est générée à partir de l'algorithme E21, qui nécessite deux paramètres. Un nombre aléatoire de 128bits, et la BD_ADDR de 128bits aussi, génereront l'Unit Key de 128bits. L'utilisation de l'Unit Key dépend de la nature du module (maître ou esclave) que l'on utilise. La clef Unit Key générée par le maître du réseau sera utilisée comme Link Key pour tous les modules. Chaque communication entre un maître et un esclave est bien indépendante des autres, et pourtant la même clef est utilisée.

Master & Initiation Key :



Combination Key : une fois les Unit Key générées, les modules présents sur le réseau vont générer leur Combination Key. Cette clef ne voyage pas sur le réseau. Chaque module va générer un nombre Rand aléatoire, puis à l'aide l'algorithme E21 comme pour la Unit Key.

Master Key : cette clef a un but bien précis et n'est pas utilisée tout le temps d'une connexion bluetooth. Elle sert à remplacer la Combination Key et l'Unit Key dans le cas d'une connexion de type broadcast. Elle est générée par le maître avec l'algorithme E22, qui nécessite deux nombres de 128bits chacun. Un troisième nombres de 128bits est utilisé, mais il n'est généré que par le maître, qui doit le communiquer indépendamment à tous ses esclaves. Ce nombre doit être envoyé chiffré, le maître utilise la Link Key, et celle-ci n'a pas été définie, se reporte sur l'Init Key. Ceci pour chaque module de son réseau, donc avec un chiffrement chacun.

Unit & Combination Key :


Encryption Key



Authentification

Cette étape est forcément très importante pour le réseau puisqu'elle confirme qu'un module fait bien partie dudit réseau et que celui-ci pourra communiquer. Cette authentification se déroule dans les deux sens, c'est à dire que le maître doit identifier l'esclave et inversement. Pour cela, le module qui doit s'authentifier auprès de l'autre reçoit du vérifieur un nombre aléatoire, envoyé en clair sur le réseau. Puis les deux modules génèrent, à partir de l'algorithme E1, un nombre SRES. L'algorithme E1 utilise un nombre aléatoire, une Link Key et une adresse BD_ADDR du module qui doit s'authentifier. Si les nombres SRES du vérifiant et du vérifié sont les mêmes, alors l'authentification échoue, un délai s'instaure avant un prochain essai. A chaque essai échoué, le délai est augmenté jusqu'au maximum défini par l'application. De plus, une fois les SRES vérifiées, l'algorithme E1 génère une clef, l'Authenticad Ciphering Offset, qui pourra servir par la suite pour des échanges chiffrés.

L'attaquant sait donc où aller et quoi récupérer




Le Cryptage

Cette étape fait suite à l'authentification dès que deux modules savent qu'ils sont bien en communication avec les modules désirés. Il vont chiffrer les communication pour des raisons évidentes de sécurité. Cette étape ne se déroule pas comme la précédente. Ici, la différence entre le module maître et esclave est importante. L'algorithme utilisé est l'E3, qui nécessite un nombre aléatoire RAND généré par le maître, l'adresse BD_ADDR du maître, l'horloge du maître (clock) et la COF qui provient de l'authentification, plus précisément de l'ACO. Cette clef de cryptage est générée à chaque demande de chiffrement.
Le chiffrement est à jour pour chaque paquet de données envoyé sur le réseau, grâce à l'horloge du maître.
Maintenant que vous savez comment fonctionne un réseau de module bluetooth, et sa sécurité, entrons dans le vif du sujet avec les problèmes de sécurité rencontrés. Toutes ces attaques sont très simple à mettre en oeuvre. C'est pourquoi il faut systématiquement désactiver le bluetooth de votre téléphone lorsque vous ne l'utilisez pas. En effet, un simple ordinateur portable muni d'une clef bluetooth permet à un attaquant, armé des logiciels d'attaque disponibles sur internet, de mener toutes celle-ci...

Mais comme nous allons le voir, la technique du blooover permet même de récupérer des informations sur votre mobile bluetooth sans ordinateur portable, juste avec un téléphone totalement anodin. Seul un programme en JAVA, blooover.jar, et un téléphone supportant MIDP 2.0 et JSR-82 seront nécessaires. Des programmes comme BTClass ou le scanner redfang d'@Stake vous seront bien utiles. Ces programmes sont libres de droits et disponibles sur internet.


LE BLUE JACKING

Le Bluejacking est une technique qui permet à n'importe qui se trouvant dans la zone couverte par une liaison bluetooth d'envoyer des messages aux autres terminaux inclus dans la zone. Pour éviter ce type de problème, il faut configurer votre terminal bluetooth sur "non détectable". Le problème vient ici du fait que la majorité des téléphones portables équipés de la technologie bluetooth sont, par défaut, réglés sur "détectable" ce qui les rend faillibles.


LE BLUEBUGGING

Sûrement la plus grosse attaque disponible contre les modules téléphoniques disposant du bluetooth, car un attaquant a accès à votres téléphone ainsi qu'à toutes les commande AT de votre terminal. En fait, il est possible d'appeler à partir de votre téléphones, d'envoyer et lire des SMS, d'ajouter des contacts au répertoire, et le meilleur pour la fin, d'écouter les conversations téléphoniques. Ce bug permet à un attaquant d'entammer un appel téléphonique vers le numéro de son choix, ou d'écouter toutes les conversations de sa victime. De plus, la possibilité d'envoi de SMS, permet de connaître le numéro de téléphone de la victime, car je vous le rappelle, il n'est pas nécessaire que l'attaquant conaisse votre numéro pour que vous vous fassiez attaquer. Une autre possiblité de cette attaque est de voir les numéros appelés par la victime et de les remplacer. L'attaquant peut aussi se connecter à internet via le téléphone piraté, puis envoyer de façon anonyme toutes sortes de mails ou de programmes, voire de virus.
Cependant l'attaquant est confroté a une contrainte physique. Le bluetooth utilise en effet la classe d'energie 2, ce qui fait qu'un réseau bluetooth ne s'étend que sur un dizaine de mètres. Pourtant, en août 2004, une équipe a réussi à utiliser un réseau bluetooth et à exploiter des failles sur une longue distance. A 1700m de la cible, avec du matériel très sommaire, composé d'un ordinateur portable, d'un dongle usb bluetooth modifié, d'une petite antenne portative et bien sûr d'un téléphone bluetooth.


LE BLUESNARFFING

Cette attaque découverte en 2003 est probablement la plus connue des failles bluetooth. Elle permet à un attaquant de se connecter de manière invisible sur un réseau bluetooth, et de s'octroyer les droits necéssaires pour récupérer de nombreuses informations d'un mobile. Pour utiliser cette faille, l'attaquant se sert de la couche OBEX et du profil OPP. Ce profil est activé par défaut sur de nombreux téléphones afin de faciliter les échanges avec d'autres types de modules bluetooth. Grâce à OBEX, l'attaquant peut utiliser les commandes Connect, Disconnect, Put, Get, Abort & SetPath sur le module de la victime et ainsi lire et récupérer des fichiers dont l'attaquant connaît le et l'emplacement. Le problème est que ces fichiers ont des emplacements définis et connus. Les exemples ci-dessous ne sont valides que pour les téléphones Ericsson et ne montrent que les fichiers qui sont utilisables avec les commandes PUT & GET, soit les plus dangeureuses dans ce cas d'accès aux fichiers.


BLUEPRINTING

Le but de cette technique est de pouvoir récupérer un maximum d'informations sur le matériel utilisé par les usagers. En effet, elle permet de récupérer l'équivalent de l'adresse MAC de nos cartes réseaux. Cette adresse est composée de 6 bytes, les trois premiers correspondent au fabricant. Pour les trois bytes suivants, les rangées ne sont pas encore totalement connues, ce qui ne permet pas de connaître précisément tous les modèles, cependant le scanner crée par @Stake, redfang, fonctionne bien.
De plus, les modules bluetooth sont équipés du Service Discovery Protocol Records qui permet à un autre module bluetooth d'interroger un module pour connaître les services présents et comment les utiliser. Ces fonctionnalités peuvent être répertoriées puis utilisées pour reconnaître le type de matériel employé.


BLUESMACK

Cette faille correspond au DoS de nos PC. Elle consiste à envoyer énormément de requêtes à un seul module. Dans le cas du bluetooth, la faille se situe dans la couche L2CAP qui permet à un module de demander un écho à un autre. Le principe est le même que pour l'ICMP ping sur les ordinateurs. On peut aussi pinger un module bluetooth à partir d'un ordinateur portable sous linux avec la couche Bluez (Official Linux Bluetooth Protocol Stack), et avec le programme l2ping. Le but d'un DoS dans le cadre d'un réseau bluetooth n'est pas de saturer ce réseau mais d'épuiser les batteries de la cible. En effet, le grand nombre de requêtes et de réponses demande beaucoup d'énergie pour envoyer en permanence ces informations.


BLOOOVER

La majorité des gens pense que pour attaquer un module Bluetooth, il faut être dans la courte portée du réseau bluetooth avec son ordinateur, ce qui peut paraître suspect en extérieur. Seulement, une application JAVA a été développée pour fonctionner sur les téléphone de type bluetooth, afin d'avoir les mêmes capacités. Qui alors va se méfier de tous les téléphones proches de lui ? Cependant, cet outil libre de téléchargement est limité dans les fonctions utilisables afin qu'aucune personne ne soit victime d'individus malintentionnés. Pour fonctionner, cette application ne nécessite qu'un téléphone à la norme J2ME - MIDP2.0 avec l'API bluetooth JSR-82.


BT AUDIT

La norme bluetooth se base sur deux protocoles principaux : L2CAP et RFCOMM. Pour Communiquer, ces deux protocoles utilisent des ports, de la même manière que le TCP/IP, UDP/IP. On se dit tout de suite, si j'ai des ports, j'ai des services associés, donc je peux scanner. En effet, les équivalents des ports du L2CAP sont numérotés de 1 à 65 535 en ne tenant compte que des nombres impairs et les ports du RFCOMM de 1 à 30. Ces "ports" dans la couche L2CAP sont appelés PSMs (Protocol Service Multiplexers). Deux scanners de ports existent déja, un pour chaque protocole, PSM_SCAN et RFCOMM_SCAN. Ces deux programmes ne font que lister et donner l'état de ports, ouvert ou non.


BTSCAN

Pour ne pas attaquer son propre matériel il fallait trouver une methode pour ne pas s'auto-bluesnarfer. La solution est de se faire passer pour quelque choses d'autre. Le BTSCAN permet de modifier la Bluetooth Device Class de votre module pour vous faire passer pour ce que vous désirez : Ordinateur, imprimante, ...


BLUESPAM

Le bluespam, comme son nom l'indique concerne le spam de module Spam. Nous n'aborderons pas ici le sujet du spam massif, mais du spam, pour le défi technique de quelques modules. Le bluespam recherche tous les modules bluetooth joiqnables dans sa zone d'un dizaine de mètres, et essaie d'envoyer un message. Si un module du réseau supporte l'OBEX, alors il recevra ce message. On peut en plus avec un palm définir ce que l'on souhaite envoyer, un fichier par exemple. On peut aussi s'en servir comme défense en Spam Back, si quekqu'un vous envoie un message par ce moyen, vous lui renvoyez immédiatement un message par le même moyen.


BLUESNARF ++

Cette attaque est relativement récente. Ce n'est qu'une variante améliorée du bluesnarf. Elle utilise toujours la commande GET à cause de l'OBEX, et l'utilise pour mettre un serveur OBEX FTP. De cette manière, l'attaquant peut voir tous les fichiers. La commande "ls" indique les fichiers présents dans le ver la doc sur chacun des modules pour connaître les noms et emplacements des fichiers. De plus, avec ce serveur, l'attaquant à tous les droits : d'écriture, de lecture, d'execution et, le plus dangereux, d'effacement dans le cas d'un carte mémoire.


HELLOMOTO

Cette attaque, comme son nom l'indique, a été découverte sur un téléphone de la marque Motorola. Dans les téléphones Motorola équipés du bluetooth, une faille permet d'acceder aussi aux commandes AT du téléphone. L'attaquant démarre une communication avec OBEX en faisant croire qu'il va envoyer une Vcard, c'est-à-dire de synchroniser HotSync, son module bluetooth, avec un autre pour envoyer carte de visite et agenda. Puis l'attanquant coupe l'envoi de Vcard, mais la victime, elle, le considère comme étant un module sûr. Alors l'attaquant peut envoyer ce qu'il veut à la victime.


L'INTEGRITE

Les modules bluetooth dans leurs communications, en particulier la reception de paquets, ne vérifient pas l'integrité des paquets et donc leur provenance. On peut donc utiliser une attasue de type "man in the middle". Cela permet de recevoir les informations d'un module, de les enregistrer si l'in veut les modifier, puis de continuer leur envoi vers le module cible.


ATTAQUE ALGEBRIQUE

Une attaque de type mathématique est aussi envisageable pour casser la Key Stream Generator, soit la clef utilisée pour chiffer les communications.


CODE PIN

Le code pin est très important dans une communication sécurisée entre des modules bluetooth, puisque c'est à partir de ce code que l'algorithme E22 va générer cette clef, seul le code PIN est inconnu, puisque le reste des informations voyage dans les airs sans aucun chiffrement. La longueur des codes pin étant majoritairemet de 4 chiffres, cela donne 10 000 possibilités, ce qui est tres faible pour un chiffrement. De plus, on sait parfaitement qu'un grand nombre de gens laisse le code pin par défaut, 0000.


UNIT KEY

Dans une communication entre deux modules bluetooth, une Link Key est utilisée comme seule information cachée, pour le chiffrement et l'authentification sur le réseau. Prenons l'exemple où le module X communique avec le module Y et qu'ils utilisent la Link Key du module X. Un troisième module Z entre dans le réseau et utilise donc la clef du module X. a partir de ce moment, le module Z peut être authentifié aussi sur le module Y, ou meme écouter ce module en faisant quelques calculs pour trouver l'Encryption Key.


CONCLUSION

On vient donc de voir que les modules bluetooth souffrent d'un grand manque de sécurité. Ces failles ne sont pas tant dues à la norme bluetooth qu'à l'implantation de cette norme avec le matériel. La norme bluetooth est par exemple, parfaitement préparée pour communiquer dans un lieu public puisque les ondes changent de fréquence plusieurs fois par seconde.
Cependant, les applications pour communiquer dans les lieux publics sont de plus en plus nombreuses, et les failles aussi.




Source : by Snoop_Psykoman (numéro spécial - Piratz & Hackers )
PlutoCtard
Très intéréssant tout cela, ca nous montre toute la vulnérabilité de nos téléphones, une fois le bluetooth activée sad.gif

Beaucoup devraient ce méfier à mon avis smile.gif
afr0dysiak
Cela laisse aussi présager que les attaques se font sur tous les modeles de mobiles bluetooth et donc chaque téléphone est comme tu la dit "vulnérable"

il y a des attaques vraiment méchantes .. perso celle que je trouve pas Glop c'est le "BlueBugging" glurps.gif ranting_1.gif
PlutoCtard
Tout à fait, mais à mon avis, ca n'est pas le simple petit mec qui peut faire ce genre de choses !

Je pense aussi que ca peut être facilement éviter à partir du moment où on ne laisse pas le BT allumé dans des lieux bondés de monde smile.gif

(Perso, pas de blèmes, j'habite en campagne lol.gif
afr0dysiak
oui c'est vrai et le fin mot de l'histoire pour évité de se faire hacker via bluetooth est de ne pas l'allumer constamment! les chances de se faire piraté sont peut etre mince mais vu ce qu'il est possible de faire je ne tenterai pas le diable .. glurps.gif
Alfred
oui et de plus tu économises la batterie !... smile.gif
afr0dysiak
Alfred ça je t'avoue que c'est une question qui me taraude..

Le bluetooth meme actif s'il ne sert pas, consomme t'il vraiment de l'énergie ?
la seule chose que j'ai pu lire de concret à ce sujet c'est qu'il existe une attaque nommée :

CITATION(afr0dysiak)
BLUESMACK


Cette faille correspond au DoS de nos PC. Elle consiste à envoyer énormément de requêtes à un seul module. Dans le cas du bluetooth, la faille se situe dans la couche L2CAP qui permet à un module de demander un écho à un autre. Le principe est le même que pour l'ICMP ping sur les ordinateurs. On peut aussi pinger un module bluetooth à partir d'un ordinateur portable sous linux avec la couche Bluez (Official Linux Bluetooth Protocol Stack), et avec le programme l2ping. Le but d'un DoS dans le cadre d'un réseau bluetooth n'est pas de saturer ce réseau mais d'épuiser les batteries de la cible. En effet, le grand nombre de requêtes et de réponses demande beaucoup d'énergie pour envoyer en permanence ces informations.
elcyrus
j'avais lu un topic ya quelque temps...sur la possibilité d'envoyer des messages a des destinataires inconnu grace a leur bluethooth...j'avais meme reussi dans le train et au bureau...mais sa montre qu'un vrai pro peut rentrer sans problemes dans tes données....genre photos, repertoire, vidéos...etc
Alfred
> afro : il consomme, puisque le récepteur scanne en permanence les fréquences à la recherche d'un signal dent bleue wink.gif

> elcyrus : non, si tu es "masqué", ou mieux si bt n'est pas activé
afr0dysiak
Alfred Thank's For This Information je sens que pour une fois je me coucherai moin bète w00t.gif
zetax
masqué ou pas ton tel est détectable via ses recherches dans son rayon d'action mais bon soyons réalistes, laisser allumé son bt constamment relève d'une certaine bétise rien que pour la baterie. Et puis tout le monde n'est pas pirate et n'importe qui voulant l'être ne peut pas l'être.
Se faire hacker son tel via bluetooth = va jouer au loto et gagnes avec les 7 numéros gagnants plus le complémentaire !
afr0dysiak
Mais mieu vaut prévenir que guérir n'est il pas ? wink.gif
Et comme parfois ça arrive d'avoir les 7 chiffres au loto ..
Ceci une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.