VHF Monitor RF-transmitter (TEMPEST / EMI side-channel Morse-generator)

Projectoverzicht

De VHF Monitor RF-transmitter is een experimentele browser-gebaseerde tool die een gewoon computerscherm omzet in een VHF-morsetransmitter met een kort bereik.

Opmerkelijk is dat dit project werkt zonder enige radiohardware, RF-transmitters, SDR's of externe modems. Door de nauwkeurige pixeloutput op het scherm te beheren via een geoptimaliseerde HTML5 Canvas render-engine, manipuleert de tool de interne videoverwerkingseenheid (GPU/Scaler) en de transmissie-interfaces (HDMI/DisplayPort). Hierdoor worden gemoduleerde elektromagnetische signalen direct uitgezonden via side-channel emissies (TEMPEST).

Diepgaande analyse: De fysica en engineering achter display-EMI

Moderne videopijplijnen zijn niet puur optisch; het zijn digitale elektronica met hoge snelheden die op hoge frequenties werken. Dit project maakt gebruik van onbedoelde elektromagnetische straling (EMI) om leesbare RF-signalen uit te zenden.

1. De videopixelklok ($f_{pixel}$)

Om een stabiel beeld weer te geven, stuurt een videokaart continu videodata naar een monitor, frame voor frame en lijn voor lijn. De basisklokfrequentie die deze pixelstroom aanstuurt, staat bekend als de Pixel Clock Frequency ($f_{pixel}$).

De pixelklok wordt berekend op basis van de totale frame-afmetingen (inclusief het actieve weergavegebied plus de horizontale en verticale 'blanking intervals'), vermenigvuldigd met de verversingssnelheid van het scherm:

$$f{pixel} = (H{total}) \times (V{total}) \times f{refresh}$$

Hierbij geldt:

  • $H{total} = H{active} + H_{blanking}$ (totaal aantal horizontale pixels)
  • $V{total} = V{active} + V_{blanking}$ (totaal aantal verticale lijnen)
  • $f_{refresh} = \text{verversingssnelheid van het scherm in Hz}$

Voorbeeldberekening (Standaard 1080p @ 60Hz):

  • Actieve resolutie: $1920 \times 1080$
  • CEA-861 Timing Standaard: $H{total} = 2200$, $V{total} = 1125$
  • Verversingssnelheid: $60\text{ Hz}$

$$f_{pixel} = 2200 \times 1125 \times 60 = 148.500.000\text{ Hz} = \mathbf{148,500\text{ MHz}}$$

2. Hoogfrequente patroonmodulatie

Wanneer het scherm een effen zwarte of statische achtergrond weergeeft, blijft de signaalstroom via de videokabel relatief uniform.

