start	end	text
7740	12000	Hello, I'm Harshad Sathaye from Northeastern University, Boston.
12000	14920	Today we are going to look at some basic attacks on GPS.
15880	21100	This talk is adopted from a wireless security course taught by Professor Anjan Randhanathan
21100	26780	at Northeastern University and similar courses taught at ETH Zurich and EPFL.
26940	33120	In 2011, Iran became the first country officially to announce GPS spoofing capability as they
33120	38020	hijacked a US drone operating along the borders. Soon after that, Professor Humphries from
38020	42560	University of Texas, Austin demonstrated a similar attack. There are several reports
42560	47740	of GPS spoofing, including an incident where two naval ships were being steered off course.
48120	52280	There have been instances of appearance of intriguing crop circles and ghost ships in
52280	57920	Shanghai. GPS is used not only for navigation and positioning, but also for precise timing
57920	63560	and synchronization. A paper published in 2012 evaluated the effects of GPS spoofing
63560	68140	on power grids and concluded that they are extremely vulnerable to timing attacks.
68760	73440	In today's world, the use of GPS can be encountered everywhere, including critical
73440	78380	cyber-physical systems like power grids, autonomous vehicles, and avionics. Widespread
78380	83120	availability of open source tools and cheap off-the-shelf equipment has made GPS attacks
83120	91260	quite trivial. GPS is a satellite-based navigation system which contains about 31
91260	95840	satellites orbiting the Earth. Each satellite transmits navigation messages which contain
95840	101280	its location and precise timing information. Each satellite uses a unique pseudo-random
101280	106120	code for encoding the messages. The receiver on ground measures the time of arrival of
106120	110940	these messages and estimates the distance to the respective satellite. These estimates,
110940	118860	are used for computing the location. GPS is made up of three segments. First is the space
118860	123840	segment. It consists of satellites that transmit the essential information required to calculate
123840	128660	the location, the user segment, which uses the information transmitted by the satellites to
128660	133160	compute its location, and the control segment, which is used for making time and ephemeris
133160	140580	corrections. The orbits of the satellites are programmed such that at any time, at least
140580	145560	four satellites are visible and can provide location services. These orbits are controlled
145560	151980	by the control segment on ground. There are primarily four signals available for civilian
151980	161340	use. L1CA, L2C, L5, and L1C. L1CA is a legacy signal which is broadcasted by every satellite.
161340	166120	The rest are modernized signals. There are also some special restricted and encrypted signals
166120	171100	which offer better precision. However, these are reserved for military and its interests.
171540	179120	Here we will be mainly focusing on civilian GPS L1CA signal. The carrier frequency is set at 1.57542
179120	186000	gigahertz. Data is modulated on the carrier using binary phase shifting technique. In DPSK, carrier's
186000	192160	phase is switched by 180 degrees to present a one and a zero. Bandwidth of civilian GPS is about
192160	199840	two megahertz. Civilian GPS uses 1023 bits coarse acquisition spreading codes sampled at 1.023
199840	208000	megahertz. Each satellite transmits at about 43.4 dbm. As a result of spreading and long distance,
208000	213000	signal strength at the receiver can be as low as minus 130 dbm, which is fairly below the nice
213000	218960	floor. However, the implementation offers a 43 db processing gain after the signal is processed by
218960	223800	the receiver. This can be increased by use of directional and smart antennas.
225120	230380	The transmitter first generates a baseband signal sampled at 50 bps, which is combined
230380	236120	with the CA code sampled at 1 mbps. This spreaded message is then modulated on the carrier before
236120	246140	transmitting. Let's take a look at the navigation message. Each navigation message has 25 frames.
246140	252720	It takes 12.5 minutes for transmission of entire message. A frame has 1500 bits and
252720	258080	takes about 30 seconds. It is divided into five subframes, each with 300 bits.
258920	264180	Start of a subframe is marked by a telemetry word, which has an 8-bit preamble, which marks
264180	269980	the beginning of the subframe and handover word each of 30 bits. Time of week marks the week
269980	278330	number since the epoch and is used for timing information. Now let's look at the receiver
278330	283890	design. RF frontend converts analog signal to discrete samples, which can then be processed
283890	289290	by the subsequent modules. In a software implementation, each satellite is assigned
289430	293970	a channel, which can also be considered as hardware pipeline. Each channel performs
293970	300850	similar operations. Acquisition block performs a two-dimensional search for a valid satellite
300850	306070	signal by correlating the received signal with a local replica of each satellite's CA code.
306310	311830	This search is performed in time domain as well as frequency domain. It is essential to search
311830	316410	for the signal in frequency domain to account for Doppler shifts. If this search results in
316550	321030	a correlation peak above a certain threshold, the receiver then switches to tracking and demodulating
321030	327730	the signal. Tracking module is responsible for following the Doppler shift and code phase supplied
327730	332850	by the acquisition module so that it can demodulate the signal. Obtained raw navigation
332850	338610	bits are passed over to the PVT module. If at any given point the tracking loop loses a lock,
338610	345430	the whole process is repeated. The PVT module is responsible for calculating position, velocity,
345430	350930	and timing information. Common reception time technique provides pseudo range to the satellite,
350930	354850	which is a rough estimate of the distance between the receiver and the satellite.
354850	359950	A common reception time is set across all the channels for calculating the pseudo ranges.
360070	365470	This time is maintained by sample counters implemented in the receiver. As the distance
365470	368990	of the satellites from the receiver varies, the difference in time of arrival of messages
368990	373650	from each satellite is used to calculate the relative range from the receiver to that satellite.
374250	378870	Propagation time for the closest satellite is considered to be roughly 68 milliseconds,
378870	383790	which is the approximate propagation time. In this case, message from satellite 3 arrives first
383790	388090	and it is considered as a reference time, which is set across all the channels.
388130	392310	Thus, propagation time for other satellites is calculated as TRX, which is the
392310	398750	reference time, plus delta TN. This is a very elegant way of determining pseudo range. However,
398750	403610	this gives rise to a major security concern. An attacker can fabricate signals with delayed
403610	408850	messages as required. These measurements and the contents of the received messages are used
408850	416690	to calculate the receiver's location. GPS position is determined by solving these equations
416690	423290	for X, Y, and Z. Pseudo ranges determined using the common reception technique are the key in
423290	429310	location determination. Given the speed of light, a delay of 1 nanosecond can lead to errors of up
429310	437290	to 30 centimeters. There are two primary types of GPS attacks. Jamming attacks, where the attacker
437290	441590	transmits high-powered noise, which causes a denial-of-service attack, and spoofing attacks,
441590	445850	where the attacker transmits a signal such that the receiver calculates a false location.
446090	451210	In this demonstration, we are going to take a deeper look at GPS spoofing attacks.
452230	456950	An attacker transmits specially crafted signals, which are identical to the legitimate signals,
456950	462130	except they are transmitted at a higher power and result in calculation of a false PVD solution
462130	467610	or calculation of false time, as GPS is also used for precise timing and synchronization.
468310	473530	Attackers can fake locations by either modifying the navigation messages or by manipulating the
473530	479270	time of arrival of these messages. GPS is a simplex system. Hence, conventional security
479270	484470	techniques, which require a handshake, do not work here, as the receiver has no way of interacting
484470	491670	with the satellites. This makes it trivial for an attacker to generate fake signals or replay
491670	498190	previously recorded signals to fool a receiver. An attacker modifies the navigation message
498190	502850	content such that the receiver uses altered satellite positions for calculation of the
502850	508070	PVD solution. Such an attack can be easily detected using external sources, as it is
508070	514030	trivial to verify the validity of the received navigation messages. In the second method,
514030	519010	the attacker keeps the message contents identical and instead manipulates the time of arrival of
519010	523290	the messages, such that the pseudo-range calculations are altered. Such an attack is
523290	528250	hard to detect. However, it requires access to real-time satellite ephemeris data.
530090	535350	Let's take a look at one of the most sophisticated GPS attacks. In a seamless takeover attack,
535350	541730	the attacker starts transmitting with lower power than the legitimate signal. It is important to
541730	546010	note that the adversarial signals are tightly synchronized with the legitimate signals in time
546010	551570	domain as well as frequency domain. Later, the attacker slowly starts increasing the power and
551570	557370	overshadows the legitimate signal while maintaining synchronization. As a result, the receiver starts
557370	561990	tracking the adversarial signals instead of the legitimate signals. Since the attacker's signal
561990	566970	is stronger, the noise floor rises and the tracking loops are thrown off. Thus, the receiver breaks a
566970	571890	lock. However, if the signals are synchronized, the lock is simply transferred. As for the receiver,
571890	576670	the two signals are identical. Thus, the switch-off lock is near seamless and the receiver
576670	582490	doesn't experience any kind of loss of lock. By nature, every receiver will lock on to the stronger
582490	587530	signal. Once the lock is transferred, which happens instantaneously, the attacker starts
587530	595700	introducing offsets, which takes the target off course. Increasing popularity of inexpensive
595700	601820	software-defined radios has made executing GPS spoofing attacks quite straightforward. To execute
601980	607040	a GPS spoofing attack, we need a baseband signal generator, which can generate GPS messages,
607040	612680	perform spread spectrum operations, and modulation. It relies on broadcast fMRIS data of satellites
612680	617580	and a set of coordinates to generate spoofing signals. Finally, we need a software-defined
617580	624320	radio front-end, which can transmit data on 1.57542 GHz, which is the L1 carrier frequency.
625420	631740	The demonstration setup includes a control unit, which runs the GPS baseband generator software.
631820	636480	A USRP B210 is used to simulate legitimate and malicious satellites.
637000	642480	This particular USRP supports simultaneous transmissions on two channels. The spoofer
642480	648240	has power advantage of about 10 dB. This is achieved by setting appropriate RF gain on the
648240	653420	spoofer transmission channel. The signals from these channels are combined using a signal combiner
653420	658960	and are fed to a MuBlock GPS receiver, which is connected to a Raspberry Pi. Foxtrot GPS
658960	664440	with OpenStreetMaps is used as a mapping and navigation software on the Raspberry Pi.
664440	670460	Make sure that all the RF instruments are hardwired. USRP B210 is a fairly powerful
670460	675380	transmitter. Since legitimate GPS signals are very weak, it can affect GPS services
675920	681720	over quite a wide area. Hence, it is essential to ensure that there are no signal leakages.
684160	689340	The first step is to generate a set of GPS coordinates, which will be used to generate
689340	694560	GPS baseband signal. This can be achieved in multiple ways. In this case, we will plot the
694560	699220	path using Google Earth and then use SatGen trajectory generation application to generate
699220	704060	the trajectory, which will be interpreted by the GPS simulator. Let's mark the path
704060	711420	by using the add path tool. In this scenario, let's just take the receiver around the block
711420	719080	and bring it back to its original location. Once you are done adding the path, just save it,
719080	725020	give it some name, and now we need to convert the path and store it as a KML file.
726380	728460	All right, there we go.
730520	738980	Now, in the second part, we have to generate NMEA data. For this, load this path. As you can see,
738980	745800	it shows the displacement in terms of latitude and longitude in meters. Now, you can keep these
745800	751330	dynamic setting parameters as default. Just make sure that you have a suitable stationary period.
752080	758310	And once you are done, just click on generate NMEA and you can store your data as .NMEA file.
760480	770950	All right, that's it. Now, over to step two. In the second step, we'll be using GPS SDR sim
770950	777030	for generating GPS baseband data. We need to provide the simulator with the dynamic motion
777030	784290	file, which is sampled at 10 hertz, a GPS broadcast FMRIS data, the sampling rate,
784290	790410	which is 2 megahertz in this case, as this is the lowest that can be used for GPS, and then we have
790410	800490	to provide the name of the output file. Now, it will take some time to generate the baseband data.
800610	806990	As you can see, this shows the list of satellites that are visible from this location, their azimuth
806990	810670	and the pseudo range to that particular satellite.
820560	825080	All right, now we have our GPS baseband data. Now, over to step three.
828500	835160	In step two, we generated a GPS baseband signal. In step three, we will be using a software-defined
835160	841440	radio to transmit this signal. We have a simple GNU radio flow graph for transmission. This flow
841440	846480	graph reads samples from a file source, converts it into GR complex, and sends the samples to a
846480	853920	USRP sink. In this case, I'm using a USRP B210 for transmission. It supports transmission on
853920	857960	two channels. The first channel transmits the legitimate signal, and second channel transmits
858160	863900	a spoofing signal. This sink can be replaced by a software-defined radio of your choice.
863900	870560	The only requirement is that it should be able to transmit at 2 mega samples on 1.57 gigahertz.
871240	874580	Now, let's turn on the spoofer and observe what happens.
877360	883840	Now, as soon as the spoofer is turned on, we will observe two things. First, the receiver will show
883840	890320	some random motion as the signals interfere unpredictably, which results in a fake or
890320	898040	garbage location. And second, there's a total loss of lock. One of the reasons being, whenever a
898040	904180	receiver loses or isn't able to track a signal, it loses a lock and it takes some time for it to
904180	909520	reacquire signals. Now, as soon as the signals are reacquired, you can see that the receiver
909520	920400	starts following the spoof path that we generated in step one. GPS is a broadcast system, which means
920400	927120	that it is unidirectional. It's a simplex system. There is no way for a receiver to interact or talk
927120	933300	back to the satellites. Secure positioning and communication requires bidirectional communication
933300	938560	for a secure handshake and for secure exchange of information. And it's also important to protect
938560	945200	time of arrival of messages, which in this case is very challenging. Now, there are two types of
945200	950200	spoofing detection and mitigation techniques for GPS. First is infrastructure countermeasures,
950200	955700	where you need to change the entire infrastructure, which includes cryptographic solutions. And there
955700	962700	are receiver-end countermeasures where it's enough just to modify the receiver. Let's look at these
962700	969800	one by one. A secure GPS proposed by Marcus Kuhn uses asymmetric keys and hidden markers.
970260	975180	Public keys of satellites are stored on the devices. The broadband receivers receive the
975180	980260	entire band of signals. It is important to do so because the receiver isn't aware of the
980460	985800	de-spreading codes just yet. The transmitter discloses the spreading code at a later time,
985800	990840	which is signed by its private key. The receiver then verifies the signature and uses the received
990840	997280	code to de-spread the previous signal. Such a solution prevents generation of fake signals.
997280	1002440	However, there are issues with efficiency and precise timing. Moreover, it is a logistical
1002440	1007780	nightmare to deploy such a solution, as such a solution will require a complete overhaul of
1007780	1015300	the entire GPS ecosystem. Researchers have proposed the use of multiple receivers for
1015300	1020540	collective detection of spoofing. In this scheme, a constellation of receivers is observed.
1020540	1025680	For successful spoofing, the attacker will have to spoof such that the constellation of receivers is
1025680	1031040	maintained. This includes spoofing the receivers individually. Group spoofing is a known challenge
1031040	1037280	associated with GPS spoofing, because let's say a spoofer starts transmitting and as a result of
1037500	1043360	a single point of transmission, all the receivers will collapse into one point and thus it will be
1043360	1051140	very easy for the receivers to detect that there's something malicious going on. Moreover, even though
1051140	1056580	this solution is quite reliable and is efficient in detecting spoofing, there's a major
1056580	1064520	drawback is that such a solution is not feasible for smaller vehicles. Signal characteristics can
1064520	1069140	also be leveraged to efficiently detect spoofing, which are considered to be unique to a transmitter
1069140	1073500	given the geographical placement of the transmitter. This can be used to distinguish
1073500	1078500	between signals from a point transmitter like a spoofer and a satellite which is 20,000 kilometers
1078500	1084100	away. A high power transmission increases the noise floor substantially. A sensitive receiver
1084100	1090400	can easily detect sudden changes in noise floors. These variations can be attributed to a spoofing
1090400	1098720	or a jamming attack. Recall the function of acquisition module. A correlation peak is formed
1098720	1105220	for every occurrence of the CA code in the received signal. A receiver proposed in SPRE looks out for
1105220	1110920	such peaks and based on separation between these peaks, it can detect spoofing. Even though it can
1110920	1116380	detect a strong seamless takeover attack, it can only do so if the auxiliary peaks are visible.
1116380	1121360	For example, if the attacker is very powerful, then the legitimate signals are buried under
1121360	1127280	noise floor introduced by the adversarial signals, as is in this case where the second peak marked
1127280	1132900	in green is barely visible. Here, the attacker has about 10 dB of power advantage.
1134300	1140560	Here are some other spoofing detection techniques. Inertial sensors can track physical movements of
1140700	1146580	a vehicle. However, they are notorious for drifts and biases which can introduce significant errors.
1146640	1152880	Researchers have proposed various implementations involving extended Kalman filters where IMU
1152880	1158940	sensors are combined with GPS. Inertial measurements are used to track and validate
1158940	1165400	the derived PVD solutions. Cross correlation between unknown encrypted GPS signals on L1
1165400	1171360	carrier and known open source GPS signals can lead to effective spoofing detection strategy.
1172100	1177920	Another simple spoofing detection strategy involves comparison of PVD solution obtained
1177920	1182220	from GPS with PVD solution obtained from other satellite navigation systems
1182220	1188400	like GLONASS, Galileo, or Baidu. However, an attacker can simply spoof other systems as well
1188400	1194500	as these systems are also vulnerable to similar attacks. Receiver Autonomous Integrity Monitoring
1194500	1200960	or RAIM is a spoofing detection technique that is very popular in aviation. Almost every commercial
1200960	1207100	aviation GPS receiver implements RAIM. It works on detecting outlier satellites. These satellites
1207100	1212760	are excluded from PVD calculation. Thus, it requires six or more visible satellites.
1215040	1220440	Several of the countermeasures that we discussed are effective. However, they aren't perfect. We
1220440	1227100	all know that a perfect security solution just doesn't exist. In case of crypto solutions,
1227100	1233060	they are vulnerable to replay attacks. Consider a scenario where a spoofer has a receiver in
1233060	1239780	location 1 and a transmitter in location 2. There is a medium available such that the receiver
1239780	1246340	can transmit raw RF samples to the transmitter. Here, the transmitter simply transmits or
1246340	1253140	replays the received samples in location 2. Now, any receiver in location 2, if starts receiving
1253140	1258960	GPS signals, then the calculated solution will reflect location 1 instead of location 2.
1260040	1267660	Since GPS is a simplex and a unidirectional system, such attacks cannot be prevented by crypto.
1267720	1274560	Moreover, it's virtually impossible to protect a physical characteristic of a signal like the
1274560	1285830	time of arrival. There are solutions which couple INS or inertial navigation systems with GPS.
1285830	1293070	However, recently, two years ago, there was work which involved integrated GNS and INS spoofing.
1293070	1298470	In this work, the authors were able to spoof and take the vehicle, of course,
1298470	1304610	by about 10 kilometers. In our experimentations, we found that throttling GPS spoofing offsets
1304610	1311490	can also lead to pooling extended Kalman filters. The inertial sensors are prone to errors and
1311490	1317530	biases. We exploit these errors and we throttle our attacks such that the extended Kalman filter
1317530	1324410	adapts to our spoofing coordinates. And thus, such attacks can go undetected, even in a tightly
1324410	1332590	coupled INS and GPS system. Now, as you have seen the countermeasures and how trivial it is
1332590	1339690	to spoof GPS, it's important to note that GPS being a unidirectional system, it is not trivial
1339690	1346530	to come up with solutions which can secure or safeguard GPS against a plethora of
1346530	1350230	these spoofing attacks. Thank you.
