Matériel


Dans cette partie, vous trouverez la liste du matériel dont nous disposions ou que nous avons dû rechercher au cours du projet. Nous y expliquons le rôle de chaque élément dans la mise en œuvre de notre travail.


Antenne à gain élevé

Afin de pouvoir la commander dans les plus brefs délais, l’une des premières tâches demandées par notre tuteur de projet a été de rechercher une antenne disponible sur Internet capable de capter des signaux dans une bande de fréquences approximative allant de 30 MHz à 500 MHz. Cette plage de fréquences permet d’écouter les rayonnements électromagnétiques émis par un écran connecté en VGA.

Cependant, après des recherches à l’IUT, nous nous sommes aperçus que nous avions déjà à disposition des antennes capables de capter dans les bandes de fréquence visée :

  • Une antenne Aaronia hyperlog utilisée pendant les travaux pratiques de télécoms. Cette dernière couvre des fréquences allant de 380MHz à 20GHz, elle permet donc de capter la bande haute de fréquences disponibles pour écouter le signal rayonné.
  • L’antenne de l’ADALM-Pluto qui permet, lorsqu’il est débridé de capter des fréquences allant de 60MHz jusqu’à 6GHz ce qui est intéressant pour capter une large partie de la bande de fréquences cible.
  • Une antenne râteau hautement directive même si la bande de fréquence s’étend de 470MHz à 694MHz, ne nous laissant qu’une très faible fenêtre pour la récupération du signal.

ADALM-Pluto

Pour réaliser notre projet, nous avions à disposition un ADALM-Pluto. L’ADALM-Pluto est un SDR (Software Defined Radio) qui permet de recevoir et d’émettre des ondes de différents types (FM, AM, GSM, LTE, Wi-Fi, Bluetooth).

ADALM-Pluto utilisé

Dans le cadre de notre projet, l’ADALM-Pluto était intéressant principalement pour sa capacité à convertir les signaux analogiques en signaux numériques à l’aide de son CAN (Convertisseur Analogique Numérique) intégré, ce qui permettait le dialogue entre une antenne et GNU Radio.


Schéma GNU Radio

Lors de nos recherches, nous avons découvert que notre projet faisait référence au phénomène de Van Eck phreaking ou encore au phénomène TEMPEST (Telecommunications Electronics Material Protected from Emanating Spurious Transmissions), désignant l’ensemble des techniques et problématiques liées à l’exploitation des émissions électromagnétiques involontaires produites par des équipements électroniques, susceptibles de révéler des informations sensibles.

C’est par la suite que nous avons découvert l’existence du projet TempestSDR, très populaire pour ce type d’attaque.

Nous avons ensuite trouvé qu’un chercheur uruguayen du nom de Federico Larroca, travaillant à La Universidad de la Republica avait mis au point une implémentation du projet TempestSDR sur GNU Radio, appelé GR-TEMPEST. Nous avons donc décidé de nous appuyer sur ce projet afin d’obtenir la chaîne de traitement sous GNU Radio.

Notre schéma GNU Radio contient sept blocs distincts dédiés au traitement du signal. Le bloc QT GUI Frequency Sink permet d’observer le signal dans le domaine fréquentiel, mais n’intervient pas dans le traitement du signal principal.


Pluto SDR Source :

Il s’agit du bloc permettant d’interfacer l’ADALM-Pluto avec GNU Radio. Il constitue l’entrée de la chaîne de traitement en captant le rayonnement électromagnétique sous forme d’échantillons complexes (IQ) autour d’une fréquence centrale (en lien avec l’analyse fréquentielle présentée dans la partie théorique). Ce bloc permet également de régler le taux d’échantillonnage transmis au logiciel.


Fine Sampling Synchronization :

Il s’agit du bloc le plus important de cette chaîne de traitement. En effet, il permet de stabiliser l’image en prenant en compte les pixels de blanking afin d’obtenir, pour chaque trame, le nombre exact de pixels en hauteur et en largeur. De plus, ce bloc peut demander au SDR d’ajuster la fréquence d’échantillonnage.

Comme vous pouvez le voir ci-dessus, ce bloc permet d’éviter que les lignes de pixels de l’image ne glissent et ne se désynchronisent.


Delay :

Après la synchronisation, l’image peut ne pas être affichée dans son intégralité. Ce bloc permet alors d’ajouter un délai supplémentaire afin de recentrer l’image sur l’écran espion.


Complex to mag :

Ce bloc permet de réaliser la démodulation en amplitude du signal reçu afin d’obtenir une énergie par échantillon. Cette énergie est ensuite utilisée pour générer les pixels lors de l’affichage de l’image (plus l’énergie est forte, plus les pixels seront clairs).


Normalize flow :

Ce bloc permet d’ajuster le contraste entre les pixels noirs et blancs affichés.


Float to Short et Video SDL Sink

Dans un premier temps, le bloc « Float to Short » assure la conversion du flux de données vers le format attendu par l’afficheur vidéo.

Ensuite, le bloc « Video SDL Sink » découpe le flux en blocs de taille hauteur × largeur, correspondant à la résolution d’affichage, afin de positionner temporellement les pixels au bon endroit, en fonctionnant comme le balayage d’un écran LCD normal.