A collection of scripts exploring diverse methods of creating communication systems, with a special focus on covert channels and advanced signaling techniques.
Technical report about the prelimianry phase of this project for Fontys Cybersecurity Research Group can be found in publications directory.
Extended and upgraded version of the working prototype can be found in this repo: https://github.com/HiteshManglani123/air-gapped
Here's a breakdown of the projects in this repository.
This project simulates an RF transmission system using frequency sweeps. A sender encodes messages by modulating power levels within the sweeps, and a receiver decodes them from a CSV file.
- Medium: Simulated RF (CSV file)
- Technology Stack:
- How it Works:
- Sender: Generates frequency sweeps (300–301 MHz) and encodes binary data by modulating power levels (
-50 dBfor1,-70 dBfor0). - Receiver: Reads a
sweeps.csvfile, detects transmission markers (preamble/postamble), and decodes the power-level encoded message.
- Sender: Generates frequency sweeps (300–301 MHz) and encodes binary data by modulating power levels (
An implementation of a covert channel that uses CPU load modulation on a Raspberry Pi 4 to generate electromagnetic (EM) emissions. It demonstrates a simple air-gap communication link using On-Off Keying (OOK).
- Medium: Electromagnetic (EM) Emissions
- Technology Stack:
- How it Works:
- Transmitter (C): Runs on a Raspberry Pi 4, modulating CPU load to create EM fields. High CPU load (
1) vs. Idle (0). - Receiver (Python): Connects to GQRX via TCP/IP to monitor signal strength and decode the OOK-modulated bits from the EM emissions.
- Transmitter (C): Runs on a Raspberry Pi 4, modulating CPU load to create EM fields. High CPU load (
A covert communication system using 4-FSK (4-level Frequency Shift Keying) to transmit data over an audio channel. The system can send and receive messages using audio tones, with the receiver supporting both live microphone input and
.wavfiles.
- Medium: Audio
- Technology Stack:
- How it Works:
- Transmitter: Converts text to binary, maps pairs of bits to one of four audio frequencies (17000-17750 Hz), and plays them as tones.
- Receiver: Uses FFT on audio input (live or from a
.wavfile) to detect frequency peaks, reconstruct the bitstream, and decode the message.
This collection demonstrates a variety of skills and technologies, including:
- Programming Languages: Python, C
- Digital Signal Processing (DSP):
- Frequency Shift Keying (FSK)
- On-Off Keying (OOK)
- Fast Fourier Transform (FFT) for spectral analysis
- Covert Channel Techniques:
- CPU Load Modulation
- Electromagnetic (EM) Side-Channel Analysis
- Audio Steganography
- Hardware Interfacing: Raspberry Pi, SDR (via GQRX)
- Data Handling: Real-time data logging (CSV), file I/O, audio stream processing.
For more detailed information, please refer to the README.md file within each project's directory.