Dans cette partie, nous allons expliquer en détail les attendus de notre projet ainsi que les outils que nous devons utiliser afin de le réaliser.
Important — cadre légal et éthique
Ce projet est réalisé dans le cadre d’un cursus universitaire encadré. Les contenus publiés ici ont pour objectif d’expliquer des concepts théoriques et des contre-mesures, dans une perspective de sensibilisation et de sécurité. Ils ne fournissent pas d’instructions pratiques destinées à commettre des actes d’espionnage ou d’intrusion.
L’usage des méthodes présentées à des fins non autorisées est strictement interdit et peut faire l’objet de poursuites pénales.
Principe physique
L’espionnage LCD correspond à une technique d’attaque appelée Van Eck phreaking, ou TEMPEST (Telecommunications Electronics Materials Protected from Emanating Spurious Transmissions), du nom du physicien Wim van Eck. Cette attaque consiste à capter, à l’aide d’une antenne, les ondes électromagnétiques émises par rayonnement d’un appareil électronique mal isolé, puis à reconstituer le signal sur une machine espionne.
Attendus généraux du projet
Pour ce projet, nous devions réfléchir à la manière de mettre en place une solution d’espionnage d’un écran LCD à l’aide d’une antenne, d’un ADALM-Pluto et d’un schéma GNU Radio. Le but était de capter le signal émis par le rayonnement de l’écran puis de reconstituer l’écran sur une machine espionne afin de voir à distance les événements se produisant sur l’écran espionné.
Le projet devait permettre, dans un premier temps, d’espionner un écran statique, puis un écran dynamique sur lequel se produisent des actions. Enfin, il fallait adapter notre projet en fonction de la distance depuis laquelle nous espionnions l’écran, en passant de distances faibles à des distances plus élevées.
Matériel à disposition
Antenne à gain élevé
La première partie de notre projet a consisté en la recherche et la commande d’une antenne à haut gain. En effet, comme le projet était nouveau dans notre établissement, l’antenne spécifique au projet n’était pas présente et devait être achetée par l’établissement.

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).
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 intégré, ce qui permettait le dialogue entre une antenne captant des signaux analogiques et GNU Radio traitant des signaux numériques.

Schéma GNU Radio
Lors de nos recherches, nous avons découvert que notre projet faisait référence au Van Eck phreaking ou à TEMPEST. C’est à ce moment-là que nous avons découvert l’existence du projet TempestSDR, très populaire pour ce type d’attaque.
Nous avons appris par la suite qu’un chercheur avait travaillé sur l’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 au total 10 blocs et deux chemins, selon que nous ayons connaissance ou non de la résolution de l’écran :
- Pluto SDR Source : bloc permettant de connecter l’ADALM-Pluto, qui assure la liaison entre l’antenne captant le signal rayonné et GNU Radio qui le traite.
- Fine Sampling Synchronization :
- Delay :
- Complex to Mag : convertisseur de données de type complexe vers magnitude.
- Normalize Flow :
- Framing :
- Float to Short : convertisseur de données de type float vers short.
- Video SDL Sink : affiche à l’écran l’information qui parvient à ce bloc.