How to bring down mission-critical GPS networks with $2,500
arstechnica.com
arstechnica.com
For example, the GPS system transmits the date as a number of weeks since a reference epoch, modulo 1024 [1]. This space saving made sense when they designed the protocol; GPS uses a 50-bits-per-second data link so every bit counts. The last rollover to week zero happened in 1999, the next one will be in 2018. Not so rare that you can ignore it, but not so frequent that code gets battle-tested.
What some receivers do is store a 'last week number seen' and a 'number of rollovers' in nonvolatile memory, and any time they see the week number lower than the last one seen, they increment the number of rollovers. So even if the GPS is kept powered off and its internal clock battery dies, as long as it gets a signal once every 512 weeks (~10 years) it can pick up the right time.
One of the interesting things they demonstrate is that you can spoof a signal which fakes the week-number-decrement and this increments the number of rollovers counter - and not all receivers have any ability to correct for that.
Another example: The slow GPS data link is used to tell receivers where in space the satellites are - which it needs to know to calculate the receiver's position, and to get a head start finding other satellites by knowing roughly where to look for them. Because the GPS data link is so slow, it can take 30 to 60 seconds for a receiver to get this data as it's a whole 1.5 kilobytes [2]. Receivers often cache some of this data in nonvolatile memory so they can perform a 'warm start' where they don't have to wait for all the data to download. But if you receive spoofed data that triggers a software bug (like a divide by zero error) and you store that in your nonvolatile memory, the receiver loads the data, crashes, reboots, loads the data again and the same thing happens.
This is interesting stuff - most work on GPS spoofing and jamming in the past has focused on things like replaying signals to send vehicles off course rather than triggering crash bugs in receiver firmware. The current civilian GPS signal has no anti-spoofing element to it, so there isn't an easy solution to this.
[1] http://www.colorado.edu/geography/gcraft/notes/gps/gpseow.ht... [2] http://en.wikipedia.org/wiki/GPS_signals#Navigation_message
and here: http://news.ycombinator.com/item?id=4897294
and here: http://news.ycombinator.com/item?id=4898843
and here: http://news.ycombinator.com/item?id=4903566
None have any discussion, but they are different reports with different levels of detail.
2) The military uses the Precision (P) code which is encrypted and should be impossible to spoof unless you break the encryption. That is quite unlikely.
3) All radio signals are vulnerable to jamming. In order to jam, you must transmit, however... which means that your jammer is a beacon that the military can direction-find on[3]. If you piss off the military too much, they will turn off your jammer. Permanently.
[1] http://en.wikipedia.org/wiki/Global_Positioning_System#Satel...
* If you steal a key, it will stop working after a brief time (probably hours to days).
* Knowing the decryption key does not (necessarily) mean you can perform the encryption.
Here is a more skeptical article: http://www.theregister.co.uk/2011/12/21/spy_drone_hijack_gps...
There has been at least one valid spoofing demo: http://www.ae.utexas.edu/news/archive/2012/todd-humphreys-re...
"During the spoofing demonstration at White Sands, the research team took control of a hovering UAV from about a kilometer away. Next year, they plan to perform a similar demonstration on a moving UAV from 10 kilometers away."
That demo was a much simpler scenario than what the Iranians claimed to have done. The demo was a stationary UAV and it was most likely using the civilian (C/A code) signals rather than the (classified) encrypted P-code. They also knew exactly where the UAV was, and could likely see it.
Good luck tracking that signal down.
Needless to say, transmitters that only transmit for a few minutes a day are very difficult to locate manually compared to jammers that operate continuously.
"Attacks were conducted against seven receiver brands including Magellan, Garmin, GlobalSat, uBlox, LOCOSYS and iFly 700."