Hacker News new | past | comments | ask | show | jobs | submit login
GPSJam: Daily Maps of GPS Interference (gpsjam.org)
301 points by kasbah 63 days ago | hide | past | favorite | 82 comments

I made this site.

Copying a comment I made on HN a few weeks ago:

The ADS-B signals that many aircraft broadcast include not just the aircraft's GPS positions, but also a measure of GPS accuracy (strictly speaking, ADS-B doesn't talk about GPS specifically and can handle any sort of navigation technology; I'm sure there are some planes out there reporting positions based on inertial navigation systems, with correspondingly low accuracy, or GLONASS-derived positions, or whatever, but my understanding is that right now something on the order of 99% of aircraft with ADS-B are using good old GPS so I'll just keep using the term GPS in this description). If you go to https://globe.adsbexchange.com and click on just about any aircraft, you'll see an info sidebar on the left of the screen. Scroll down until you see the ACCURACY section, and you'll see values labeled NACp, SIL, NACv, NICbaro, and Rc. Those are all self-reported measures of the accuracy of the data being sent by the aircraft[1]. NACp is "Navigation Accuracy Category for position", and is a good measure of whether the aircraft's GPS is working well. (A somewhat obscure feature of ADS-B Exchange lets you see a map of all aircraft that are currently reporting poor navigation accuracy for their GPS: https://globe.adsbexchange.com/?badgps)

To make the maps, I process a day's worth of data from ADS-B Exchange to find all the aircraft reporting poor navigation accuracy and then I color map hexes (using H3 hexes) according to the proportion of aircraft passing through that hex that reported bad GPS accuracy. Specifically, I'm counting an aircraft as experiencing "interference" if it at some point reported good navigation accuracy and then reported low accuracy. Doing this helps filter out aircraft that just have an ongoing issue with their GPS equipment, or don't even have GPS.

When I do that, areas where there is systematic interference—almost always jamming by military systems—become obvious. There are a few conflict zones (Syria, Cyprus, Israel) that have been experiencing jamming for years, and the U.S. often has smaller scale military testing, especially in the West and Southwest. You can also see the jammers that are apparently setup around Moscow to prevent drones from flying near Oligarch dachas[2].

I started making these maps in February before Russia invaded Ukraine because I thought it might provide an early warning of an invasion. I didn't see that, and in fact this technique doesn't do a very good job of mapping GPS jamming around the actual war zones because civil aviation stopped over Ukraine, so there are zero or few aircraft with ADS-B reporting their GPS accuracy[3]. Without that data, I can't make a map.

Sometimes I do see changes, like when Russia suddenly started jamming around Kaliningrad in March 2022, causing interference in many Baltic states and leading to Finland to cancel some flights[4]. Then a few days later, they just stopped.

I don't think too many people have realized yet what an amazing source of GPS interference data is available using ADS-B! It's like having thousands of sensors roaming the planet, broadcasting GPS accuracy data every few seconds. I sometimes wonder if I would disrupt someone's nascent business model if I started publishing my maps regularly.

1. https://twitter.com/lemonodor/status/1493789598077440000 2. https://www.gpsworld.com/jammers-at-dachas-add-to-russias-ab... 3. https://twitter.com/lemonodor/status/1497295859196649475 4. https://twitter.com/lemonodor/status/1500719113185816577

Most of the red zone around Moscow is situated on east and northeast, whereas "oligarch dachas" are mostly located directly west of Moscow (that hexagon is also red).

I think it's mostly aerospace installations apparent on that map, such as https://ru.wikipedia.org/wiki/Медвежьи_Озёра_(центр_космичес...

Not sure what's going on in Pereslavl-Zalessky.

