Master Cryptologie et Sécurité Informatique, semestre 3
Sécurité des Réseaux, devoir 2003

Un corrigé est disponible en fin de document.

Les questions se rapportent au document ci-joint, extrait des spécifications Bluetooth 2001 (version 1.1, 1084 pages, environ 10 Mo). Les réponses ne doivent pas consister en une simple traduction, ou paraphrase, du document…

Note pour la version en ligne : les pages distribuées avec le sujet étaient extraites de la partie B (Baseband Specification) de la spécification, numérotées 41 et 42 (section 1, General Description), 43 et 44 (section 2, Physical Channel), 45 et 46 (section 3, Physical Links), 51 et 52 (section 4.3, Packet Header), enfin 60 et 61 (section 4.4.3, ACL Packets). Dans la version 1.2 (novembre 2003, 1200 pages, environ 10 Mo), profondément réorganisée, il s'agit de la partie B du volume 2, et les pages correspondantes sont numérotées (à l'intérieur du volume 2, qui comporte 790 pages) : 53 (section 1, General Description), 57 (section 2, Physical Channels), 58 et 59 (section 2.1, Physical Channel Definition, et section 2.2, Basic Piconet Physical Channel), 86 (section 4.3, Synchronous Logical Transports, et section 4.4, Asynchronous Logical Transport), 103 et 104 (section 6.4, Packet Header) enfin 111 et 112 (section 6.5.4, ACL Packets). Le site officiel de Bluetooth est www.bluetooth.org.

  1. Quelles sont les caractéristiques de la bande ISM ? Comparez-la aux bandes de fréquences utilisées pour GSM.
  2. Un canal (section 2.1) occupe une bande de fréquences relativement étroite (1MHz), mais la technique des sauts de fréquences (frequency hops) consiste à modifier fréquemment celle-ci. Pourquoi utiliser cette technique ? Celle-ci fait partie des techniques d'étalement de spectre ; en connaissez-vous une autre (que vous exposerez et comparerez en quelques lignes) ?
  3. Le débit de 64 kbits/sec est standard en téléphonie : pourquoi ?

Un même canal peut être utilisé par plusieurs machines (huit au maximum), qui forment alors un pico-réseau. Le protocole d'accès à ce réseau repose sur la distinction entre maître et esclaves.

  1. Un multiplexage temporel (section 2.2) assure que maître et esclaves n'émettent pas simultanément. Comparez avec l'utilisation du multiplexage temporel dans GSM.
  2. Expliquer pourquoi une liaison synchrone (SCO, section 3.2, seul le premier paragraphe est important, ne perdez pas de temps à lire le reste de la section) joue le rôle d'un circuit commuté, tandis qu'une liaison asynchrone (ACL, section 3.3) relève plutôt de la commutation de paquets.
  3. Comment évite-t-on que plusieurs esclaves (du même pico-réseau) émettent simultanément ?
  4. Sur une liaison ACL, un paquet perdu est retransmis, contrairement au cas d'une liaison SCO : pourquoi cette différence ? Comparez ce qui se passe dans chacun des cas lorsqu'un réseau Bluetooth fonctionne en concurrence avec un four à micro-ondes.

Les questions suivantes concernent l'en-tête d'un paquet (section 4.3).

  1. Section 4.3.2 : quel est l'intérêt pour un récepteur de "cesser d'écouter le canal pendant la durée des slots restants" ?
  2. Comparer (en quelques lignes) le contrôle de flot avec celui utilisé dans TCP.
  3. Comparer (en quelques lignes) le mécanisme de retransmission (accusé de réception et numérotation des paquets) avec celui utilisé dans TCP. Pourquoi Bluetooth peut-il se contenter d'algorithmes aussi sommaires ?
  4. Par contre Bluetooth protège les 10 bits de l'en-tête avec un code détecteur d'erreurs (HEC) de 8 bits, puis encode les 18 bits avec un FEC (code correcteur d'erreurs) de forte redondance (la taille de l'en-tête est multipliée par 3). Pourquoi ?
    Note : ce code, décrit dans une autre partie du document, se contente de répéter trois fois chaque bit à transmettre !

