Spoofing detection and prevention

The described methods and systems in GNSS devices enhance positioning accuracy by detecting and preventing spoofing through signal analysis and validation, ensuring reliable location and time data.

JP7759125B2Active Publication Date: 2025-10-23JAVAD GNSS INC
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
JP2023169613
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-11-20
Filing Date
2023-09-29
Publication Date
2025-10-23
Estimated Expiration
2038-11-19

AI Technical Summary

Technical Problem

GNSS devices are vulnerable to spoofing attacks that compromise positioning accuracy by providing false satellite signals, leading to incorrect location and time determinations.

Method used

Implementing methods and systems in GNSS devices to detect and prevent spoofing by identifying suspicious signals based on criteria such as multiple correlation peaks, signal-to-noise ratio, almanac data, and signal power, and calculating accurate positions using a subset of valid satellite signals.

Benefits of technology

Enhances the accuracy of GNSS positioning by detecting and blocking spoofed signals, providing alerts, and guiding users to navigate out of spoofed areas, thereby ensuring reliable location and time data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007759125000001
    Figure 0007759125000001
  • Figure 0007759125000002
    Figure 0007759125000002
  • Figure 0007759125000003
    Figure 0007759125000003
Patent Text Reader

Abstract

To provide spoofing detection and interdiction.SOLUTION: A system and method for implementing spoofing detection and interdiction in a Global Navigation Satellite System (GNSS) device having an antenna, includes the steps of: receiving a set of signals; identifying a suspicious signal within the set of signals; and calculating an approximate position of the GNSS device on the basis of the subset of valid GNSS satellite signals according to a determination that the set of signals includes a subset of valid GNSS satellite signals, the subset meets a minimum number of valid GNSS satellite signals and does not include any suspicious signals.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Provisional Application No. 62 / 588,828, filed November 20, 2017, and entitled "SPOOF DETECTION AND REJECTION," the entire contents of which are incorporated herein by reference for all purposes.

[0002] (Field) The present disclosure relates to global navigation satellite system (GNSS) devices, and more particularly to determining accurate positioning using GNSS devices when false signals are received. [Background technology]

[0003] (background) Navigation receivers that use global navigation satellite systems, such as GPS or GLONASS (hereinafter collectively referred to as "GNSS"), enable highly accurate determination of the receiver's position. However, accuracy can be compromised when position is determined based on spoofed satellite signals, resulting in an incorrect location in position and, in some cases, time. Summary of the Invention [Means for solving the problem]

[0004] (summary)

[0010] Various embodiments for implementing spoofing detection and thwarting are described below. In some embodiments, a method for detecting and thwarting spoofing signals includes receiving a set of signals at a Global Navigation Satellite System (GNSS) device having an antenna, identifying a suspicious signal within the set of signals, and calculating an approximate position of the GNSS device based on the subset of valid GNSS satellite signals pursuant to a determination that the set of signals includes a subset of valid GNSS satellite signals, the subset meeting a minimum number of valid GNSS satellite signals and including no suspicious signals.

[0005] Various implementations of this embodiment are considered. In some implementations, the method includes determining whether the suspicious signal is enabled based on the coarse location and calculating a fine location of the GNSS device based on the enabled signal. In some implementations, the minimum number of valid GNSS satellite signals is four valid GNSS satellite signals. In some implementations, the method includes, in accordance with determining that the set of signals does not include a subset of valid GNSS satellite signals, issuing an alert that a spoofed signal has been detected and providing guidance for navigating out of the spoofed area where spoofing has been detected.

[0006] In some embodiments, identifying a suspicious signal includes identifying a signal having more than one peak, identifying a signal that should not be received by the GNSS device based on almanac data, identifying a signal having a signal-to-noise ratio (SNR) that exceeds a maximum SNR or is inconsistent with other detected SNRs, identifying a signal among multiple signals having similar SNRs, where the multiple signals are associated with different pseudorandom noise (PRN) codes, identifying signals associated with satellites that do not generate a complete multi-frequency signal, identifying a signal that is a C / A code signal, and / or identifying a signal that has a signal power that exceeds a maximum signal power or a threshold background noise level.

[0007] In some embodiments, the method includes determining a direction of a source of the suspicious signals by detecting a direction in which GNSS satellite signal energy reaches a minimum level. In some embodiments, where a set of signals is received at the GNSS device via the antenna while the antenna is in a first orientation, the method includes receiving a second set of signals at the GNSS device via the antenna while the antenna is in a second orientation different from the first orientation, and determining a direction of a source of the suspicious signals based on the set of signals and the second set of signals.

[0008] Further, in some embodiments, the GNSS device includes a plurality of channels for receiving a plurality of signals from a plurality of satellites, and the method includes, for each satellite of the plurality of satellites, assigning a plurality of channels from the plurality of channels to the satellite using a PRN code associated with the satellite, and receiving a set of signals on the plurality of channels, each signal of the set of signals including a PRN code associated with its source satellite. In some embodiments, the subset of valid GNSS signals includes signals received from at least one of GPS, Galileo, GLONASS, BeiDou, QZSS, SBAS, and IRNSS navigation systems. In some embodiments, the method includes receiving a manually input approximate location at a user input device associated with the GNSS device, and determining whether the set of signals includes a spoof signal based on the manually input approximate location.

[0009] In some embodiments, a computer-readable storage medium stores one or more programs that include instructions that, when executed by a GNSS device having an antenna, cause the device to perform any of the methods described herein.

[0010] In some embodiments, the GNSS device includes an antenna, one or more processors, a memory, and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing any of the methods described herein.

[0011] In some embodiments, a GNSS device includes means for performing any of the methods described herein.

