Patent Description:
Global navigation satellite systems (GNSS) are the backbones of positioning and navigation solutions. It has been estimated that the total number of GNSS receivers in the markets has exceeded <NUM> billion units by the end of <NUM>. A GNSS receiver (e.g. in the form of a chipset) can be found in every smartphone, smartwatch, new car, high-end drone etc. The volumes are still rapidly growing due to the GNSS integration into Internet of Things (IoT) devices.

It is commonly known that a standalone GNSS receiver does not work satisfactorily in urban areas and it also has certain fundamental bottlenecks in its performance that make it non-ideal e.g. for mass market devices and their use cases. GNSS was originally aimed for outdoor (and continuous signal reception) use only, hence the GNSS signals and the data link from the satellites to the receiver were not designed for weak signal conditions nor to the fastest possible time-to-first-fix. Also, the fact that the satellites are far in the space (at an altitude of <NUM>,<NUM>) and solar-powered means that no engineering effort will be enough to overcome the physical limitations related to limited transmission power and to the radio propagation loss. Solutions to improve the performance of GNSS receivers need to found on other technologies and radios.

Cellular operators and mobile phone manufactures started to develop GNSS assistance data services roughly <NUM> years ago, to find a solution for the mentioned GNSS performance gaps. It was discovered that the ranging signal transmitted from the satellites was still strong enough in urban environments to be received with the novel high-sensitivity GNSS receivers, but the navigation data interleaved with the ranging signals become too noisy and erroneous for successful demodulation. (Navigation data contains the satellite orbit and clock parameters among other constellation status info, which are essential for position calculation. ) Hence, a solution capable of capturing the satellite navigation data and transmitting that data via an alternative route to the receivers would drastically improve the performance and make GNSS acceptable even for emergency call positioning. As a result, assisted-GPS (later assisted-GNSS, A-GNSS) technology was created, standardized and adopted for commercial use. Today, all the GNSS receivers in the smartphones are A-GNSS receivers i.e. inherently combining GNSS and terrestrial systems into one positioning technology.

The GNSS family consists of several satellite constellations. The first and most widely used is the system developed and operated by the US Air Forces i.e. Navstar GPS, in short: GPS (global positioning system). GPS has been in operational use since <NUM>'s. The Russian counterpart from the Cold War era is GLONASS, which has now been modernized and offering performance equal to GPS. China is currently building up their own global system called Beidou and the EU is ramping up Galileo. In addition to these four global satellite constellations, there exist also regional augmentation systems (satellite based augmentation systems, SBAS) such as the Japanese quasi-zenith satellite system (QZSS) and multifunctional satellite augmentation system (MSAS), the US wide area augmentation system (WAAS), the European geostationary navigation overlay service (EGNOS), the Indian GPS aided geo augmented navigation (GAGAN) system and the Russian GLONASS system for differential correction and monitoring (SDCM).

GNSS constellations offer open service (OS) signals for the civilian and "unauthorized use", and regulated/military signals for the authority and military use, latter of which typically require a specific receiver or encryption keys to use these signals for positioning (even for reception). On the contrary, the structure and format of the OS signals are publicly known, as the interface control documents (ICD) describing the signals and data transmitted by the satellites are freely available. Also, the OS GNSS receivers are commercially available as modules, development kits etc. so it is relatively easy to get access to the GNSS signals and data, even to replicate the signals with perfect receiver compatibility. This "easiness" and openness has led to the development of numerous malicious devices which can be used to "spoof" the GNSS receivers in various ways: either to make them report false position and/or time, or even totally jam/block the performance. None of the existing GNSS systems have any means to authenticate the signals or data the satellites transmit, and hence efficiently avoid spoofing. The lack of signal/service authentication is a very serious risk for the location based services that use GNSS to validate the location of a device or a user e.g. for charging/transactions (road tolls, parking etc.). Especially, for the smartphone use cases this has been seen as one of the major problems.

Patent documents <CIT>, <CIT>, and <CIT> are relevant prior art.

An example embodiment of a method according to a first aspect of the invention comprises, performed by at least one device, obtaining a message, which includes at least one verification code, from an entity indicating to be a satellite navigation system receiver of a mobile device, the at least one verification code comprising at least one message authentication code for a given time instant or at least one secondary code derived from least one message authentication code for a given time instant, wherein message authentication codes are defined to authenticate navigation data for Galileo for a respective time instant. The method further comprises comparing the at least one obtained verification code with at least one available verification code known to be valid for the given time instant, wherein the entity is considered to be an authentic satellite navigation system receiver of a mobile device only, in case the at least one obtained verification code matches the at least one available verification code. The method further comprises enabling selected further actions only, if the entity is considered an authentic satellite navigation system receiver of a mobile device.

An example embodiment of a first system according to the first aspect of the invention comprises means for causing performance of the actions of any embodiment of the method presented for the first aspect. The means may be distributed to one or more devices.

The means of the system may be implemented in hardware and/or software. They may comprise for instance a processor for executing computer program code for realizing the required functions, a memory storing the program code, or both. Alternatively, they may comprise for instance circuitry that is designed to realize the required functions, for instance implemented in a chipset or a chip, like an integrated circuit.

An example embodiment of a second system according to the first aspect of the invention comprises at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause at least one device at least to perform the actions of any embodiment of the presented method according to the first aspect. The at least one processor and/or the at least one memory may belong to a single device, like a server, or be distributed to several devices.

Any of the described systems may comprise only the indicated components or one or more additional components, like a data interface or a data memory or a plurality of servers of a network of servers. Any of the described systems may be a device, be a part of a device or be composed of a plurality of devices.

An example embodiment of a method according to a second aspect of the invention comprises, performed by a mobile device with satellite navigation system receiver, generating at least one message authentication code for a given time instant based on at least one confidential seed key, wherein message authentication codes are defined to authenticate navigation data for Galileo for a respective time instant and wherein the at least one confidential seed key is embedded in the satellite navigation system receiver. The method further comprises assembling a message including at least one verification code, wherein the at least one verification code comprises the generated at least one message authentication code or at least one secondary code derived from the generated at least one message authentication code. The method further comprises causing a transmission of the assembled message to enable a receiving entity to authenticate the satellite navigation system receiver.

An example embodiment of a first apparatus according to the second aspect of the invention comprises means for causing performance of the actions of any embodiment of the method presented for the second aspect.

The means of the apparatus may be implemented in hardware and/or software. They may comprise for instance a processor for executing computer program code for realizing the required functions, a memory storing the program code, or both. Alternatively, they may comprise for instance circuitry that is designed to realize the required functions, for instance implemented in a chipset or a chip, like an integrated circuit.

An example embodiment of a second apparatus according to the second of the invention comprises at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause a device at least to perform the actions of any embodiment of the presented method according to the second aspect.

Any of the described apparatuses may comprise only the indicated components or one or more additional components, like a satellite navigation system receiver, a data interface, a user interface, etc..

Moreover an example embodiment of a non-transitory computer readable storage medium, in which computer program code is stored, is presented for the first and second aspect of the invention, respectively. In each case, the computer program code causes at least one device to perform the actions of any embodiment of the presented method of the first or second aspect of the invention when executed by at least one processor.

In either case, the computer readable storage medium may be for example a disk or a memory or the like. The computer program code may be stored in the computer readable storage medium in the form of instructions encoding the computer-readable storage medium. The computer readable storage medium may be intended for taking part in the operation of a device, like an internal or external hard disk of a computer or like an integrated or exchangeable memory card, or it may be intended for distribution of the program code, like an optical disc or memory stick or memory card.

It is to be understood that any embodiment of the computer program code by itself has to be considered an example embodiment of the invention according to the first or second aspect as well. The computer program code could also be distributed to several computer readable storage mediums.

In certain embodiments, any of the presented methods is an information providing method, and any of the presented first systems is an information providing system and any of the presented first apparatuses is an information providing apparatus. In certain embodiments, the means of the presented first system and/or of the first apparatus are processing means.

In certain embodiments, any of the presented methods is a method for supporting an authentication of a satellite navigation system receiver. In certain embodiments, any of the presented systems is a system for supporting an authentication of a satellite navigation system receiver. In certain embodiments, any of the presented apparatuses is an apparatus for supporting an authentication of a satellite navigation system receiver.

It is to be understood that any feature presented for a particular example embodiment may also be used in combination with any other described example embodiment of any category and any aspect.

Further, it is to be understood that the presentation of the invention in this section is merely exemplary and non-limiting.

Other features of the present invention will become apparent from the following detailed description considered in conjunction with the accompanying drawings. It is to be understood, however, that the drawings are designed solely for purposes of illustration and not as a definition of the limits of the invention, for which reference should be made to the appended claims. It should be further understood that the drawings are not drawn to scale and that they are merely intended to conceptually illustrate the structures and procedures described herein.

<FIG> is a schematic block diagram of an example embodiment of a system <NUM> according to the first aspect of the invention. System <NUM> comprises at least one processor <NUM> and, linked to the at least one processor <NUM>, at least one memory <NUM>. The at least one memory <NUM> stores computer program code for supporting authentication of satellite navigation system receivers. The computer program code may be example computer program code according to the first aspect of the invention, and the at least one memory <NUM> may be an example computer readable medium according to the first aspect of the invention. The at least one processor <NUM> is configured to execute computer program code stored in the at least one memory <NUM> in order to cause at least one device to perform desired actions.

System <NUM> may be a device, like a mobile device or a computer/server providing a service to various mobile devices, or it may be a combination of devices, like computers/servers in the Cloud. System <NUM> may equally be a module, like a chip, circuitry on a chip or a plug-in board, for a device. Processor <NUM> may be linked to various other, optional components of system <NUM>, for instance to a data memory <NUM> and/or to data interfaces <NUM>.

An example operation of system <NUM> will now be described with reference to the flow chart of <FIG>. The operation is an example embodiment of a method according to the first aspect of the invention. The at least one processor <NUM> and the program code stored in the at least one memory <NUM> cause at least one device to perform the operation when program code is retrieved from the at least one memory <NUM> and executed by the at least one processor <NUM>. It is to be understood that the at least one processor <NUM> may comprise or have access to at least one working memory for this purpose, for example in the form of a random access memory (not shown). The at least one device that is caused to perform the operation may be or belong to system <NUM>, or comprise system <NUM>.

The at least one device obtains a message, which includes at least one verification code, from an entity indicating to be a satellite navigation system receiver of a mobile device. The at least one verification code comprises at least one message authentication code for a given time instant or at least one secondary code derived from least one message authentication code for a given time instant, wherein message authentication codes are defined to authenticate navigation data for Galileo for a respective time instant. (action <NUM>) The indication that the entity is a satellite navigation system receiver may be an explicit or implicit indication. An implicit indication may be given for instance by a used type of message that is defined for use by satellite navigation system receivers, like an assistance data request message. The message authentication codes may be defined for instance to authenticate navigation data broadcast by Galileo satellites.

The at least one device compares the at least one obtained verification code with at least one available verification code known to be valid for the given time instant. The entity is considered to be an authentic satellite navigation system receiver of a mobile device only, in case the at least one obtained verification code matches the at least one available verification code. (action <NUM>) An authentic satellite navigation system receiver of a mobile device may be assumed to comprise at least one securely embedded confidential seed key as a basis for generating message authentication codes for given time instants.

