<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://projectswiki.eleceng.adelaide.edu.au/projects/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A1118706</id>
	<title>Projects - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://projectswiki.eleceng.adelaide.edu.au/projects/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A1118706"/>
	<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php/Special:Contributions/A1118706"/>
	<updated>2026-04-18T20:53:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.4</generator>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2019s1-166_Reliability_and_Trust_in_Global_Navigation_Systems&amp;diff=13500</id>
		<title>Projects:2019s1-166 Reliability and Trust in Global Navigation Systems</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2019s1-166_Reliability_and_Trust_in_Global_Navigation_Systems&amp;diff=13500"/>
		<updated>2019-10-29T08:31:37Z</updated>

		<summary type="html">&lt;p&gt;A1118706: update errors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Team ==&lt;br /&gt;
&lt;br /&gt;
*Liam Shelby-James&lt;br /&gt;
&lt;br /&gt;
*Stefan Norman&lt;br /&gt;
&lt;br /&gt;
==Supervisors==&lt;br /&gt;
&lt;br /&gt;
*Dr Matthew Sorell&lt;br /&gt;
&lt;br /&gt;
*Dr Richard Matthews&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Global Navigation Satellite Systems (GNSS) are a ubiquitous &amp;amp; essential tool across many platforms and systems in the modern era. Many systems, and in fact, industries rely on these satellites for positional or timing data, and for this reason, GNSS requires protection &amp;amp; verification. Due to this reliance, it comes as no surprise that attacks on GNSS are of growing concern in cyber warfare. &lt;br /&gt;
For example, in 2013, academics in the Mediterranean Sea took a yacht off course without being detected &amp;lt;ref name=Humpfries1&amp;gt;J. Bhatti, T. Humpfries, “Covert Control of Surface Vessels via Counterfeit Civil GPS Signals”, Journal of the Institute of Navigation, 2014&amp;lt;/ref&amp;gt;.  In early 2019, also, Russian intelligence has interfered with NATO military training, and elsewhere throughout Russia, Crimea &amp;amp; Syria &amp;lt;ref name=C4ADS&amp;gt;Above Us Only Stars – C4ADS. [Online]. Available: https://www.c4reports.org/aboveusonlystars. [Accessed: 10-Apr-2019]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Over-the-air attacks come in three main varieties: jamming, spoofing and software attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Jamming&amp;#039;&amp;#039;&amp;#039; refers to a brute force Denial of Service (DoS) attack where noise is generated and broadcast on GNSS frequencies, making it difficult for any receivers to separate and decode any data.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spoofing&amp;#039;&amp;#039;&amp;#039; is a more targeted attack whereby false signals are transmitted to imitate genuine GNSS signals and can result in erroneous positions being displayed. If the signals are tailored to a specific receiver’s location, this can then be slowly adjusted to bring ships &amp;amp; aircraft off course without any obvious indication to the operators &amp;lt;ref name=Humpfries1&amp;gt;&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Software attacks&amp;#039;&amp;#039;&amp;#039; are not attacks on GNSS directly, but rather the software implementations of GNSS receivers. For example, sending malformed requests, or exploiting known bugs in the software &amp;lt;ref name=Nighswander&amp;gt;T. Nighswander, B. Ledvina, J. Diamond, R. Brumley, and D. Brumley, “GPS software attacks,” Proceedings of the 2012 ACM conference on Computer and communications security - CCS 12, 2012.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Using these attacks individually or in combination may allow an attacker to disable or alter the location returned by a GNSS receiver, which may be intended to disrupt or disorientate the victim.&lt;br /&gt;
&lt;br /&gt;
==Objective==&lt;br /&gt;
&lt;br /&gt;
Our objective is to formulate a framework that determines how trustworthy the current GNSS location data is and to create a simple user-friendly metric using this framework to display to a user. A secondary objective is to implement the metric in an Android app, utilising low-level GNSS data made available in recent chipsets &amp;lt;ref name=android-gnss&amp;gt;“Raw GNSS Measurements | Android Developers.” [Online]. Available: https://developer.android.com/guide/topics/sensors/gnss. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Related Work== &lt;br /&gt;
&lt;br /&gt;
The focus of our research is primarily the detection of GNSS spoofing. There are several studies investigating these methods of spoofing detection, which range in their effectiveness, depending on the complexity &amp;amp; kind of attack. However, it is not clear if existing receivers are advanced enough to detect sophisticated attacks, as many of these methods are mathematically intensive.&lt;br /&gt;
The most fundamental approach is to detect satellites that have suspiciously high-powered signals, which may eliminate the simplest of spoofing attacks from malicious parties that just want their targets to lock on to their signal &amp;lt;ref name=humpfries2&amp;gt;T. Humpfries, B. Ledvina, M. Psiaki, B. O’Hanlon, P. Kintner Jr, “Assessing the Spoofing Threat: Development of a Portable GPS Civilian Spoofer”, In Radionavigation laboratory conference proceedings, 2008.&amp;lt;/ref&amp;gt;. This method will fool the most rudimentary receivers that simply prioritise the strongest signals from a single constellation (constellation here means each system of satellites run independently by different organisations, eg; GPS, GLONASS, Galileo, etc.).&lt;br /&gt;
&lt;br /&gt;
More rigorous methods include measuring the incoming signals’ phase difference to determine the approximate direction of the signal source, as different satellites will be in different areas of the sky &amp;lt;ref name=double-difference&amp;gt;Y. Hu, S. Bian, B. Ji, J. Li, “GNSS Spoofing Detection Using Fraction Parts of Double-Difference Carrier Phases”, The Journal of Navigation, 2018&amp;lt;/ref&amp;gt;. Some of these methods, such as cryptographic authentication, are computationally intense, as they utilise statistical hypothesis testing &amp;lt;ref name=humpfries2&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=humpfries3&amp;gt;K. Wesson, M. Rothlisberger, T. Humpfries, “Practical Cryptographic Civil GPS Signal Authentication”, Journal of The Institute of Navigation Vol. 59, 2012&amp;lt;/ref&amp;gt;. Some receivers will prioritise satellites which report being in different locations, as Geometric Dilution of Precision (GDOP) states that satellites in close proximity of each another will not provide as precise location data &amp;lt;ref name=gdop&amp;gt;“GPS Accuracy: HDOP, PDOP, GDOP, Multipath &amp;amp; the Atmosphere,” GIS Geography, 24-Feb-2018. [Online]. Available: https://gisgeography.com/gps-accuracy-hdop-pdop-gdop-multipath/. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Method==&lt;br /&gt;
&lt;br /&gt;
Google has developed a GNSS Analysis suite targeted at application developers, which consists of an Android app (GNSS Logger) to capture raw GNSS data, and an analysis tool in compiled MATLAB code &amp;lt;ref name=android-gnss&amp;gt;&amp;lt;/ref&amp;gt;. This analysis tool provides a wide array of graphs and statistics that can be used to characterise and analyse the captured data, as seen below. This does not demonstrate all of the data collected by this tool however, as additional data such as Automatic Gain Control (AGC) is also recorded and can be useful for spoofing detection.&lt;br /&gt;
&lt;br /&gt;
Screen capture from GNSS Analysis (Google.)&lt;br /&gt;
&lt;br /&gt;
[[File:2019s1-166-gnssanalysis.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
The left column shows satellite data, from top to bottom; the strongest satellites from each constellation, each satellite’s signal strength over time, and the rough location of each satellite in the sky. The centre column shows clock &amp;amp; timing data, again from top to bottom; the distance from user to each satellite (called “pseudorange”), over time, how much the receiver&amp;#039;s clock’s frequency must be changed to correct timing over time, and how much it has changed over time. Finally, the third column contains calculated data, including; variation in position, the magnitude of errors in pseudorange over time, and the number of errors in pseudorange over time.&lt;br /&gt;
&lt;br /&gt;
We have used this GNSS Analysis suite as the basis for our data collection and analysis as it requires no translation to implement in an Android app and provides for easy integration into an SQL database for scalable analysis.&lt;br /&gt;
&lt;br /&gt;
However, in order to test our program, a method to broadcast our own GNSS signals is required. Due to strict regulatory requirements and to avoid interfering with the public, these signals must be broadcast in an electrically shielded environment &amp;lt;ref name=acma&amp;gt;Australian Communications and Media Authority, “Devices prohibited by the ACMA,” 10-Feb-2019. [Online]. Available: https://www.acma.gov.au/Citizen/Spectrum/About-spectrum/What-is-spectrum-and-why-you-need-it/devices-prohibited-by-the-acma. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;. Shielding the testbed is a non-trivial problem, and we plan to solve this with a rudimentary grounded Faraday cage fabricated from sheet metal, and lined with copper mesh for conductivity.&lt;br /&gt;
&lt;br /&gt;
Several Software Defined Radio (SDR) transmitters have been investigated, but many have a significant expense (from AU$300 to AU$2,000) which due to budgetary constraints would limit testing to a single transmitter &amp;lt;ref name=bladerf&amp;gt;“bladeRF 2.0 micro,” Nuand [Online]. Available: https://www.nuand.com/bladerf-2-0-micro/. [Accessed: 31-May-2019].&amp;lt;/ref&amp;gt;&amp;lt;ref name=hackrf&amp;gt;“HackRF One,” Great Scott Gadgets. [Online]. Available: https://greatscottgadgets.com/hackrf/one/. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;. After using a high-quality transmitter to provide a reference transmission, we are using several USB to VGA converters (approximately $10 each) which can be hacked with open-source software to become a crude transmitter &amp;lt;ref name=osmo-fl2k&amp;gt;“SDR (Software Defined Radio) » osmo-fl2k,” Steve Markgraf. [Online]. https://osmocom.org/projects/osmo-fl2k/wiki/Osmo-fl2k, accessed on: 10 Apr. 2019&amp;lt;/ref&amp;gt;. This hack utilises higher harmonics of the 165 MHz VGA digital to analog converter, which can create undesirable interference. However, as this will be tested inside an isolated environment, this is not of concern.&lt;br /&gt;
&lt;br /&gt;
In order to provide a realistic testing environment, real-world GNSS signals must be injected into our container in near real-time. There are several GNSS simulator tools capable of transmitting realistic signals for this purpose, as well as simple hardware repeaters to replicate signals received outside the containment, and at the time of writing, we are still investigating them &amp;lt;ref name=osqzss&amp;gt;Osqzss, “osqzss/gps-sdr-sim,” GitHub, 28-Oct-2018. [Online]. Available: https://github.com/osqzss/gps-sdr-sim. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==Preliminary Results==&lt;br /&gt;
&lt;br /&gt;
We have identified several key concerns to be analysed from the raw GNSS satellite data in Table 1 below. The table contains descriptions of spoofing detection methods, and what data sets they must be analysed against to detect suspicious results. &lt;br /&gt;
&lt;br /&gt;
“Absolute” here means that a satellite’s data is compared to a numerical constant, or set of constants, and not other satellites. The column “Self” refers to whether each satellite’s data is compared to its own historical data, as collected on the device. The “System” column indicates the satellite’s data is analysed with respect to other satellites in the same constellation. Finally, “All”, applies to data that will be compared to all satellites in range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title and Description of Method&lt;br /&gt;
! Absolute&lt;br /&gt;
! Relative to Self&lt;br /&gt;
! Relative to System&lt;br /&gt;
! Relative to All&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Satellite ID exists:&amp;#039;&amp;#039;&amp;#039; checking to see that every SVID that is received is an actual, in-operation satellite&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Satellite is in the expected location:&amp;#039;&amp;#039;&amp;#039; if the satellite with the given SVID should be reachable in this part of the world&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Duplicate signals from the same SVID:&amp;#039;&amp;#039;&amp;#039; if a single SVID appears more than once from different sources, at least one of these is unauthentic&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Unexpected distance jump:&amp;#039;&amp;#039;&amp;#039; when spoofing occurs, there may be a single, sharp position jump that is obvious&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Time variance/jitter:&amp;#039;&amp;#039;&amp;#039; if the timestamp given is delayed, this can indicate a man-in-the-middle attack . Also, if the clock bias is noticeably large, this may indicate the spoofing device is not as reliable as the atomic clocks used by satellites&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Time of arrival:&amp;#039;&amp;#039;&amp;#039; if multiple signals are consistently received instantaneously, they are likely from a single spoofer device&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Power of signal:&amp;#039;&amp;#039;&amp;#039; if a certain set of satellites’ signals are well above others, or if signal strength was slowly increased over time&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If there are any malicious signs detected during data analysis, flags will be raised ranging in level with respect to the severity of the observed interference. Based on the number of flags and their impact, the application will utilise our framework to place a value on the level of interference, which will manifest in a certain colour grade, as per the table below. These are the key results of our research, and we expect this kind of algorithms will be most useful for transport companies, but also eventually more widely by the public as well as defence as a rough estimate on the type of interference in the area.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Purple&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Encrypted (typically defence)&lt;br /&gt;
|-&lt;br /&gt;
| Blue&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Authenticated (e.g. GALILEO 2019+)&lt;br /&gt;
|-&lt;br /&gt;
| Green&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| No suspicious activity detected&lt;br /&gt;
|-&lt;br /&gt;
| Yellow&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:yellow&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Suspicious activity &lt;br /&gt;
|-&lt;br /&gt;
| Red&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Inconsistent; signal unverifiable, may be heavy interference&lt;br /&gt;
|-&lt;br /&gt;
| Black&lt;br /&gt;
| &amp;amp;#x2B24;&amp;amp;#xfe0e;&lt;br /&gt;
| Device compromised; the device is using a false signal&lt;br /&gt;
|-&lt;br /&gt;
| White&lt;br /&gt;
| &amp;amp;#x25EF;&amp;amp;#xfe0e;&lt;br /&gt;
| No/insufficient signal detected (environmental or malicious)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Reflist}}&lt;/div&gt;</summary>
		<author><name>A1118706</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2019s1-166_Reliability_and_Trust_in_Global_Navigation_Systems&amp;diff=12591</id>
		<title>Projects:2019s1-166 Reliability and Trust in Global Navigation Systems</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2019s1-166_Reliability_and_Trust_in_Global_Navigation_Systems&amp;diff=12591"/>
		<updated>2019-05-31T05:41:36Z</updated>

		<summary type="html">&lt;p&gt;A1118706: First draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Team ==&lt;br /&gt;