[0012] In some embodiments, systems and methods include receiving a set of signals at a Global Navigation Satellite System (GNSS) device having an antenna and determining whether the set of signals includes a suspicious signal, where the determination is based on one or more of the following attributes: (a) the signal contains more than one correlation peak; (b) the signal is not supposed to be received based on almanac data; (c) the signal exceeds a predetermined signal-to-noise ratio; (d) the signal exceeds a predetermined signal power; or (e) the signal exceeds a predetermined noise level; and outputting an indication at the GNSS device that a suspicious signal has been received in accordance with the determination that the set of signals includes a suspicious signal. The present invention provides, for example, the following. (Item 1) 1. A method for detecting and blocking spoofed signals, comprising: receiving a set of signals at a Global Navigation Satellite System (GNSS) device having an antenna; identifying a suspect signal within the set of signals; pursuant to a determination that the set of signals includes a subset of valid GNSS satellite signals, the subset meeting a minimum number of valid GNSS satellite signals and not including the suspect signals, calculating an approximate position of the GNSS device based on the subset of valid GNSS satellite signals; A method comprising: (Item 2) determining whether the suspect signal is validated based on the approximate location; calculating a precise position of the GNSS device based on the enabled signals; Item 1, the method of claim 1 further comprising: (Item 3) 3. The method of any of items 1-2, further comprising: the minimum number of valid GNSS satellite signals is four valid GNSS satellite signals. (Item 4) in response to a determination that the set of signals does not include the subset of valid GNSS satellite signals; issuing an alert that a spoofed signal has been detected; and providing guidance for navigating out of a spoofed area where said spoofing is detected; and 4. The method according to any one of items 1 to 3, further comprising: (Item 5) 5. The method of any of items 1-4, further comprising identifying a signal having more than one peak. (Item 6) 6. The method of any of items 1-5, further comprising identifying a suspicious signal based on almanac data, the suspicious signal being a signal that should not be received by the GNSS device. (Item 7) 7. The method of any of items 1-6, further comprising identifying a signal having a signal-to-noise ratio (SNR) that exceeds a maximum SNR or is inconsistent with other detected SNRs. (Item 8) 8. The method of any of items 1-7, further comprising identifying the suspect signal among a plurality of signals having similar SNRs, the plurality of signals being associated with different pseudorandom noise (PRN) codes. (Item 9) 9. The method of any of items 1-8, further comprising identifying a signal associated with a satellite that does not generate a complete multi-frequency signal. (Item 10) 10. The method of any of items 1-9, further comprising identifying a signal that is a C / A code signal. (Item 11) 11. The method of any of items 1-10, further comprising identifying a signal having a maximum signal power or a signal power that exceeds a threshold background noise level. (Item 12) 12. The method of any of items 1-11, further comprising determining the direction of the source of the suspicious signal by detecting the direction in which GNSS satellite signal energy reaches a minimum level. (Item 13) Furthermore, the set of signals is received at the GNSS device via the antenna while the antenna is in a first orientation, and the method further comprises: receiving a second set of signals at the GNSS device via the antenna while the antenna is in a second orientation different from the first orientation; determining a direction of a source of the suspect signals based on the set of signals and the second set of signals; Item 13. The method according to item 12, comprising: (Item 14) Additionally, the GNSS device includes multiple channels for receiving multiple signals from multiple satellites, and the method further comprises: assigning, for each satellite of the plurality of satellites, a plurality of channels from the plurality of channels to the satellite using a PRN code associated with the satellite; receiving the set of signals on the plurality of channels, each signal of the set of signals including the PRN code associated with its source satellite; 14. The method according to any one of items 1 to 13, comprising: (Item 15) 15. The method of any of items 1-14, further comprising: the subset of valid GNSS signals including signals received from at least one of GPS, Galileo, GLONASS, BeiDou, QZSS, SBAS, and IRNSS navigation systems. (Item 16) receiving a manually input approximate location at a user input device associated with the GNSS device; determining whether the set of signals includes a spoof signal based on the manually entered approximate location; 16. The method of any of items 1-15, further comprising: (Item 17) 17. A computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by a GNSS device having an antenna, cause the device to perform any of the methods described in items 1-16. (Item 18) 1. A GNSS device, comprising: The antenna and one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing any of the methods described in items 1-16; 1. A GNSS device comprising: (Item 19) 17. A GNSS device comprising means for performing any of the methods described in items 1-16. (Item 20) 1. A method for identifying a spoofed signal, comprising: receiving a set of signals at a Global Navigation Satellite System (GNSS) device having an antenna; determining whether the set of signals includes a suspicious signal, said determination being based on one or more of the following attributes: (a) the signal contains more than one correlation peak; (b) the signal is not supposed to be received based on almanac data; (c) the signal exceeds a predetermined signal-to-noise ratio; (d) the signal exceeds a predetermined signal power; or (e) the signal exceeds a predetermined noise level; In response to determining that the set of signals includes a suspicious signal, outputting, at the GNSS device, an indication that the suspicious signal was received. A method comprising:

[0013] The present application can be best understood by reference to the figures described below taken in conjunction with the accompanying drawings, in which like parts may be referenced by like numerals. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 1 illustrates an exemplary GNSS antenna, receiver, and computing system that may be used to implement various embodiments of the present invention.

[0015] [Figure 2] FIG. 2 illustrates another exemplary computing system that can be used to implement various embodiments of the invention.

[0016] [Figure 3A] FIG. 3A illustrates an exemplary user interface indicating that no spoofing signals have been detected at a GNSS device, according to various embodiments of the present invention.

[0017] [Figure 3B] FIG. 3B illustrates an exemplary user interface indicating that a spoofing signal has been detected at a GNSS device, according to various embodiments of the present invention.

[0018] [Figure 3C] FIG. 3C illustrates another example user interface indicating that a spoofing signal has been detected at a GNSS device, according to various embodiments of the present invention.

[0019] [Figure 3D] FIG. 3D illustrates an exemplary user interface providing details of tracked satellite signals, including spoof signals, according to various embodiments of the present invention.

[0020] [Figure 3E] FIG. 3E illustrates an exemplary user interface showing the spectrum of a received signal that is a spoof signal, according to various embodiments of the present invention.

[0021] [Figure 4] FIG. 4 illustrates an exemplary graph in which a second spoofer correlation peak is detected, according to various embodiments of the present invention.

[0022] [Figure 5A] FIG. 5A illustrates an example of a user operating a GNSS device to determine the direction of a spoofer, according to various embodiments of the present invention.

[0023] [Figure 5B] FIG. 5B illustrates an exemplary user interface showing the determined direction of a spoofer, according to various embodiments of the present invention.

[0024] [Figure 6] FIG. 6 illustrates an exemplary process for detecting and blocking spoofed signals according to various embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0025] (Detailed explanation) The following description is presented to enable those skilled in the art to make and use various embodiments. Descriptions of specific devices, techniques, and applications are provided only as examples. Various modifications of the examples described herein will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the technology as claimed. Accordingly, various embodiments are not intended to be limited to the examples described and shown herein, but are to be accorded scope consistent with the claims.

[0026] Global navigation satellite system ("GNSS") devices can be fooled into providing erroneous location or time solutions when a false GNSS-like "spoofing" signal (also referred to herein as a "spoofed" or "spoofer" signal) is received. For example, when a spoofed signal is received at a GNSS device that is unaware that a false signal has been received, the device may proceed to use the false signal in calculating its position and time. However, the position and time derived from the false signal will be inaccurate and often erroneous.

[0027] The present disclosure is intended to address such problems and provide related advantages. Specifically, the present disclosure provides systems and methods for performing spoofing detection and prevention. In some embodiments, the systems and methods described herein detect spoofing signals and issue alarms or other warnings alerting the presence of a spoofing signal. In some embodiments, the systems and methods described herein determine the direction from which the spoofing signal originates.

[0028] By way of example only, spoofer systems (hereinafter also referred to as "spoofers") that broadcast false signals use three common methods. In one method, a spoofer broadcasts a fake GNSS-like signal that provides erroneous ranging information that, when used by a GNSS device, produces incorrect position and time solutions. In some cases, the spoofing method tricks a GNSS device into ignoring the correlation peaks of genuine satellite signals and using the correlation peaks of a spoofer signal. As discussed further below, the systems and methods for spoofing detection and prevention described herein defend against this attack. For example, the systems and methods described herein assign more than one channel to each satellite signal to receive and track each satellite signal's peaks, such as its genuine peak and any spoofer peaks, and exclude signals with more than one correlation peak from position and time calculations.

[0029] In another spoofing method, a spoofer broadcasts false signals for satellites that are below the horizon or that are not present in the spoofed area. Such signals may have only one correlation peak, which in this case may be the spoofer peak. As discussed further below, the systems and methods for spoofing detection and thwarting described herein defend against this method's attacks. For example, a GNSS device employing spoofing detection and thwarting downloads valid, certified almanac data from a known source (e.g., a known website) to obtain the status of satellites and their visibility before a mission. Such almanac data can be used over a period of several weeks and updated in the GNSS device as needed. The GNSS device can identify signals that should not be received according to the almanac data and exclude such signals from position and time calculations.