The at least one device enables selected further actions only, if the entity is considered an authentic satellite navigation system receiver of a mobile device. (action <NUM>) The selected further actions may be in particular, though not exclusively, any actions that involve safety and/or reliability issues. Other actions, like generating an error message, may not be prevented. It is to be understood that optionally, further criteria may have to be met to enable the selected further actions. To provide just one example, it may be required in addition that the obtained message comprises a registered identifier.

<FIG> is a schematic block diagram of an example embodiment of an apparatus <NUM> according to the second aspect of the invention. Apparatus <NUM> comprises at least one processor <NUM> and, linked to the at least one processor <NUM>, at least one memory <NUM>. The at least one memory <NUM> stores computer program code for supporting an authentication of a satellite navigation system receiver. The computer program code may be example computer program code according to the second aspect of invention, and the at least one memory <NUM> may be an example computer readable medium according to the second aspect of the invention. The at least one processor <NUM> is configured to execute computer program code stored in the at least one memory <NUM> in order to cause a device to perform desired actions.

Apparatus <NUM> may be a device, like a handheld mobile user device or an IoT device. Apparatus <NUM> may equally be a module, like a chip, circuitry on a chip or an integrated circuit, for a device. It could also be or comprise for instance a satellite navigation system receiver. Processor <NUM> may be linked to various other, optional components of apparatus <NUM>, for instance to a data memory <NUM>, to data interfaces <NUM> and/or to a user interface.

An example operation of apparatus <NUM> will now be described with reference to the flow chart of <FIG>. The operation is an example embodiment of a method according to the second aspect of the invention. The at least one processor <NUM> and the program code stored in the at least one memory <NUM> cause a mobile device with satellite navigation system receiver to perform the operation when program code is retrieved from the at least one memory <NUM> and executed by the at least one processor <NUM>. The mobile device may correspond to the mobile device mentioned with reference to action <NUM> of <FIG>. It is to be understood that processor <NUM> may comprise or have access to a working memory for this purpose, for example in the form of a random access memory (not shown). The device that is caused to perform the operation may be or belong to apparatus <NUM>, or comprise apparatus <NUM>.

The device generates at least one message authentication code for a given time instant based on at least one confidential seed key, wherein message authentication codes are defined to authenticate navigation data for Galileo for a respective time instant and wherein the at least one confidential seed key is embedded in the satellite navigation system receiver. (action <NUM>) The seed key enables a generation of a message authentication code for any desired time instant. The seed key may be securely embedded in the satellite navigation system receiver in any way that renders a reading from outside of the satellite navigation system receiver at least difficult. The message authentication codes may be defined again for instance to authenticate navigation data broadcast by Galileo satellites.

The device assembles a message including at least one verification code. The at least one verification code comprises the generated at least one message authentication code or at least one secondary code derived from the generated at least one message authentication code. (action <NUM>).

The device causes a transmission of the assembled message to enable a receiving entity to authenticate the satellite navigation system receiver. (action <NUM>) The receiving entity may belong for instance to the at least one device performing the actions of <FIG>.

The European Galileo system is the youngest member in the GNSS family. The ICD specification and hence the signals/data have not yet been completely defined leaving an opportunity to introduce "add-on features" to the Galileo OS, even to the existing satellites in the constellation.

The European GNSS Agency (GSA) introduced in <NUM> a plan to add a method for Navigation Message Authentication (NMA) to the Galileo OS signals aka OS-NMA. The OS-NMA may be taken into testing use in late <NUM>/early <NUM> leading to a full operational implementation within few coming years. The exact details of the Galileo OS-NMA may be introduced in <NUM> in an updated version of Galileo OS ICD. Still, the main principles of the coming OS-NMA feature are already known:.

The invention is based on the consideration that A-GNSS services are typically serving any device with the required access credentials. There is no reliable method to verify whether the device is a device comprising a real GNSS receiver and not, for example, a bot mimicking a real GNSS receiver for malicious or harmful purposes.

Certain embodiments of the invention therefore provide that the planned mechanism for validating Galileo message authentication codes is used in addition for authenticating satellite navigation system receivers. The ability of a satellite navigation system receiver to create at least one valid message authentication code for any given time instant is an indication that the satellite navigation system receiver is a certified receiver, in which at least one seed key enabling a generation of message authentication codes is securely embedded. The at least one seed key may be granted to the receiver manufacturer and securely embedded e.g. into the firmware of the receiver. The satellite navigation system receiver may be for instance a Galileo receiver or a GNSS receiver supporting reception and processing of Galileo signals as well as signals of at least one other satellite navigation system. Certain functions, like transmitting sensitive data or processing received data, may be enabled only, if a satellite navigation system receiver has been authenticated.

While the key management policy or mechanism for the code creation has not yet been published by the GSA, it is to be understood that the generation and verification of Galileo message authentication codes for the approach according to the invention may be implemented for instance in compliance with any future standard relating to Galileo OS-NMA.

Certain embodiments of the invention may have the effect that the transmission and/or use of sensitive data may be rendered more secure. This may facilitate the use of A-GNSS for mass market devices, like IoT devices. Certain embodiments of the invention may have the effect that there is no need to define an additional authentication method, as the message authentication codes defined for Galileo may be used to authenticate GNSS receivers as well.

System <NUM> illustrated in <FIG> and the method illustrated in <FIG> as well as apparatus <NUM> illustrated in <FIG> and the method illustrated in <FIG> may be implemented and refined in various ways.