&lt;br /&gt;
*Liam Shelby-James&lt;br /&gt;
&lt;br /&gt;
*Stefan Norman&lt;br /&gt;
&lt;br /&gt;
==Supervisors==&lt;br /&gt;
&lt;br /&gt;
*Dr Matthew Sorell&lt;br /&gt;
&lt;br /&gt;
*Richard Matthews&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Global Navigation Satellite Systems (GNSS) are a ubiquitous &amp;amp; essential tool across many platforms and systems in the modern era. Many systems, and in fact, industries rely on these satellites for positional or timing data, and for this reason, GNSS requires protection &amp;amp; verification. Due to this reliance, it comes as no surprise that attacks on GNSS are of growing concern in cyber warfare.&lt;br /&gt;
For example, in 2013, academics in the Mediterranean Sea took a yacht off course without being detected &amp;lt;ref name=Humpfries1&amp;gt;J. Bhatti, T. Humpfries, “Covert Control of Surface Vessels via Counterfeit Civil GPS Signals”, Journal of the Institute of Navigation, 2014&amp;lt;/ref&amp;gt;.  In early 2019, also, Russian intelligence has interfered with NATO military training, and elsewhere throughout Russia, Crimea &amp;amp; Syria &amp;lt;ref name=C4ADS&amp;gt;Above Us Only Stars – C4ADS. [Online]. Available: https://www.c4reports.org/aboveusonlystars. [Accessed: 10-Apr-2019]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Over-the-air attacks come in three main varieties: jamming, spoofing and software attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Jamming&amp;#039;&amp;#039;&amp;#039; refers to a brute force Denial of Service (DoS) attack where noise is generated and broadcast on GNSS frequencies, making it difficult for any receivers to separate and decode any data.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spoofing&amp;#039;&amp;#039;&amp;#039; is a more targeted attack whereby false signals are transmitted to imitate genuine GNSS signals and can result in erroneous positions being displayed. If the signals are tailored to a specific receiver’s location, this can then be slowly adjusted to bring ships &amp;amp; aircraft off course without any obvious indication to the operators &amp;lt;ref name=Humpfries1&amp;gt;&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Software attacks&amp;#039;&amp;#039;&amp;#039; are not attacks on GNSS directly, but rather the software implementations of GNSS receivers. For example, sending malformed requests, or exploiting known bugs in the software &amp;lt;ref name=Nighswander&amp;gt;T. Nighswander, B. Ledvina, J. Diamond, R. Brumley, and D. Brumley, “GPS software attacks,” Proceedings of the 2012 ACM conference on Computer and communications security - CCS 12, 2012.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Objective==&lt;br /&gt;
&lt;br /&gt;
Our objective is to formulate a framework that determines how trustworthy the current GNSS location data is and to create a simple user-friendly metric using this framework to display to a user. A secondary objective is to implement the metric in an Android app, utilising low-level GNSS data made available in recent chipsets &amp;lt;ref name=android-gnss&amp;gt;“Raw GNSS Measurements | Android Developers.” [Online]. Available: https://developer.android.com/guide/topics/sensors/gnss. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Related Work== &lt;br /&gt;
&lt;br /&gt;
The focus of our research is primarily the detection of GNSS spoofing. There are several studies investigating these methods of spoofing detection, which range in their effectiveness, depending on the complexity &amp;amp; kind of attack. However, it is not clear if existing receivers are advanced enough to detect sophisticated attacks, as many of these methods are mathematically intensive.&lt;br /&gt;
The most fundamental approach is to detect satellites that have suspiciously high-powered signals, which may eliminate the simplest of spoofing attacks from malicious parties that just want their targets to lock on to their signal &amp;lt;ref name=humpfries2&amp;gt;T. Humpfries, B. Ledvina, M. Psiaki, B. O’Hanlon, P. Kintner Jr, “Assessing the Spoofing Threat: Development of a Portable GPS Civilian Spoofer”, In Radionavigation laboratory conference proceedings, 2008.&amp;lt;/ref&amp;gt;. This method will fool the most rudimentary receivers that simply prioritise the strongest signals from a single constellation (constellation here means each system of satellites run independently by different organisations, eg; GPS, GLONASS, Galileo, etc.).&lt;br /&gt;
&lt;br /&gt;
More rigorous methods include measuring the incoming signals’ phase difference to determine the approximate direction of the signal source, as different satellites will be in different areas of the sky[6]. Some of these methods, such as cryptographic authentication, are computationally intense, as they utilise statistical hypothesis testing &amp;lt;ref name=humpfries2&amp;gt;&amp;lt;/ref&amp;gt;&amp;lt;ref name=humpfries3&amp;gt;K. Wesson, M. Rothlisberger, T. Humpfries, “Practical Cryptographic Civil GPS Signal Authentication”, Journal of The Institute of Navigation Vol. 59, 2012&amp;lt;/ref&amp;gt;. Some receivers will prioritise satellites which report being in different locations, as Geometric Dilution of Precision (GDOP) states that satellites in close proximity of each another will not provide as precise location data &amp;lt;ref name=gdop&amp;gt;“GPS Accuracy: HDOP, PDOP, GDOP, Multipath &amp;amp; the Atmosphere,” GIS Geography, 24-Feb-2018. [Online]. Available: https://gisgeography.com/gps-accuracy-hdop-pdop-gdop-multipath/. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Method==&lt;br /&gt;
&lt;br /&gt;
Google has developed a GNSS Analysis suite targeted at application developers, which consists of an Android app (GNSS Logger) to capture raw GNSS data, and an analysis tool in compiled MATLAB code &amp;lt;ref name=android-gnss&amp;gt;&amp;lt;/ref&amp;gt;. This analysis tool provides a wide array of graphs and statistics that can be used to characterise and analyse the captured data, as seen below. This does not demonstrate all of the data collected by this tool however, as additional data such as Automatic Gain Control (AGC) is also recorded and can be useful for spoofing detection.&lt;br /&gt;
&lt;br /&gt;
Screen capture from GNSS Analysis (Google.)&lt;br /&gt;
&lt;br /&gt;
[[File:2019s1-166-gnssanalysis.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
The left column shows satellite data, from top to bottom; the strongest satellites from each constellation, each satellite’s signal strength over time, and the rough location of each satellite in the sky. The centre column shows clock &amp;amp; timing data, again from top to bottom; the distance from user to each satellite (called “pseudorange”), over time, how much the receiver&amp;#039;s clock’s frequency must be changed to correct timing over time, and how much it has changed over time. Finally, the third column contains calculated data, including; variation in position, the magnitude of errors in pseudorange over time, and the number of errors in pseudorange over time.&lt;br /&gt;
&lt;br /&gt;
We have used this GNSS Analysis suite as the basis for our data collection and analysis as it requires no translation to implement in an Android app and provides for easy integration into an SQL database for scalable analysis.&lt;br /&gt;
&lt;br /&gt;
However, in order to test our program, a method to broadcast our own GNSS signals is required. Due to strict regulatory requirements and to avoid interfering with the public, these signals must be broadcast in an electrically shielded environment &amp;lt;ref name=acma&amp;gt;Australian Communications and Media Authority, “Devices prohibited by the ACMA,” 10-Feb-2019. [Online]. Available: https://www.acma.gov.au/Citizen/Spectrum/About-spectrum/What-is-spectrum-and-why-you-need-it/devices-prohibited-by-the-acma. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;. Shielding the testbed is a non-trivial problem, and we plan to solve this with a rudimentary grounded Faraday cage fabricated from sheet metal, and lined with copper mesh for conductivity.&lt;br /&gt;
&lt;br /&gt;
Several Software Defined Radio (SDR) transmitters have been investigated, but many have a significant expense (from AU$300 to AU$2,000) which due to budgetary constraints would limit testing to a single transmitter &amp;lt;ref name=bladerf&amp;gt;“bladeRF 2.0 micro,” Nuand [Online]. Available: https://www.nuand.com/bladerf-2-0-micro/. [Accessed: 31-May-2019].&amp;lt;/ref&amp;gt;&amp;lt;ref name=hackrf&amp;gt;“HackRF One,” Great Scott Gadgets. [Online]. Available: https://greatscottgadgets.com/hackrf/one/. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;. After using a high-quality transmitter to provide a reference transmission, we are using several USB to VGA converters (approximately €8 each) which can be hacked with open-source software to become a crude transmitter &amp;lt;ref name=osmo-fl2k&amp;gt;“SDR (Software Defined Radio) » osmo-fl2k,” Steve Markgraf. [Online]. https://osmocom.org/projects/osmo-fl2k/wiki/Osmo-fl2k, accessed on: 10 Apr. 2019&amp;lt;/ref&amp;gt;. This hack utilises higher harmonics of the 165 MHz VGA digital to analog converter, which can create undesirable interference. However, as this will be tested inside an isolated environment, this is not of concern.&lt;br /&gt;
&lt;br /&gt;
In order to provide a realistic testing environment, real-world GNSS signals must be injected into our container in near real-time. There are several GNSS simulator tools capable of transmitting realistic signals for this purpose, as well as simple hardware repeaters to replicate signals received outside the containment, and at the time of writing, we are still investigating them &amp;lt;ref name=osqzss&amp;gt;Osqzss, “osqzss/gps-sdr-sim,” GitHub, 28-Oct-2018. [Online]. Available: https://github.com/osqzss/gps-sdr-sim. [Accessed: 10-Apr-2019].&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==Preliminary Results==&lt;br /&gt;
&lt;br /&gt;
We have identified several key concerns to be analysed from the raw GNSS satellite data in Table 1 below. The table contains descriptions of spoofing detection methods, and what data sets they must be analysed against to detect suspicious results. &lt;br /&gt;
&lt;br /&gt;
“Absolute” here means that a satellite’s data is compared to a numerical constant, or set of constants, and not other satellites. The column “Self” refers to whether each satellite’s data is compared to its own historical data, as collected on the device. The “System” column indicates the satellite’s data is analysed with respect to other satellites in the same constellation. Finally, “All”, applies to data that will be compared to all satellites in range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title and Description of Method&lt;br /&gt;
! Absolute&lt;br /&gt;
! Relative to Self&lt;br /&gt;
! Relative to System&lt;br /&gt;
! Relative to All&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Satellite ID exists:&amp;#039;&amp;#039;&amp;#039; checking to see that every SVID that is received is an actual, in-operation satellite&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Satellite is in the expected location:&amp;#039;&amp;#039;&amp;#039; if the satellite with the given SVID should be reachable in this part of the world&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Duplicate signals from the same SVID:&amp;#039;&amp;#039;&amp;#039; if a single SVID appears more than once from different sources, at least one of these is unauthentic&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Unexpected distance jump:&amp;#039;&amp;#039;&amp;#039; when spoofing occurs, there may be a single, sharp position jump that is obvious&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Time variance/jitter:&amp;#039;&amp;#039;&amp;#039; if the timestamp given is delayed, this can indicate a man-in-the-middle attack . Also, if the clock bias is noticeably large, this may indicate the spoofing device is not as reliable as the atomic clocks used by satellites&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Time of arrival:&amp;#039;&amp;#039;&amp;#039; if multiple signals are consistently received instantaneously, they are likely from a single spoofer device&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Dark_Red_x.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Power of signal:&amp;#039;&amp;#039;&amp;#039; if a certain set of satellites’ signals are well above others, or if signal strength was slowly increased over time&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
| [[File:13px-Green_check.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If there are any malicious signs detected during data analysis, flags will be raised ranging in level with respect to the severity of the observed interference. Based on the number of flags and their impact, the application will utilise our framework to place a value on the level of interference, which will manifest in a certain colour grade, as per the table below. These are the key results of our research, and we expect this kind of algorithms will be most useful for transport companies, but also eventually more widely by the public as well as defence as a rough estimate on the type of interference in the area.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Purple&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Encrypted (typically defence)&lt;br /&gt;
|-&lt;br /&gt;
| Blue&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Authenticated (e.g. GALILEO 2019+)&lt;br /&gt;
|-&lt;br /&gt;
| Green&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| No suspicious activity detected&lt;br /&gt;
|-&lt;br /&gt;
| Yellow&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:yellow&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Suspicious activity &lt;br /&gt;
|-&lt;br /&gt;
| Red&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;#x2B24;&amp;amp;#xfe0e;&amp;lt;/span&amp;gt;&lt;br /&gt;
| Inconsistent; signal unverifiable, may be heavy interference&lt;br /&gt;
|-&lt;br /&gt;
| Black&lt;br /&gt;
| &amp;amp;#x2B24;&amp;amp;#xfe0e;&lt;br /&gt;
| Device compromised; the device is using a false signal&lt;br /&gt;
|-&lt;br /&gt;
| White&lt;br /&gt;
| &amp;amp;#x25EF;&amp;amp;#xfe0e;&lt;br /&gt;
| No/insufficient signal detected (environmental or malicious)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Reflist}}&lt;/div&gt;</summary>
		<author><name>A1118706</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:2019s1-166-gnssanalysis.png&amp;diff=12590</id>
		<title>File:2019s1-166-gnssanalysis.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:2019s1-166-gnssanalysis.png&amp;diff=12590"/>
		<updated>2019-05-31T05:40:46Z</updated>

		<summary type="html">&lt;p&gt;A1118706: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1118706</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Template:Ya&amp;diff=12589</id>
		<title>Template:Ya</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Template:Ya&amp;diff=12589"/>
		<updated>2019-05-31T05:30:06Z</updated>

		<summary type="html">&lt;p&gt;A1118706: fix broken link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;data-sort-value=&amp;quot;{{{sort|No}}}&amp;quot; style=&amp;quot;background: {{{color|#FFD2D2}}}; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&amp;quot; class=&amp;quot;table-no2&amp;quot; {{#if:{{{rowspan|}}}|rowspan=&amp;quot;{{{rowspan}}}&amp;quot;}} | {{{text|[[File:13px-Dark_Red_x.png|13px|link={{{link|}}}|{{{1|No}}}]]}}}&lt;/div&gt;</summary>
		<author><name>A1118706</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:13px-Dark_Red_x.png&amp;diff=12588</id>
		<title>File:13px-Dark Red x.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:13px-Dark_Red_x.png&amp;diff=12588"/>
		<updated>2019-05-31T05:25:52Z</updated>

		<summary type="html">&lt;p&gt;A1118706: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1118706</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:13px-Green_check.png&amp;diff=12587</id>
		<title>File:13px-Green check.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:13px-Green_check.png&amp;diff=12587"/>
		<updated>2019-05-31T05:25:26Z</updated>

		<summary type="html">&lt;p&gt;A1118706: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1118706</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Template:Ya&amp;diff=12586</id>
		<title>Template:Ya</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Template:Ya&amp;diff=12586"/>
		<updated>2019-05-31T05:12:56Z</updated>

		<summary type="html">&lt;p&gt;A1118706: Source: Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;data-sort-value=&amp;quot;{{{sort|No}}}&amp;quot; style=&amp;quot;background: {{{color|#FFD2D2}}}; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&amp;quot; class=&amp;quot;table-no2&amp;quot; {{#if:{{{rowspan|}}}|rowspan=&amp;quot;{{{rowspan}}}&amp;quot;}} | {{{text|[[File:Dark Red x.svg|13px|link={{{link|}}}|{{{1|No}}}]]}}}&lt;/div&gt;</summary>
		<author><name>A1118706</name></author>
		
	</entry>
</feed>