Having said that, of course GPS/GLONASS in the form of consumer phone-based navigation works just OK in Moscow. There is sometimes visible interference near the Kremlin though (your phone might suddently think it's in VKO).

It's also pretty much constant around Moscow City complex - at first it teleported you to VKO but later began moving you to SVO.

Maybe you want to connect with Bert Hubert. https://berthub.eu/ He gave an interesting talk about GPS, and other global positioning systems on MCH2022: https://media.ccc.de/v/mch2022-17-how-do-gps-galileo-really-...

Virtually all of the oligarch dachas are actually to the west of Moscow; Wikimapia shows though that there are some military areas such as firing ranges and artillery ammo dumps to the east.

I noticed that the map is perhaps the one that moves more smoothly on my browser (Firefox Android), included the browser version of Google maps. Well done but how did you do it?

On the other side I couldn't use the history button to come back to HN after visiting the site: too many URLs pushed into history. As a very low priority activity, is there a way to keep the URL constant and generate one only if someone wants to share a screen?

It's using MapBox which has a very nice WebGL map renderer.

This is remarkable and I'm shocked it doesn't have more comments. Really cool stuff. Thank you for sharing.

Amazing work, but just some feedback, I'm running Opera 70.3 on an Android phone, and navigating the map filled my navigation history with a large amount of links to a given lat/long, I'm guessing they referred to where I touched while rotating or zooming in.

Anyway, edge case browser and all, but thought I'd raise it in case it's an issue.

I'm on Firefox Android and experienced the same issue.

Had to close the tab to get back to HN.

Aside from that, really impressive work. Well done.

Should be fixed now. Thanks!

the european plate observing system has a subservice that distribute GPS data from GPS stations, including some ukrainian ones https://gnssdata-epos.oca.eu

I don't know if they are usable for your idea though

> Kaliningrad in March 2022

I'm around there and my boat plotter (~2005 device) was going berserk in June! Will have to ask other boaters if they had similar experience?

Also, how does ADS-B exchange get coverage around antarctic (i.e. Durban to Australia flights)? I thought they rely on RTL-SDR's sprinkled around the land? I know Iridium monitors ADS-B and AIS from space, but at this point they can also monitor jammed signals itself?

https://flightaware.com/adsb/coverage/ shows an ADS-B receiver at McMurdo station and at least 2 others in Antarctica.

Whats the range of it tho?

300NM, according to this FR24 post about their first receiver in Antarctica, at Troll research station.


> I sometimes wonder if I would disrupt someone's nascent [systematic interference] business model if I started publishing my maps regularly.

it seems obvious publishing this might not be fully appreciated by the crowd who jams. has this project generated any complaints?

Meatsock my old buddy! Nope, no one has complained to me yet.

Back before I made this site, when I was publishing my maps on twitter, on-demand, I did get DMs like "I'm Ukrainian. Could you make maps for [range of dates] for [region]?" and I had to think through the ethics. Was I OK publishing information that could not-inconceivably get someone killed in a war zone? Was that person really Ukrainian? Did it matter?

I decided that this information is being broadcast for anyone to easily receive, and also that it is self-censoring in a way: aircraft generally don't fly with ADS-B in a war zone, so I don't have data for hot war zones. (But I'm open to revisiting if someone has a different perspective.)

It would be interesting to graph clusters of jamming over time.

Show when a jam starts, when it ends and where.

This is incredibly cool, thank you for sharing.

Great work - this is remarkable.

A quick update on some of the infrastructure behind the map: One day of being on the front page of HN has used up half of the Mapbox free quota of map loads. To sustain this level of traffic would cost me something like $2000/month just for Mapbox. Since this is a non-profit project that I do in my spare time, something is going to have to give.

Since you don't actually need very detailed maps -- the hexagons are large, zooming in is pointless -- and your dynamic data is a simple overlay, I think you should be able to use static tiles generated just once. And you should be able to generate the tiles from free OpenStreetMap data, the country outlines & major cities there are plenty good enough for this use, even globally.

Yes, I know it's not as simple to throw together as just using Mapbox.

I hope you don't mind if I'll post your donation page for HN to see: https://skycircl.es/donate-nerd-mode/

This is fascinating. Really cool to see a map of GPS signals on Earth and the site looks really good, too. Love the colors and interface! Awesome :)

Can anyone narrate any of the jammed signals? Like for instance what would be jamming in the ocean between Tripoli and Benghazi? Or what would be jamming around San Antonio, TX?

I know the stories behind some of the regions, or at least some hypotheses.

Interference in the U.S. is almost always the result of military testing or training. If you check against another map (Google maps, or skyvector.com/globe.adsbexchange.com to see sectional charts) you'll see that the interference region is usually centered on or close to a military base or Military Operations Area. There are often FAA notices to pilots about potential GPS outages in those areas.

Around Syria, C4ADS did some research a few years back identifying Russia as the main culprit; I think the conclusion was that Russia is jamming GPS to defend their bases from drone attack. https://www.c4reports.org/aboveusonlystars

At least some of the jamming around Moscow is thought to be an anti-drone measure (to stop nosy photographers? assassins?): https://www.gpsworld.com/jammers-at-dachas-add-to-russias-ab...

In the Baltic, the assumption seems to be that it's usually Russian military.

I wish someone more knowledgeable about what's going on in other regions with interference would write about them! I just don't have the time and expertise do dig into all of them.

There's currently a red area around Mexico City. I googled "gps jamming mexico city" and found a couple of interesting links. There are reports from pilots about GPS issues at the airport going back years [0], and a recent news article claiming that car thieves are using jammers to prevent detection [1].

[0] https://www.aviationtoday.com/2017/01/31/are-gps-jamming-inc...

[1] https://www.economist.com/science-and-technology/2021/05/06/...

In the US there were incidents with truckers using illegal jammers to defeat their employers’ GPS trackers:


It's not immediately obvious to me that a jammer employed on the surface will affect planes going overhead at 30,000 feet. Such consumer GPS jammer products will probably have better customer satisfaction if their range is less than several miles.

I read about the same thing affecting flights at Heathrow.

I zoomed in on a red spot in the US and was surprised to see the city name "Uvalde" pop up. Not quite in the center of the spot, but any thoughts on if it might be related to the reason that a European like me knows that name?

From what I've read in the newspapers, Uvalde is the home of a big Customs and Border Peotection headquarters, which is a federal sorta-military operation. That's why so many CBP officers responded to the school shooting.

Speculation on my part, but it coincides with the fact that most jamming in the U.S. is near military facilities.

> Around Syria, C4ADS did some research a few years back identifying Russia as the main culprit

The amazing thing is that there's ADS-B data from Syria at all. Who in their right mind would fly over Syria? With ADS-B enabled, no less.

You forgot massive jamming in Iraq.

There was a spot I stood on in Japan probably 20 years ago that made my (handheld Garmin) GPS think I was traveling at something like 700mph at some angle across the globe. Once I left the area by maybe 10 feet, everything returned to normal. Went back to the spot, same thing. Always wondered what caused that.

The "travelling" part sounds like it could be an artifact of your GPS receiver interpolating between two vastly different location points, and interpreting that as moving between them -- at impossible speed/angle. So a single wildly wrong location could be enough to cause this.

Do GPS packets have a checksum?

Id be fairly confident that they would. They also are encoded so that receivers that literally have no idea where they are can train on the received stream. Also don't forget that the receiver needs to hear signal from at least 3 or 4 satellites to be able to triangulate their position and altitude.

The wikipedia page has some info, looks like various CRC and parity checks. Maybe the receiver was just ignoring them, and receiving faulty data.

I dunno, it seems to me like that GPS receiver had fairly bad software. If you get packets from a bunch of different satellites but one is way off, it seems like good sense to throw that one away.

It worked fine everywhere else I went for weeks, so while I'm sure it was a bug of some sort, I wouldn't say it was overall a bad receiver.

I have the same experience with a handheld garmin from like 20 years ago. This was in Finland while boating, the gps suddenly decided we were going around 700mph heading north north west. It lasted for around 30min or so before it returned us to where we were. I remember using a Garmin GPS 45.


Was it in a big city? Because parts of Japan are so vertical, they have a lot of trouble with urban canyons and multipath from signals getting reflected off of buildings (which is why they built the high-elevation QZSS mini-constellation to augment GPS)

IIRC it was walking through a park, near some kind of sculpture.

How difficult is it to build a CRPA receiver? Apparently that’s how the military avoids GPS jamming, and likely why HIMARS is able to remain accurate in the face of Russian jamming (or INS).

Since nobody’s asked: How does GPS jamming work?

Basic jamming:

Transmit a strong signal on the main GPS frequency (1575.42 MHz). Receivers get saturated and can't hear the real signal.

Medium Jamming:

Transmit the signal that a receiver would receive at a specific location loudly. GPS receivers will lock onto that signal, and report they are at the location you choose, rather than the real location they're at.

Advanced Jamming:

Pick a target, such as a VIP plane. Calculate the aggregate GPS signal that that plane is receiving right now from all the GPS satellites. Now start transmitting that same signal towards your target (you'll have to transmit ahead of time due to the speed of light delay, but that isn't an issue because GPS signals are fully predictable). Now gradually modify the signal to make the target think they're moving off their desired course, and to make them make corrections. Watch them in realtime, and adjust the signal so they correct in the direction you choose.

This is how Iran stole a drone[1].

Military GPS is encrypted (ie. XORed with a crypto-stream), which makes the signal not predictable ahead of time, which makes the advanced attack impossible. The basic and medium attacks are still possible though.

[1]: https://en.wikipedia.org/wiki/Iran%E2%80%93U.S._RQ-170_incid...

The medium and advanced method would become ineffective if civilian GPS was to be authenticated. (cryptographically signed, not encrypted)

It seems that progress is being made: https://insidegnss.com/what-is-navigation-message-authentica...

Was the drone not using the encrypted variant of GPS?

It is alleged that the RQ-170 was expressly designed for risky operations (where loosing it eventually is likely, and retrieval/destruction may not be possible) and so was created without sensitive technology.

The crypto for US military GPS uses the same keys worldwide, and rotated ~ weekly. That means if you capture any device which has the crypto keys, then you can spoof military GPS for the rest of the week, allowing you to do lots more damage.

Therefore, the military often doesn't even use the keys in their own devices.

How do you know this?

It's in the published specs of the satellites. They have a whole key schedule bit.

IIRC there was speculation Russia helped to decrypt it?

Synchronous and Asynchronous GPS Spoofing are the correct terms to use

The format of GPS civilian signal is public and you could just spoof it with any transmitter like a HackRF SDR box. There’s no cryptographic signature to verify or anything. The military code has had cryptographic anti-spoofing from the earliest days.

Or you could just send any super strong signal on the frequency to cover the satellite signal up. That can also work.

Also - what's the point nowadays when you got at least 3 more constellations + jam-proof (?) GPS2?

Why so much over Cyprus and Turkey?

Thank you for giving us a new way to discover impeding military conflicts. I'm surprised how you have found a way to creatively reuse the existing data.

Awesome map, and awesome use of mapbox.

I haven't followed their progress and was really surprised to see globe view, 3D terrain and custom projections landing in v2.

Cool project, thanks! A bit nitpicking:

> In Europe, Poland, Romania, Lithuania, Latvia, Kaliningrad, and Finland sometimes show presumed jamming activity, depending on how active Russia is.

The wording here is confusing, it seems to imply that Kaliningrad is a country, which it is not (it's a Russian exclave, as the author mentions in one of the HN comments).

Would it sound similar like saying hurricane about to hit Cuba, Florida and Dominican Republic. This does not imply that Florida is a country is just more precise location definition than saying USA. Same here with Kaliningrad as part of Russia.

Florida is a state, Kaliningrad isn't even an autonomous oblast.

Yes, but oblast has the smallest amount of autonomy. It's like a county in the GB or the US.

Traditionally, raion is a county-level subdivision, though these are now superceded by settlements (communes).

Oblast' is a top-level federation subject, comprised of these. Its's true that they are usually smaller and less authonomous than U. S. states.

Curious, how do you measure your own gps “accuracy”?

Also, is “jamming” a precision reduction (seems improbable given how I think gps works) or a signal strength reduction in this case?

> how do you measure your own gps “accuracy”?

Because GPS is way cool. First, there is the official site: https://www.gps.gov/systems/gps/performance/accuracy/ I am far from being an expert, but being a flying nerd, that's what I can tell you:

The more satellites in sight you have access to, the cooler stuff you can do with GPS. Minimum to establish 2D (on globe projection 2D) location is 3 sats, minimum for altitude is 4 sats. There are mathematical simulations you can do to see if, and when, a given aircraft will have access to 4 sats (or more), called RAIM: https://www.mygdc.com/new/static/usermanuals/web_help/RAIM_P...

Now, things get even better if you use 4+ sats, or sats from different constellations (I am not sure how mature is cross-constellation data validation, however, so let's pretend 1 constellation for now). With 5 sats, the receiver can calculate the position even more precisely, determine the level of URE, etc. You can even detect that one source is unreliable, and discard it (effectively falling back to 4 sats). With even more sats you can (theoretically) do cool data analysis, where you can determine those factors even more precisely.

Now, add the inertial factors. Many passenger have either in-software (history of previous positions) or in-hardware (think accelerometers, magnetometers) inertial data sources. A sophisticated flight management software (FMS) can cross-corelate the inertial data with GNSS data and determine when the latter becomes unreliable.

All of those measurements and factors can subsequently be reported via ADS-B or ACARS, to help with fleet management, and general predictive maintenance. While aviation technology might sometimes look way out of date at a first glance, the modern airplanes have some really cool technology hiding in it.

Friend of mine is doing ocean bottom surveys. He uses pretty decent GPS receiver, but also gets real-time (or applies it later) "correction" data from ground based stations that calculate error caused by atmosphere, which gets him down to 1cm accuracy.

That's SBAS/WAAS! another cool thing

This is trying to measure ionosphere disturbances which affect signal propagation rates via ground reference stations. The real-time model is then calculated and distributed using ground stations and geostationary satellites.

GPS is way, way cool, and it's a pity the extent of its engineering is not better known.

I'm using data reported by aircraft equipped with ADS-B. Those aircraft broadcast their positions, and they include information about how much uncertainty they think is in their position estimate. When an aircraft that has been reporting low position uncertainty (< 1 nautical mile) starts reporting high uncertainty (> 4 nautical miles), it seems to correlate well with known areas of GPS interference, so that's what I use to make the map.

This paper describes in more detail some experiments using a GPS jammer and flying an aircraft around Edwards Air Force Base with ADS-B and what happens to the position reporting: https://web.stanford.edu/group/scpnt/gpslab/pubs/papers/Liu_...

gpx files sometimes include a sort of "precision" field[1]. Phyphox[2] also has a readout of the uncertainty: Location (GPS) -> Simple

[1] https://stackoverflow.com/a/9624761

[2] https://phyphox.org/

Why is Moscow almost constantly red?

Perhaps they are jamming GPS and Galileo in favor of Glonass. They are certainly concerned about US GPS-powered artillery like the HIMARS given to Ukraine. They’d need fairly precise jammers because the frequencies are only 50MHz apart (GLONASS uses a frequency of 1.602 GHz, whereas GPS uses 1.57542 GHz).

You are underestimating how vast Russia (and Ukraine) are.

Moscow is out of reach even for the longest range (300km) HIMARS missiles which are not supplied to the Ukraine.

GPS jamming protects Russia's command and control structures from American intermediate range cruise missiles that can be launched from Mk41 launchers in Romania and Poland as well as from American ships.

> GPS jamming protects Russia's command and control structures from American intermediate range cruise missiles that can be launched from Mk41 launchers in Romania and Poland

I don't think Mk41 are operating in these two countries.[0] They do have Aegis Ashore [1] though which is an anti-ballistic defense system. AA uses SM-3 missiles that in theory could reach Moscow though.

[0] https://en.wikipedia.org/wiki/Mark_41_Vertical_Launching_Sys...

[1] https://en.wikipedia.org/wiki/Aegis_Ballistic_Missile_Defens...

Aegis uses Mk-41, which is a unified launcher for SM-3 and Tomahawk missiles. I believe Aegis Ashore uses the same launcher.



Albeit ineffectively, because they have an INS backup.

Also terrain contour matching [0] and Digital Scene Matching Area Correlation [1].

[0] https://en.wikipedia.org/wiki/TERCOM

[1] https://en.wikipedia.org/wiki/Tomahawk_(missile)#Navigation

GPS spoofing will not prevent a US attack on Russia, it may prevent angry Russians from finding Putins' office, though.

What does GPS have to do with finding Putin's office?

FSO (local analog of Secret Service) is constantly spoofing GPS around Putin's location to make drones think they are in no-flight zone.

It’s interesting that the only red spot in the US right now is next to Uvalde, TX

Smart use of data in an highly effective visualization. Great.

Applications are open for YC Winter 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact