TEMPEST reception of video monitor signals using GNU Radio
conda install ryanvolz::gnuradio-tempest
An implementation of TEMPEST in GNU Radio. TEMPEST (or Van Eck Phreaking) is a technique to eavesdrop video monitors by receiving the electromagnetic signal emitted by the VGA/HDMI cable and connectors (although other targets are possible, such as keyboards, for which the same term is generally used, see Wikipedia/Tempest).
This is basically a re-implementation of Martin Marinov's excellent TempestSDR in GNU Radio (see https://github.com/martinmarinov/TempestSDR). The reason is that I felt it may be easier to maintain and extend. Note however that the basic ideas were imitated, but the synchronization algorithms are different, and some functionalities (particularly in the GUI) are missing.
For a technical explanation you may read Marinov's thesis or Pablo Menoni's thesis (in spanish). You may also watch my presentation at GRCon21 (in English), which includes a technical overview and several demos.
If you find the code useful, please consider starring the repository or citing our paper. This will help us get funding to support the project.
@INPROCEEDINGS{larroca2022gr_tempest,
author={Larroca, Federico and Bertrand, Pablo and Carrau, Felipe and Severi, Victoria},
booktitle={2022 Asian Hardware Oriented Security and Trust Symposium (AsianHOST)},
title={gr-tempest: an open-source GNU Radio implementation of TEMPEST},
year={2022},
doi={10.1109/AsianHOST56390.2022.10022149}}
Example gnuradio-companion flowgraphs are installed with the package and can be found in:
- (Linux/macOS) $CONDA_PREFIX/share/gnuradio/examples/tempest
- (Windows) %CONDA_PREFIX%\share\gnuradio\examples\tempest