1 00:00:07,740 --> 00:00:12,000 Hello, I'm Harshad Sathaye from Northeastern University, Boston. 2 00:00:12,000 --> 00:00:14,920 Today we are going to look at some basic attacks on GPS. 3 00:00:15,880 --> 00:00:26,780 This talk is adopted from a wireless security course taught by Professor Anjan Randhanathan at Northeastern University and similar courses taught at ETH Zurich and EPFL. 4 00:00:26,940 --> 00:00:36,300 In 2011, Iran became the first country officially to announce GPS spoofing capability as they hijacked a US drone operating along the borders. 5 00:00:36,300 --> 00:00:41,500 Soon after that, Professor Humphries from University of Texas, Austin demonstrated a similar attack. 6 00:00:41,500 --> 00:00:47,740 There are several reports of GPS spoofing, including an incident where two naval ships were being steered off course. 7 00:00:48,120 --> 00:00:53,200 There have been instances of appearance of intriguing crop circles and ghost ships in Shanghai. 8 00:00:53,600 --> 00:00:59,480 GPS is used not only for navigation and positioning, but also for precise timing and synchronization. 9 00:00:59,480 --> 00:01:08,140 A paper published in 2012 evaluated the effects of GPS spoofing on power grids and concluded that they are extremely vulnerable to timing attacks. 10 00:01:08,760 --> 00:01:17,900 In today's world, the use of GPS can be encountered everywhere, including critical cyber-physical systems like power grids, autonomous vehicles, and avionics. 11 00:01:17,960 --> 00:01:24,560 Widespread availability of open source tools and cheap off-the-shelf equipment has made GPS attacks quite trivial. 12 00:01:27,280 --> 00:01:33,060 GPS is a satellite-based navigation system which contains about 31 satellites orbiting the Earth. 13 00:01:33,060 --> 00:01:38,800 Each satellite transmits navigation messages which contain its location and precise timing information. 14 00:01:38,880 --> 00:01:43,460 Each satellite uses a unique pseudo-random code for encoding the messages. 15 00:01:43,520 --> 00:01:49,780 The receiver on ground measures the time of arrival of these messages and estimates the distance to the respective satellite. 16 00:01:50,000 --> 00:01:54,140 These estimates, are used for computing the location. 17 00:01:55,620 --> 00:01:58,020 GPS is made up of three segments. 18 00:01:58,020 --> 00:01:59,700 First is the space segment. 19 00:01:59,700 --> 00:02:14,160 It consists of satellites that transmit the essential information required to calculate the location, the user segment, which uses the information transmitted by the satellites to compute its location, and the control segment, which is used for making time and ephemeris corrections. 20 00:02:16,120 --> 00:02:24,260 The orbits of the satellites are programmed such that at any time, at least four satellites are visible and can provide location services. 21 00:02:24,260 --> 00:02:27,900 These orbits are controlled by the control segment on ground. 22 00:02:28,660 --> 00:02:32,900 There are primarily four signals available for civilian use. 23 00:02:32,900 --> 00:02:36,840 L1CA, L2C, L5, and L1C. 24 00:02:36,880 --> 00:02:41,340 L1CA is a legacy signal which is broadcasted by every satellite. 25 00:02:41,340 --> 00:02:43,200 The rest are modernized signals. 26 00:02:43,200 --> 00:02:47,920 There are also some special restricted and encrypted signals which offer better precision. 27 00:02:47,920 --> 00:02:51,100 However, these are reserved for military and its interests. 28 00:02:51,540 --> 00:02:55,620 Here we will be mainly focusing on civilian GPS L1CA signal. 29 00:02:55,620 --> 00:03:00,220 The carrier frequency is set at 1.57542 gigahertz. 30 00:03:00,220 --> 00:03:04,380 Data is modulated on the carrier using binary phase shifting technique. 31 00:03:04,400 --> 00:03:10,180 In DPSK, carrier's phase is switched by 180 degrees to present a one and a zero. 32 00:03:10,180 --> 00:03:13,400 Bandwidth of civilian GPS is about two megahertz. 33 00:03:13,400 --> 00:03:21,040 Civilian GPS uses 1023 bits coarse acquisition spreading codes sampled at 1.023 megahertz. 34 00:03:21,600 --> 00:03:25,360 Each satellite transmits at about 43.4 dbm. 35 00:03:25,360 --> 00:03:33,840 As a result of spreading and long distance, signal strength at the receiver can be as low as minus 130 dbm, which is fairly below the nice floor. 36 00:03:33,840 --> 00:03:39,860 However, the implementation offers a 43 db processing gain after the signal is processed by the receiver. 37 00:03:39,860 --> 00:03:43,800 This can be increased by use of directional and smart antennas. 38 00:03:45,120 --> 00:03:53,080 The transmitter first generates a baseband signal sampled at 50 bps, which is combined with the CA code sampled at 1 mbps. 39 00:03:53,080 --> 00:03:57,300 This spreaded message is then modulated on the carrier before transmitting. 40 00:04:00,400 --> 00:04:03,440 Let's take a look at the navigation message. 41 00:04:03,440 --> 00:04:06,140 Each navigation message has 25 frames. 42 00:04:06,140 --> 00:04:10,380 It takes 12.5 minutes for transmission of entire message. 43 00:04:10,600 --> 00:04:14,500 A frame has 1500 bits and takes about 30 seconds. 44 00:04:14,560 --> 00:04:18,080 It is divided into five subframes, each with 300 bits. 45 00:04:18,920 --> 00:04:28,540 Start of a subframe is marked by a telemetry word, which has an 8-bit preamble, which marks the beginning of the subframe and handover word each of 30 bits. 46 00:04:28,540 --> 00:04:33,820 Time of week marks the week number since the epoch and is used for timing information. 47 00:04:36,870 --> 00:04:39,410 Now let's look at the receiver design. 48 00:04:39,730 --> 00:04:46,390 RF frontend converts analog signal to discrete samples, which can then be processed by the subsequent modules. 49 00:04:46,450 --> 00:04:52,870 In a software implementation, each satellite is assigned a channel, which can also be considered as hardware pipeline. 50 00:04:53,070 --> 00:04:55,590 Each channel performs similar operations. 51 00:04:57,230 --> 00:05:06,070 Acquisition block performs a two-dimensional search for a valid satellite signal by correlating the received signal with a local replica of each satellite's CA code. 52 00:05:06,310 --> 00:05:10,590 This search is performed in time domain as well as frequency domain. 53 00:05:10,610 --> 00:05:15,210 It is essential to search for the signal in frequency domain to account for Doppler shifts. 54 00:05:15,210 --> 00:05:22,090 If this search results in a correlation peak above a certain threshold, the receiver then switches to tracking and demodulating the signal. 55 00:05:22,990 --> 00:05:31,790 Tracking module is responsible for following the Doppler shift and code phase supplied by the acquisition module so that it can demodulate the signal. 56 00:05:31,790 --> 00:05:35,270 Obtained raw navigation bits are passed over to the PVT module. 57 00:05:35,270 --> 00:05:40,390 If at any given point the tracking loop loses a lock, the whole process is repeated. 58 00:05:41,290 --> 00:05:46,910 The PVT module is responsible for calculating position, velocity, and timing information. 59 00:05:47,470 --> 00:05:54,850 Common reception time technique provides pseudo range to the satellite, which is a rough estimate of the distance between the receiver and the satellite. 60 00:05:54,850 --> 00:05:59,950 A common reception time is set across all the channels for calculating the pseudo ranges. 61 00:06:00,070 --> 00:06:04,510 This time is maintained by sample counters implemented in the receiver. 62 00:06:04,730 --> 00:06:13,650 As the distance of the satellites from the receiver varies, the difference in time of arrival of messages from each satellite is used to calculate the relative range from the receiver to that satellite. 63 00:06:14,250 --> 00:06:21,150 Propagation time for the closest satellite is considered to be roughly 68 milliseconds, which is the approximate propagation time. 64 00:06:21,150 --> 00:06:28,090 In this case, message from satellite 3 arrives first and it is considered as a reference time, which is set across all the channels. 65 00:06:28,130 --> 00:06:35,110 Thus, propagation time for other satellites is calculated as TRX, which is the reference time, plus delta TN. 66 00:06:35,170 --> 00:06:38,210 This is a very elegant way of determining pseudo range. 67 00:06:38,210 --> 00:06:41,430 However, this gives rise to a major security concern. 68 00:06:41,430 --> 00:06:45,250 An attacker can fabricate signals with delayed messages as required. 69 00:06:45,410 --> 00:06:51,090 These measurements and the contents of the received messages are used to calculate the receiver's location. 70 00:06:53,090 --> 00:06:59,010 GPS position is determined by solving these equations for X, Y, and Z. 71 00:06:59,330 --> 00:07:04,830 Pseudo ranges determined using the common reception technique are the key in location determination. 72 00:07:04,950 --> 00:07:10,810 Given the speed of light, a delay of 1 nanosecond can lead to errors of up to 30 centimeters. 73 00:07:12,970 --> 00:07:15,810 There are two primary types of GPS attacks. 74 00:07:15,810 --> 00:07:25,850 Jamming attacks, where the attacker transmits high-powered noise, which causes a denial-of-service attack, and spoofing attacks, where the attacker transmits a signal such that the receiver calculates a false location. 75 00:07:26,090 --> 00:07:31,210 In this demonstration, we are going to take a deeper look at GPS spoofing attacks. 76 00:07:32,230 --> 00:07:47,610 An attacker transmits specially crafted signals, which are identical to the legitimate signals, except they are transmitted at a higher power and result in calculation of a false PVD solution or calculation of false time, as GPS is also used for precise timing and synchronization. 77 00:07:48,310 --> 00:07:55,550 Attackers can fake locations by either modifying the navigation messages or by manipulating the time of arrival of these messages. 78 00:07:56,030 --> 00:07:58,030 GPS is a simplex system. 79 00:07:58,030 --> 00:08:05,750 Hence, conventional security techniques, which require a handshake, do not work here, as the receiver has no way of interacting with the satellites. 80 00:08:06,050 --> 00:08:14,370 This makes it trivial for an attacker to generate fake signals or replay previously recorded signals to fool a receiver. 81 00:08:15,910 --> 00:08:24,230 An attacker modifies the navigation message content such that the receiver uses altered satellite positions for calculation of the PVD solution. 82 00:08:24,230 --> 00:08:31,990 Such an attack can be easily detected using external sources, as it is trivial to verify the validity of the received navigation messages. 83 00:08:32,510 --> 00:08:42,450 In the second method, the attacker keeps the message contents identical and instead manipulates the time of arrival of the messages, such that the pseudo-range calculations are altered. 84 00:08:42,470 --> 00:08:44,370 Such an attack is hard to detect. 85 00:08:44,370 --> 00:08:48,250 However, it requires access to real-time satellite ephemeris data. 86 00:08:50,090 --> 00:08:54,010 Let's take a look at one of the most sophisticated GPS attacks. 87 00:08:54,030 --> 00:09:00,770 In a seamless takeover attack, the attacker starts transmitting with lower power than the legitimate signal. 88 00:09:00,770 --> 00:09:08,070 It is important to note that the adversarial signals are tightly synchronized with the legitimate signals in time domain as well as frequency domain. 89 00:09:08,190 --> 00:09:15,810 Later, the attacker slowly starts increasing the power and overshadows the legitimate signal while maintaining synchronization. 90 00:09:15,890 --> 00:09:20,810 As a result, the receiver starts tracking the adversarial signals instead of the legitimate signals. 91 00:09:20,870 --> 00:09:25,710 Since the attacker's signal is stronger, the noise floor rises and the tracking loops are thrown off. 92 00:09:25,750 --> 00:09:27,450 Thus, the receiver breaks a lock . 93 00:09:27,450 --> 00:09:30,930 However, if the signals are synchronized, the lock is simply transferred. 94 00:09:30,930 --> 00:09:33,750 As for the receiver, the two signals are identical. 95 00:09:33,970 --> 00:09:39,470 Thus, the switch-off lock is near seamless and the receiver doesn't experience any kind of loss of lock. 96 00:09:39,670 --> 00:09:43,430 By nature, every receiver will lock on to the stronger signal. 97 00:09:43,430 --> 00:09:50,890 Once the lock is transferred, which happens instantaneously, the attacker starts introducing offsets, which takes the target off course. 98 00:09:53,520 --> 00:10:01,000 Increasing popularity of inexpensive software-defined radios has made executing GPS spoofing attacks quite straightforward. 99 00:10:01,180 --> 00:10:09,900 To execute a GPS spoofing attack, we need a baseband signal generator, which can generate GPS messages, perform spread spectrum operations, and modulation. 100 00:10:09,920 --> 00:10:16,040 It relies on broadcast fMRIS data of satellites and a set of coordinates to generate spoofing signals. 101 00:10:16,100 --> 00:10:24,320 Finally, we need a software-defined radio front-end, which can transmit data on 1.57542 GHz, which is the L1 carrier frequency. 102 00:10:25,420 --> 00:10:31,740 The demonstration setup includes a control unit, which runs the GPS baseband generator software. 103 00:10:31,820 --> 00:10:36,480 A USRP B210 is used to simulate legitimate and malicious satellites. 104 00:10:37,000 --> 00:10:41,580 This particular USRP supports simultaneous transmissions on two channels. 105 00:10:42,000 --> 00:10:45,340 The spoofer has power advantage of about 10 dB. 106 00:10:45,420 --> 00:10:49,940 This is achieved by setting appropriate RF gain on the spoofer transmission channel. 107 00:10:50,040 --> 00:10:58,120 The signals from these channels are combined using a signal combiner and are fed to a MuBlock GPS receiver, which is connected to a Raspberry Pi. 108 00:10:58,260 --> 00:11:04,440 Foxtrot GPS with OpenStreetMaps is used as a mapping and navigation software on the Raspberry Pi. 109 00:11:04,440 --> 00:11:08,000 Make sure that all the RF instruments are hardwired. 110 00:11:08,020 --> 00:11:11,380 USRP B210 is a fairly powerful transmitter. 111 00:11:11,380 --> 00:11:17,940 Since legitimate GPS signals are very weak, it can affect GPS services over quite a wide area. 112 00:11:17,940 --> 00:11:21,720 Hence, it is essential to ensure that there are no signal leakages. 113 00:11:24,160 --> 00:11:30,920 The first step is to generate a set of GPS coordinates, which will be used to generate GPS baseband signal. 114 00:11:30,920 --> 00:11:33,120 This can be achieved in multiple ways. 115 00:11:33,120 --> 00:11:42,700 In this case, we will plot the path using Google Earth and then use SatGen trajectory generation application to generate the trajectory, which will be interpreted by the GPS simulator. 116 00:11:42,760 --> 00:11:46,440 Let's mark the path by using the add path tool. 117 00:11:48,420 --> 00:11:54,180 In this scenario, let's just take the receiver around the block and bring it back to its original location. 118 00:11:55,420 --> 00:12:05,020 Once you are done adding the path, just save it, give it some name, and now we need to convert the path and store it as a KML file. 119 00:12:06,380 --> 00:12:08,460 All right, there we go. 120 00:12:10,520 --> 00:12:14,700 Now, in the second part, we have to generate NMEA data. 121 00:12:15,020 --> 00:12:18,120 For this, load this path. 122 00:12:18,120 --> 00:12:23,940 As you can see, it shows the displacement in terms of latitude and longitude in meters. 123 00:12:23,940 --> 00:12:28,200 Now, you can keep these dynamic setting parameters as default. 124 00:12:28,200 --> 00:12:31,330 Just make sure that you have a suitable stationary period. 125 00:12:32,080 --> 00:12:38,310 And once you are done, just click on generate NMEA and you can store your data as .NMEA file. 126 00:12:40,480 --> 00:12:42,200 All right, that's it. 127 00:12:42,200 --> 00:12:43,740 Now, over to step two. 128 00:12:47,890 --> 00:12:53,690 In the second step, we'll be using GPS SDR sim for generating GPS baseband data. 129 00:12:53,690 --> 00:13:12,490 We need to provide the simulator with the dynamic motion file, which is sampled at 10 hertz, a GPS broadcast FMRIS data, the sampling rate, which is 2 megahertz in this case, as this is the lowest that can be used for GPS, and then we have to provide the name of the output file. 130 00:13:16,930 --> 00:13:20,490 Now, it will take some time to generate the baseband data. 131 00:13:20,610 --> 00:13:30,670 As you can see, this shows the list of satellites that are visible from this location, their azimuth and the pseudo range to that particular satellite. 132 00:13:40,560 --> 00:13:43,540 All right, now we have our GPS baseband data. 133 00:13:43,540 --> 00:13:45,080 Now, over to step three. 134 00:13:48,500 --> 00:13:52,540 In step two, we generated a GPS baseband signal. 135 00:13:52,600 --> 00:13:57,320 In step three, we will be using a software-defined radio to transmit this signal. 136 00:13:57,480 --> 00:14:00,940 We have a simple GNU radio flow graph for transmission. 137 00:14:01,060 --> 00:14:07,540 This flow graph reads samples from a file source, converts it into GR complex, and sends the samples to a USRP sink. 138 00:14:07,540 --> 00:14:11,300 In this case, I'm using a USRP B210 for transmission. 139 00:14:11,880 --> 00:14:14,600 It supports transmission on two channels. 140 00:14:14,600 --> 00:14:19,320 The first channel transmits the legitimate signal, and second channel transmits a spoofing signal. 141 00:14:19,800 --> 00:14:23,900 This sink can be replaced by a software-defined radio of your choice. 142 00:14:23,900 --> 00:14:30,560 The only requirement is that it should be able to transmit at 2 mega samples on 1.57 gigahertz. 143 00:14:31,240 --> 00:14:34,580 Now, let's turn on the spoofer and observe what happens. 144 00:14:37,360 --> 00:14:41,840 Now, as soon as the spoofer is turned on, we will observe two things. 145 00:14:41,840 --> 00:14:52,120 First, the receiver will show some random motion as the signals interfere unpredictably, which results in a fake or garbage location. 146 00:14:52,120 --> 00:14:55,120 And second, there's a total loss of lock. 147 00:14:55,380 --> 00:15:05,920 One of the reasons being, whenever a receiver loses or isn't able to track a signal, it loses a lock and it takes some time for it to reacquire signals. 148 00:15:05,960 --> 00:15:13,940 Now, as soon as the signals are reacquired, you can see that the receiver starts following the spoof path that we generated in step one. 149 00:15:16,940 --> 00:15:22,600 GPS is a broadcast system, which means that it is unidirectional. 150 00:15:22,600 --> 00:15:24,120 It's a simplex system. 151 00:15:24,320 --> 00:15:29,580 There is no way for a receiver to interact or talk back to the satellites. 152 00:15:29,720 --> 00:15:36,900 Secure positioning and communication requires bidirectional communication for a secure handshake and for secure exchange of information. 153 00:15:36,900 --> 00:15:43,220 And it's also important to protect time of arrival of messages, which in this case is very challenging. 154 00:15:43,540 --> 00:15:48,140 Now, there are two types of spoofing detection and mitigation techniques for GPS. 155 00:15:48,140 --> 00:15:55,060 First is infrastructure countermeasures, where you need to change the entire infrastructure, which includes cryptographic solutions. 156 00:15:55,060 --> 00:16:01,560 And there are receiver-end countermeasures where it's enough just to modify the receiver. 157 00:16:01,860 --> 00:16:03,780 Let's look at these one by one. 158 00:16:04,240 --> 00:16:09,800 A secure GPS proposed by Marcus Kuhn uses asymmetric keys and hidden markers. 159 00:16:10,260 --> 00:16:13,420 Public keys of satellites are stored on the devices. 160 00:16:13,440 --> 00:16:16,840 The broadband receivers receive the entire band of signals. 161 00:16:16,840 --> 00:16:22,080 It is important to do so because the receiver isn't aware of the de-spreading codes just yet. 162 00:16:22,080 --> 00:16:27,860 The transmitter discloses the spreading code at a later time, which is signed by its private key. 163 00:16:27,860 --> 00:16:33,540 The receiver then verifies the signature and uses the received code to de-spread the previous signal. 164 00:16:33,620 --> 00:16:37,280 Such a solution prevents generation of fake signals. 165 00:16:37,280 --> 00:16:40,840 However, there are issues with efficiency and precise timing. 166 00:16:40,840 --> 00:16:50,140 Moreover, it is a logistical nightmare to deploy such a solution, as such a solution will require a complete overhaul of the entire GPS ecosystem. 167 00:16:51,980 --> 00:16:56,960 Researchers have proposed the use of multiple receivers for collective detection of spoofing. 168 00:16:56,960 --> 00:17:00,540 In this scheme, a constellation of receivers is observed. 169 00:17:00,540 --> 00:17:06,440 For successful spoofing, the attacker will have to spoof such that the constellation of receivers is maintained. 170 00:17:06,440 --> 00:17:09,340 This includes spoofing the receivers individually. 171 00:17:09,380 --> 00:17:28,240 Group spoofing is a known challenge associated with GPS spoofing, because let's say a spoofer starts transmitting and as a result of a single point of transmission, all the receivers will collapse into one point and thus it will be very easy for the receivers to detect that there's something malicious going on. 172 00:17:29,480 --> 00:17:41,280 Moreover, even though this solution is quite reliable and is efficient in detecting spoofing, there's a major drawback is that such a solution is not feasible for smaller vehicles. 173 00:17:42,860 --> 00:17:52,020 Signal characteristics can also be leveraged to efficiently detect spoofing, which are considered to be unique to a transmitter given the geographical placement of the transmitter. 174 00:17:52,020 --> 00:17:59,480 This can be used to distinguish between signals from a point transmitter like a spoofer and a satellite which is 20,000 kilometers away. 175 00:17:59,720 --> 00:18:03,160 A high power transmission increases the noise floor substantially. 176 00:18:03,240 --> 00:18:07,300 A sensitive receiver can easily detect sudden changes in noise floors. 177 00:18:07,460 --> 00:18:11,960 These variations can be attributed to a spoofing or a jamming attack. 178 00:18:13,840 --> 00:18:16,940 Recall the function of acquisition module. 179 00:18:16,940 --> 00:18:22,540 A correlation peak is formed for every occurrence of the CA code in the received signal. 180 00:18:22,540 --> 00:18:29,940 A receiver proposed in SPRE looks out for such peaks and based on separation between these peaks, it can detect spoofing. 181 00:18:29,940 --> 00:18:36,380 Even though it can detect a strong seamless takeover attack, it can only do so if the auxiliary peaks are visible. 182 00:18:36,380 --> 00:18:49,380 For example, if the attacker is very powerful, then the legitimate signals are buried under noise floor introduced by the adversarial signals, as is in this case where the second peak marked in green is barely visible. 183 00:18:49,380 --> 00:18:52,900 Here, the attacker has about 10 dB of power advantage. 184 00:18:54,300 --> 00:18:57,660 Here are some other spoofing detection techniques. 185 00:18:57,820 --> 00:19:01,520 Inertial sensors can track physical movements of a vehicle. 186 00:19:01,520 --> 00:19:06,580 However, they are notorious for drifts and biases which can introduce significant errors. 187 00:19:06,640 --> 00:19:15,640 Researchers have proposed various implementations involving extended Kalman filters where IMU sensors are combined with GPS. 188 00:19:16,000 --> 00:19:21,340 Inertial measurements are used to track and validate the derived PVD solutions. 189 00:19:21,620 --> 00:19:31,360 Cross correlation between unknown encrypted GPS signals on L1 carrier and known open source GPS signals can lead to effective spoofing detection strategy. 190 00:19:32,100 --> 00:19:44,940 Another simple spoofing detection strategy involves comparison of PVD solution obtained from GPS with PVD solution obtained from other satellite navigation systems like GLONASS, Galileo, or Baidu. 191 00:19:44,940 --> 00:19:52,260 However, an attacker can simply spoof other systems as well as these systems are also vulnerable to similar attacks. 192 00:19:52,500 --> 00:19:59,760 Receiver Autonomous Integrity Monitoring or RAIM is a spoofing detection technique that is very popular in aviation. 193 00:19:59,760 --> 00:20:03,660 Almost every commercial aviation GPS receiver implements RAIM. 194 00:20:03,660 --> 00:20:06,460 It works on detecting outlier satellites. 195 00:20:06,460 --> 00:20:09,820 These satellites are excluded from PVD calculation. 196 00:20:09,820 --> 00:20:12,760 Thus, it requires six or more visible satellites. 197 00:20:15,040 --> 00:20:18,540 Several of the countermeasures that we discussed are effective. 198 00:20:18,540 --> 00:20:20,320 However, they aren't perfect. 199 00:20:20,320 --> 00:20:24,420 We all know that a perfect security solution just doesn't exist. 200 00:20:24,880 --> 00:20:29,760 In case of crypto solutions, they are vulnerable to replay attacks. 201 00:20:29,760 --> 00:20:36,380 Consider a scenario where a spoofer has a receiver in location 1 and a transmitter in location 2. 202 00:20:36,380 --> 00:20:43,980 There is a medium available such that the receiver can transmit raw RF samples to the transmitter. 203 00:20:43,980 --> 00:20:49,260 Here, the transmitter simply transmits or replays the received samples in location 2. 204 00:20:49,260 --> 00:20:58,960 Now, any receiver in location 2, if starts receiving GPS signals, then the calculated solution will reflect location 1 instead of location 2. 205 00:21:00,040 --> 00:21:07,660 Since GPS is a simplex and a unidirectional system, such attacks cannot be prevented by crypto. 206 00:21:07,720 --> 00:21:16,000 Moreover, it's virtually impossible to protect a physical characteristic of a signal like the time of arrival. 207 00:21:19,450 --> 00:21:25,830 There are solutions which couple INS or inertial navigation systems with GPS. 208 00:21:25,830 --> 00:21:33,070 However, recently, two years ago, there was work which involved integrated GNS and INS spoofing. 209 00:21:33,070 --> 00:21:40,350 In this work, the authors were able to spoof and take the vehicle, of course, by about 10 kilometers. 210 00:21:40,350 --> 00:21:48,270 In our experimentations, we found that throttling GPS spoofing offsets can also lead to pooling extended Kalman filters. 211 00:21:48,710 --> 00:21:52,210 The inertial sensors are prone to errors and biases. 212 00:21:52,210 --> 00:22:00,110 We exploit these errors and we throttle our attacks such that the extended Kalman filter adapts to our spoofing coordinates. 213 00:22:00,110 --> 00:22:07,310 And thus, such attacks can go undetected, even in a tightly coupled INS and GPS system. 214 00:22:08,430 --> 00:22:28,750 Now, as you have seen the countermeasures and how trivial it is to spoof GPS, it's important to note that GPS being a unidirectional system, it is not trivial to come up with solutions which can secure or safeguard GPS against a plethora of these spoofing attacks. 215 00:22:29,110 --> 00:22:30,230 Thank you.