Various techniques are provided for location Services (LCS) Assistance Data broadcast, for example for implementation in LTE and LTE-A systems. The embodiments described herein may use the LPP/LPPe positioning protocol, by making use of existing unsolicited Provide Assistance Data (PAD) messages. Embodiments avoid the need to define and implement a separate broadcast Assistance Data protocol. Additional exemplary embodiments for scheduling and verifying of the broadcast Assistance Data messages are described herein.
|
22. A device, comprising:
a transceiver configured to:
receive a broadcast message from a location server wherein the broadcast message comprises Assistance Data (ad) for location services and a plurality of broadcast control parameters; and
a processor configured to:
determine that the broadcast message is ciphered;
in response to determining that the broadcast message is ciphered, determining that the device has at least one key to decipher the ciphered broadcast message; and
decipher the broadcast message using the at least one key and an initial counter, wherein deriving the initial counter comprises:
receive a first value associated with the initial counter using point-to-point mode from the location server;
receive a second value associated with the initial counter using broadcast mode from the location server; and
derive the initial counter using at least the first value and the second value;
verify a validity of the ad using at least one control parameter from the plurality of broadcast control parameters received from the location server.
1. A method for verifying a broadcast message, the method comprising:
receiving the broadcast message, at a device, from a location server wherein the broadcast message comprises Assistance Data (ad) for location services and a plurality of broadcast control parameters;
determining that the broadcast message is ciphered;
in response to determining that the broadcast message is ciphered, determining that the device has at least one key to decipher the ciphered broadcast message; and
deciphering the broadcast message using the at least one key and an initial counter, wherein deriving the initial counter comprises:
receiving a first value associated with the initial counter using point-to-point mode from the location server;
receiving a second value associated with the initial counter using broadcast mode from the location server; and
deriving the initial counter using at least the first value and the second value;
verifying a validity of the ad using at least one control parameter from the plurality of broadcast control parameters received from the location server.
40. A device, comprising:
means for receiving a broadcast message from a location server wherein the broadcast message comprises Assistance Data (ad) for location services and a plurality of broadcast control parameters; and
means for determine that the broadcast message is ciphered;
in response to determining that the broadcast message is ciphered, means for determining that the device has at least one key to decipher the ciphered broadcast message; and
means for deciphering the broadcast message using the at least one key and an initial counter, wherein deriving the initial counter comprises:
means for receiving a first value associated with the initial counter using point-to-point mode from the location server;
means for receiving a second value associated with the initial counter using broadcast mode from the location server; and
means for deriving the initial counter using at least the first value and the second value;
means for verifying a validity of the ad using at least one control parameter from the plurality of broadcast control parameters received from the location server.
39. A non-transitory computer readable storage medium, wherein the non-transitory computer readable storage medium comprises instructions executable by a processor, the instructions comprising instructions to:
receive a broadcast message, at a device, from a location server wherein the broadcast message comprises Assistance Data (ad) for location services and a plurality of broadcast control parameters; and
determine that the broadcast message is ciphered;
in response to determining that the broadcast message is ciphered, determine that the device has at least one key to decipher the ciphered broadcast message; and
decipher the broadcast message using the at least one key and an initial counter, wherein deriving the initial counter comprises:
receive a first value associated with the initial counter using point-to-point mode from the location server;
receive a second value associated with the initial counter using broadcast mode from the location server; and
derive the initial counter using at least the first value and the second value;
verify a validity of the ad using at least one control parameter from the plurality of broadcast control parameters received from the location server.
3. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
determining that the device is configured to require digitally signed broadcast messages based on the information associated with the broadcasting received point to point;
determining that the broadcast message is not digitally signed; and
discarding the broadcast message, in response to determining that the broadcast message is not digitally signed.
11. The method of
determining that the broadcast message is not a duplicate message by checking at least one parameter from the plurality of broadcast control parameters that indicates a uniqueness of the broadcast message for at least a predefined period of time.
12. The method of
determining applicability of the broadcast message based on a time indicator from the plurality of broadcast control parameters, wherein the device uses the time indicator in determining if the validity of the ad has yet to occur or has already expired.
13. The method of
determining applicability of the broadcast message based on a geographic area indicator from the plurality of broadcast control parameters, wherein the device uses the geographic area indicator in determining if the broadcast message is valid for the device based on a device's location.
14. The method of
determining that the broadcast message comprises at least one type of ad that is needed by the device.
15. The method of
determining that the broadcast message is digitally signed;
in response to determining that the broadcast message is digitally signed, determining that the device has at least one key to perform authentication verification for the digitally signed broadcast message; and
verifying the validity of the broadcast message by verifying a digital signature for the broadcast message using the at least one key.
17. The method of
18. The method of
19. The method of
converting the digital signature for the broadcast message using the at least one key; and
comparing a representation of the broadcast message against the converted digital signature; and
determining that the broadcast message is authentic if the converted digital signature is the same as the representation of the broadcast message.
20. The method of
21. The method of
at least temporarily ceasing use of a broadcast system associated with the broadcast message if a plurality of broadcast messages fail during the verification for the broadcast message.
23. The device of
24. The device of
25. The device of
26. The device of
27. The device of
28. The device of
29. The device of
determining, by the processor, that the device is configured to require digitally signed broadcast messages based on the information associated with the broadcasting received point to point;
determining, by the processor, that the broadcast message is not digitally signed; and
discarding the broadcast message, in response to determining that the broadcast message is not digitally signed.
30. The device of
determining, by the processor, that the broadcast message is not a duplicate message by checking at least one parameter from the plurality of broadcast control parameters that indicates a uniqueness of the broadcast message for at least a predefined period of time.
31. The device of
determining applicability of the broadcast message, by the processor, based on a time indicator from the plurality of broadcast control parameters, wherein the device uses the time indicator in determining if the validity of the ad has yet to occur or has already expired.
32. The device of
determining applicability of the broadcast message, by the processor, based on a geographic area indicator from the plurality of broadcast control parameters, wherein the device uses the geographic area indicator in determining if the broadcast message is valid for the device based on a device's location.
33. The device of
determining that the broadcast message comprises at least one type of ad that is needed by the device.
34. The device of
determine that the broadcast message is digitally signed;
in response to determining that the broadcast message is digitally signed, determine that the device has at least one key to perform authentication verification for the digitally signed broadcast message; and
verify the validity of the broadcast message by verifying a digital signature for the broadcast message using the at least one key.
36. The device of
37. The device of
converting, by the processor, the digital signature for the broadcast message using the at least one key; and
comparing, by the processor, a representation of the broadcast message against the converted digital signature; and
determining, by the processor, that the broadcast message is authentic if the converted digital signature is the same as the representation of the broadcast message.
38. The device of
at least temporarily cease use of a broadcast system associated with the broadcast message if a plurality of broadcast messages fail during the verification for the broadcast message.
|
This patent application claims the benefit of U.S. Provisional Patent Application No. 61/529,202, filed Aug. 30, 2011, and entitled “GENERIC BROADCAST OF LOCATION ASSISTANCE DATA,” U.S. Provisional Patent Application No. 61/549,160, filed Oct. 19, 2011, and entitled “GENERIC BROADCAST OF LOCATION ASSISTANCE DATA,” U.S. Provisional Patent Application No. 61/586,737, filed Jan. 13, 2012, and entitled “GENERIC BROADCAST OF LOCATION ASSISTANCE DATA,” U.S. Provisional Patent Application No. 61/606,993, filed Mar. 6, 2012, and entitled “GENERIC BROADCAST OF LOCATION ASSISTANCE DATA,” U.S. Provisional Patent Application No. 61/686,619, filed Apr. 6, 2012, and entitled “GENERIC BROADCAST OF LOCATION ASSISTANCE DATA,” U.S. Provisional Patent Application No. 61/621,466, filed Apr. 7, 2012, and entitled “GENERIC BROADCAST OF LOCATION ASSISTANCE DATA,” U.S. Provisional Patent Application No. 61/664,119 Jun. 25, 2012, and entitled “GENERIC BROADCAST OF LOCATION ASSISTANCE DATA,”, all of which are incorporated by reference herein in its entirety for all purposes.
Location Services (LCS) provided by or in association with wireless networks can be useful or essential to many applications—for example to locate a user engaged in an emergency call, to obtain navigation (e.g. driving directions), to locate nearby friends or facilities and to track valuable objects and assets.
The Long Term Evolution (LTE) wireless access interface is a standard in the mobile phone network technology tree, developed by the 3rd Generation Partnership Project (3GPP), that also produced the Global System for Mobile Communications (GSM), Enhanced Data rates for GSM Evolution (EDGE), Universal Mobile Telecommunications System (UMTS) and High Speed Packet Access (HSPA) network technologies. The LTE Positioning Protocol (LPP) is the protocol defined by 3GPP to support LCS in a wireless network based on LTE with capabilities to locate a User Equipment (UE). LPP extensions (LPPe) is a positioning protocol developed by the Open Mobile Alliance (OMA) that extends LPP to support location for access types in addition to LTE as well as adding further position methods applicable to both LTE and other wireless access types such as GSM, UMTS and WiFi. LPP may be used by itself in an LTE network or may be combined with LPPe to support LCS in LTE and/or other networks. In the latter case, the combined protocol may be referred to as LPP/LPPe.
Current 3GPP defined technology uses point-to-point positioning protocols such as LPP and LPP/LPPe to support LCS. The use of point-to-point protocols may result in significant signaling and processing requirements on both the network and UEs and difficulty in providing adequate location support for all UEs accessing a network. Furthermore, while delivery of LCS Assistance Data via broadcast has been standardized for GSM and UMTS access, it has not been deployed. One reason for this is additional implementation impact—e.g. to network base stations, Location Servers and UEs. A second reason is that the broadcast Assistance Data standards are based on an old 3GPP Release (Release 98 completed in 1999) and do not contain any Assistance Data enhancements defined since then. A third reason is that some broadcast systems, such as those already defined to support GSM and UMTS broadcast location Assistance Data, have limited bandwidth and cannot broadcast large amounts of Assistance Data (e.g. GNSS (Global Navigation Satellite System) ephemeris data) with a low latency. However, broadcast location Assistance Data remains potentially useful to avoid the overhead and delay in obtaining assistance data by point to point means (e.g. using LPP or LPP/LPPe). The problem is to define it in a manner that would be suitable for implementation and with adequate performance for receiving devices.
Various techniques are provided for LCS Assistance Data broadcast, for example for implementation in LTE and LTE Advanced (LTE-A) systems. The embodiments described herein, use the LPP/LPPe combined positioning protocol, by making use of existing unsolicited Provide Assistance Data (PAD) messages. The embodiments of the invention avoid the need to define and implement a separate broadcast Assistance Data protocol. Enabling broadcasting for LCS Assistance Data has the potential of enabling: faster and more accurate location; use of target based position methods such as GNSS; offloading of Location Servers; an ability to charge for some/all broadcast assistance if ciphering is used; and an ability to support roamers as well as home subscribers in the serving network. Broadcast of Assistance Data is also potentially applicable to both control plane location solutions developed by 3GPP and 3GPP2 and the SUPL (Secure User Plan Location) location solutions developed by OMA.
An exemplary method for verifying a broadcast message may include receiving a broadcast message, at a device, from a Location Server wherein the broadcast message comprises Assistance Data (AD) for location services and a plurality of broadcast control parameters, and verifying a validity of the AD using at least one control parameter from the plurality of broadcast control parameters received from the Location Server. In some aspects, the method may further include, receiving information associated with the broadcast at the device from the Location Server, wherein the information associated with the broadcast is received point to point using a positioning protocol, and wherein verifying the validity of the AD uses the information received point to point.
A few exemplary methods of verifying of the AD may include, determining that the broadcast message is not a duplicate message by checking at least one parameter from the plurality of broadcast control parameters that indicates a uniqueness of the broadcast message for at least a predefined period of time, determining applicability of the broadcast message based on a time indicator from the plurality of broadcast control parameters, wherein the device uses the time indicator in determining if the validity of the AD has yet to occur or has already expired, determining applicability of the broadcast message based on a geographic area indicator from the plurality of broadcast control parameters, wherein the device uses the geographic area indicator in determining if the broadcast message is valid for the device based on the device's location, determining that the broadcast message comprises at least one type of AD that is needed by the device or determining that the broadcast message is digitally signed.
In embodiments where the broadcast message is digitally signed, the method determines that the device has at least one key to perform authentication verification for the digitally signed broadcast message, and verifies the validity of the broadcast message by verifying a digital signature for the broadcast message using the at least one key. The digitally signed broadcast message may be encapsulated and may use asymmetric cryptography. In some aspects, the device begins the authentication verification for the digitally signed broadcast message before receiving the entire broadcast message by identifying the at least one key by using a public key identifier from the digital signature that appears at the beginning of the broadcast message. If the device is configured to require digitally signed broadcast messages based on the information associated with the broadcast received point to point, the method may determine that the broadcast message is not digitally signed, and discard the broadcast message, in response to determining that the broadcast message is not digitally signed. In some implementations, verifying the digital signature may include converting the digital signature for the broadcast message using the at least one key, and comparing a representation of the broadcast message against the converted digital signature, and determining that the broadcast message is authentic if the converted digital signature is the same as the representation of the broadcast message. The representation of the broadcast message may be generated using a Secure Hash Algorithm (SHA) based hash.
Moreover, the method may include determining that the broadcast message is ciphered, and in response to determining that the broadcast message is ciphered, determining that the device has at least one key to decipher the ciphered broadcast message, and deciphering the broadcast message using the at least one key. The AD may be ciphered using symmetric cryptography. In some aspects, determining that the device has the at least one key to decipher the ciphered broadcast message may include using a cipher Key ID contained in the at least one control parameter that indicates the at least one key that should be used in deciphering the broadcast message. The broadcast message may be encapsulated. In some implementations, deciphering the AD from the broadcast message further comprises using a counter from the plurality of broadcast control parameters. An initial counter is transmitted by the Location Server to the device in two portions. The information associated with the broadcast received point to point from the Location Server may contain a first portion of the initial counter along with a ciphering key and an identifier for the first portion of the initial counter and the ciphering key. The second portion of the initial counter may be derived from at least a counter from the plurality of broadcast control parameters. If the broadcast message is an initial broadcast message, deriving the initial counter may include receiving a first portion of an initial key using point-to-point mode, receiving a second portion of the initial key using broadcast mode, and deriving the initial counter using the first portion and the second portion. Another counter for a subsequent broadcast message may be derived using the counter from the current broadcast message. The method may further include at least temporarily ceasing the use of a broadcast system associated with the broadcast message if a plurality of broadcast messages fail during the verification process. In some embodiments, the broadcast message is an LTE Positioning Protocol (LPP) or an LPP/LPP Extensions (LPPe) Provide Assistance Data message and the positioning protocol is an LPP/LPPe.
An exemplary device for verifying a broadcast message may include a transceiver for receiving a broadcast message, at the device, from a Location Server wherein the broadcast message comprises Assistance Data (AD) for location services and a plurality of broadcast control parameters, and a processor for verifying a validity of the AD using at least one control parameter from the plurality of broadcast control parameters received from the Location Server. In some aspects, the transceiver may further include receiving information associated with the broadcast at the device from the Location Server, wherein the information associated with the broadcast is received point to point using a positioning protocol, and wherein verifying the validity of the AD uses the information received point to point.
The device may verify the AD by using the process for determining that the broadcast message is not a duplicate message by checking at least one parameter from the plurality of broadcast control parameters that indicates a uniqueness of the broadcast message for at least a predefined period of time, determining applicability of the broadcast message based on a time indicator from the plurality of broadcast control parameters, wherein the device uses the time indicator in determining if the validity of the AD has yet to occur or has already expired, determining applicability of the broadcast message based on a geographic area indicator from the plurality of broadcast control parameters, wherein the device uses the geographic area indicator in determining if the broadcast message is valid for the device based on the device's location, determining that the broadcast message comprises at least one type of AD that is needed by the device or determining that the broadcast message is digitally signed.
In embodiments where the broadcast message is digitally signed, the processor determines that the device has at least one key, stored in memory, to perform authentication verification for the digitally signed broadcast message, and uses the processor to verify the validity of the broadcast message by verifying a digital signature for the broadcast message using the at least one key. The digitally signed broadcast message may be encapsulated and may use asymmetric cryptography. In some aspects, the processor begins the authentication verification for the digitally signed broadcast message before receiving the entire broadcast message by identifying the at least one key by using a public key identifier from the digital signature that appears at the beginning of the broadcast message. If the device is configured to require digitally signed broadcast messages based on the information associated with the broadcast received point to point, the processor may determine that the broadcast message is not digitally signed, and discard the broadcast message, in response to determining that the broadcast message is not digitally signed. In some implementations, verifying the digital signature, by the processor, may include converting the digital signature for the broadcast message using the at least one key, and comparing a representation of the broadcast message against the converted digital signature, and determining that the broadcast message is authentic if the converted digital signature is the same as the representation of the broadcast message. The representation of the broadcast message may be generated using a Secure Hash Algorithm (SHA) based hash.
Moreover, the device may include the processor for determining that the broadcast message is ciphered, and in response to determining that the broadcast message is ciphered, determining that the device has at least one key to decipher the ciphered broadcast message, and deciphering the broadcast message using the at least one key. The AD may be ciphered using symmetric cryptography. In some aspects, determining, by the processor, that the device has the at least one key to decipher the ciphered broadcast message may include using a cipher Key ID contained in the at least one control parameter that indicates the at least one key that should be used in deciphering the broadcast message. The broadcast message may be encapsulated. In some implementations, deciphering the AD from the broadcast message further comprises using a counter from the plurality of broadcast control parameters. An initial counter may be transmitted by the Location Server to the device in two portions. The information associated with the broadcast received point to point from the Location Server may contain a first portion of the initial counter along with a ciphering key and an identifier for the first portion of the initial counter and the ciphering key. The second portion of the initial counter may be derived from at least a counter from the plurality of broadcast control parameters. If the broadcast message is an initial broadcast message, deriving the initial counter may include receiving a first portion of an initial key using point-to-point mode, receiving a second portion of the initial key using broadcast mode, and deriving the initial counter using the first portion and the second portion. Another counter for a subsequent broadcast message may be derived using the counter from the current broadcast message. The method may further include at least temporarily ceasing the use of a broadcast system associated with the broadcast message if a plurality of broadcast messages fail during the verification process. In some embodiments, the broadcast message is an LTE Positioning Protocol (LPP) or an LPP/LPP Extensions (LPPe) Provide Assistance Data message and the positioning protocol is an LPP/LPPe
An exemplary non-transitory computer readable storage medium coupled to a processor, wherein the non-transitory computer readable storage medium comprises instructions executable by the processor, the instructions comprising instructions to receive a broadcast message, at a device, from a Location Server wherein the broadcast message comprises Assistance Data (AD) for location services and a plurality of broadcast control parameters, and verify a validity of the AD using at least one control parameter from the plurality of broadcast control parameters received from the Location Server.
An exemplary device, may include means for receiving a broadcast message, at a device, from a Location Server wherein the broadcast message comprises Assistance Data (AD) for location services and a plurality of broadcast control parameters, and means for verifying a validity of the AD using at least one control parameter from the plurality of broadcast control parameters received from the Location Server.
Embodiments of the invention create the possibility for a device to use LPP/LPPe point-to-point as a means of obtaining critical information related to LPP/LPPe broadcast. This avoids relying on network based control plane protocols to obtain broadcast related information at a device (such as deciphering keys for use when broadcast Assistance Data is ciphered), which is not suitable when SUPL rather than a control plane is used as a location solution in many implementations. In addition, a method of categorizing and advertising broadcast location Assistance Data is defined and a method of adapting existing LTE System Information Blocks (SIBs) is defined to support LPP/LPPe assistance data broadcast. Segmentation of LPP/LPPe broadcast messages is also enabled. Applicability to any broadcast system is enabled by treating PAD messages as blocks of data from the perspective of the broadcast system that may carry labeling information on content, use of ciphering, change of data content and segmentation inside the PAD messages and invisibly to the broadcast system. This will enable PAD messages to be broadcast (like any other data) by any broadcast system. Embodiments of the invention additionally describe techniques for labeling Assistance Data, for example to refer to assistance data parameters inside the messages in a concise manner or to indicate supported broadcast Assistance Data. Other embodiments enable broadcast Assistance Data to be authenticated by any receiving UE to overcome possible falsified broadcast from malicious sources.
LCS support by or in association with a wireless network typically employs a Location Server in or associated with the network that enables the location of a mobile terminal to be obtained by the Location Server and/or by the terminal. The location may be needed (e.g. requested) by some client application which may be inside or associated with the mobile terminal (e.g. an application or the mobile terminal user) or may be external to the network and not directly associated with the mobile terminal. In some standards and implementations, the mobile terminal may make measurements of radio transmission from network base stations, access points (e.g. WiFi access points (APs)) and/or satellites (e.g. the Global Positioning System (GPS)) and may transfer these measurements (e.g. on request) to the Location Server for computation of the mobile terminal location by the Location Server. In other standards and implementations, a mobile terminal may make the radio measurements and in addition then compute its position—and possibly then transfer the position to the Location Server if requested. To enable a mobile terminal to make radio measurements more reliably, accurately and faster and optionally enable a terminal to compute its position from the radio measurements, a Location Server may transfer Assistance Data to the mobile terminal (e.g. on request) such as Assistance Data containing orbital data for GPS satellites or satellites for other Global Navigation Satellite System (GNSS) systems such as GLONASS and Galileo. Assistance data may also contain location coordinates of base stations and access points nearby to the terminal, timing information and signal power for base station radio transmission and other data to assist location measurements and location computation. Examples of positioning methods that may make use of Assistance Data include Assisted GPS (A-GPS), Assisted GNSS (A-GNSS), Observed Time Difference Of Arrival (OTDOA), Advanced Forward Link Trilateration (AFLT) and Enhanced Cell ID (E-CID). The 3GPP LPP definition in 3GPP Technical Specification (TS) 36.355 and the OMA definition of LPPe in LPPe Extensions Specification version 1.0 contain definitions of A-GPS, A-GNSS, OTDOA and E-CID, while the 3rd Generation Partnership Project 2 (3GPP2) provides a definition of AFLT in 3GPP2 TS C.S0022.
To enable a Location Server to know the capabilities of a mobile terminal to support different types of Assistance Data, make different types of radio measurement and support different positioning methods, the capabilities of the terminal may be transferred (e.g. on request) by the terminal to the Location Server. A similar capability transfer in the reverse direction may be used to provide a mobile terminal with the capabilities of a Location Server to provide different types of Assistance Data and support different types of radio measurements. All of the interactions just mentioned between the Location Server and mobile terminal would typically be conducted using point to point signaling (e.g. via a radio access network and one of more core network entities such as routers or gateways) which may consume resources and increase delay.
The point to point interactions just described may be supported by positioning protocols such as LPP, LPP/LPPe and the protocol defined in 3GPP2 TS C.S0022. The interactions may be supported within a control plane solution such as one of the solutions defined in 3GPP TSs 23.271, 49.059. 25.305 and 36.305 and in 3GPP2 TS X.S0002. The interactions may also be supported within a user plane solution such as one of the OMA Secure User Plane Location (SUPL) version 1.0, version 2.0, version 2.1 and version 3.0 solutions defined by OMA in Enablers OMA-ERP-SUPL-V1—0, OMA-ERP-SUPL-V2—0, OMA-ERP-SUPL-V2—1 and OMA-ERP-SUPL-V3—0, respectively. In a control plane location solution, existing network interfaces and protocols are enhanced and used for most signaling (e.g. to support UE to Location Server point to point interaction) whereas with a user plane solution such as SUPL, the SUPL Secure Location Platform (SLP) Location Server interacts with a UE, known in SUPL as a SUPL Enabled Terminal (SET), via a data (e.g. TCP/IP) connection that is mostly transparent to other network entities.
As shown in
Having received the LPP Request Location Information message, the UE begins its positioning activities. In some scenarios, this activity may trigger a request for some Assistance Data—e.g. if the UE does not already have sufficient Assistance Data from previous requests to obtain all the requested measurements and, if asked, compute a location. For instance, if the server requests UE based A-GNSS location in which the UE both obtains GNSS measurements and computes its own location, and the UE does not have the latest ephemeris data for the requested GNSS systems, the UE may request these with the LPP Request/Provide Assistance Data mechanism (Transaction T3). Other Assistance Data, such as an approximate reference location for the UE (e.g. based on the current UE serving cell or serving AP), a reference time, a GNSS ionosphere model, base station and WiFi AP locations to name just a few may also be provided to the UE as part of transaction T3. As part of transaction T3, the UE sends its request for specific Assistance Data to the server and the server returns as much of this Assistance Data as it can to the UE. Having received the requested Assistance Data, the UE makes measurements (e.g. of GNSS systems, base stations, WiFi APs) and then, if also asked by the server, computes its location, and reports the location information (for example, measurements or a computed location) back to the Location Server in an LPP Provide Location Information message which terminates transaction T2.
As described above, the current 3GPP based technology uses point-to-point protocols such as LPP and LPP/LPPe to support LCS. The same applies to support of LCS in networks defined by 3GPP2 such as Code Division Multiple Access 2000 (CDMA2000) and High Rate Packet Data (HRPD) networks which also employ point to point positioning protocols between a server and mobile terminal such as the protocol defined in 3GPP2 TS C.S0022. The use of point-to-point protocols results in significant signaling and processing requirements on both the network and UEs and difficulty in providing location support for all UEs accessing a network. Furthermore, while LCS Assistance Data via broadcast has been standardized for GSM and UMTS access, it has not been deployed. One reason is the additional implementation impact to network base stations, Location Servers and UEs. Another reason is that the broadcast Assistance Data standards are based on 3GPP Release 98 (defined in 1999) and do not contain any Assistance Data enhancements defined since then. A third reason is that some broadcast capabilities, such as those already defined to support broadcast location Assistance Data for GSM and UMTS, have limited bandwidth and cannot broadcast large amounts of Assistance Data (e.g. GNSS ephemeris data) with a low latency. However, broadcast location Assistance Data remains potentially very useful. The problem is to define it in a manner that would be suitable for implementation and with adequate performance for receiving devices. Embodiments of the invention, described below, solve these and other problems.
I. Broadcast Support Using Point to Point
In
During the T1 transaction in
Exemplary enhancements to the LPP/LPPe Request Assistance Data message, as in step 201, are illustrated in
Briefly discussing
The content of the information block in
Returning back to
Transaction T2 for exchanging capabilities may include LPP/LPPe Request Capabilities message, as in step 204, from the Location Server 215 to the UE 220 and LPP/LPPe Provide Capabilities message, as in step 205, from the UE 220 to the Location Server 215. Exemplary enhancements to the LPPe Request Capabilities message for supporting broadcasting are further illustrated in
Embodiments of the invention may also select to implement a T3 transaction instigated by the Location Server 215 for acquiring the location estimates from the UE 220. At step 206, the Location Server 215 may send an LPP/LPPe Request Location Information message for requesting location estimates from the UE 220. In one embodiment, the UE 220 may use previously acquired Assistance Data in performing its location measurements and location computation, using the processor 2310, if requested, such as Assistance Data received at step 203 via a broadcast LPP/LPPe Provide Assistance Data message. In another embodiment, at step 207, the UE 220 may monitor for another, perhaps updated, broadcast LPP/LPPe Provide Assistance Data message for estimating location information. At step 225, the UE 220 may perform positioning (e.g. location measurements and possibly location computation) using Assistance Data received from the Location Server 215 in step 203 and/or step 207. In some embodiments, the processor 2310 of the UE uses Assistance Data previously stored in device storage 2325 or temporarily maintained in the Working memory 2335. At step 208, the UE 220 sends an LPP/LPPe Provide Location Information message with the location measurements or location estimate obtained in step 225 to the Location Server 215.
As shown at step 209, the Location Server 215 may continue to broadcast LPP/LPPe Provide Assistance Data messages with the Assistance Data to the UE 220 along with other UEs at scheduled intervals. The broadcast schedule may be communicated to the UE 220 point to point, for example may be provided in step 202 of
The UE 220 may continue to receive broadcast Provide Assistance Data messages, as shown at step 209. In addition to responding to requests by the Location Server 215 for location estimates (e.g. as in steps 206 and 208), the UE 220 may perform positioning (as shown at block 230) autonomously without requesting additional information from the Location Server 215. For instance, the UE 220 may perform positioning in response to an internal application request from the UE 220 itself and may make use of Assistance Data received via broadcast (e.g. in step 209) to support such positioning.
In some embodiments, the UE 220 may receive information from the Location Server 215 (e.g. in step 202 and/or step 203 of
Receiving Assistance Data via broadcast, as exemplified in
In the above described embodiment of
The Location Server 215 may adapt the scheduling of broadcast Assistance Data according to the types and number of point to point Assistance Data requests from UEs 2212. A particular type of broadcast Provide Assistance Data message may be sent at a higher frequency when many UEs request the information contained in order to reduce the amount of point to point provisioning. The frequency of Provide Assistance Data broadcast may also be increased when 1) the location requests from UEs or from LCS clients are high (e.g. has increased), 2) the time of the day corresponds statistically to high location activity, 3) the density of attached UEs is high, or 4) the Location Server becomes congested by point to point location services. The content of the broadcast Assistance Data can also be adapted to the level of UE support. For instance, A-GNSS ephemeris, almanac, acquisition assistance and other types of A-GNSS Assistance Data can be sent more often when a large number of attached UEs 2212 support UE based A-GNSS and are able to receive A-GNSS Assistance Data via broadcast. Assistance Data content may also be adapted to the types of access networks available in a local area. For instance, broadcast of WiFi and Femto Assistance Data can occur in indoor locations where there are many WiFi access points and Femtos but not outside where there are usually only a few access points or Femto cells. In some embodiments, Assistance Data, for example as requested by a UE 220, may provide information on where and/or how Assistance Data is being broadcast. For example, the message may indicate a geographic area or set of cell sites within which location Assistance Data is broadcast and/or identification of a system which is broadcasting the location Assistance Data. The Assistance Data may instead or in addition identify a type or types of Assistance Data that are broadcast.
The Assistance Data may be ciphered by the Location Server 215, using one or more processors 2310, to allow billing for the service and/or restriction to only certain sets of UEs (e.g., home subscribers but not roamers). Cipher keys may be the same or different over different local areas (e.g. same or different per cell or per group of cells) and may be changed at intervals. Additionally, the cipher keys may also be the same or different for different types of broadcast Provide Assistance Data messages. Different cipher keys allow different levels of service to different user groups overlapping the same service area and provide for a model for selective charging of users based on the service provided. As described in
It should be appreciated that the specific steps illustrated in
In some embodiments, some of the responsibilities of broadcasting Assistance Data are facilitated by a Broadcast Subsystem 506 and location server 504 as discussed in
It should be appreciated that the specific steps illustrated in
Ii. Broadcast Subsystem
In one embodiment, the Broadcast Subsystem 506 comprises a Gateway 510 and a RAN 508. In some embodiments, the Gateway 510 may be an MME or BM-SC the RAN 508 can be a system configured to operate within a GSM, UMTS, LTE, WiFi, CDMA2000, or HRPD network. The Location Server 504 broadcasts the Assistance Data via the Gateway 510 and the RAN 508 to the UE 502. In one embodiment, the message from the RAN 508 to the UE 502 is a Provide Assistance Data message, however, the interactions and data transmission between the Location Server 504 and the Gateway 510, and the Gateway 510 and the RAN 508 may comprise information associated with broadcasting Assistance Data rather than the final message that is broadcast out to the UEs. In one embodiment, Location Server 504 may perform the functions of Gateway 510 in which case Gateway 510 may not be present. Broadcasting assistance data from RAN 508 to UE/SET 502 may make use of a wireless network such a GSM, UMTS, LTE, CDMA2000, HRPD or WiFi network or access point (not shown in
At step 521, the UE 502 may send a LPP/LPPe Request Assistance Data message to the Location Server 504. An example of the additional parameters for the LPP/LPPe Request Assistance Data message may be partially represented by
After and possibly before the UE 502 obtains the information and/or deciphering keys, at step 523, the Location Server 504 may send Assistance Data to one or more nodes for broadcast, such as a Broadcast Subsystem 506. For example, the Location Server 504 may package location Assistance Data into LPP/LPPe Provide Assistance Data messages (e.g. as described with respect to
In one embodiment, the communications illustrated in
Referring to
Referring to
At Step 601, the Location Server 504 may package the Assistance Data to be broadcast into one or more LPP/LPPe Provide Assistance Data messages, using one or more processors 2310 and working memory 2335. Each LPP/LPPe Provide Assistance Data message may be well formed (i.e. can be decoded by a UE 502 independently of other messages). The content of each message may be location and/or time specific—e.g. may be applicable to a specific geographic area and/or to a specific period of time. Each message may include an end of transaction indication. Different messages may or may not carry different transaction IDs. In some instances, messages may not include an LPP sequence number or LPP acknowledgment request. The Location Server 504 may include in each message a unique message ID and the validity time and/or the validity area for the included Assistance Data. The Location Server may optionally cipher some or all messages.
At step 602, the Location Server 504 transports an LPP/LPPe Provide Assistance Data message to the Broadcast Subsystem 506. The Location Server 504 may include additional information such as broadcast triggering conditions (e.g. periodicity), priority, applicable geographic area and time period.
At step 603, the Location Server 504 may repeat step 602 to transport one or more additional LPP/LPPe Provide Assistance Data messages to the Broadcast Subsystem 506. Depending on the interface to the Broadcast Subsystem 506, some or all of the messages in steps 602 and 603 may be sent together as a single package.
During the rendering phase, LPP/LPPe Assistance Data is broadcast to the plurality of UEs. Depending on the Broadcast Subsystem 506, the rendering phase may include additional steps not shown in FIG. 6—e.g. advance notification by the Broadcast Subsystem 506 to the UE 502 of the type or types of Assistance Data to be later broadcast together with scheduling information, requests by interested UEs to the Broadcast Subsystem 506 for information to enable subsequent broadcast reception.
At step 604, the Broadcast Subsystem 506 may broadcast the LPP/LPPe Provide Assistance Data message received in step 602 without modification. The broadcast may occur from multiple nodes (e.g. from multiple base stations) and may be accompanied by additional information identifying, for example, the type of Assistance Data and use of ciphering. The broadcasting may also employ segmentation of a large broadcast message by the broadcast subsystem 506 into a number of smaller segments with reassembly of these segments into the original broadcast message at the UE 502. A UE 502 that is both able to and chooses to receive the broadcast, using the transceiver 2350, may decipher the message, using the processor 2310, if ciphering was employed and decode the message contents. If the message includes a message ID, the target UE 502 may discard the message if a broadcast message with the same message ID was received and stored within a period less than the validity time if a validity time was included in the message or less than a pre-determined time (e.g., 24 hours) otherwise. Otherwise, the UE 502 may store the Assistance Data from the message, overwriting any previous Assistance Data of the same type, if needed. The UE 502 may use the Assistance Data to support positioning until such time as the validity time (if included in the message) has expired or the UE 502 recognizes it is no longer in the validity area (if included in the message).
In one implementation, the Location Server 504 is responsible for ensuring that any message ID included in a previous broadcast message is not reused for a new broadcast message before the message validity time, if included in the previous message, or a default value, such as 24 hours, have expired since the final broadcast of the previous message. This action may help prevent confusion of the new message with the previous message by recipient UEs. In some implementations, message duplication may be recognized in other ways (e.g. via a Cyclic Redundancy Check (CRC) on the message contents). In the event that message duplication is not recognized, the same Assistance Data will be re-stored, in working memory 2335 or storage 2325, which may be inefficient, but may not harm UE 502 operation.
At step 605, the Broadcast Subsystem 506 broadcasts the one or more additional LPP/LPPe Provide Assistance Data messages received in step 603 in a similar manner to step 604. At step 606, broadcast of each message in steps 604 and 605 may be repeated and the periodicity or other triggering conditions for broadcasting each message may be the same or different.
During the termination phase, LPP/LPPe Assistance Data that no longer needs to be broadcast may be removed from the Broadcast Subsystem 506. Depending on the Broadcast Subsystem 506, the termination phase may include additional steps not shown in FIG. 6—e.g. notification by the Broadcast Subsystem 506 to the Location Server 504 concerning the actual number of broadcasts for each LPP/LPPe Provide Assistance Data message, the areas in which and/or nodes from which the broadcasts occurred and, if known, the size of the UE audience. At step 607, the Broadcast Subsystem 506 ceases broadcasting any message received at step 602 or 603 and deletes it when instructed by the Location Server 504 or when dictated by scheduling information originally received at step 602 or step 603, for example.
It should be appreciated that the specific steps illustrated in
As shown in
It should be appreciated that the specific blocks/steps illustrated in
Embodiments of the invention, as described in
To circumvent the above problem, the procedure exemplified in
The Location Server 504 may periodically re-broadcast the message in step 801 to reach additional targets. A UE 502 that receives the message in step 801 via broadcast may identify the message as belonging to the “Periodic/Triggered Assistance Data Transfer with Update” procedure from inclusion of the session ID S and the indication that this is a response to an initial request for periodic/triggered Assistance Data transfer. If a UE 502 receives a subsequent message via broadcast that is identified as belonging to step 801 and carries the same session ID S as that for an ongoing procedure of this type and if the message may not be identified as a duplicate of the message that initiated this procedure (e.g. from use of the same broadcast message ID), then the UE 502 may abort reception for the ongoing procedure and may instigate reception for a new procedure based on the control parameters included in the subsequent message.
When the first triggering or periodicity condition occurs, the Location Server 504 sends via broadcast (e.g. using the procedure in
The Location Server 504 or Broadcast Subsystem 506 may continue to broadcast further LPP/LPPe Provide Assistance Data messages containing new Assistance Data conforming to what was indicated in step 801 when each additional triggering or periodicity condition occurs. Each subsequent message may carry the session ID S, an arbitrary transaction ID T3 and an end of transaction indication. Messages broadcast in steps 802 and 803 may also be resent by the broadcast subsystem in order to reach more target UEs. UEs that already received these messages may determine that the additional transmissions are duplicates from inclusion of the same message IDs. The session may be terminated by the Location server 504 at any time, after which the session ID S may not be used again for a period of 24 hours in one implementation. A UE that is receiving the messages in steps 801, 802 and 803 may assume the procedure has terminated if step 802 or a repetition of step 803 are not observed for a period of time, such as an hour.
When the session is terminated, a Location Server 504 may optionally broadcast an LPP/LPPe Provide Assistance Data message to indicate that the session is terminated. The message may contain an arbitrary transaction ID T4, an indication that this is the end of a transaction, the periodic/triggered session ID S and an indication that this is a server update for a Periodic/Triggered Assistance Data transfer. The message may also contain LPPe control parameters indicating a zero or minimal duration (depending on what is defined for the associated Assistance Data) and a zero or minimal applicable geographic region. The message may be periodically re-broadcast to reach more UEs. Recipient UEs may then replace the old control parameters with the new ones and thereby end or soon end the session.
It should be appreciated that the specific steps illustrated in
III. Scheduling Using System Information Blocks (SIBs)
In one embodiment, where distinct broadcast channels are supported, Assistance Data information may be conveyed by particular broadcast channels. A broadcast channel may be some logical or physical portion of the overall broadcast capability supported by a particular broadcast subsystem. As an example, each distinct System Information Block (SIB) broadcast by LTE eNodeBs may be considered to be a separate broadcast channel. Distinct channels may be used either specifically or generically. With specific use, each broadcast channel may be assigned to carry just one type of broadcast PAD. The assignment of the broadcast PAD type may be fixed and standardized. Also, the assignment could be dynamic with each channel (or a master channel like SIB1 for LTE) defining the Assistance Data type ID conveyed by the particular channel. The dynamic information for each channel may be transmitted using a specific pre-designated channel, such as SIB1 or some other SIB in the case of LTE. SIB1 may also contain parameters needed to determine if a cell is suitable for cell selection, as well as information about the time domain scheduling of the other SIBs.
For generic use of broadcast channels, one channel may carry multiple types of broadcast PAD. The supported PAD type IDs and their associated scheduling for a particular broadcast channel may then be defined by a scheduling message with its own PAD type ID that is also broadcast on the same channel. In an alternate embodiment, as discussed before, the types of broadcast PADs transmitted on a particular broadcast channel and their scheduling could be provided by the server to each UE using a point to point connection with LPP/LPPe (e.g. as in steps 201 and 202 in
SIBs for LTE carry network related information to all UEs and may be broadcast in each cell by the eNodeB. Each SIB has a unique definition (e.g. in 3GPP TS 36.331) associated with specific data that it transports. One or more SIBs may be carried within a SIB message, which is broadcast with a defined periodicity, such as 8 to 512 radio frames (e.g. 1 radio frame may occupy 10 msecs). One or more SIB messages may be broadcast each containing a distinct set of SIBs.
In another embodiment, when multiple PAD types can be conveyed within one SIB, the server may provide a master schedule for the SIB to each eNodeB using the 3GPP LPPa protocol defined in 3GPP TS 36.455. Alternatively, each eNodeB could create its own master schedule based on less detailed scheduling instructions from the server. The master schedule determines the scheduling of Provide Assistance Data messages within the SIB and may itself be broadcast. The schedule for broadcasting the master schedule itself may be referred to in the SIB and, in one embodiment, may be further referred to in the master schedule as well. In one embodiment, the PAD type used to refer to the master schedule uses a reserved PAD type (e.g. of zero). The master schedule defines the order of Provide Assistance Data messages or Provide Assistance Data segments when segmentation is used that are broadcast within the SIB and may include the schedule for an integral number of transmissions for each PAD message in order that when the sequence of PAD transmissions defined within the master schedule are complete there will be no outstanding un-transmitted segments for any PAD message. In addition, Provide Assistance Data message content may not change for any PAD message during one master scheduling cycle (in order that recipient UEs only need to receive one transmission of each message during the master scheduling cycle, for example), but may change in a new cycle.
IV. Ciphering/Authentication
Encapsulated and Unencapsulated Broadcast Assistant Data Message:
A broadcast Assistance Data message (e.g. as broadcast according to
Broadcast capable UEs may be informed of the variant being used by a server by point to point means—e.g. whether the server uses variant (a), (b), (c) or (d) above. Target UEs that have minimal broadcast capability (e.g. that do not support reception of Assistance Data point to point related to broadcast support and do not support variants (c) and (d) above) may assume the unencapsulated variant (a) or (b) and may then encounter decoding errors if the encapsulated variant (c) or (d) is used. Such UEs may then cease employing a particular broadcast system for receiving broadcast messages once a certain number of consecutive decoding errors are encountered.
The broadcast control parameters enable detection of an already received broadcast message and may contain information on the geographic and time applicability of the message and the types of Assistance Data included. The cipher key ID and counter value (block 1204) are included when ciphering is used and enable a recipient UE to determine the key value to be used for deciphering. The message portion (block 1206) contains an LPP or LPP/LPPe Provide Assistance Data message and may be ciphered. A digital signature (block 1208) may be appended, as shown in
The broadcast control parameters (block 1302) enable detection of an already received broadcast message and may contain information on the geographic and time applicability of the message and the types of Assistance Data included. The cipher key ID and counter value (block 1304) are included when ciphering is used. The message portion (block 1306) contains an LPP or LPP/LPPe Provide Assistance Data message and may be ciphered. A digital signature (block 1308) may be prepended, as shown in
As shown in
In one embodiment, the Location Server may digitally sign the broadcast message. In one implementation, the Location Server may use asymmetric cryptography, such as RSA or elliptical cryptography or any other suitable means for digitally signing the broadcast message. In some aspects, a hash of the broadcast message may be signed. The Location Server may sign portions of the message or the entire encapsulated broadcast message. Authentication options enable a server to protect target UEs against spoofing of broadcast data by an attacker. The server may, for example, instruct all UEs via point to point means (e.g. as in steps 201 and 202 of
Ciphering the Broadcast Assistant Data Message:
The Location Server may cipher the broadcast message. As shown in
C1=(C0+D0)mod 2**128 (Equation 1),
where all values are treated as non-negative integers. In equation 1 and in other equations here, the double asterisk notation (**) denotes exponentiation. The value for D0 may be different for different broadcast messages and may help ensure that the counters derived from C1 for each message are different to the counters derived for any other message. To obtain any subsequent counter Ci from the previous counter Ci−1 for any message (as needed for counter mode AES deciphering of the message blocks contained within a message), the following operation may be used:
Ci=(Ci−1+1)mod 2**128 (Equation 2).
Authenticating the Broadcast Assistance Data Message:
The broadcasted Provide Assistance Data messages may be optionally digitally signed by the server to protect target UEs against spoofing of broadcast data by an attacker. The server may be the Location Server or a node part of the Broadcast Subsystem. Assistance data may be optionally digitally signed using techniques such as asymmetric cryptography. In one implementation, the RSASSA-PSS variant of the PKCS#1 v.2.1 RSA method defined in “PKCS#1 v2.1: RSA Cryptography Standard”, RSA Laboratories, published in June 2002 and in Internet Engineering Task Force (IETF) Request For Comments (RFC) 3447 where IETF RFC 3447 may take precedence for conflicts. These references define a set of fixed procedures and some optional procedures. An exemplary method for LPP/LPPe may use the following procedures and options for authentication, as shown in Table 1 below:
TABLE 1
Applicable Authentication Procedures and Options
PKCS#1 v2.1 and
Authentication Input
Procedure or Option Used
RFC 3447 section
Encoding method
EMSA-PSS
9.1
Hash Function
SHA-256 as defined in NIST
9.1.1, 9.1.2
180-4
Mask Generation
MGF1 with SHA-1 as defined
B.2.1
Function
in NIST 180-4
Encoding salt length
0 to 32 octets (exact value is
9.1
provided by the server)
RSA modulus n (and
2048 bits
8.1
signature length)
Signature Generation
RSASSA-PSS-SIGN
8.1.1
Signature Verification
RSASSA-PSS-VERIFY
8.1.2
In Table 1, NIST 180-4 refers to NIST Federal Information Processing Standard (FIPS) Publication 180-4, “Secure Hash Standards (SHS)”, published in March 2012. In one embodiment, the authentication procedure may be performed at the UE using asymmetric cryptography. Asymmetric cryptography uses a key pair, comprising of a private and public key. A message containing a digital signature created using the private key may be verified using the public key. In one implementation, the server has access to the private key and the UEs have access to the public key. For example, the public key may be transferred by a server to a UE by point to point means as in steps 201 and 202 of
At the server, a digital signature may be computed over the entire broadcast message (that has already been ciphered if ciphering is used) by first hashing and masking the message to yield a message representation of fixed length, such as 2047 bits. The message representation may then be signed using the RSA private key generating a signature of length 2048 bits. At the UE, the digital signature may be retrieved from the broadcast message and may be converted back to an expected message representation using the RSA public key. The expected message representation may then be compared against the actual message representation derived from the received message and if they are equal, the broadcast message is verified and authenticated.
The public key and a salt length for the authentication may be provided to a UE by a server and may be assigned a unique ID by the server. The transfer of the public key and the salt length to the UE may occur using point to point LPP/LPPe before the UE begins to receive broadcast Assistance Data—e.g. as described for step 201 and 202 in
A UE may authenticate any broadcast message received that contains a digital signature if the UE already has the identified public key and salt length. If a server has earlier indicated by point to point means that authentication shall be used for a particular broadcast system, a UE may ignore any broadcast message received that does not contain the digital signature. Broadcast messages that fail authentication may also be discarded and the UE may cease using the associated broadcast system for some implementation dependent time period.
In one embodiment, when receiving a new broadcast message, a target may perform verification and decoding using the following steps (described in more detail in
In one embodiment, a server generates the broadcast message and is a Location Server 504. In another embodiment, the broadcast message is broadcast using a server belonging to a node, such as a Broadcast Subsystem 506. The device discussed below may represent a UE 502/2212 and perform embodiments of the invention. One or more processors may be used to decipher and authenticate messages. In some instances, a co-processor such as a crypto-processor may be used for certain functions.
As shown if
The order described with respect to the flow diagram is an exemplary order and may be reordered in any suitable manner without departing from the scope of the invention. In some implementations, various steps may be performed simultaneously. The method of
At block 1402, the device receives or begins to receive a broadcast message, using the transceiver 2350. In one embodiment, the device begins processing the information, using the processor 2310, comprised in the broadcast message while still receiving portions of the broadcast message. For instance, the device may start processing portions of the broadcast control parameters and/or header associated with the broadcast message before or while receiving other portions of the broadcast message.
In some implementations, it may be advantageous to process portions of the header and/or broadcast control parameters before processing the rest of the message. For instance, for a ciphered message, the broadcast control parameters may provide more information on the protocol and keys used in ciphering the message. Similarly, for a digitally signed message, the device may retrieve the appropriate public key, convert the digital signature and also start hashing portions (or blocks) of the digital message as it is received by the device. Also, various steps for authenticating a message, such as converting the digital signature and hashing the message, may also be performed simultaneously or in parallel to each other. It may be an advantage to begin processing the message, using the processor 2310, while it is still being received in order to more quickly determine if the message is valid, of use to the UE and can be completely decoded. If one or more of these conditions is not fulfilled, the UE may cease receiving the message thereby saving radio resources and possibly permitting other activities to more quickly occur.
At block 1404, the device determines that the broadcast message is or is not a duplicate message using broadcast control parameters, at the processor 2310 using stored information at the working memory 2335 or other buffers. In an exemplary implementation, this may be determined using a timestamp or a unique message ID embedded in the header of the message. In one exemplary embodiment, a timestamp may be included in the message data that is digitally signed for the broadcast message, thus preventing an attacker from resending a message with a valid digital signature at some later time that is inconsistent with the timestamp.
At block 1406, the device determines, using the processor 2310, whether the broadcast message is applicable to the device by checking the time and geographic applicability of the broadcast message. For instance, a broadcast message with an old timestamp, an old time duration or a time duration in the future that has yet to occur or a broadcast message that belongs to a different geographic area or different area of a network may be discarded by the device. In some embodiments, a device may choose to receive and store a broadcast message carrying a time duration applicable to some future time instead of discarding the message.
At block 1408, the device determines, using the processor 2310, if the broadcast message has the Assistance Data of interest to the device. The device may determine the interest based on the Assistance Data type parameters of the broadcast control parameters associated with the broadcast message.
At block 1410, the device may determine, using the processor 2310, if the one or more keys needed for the authentication or/and deciphering steps are present on the device. In some embodiments, prior to performing this step, the device may check if the device is configured to receive authenticated and ciphered messages. The keys may be partially or fully exchanged during the point-to-point communication between the server and the device (e.g. as in steps 201 and 202 in
At block 1412, the device may verify the digital signature of the message, using the processor 2310, if one is included. As shown in
In one embodiment, the digital signature is converted using a public key stored at the device. The digital signature for the broadcast message may be generated using an RSA algorithm. In one implementation, the RSASSA-PSS variant of the PKCS#1 v.2.1 RSA method is used as described herein above. Prior to generating the digital signature, the server may first hash the contents of the broadcast message using a one-way function as described herein in association with Table 1. In one implementation, a Secure Hash Algorithm 1 (SHA-1) algorithm is used for hashing the broadcast message contents as referred to herein in Table 1. Once the message is hashed and masked to a shorter string (e.g. containing 2047 bits), the string is digitally signed using RSA (e.g. to create a digital signature containing 2048 bits). If the broadcast message is to be ciphered, then the contents may be ciphered before digitally signing the message. This allows the device to digitally authenticate the message before deciphering the message.
Upon receiving the broadcast message, the device digitally authenticates the message if authentication is enabled. The server and the device may negotiate through point-to-point communication prior to the broadcasting if authentication may be used as part of the communication. If the device is configured to authenticate messages, and the device receives messages without the digital signature or if the digital signature fails verification, the device may discard the message. If repeated discarding of the broadcast messages is necessitated due to failed authentication, the device may cease to receive broadcast messages via a particular broadcast system and/or in a particular area, temporarily or permanently, or may switch to a different mechanism of receiving messages. For instance, the device may switch back to a point-to-point protocol with the server or obtain new keys from the server.
In one embodiment, if the device is configured to authenticate broadcast messages and if the messages have a prepended digital signature, similar to
At block 1414, the message content may be deciphered if ciphering is enabled, using the processor 2310. In one embodiment, the device may discover if ciphering is enabled by inspecting the broadcast control parameters. As shown in
It should be appreciated that the specific blocks/steps illustrated in
The algorithm makes user of a sequence of counters <C1, C2, C3, . . . > each containing 128 bits, where C1 is specified by the server and each subsequent counter (C2, C3 etc.) is obtained from the previous counter by adding one modulo 2**128. Each counter Ci is ciphered using the AES algorithm with a common 128 bit key to produce an output block Oi of 128 bits. To perform ciphering of a broadcast message, the LPP/LPPe message is divided into blocks B1, B2, . . . Bn of 128 bits each, except for the last block Bn which may contain fewer than 128 bits. The ciphered message is obtained as a sequence of n blocks containing 128 bits each (except possibly for the last block) given by (O1 XOR B1), (O2 XOR B2), . . . (On XOR Bn), where XOR denotes bitwise exclusive OR. In the case of the last block, if Bn contains m bits (m<128), then the m most significant bits of On would be used for the exclusive OR. Deciphering is performed in the same way except that the blocks B1, B2, . . . Bn are now obtained from the ciphered message and the result of the exclusive OR operations yields the original unciphered message.
Abstract Syntax Notation One (ASN.1) Tables:
In
The possible restrictions and labeling shown in
To support the novel encapsulation, data type labeling, point to point assistance, ciphering and authentication as applicable to the LPP/LPPe protocol, new LPP/LPPe extensions may be defined in some implantations.
In other embodiments, message extensions partly or completely different to those exemplified in
Referring to
The BTSs 2214 can wirelessly communicate with the UEs 2212 via antennas. Each of the BTSs 2214 may also be referred to as a base station, an access point, an access node (AN), a Node B, an evolved Node B (eNodeB), etc. The BTSs 2214 are configured to communicate with the UEs 2212 under the control of the BSC 2218 via multiple carriers. Each of the BTSs 2214 can provide communication coverage for a respective geographic area, here the respective cells 2216. Each of the cells 2216 of the BTSs 2214 is partitioned into multiple sectors as a function of the base station antennas. In some embodiments, one or more of the BTSs 2214 are implemented in the RAN 508 illustrated in
The system 22 may include only macro base stations 2214 or it can have base stations 2214 of different types, e.g., macro, pico, and/or femto base stations, etc. A macro base station may cover a relatively large geographic area (e.g., several kilometers in radius) and may allow unrestricted access by terminals with service subscription. A pico base station may cover a relatively small geographic area (e.g., a pico cell) and may allow unrestricted access by terminals with service subscription. A femto or home base station may cover a relatively small geographic area (e.g., a femto cell) and may allow restricted access by terminals having association with the femto cell (e.g., terminals for users in a home).
The UEs 2212 can be dispersed throughout the cells 2216. The UEs 2212 may be referred to as terminals, mobile stations, mobile devices, user equipment (UE), subscriber units, etc. The UEs 2212 shown in
A computer system as illustrated in
The computer system 2300 is shown comprising hardware elements that can be electrically coupled via a bus 2305 (or may otherwise be in communication, as appropriate). The hardware elements may include one or more processors 2310, including without limitation one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices 2315, which can include without limitation a mouse, a keyboard and/or the like; and one or more output devices 2320, which can include without limitation a display device, a printer and/or the like.
The computer system 2300 may further include (and/or be in communication with) one or more storage devices 2325, which can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like. Such storage devices may be configured to implement any appropriate data stores, including without limitation, various file systems, database structures, and/or the like.
The computer system 2300 may also include a communications subsystem 2330, which can include without limitation a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device and/or chipset (such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. The communications subsystem 2330 may permit data to be exchanged with a network (such as the network described below, to name one example), other computer systems, and/or any other devices described herein. In many embodiments, the computer system 2300 will further comprise a working memory 2335, which can include a RAM or ROM device, as described above.
The computer system 2300 may also include a transceiver 2350 for transmitting and receiving messages. The transceiver 2350 may comprise components, such as a transmitter and a receiver which are combined and share common circuitry or a single housing or may be separate. The transceiver 2350 may be modified to communicate with one or more network configurations, such as GSM, a CDMA, a WCDMA, a CMDA2000 1xRTT, or a LTE network.
The computer system 2300 also can comprise software elements, shown as being currently located within the working memory 2335, including an operating system 2340, device drivers, executable libraries, and/or other code, such as one or more application programs 2345, which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein. Merely by way of example, one or more procedures described with respect to the method(s) discussed above might be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in an aspect, then, such code and/or instructions can be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods.
A set of these instructions and/or code might be stored on a computer-readable storage medium, such as the storage device(s) 2325 described above. In some cases, the storage medium might be incorporated within a computer system, such as the system 2100. In other embodiments, the storage medium might be separate from a computer system (e.g., a removable medium, such as a compact disc), and/or provided in an installation package, such that the storage medium can be used to program, configure and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by the computer system 2300 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system 2300 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.) then takes the form of executable code.
It will be apparent to those skilled in the art that substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed.
As mentioned above, in one aspect, some embodiments may employ a computer system (such as the computer system 2300) to perform methods in accordance with various embodiments of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system 2300 in response to processor 2310 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 2340 and/or other code, such as an application program 2345) contained in the working memory 2335. Such instructions may be read into the working memory 2335 from another computer-readable medium, such as one or more of the storage device(s) 2325. Merely by way of example, execution of the sequences of instructions contained in the working memory 2335 might cause the processor(s) 2310 to perform one or more procedures of the methods described herein.
The terms “machine-readable medium” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. Computer readable storage medium does not refer to transitory propagating signals. In an embodiment implemented using the computer system 2300, various computer-readable media might be involved in providing instructions/code to processor(s) 2310 for execution and/or might be used to store such instructions/code. In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take the form of a non-volatile media or volatile media. Non-volatile media include, for example, optical and/or magnetic disks, such as the storage device(s) 2325. Volatile media include, without limitation, dynamic memory, such as the working memory 2335.
Common forms of physical and/or tangible computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip or cartridge, etc.
The methods, systems, and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, in alternative configurations, the methods may be performed in an order different from that described, and/or various stages may be added, omitted, and/or combined. Also, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.
Specific details are given in the description to provide a thorough understanding of example configurations (including implementations). However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. This description provides example configurations only, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations will provide those skilled in the art with an enabling description for implementing described techniques. Various changes may be made in the function and arrangement of elements without departing from the spirit or scope of the disclosure.
Also, configurations may be described as a process which is depicted as a flow diagram or block diagram. Although each may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figure. Furthermore, examples of the methods may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a non-transitory computer-readable medium such as a storage medium. Processors may perform the described tasks.
Having described several example configurations, various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the disclosure. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the embodiments described herein. Also, a number of steps may be undertaken before, during, or after the above elements are considered. Accordingly, the above description does not bound the scope of the claims.
The description herein and attached figures describe a general method or protocol of broadcasting communications that can be applied to any number of networks and/or architectures. Thus, although the above description refers to LPP/LPPe, the above examples are not limited to the enumerated embodiments. Those of skill in the art will appreciate how to extend the concepts described herein to other systems or architectures. For example, user plane location-based services may be combined with any number of broadcast services according to the description herein. In some embodiments, a user and/or device may subscribe to any number of broadcast services or receive localized Assistance Data pursuant to the description herein. In this way, a user or device is not required to receive a generic set of data, but may in addition or instead receive regional data or other information that varies by region.
Further, the description herein and attached figures provide the ability to broadcast location Assistance Data in the form of LPP and LPP/LPPe messages. The description and figures further enable a common and extensible standard for location assistance broadcast that is aligned with point to point location support using LPP/LPPe and that can be used with any broadcast mechanism (e.g. BCAST, (e)MBMS, SIBs etc.). In some embodiments, charging for location assistance via broadcast is possible via ciphering. In some embodiments, support of positioning by user devices will be enhanced due to faster access to Assistance Data. In some embodiments, network loading can be reduced in comparison to point to point assistance.
One embodiment for accomplishing the benefits herein includes a UE or SET using LPP/LPPe point to point over SUPL (or possibly control plane with LTE access) to obtain information on broadcast Assistance Data availability and any decipher keys, for example form a Location Server. The embodiment may further include a Location Server packaging location Assistance Data into LPP or LPP/LPPe Provide Assistance Data messages, which are sent to a gateway (e.g. eMBMS BM-SC) or other node (e.g. MME for LTE SIB broadcast) for onward transfer to a RAN for broadcast from network base stations.
The description herein and/or attached figures may be implemented or described in a standard in some embodiments, for example to increase interoperability between devices. For example, OMA may create a new version of LPPe to enable Assistance Data to be broadcast in a standard manner and to provide a UE or SET with associated information (e.g. decipher keys). Use of LPPe to support broadcast Assistance Data may avoid additional impacts to encode Assistance Data in a different way. It may also enable broadcast using any system (e.g. not just SIBs). Further, LPPe may be used point to point (e.g. with SUPL) to provide pre-information to a UE or SET—e.g. deciphering keys and/or availability and types of broadcast Assistance Data in different areas.
In addition to the benefits above, for example supporting a wide range of access types, LPPe in combination with LPP can support a wide range of positioning methods including A-GNSS (both code phase and high accuracy carrier phase variants), OTDOA for LTE and WCDMA, Enhanced Observed Time Difference (E-OTD), enhanced cell ID (for each wireless access type including WiFi), short range node associated positioning and use of sensors. These methods may be used in terminal assisted and terminal based modes. The terminal based mode may be useful for supporting applications on the terminal and functions, for example when the terminal already has needed or desired Assistance Data or can rapidly acquire Assistance Data from a network server (e.g. SUPL SLP or LTE E-SMLC) via broadcast.
Implementations or embodiments of the description herein and/or the attached figures may enable (A) broadcast of Assistance Data within LPP/LPPe Provide Assistance Data messages, and/or (B) the ability for a terminal to obtain information from a Location Server relevant to broadcasting in (A). Such implementations or embodiments may include provision of deciphering keys to a terminal and information on broadcast availability (e.g. from which system(s) and in which areas).
Implementations or embodiments of the description herein and/or the attached figures may ensure LPP and LPP/LPPe Provide Assistance Data messages can be broadcast in an unsolicited manner and containing any data that may be associated with local base stations and WiFi APs (examples include coordinates and GNSS timing association). Implementations or embodiments of the description herein and/or the attached figures may also enable labeling of different types of Assistance Data by any broadcast system that will support LPP and/or LPP/LPPe Assistance Data broadcast. For example, labeling could be achieved by assigning numeric identifiers to different types or different combinations of types of Assistance Data (e.g. assign type 1 to A-GNSS ephemeris, type 2 to A-GNSS almanac, type 3 to WiFi assistance etc.). The labeling may enable a broadcast system to indicate to terminals the types of Assistance Data being broadcast so a terminal can decide which data to receive and decode.
Implementations or embodiments of the description herein and/or the attached figures may further enable a terminal to request Assistance Data from a Location Server (in a point to point manner) that is applicable to broadcast. Such Assistance Data may support ciphering of broadcast Assistance Data and may provide information on where and how Assistance Data is being broadcast (e.g. a geographic area or set of cell sites within which location Assistance Data is broadcast and identification of the broadcast system) as well as identifying the type or types of Assistance Data that are broadcast. In addition, implementations or embodiments of the description herein and/or the attached figures may define terminal and server capabilities associated with broadcast Assistance Data support; provide guidance for support of LPPe broadcast by specific broadcast systems such as LTE SIBs, BCAST, and eMBMS; and/or provide guidance on how servers can create LPP and LPP/LPPe broadcast messages, manage scheduling, and/or change broadcast content. By receiving location Assistance Data transferred via broadcast, terminals can accumulate Assistance Data in advance and avoid both delay and use of network signaling when a location service is needed or desired. This may be beneficial, for example, when a terminal loses network access and/or to alleviate server congestion.
Embodiments of the invention as described above may use various protocol messages. In one embodiment, parameters for messages pertaining to the LPPe standard are added to support embodiments of the invention for broadcasting location Assistance Data. The parameters may be added to the OMA LPPe standard, but are not limited to any particular standard. Thus, the messages described in
Implementations or embodiments of the description herein and/or the attached figures may allow operators to deploy an improved location service that can be available to both home users and roamers. Charging for the service is possible using ciphering. The service can provide augmentation of other broadcast services from an operator.
The methods, systems, devices, implementations, and embodiments discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, in alternative configurations, the methods may be performed in an order different from that described, and/or various stages may be added, omitted, and/or combined. Also, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.
Specific details are given in the description to provide a thorough understanding of example configurations (including implementations). However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. This description provides example configurations only, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations will provide those skilled in the art with an enabling description for implementing described techniques. Various changes may be made in the function and arrangement of elements without departing from the spirit or scope of the disclosure.
Also, configurations may be described as a process that is depicted as a flow diagram or block diagram. Although each may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figure. Furthermore, examples of the methods may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a non-transitory computer-readable medium such as a storage medium. Processors may perform the described tasks.
Having described several example configurations, various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the disclosure. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the invention. Also, a number of steps may be undertaken before, during, or after the above elements are considered. Accordingly, the above description does not bound the scope of the claims.
The use of “capable of”, “adapted to” or “configured to” herein is meant as open and inclusive language that does not foreclose devices adapted to or configured to perform additional tasks or steps. Additionally, the use of “based on” is meant to be open and inclusive, in that a process, step, calculation, or other action “based on” one or more recited conditions or values may, in practice, be based on additional conditions or values beyond those recited. Headings, lists, and numbering included herein are for ease of explanation only and are not meant to be limiting.
While the present subject matter has been described in detail with respect to specific embodiments thereof, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing may readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, it should be understood that the present disclosure has been presented for purposes of example rather than limitation, and does not preclude inclusion of such modifications, variations and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art.
Fischer, Sven, Edge, Stephen William, Hawkes, Philip Michael
Patent | Priority | Assignee | Title |
11191056, | Aug 08 2018 | Qualcomm Incorporated | Systems and methods for validity time and change notification of broadcast location assistance data |
11290848, | Nov 16 2017 | Sony Corporation | Estimate of a location of the terminal devices |
11356804, | Feb 25 2018 | Qualcomm Incorporated | Systems and methods for efficiently supporting broadcast of location assistance data in a wireless network |
Patent | Priority | Assignee | Title |
6313787, | Nov 12 1999 | Google Technology Holdings LLC | Method and apparatus for assisted GPS protocol |
8463294, | Apr 06 2010 | HTC Corporation | Apparatuses and methods for reporting positioning information of a mobile communications device |
20050272405, | |||
20050272439, | |||
20070049344, | |||
20070120737, | |||
20070257838, | |||
20080182592, | |||
20080242373, | |||
20090061898, | |||
20090208001, | |||
20090253422, | |||
20100090822, | |||
20100167746, | |||
20100232362, | |||
20100283677, | |||
20110032859, | |||
20110039577, | |||
20110081884, | |||
20110212733, | |||
20110244889, | |||
20120252492, | |||
20130033999, | |||
20130225185, | |||
20130237247, | |||
20130252630, | |||
20130305053, | |||
CN101888587, | |||
JP2001208825, | |||
JP2006058178, | |||
WO2008084382, | |||
WO2010105213, | |||
WO2011069555, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 29 2012 | Qualcomm Incorporated | (assignment on the face of the patent) | / | |||
Sep 06 2012 | HAWKES, PHILIP MICHAEL | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028990 | /0936 | |
Sep 10 2012 | FISCHER, SVEN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028990 | /0936 | |
Sep 17 2012 | EDGE, STEPHEN WILLIAM | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028990 | /0936 |
Date | Maintenance Fee Events |
Oct 06 2015 | ASPN: Payor Number Assigned. |
Jul 16 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 19 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 23 2019 | 4 years fee payment window open |
Aug 23 2019 | 6 months grace period start (w surcharge) |
Feb 23 2020 | patent expiry (for year 4) |
Feb 23 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 23 2023 | 8 years fee payment window open |
Aug 23 2023 | 6 months grace period start (w surcharge) |
Feb 23 2024 | patent expiry (for year 8) |
Feb 23 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 23 2027 | 12 years fee payment window open |
Aug 23 2027 | 6 months grace period start (w surcharge) |
Feb 23 2028 | patent expiry (for year 12) |
Feb 23 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |