Come rilevare il jamming GPS: un metodo gratuito e riproducibile
Risposta breve: non servono hardware proprietari né feed classificati. La maggior parte dei ricevitori GNSS calcola già il rapporto portante-rumore (CNR, scritto anche C/N0), un valore che descrive con quale accuratezza viene ricevuto ciascun satellite, e l'archivio CDDIS della NASA pubblica questo dato gratuitamente per oltre 500 stazioni di terra pubbliche IGS in tutto il mondo, con aggiornamenti nell'arco di pochi minuti. Un metodo del 2025 dell'Università del Texas ad Austin (Clements & Humphreys) sfrutta questo stesso archivio gratuito per individuare interferenze GPS reali: calcolare la differenza del CNR di ciascun satellite rispetto a se stesso pochi secondi prima, fare la media tra tutti i satelliti tracciati da una stazione e verificare la presenza di un picco sincronizzato su più stazioni a centinaia di chilometri di distanza nello stesso istante. Un picco su una sola stazione, senza alcun riscontro altrove, è rumore, non jamming. Abbiamo implementato questo rilevatore e lo abbiamo eseguito live su 27.99 ore-stazione di dati CDDIS reali su 7 stazioni nel Baltico e in Europa centrale, inclusa LAMA in Polonia. La nostra finestra temporale è stata tranquilla: 16 anomalie isolate su singole stazioni, zero eventi sincronizzati su più stazioni. Di seguito descriviamo il metodo completo, i dati reali e ciò che distingue un rilevamento autentico da una coincidenza.
Perché è importante oggi
Le interferenze GPS e GNSS nella regione del Mar Baltico sono passate dall'essere un tema di nicchia della guerra elettronica alle notizie di prima pagina. Le autorità per l'aviazione e la navigazione marittima di Polonia, Lituania e Finlandia hanno segnalato un forte incremento di jamming e spoofing a partire dal 2022, e testate giornalistiche da Defense News a Euronews hanno documentato telefoni, droni e navi che hanno perso il fix GPS in tutta la regione fino al 2026. I piloti tengono traccia del fenomeno quotidianamente su community board come OPSGROUP; una mappa termica pubblica, gpsjam.org, aggrega le segnalazioni di accuratezza della navigazione ADS-B dei velivoli in una mappa live. Si tratta di uno strumento operativo realmente utile, ma desume le interferenze in modo indiretto, dal comportamento dei velivoli. Non misura l'effettiva qualità del segnale a livello di ricevitore.
Cercando "how to detect GPS jamming" oggi, i risultati mostrano quasi esclusivamente vendor di sistemi di tracciamento flotte che vendono hardware, accompagnati da elenchi generici sui "segnali a cui prestare attenzione". Nessuno mostra una vera pipeline di rilevamento in esecuzione su dati reali. Questo articolo colma proprio questo divario: un metodo a livello di segnale, basato su dati che chiunque può scaricare gratuitamente, con codice e numeri reali illustrati concretamente e non semplici affermazioni.
Il metodo: differenze temporali del rapporto portante-rumore
Il rapporto portante-rumore descrive l'intensità con cui un ricevitore rileva il segnale di un determinato satellite rispetto al rumore di fondo, in dB-Hz. Varia naturalmente in funzione dell'elevazione del satellite, della qualità dell'antenna e delle condizioni atmosferiche, il che rende una soglia basata sul CNR grezzo un rilevatore di jamming poco efficace: un satellite basso vicino all'orizzonte appare simile a uno soggetto a jamming. La soluzione adottata da Clements e Humphreys consiste nell'applicare una soglia alla differenza temporale su un breve intervallo (short-lag), eliminando la deriva lenta e naturale e isolando i transienti rapidi:
- Differenza per singolo satellite. Per ogni satellite tracciato, si calcola ε[k] = CNR[k] − CNR[k−L], con L intorno a 3 secondi a una frequenza di campionamento di 1 Hz.
- Statistica di stazione. Si calcola la media di ε[k] tra tutti i satelliti attualmente tracciati dalla stazione, ottenendo un unico valore per stazione Λ[k] a ogni epoca.
- L'ipotesi nulla. In assenza di anomalie, Λ[k] si comporta come rumore a media zero con un'ampiezza specifica per stazione, determinata dal ricevitore e dall'antenna di quella specifica stazione. Questa ampiezza viene calcolata empiricamente, impostando una soglia a un certo numero di deviazioni standard al di sopra di essa.
- Il vero discriminante: lo spazio, non solo l'ampiezza. Una fonte di interferenza autentica su ampia scala, un satellite che presenta dispersioni RF o un potente trasmettitore di terra, colpisce stazioni multiple e geograficamente distribuite all'interno della stessa finestra di pochi secondi. Il superamento di una soglia limitato a una sola stazione, senza alcun riscontro su nessun'altra stazione a centinaia di chilometri di distanza, è con molta più probabilità un evento locale: multipath, un'ostruzione fisica, un'anomalia temporanea del ricevitore o scintillazione ionosferica, segnalata in tutti i paper consultati come la principale causa di falsi positivi.
Cosa abbiamo effettivamente eseguito
Chiunque mantenga un approccio analitico dovrebbe poter replicare l'analisi, ecco quindi l'intera pipeline.
- Stazioni. Sette stazioni IGS high-rate distribuite su circa 2,000 km tra Europa centrale e settentrionale: LAMA (Lamkówko, Polonia), GANP (Ganovce, Slovacchia), GOPE (Pecny, Repubblica Ceca), MAR6 (Mårtsbo, Svezia), METG (Metsähovi, Finlandia), ONSA (Onsala, Svezia) e WTZR (Wettzell, Germania). LAMA è stata scelta perché gli studi successivi condotti dagli autori del paper citato vi hanno riscontrato i cali di CNR più marcati tra quelli registrati.
- Finestra temporale. 2026-09-29, martedì, dalle 07:00 alle 11:00 UTC, il giorno feriale completo più recente con dati high-rate disponibili al momento dell'esecuzione. L'orario lavorativo è stato scelto poiché il paper citato indicava una concentrazione di interferenze in quella fascia.
- Il download. L'archivio RINEX v3 high-rate del CDDIS della NASA è strutturato in blocchi da 15 minuti. L'accesso via HTTPS ha restituito un codice 401: il login Earthdata è ora obbligatorio, a conferma di una modifica agli accessi introdotta a giugno 2025. L'accesso anonimo FTP-SSL ha funzionato senza alcuna autenticazione, la stessa modalità offerta da CDDIS per anni:
ftp://gdc.cddis.eosdis.nasa.gov/gnss/data/highrate/<yyyy>/<ddd>/<yy>d/<HH>/. 112 file da quindici minuti, 104 MB in totale, distribuiti sulle 7 stazioni e sulle 4 ore. - Il parsing. I file sono in formato RINEX v3 con compressione Hatanaka. Abbiamo decompresso e analizzato i dati tramite le librerie Python open source
georinexehatanaka, estraendo il campo del rapporto portante-rumore per GPS L1 C/A (S1C) per ciascun satellite a ogni epoca. - Il calcolo. Esattamente la statistica Λ[k] descritta sopra, L = 3 secondi, valutata a due soglie, 5σ e 6σ, rispetto al rumore di fondo empirico di ogni stazione. Un superamento viene conteggiato come candidato evento multi-stazione solo se si verifica su più stazioni entro una finestra temporale di 5 secondi.
- Cosa non abbiamo fatto. Non abbiamo effettuato richieste verso alcun host all'infuori dell'archivio pubblico della NASA, non abbiamo trasmesso segnali RF e non abbiamo raccolto dati personali. Le coordinate delle stazioni e i metadati degli apparati sono registri pubblici dell'infrastruttura IGS, non informazioni private.
Cosa mostrano concretamente 27.99 ore-stazione prive di anomalie
LAMA, la nostra stazione principale, è stata la più stabile tra le sette. Il suo rumore di fondo per Λ[k] ha registrato una deviazione standard di appena 0.124 dB-Hz, con zero superamenti di soglia sia a 5σ che a 6σ nell'intera finestra di quattro ore. Questo è il comportamento tipico di un segnale del tutto pulito, non una linea piatta, ma rumore reale che oscilla all'interno di una banda controllata, senza mai uscirne.
Su tutte e sette le stazioni emerge lo stesso schema, pur con differenti livelli di rumore. GANP in Slovacchia è risultata la più rumorosa, con una deviazione standard di 0.219 dB-Hz, e ha prodotto il singolo picco isolato più ampio registrato nell'intero dataset.
| Stazione | Paese | Rumore di fondo (σ, dB-Hz) | Superamenti a 5σ | Superamenti a 6σ |
|---|---|---|---|---|
| ONSA (Onsala) | Svezia | 0.125 | 11 | 2 |
| GANP (Ganovce) | Slovacchia | 0.219 | 4 | 2 |
| GOPE (Pecny) | Repubblica Ceca | 0.187 | 1 | 0 |
| WTZR (Wettzell) | Germania | 0.152 | 0 | 0 |
| METG (Metsähovi) | Finlandia | 0.128 | 0 | 0 |
| MAR6 (Mårtsbo) | Svezia | 0.124 | 0 | 0 |
| LAMA (Lamkówko) | Polonia | 0.124 | 0 | 0 |
Totali: 16 superamenti isolati su singola stazione a 5σ, che scendono a 4 a 6σ. Questa riduzione rappresenta di per sé un dato utile e concreto per chiunque debba calibrare un rilevatore simile: allentare la soglia di un sigma ha quasi quadruplicato i falsi allarmi, senza che nessuno dei due gruppi corrispondesse a un reale evento multi-stazione.
Il caso limite rilevato e perché non costituisce jamming
Ventotto ore-stazione di rumore RF reale hanno prodotto esattamente una coincidenza degna di analisi, poiché un articolo rigoroso mostra i casi limite, non solo quelli ideali. Alle 07:27:38 UTC, ONSA ha superato la soglia di 5σ con +0.656 dB-Hz. Due secondi dopo, alle 07:27:40 UTC, GANP ha superato la propria soglia di 5σ con −1.2 dB-Hz. Due stazioni a distanza di cinque secondi l'una dall'altra hanno generato una segnalazione: sulla carta, l'esatta dinamica di un candidato evento multi-stazione.
Tuttavia, non si tratta di un evento reale, per due ragioni che la verifica di simultaneità spaziale descritta nel paper è concepita per intercettare. Innanzitutto, il segno non concorda: una reale fonte di interferenza su larga scala riduce il CNR in tutte le stazioni che raggiunge, non lo incrementa su una per ridurlo su un'altra. In secondo luogo, l'ampiezza non corrisponde: il valore di ONSA ha appena superato la soglia, mentre quello di GANP era circa il doppio rispetto alla propria. Applicando la soglia più restrittiva a 6σ, la misurazione di ONSA delle 07:27:38 non rientra più nei parametri e la coincidenza scompare del tutto. Quel picco su GANP, peraltro, illustra chiaramente un artefatto noto di questo metodo: un'autentica variazione a gradino istantanea nel CNR di una stazione compare in Λ[k] come una coppia correlata positivo-negativo a esattamente L secondi di distanza, in questo caso +1.9 dB-Hz alle 07:27:26 seguito da −1.8 dB-Hz alle 07:27:29. Tale accoppiamento è indicativo di un evento reale ma locale, legato al ricevitore o all'antenna di GANP. Il fatto che sia rimasto limitato esclusivamente a GANP, senza alcun riscontro su GOPE o LAMA a 300 o 600 km di distanza, è esattamente ciò che esclude una causa fisica condivisa.
Cosa non dimostra questa analisi
Limiti operativi concreti, poiché un dato privo di riserve rientra solo nell'ambito del marketing.
- Una sola finestra temporale, un solo giorno feriale. Un risultato nullo su un arco di quattro ore non dice nulla sugli altri giorni o orari. Il dataset del paper citato, esteso su 7 anni e 165 stazioni, ha identificato interferenze solo su una minoranza di giorni-stazione, per cui un martedì pomeriggio senza anomalie è un esito atteso, non la prova che l'area baltica sia priva di attività in generale.
- Questo metodo è indicato per eventi su larga scala, non per un singolo jammer locale. L'archivio IGS standard è progettato per rilevare fenomeni sincronizzati di durata pari o superiore a più secondi, del tipo prodotto da una sorgente spaziale o da un emettitore molto potente. La localizzazione di jammer terrestri nel Baltico documentata da ricercatori regionali ha impiegato array densi di sensori TDOA dedicati, uno strumento completamente diverso. Questa pipeline non è in grado di determinare le coordinate di un jammer a bordo di una nave.
- Sette stazioni rappresentano una dimostrazione, non un censimento. Non avanziamo alcuna conclusione sulla prevalenza del jamming a livello regionale a partire da questo campione. L'esperimento dimostra che il metodo funziona end-to-end su dati reali ed evidenzia le caratteristiche di una baseline di riferimento affidabile.
- La scelta della soglia comporta un reale compromesso. I nostri dati lo confermano direttamente: 16 epoche segnalate a 5σ scendono a 4 a 6σ, in entrambi i casi tutti falsi allarmi nella nostra finestra. Chiunque implementi questo approccio deve tarare la soglia in base al rumore di fondo della propria stazione.
Come eseguire l'analisi in autonomia
Tutti i dati e gli strumenti qui descritti sono accessibili a chiunque a costo zero. Selezionare un insieme di stazioni high-rate IGS distribuite geograficamente dall'elenco attuale su network.igs.org. Scaricare i blocchi RINEX v3 da 15 minuti tramite FTP-SSL anonimo dall'archivio pubblico di CDDIS, senza necessità di account. Decomprimere e analizzare i file con strumenti open source quali georinex, estraendo l'osservabile CNR per la costellazione e la frequenza di interesse. Calcolare Λ[k] esattamente come descritto, determinare il rumore di fondo delle stazioni e, passaggio cruciale, non considerare mai un superamento su una singola stazione come un rilevamento confermato. La verifica di simultaneità spaziale su stazioni distanziate è ciò che trasforma una semplice anomalia del ricevitore in un'evidenza fondata, ed è anche il passaggio che ha permesso di scartare correttamente il nostro caso limite.
Perché questo approccio è rilevante
Il valore di un metodo come questo risiede nel fatto che rileva il dato reale a livello di segnale, basandosi su un'infrastruttura per cui non occorre affidarsi alla dashboard proprietaria di un vendor. gpsjam.org e strumenti analoghi svolgono un lavoro prezioso desumendo le interferenze dal comportamento a valle di aerei e navi. Questo approccio legge la causa in modo più diretto, all'interno di dati che una rete globale di ricevitori di livello geodetico pubblica già gratuitamente, ora dopo ora, da decenni. Questa combinazione, un solido metodo accademico di rilevamento, dati pubblici accessibili senza alcuna barriera se non un login FTP gratuito e una pipeline interamente riproducibile, è rara in un settore dominato da pagine di vendita e feed di intelligence riservati. Abbiamo condotto l'analisi con trasparenza, includendo il risultato che non prevedevamo essere il più utile: una baseline pulita, corredata da numeri reali sui falsi allarmi, è esattamente ciò che chiunque implementi questo metodo deve conoscere prima di poter considerare affidabile la sua prima segnalazione.