La question suivante porte sur la section 4.4.3, et est réservée à ceux ou celles qui s'ennuieraient.

  1. Calculer les différents débits (utiles) offerts par Bluetooth sur une liaison ACL.
  2. Seul le dernier se rapproche du Mbits/sec que devrait permettre la vitesse de modulation (voir section 1) ; à votre avis pourquoi ? Autrement dit pourquoi les paquets multi-slots sont-ils indispensables ?

Corrigé

  1. La bande ISM, située autour de 2.4 GHz, est réservée pour les applications industrielles, scientifiques et médicales ; son usage, par définition, ne requiert pas de licence. Au contraire, les bandes GSM, situées autour de 900 Mhz et 1800 MHz (en Europe) sont soumises à des licences : chaque opérateur de téléphonie mobile se voit attribuer (suite à des concours et parfois à des enchères) une partie des bandes GSM, de sorte qu'il puisse construire un réseau à grande échelle sans souffrir d'interférences avec les réseaux concurrents.

    Les fréquences ISM sont un peu plus élevées que les fréquences GSM, mais il n'y a pas de différence vraiment significative de ce point de vue.

  2. Un réseau qui opère dans la bande ISM doit prévoir que d'autres appareils émettent sur des fréquences situées dans la même bande. La technique des sauts de fréquences vise à limiter la durée des interférences. C'est une technique d'étalement de spectre, puisqu'elle utilise une bande de fréquences beaucoup plus large que celle qui serait nécessaire pour le débit souhaité.

    L'autre technique fondamentale d'étalement de spectre est le multiplexage CDMA (Code Division Multiple Access) : pour transmettre le bit 1, on transmet une suite de bits, qui forme un code propre à l'émetteur ; pour transmettre le bit 0, on transmet le même code, mais inversé ; la longueur du code, par exemple 64, est le facteur d'étalement de spectre. Cette technique permet de brouiller sommairement le signal, et surtout permet à plusieurs émetteurs d'utiliser efficacement la même bande de fréquences, car il suffit, pour l'essentiel, de leur attribuer des codes deux à deux orthogonaux.

    Note : l'ADSL n'est pas une technique d'étalement de spectre, puisqu'elle consiste à utiliser une large bande passante pour atteindre un débit très élevé (débit utile, celui auquel l'utilisateur est sensible). Le point commun avec Bluetooth est la présence, dans ce spectre, de bandes de fréquences, dont la position est imprévisible, et occupées par des signaux parasites ; l'ADSL s'adapte à la situation, en cessant temporairement d'émettre dans les bandes de fréquences où la transmission est de mauvaise qualité. La version 1.2 de Bluetooth comporte un schéma de sauts de fréquences adaptatif, qui élimine de même des bandes de trop mauvaise qualité.

  3. Le débit de 64 kbits/sec est standard en téléphonie, car il correspond à un échantillonnage à 8000 Hz, chaque échantillon étant codé sur un octet (8 bits). La fréquence d'échantillonnage (8000 Hz) découle du critère de Nyquist, car elle est un peu supérieure à la fréquence de coupure (3400 Hz) utilisée, sur les lignes téléphoniques, pour filtrer les harmoniques aiguës, non nécessaires à la compréhension de la parole.

    Ce débit permet de transporter de la voix sans utiliser d'algorithme de compression ; il est très insuffisant pour du son haute-fidélité non compressé (échantillonnage à 44100 Hz, et codage des échantillons sur 16 bits, pour un CD).

  4. Le multiplexage temporel décrit section 2.2 (Time Slots) assure que le maître d'une part, les esclaves d'autre part, émettent en alternance, puisque les slots pairs sont réservés aux paquets émis par le maître, tandis que les slots impairs sont réservés aux paquets émis par les esclaves (compte tenu des paquets multi-slots, il est plus rigoureux de dire que la transmission d'un paquet commence pendant un slot de numéro pair — resp. impair, s'il est émis par le maître — resp. par un esclave).

    Dans GSM le multiplexage temporel sépare de la même façon les deux sens de communication, mais en même temps il permet 4 circuits bi-directionnels simultanés : une trame GSM comporte 8 slots, et un circuit entre les mobiles A et B occupe le slot i pour la transmission de A vers B, et le slot i + 4 pour la transmission de B vers A.

    La section 3.2 (SCO Link) indique que Bluetooth utilise aussi un multiplexage temporel pour gérer éventuellement deux ou trois liaisons synchrones simultanées, et pour faire coexister cette (ces) liaison(s) synchrone(s) avec une liaison asynchrone ; mais ce n'était pas l'objet de la question, qui portait sur la section 2.2.

  5. Une liaison synchrone (SCO, section 3.2) utilise des slots réservés à intervalles réguliers ; son débit est donc garanti, comme sur un circuit téléphonique classique (d'ailleurs une liaison SCO est destinée prioritairement au transfert de la voix, par exemple entre un téléphone mobile et un casque, ou une oreillette). Une liaison SCO ne relie pas deux extrémités fixées par avance, contrairement à une liaison classique par câble ; la connexion est établie à la demande, comme pour un circuit téléphonique, d'où le nom de circuit commuté (circuit-switched connection).

    Une liaison asynchrone (ACL, section 3.3) relève de la commutation de paquets (packet-switched connection), car le maître choisit le destinataire du paquet parmi les membres du pico-réseau (par contre un esclave répond toujours au maître).

    La faible taille du pico-réseau et son asymétrie (un maître, au plus sept esclaves) sont des caractéristiques originales de Bluetooth, de même que la coexistence de liaisons synchrones et de liaisons asynchrones.

  6. Sur un réseau local se pose toujours le problème des règles d'accès à ce réseau ; Ethernet est un protocole célèbre et sophistiqué dans ce domaine. Ici le protocole est beaucoup plus simple, et repose sur la dissymétrie entre maître et esclaves ; il ne peut y avoir collision entre le maître et un esclave (distinction entre slots pairs et impairs, cf. question 4), et deux esclaves ne peuvent émettre simultanément, car un esclave n'émet qu'en réponse à un paquet reçu du maître.

  7. Sur une liaison ACL, un paquet perdu est retransmis, et grâce au saut de fréquence, on peut espérer raisonnablement que les interférences qui ont probablement détruit le premier paquet, ne se manifesteront pas dans la bande de fréquences utilisée pour la retransmission. Une liaison ACL est donc fiable, au prix d'un taux de retransmission qu'on peut espérer faible.

    Par contre le débit d'une liaison SCO est garanti, d'où l'absence de retransmission.

    Si un réseau Bluetooth fonctionne en concurrence avec un four à micro-ondes, une liaison ACL sera probablement ralentie à cause de la retransmission des paquets émis dans la gamme de fréquences où le four émet des ondes parasites ; mais elle devrait rester fiable. Une liaison SCO transportant de la voix verra la qualité de transmission dégradée, le récepteur notera probablement de brefs craquements, correspondant aux paquets détériorés ; si la bande de fréquences parasites est étroite, les craquements devraient avoir une durée de l'ordre de quelques milli-secondes (intervalle séparant deux paquets consécutifs de la liaison), et leur fréquence devrait être de l'ordre de 1% (avec un schéma utilisant 79 canaux radios — avec seulement 23 canaux, la fréquence des parasites audibles devrait être trois fois plus élévée).

  8. Les appareils Bluetooth sont souvent légers et mobiles, donc économiser leurs batteries est un souci majeur.
  9. Pendant une session TCP entre deux stations A et B, le contrôle de flot est assuré par un protocole à fenêtre coulissante : A peut émettre sans attendre un acquittement de B, tant que la taille des données émises et non acquittées ne dépasse pas la taille rw de la fenêtre du récepteur ; A obtient la valeur de rw en consultant un champ de l'en-tête des paquets émis par B (si un tel paquet transporte aussi des données émises par B à destination de A, on parle de piggyback, car ce champ contrôle le flot inverse, de A vers B).

    Le protocole Bluetooth est beaucoup plus simple, puisque rw est réduit à un bit (nommé FLOW), qui autorise ou non l'autre extrémité à émettre un paquet ; mais la technique du piggyback est employée là aussi.

  10. Le protocole à fenêtre coulissante, utilisé par TCP, oblige à numéroter les paquets émis ; TCP choisit d'inclure dans l'en-tête le numéro du premier octet, codé sur 32 bits. Le champ ACK de l'en-tête est de même codé sur 32 bits, il indique le numéro du prochain octet attendu, et acquitte donc tous les octets précédents ; il n'y a pas d'acquittement négatif.

    Le protocole Bluetooth repose sur une alternance stricte entre émission d'un paquet et réception d'un acquittement ; un seul bit, ARQN, transmis en piggyback, suffit donc à acquitter le paquet émis dans le slot précédent ; pour le même prix, ce bit peut indiquer explicitement un acquittement négatif. L'absence d'acquittement (ou bien le paquet émis n'est pas parvenu à son destinataire, à cause d'une erreur physique ayant affecté l'en-tête, ou bien l'acquittement s'est perdu, pour la même raison), est considérée par l'émetteur comme un acquittement négatif, et le paquet est donc retransmis ; si cette retransmission survient suite à la perte de l'acquittement, le récepteur doit pouvoir détecter un paquet dupliqué : les paquets ne peuvent donc pas être entièrement dépourvus de numéro, mais un bit (nommé SEQN) suffit (numérotation modulo 2).

    Note : le protocole USB, qui permet de relier un ordinateur à une grande variété de périphériques, utilise fondamentalement les mêmes techniques ; le maître est l'ordinateur, les esclaves sont les périphériques, qui n'émettent que s'ils sont sollicités, tout paquet est acquitté immédiatement, et numéroté sur un bit pour distinguer, comme ci-dessus, les paquets dupliqués.

  11. Bluetooth fonctionne dans un environnement hostile (interférences radio), d'où les précautions employées pour que la probabilité qu'un paquet parvienne à son destinataire reste élevée (chaque bit est répété trois fois, en réception on choisit la valeur majoritaire), et pour que l'en-tête soit fiable (code détecteur d'erreurs sur 8 bits) : une erreur sur le bit SEQN, par exemple, est catastrophique. Comme l'en-tête est très court (10 bits, rien à voir avec les tailles des en-têtes TCP/IP), le surcoût absolu (44 bits) reste faible.

  12. Un octet utile est un octet faisant partie de la charge utile (payload), à l'exclusion des en-têtes et codes détecteurs d'erreurs.

    Ces débits sont clairement résumés page 65 (section 4.6, Packet Summary) de la version 1.1, ou page 116 (section 6.7, Packet Summary) de la version 1.2.

  13. Le débit des paquets DM est évidemment réduit d'environ un tiers à cause du code correcteur d'erreurs ; d'autre part en mode symétrique, le débit dans chaque direction est divisé par deux (par rapport à un flot unidirectionnel). Mais on remarque que le débit des paquets DH1 ne dépasse guère le tiers de 500 kbits/sec : l'explication tient essentiellement à la durée des sauts de fréquences, visible sur les schémas des pages 44 (version 1.1) ou 59 (version 1.2) ; cette durée explique aussi que la taille de la charge utile (y compris sa longueur et son code détecteur d'erreurs) passe de 30 octets à 187, autrement dit soit multipliée par six, lorsqu'on passe d'un paquet DH1 à un paquet DH3. Les paquets multi-slots sont donc indispensables pour que le coût des sauts de fréquences ne soit pas excessif.

    La grande rapidité des sauts de fréquence est une caractéristique agressive des réseaux Bluetooth, qui devraient, dans une compétition avec un réseau WiFi situé dans le même local, entraîner la victoire de Bluetooth (autrement dit le réseau Bluetooth devrait continuer à fonctionner, et le réseau WiFi s'effondrer, à puissance égale des émetteurs). Mais elle pénalise le débit, déjà peu élevé avec une modulation binaire de fréquence 1 MHz.