A message authentication code may be determined for instance using at least one function that receives at least a key and time information as input. For the purpose of authenticating a satellite navigation system receiver, the employed key may be a seed key. Other input may be used in addition, for instance at last one satellite identifier.

In an example embodiment of the first aspect, the further actions comprise providing a service to the satellite navigation system receiver. Such a service may comprise providing positioning assistance data to the satellite navigation system receiver and/or providing predicted positioning assistance data and associated future message authentication codes to the satellite navigation system receiver. This may have the effect that sensitive or otherwise restricted information may only be provided to certified satellite navigation system receivers or to mobile devices comprising a certified satellite navigation system receiver. Alternatively or in addition, the further actions comprise accepting location information of the entity included in the message to be authentic and/or transmitting information on the location of the at least one device to the satellite navigation system receiver. This may for instance have the effect that peer devices may only exchange / use location information if they all comprise a certified satellite navigation system receiver. It is to be understood that various other actions may be restricted as well.

The given time instant for which at least one verification code is provided/obtained may be selected in different ways. It may be selected for instance by the satellite navigation system receiver or the mobile device comprising the satellite navigation system receiver, and the selected time instant may be provided to the at least one device together with the verification code.

In an example embodiment of the first aspect, the at least one device causes transmission of the given time instant for which at least one verification code is desired to the entity of which the verification code is needed. Accordingly, in an example embodiment of the second aspect, the given time instant may be received in a message from the receiving entity. This may have the effect that individual "leaked" message authentication codes cannot be used to pretend that a satellite navigation system receiver is a trusted satellite navigation system receiver.

In an example embodiment of the first aspect, the at least one available verification code comprises at least one message authentication code extracted by the at least one device from a list of message authentication code received from an entity of a trusted source. Alternatively, it may comprise at least one secondary code derived by the at least one device from at least one message authentication code extracted by the at least one device from a list of message authentication code received from an entity of a trusted source. Alternatively, it may comprise at least one secondary code extracted by the at least one device from a list of message authentication code received from an entity of a trusted source. Alternatively, it may comprise at least one message authentication code generated by the at least one device based on at least one stored confidential seed key. Alternatively, it may comprise at least one secondary code derived by the at least one device from at least one message authentication code generated by the at least one device based on at least one stored confidential seed key. The at least one seed key may equally be provided by an entity of a trusted source. An entity of a trusted source may be for instance an entity creating message authentication codes for navigation data for Galileo. The trusted source may be for instance the GSA.

In an example embodiment, the obtained message of the first aspect and/or the assembled message of the second aspect, respectively, is a message comprising a positioning assistance data request; a handshaking message in the scope of assistance data service communication; a message designed for peer-to-peer communications between mobile devices comprising satellite navigation system receivers; a message designed for communications between a mobile device comprising a satellite navigation system receiver and a device offering a location based service; or an internal message within a mobile device comprising the satellite navigation system receiver.

<FIG> is a schematic block diagram of first example embodiment of a comprehensive system supporting an authentication of satellite navigation system receivers.

The system comprises a global monitoring network <NUM>, global assistance data servers <NUM>, at least one mobile device <NUM>, optionally a further mobile device <NUM>, and a GSA entity <NUM>. Satellites (or space vehicles SV) <NUM>, <NUM> of different satellite navigation systems broadcast satellite signals, which include navigation data.

The satellites include Galileo satellites <NUM> as well as - optionally - satellites <NUM> of at least one further satellite navigation system, including for instance GPS, GLONASS, Beidou and/or one or more other SBAS. Satellites of future satellite navigation systems may be included as well, once available.

The global monitoring network <NUM> comprises monitoring receivers that are configured to receive satellite signals from respectively visible satellites <NUM> and <NUM>. The monitoring receivers are configured to extract and forward navigation data and associated data from the signals. They may be distributed across the world.

The global assistance data servers <NUM> comprise a plurality of servers <NUM>, <NUM>, <NUM>, which are distributed across the world as well. Each of the servers is configured to receive data collected by the global monitoring network <NUM>, to assemble and provide information including GNSS assistance data and optionally further sensitive data upon request of mobile devices <NUM>, and to store at least one seed key for authenticating mobile devices <NUM>. Any of servers <NUM>-<NUM> by themselves or in combination may correspond to system <NUM> of <FIG> and include corresponding components. In this case, interfaces <NUM> may enable a data communication with the global monitoring network <NUM>, GSA entity <NUM> and mobile devices <NUM>, for instance via the Internet; and data memory <NUM> may enable storage of any data that is used for assembling assistance data. It is to be understood that the functions of the global assistance data servers <NUM> may also be performed in the cloud in a distributed manner. For instance, there could be a single server that is responsible for storing and applying the at least one seed key and that is configured to communicate exclusively with other servers of the global assistance data servers <NUM> in a secure manner.

The global monitoring network <NUM> is linked to the global assistance data servers <NUM>. The connections are safe and secured by VPN and encryption.

GSA entity <NUM> is configured to store at least one seed key for generating MACs. It may be configured to generate MACs for respective instances in time. It is linked to the global assistance data servers <NUM> via a safe connection as well.