[0030] In yet another method, a spoofer covers the actual satellite signals of visible satellites with noise, and in some cases adds a false signal with more power on top of the noise and actual satellite signal. As discussed further below, the systems and methods for spoofing detection and prevention described herein defend against this attack by recognizing and / or flagging signals with unreasonable signal power and / or background noise. Such flagged signals are excluded from position and time calculations and / or subsequently verified as true or false signals based on known position and time prior to using any verified valid signals in determining precise position and time.

[0031] Turning now to FIG. 1 , FIG. 1 illustrates an exemplary global navigation satellite system (“GNSS”) receiver 100 that may be used within a GNSS device to implement spoofing detection and prevention in accordance with various embodiments and examples described herein. The GNSS receiver 100 may receive a GNSS signal 102, such as a GPS or GLONASS signal, via a GNSS antenna 101. The GNSS signal 102 may contain a coarse code and a fine code, which are two pseudo-noise (“PN”) code components present on orthogonal carrier components that may be used by the GNSS receiver 100 to determine the position of the GNSS receiver. For example, a typical GNSS signal 102 may include a carrier signal modulated by the two PN code components. The frequency of the carrier signal may be satellite-specific. Thus, each GNSS satellite may transmit a GNSS signal at a different frequency.

[0032] The GNSS receiver 100 may further include a low-noise amplifier 104, a reference oscillator 128, a frequency synthesizer 130, a downconverter 106, an automatic gain control (AGC) 109, and an analog-to-digital converter (ADC) 108. These components may perform amplification, filtering, frequency downconversion, and sampling. The reference oscillator 128 and the frequency synthesizer 130 may generate frequency signals for downconverting the GNSS signal 102 to baseband or an intermediate frequency, depending on the overall receiver frequency plan design and available electronic components. The ADC 108 may then convert the GNSS signal 102 to a digital signal by sampling multiple repetitions of the GNSS signal 102.

[0033] GNSS receiver 100 may further include multiple GNSS channels, such as channels 112 and 114. It should be understood that any number of channels may be provided for receiving and demodulating GNSS signals 102 from any number of satellites. GNSS channels 112 and 114 may each include a demodulator for demodulating the GNSS PN code contained within ADC signal 109, a PN code reference generator, a numerically controlled oscillator (code NCO) for driving the PN code generator and a carrier frequency demodulator (e.g., a phase detector of a phase-locked loop—PLL), and a numerically controlled oscillator for forming a reference carrier frequency and phase (carrier NCO). In one embodiment, the numerically controlled oscillators (code NCOs) of channels 112 and 114 may receive a code frequency / phase control signal 158 as an input. Additionally, the numerically controlled oscillators (carrier NCOs) of channels 112 and 114 may receive a carrier frequency / phase control signal 159 as an input.

[0034] In one embodiment, the processing circuitry for the GNSS channels may reside within an application specific integrated circuit ("ASIC") chip 110. Once the corresponding frequency is detected, the appropriate GNSS channel may use the embedded PN code to determine the receiver's distance from the satellite. This information may be provided by GNSS channels 112 and 114 through channel output vectors 113 and 115, respectively. Channel output vectors 113 and 115 may each contain four signals forming two vectors: in-phase I and quadrature Q, which are averaged signals of the phase loop discriminator (demodulator) outputs, and in-phase dI and quadrature dQ, which are averaged signals of the code loop discriminator (demodulator) outputs.

[0035] In some embodiments, a computing system 150 may be coupled to receive position information (e.g., in the form of channel output vectors 113 and 115 or any other representation of position) from the GNSS receiver 100. The computing system 150 may include processor-executable instructions stored in the memory 140 for performing spoof detection and prevention (e.g., for implementing the process 600 of FIG. 6 ). The instructions may be executable by one or more processors, such as the CPU 152. However, those skilled in the art will also recognize how to implement the present techniques using other computer systems or architectures. The CPU 152 may be implemented using, for example, a general-purpose or special-purpose processing engine, such as a microprocessor, microcontroller, or other control logic. In this embodiment, the CPU 152 is connected to the bus 142 or other communication medium.

[0036] Memory 140 may include a read-only memory (“ROM”) or other static storage device coupled to bus 142 for storing static information and instructions for CPU 152. Memory 140 may also include a random access memory (RAM) or other dynamic memory for storing information and instructions to be executed by CPU 152. Memory 140 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by CPU 152.

[0037] Computing system 150 may further include an information storage device 144 coupled to bus 142. The information storage device may include, for example, a media drive (not shown) and a removable storage interface (not shown). The media drive may include a drive or other mechanism for supporting fixed or removable storage media, such as a hard disk drive, a floppy disk drive, a magnetic tape drive, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive. The storage medium may include, for example, a hard disk, a floppy disk, a magnetic tape, an optical disk, a CD or DVD, or other fixed or removable media that is read by and written to by the media drive. As these embodiments illustrate, the storage medium may include a non-transitory computer-readable storage medium having specific computer software or data stored therein.

[0038] In other embodiments, information storage device 144 may include other similar means for allowing computer programs or other instructions or data to be loaded into computing system 150. Such means may include, for example, removable storage units (not shown) and interfaces (not shown), such as program cartridges and cartridge interfaces, removable memory (e.g., flash memory or other removable memory modules) and memory slots, and other removable storage units and interfaces that allow software and data to be transferred from removable storage units to computing system 150.

[0039] Computing system 150 may further include a communications interface 146. Communications interface 146 may be used to allow software and data to be transferred between computing system 150 and external devices. Examples of communications interface 146 may include a modem, a network interface (such as an Ethernet or other NIC card), a communications port (such as a USB port), a PCMCIA slot and card, etc. Software and data are transferred via communications interface 146. Some examples of communications interface 146 include a phone line, a cellular phone link, an RF link, a network interface, a local or wide area network, and other communications channels.

[0040] In some examples, the GNSS antenna 101, the GNSS receiver 100, and the computing system 150 may be included in a handheld GNSS device similar to or the same as that described in U.S. patent application Ser. No. 12 / 871,705, filed Aug. 30, 2010, issued as U.S. Patent No. 8,125,376, and assigned to the assignee of the present application (herein incorporated by reference in its entirety for all purposes). For example, the handheld GNSS device may include a display, an orientation sensor, a distance sensor, a camera, a compass, and the like, coupled to the GNSS receiver 100 and / or the computing system 150. In some examples, the GNSS device includes other sensors or detectors, such as an altimeter, a compass, and / or a gyroscope (not shown).

[0041] FIG. 2 illustrates another exemplary computing system 200 that may be employed to implement processing functionality for various aspects of the present technology (e.g., as a GNSS device, a GNSS receiver 100, a microprocessor 132, a computing system 150, a CPU 152, activity data logic / database, combinations thereof, and the like). In some embodiments, the computing system 200 may be the same as or similar to the computing system 150 of FIG. 1 and may be used in addition to and / or in place of the exemplary components of the GNSS device of FIG. 1. Those skilled in the art will also recognize how to implement the present technology using other computer systems or architectures. The computing system 200 may represent, for example, a user device such as a desktop, a mobile phone, a geodesic device, or the like, as may be desirable or appropriate for a given application or environment. The computing system 200 may include one or more processors, such as a processor 204. The processor 204 may be implemented using, for example, a general-purpose or special-purpose processing engine, such as a microprocessor, a microcontroller, or other control logic. In this embodiment, the processor 204 is connected to a bus 202 or other communication medium.

[0042] Computing system 200 may also include a main memory 208, such as a random access memory (RAM) or other dynamic memory, for storing information and instructions to be executed by processor 204. Main memory 208 may also be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 204. Computing system 200 may also include a read-only memory ("ROM") or other static storage device coupled to bus 202 for storing static information and instructions for processor 204.

