Bebzounette
Rechercher

GNU-RADIO

1. Introduction

Je vais essayer d'ĂȘtre le plus clair possible sur le fonctionnement du protocole GNU-RADIO.
Une transmission radio permet d’envoyer et de recevoir des informations d’un point A vers un point B Ă  distance. Ce sont les ondes Ă©lectromagnĂ©tiques qui vont permettre cette communication. Nous sommes donc en prĂ©sence de deux appareils technologiques appelĂ©s Ă©metteur/rĂ©cepteur radio.
Voila un petit schéma pour illustrer la chose :
​
Voila à quoi ressemble en théorie une onde électromagnétique (c'est une onde sinusoïdale) :
​
Signal sinusoĂŻdal
Ne vous inquiétez pas je ne vous ramÚne pas dans vos cours à dormir debout de lycée ou de mathSUP/mathSPE.
Pour arriver Ă  transmettre des informations, il est nĂ©cessaire de modifier quelque chose Ă  cette onde afin de diffĂ©rencier l’envoi d’une valeur d’une autre. Dans le cas le plus trivial le « 0 » et le « 1 » logique. En analysant un signal sinusoĂŻdal, on peut constater qu’il est caractĂ©risĂ© par son amplitude, sa frĂ©quence et sa phase. D’un point de vue mathĂ©matique :
​
Équation d’un signal sinusoïdal
On peut donc modifier son amplitude, sa frĂ©quence, sa phase ou mĂȘme combiner deux paramĂštres en fonction des donnĂ©es numĂ©riques Ă  transmettre. On dit que l’on module le signal. C’est en fait la cĂ©lĂšbre fonction « modulation » dont on entend parler pour toutes les communications radio.
Dans notre exemple, on peut imaginer une modulation trĂšs simple :
  • on transmet un 0 logique => A = 0, amplitude nulle
  • on transmet un 1 logique => A = 1, amplitude maxi
On obtient ainsi une modulation appelĂ©e ASK (Amplitude Shift Keying, modulation par sauts d’amplitude) et mĂȘme plus exactement dans notre cas OO-ASK (On Off ASK), car on module en tout ou rien.
​
Modulation OO-ASK
Cette technologie est trĂšs facile Ă  mettre en Ɠuvre, mais prĂ©sente quelques inconvĂ©nients comme la fiabilitĂ©, la vitesse et la portĂ©e.
  • L’écoute et le piratage sont trĂšs simples et rapides puisqu’il n’y a aucune difficultĂ© structurelle dans le matĂ©riel utilisĂ©.
  • Le dĂ©bit binaire est faible puisqu’on ne transmet qu’un bit Ă  la fois.
  • La distance entre l’émetteur et le rĂ©cepteur est modeste puisque l’on est limitĂ© en puissance d’émission et qu’aucune technique d’étalement de spectre n’est utilisĂ©e ici.
  • La modulation ASK est encore utilisĂ©e dans beaucoup de communications oĂč la sĂ©curitĂ© au niveau de la liaison physique n’est pas vraiment la prioritĂ©.

2. GNU-RADIO

Des outils tout faits sont disponibles et compatibles avec les Ă©metteurs-rĂ©cepteurs numĂ©riques. Ils sont dĂ©veloppĂ©s avec ou en parallĂšle d’un projet trĂšs important appelĂ© GNU-RADIO disponible sous LINUX.
Ce projet propose la gestion du matériel et les bibliothÚques de traitement du flux radios.

2.1 Installation

Depuis les depots :
sudo apt install gnuradio
Depuis github
https://github.com/gnuradio/gnuradio
Depuis un script
Script d’installation build-gnuradio disponible Ă  l’adresse http://www.sbrac.org/files/build-gnuradio. Quand tout se dĂ©roule sans problĂšme, ce script installe tous les outils nĂ©cessaires.
Voici une liste de tutoriels pour prendre en mains les diffĂ©rents modules : https://wiki.gnuradio.org/index.php/Tutorials​
Parmi les applications intéressantes, on trouve :
  • les outils RTL-SDR dĂ©veloppĂ©s pour les clĂ©s rĂ©cepteur DVB-T.
rtl_adsb
rtl_eeprom
rtl_fm
rtl_power
rtl_sdr
rtl_tcp
rtl_test
L’outil rtl_fm permet entre autre d’écouter une station radio FM, ou bien encore rtl_sdr qui, lui, permet d’enregistrer les signaux I/Q dans un fichier afin d’ĂȘtre analysĂ©s ultĂ©rieurement ou rejouĂ©s tels quels.
On va s'interesser ici Ă  gnuradio-companion qui est un environnement de dĂ©veloppement graphique dans lequel vous pouvez assembler des blocs . Il construit ensuite un script Python utilisant les modules liĂ©s aux librairies GNU-RADIO compilĂ©es. L’intĂ©rĂȘt de gnuradio-companion est de pouvoir assez facilement adapter le traitement Ă  vos besoins. On lance gnuradio-companion :
$ gnuradio-companion
Prenons un exemple pour illustrer la chose :
Nous disposons d’une tĂ©lĂ©commande et l’objectif est de trouver le code Ă©mis pour Ă©ventuellement crĂ©er une tĂ©lĂ©commande copie. Pour faire cette simple opĂ©ration, il existe des solutions logicielles comme l’application hackrf_transfer qui enregistre les signaux sur une frĂ©quence et les rejoue Ă  destination des rĂ©cepteurs. Il existe aussi des « clĂŽneurs » sous forme de petits circuits Ă©lectroniques qui rĂ©alisent plus ou moins bien cette opĂ©ration. Vous pouvez aussi utiliser gnuradio-companion pour crĂ©er un diagramme qui met en Ă©vidence les code de la tĂ©lĂ©commande.
Pret Ă  hacker votre premier objet ?
​
On note deux chose :
  • Rapport cyclique < 10%
  • Fz : 433.92 MHz
Tout d’abord, vĂ©rifions la frĂ©quence avec osmocom_fft :
$ osmocom_fft -f 433.8M -s 2M
La premiĂšre pointe au centre est celle du HackRF, celle Ă  droite est la transmission de la tĂ©lĂ©commande. On voit bien que la frĂ©quence est de 433,945 MHz. La forme de la pointe nous indique que c’est probablement de la modulation d’amplitude.
Je vous laisse maintenant chercher comment créer un diagramme pour cette télécommande avec gnuradio-companion et trouver que la télécommande en question utilise le protocole HomeEasy spécialisé dans les objets domotiques.

3. Le matériel disponible

La rĂ©alisation de la partie Ă©lectronique peut ĂȘtre une opĂ©ration envisageable, mais serait hors sujet. Il existe suffisamment de matĂ©riels disponibles, aux performances et aux prix variĂ©s, pour Ă©viter l’étape de la fabrication. Une liste non exhaustive des plus utilisĂ©s est prĂ©sentĂ©e ci-aprĂšs.

3.1 La clé RTL-SDR

Ce rĂ©cepteur DVB-T est un « dongle » au prix est trĂšs abordable, 10 Ă  30 euros. Ses caractĂ©ristiques permettent dĂ©jĂ  quelques manipulations. Son gros dĂ©faut est qu’il ne permet pas d’émission.
​
Clé RTL SDR
Ses principales caractéristiques :
  • Bande de frĂ©quence : 30 - 1700 MHz
  • Échantillonnage : 2 MHz
GrĂące Ă  ces paramĂštres, ce circuit permet l’écoute et le dĂ©codage de beaucoup de communications comme les radios AM/FM, les tĂ©lĂ©commandes 433Mhs 868MHz ou d'autres objets se trouvant dans la mĂȘme bande de frĂ©quence.
Cependant, sa limite en frĂ©quence (environ 1,7-2,0 GHz) ne permet pas d’atteindre la bande ISM (Industrielle Scientifique et MĂ©dicale) des 2,4 GHz oĂč beaucoup de communications se trouvent comme le Wi-Fi, le Bluetooth, NRF24, le ZigBee, etc.

3.2 Le HackRF One

L’intĂ©rĂȘt du HackRF par rapport au dongle SDR est qu’il permet d’émettre. Il permet d’écouter ou d’émettre des communications dans pratiquement toutes les bandes ISM classiques. Son prix est compris entre 300 et 400 euros. Un peu cher c'est vrai mais c'est un investissement indispensable si vous comptez devenir expert en radio !
​
Le HackRF One
Ses caractéristiques :
  • half-duplex transceiver (transmetteur half-duplex)
  • operating frequency : 10 MHz to 6 GHz (plage de frĂ©quence de travail)
  • supported sample rates : 2 Msps to 20 Msps (quadrature) (frĂ©quences d’échantillonnage)
  • resolution : 8 bits
  • interface : High Speed USB (with USB Micro-B connector)
  • power supply : USB bus power
Le hackRF est un transmetteur HALF-DUPLEX (Ă©mission ou rĂ©ception, mais pas les deux en mĂȘme temps), ce qui est un inconvĂ©nient pour certaines applications comme l’intĂ©gration dans un rĂ©seau ou la mise en place d’un Man in The Middle. Et oui il va falloir trouver un autre moyen !
Un autre inconvénient du HackRF c'est sa portée... Parfait pour des test locaux mais dÚs qu'il s'agit de communications éloignées il faudra penser à utiliser autre chose.

3.3 Le bladeRF (une alternative un peu plus haut de gamme)

Le bladeRF en FULL-DUPLEX (Ă©mission ou rĂ©ception ou les deux en mĂȘme temps) sur une largeur de canal de 28 MHz. Il est un peu plus cher que son concurrent hackRF, 400 Ă  500 euros.
​
Le bladeRF de chez NUAND

3.4 Le PandwaRF

Sa plage de frĂ©quence n’est pas trĂšs Ă©tendue (infĂ©rieure Ă  1 GHz) et prĂ©sente des zones mortes (frĂ©quences non gĂ©rĂ©es). Le PandwaRF est toutefois Ă©metteur et rĂ©cepteur dans les frĂ©quences les plus utilisĂ©es, 315/433/868/915 MHz pour les modulations ASK/OOK/MSK/2-FSK/GFSK. L’utilisateur ne peut pas configurer le traitement numĂ©rique des signaux reçus ou Ă©mis, mais dispose d’applications sous Linux ou smartphone, connectĂ©es en USB ou Bluetooth LE, permettant de recevoir, enregistrer et renvoyer des communications radio numĂ©riques avec ou sans modifications.
Il permet de pirater trÚs facilement toutes les télécommandes de base. Environ 200 euros.
​
​

3.5 L’USRP

Cet émetteur-récepteur numérique est le best de sa catégorie. Mais... c''est cher... entre 1000 à 5000 euros suivant les versions.
L’USRP est composĂ© d’une base regroupant les interfaces numĂ©riques (USB, Ethernet
). On doit ajouter Ă  cette base (coĂ»t supplĂ©mentaire) des modules radio frĂ©quence. L'USRP est un peu comme une voiture, vous pouvez lui ajouter des options, choisir sa version en fonction de vos besoin.
​
Pour recevoir et Ă©mettre dans une large bande on doit lui ajouter un circuit RF type :
​
RX/TX WBX 20 - 2200 MHz