Mobile device <NUM> may be any device that is configured to move around and that is expected to be able to determine its own position. It may be for instance a smartphone, a smart watch, a tablet PC, an IoT device or any other mobile device, including industrially used devices. Mobile device <NUM> may correspond to the apparatus <NUM> of <FIG> and include corresponding components. In this case, interfaces <NUM> may enable a data communication with the global assistance data servers <NUM> via a radio link that is used for accessing the Internet; and data memory <NUM> may enable storage of any data that is used for processing satellite signals and GNSS related data, including GNSS assistance data. Mobile device <NUM> comprises a GNSS receiver, which may include for instance at least processor <NUM> and memory <NUM> of <FIG>. The term GNSS receiver may relate to a single component or to an assembly of components, like a GNSS chipset. With the GNSS receiver, mobile device <NUM> is configured to receive signals from satellites <NUM>, <NUM> of different satellite navigation systems, including at least Galileo. A-GNSS service is an integral part of the GNSS receiver. It is a certified OS-NMA receiver and is configured to generated MAC codes for validating MAC codes received along with navigation data. It is configured to accept navigation data and MACs from other sources than direct satellite broadcasts, namely from an A-GNSS service, as well. This may be achieved by a minor software/firmware modification. The GNSS receiver comprises at least one seed key that has been securely embedded by the receiver manufacturer into the firmware of the GNSS receiver. In addition, the receiver manufacturer may have caused storage of at least one root key that has been derived from the at least one seed key in a memory. Mobile device <NUM> is configured to request, receive and process GNSS assistance data. Optionally, it may be configured to exchange location information with other mobile devices <NUM>. It is to be understood that the system may comprise a plurality of mobile devices <NUM>.

Optional mobile device <NUM> is configured to connect to mobile device <NUM>, using e.g. a direct wireless link or an indirect link via a mobile communication network. It equally comprises a GNSS receiver with at least one securely embedded seed key. It is configured to exchange location information with other mobile devices <NUM>.

The distribution of seed keys to servers <NUM>-<NUM> and to manufacturers of mobile devices <NUM> is controlled and managed by a trusted party, e.g. GSA.

<FIG> is a flow chart illustrating example operations in the system of <FIG>. Mobile device <NUM> is caused to perform the actions presented on the left hand side. Server <NUM> is caused to perform the actions presented on the right hand side.

In general, monitoring receivers of the global monitoring network <NUM> receive signals from satellites <NUM>, <NUM> of various satellite navigation systems, including Galileo. The monitoring receivers extract navigation data and associated data. The harvested navigation data contains real-time data for all supported satellite navigation systems. Only Galileo has a built-in mechanism for authentication.

Data transmitted by Galileo satellites <NUM> includes navigation data, digital signatures, MACs and one-time keys. The monitoring receivers may store a public key corresponding to a private key that has been used for encoding and signing at least a part of the received data. The monitoring receivers may decode the encoded data, including a MAC, and verify its source using the public key. Furthermore, if a MAC created by the monitoring receivers (using received one-time keys and a given time) matches with a MAC broadcast by a satellite along with navigation data for the given time, the associated navigation data is accepted by the monitoring receivers. The navigation data received from other satellites <NUM> may be accepted with or without further evaluation, depending e.g. on whether a digital signature is included in the message or whether the message is encrypted.

Any MAC used in the system of <FIG> may be generated based on a function or set of functions, which takes as input the given time instant and optionally one or more Galileo satellite IDs. A separate MAC could be generated for each satellite ID, or a common MAC could be generated for all satellites or for different groups of satellites. In the latter case, the common MAC may use one or more satellite IDs as a basis. Only for reasons of simplicity it will be assumed that there is a common MAC for all satellites and that one satellite ID is used as input.

The generation and use of MACs may comply with the planned Galileo standard, which still has to be defined.

One option has been described by<NPL>. It makes use of a Time Efficient Stream Loss-tolerant Authentication (TESLA) protocol. TESLA is based on the transmission of a MAC to authenticate the plaintext message and the delayed transmission of the key used to compute the MAC. This key belongs to a chain generated through a one-way function F. The chain starts with a random seed key, which is secret, and ends with a root key that is public and certified as authentic. GNSS authentication through TESLA could be performed in the following way: The receiver receives the navigation data and the MAC. The receiver later receives a key from which the MAC can be generated. The receiver authenticates the key with a previous key from the chain that is considered authentic, or the root key, by performing function F the required number of times. The receiver re-generates the MAC with the key and the data, which should coincide with the previously received MAC. The generation of the MAC takes account of the navigation data and of the time for which the data is valid. For further details and suggested variations reference is made to the document.

Global monitoring network <NUM> provides the harvested data to the global assistance data servers <NUM> using encryption and VPN. The data may be provided in the encrypted and digitally signed form as received by the global monitoring network <NUM>, along with any digital signatures, and along with MACs and one-time keys for Galileo.

GSA entity <NUM> may generate MACs for Galileo navigation data and forward the MACs and associated one-time keys used for generating the MACs to Galileo satellites <NUM> for broadcast. Whenever a seed key is replaced, GSA entity <NUM> may provide global assistance data servers <NUM> with the updated seed key and optionally with an associated updated root key using a secure link.

Server <NUM>, as an example global assistance data server, receives navigation data of satellites <NUM>, <NUM> of different satellite navigation systems from global monitoring network <NUM>. The received data may include data from different monitoring receivers of global monitoring network <NUM>. In addition, server <NUM> receives Galileo MACs and associated one-time keys for the navigation data. The MACs and associated keys may be received from global monitoring network <NUM> as extracted from the satellite signals. When a stored seed key expires, server <NUM> may receive an updated seed key from GSA entity <NUM>. It may generate and store an associated root key based on the updated seed key, or store an updated root key that is received from GSA entity <NUM> along with the updated seed key.

The reception of the data may be a continuous process, so that current navigation data is always available at server <NUM>. The data that is received by server <NUM> from global monitoring network <NUM> may optionally be limited to data that is provided by monitoring receivers in a specific region.

At some point in time, mobile device <NUM> may require positioning assistance data from server <NUM>. Assistance data will only be provided by server <NUM>, however, in case mobile device <NUM> can be authenticated by means of a MAC.

Mobile device <NUM> therefore generates a MAC for a given time instant in the future - if required taking account of a predetermined satellite ID - based on the securely embedded seed key. (action <NUM>) The time instant is selected by mobile device <NUM>. It may be set for instance generally to one hour ahead of the current time, or to any other time.

Mobile device <NUM> assembles an assistance data request message. (action <NUM>) For the actual request, parameters may be included in the message, like a time period for which assistance data is required and/or a rate at which new assistance data is desired. A request for further sensitive data may be included as well. In addition, the assistance request message includes the derived secondary code, an indication of a time instant for which the underlying MAC has been generated, and a subscription identifier (ID). The subscription ID may correspond for instance to a receiver ID, to a mobile device ID or be an ID that is assigned when mobile device <NUM> registers for A-GNSS service.

Mobile device <NUM> causes a transmission of the assembled message to server <NUM>. (action <NUM>) Using a hash function for obtaining the verification code has the effect that the MAC cannot be determined based on the transmitted verification code. Thus, the risk to expose the true future MAC over the air interface is removed.

If there is no match (action <NUM>), server <NUM> considers the GNSS receiver of mobile device <NUM> not to be authenticated and thus not to be trusted. As a result, it may simply ignore the request. Alternatively, it may send an error message to mobile device <NUM>, as there may a plausible reason for the mismatch, like an outdated seed key. In this context, server <NUM> may also request mobile device <NUM> to transmit a currently stored root key, which may enable server <NUM> to determine whether the root key is outdated. Server <NUM> may then provide a corresponding hint to mobile device <NUM> so that the user may obtain an updated root key and possibly an updated seed key. Alternatively or in addition, server <NUM> may provide the updated root key to mobile device <NUM>. An updated root key may enable mobile device <NUM> again to process at least broadcast Galileo signals during good reception conditions. (action <NUM>).

If there is a match (action <NUM>), server <NUM> considers the GNSS receiver of mobile device <NUM> authentic and trusted. Thus, server <NUM> validates the request and allows a response including sensitive data. It assembles the requested assistance data in subsequent response messages for each desired time instant, possibly taking account of received parameters and/or of subscription parameters stored for the received subscriber ID. (action <NUM>) The assembled assistance data may include for instance navigation data for various GNSSs and a currently valid Galileo MAC encapsulated into a single encrypted message. The encryption may be based for instance on a private key that is used in common by all global assistance data servers <NUM>. The message may include further data that does not constitute actual GNSS assistance data, for instance digital signatures that have been provided by Galileo satellites <NUM> and forwarded by global monitoring network <NUM>, configuration data associated with requesting mobile device <NUM>, an IP-address of server <NUM>, certificates, and/or other sensitive data. A one-time key enabling a generation of a Galileo MAC in a respective message may optionally be included in the respective subsequent message.

Mobile device <NUM> receives the response messages. It may store a public key corresponding to a private key used by server <NUM> for encrypting the encrypted response messages. Mobile device <NUM> may decode the messages using this stored public key. Mobile device <NUM> may furthermore store a public key corresponding to the private key that has been used for encoding and signing at least a part of the data transmitted by satellites <NUM>, <NUM>. Mobile device <NUM> may decode the encoded data, including the MAC, and verify its source using the public key. Mobile device <NUM> then validates authenticity of the included navigation data for all satellite navigation systems and any included further data based on the included MAC for Galileo. The MAC may be verified by mobile device <NUM> for instance by computing MAC based on satellite identifier(s) for Galileo, the time for which the navigation data is indicated to be valid, provided one-time keys and the stored root key, using some implemented function or functions; and by comparing the computed MAC with the received MAC. The availability and verification of the employed key may comply with any Galileo standardization that defines the use of MAC for Galileo. Alternatively, mobile device <NUM> could also compute MACs for comparison based on the embedded seed key, instead of provided one-time keys and the stored root key.

If the MAC received for Galileo is determined to be valid, mobile device <NUM> considers the navigation data for all satellite navigation systems and any further sensitive data received in the same response message to be authentic, not only the navigation data for Galileo. Mobile device <NUM> may now use the received assistance data for position and/or velocity and/or time (PVT) computations. Other included data may be processed as required. (action <NUM>) If the MAC received for Galileo in a response message is determined not to be valid, mobile device <NUM> may discard the entire response message.

In a variation, different MACs may be generated in action <NUM> for different satellite IDs, leading to several derived secondary codes to be included in the assistance request message in action <NUM>. In this case, several MACs and secondary codes will be used and considered in the entire system for each time instant.

In a variation, mobile device <NUM> may apply an encryption to the generated MAC instead of the hashing to obtain the secondary code in action <NUM>. In this case server <NUM> may either encrypt the generated MAC in the same manner to derive a secondary code for the comparison in action <NUM>; or it may decrypt the received secondary code to reconstruct the MAC generated by mobile device <NUM> for comparison in action <NUM> with the MAC generated in action <NUM>.

In a variation, server <NUM> does not necessarily have to store a seed key. It could also obtain in regular intervals a respective list of future MACs for various time instants from GSA entity <NUM>. Server <NUM> may then extract a MAC for a given time instant from this list in action <NUM>.

In a variation, the secondary code is not included in an assistance request message in action <NUM>. It may be included for instance in a preceding handshaking message instead. The actual assistance request may then be assembled and transmitted when server <NUM> detects a match in action <NUM> and informs mobile device <NUM> that the handshaking has been successful.

In alternative or additional operations in the system of <FIG>, mobile devices <NUM> and <NUM> may use basically the same approach for authenticating their GNSS receivers among each other, e.g. before transmitting location information to a trusted mobile device only, or before using transmitted location information from a trusted mobile device only. Mobile devices <NUM>, <NUM> may authenticate their GNSS receivers and thereby the data they exchange by exchanging MACs for a given time instant that have been generated with embedded seed keys in handshaking messages or in data transmission messages. If the MACs (or derived secondary codes) match, the data and/or the devices are considered to be trusted.

<FIG> is a schematic block diagram of another example embodiment of a comprehensive system supporting an authentication of satellite navigation system receivers, and illustrates some possible (further) variations compared to the system of <FIG>.

The system comprises again a global monitoring network <NUM>, global assistance data servers <NUM>, a mobile device <NUM> and a GSA entity <NUM>. GNSS satellites <NUM>, <NUM> broadcast satellite signals, which include navigation data. The GNSS satellites include Galileo satellites <NUM> and optionally satellites <NUM> of at least one further satellite navigation system, including for instance GPS, GLONASS, Beidou and/or one or more SBAS.

The global monitoring network <NUM> comprises monitoring receivers that are configured to receive satellite signals from respectively visible GNSS satellites <NUM>, <NUM>. The monitoring receivers are configured to extract and forward navigation data and associated data from the signals. They may be distributed across the world.

The global assistance data servers <NUM> are distributed across the world as well. Each of the servers is configured to receive data collected by the global monitoring network <NUM>, and to assemble and provide information including GNSS assistance data and optionally further sensitive data upon request of mobile devices <NUM>. It is to be understood that the functions of the global assistance data servers <NUM> may also be performed in the cloud in a distributed manner. The global monitoring network <NUM> is linked to the global assistance data servers <NUM> by means of safe connections.

GSA entity <NUM> may be configured to generate MACs for current and future time instants. It may optionally be linked to the global assistance data servers <NUM> via a safe connection as well.

Mobile device <NUM> may be any device that is configured to move around and that is expected to be able to determine its own position. It may be again for instance a smartphone, a smart watch, a tablet PC, an IoT device or any other mobile device, including industrially used devices. Mobile device <NUM> comprises an integrated A-GNSS server <NUM> and a GNSS receiver (or chipset) <NUM>. A-GNSS server <NUM> is configured to authenticate GNSS receiver <NUM> and to provide predicted GNSS assistance data. GNSS receiver <NUM> is configured to receive signals from Galileo satellites <NUM> and optionally from other GNSS satellites <NUM>. A-GNSS service is an integral part of GNSS receiver <NUM>. GNSS receiver <NUM> is a certified OS-NMA receiver. It comprises at least one seed key for generating MACs for its own authentication, embedded into firmware. A-GNSS server <NUM> may be for instance an embodiment of system <NUM> of <FIG> and include corresponding components. In this case, interfaces <NUM> may enable a data communication with servers <NUM>, for instance via the Internet, and GNSS receiver <NUM> via an internal connection, like open/de facto APIs existing on the GNSS receiver <NUM>; and data memory <NUM> may enable storage of received assistance data and associated data. Alternatively, a software entity embedded / installed on mobile device <NUM> in order to bring authenticated assistance data services to mobile device <NUM> may be considered to constitute A-GNSS server <NUM>. GNSS receiver <NUM> may be for instance an embodiment of system <NUM> of <FIG> and include corresponding components. In this case, interfaces <NUM> may enable a data communication with A-GNSS server <NUM> via an internal connection, and data memory <NUM> may enable storage of received assistance data.

<FIG> is a flow chart illustrating example operations in the system of <FIG>. GNSS receiver <NUM> of mobile device <NUM> is caused to perform the actions presented on the left hand side. A-GNSS server <NUM> of mobile device <NUM> is caused to perform the actions presented on the right hand side.

Server <NUM> receives raw assistance data for a plurality of GNSSs, including Galileo, from global monitoring network <NUM> via a secure link. The received data may include data from different monitoring receivers of global monitoring network <NUM>. For Galileo, the assistance data may be associated with MACs enabling an authentication of the assistance data. The reception of the data may be a continuous process, so that current assistance data is always available.

In addition, server <NUM> receives future MACs from GSA entity <NUM> via a secure link on a regular basis. They may be received for instance once a day for a day two weeks ahead.

At some point in time, mobile device <NUM> may need assistance data enabling an offline mode for a certain period of time.

The assistance data may be obtained by A-GNSS server <NUM> upon a request indicating future time instants for which keys are desired, for instance every two hours within a period of two weeks. In response to the request, server <NUM> may assemble GNSS assistance data for mobile device <NUM>. The assembled assistance data includes assistance data for Galileo for a current time, which is based on received raw assistance data. The assembled assistance data may include assistance data for other GNSSs for the current time, which is based on received raw assistance data. The assembled assistance data includes at least one MAC for the Galileo assistance data for the current time, as received from global monitoring network <NUM>. Finally, the assembled assistance data includes a list of MACs for the requested time instants, selected from the MACs received in advance from GSA entity <NUM>. Server <NUM> may encapsulate the assembled data into a single encrypted message and transmit the message as A-GNSS response to mobile device <NUM>. The encryption may be based for instance on a private key that is used in common by all global assistance data servers <NUM>. The message may include further data that does not constitute actual GNSS assistance data, for instance digital signatures that have been provided by Galileo satellites <NUM> and forwarded by global monitoring network <NUM>, configuration data associated with requesting mobile device <NUM>, an IP-address of server <NUM>, certificates, and/or other sensitive data. A-GNSS server <NUM> may store a public key corresponding to a private key used by server <NUM> for encrypting the encrypted A-GNSS message. A-GNSS server <NUM> may decrypt the message using this stored public key.

A-GNSS server <NUM> selects a time instant from among the time instants for which future assistance data and MACs are provided. It includes an indication of this time instant in a message and transmits it to GNSS receiver <NUM> for the purpose of receiver authentication. (action <NUM>).