[0043] Computing system 200 may also include information storage mechanism 210, which may include, for example, media drive 212 and removable storage interface 220. Media drive 212 may include a drive or other mechanism for supporting fixed or removable storage media, such as a hard disk drive, floppy disk drive, magnetic tape drive, optical disk drive, CD or DVD drive (R or RW), or other removable or fixed media drive. Storage medium 218 may include, for example, a hard disk, floppy disk, magnetic tape, optical disk, CD or DVD, or other fixed or removable media that is read by and written to by media drive 214. As these embodiments illustrate, storage medium 218 may include a computer-readable storage medium having specific computer software or data stored therein.

[0044] In alternative embodiments, information storage mechanism 210 may include other similar means for allowing computer programs or other instructions or data to be loaded into computing system 200. Such means may include, for example, removable storage units 222 and interfaces 220, such as program cartridges and cartridge interfaces, removable memory (e.g., flash memory or other removable memory modules) and memory slots, and other removable storage units 222 and interfaces 220 that allow software and data to be transferred from removable storage unit 218 to computing system 200.

[0045] Computing system 200 may also include a communications interface 224. Communications interface 224 may be used to allow software and data to be transferred between computing system 200 and external devices. Examples of communications interface 224 may include a modem, a network interface (such as an Ethernet or other NIC card), a communications port (such as a USB port), a PCMCIA slot and card, etc. The software and data transferred via communications interface 224 are in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 224. These signals are provided to communications interface 224 via channel 228. This channel 228 may carry signals and may be implemented using a wireless medium, wire or cable, optical fiber, or other communications medium. Some examples of a channel include a telephone line, a cellular phone link, an RF link, a network interface, a local or wide area network, and other communications channels.

[0046] In this document, the terms “computer program product” and “computer-readable storage medium” may be used generally to refer to media such as, for example, memory 208, storage device 218, or storage unit 222. These and other forms of computer-readable media may be involved in providing one or more sequences of one or more instructions to processor 204 for execution. Such instructions (which may be grouped in the form of a computer program or other grouping), generally referred to as “computer program code,” when executed, enable computing system 200 to perform features or functionality of embodiments of the present technology.

[0047] In embodiments in which elements are implemented using software, the software may be stored in a computer-readable medium and loaded into computing system 200, for example using removable storage drive 214, drive 212, or communications interface 224. The control logic (in this example, software instructions or computer program code), when executed by processor 204, causes processor 204 to perform the functions of the techniques as described herein.

[0048] 3A-3E, examples of various user interfaces provided by a GNSS device employing spoofing detection and prevention are illustrated. Such user interfaces may be provided on a display (e.g., a touchscreen) on the GNSS device and / or on an external display in operative communication with the GNSS device. As described below, in some examples, the user interface provided by the GNSS device displays information related to received satellite signals and indicates to the user in real time and / or near real time when a spoofing signal is detected. An advantage of indicating to the user when a spoofer is detected is that the GNSS device may notify the user of a potentially false location and time solution, warn the user about a change in the device's operating mode (e.g., from satellite-based navigation to other sensor type-based navigation), prompt further user input regarding the altered operating mode of the device (e.g., determining the direction or source of the spoofer), and / or guide the user to use other sensors, such as a compass and altimeter, for navigation (e.g., to navigate out of the spoofed area).

[0049] The exemplary user interfaces in Figures 3A-3C provide tables displaying information about satellite signals received and measured at a GNSS device. Figure 3A illustrates an exemplary user interface indicating that no spoofing signals are received or otherwise detected at the GNSS device. Specifically, the user interface in Figure 3A shows signals received from five navigation systems: GPS, GLONASS, Galileo, BeiDou, and QZSS. The user interface also shows almanac data about the satellites. For example, according to the almanac data, eight GPS satellites, nine GLONASS satellites, three Galileo satellites, seven BeiDou satellites, and one QZSS satellite were (or should be) visible at the time. Furthermore, the user interface table shows the satellite signals received and tracked by the GNSS device. For example, the first row in the user interface indicates that from the GPS satellites, eight C / A signals were tracked while the noise level was 2% within the C / A band (e.g., frequency band), six P1 signals were tracked while the noise level was 0% within the P1 band, six P2 signals were tracked while the noise level was 0% within the P2 band, six 2C signals were tracked while the noise level was 0% within the 2C band, and two L5 signals were tracked while the noise level was 2% within the L5 band.

[0050] It should be understood that other inputs in the user interface in FIG. 3A may be interpreted in a similar manner. Simply by way of further example, the user interface in FIG. 3A indicates that, for Galileo satellites, three E1 signals were tracked while the noise level was 0% in the E1 band, three 5B signals were tracked while the noise level was 23% in the 5B band, and three 5A signals were tracked while the noise level was 2% in the 5A band. The user interface may indicate, flag, alarm, or otherwise alert when a high noise level is detected, such as when the detected noise level for a signal exceeds a maximum noise level. For example, in FIG. 3A , the user interface highlights that three Galileo 5B signals were detected while a high 23% noise level was detected in the 5B band.

[0051] Unlike FIG. 3A described above, FIGS. 3B-3C illustrate example user interfaces that indicate, warn, or otherwise alarm that spoofed signals have been received or otherwise detected in a GNSS device. For example, in FIG. 3B, the user interface indicates that nine GPS satellites were visible according to almanac data, six GPS C / A signals were tracked while the noise level was 2% within the C / A band, but five of those six GPS C / A signals were spoofed signals. Such spoofed signals are detected according to methods described herein, for example, in process 600 in FIG. 6 below. The number of spoofed signals received within each band can be indicated by different display formats, such as different color fonts (e.g., red bold font compared to black regular font for other information). In FIG. 3B, a numeric format legend is displayed to indicate the tracking format versus the spoofed display format. It is further noted that the user interface in FIG. 3B highlights that a high noise level of 24% was detected within the 5B Galileo band when four 5B Galileo signals were received.

[0052] 3C shows another example of a user interface indicating that spoofed signals have been received at a GNSS device. For example, in FIG. 3C, the user interface indicates that 10 GPS satellites were visible according to almanac data, 9 GPS C / A signals were tracked while the noise level was 0% within the C / A band, but 6 of those 9 GPS C / A signals were spoofed signals. Here, the number of spoofed signals (e.g., "6") is indicated by a different display format (e.g., red bold font) than the number of received signals (e.g., "9" shown in black regular font).

[0053] Turning to FIG. 3D , another exemplary user interface is illustrated that provides further details of tracked satellite signals. For example, the user interface in FIG. 3D provides a chart showing details of various GPS satellite signals. Specifically, the first six rows of the chart show details about six spoofed GPS C / A signals (e.g., signals from satellites GPS3, GPS6, GPS9, GPS16, GPS22, and GPS23), with each spoofed signal indicated by an inline entry of “1” in column C1. The chart further shows characteristics of each peak for the six spoofed GPS C / A signals (e.g., in two-division columns with “SS,” “MIN,” “C1,” “SS,” “MAX,” and “C1”), with the second SS column indicating whether the second peak of the six spoofed signals is a consistent signal. As shown in FIG. 3D, six GPS satellites (e.g., GPS3, GPS6, GPS9, GPS16, GPS22, GPS23) were spoofed, but there was no indication of the noise level (e.g., "0%" shown inline for each spoofed signal) or the spectral shape and level at which the signals tracked from those spoofed satellites were spoofed signals (e.g., "11.0" shown inline for each spoofed signal).