Wanneer de applicatie echter een afwisselend $1 \times 1$ pixelpatroon rendert (afwisselend zwarte #000000 en witte #FFFFFF pixels naast elkaar), dwingt elke opeenvolgende klokcyclus de serializer van de display-interface (TMDS of FRL bij HDMI; Main Link Lanes bij DisplayPort) om razendsnel van voltagesituatie te wisselen.

Deze maximale schakeling induceert een sterk elektromagnetisch veld op exact de pixelklokfrequentie ($148,500\text{ MHz}$), waardoor er een RF-draaggolf in de ruimte wordt uitgezonden.

3. CW (Continuous Wave) / AM Morse-modulatie

Om leesbare data in deze elektromagnetische straling te coderen, wordt het volgende gedaan:

  • Carrier ON (Mark): De applicatie rendert een contrastrijk, afwisselend pixelpatroon over het gehele canvas van het scherm. De video-lijn-serializer fluctueert op maximale capaciteit, wat sterke RF-interferentie veroorzaakt.
  • Carrier OFF (Space): Het canvas schakelt onmiddellijk over naar effen zwart (#000000). De klokovergangen zakken naar een minimale basisruis, waardoor de uitgezonden RF-output wegvalt.

Door de timing van deze patroonwisselingen af te stemmen op de gestandaardiseerde lengtes van morsecode (punten = 1 eenheid, strepen = 3 eenheden), kan een nabijgelegen radio-ontvanger een hoorbare CW/AM-toon oppikken.

Hoe doelfrequenties worden berekend

Verschillende monitorresoluties en verversingssnelheden produceren verschillende fundamentele frequenties. Hieronder staan de berekende doelfrequenties die gewoonlijk worden gegenereerd door display-timings:

ResolutieVerversingssnelheid (Hz)Totale Timings ($H{total} \times V{total}$)Fundamentele doelfrequentie
1920 x 108060 Hz$2200 \times 1125$148,500 MHz (VHF Amateur 2m Band)
1920 x 1080144 Hz$2200 \times 1125$356,400 MHz (UHF Military / Aviation)
2560 x 144060 Hz$2720 \times 1481$241,500 MHz (VHF High)
1280 x 72060 Hz$1650 \times 750$74,250 MHz (VHF Low / 4m Band)

Opmerking over harmonischen: Naast de fundamentele pixelklokfrequentie kunnen ook sterke secundaire en tertiaire harmonischen worden gedetecteerd in hogere banden ($2 \times f{pixel}$, $3 \times f{pixel}$).

Belangrijkste kenmerken in versie 1.2

  • Automatische meertalige detectie: Leest bij opstarten navigator.language en lokaliseert de gebruikersinterface automatisch in het Engels, Turks, Frans, Duits, Spaans of Chinees.
  • Live frequentieberekeningsengine: Controleert de resolutie en verversingssnelheid via high-resolution timers (performance.now()) om dynamisch de actieve transmissiefrequentie te voorspellen.
  • Interactieve veiligheids- en toestemmingsoverlay: Bevat een interactief startvenster met waarschuwingen voor foto-gevoelige epilepsie en stappen voor de installatie van de ontvanger.
  • Dynamische volledig-scherm optimalisatie: Vraagt automatisch de volledig-scherm modus aan bij het starten van de transmissie om het schermoppervlak te maximaliseren en de uitgezonden RF-vermogen te verhogen.
  • Precisie-timing schuifregelaars: Maak de duur van de punten nauwkeurig af te stellen (50 ms – 300 ms) om de snelheid in woorden per minuut (WPM) aan te passen.

Installatie van de ontvanger en hardware-instructies

Om transmissies te beluisteren met een handheld radio (bijv. Baofeng, Yaesu, Icom) of een SDR (RTL-SDR, HackRF, Airspy):

  1. Bereken de doelfrequentie: Open de app; deze toont uw gedetecteerde doelfrequentie (bijv. 148,500 MHz).
  2. Stel de ontvangerfrequentie in: Stem uw radio/SDR nauwkeurig af op die frequentie.
  3. Selecteer de radiomodus: Zet de modulatiemodus op AM, USB, CW of FM.
  4. Schakel Squelch uit: Zet de Squelch op 0 (niet gedempt, open statische ruis).
  5. Stel de bandbreedte in: Kies voor een WIDE ontvanger filter-bandbreedte.
  6. Antenneplaatsing: Houd de antenne van uw ontvanger direct achter uw monitor, zo dicht mogelijk bij de HDMI- of DisplayPort-connector.

Veiligheids- en juridische disclaimer

Waarschuwing voor epilepsie: Deze applicatie rendert hoog-contrast, hoog-frequente visuele flitsen. NIET GEBRUIKEN als u of iemand in uw omgeving lijdt aan foto-gevoelige epilepsie of lichtgevoeligheid.

Naleving & Gebruik: Deze software is strikt uitgebracht voor educatief onderzoek, experimenten met Ham Radio en TEMPEST side-channel demonstraties. Gebruikers dragen alle juridische en operationele verantwoordelijkheid voor de naleving van lokale RF-regelgevingsnormen.

73 de TA1EEI