GNSS receiver <NUM> receives all messages subsequently. It may process the included predicted GNSS assistance data like regular GNSS assistance data and/or like navigation messages broadcast by satellites <NUM>, <NUM>. This includes a verification of the at least one MAC that is included in the message for the time instant for which the assistance data is valid. The at least one MAC may be verified for instance using the seed key for generating at least one MAC for comparison, or any other way. GNSS receiver <NUM> may use validated original and predicted assistance data e.g. for position and/or velocity and/or time computations in an offline mode. (action <NUM>) If assistance data for other systems than Galileo is included, a valid MAC may not only be used to authenticate Galileo related data, but also the data for other GNSSs for the current time included in the same encrypted message from server <NUM>, and optionally further associated data in this message as well.

The operations presented with reference to <FIG> may ensure for instance that software providing an A-GNSS service in a device can only be used in cooperation with a certified GNSS receiver in the device.

It is to be understood that in the approach presented with reference to <FIG> as well as in the approach presented with reference to <FIG>, any desired additional encryption and authentication schemes not mentioned may be included for any of the indicated links and communications in order to increase the total level of security.

It is to be understood that the presented example systems, apparatuses and operations may generally be varied in many ways. The systems and apparatuses may be varied for instance by modifying, adding or omitting components. The operations may be varied for instance by modifying actions, by omitting actions and/or by adding actions. In addition, the order of actions may be modified.

Summarized, certain embodiments of the invention may support an authentication of a GNSS receiver that is based on Galileo message authentication. They may be beneficial, for instance, in case confidential information is to be provided and/or in case applications or services require a high confidence and reliability for positioning.

This definition of 'circuitry' applies to all uses of this term in this text, including in any claims. As a further example, as used in this text, the term 'circuitry' also covers an implementation of merely a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware. The term 'circuitry' also covers, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone.

Any of the processors mentioned in this text could be a processor of any suitable type. Any processor may comprise but is not limited to one or more microprocessors, one or more processor(s) with accompanying digital signal processor(s), one or more processor(s) without accompanying digital signal processor(s), one or more special-purpose computer chips, one or more field-programmable gate arrays (FPGAS), one or more controllers, one or more application-specific integrated circuits (ASICS), or one or more computer(s). The relevant structure/hardware has been programmed in such a way to carry out the described function.

Any of the memories mentioned in this text could be implemented as a single memory or as a combination of a plurality of distinct memories, and may comprise for example a read-only memory (ROM), a random access memory (RAM), a flash memory or a hard disc drive memory etc..

A bus may be provided for connecting processor(s) and memories.

In example embodiments, any non-transitory computer readable medium mentioned in this text could also be a removable/portable storage or a part of a removable/portable storage instead of an integrated storage. Example embodiments of such a removable storage comprise a magnetic disc storage, of an optical disc storage, a semiconductor memory circuit device storage and of a Micro-SD semiconductor memory card storage.

The functions illustrated by processor <NUM> in combination with memory <NUM> can also be viewed as means for obtaining a message, which includes at least one verification code, from an entity indicating to be a satellite navigation system receiver of a mobile device, the at least one verification code comprising at least one message authentication code for a given time instant or at least one secondary code derived from least one message authentication code for a given time instant, wherein message authentication codes are defined to authenticate navigation data for Galileo for a respective time instant; means for comparing the at least one obtained verification code with at least one available verification code known to be valid for the given time instant, wherein the entity is considered to be an authentic satellite navigation system receiver of a mobile device only, in case the at least one obtained verification code matches the at least one available verification code; and means for enabling selected further actions only, if the entity is considered an authentic satellite navigation system receiver of a mobile device.

The program code in memory <NUM> can also be viewed as comprising such means in the form of functional modules.

The functions illustrated by processor <NUM> in combination with memory <NUM>, can also be viewed as means for generating at least one message authentication code for a given time instant based on at least one confidential seed key, wherein message authentication codes are defined to authenticate navigation data for Galileo for a respective time instant and wherein the at least one confidential seed key is securely embedded in the satellite navigation system receiver; means for assembling a message including at least one verification code, wherein the at least one verification code comprises the generated at least one message authentication code or at least one secondary code derived from the generated at least one message authentication code; and means for causing a transmission of the assembled message to enable a receiving entity to authenticate the satellite navigation system receiver.

The program codes in memory <NUM> can also be viewed as comprising such means in the form of functional modules.

<FIG>, <FIG>, <FIG> and <FIG> may also be understood to represent example functional blocks of computer program codes supporting an authentication of a satellite navigation system receiver.

Claim 1:
A method performed by an assisted-GNSS server configured to receive data collected by a global monitoring network, and assemble and provide assisted-GNSS data, the method comprising:
obtaining a message, which includes at least one verification code, from an entity indicating to be a satellite navigation system receiver of a mobile device, the at least one verification code comprising at least one message authentication code for a given time instant or at least one secondary code derived from the at least one message authentication code for a given time instant, wherein message authentication codes are defined to authenticate navigation data for Galileo for a respective time instant, wherein the assisted-GNSS server is external to the mobile device comprising the satellite navigation system receiver and is configured to provide assisted-GNSS data to a plurality of satellite navigation system receivers;
comparing the at least one obtained verification code with at least one available verification code known to be valid for the given time instant, wherein the entity is considered to be an authentic satellite navigation system receiver of a mobile device only, in case the at least one obtained verification code matches the at least one available verification code; and
enabling selected further actions only, if the entity is considered an authentic satellite navigation system receiver of a mobile device, wherein the further actions comprise providing assisted-GNSS data to the satellite navigation system receiver.