[0054] 3E, another exemplary user interface provided by a GNSS device is illustrated to provide further details of the tracked signal. This user interface shows the spectrum of the received signal (e.g., a GPS L1 signal) in a graph with frequency on the x-axis and signal power on the y-axis. As discussed above with respect to at least FIG. 3D, there is no indication as to the spectral shape and level at which the tracked signal is a spoof signal.

[0055] Although the foregoing examples in Figures 3B-3E do not have any indication of spoofing in the noise level and spectral shape / level, the systems and methods described herein can detect spoof signals by tracking the peaks of each signal. For example, as further described below in Figure 4, when a tracked signal has more than one correlation peak, the tracked signal is determined to include a spoof signal. In some examples, the systems and methods described herein also detect spoof signals by monitoring noise and / or power levels. For example, when a tracked signal has an abnormally high noise and / or power level, the tracked signal is determined to include a spoof signal. Such a spoof signal may be generated when a spoofer's method includes covering a genuine satellite signal, adding a fake signal on top of the genuine satellite signal, producing only a single peak, and introducing a greater than 200% increase in noise level.

[0056] Turning to FIG. 4 , in some embodiments as discussed above, spoofing signals are detected by tracking peaks within each signal. Thus, when the GNSS device detects more than one reasonably consistent correlation peak for any PRN code, the GNSS device determines that a spoofer is present and identifies the spoofer signal. For example, FIG. 4 shows a graph with code chip distance on the x-axis and power on the y-axis. The graph illustrates that a spoofer signal is detected at the same frequency but at a different location or code chip distance. The spoofer signal has a peak at a different code chip distance than the peak corresponding to the genuine satellite signal. In some cases, the peak corresponding to the spoofer signal is identified based on the known location of other signals. In some embodiments, the code chip distance indicates the distance the code needs to be shifted to match the location of the GNSS device determined based on the other signals. Such code chip distances may indicate peaks that are genuine and / or spoofer peaks. In some embodiments, the GNSS device determines that two peaks exist for a PRN code (e.g., a satellite's unique pseudorandom noise code) and isolates and / or ignores the false peak (e.g., a spoofer signal peak).

[0057] The spoof detection and prevention described herein can be implemented on an OEM GNSS board in a GNSS device. By way of example only, the TRE-Quattro OEM board offered by Javad GNSS, Inc. offers a total of 864 channels, all-in-view on two antennas, GPS L1 / L2 / L2C / L5, Galileo E1 / E5A, E5B / AltBoc, GLONASS L1 / L2 / L3, BeiDou B1 / B2, QZSS L1 / L2 / L5, KFK WASS / EGNOS (SBAS), advanced multipath mitigation, fast acquisition channels, high-accuracy velocity measurements, and, in some cases, nearly unlimited altitude and velocity. In some embodiments, the board receives input from up to four antennas, which is equivalent to four receivers operating synchronously with a common oscillator and central processor to coordinate all communications and other activities. In some embodiments, the primary receiver, in conjunction with the base point, can perform long-range baseline RTK. The other three receivers, along with the primary receiver, can provide very fast and reliable orientation (attitude) solutions. The onboard power supply on the TRE-QUATTRO board can receive voltages between +6 and +40 volts and deliver clean, filtered voltages as needed. This eliminates the risk of power contamination (ripples) that can be generated when clean power is generated elsewhere and delivered to the board via cable. The exemplary TRE-QUATTRO board also includes drivers for four LEDs, an on / off button controller, and a function button controller. In addition, the board includes a large amount of flash for data storage. The CAN interface within the TRE-QUATTRO board is fully provisioned with all associated hardware and firmware. Note that other boards and GNSS devices may also be considered. In some cases, for example, for areas known to have a high volume of spoofing, it may be advisable to utilize a GNSS device with an OEM board offering more satellite systems and more signals rather than a GNSS device utilizing simple GPS C / A codes.

[0058] 5A-5B, in some embodiments, when a GNSS device detects the presence of a spoofer, the GNSS device provides an option to find the direction from which the spoofing signal is emanating. For example, as shown in FIG. 5A, a user 500 holding a GNSS device 502 (e.g., a TRIUMPH-LS) can hold the receiver and antenna horizontally while slowly rotating (e.g., one rotation per 30 seconds) in direction A so that the device 502 finds the direction in which satellite energy is minimal. A display screen 504 on the GNSS device 502 can display a user interface (e.g., user interface 502 in FIG. 5B) that shows a determined orientation in which the spoofer is behind the null point in the antenna receive pattern. For example, in FIG. 5B, after one or more full rotations, the GNSS device displays a user interface 510 that includes a graph showing the approximate orientation of the spoofer. In some embodiments, for example, if all signals from all satellites are determined to be spoofed, the GNSS device (e.g., device 502) warns the user to ignore the GNSS signals and use other sensors (e.g., compass, gyroscope, altimeter) to navigate out of the spoofed area. Additionally, in some embodiments, the GNSS device can quickly understand if spoofers are present and then prompt the user to input their approximate location, which can be used by the GNSS device to identify them.

[0059] 6 illustrates an example process 600 for performing spoof detection and prevention. In some embodiments, process 600 is performed by a GNSS device having a GNSS antenna, receiver, and computing system similar to or the same as GNSS antenna 101, receiver 100, and computing system 150 of FIG. 1 and / or computing system 200 of FIG. 2.

[0060] Process 600 includes receiving a set of signals at a GNSS device having an antenna, at block 602. By way of example only, the set of signals may be received in response to a user request at the GNSS device, periodically according to a predetermined timing, continuously during a mission and / or while the GNSS device is on, in response to a condition detected or determined at the GNSS device, and / or in response to a request from an external application or device associated with the GNSS device.

[0061] In some examples, the GNSS device includes multiple channels for receiving multiple signals from multiple satellites. In such cases, process 600 may include assigning more than one channel to each satellite such that all signals transmitted from each satellite are received and / or otherwise tracked by the GNSS device. For example, process 600 may include, for each satellite of the multiple satellites, assigning multiple channels to the satellite using at least a PRN code associated with the satellite, and receiving a set of signals (e.g., GNSS signals) on the multiple channels, whereby each signal of the set of signals includes a PRN code associated with its source satellite and is received on its assigned channel at the GNSS device. By way of example only, the GNSS device and / or, more specifically, its receiver, may include 864 tracking channels and over 130,000 fast acquisition channels on its chip (e.g., a TRIUMPH2® Chip). In some embodiments, a chip (eg, a TRIUMPH® Chip) includes 216 channels for tracking GNSS signals, accompanied by 110,000 conventional correlators.

[0062] Process 600 includes identifying suspicious signals (e.g., potential spoof signals) within the set of signals at block 604. In some embodiments, one or more signals are identified as suspicious signals by employing digital signal processing. Signals identified as suspicious signals can be flagged and / or included within a group of suspicious signals (e.g., a group of suspicious signals that is a subset of the set of signals received at the GNSS device) for subsequent analysis or validation.

[0063] In some embodiments, identifying a suspicious signal in block 606 includes identifying a signal having more than one peak. For example, process 600 may include tracking and correlating the peak of each received signal and identifying, for the received signal, whether a second peak is present. If at least two reasonable peaks are detected (e.g., insignificant peaks are ignored), one of the peaks is determined to be a spoofer correlation peak, and / or the signal is determined to be a spoofed or otherwise suspicious signal. By way of example only, a GNSS device includes 864 tracking channels and over 130,000 fast acquisition channels in its chip (e.g., a TRIUMPH2® Chip). In some embodiments, a chip (e.g., a TRIUMPH® Chip) includes 216 channels for tracking GNSS signals accompanied by 110,000 regular correlators. As discussed above, process 600 may include assigning more than one channel to each satellite signal and tracking all peaks of each satellite signal, including genuine and spoofer peaks. Process 600 may also filter out any signals with more than one correlation peak (e.g., for purposes of determining at least an initial or approximate position). A benefit of ignoring signals with multiple correlation peaks is that it prevents the use of erroneous ranging information (e.g., information corresponding to a spoofer correlation peak) to determine location and / or time, thereby reducing the risk of determining an incorrect position and / or time solution by the GNSS device. Note, however, that in some cases, a received signal may be determined to have only one reasonable peak, but as discussed further below, the received signal may be determined to be a spoof or otherwise suspicious signal when the signal is determined to emanate from an unknown or otherwise invalid satellite.

[0064] In some embodiments, identifying a suspicious signal in block 608 includes identifying a signal that should not be received by the GNSS device based on external data, such as almanac data. For example, in some embodiments, process 600 determines that a signal has been received that is not visible, not detected, or otherwise not supposed to be present, and proceeds to designate the signal as a suspicious signal. By way of example only, such a suspicious signal may indicate that a spoofer (e.g., a spoofing signal broadcasting system or radio) has broadcast a spoof signal for a satellite that is below the horizon or does not exist in the spoofed area. Note that in such cases, only one correlation peak may be present for the spoof signal. In some embodiments, process 600 includes downloading or otherwise accessing certified valid almanac data from an external data source and determining whether the received signal is a suspicious signal (e.g., not visible, not detected, or otherwise not supposed to be present) based on the almanac data. Such almanac data includes information about satellite visibility, time, and / or status over a time window and may expire or no longer be valid after a predetermined period of time (e.g., several weeks). In some embodiments, the almanac data is obtained prior to a mission utilizing the GNSS device. In some cases, the GNSS device obtains additional external data from various outside sources and utilizes such additional external data along with the almanac data in determining whether a signal is suspect. Furthermore, in some embodiments, the GNSS device automatically obtains external data periodically or when it detects that a network connection to an external data source is available. In some embodiments, the GNSS device obtains such data based on or in response to a user request input at the device.

[0065] In some embodiments, identifying a suspicious signal in block 610 includes identifying a signal that exceeds a maximum signal-to-noise ratio (SNR) or has an SNR that is inconsistent with other detected SNRs. For example, a received signal with an unreasonably high SNR may indicate the presence of a spoof signal that covers the actual GNSS signal of a visible satellite. A spoof signal may cover the actual GNSS signal with noise, which may be detected when the received signal exceeds the maximum SNR.

[0066] In some embodiments, identifying the suspect signal at block 612 includes identifying a signal belonging to a plurality of signals having similar SNRs, the plurality of signals being associated with different pseudorandom noise (PRN) codes. In some embodiments, the plurality of signals is determined to be a plurality of suspect signals.

[0067] In some embodiments, identifying the suspicious signal in block 614 includes identifying a signal associated with a satellite that does not generate a full multi-frequency signal. By way of example only, the satellite may have a different PRN code than expected and / or may otherwise represent a spoofed or fake satellite. For example, in some cases, a spoofer may generate only a C / A code signal.

[0068] In some embodiments, identifying suspicious signals in block 616 includes identifying signals that are C / A code signals. For example, process 600 may include initially ignoring C / A signals and / or any classification or type of signal typically generated by spoofer systems when calculating an initial approximate location.

[0069] In some embodiments, identifying the suspicious signal at block 618 includes identifying a signal having a signal power that exceeds a maximum signal power, such as an unreasonably high power level. In some embodiments, identifying the suspicious signal includes identifying a signal having a noise level that exceeds a threshold background noise level, such as a threshold low or high background noise level. By way of example only, exceeding the maximum signal power and / or maximum background noise level may occur when a spoofing signal covers the actual GNSS signal with added noise and / or power. Furthermore, in some embodiments, signal power that is too low (e.g., below a minimum power level) and / or below a threshold low background noise level may indicate an inconsistent or unexpected anomalous signal.

[0070] Still further, in some embodiments, a user can change or define characteristics or certain types of signals that should be flagged as suspicious signals. In some cases, such user definitions can be applied generally at the GNSS device or associated with a specific mission, location, time and date, user profile, battery or power level, etc. Such user definitions can be received at the GNSS device via a user input device and / or at a computing system in operative communication with the device.

[0071] Process 600 includes, at block 620, calculating an approximate position of the GNSS device based on the subset of valid GNSS satellite signals in accordance with a determination that the set of signals includes a subset of valid GNSS satellite signals, the subset meets a minimum number of valid GNSS satellite signals, and does not include any suspect signals. For example, in some embodiments, process 600 includes ignoring or otherwise removing any identified suspect signals from the set of signals and calculating an initial approximate position using only the valid signals. The calculated approximate position may include approximate latitude, longitude, altitude, speed, accuracy, and / or time of the GNSS device.

[0072] In some embodiments, the process 600 includes determining whether the set of signals includes at least a minimum number of valid GNSS satellite signals. Calculating the initial approximate location may be based on all valid signals and / or some valid signals in the set of signals. In some cases, the valid signals are ranked (e.g., based on time of arrival, strongest to weakest signal, type of signal or satellite), and the approximate location is determined based on the highest-ranked valid signal. In some embodiments, a user can specify the number of signals used to calculate the approximate location, the signals, satellites, and / or other factors used to calculate the approximate location. In some embodiments, the battery power level of the GNSS device and / or the signal strength of the signals determine, at least in part, the valid signals utilized in calculating the approximate location.

[0073] In some embodiments, the minimum number of valid GNSS satellite signals is four valid signals. The minimum number of valid GNSS satellite signals may correspond to the minimum number of signals required to calculate an approximate position. In some embodiments, the minimum number of signals varies based on the combination of satellite signals being used for navigation and / or the calculation being determined (e.g., address, city, latitude, longitude, altitude, speed, accuracy, and / or time). In some embodiments, each signal determined to be a valid signal has only one reasonable or otherwise expected peak, which may be determined using digital signal processing. In some cases, the valid GNSS signals (e.g., a subset of the received valid GNSS signals) include signals received from one or more valid navigation systems known to the GNSS device, such as GPS (e.g., L1, L2, L2P, L2C, L5), Galileo (e.g., E1, E5A, E5B, AltBoc), GLONASS (e.g., L1, L2, L3), BeiDou (e.g., B1, B2), QZSS (e.g., L1, L2, L5), SBAS, IRNSS, WASS / EGNOS (SBAS) navigation systems, etc.

[0074] In some examples, process 600 includes, at block 622, determining whether the suspicious signal is enabled based on the approximate location and calculating a fine location of the GNSS device based on the enabled signal. For example, a GNSS device described herein may enable each identified suspicious signal by checking whether the suspicious signal matches a known location, such as an approximate location calculated based on valid signals and / or a manually entered known location. Suspicious signals that match a known location may be enabled, while suspicious signals that do not match a known location may be disabled or otherwise considered non-enabled or spoof signals and discarded. In some cases, following a determination that one or more suspicious signals are enabled, process 600 includes calculating a new or more precise location, such as recalculating the approximate location based on both valid and enabled signals, to determine a more precise location. The calculated fine location may include precise latitude, longitude, altitude, speed, accuracy, and / or time of the GNSS device.

[0075] In some examples, following a determination that no suspicious signals are validated, process 600 includes designating or otherwise referencing the initially calculated approximate location as the fine or true location. In some cases, the GNSS device indicates (e.g., via a display screen) that one or more spoofing signals have been detected and displays both the approximate location and the fine or true location.

[0076] In some examples, process 600 includes, in block 624, issuing a warning that a spoofer signal has been detected and / or providing guidance for navigating out of the spoofed area in which a spoofer is detected in accordance with a determination that the set of signals does not include a valid GNSS satellite signal. In some examples, the set of signals does not include a subset of valid GNSS satellite signals when all received signals are determined to be spoofed or otherwise suspicious and / or when there are not enough valid signals to meet the minimum number of valid GNSS signals to provide an approximate position. In some cases, the GNSS device issues a warning (e.g., visual, audible, and / or tactile) to ignore the set of GNSS signals (e.g., when all signals for all satellites are determined to be spoofed) and / or to use other sensors in the integrated GNSS system for navigation. In some cases, the GNSS device alters its operating mode. For example, in some instances, the GNSS device automatically activates other sensors (e.g., compass, gyroscope, altimeter) and employs data collected from the other sensors to provide guidance for navigating the user of the GNSS device out of the spoofed area. In some instances, such warnings are reported to other external systems in communication with the GNSS device. Furthermore, in some instances, the GNSS device changes its operational mode from providing navigation based on satellite signals to determining the source or direction of received spoofed signals and / or providing navigation based on other sensors.

[0077] In some examples, process 600 includes determining the direction of a source of a suspect signal by detecting the direction in which GNSS satellite signal energy reaches a minimum level. In some cases, a set of signals is received at the GNSS device via the antenna while the antenna is in a first orientation, a second set of signals is received via the antenna while the antenna is in a second orientation different from the first orientation, and the direction of the source of the suspect signal (and / or sources of multiple suspect signals) is determined based on the set of signals and the second set of signals. By way of example only, the GNSS device may instruct a user (e.g., via a display screen or an audible output) to hold the device (TRIUMPH-LS®), receiver, and / or antenna horizontal while slowly rotating it (e.g., approximately once every 30 seconds and / or as shown in FIG. 5A ). While rotating, the GNSS device may acquire multiple satellite signals received at multiple orientations during the rotation and, based on the received signals, determine and display the direction in which satellite energy reaches a minimum. The determined direction may indicate the orientation or direction in which the spoofer system is behind a null point in the detected antenna receive pattern (see, for example, FIG. 5B).

[0078] In some examples, the process 600 includes receiving a manually entered approximate location (e.g., address, city, latitude, longitude, altitude, speed, accuracy, and / or time) at a user input device (e.g., touchscreen, keypad, keyboard) associated with the GNSS device, and determining whether a set of signals includes spoofed or otherwise suspicious signals based on the manually entered approximate location. For example, in some challenging situations, a user may desire to quickly determine whether spoofers are present and then input their approximate locations in order to identify them and / or determine the direction of their source. In some examples, the GNSS device determines a precise location (e.g., precise address, city, latitude, longitude, altitude, speed, accuracy, and / or time) based on the manually entered approximate location and the received GNSS satellite signals.

[0079] Variations of the systems and methods described herein may be considered. For example, in some cases, a GNSS device may generate an alert (e.g., a real-time alert) once a signal identified as a spoof or suspicious signal is received. For example, in response to receiving a set of signals (e.g., GNSS satellite signals), the GNSS device may determine whether the set of signals includes a spoof or otherwise suspicious signal. Such spoof or generally suspicious signals are identified by the GNSS device according to any of the techniques described herein, such as by signal processing and / or comparison of characteristics of the signal to a database, such as a database of almanac data. As discussed in the examples above, a signal is identified as a spoof or suspicious signal when the signal contains more than one correlation peak (e.g., contains a spoofer correlation peak), the signal is not supposed to be present based on the almanac data (e.g., if the signal is associated with a source satellite that is not supposed to be detected based on the almanac data), the signal exceeds a predetermined signal-to-noise ratio (e.g., maximum SNR ratio), the signal exceeds a predetermined signal power (e.g., maximum signal power), the signal exceeds a predetermined noise level (e.g., threshold noise level), the signal is not a full multi-frequency signal (e.g., the signal is a C / A code signal), and / or the signal includes any combination of these attributes or other attributes discussed herein.

[0080] In response to determining that a spoofed or otherwise suspicious signal has been received, the GNSS device may output an indication that a false signal is present. For example, the GNSS device outputs a visual indication on its display screen, such as a user interface, indicating that a spoofed or suspicious signal has been received. In some cases, the user interface includes details about the received signal, such as a timestamp of when it was detected, the type or characteristics of the spoofed or suspicious signal, and / or an option for the user to select whether to change the device's operating mode (e.g., to another navigation or sensor mode, activate a mode to determine the direction of the spoofer). In some cases, the GNSS device outputs an audible and / or tactile indication when a spoofed or suspicious signal has been identified. For example, the GNSS device generates an audible warning sound for output at a speaker in the device or a vibration pattern for output through a tactile output generator in the device. Additionally, in some embodiments, the GNSS device generates an alert or message (e.g., a text message) transmitted to an external user device, such as a user's smartphone, that may display or otherwise output an indication that a spoofed or suspicious signal has been detected at the GNSS device. In some cases, in response to determining that the set of signals does not include any spoofed or suspicious signals, the GNSS device refrains from generating such an indication and / or proceeds with normal operation (e.g., calculating a position and / or time based on the set of signals). It should be noted that in any of the foregoing embodiments, the GNSS device may store information related to spoofed or suspicious signals received at the device in a database or log.

[0081] It is contemplated that the spoofing detection and prevention methods described herein, including identification of suspicious signals, determination of approximate and precise locations, and determination of the direction of spoofing signal emission, are determined in real time at the GNSS device while the signals are received and measured at the GNSS device. Note that post-processing techniques are also enabled. For example, received signals and / or results from signal processing analysis can be stored at the GNSS device (e.g., in any of memory 140, memory 208, storage device 210) and used for both real-time processing and post-processing.

[0082] Exemplary methods, non-transitory computer-readable storage media, systems, and electronic devices are described in the following sections, in example implementations.

[0083] Item 1. A method for detecting and blocking spoofed signals, comprising: receiving a set of signals at a Global Navigation Satellite System (GNSS) device having an antenna; identifying a suspect signal within a set of signals; pursuant to a determination that the set of signals includes a subset of valid GNSS satellite signals, the subset meeting a minimum number of valid GNSS satellite signals and not including any suspect signals, calculating an approximate position of the GNSS device based on the subset of valid GNSS satellite signals; A method comprising:

[0084] Item 2. Determining whether the suspect signal is activated based on the approximate location; and Calculating the precise position of the GNSS device based on the enabled signals; Item 1, the method of claim 1 further comprising:

[0085] Item 3. The method of any one of Items 1-2, further comprising: the minimum number of valid GNSS satellite signals is four valid GNSS satellite signals.

[0086] Item 4. Pursuant to a determination that the set of signals does not include a subset of valid GNSS satellite signals, issuing an alert that a spoofed signal has been detected; and Providing guidance for navigating out of spoofed areas where spoofing has been detected; and 4. The method according to any one of items 1 to 3, further comprising:

[0087] Item 5. The method of any of items 1-4, further comprising identifying a suspicious signal including identifying a signal having more than one peak.

[0088] Item 6. The method of any one of items 1-5, further comprising identifying a suspicious signal based on almanac data, the signal not being received by the GNSS device.

[0089] Item 7. The method of any of items 1-6, further comprising identifying a suspicious signal that exceeds a maximum signal-to-noise ratio (SNR) or has an SNR that is inconsistent with other detected SNRs.

[0090] Item 8. The method of any of items 1-7, further comprising identifying a signal among a plurality of signals having similar SNRs, the plurality of signals being associated with different pseudorandom noise (PRN) codes.

[0091] Item 9. The method of any of items 1-8, further comprising identifying a suspicious signal that includes identifying a signal associated with a satellite that does not generate a complete multi-frequency signal.

[0092] Item 10. The method of any one of Items 1-9, further comprising identifying a suspicious signal as being a C / A code signal.

[0093] Item 11. The method of any of items 1-10, further comprising identifying a suspicious signal by identifying a signal having a maximum signal power or a signal power that exceeds a threshold background noise level.

[0094] Item 12. The method of any of items 1-11, further comprising determining the direction of the source of the suspicious signal by detecting the direction in which the GNSS satellite signal energy reaches a minimum level.

[0095] Item 13. Further, the set of signals is received at the GNSS device via the antenna while the antenna is in a first orientation, and the method further includes: receiving a second set of signals at the GNSS device via the antenna while the antenna is in a second orientation different from the first orientation; determining a direction of a source of the suspect signal based on the set of signals and the second set of signals; Item 13. The method according to item 12, comprising:

[0096] Item 14. Further, the GNSS device includes a plurality of channels for receiving a plurality of signals from a plurality of satellites, and the method further includes: for each satellite of the plurality of satellites, assigning a plurality of channels from the plurality of channels to the satellite using a PRN code associated with the satellite; receiving a set of signals on a plurality of channels, each signal of the set of signals including a PRN code associated with its source satellite; 14. The method according to any one of items 1 to 13, comprising:

[0097] Item 15. The method of any of Items 1-14, further comprising: the subset of valid GNSS signals including signals received from at least one of GPS, Galileo, GLONASS, BeiDou, QZSS, SBAS, and IRNSS navigation systems.

[0098] Item 16. Receiving a manually input approximate location in a user input device associated with the GNSS device; determining whether the set of signals includes a spoof signal based on a manually entered approximate location; 16. The method of any of items 1-15, further comprising:

[0099] Item 17. A computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by a GNSS device having an antenna, cause the device to perform any of the methods described in items 1-16.

[0100] Item 18. A GNSS device, The antenna and one or more processors; Memory and one or more programs stored in memory and configured to be executed by one or more processors, the one or more programs including instructions for performing any of the methods described in items 1-16; 1. A GNSS device comprising:

[0101] Item 19. A GNSS device comprising means for implementing any of the methods described in items 1-16.

[0102] Item 20. A method for identifying a spoofed signal, comprising: receiving a set of signals at a Global Navigation Satellite System (GNSS) device having an antenna; determining whether the set of signals includes a suspect signal, the determination being based on one or more of the following attributes: (a) the signal contains more than one correlation peak; (b) the signal is not supposed to be received based on almanac data; (c) the signal exceeds a predetermined signal-to-noise ratio; (d) the signal exceeds a predetermined signal power; or (e) the signal exceeds a predetermined noise level; outputting, at the GNSS device, an indication that the suspicious signal has been received in accordance with determining that the set of signals includes the suspicious signal; A method comprising:

[0103] It should be understood that, for purposes of clarity, the above description has described embodiments in terms of different functional units and processors. However, it will be apparent that any suitable distribution of functionality between different functional units, processors, or domains may be used. For example, functionality illustrated as being performed by separate processors or controllers may be performed by the same processor or controller. References to specific functional units are therefore intended only as references to suitable means for providing the described functionality, rather than to indicate a strict logical or physical structure or organization.

[0104] Furthermore, although individually listed, a plurality of means, elements or method steps may be implemented by, for example, a single unit or processor. In addition, although individual features may be included in different claims, these may, in some cases, be advantageously combined, and the inclusion in different claims does not imply that a combination of features is not feasible or advantageous. Also, the inclusion of a feature in one category of claims does not imply limitation to this category; rather, the feature may be equally applicable to other claim categories, as appropriate.

[0105] Although features may be thought of as described in connection with particular embodiments, those skilled in the art will recognize that various features of the described embodiments may be combined. Moreover, aspects described in connection with one embodiment may be independent. Furthermore, the use of terms such as first, second, third, etc. do not necessarily denote any ordering or importance, but rather are used to distinguish one element from another.

Claims

1. A method for detecting and blocking spoofed signals, the method comprising: receiving a set of Global Navigation Satellite System (GNSS) signals from a plurality of satellites in a Global Navigation Satellite System (GNSS) device having an antenna; Detecting the spoofing signal by identifying a suspicious signal within the set of GNSS signals, the suspicious signal including a predetermined characteristic or being a predetermined signal type; determining that the set of GNSS signals includes a subset of valid GNSS satellite signals, the subset of valid GNSS satellite signals having a minimum number of valid GNSS satellite signals and not including the suspect signal; calculating an approximate position of the GNSS device based on the subset of available GNSS satellite signals; determining the direction of the source of the suspect signal by detecting the direction in which GNSS satellite signal energy reaches a minimum level; determining whether the suspect signal is validated based on the approximate location; calculating a precise position of the GNSS device based on the enabled signals; A method comprising:

2. The method described in claim 1, wherein the minimum number of valid GNSS satellite signals is four.

3. A method for detecting a spoofed signal and blocking said spoofed signal, said method comprising: receiving a set of Global Navigation Satellite System (GNSS) signals from a plurality of satellites in a Global Navigation Satellite System (GNSS) device having an antenna; Detecting the spoofing signal by identifying a suspicious signal within the set of GNSS signals, the suspicious signal including a predetermined characteristic or being a predetermined signal type; determining that the set of GNSS signals includes a subset of valid GNSS satellite signals, the subset of valid GNSS satellite signals having a minimum number of valid GNSS satellite signals and not including the suspect signal; calculating an approximate position of the GNSS device based on the subset of available GNSS satellite signals; determining the direction of the source of the suspect signal by detecting the direction in which GNSS satellite signal energy reaches a minimum level; in response to determining that the set of GNSS signals does not include the subset of valid GNSS satellite signals; issuing an alert that a spoofed signal has been detected; and providing guidance for navigating out of an area in which the spoofed signal is detected; and A method comprising:

4. 4. A computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by a GNSS device having an antenna, cause the GNSS device to perform the method of any of claims 1 to 3.

5. 1. A GNSS device, comprising: The antenna and one or more processors; Memory and One or more programs Equipped with The one or more programs are stored in the memory, the one or more programs are configured to be executed by the one or more processors, and the one or more programs include instructions for performing the method according to any one of claims 1 to 3.

6. A GNSS device comprising means for carrying out the method according to any one of claims 1 to 3.

Citation Information

Patent Citations

  • GNSS (global navigation satellite system) anti-spoofing loop tracking method based on inertial information aiding and parameter estimation

    CN106772455A

  • GPS deception detection method for electric patrol unmanned aerial vehicle

    CN107329151A

  • Spoof detection system for satellite positioning system

    JP2000512018A

  • Satellite navigation spoofing signal removal device and method of the same

    JP2013250271A

  • Global navigation satellite system (GNSS) navigation solution generating apparatus and method

    US20160223678A1