Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
GLOBAL NAVIGATION SATELLITE SYSTEM INTERFERENCE ATTACK DETECTION
Document Type and Number:
WIPO Patent Application WO/2022/015503
Kind Code:
A1
Abstract:
Methods, apparatus, and systems for detecting signals interfering with satellite signaling and determining a location of the interfering source are disclosed. In one example aspect, a method for detecting a signal directed at interfering with satellite signaling includes receiving, by a receiving node, a signal from a signal source, the signal produced by the signal source disguised as a satellite signal; determining an estimated position of the receiving node based on an orbital position of the satellite and a characteristic of the signal; comparing the estimated position of the receiving node with a reference position of the receiving node; determining that the signal source is a spoofing source different than the satellite; and determine a location of the spoofing source in part based on the estimated position.

Inventors:
BOUTHEMY JEAN-LUC (US)
Application Number:
PCT/US2021/039690
Publication Date:
January 20, 2022
Filing Date:
June 29, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
T MOBILE USA INC (US)
International Classes:
G01S3/02; G01S19/21; G01S5/02; G01S5/04; H04B7/185
Foreign References:
KR102088716B12020-03-13
KR20180057002A2018-05-30
KR20200010902A2020-01-31
US20150226858A12015-08-13
US20130002477A12013-01-03
Attorney, Agent or Firm:
AHUJA, Sumedha (US)
Download PDF:
Claims:
CLAIMS

1. An apparatus for detecting a spoofing signal directed at interfering with satellite signaling, comprising: a processor; and a memory including processor-executable instructions stored thereon, the processor- executable instructions upon execution by the processor configures the processor to: receive a signal from a signal source, wherein the signal source is disguised as a satellite; determine an estimated position of the receiving node based on an orbital position of the satellite and a characteristic of the signal; compare the estimated position of the receiving node with a reference position of the receiving node; determine that the signal source is a spoofing source different than the satellite; and determine a location of the spoofing source in part based on the estimated position.

2. The apparatus of claim 1, wherein the processor-executable instructions further comprise instructions to receive location signals from multiple proximate receivers and determine the location of the spoofing source based the estimated position and received location signals.

3. The apparatus of claim 1, further comprising multiple antennas, and wherein the processor is configured to: determine multiple estimated positions for the multiple antennas based on the orbital position of the satellite and the characteristic of the signal; and determine the location of the spoofing source based on triangulation of the multiple estimated positions.

4. The apparatus of claim 1, wherein the characteristic of the signal comprises a reception angle of the signal, and wherein the processor is configured to compare the reception angle of the signal with a range of expected reception angles based on the original position of the satellite.

5. The apparatus of claim 1, wherein the processor is configured to receive ephemeris data and configuration information from a cellular network indicating the reference position of the receiving node, wherein the cellular network comprises a Long-Term Evolution (LTE) wireless network or a Fifth-Generation (5G) wireless network, and wherein the configuration information comprises assistance information from the cellular network.

6. The apparatus of claim 1, wherein the apparatus is embedded in an autonomous vehicle or a wearable computing device.

7. The apparatus of claim 1, wherein the processor is configured to determine the reference position of the receiving node based on past signals from a cellular network that comprises a Long-Term Evolution (LTE) wireless network or a Fifth-Generation (5G) wireless network.

8. An apparatus for a spoofing source directed at interfering with satellite signaling from a satellite, comprising: a processor; and a memory including processor-executable instructions stored thereon, the processor- executable instructions upon execution by the processor configures the processor to: receiving a first set of information from a first communication node in a communication network indicating a first estimated location of the spoofing source; receiving a second set of information from a second communication node in the communication network indicating a second estimated location of the spoofing source; receiving a third set of information from a third communication node in the communication network indicating a third estimated location of the spoofing source; and determining a final location of the spoofing source based on triangulating the first, second, and third estimated locations of the spoofing source.

9. The apparatus of claim 8, wherein the first communication node, the second communication node, and the third communication node are mobile devices in the communication network.

10. The apparatus of claim 8, wherein the processor is configured to provide an orbital position of the satellite to the first, the second, and the third communication nodes.

11. A computer-implemented method for detecting a signal directed at interfering with satellite signaling, the method comprising: receiving, by a receiving node, a signal from a signal source, wherein the signal produced by the signal source is disguised as a satellite signal; determining, by the receiving node, an estimated position of the receiving node based on an orbital position of the satellite and a characteristic of the signal; comparing, by the receiving node, the estimated position of the receiving node with a reference position of the receiving node; determining, by the receiving node, that the signal source is a spoofing source different than the satellite; and determining, by the receiving node, a location of the spoofing source in part based on the estimated position.

12. The method of claim 11 , further comprising: receiving location signals from multiple proximate receivers and determine the location of the spoofing source based the estimated position and received location signals.

13. The method of claim 11, wherein the receiving node comprises multiple antennas, the method further comprising: determining multiple estimated positions for the multiple antennas based on the orbital position of the satellite and the characteristic of the signal; and determining the location of the spoofing source based on triangulation of the multiple estimated positions.

14. The method of claim 11 , wherein the characteristic of the signal comprises a reception angle of the signal, and wherein the comparing comprises: comparing, by the receiving node, the reception angle with a range of expected reception angles based on the original position of the satellite.

15. The method of claim 11 , comprising: receiving, by the receiving node, configuration information from a cellular network indicating the reference position of the receiving node, wherein the cellular network comprises a Long-Term Evolution (LTE) wireless network or a Fifth- Generation (5G) wireless network.

16. The method of claim 14, wherein the configuration information comprises assistance information from the cellular network.

17. The method of claim 11 , comprising: determining, by the receiving node, the reference position of the receiving node based on past signals from a cellular network that comprises a Long-Term Evolution (LTE) wireless network or a Fifth-Generation (5G) wireless network.

18. The method of claim 11, wherein the receiving node comprises a fixed base station or a mobile device.

19. A computer-implemented method for determining a location of a spoofing source, comprising: receiving, by a network node in the communication network, a first set of information from a first communication node indicating a first estimated location of the spoofing source; receiving, by a network node, a second set of information from a second communication node indicating a second estimated location of the spoofing source; receiving, by a network node, a third set of information from a third communication node indicating a third estimated location of the spoofing source; and determining, by the network node, a final location of the spoofing source based on triangulating the first, the second, and the third estimated locations of the spoofing source.

20. The method of claim 19, wherein the first communication node, the second communication node, and the third communication node are mobile devices.

Description:
GLOBAL NAVIGATION SATELLITE SYSTEM INTERFERENCE ATTACK

DETECTION

BACKGROUND

[0001] A Global Navigation Satellite System (GNSS) refers to a constellation of satellites providing signals from space to transmit positioning and timing data to GNSS receivers. In general, GNSS signals have low power. A weak interference source can cause a GNSS receiver to fail or to produce hazardously misleading information. The issue of intentional or inadvertent interference to GNSS signals is of growing concern throughout the world.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] FIG. 1 illustrates an example scenario in which a GNSS receiver receives signals from a satellite in accordance with one or more embodiments of the present technology.

[0003] FIG. 2 illustrates an example of representing a position of a GNSS device or a satellite using spherical coordinates in accordance with one or more embodiments of the present technology.

[0004] FIG. 3 illustrates an example of detecting a jamming signal that interferes satellite signals by a fixed station in accordance with one or more embodiments of the present technology.

[0005] FIG. 4 illustrates an example of detecting a jamming signal that interferes a satellite signal by a mobile device in accordance with one or more embodiments of the present technology.

[0006] FIG. 5 illustrates an example of detecting a jamming signal that blocks a satellite signal in accordance with one or more embodiments of the present technology.

[0007] FIG. 6 illustrates an example of determining a location of a GNSS jamming device in accordance with one or more embodiments of the present technology. [0008] FIG. 7 illustrates another example of determining a location of a GNSS jammer in accordance with one or more embodiments of the present technology.

[0009] FIG. 8 illustrates a method for detecting a signal directed at interfering with satellite signaling in accordance with one or more embodiments of the present technology.

[0010] FIG. 9 illustrates a method for determining a location of a spoofing source in accordance with one or more embodiments of the present technology.

[0011] FIG. 10 is a diagrammatic representation of a machine in the example form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies or modules discussed herein, can be executed.

[0012] FIG. 11 illustrates an example frame of a frame 1100 of a satellite message in accordance with one or more embodiments of the present technology.

DETAILED DESCRIPTION

[0013] A spoofing attack is when a malicious party impersonates another device or user on a network in order to launch attacks against network hosts, steal data, spread malware or bypass access controls. Spoofing attacks on global satellite signals become more prevalent nowadays, especially with the advancement in 5G technology (e.g., denser deployment of cells) and in autonomous driving.

[0014] This patent document discloses techniques that can be implemented in various embodiments to allow global satellite signal receivers to detect whether a suspicious interfering signal (also referred to as a jamming ora spoofing signal) is present. Furthermore, for receivers that are equipped with multiple antennas, an estimated location of the jamming signal can be determined based on Multiple-In-Multiple-Out (MIMO) technology. The disclosed techniques are applicable to both fixed assets (e.g., base stations) that are aware of their locations and mobile assets (e.g., cell phones) that can obtain location information from other access technologies, such as the Long-Term Evolution (LTE) and/or the Fifth- Generation (5G) wireless communication networks.

[0015] FIG. 1 illustrates an example scenario 100 in which a GNSS receiver receives signals from a satellite in accordance with one or more embodiments of the present technology. In some embodiments, the GNSS receiver 101 is aware of its own position (also referred to as a reference position). For example, the GNSS receiver 101 is a fixed station that knows its precise location based on configuration information (e.g., a base station configured by a cellular network). Alternatively, or in addition, the GNSS receiver 101 can calculate its reference position based on past signals it has received over time. As another example, the GNSS receiver 101 is a mobile device that is configured with a reference position. For example, the mobile device can be a mobile phone, a mobile tablet, a tracking device or telecommunications transceiver device deployed on vehicle such as an autonomous vehicle, ARA/R goggles, a wearable computing device (such as a smart watch or fitness tracker), or an Internet of Thing (loT) device. The mobile device can receive assistance information from a cellular network indicating the mobile device’s reference position. Based on the incoming signals, the GNSS receiver 101 can calculate an estimated position of itself based on the orbital position of the satellite and characteristics of incoming signals. By comparing the reference position with the estimated position, the GNSS receiver 101 can determine whether the incoming signal has been interfered (e.g., spoofed or jammed) by a GNSS jamming device.

[0016] FIG. 2 illustrates an example 200 of representing a position of a GNSS device or a satellite using spherical coordinates in accordance with one or more embodiments of the present technology. In this example, the GNSS receiver 201 stores its reference position with respect to the center of the Earth as (h, θ 1 , fi). The reference position can be configured by a network or be calculated by the receiver 201 based on past signals. The GNSS receiver 201 is also aware of the precise orbital position of the satellite 203. The satellite 203 transmits a signal 211 that includes a message to the GNSS receiver 201 . The message can include a satellite identifier (ID), a week number, and Ephemeris information about satellite’s location. FIG. 11 illustrates an example frame of a frame 1100 of a satellite message in accordance with one or more embodiments of the present technology. The Ephemeris information can include the current location of the satellite, the prediction location of the satellite, and/or status of the satellite. The Ephemeris can be used by the GNSS receivers to estimate locations relative to the satellites and/or positions on earth. The Ephemeris information can also be used to predict future satellite conditions for a given place and/or time. The GNSS receiver 201 can derive its estimated location as (r2, θ 2 , φ2) based on the orbital position of the satellite 203 and the characteristics of the signal 211.

[0017] Table 1 shows example Ephemeris parameters that can be used to determine satellite coordinates at an observation epoch. These can parameters are periodically renewed to ensure validity and accuracy of the satellite positions.

[0018] An example algorithm is shown below to compute satellite coordinates (non- spherical coordinates) from the satellite message.

[0019] Operation 101: compute the time t k from the ephemerides reference epoch t oe (t and t oe are expressed in seconds in a week).

[0020] t k = t - t oe Eq. (1) [0021] If t k > 302,400 seconds, subtract 604800 seconds from t k . If t k < -302400 seconds, add 604800 seconds.

[0022] Operation 102: compute the mean anomaly for t k .

[0023]

[0024] Operation 103: compute the true anomaly v k :

[0025]

[0026] Operation 104: compute the argument of latitude u k from the argument of perigee ω, true anomaly v k and corrections c uc and c us :

[0027]

[0028] Operation 105: compute the radial distance r k , considering corrections c rc and c rs :

[0029]

[0030] Operation 106: compute the inclination i k of the orbital plane from the inclination io at reference time t oe and corrections c ic and c is :

[0031]

[0032] Operation 107: compute the longitude of the ascending node λ k (with respect to

Greenwich). This calculation uses the right ascension at the beginning of the current week (Ωo), the correction from the apparent sidereal time variation in Greenwich between the beginning of the week and reference time t k =t— t oe , and the change in longitude of the ascending node from the reference time t oe :

[0033]

[0034] Operation 108: compute the coordinates in Terrestrial Reference System (TRS) frame, applying three rotations (around u k , i k , and λ k ):

[0035] [0036] R 1 and R 3 are the rotation matrices defined in Transformation between Terrestrial Frames.

[0037] In some embodiments, the GNSS receiver 201 can derive an estimated position of the receiver relative to the satellite 203 based on the reception angle and the magnitude of the signal 211. While only one satellite 203 is depicted in FIG. 2, a GNSS receiver can receive and decode signals from multiple satellites (e.g., between 4 to 24 satellites). For example, based on the amplitude of signals coming to the antenna, the GNSS receiver 201 can determine the power of received signals. If the GNSS receiver 201 is located in a rural or suburban area, the received signals can be deemed as the direct line of sight (LOS) signals because the receiver 201 does not receive much reflected signals from the nearby buildings. If the GNSS receiver 201 is located in an urban setting, random oscillating noise from reflections (e.g., reflections from nearby building) can be identified in the received signals. Based on the oscillating pattern, the GNSS receiver 201 can derive the power of the direct line of sight (LOS) signal by removing the oscillating noise. Based on the determined LOS signals, the GNSS receiver 201 can estimate the Longitude, Latitude, and Height positions of the satellite based on measuring the different speed of light (299,792 km/s) delays in the signals coming from the satellites. In some embodiments, each satellite signal includes the time the message was transmitted, orbital information (known as the Ephemeris information) and/or approximate orbits of the satellites (known as the Almanac information). The GNSS receiver 201 compares the estimated location (e.g., represented in spherical coordinates as (r 2 , θ 2 , φ2)) with the reference position (e.g., represented in spherical coordinates as ( r 1 , θ 1 , φ1 )) to determine whether the signal 211 can potentially be an interfering signal coming from a GNSS jamming device.

[0038] In some embodiments, the GNSS receiver can be a fixed station, such as a base station in a cellular network, that knows its precise location. FIG. 3 illustrates an example 300 of detecting a jamming signal that interferes satellite signals by a fixed station in accordance with one or more embodiments of the present technology. In FIG. 3, a GNSS jamming device 305 transmits a jamming signal 311 towards to the fixed station 301 to interfere with signals from the satellite 303. In this example, the fixed station 301 only needs to check the actual reception angle of the signal 311 to determine whether the signal 311 is from the satellite or a jamming device. For example, upon receiving the jamming signal 311 , the fixed station 301 calculates the reception angle b of the jamming signal 311 (e.g., represented using spherical coordinates). The fixed station 301 also derives a range of expected reception angles [θ 1 , θ 2 ] with respect to its own position based on the orbital position of the satellite 303. Because β falls out of the range of expected reception angles [θ 1 , θ 2 ], the fixed station 301 can determine that the signal 311 is a jamming signal coming from a jamming device 305. The fixed station 301 can carry out such determination for multiple satellites from which it receives signals.

[0039] With advancement in cellular technologies, the techniques shown in FIG. 3 can be extended to mobile stations to allow mobiles stations to distinguish jamming signals from the actual satellite signals. For example, assisted Global Positioning System (A-GPS) is a technology implemented in many mobile devices to allow the locations of these devices to be determined by the cellular network. The mobile devices can receive assistance information from the cellular network so that they are aware of their respective positions. FIG. 4 illustrates an example 400 of detecting a jamming signal that interferes a satellite signal by a mobile device in accordance with one or more embodiments of the present technology. In FIG. 4, the mobile station 401 can obtain its own reference position from a cellular network based on techniques such as cell identifiers (IDs) and/or triangulation. A GNSS jamming device 405 transmits a jamming signal 411 towards the mobile station 401 to interfere with signals from satellites 403a, 403b. Upon receiving the jamming signal 411 , the mobile station 401 calculates the reception angle β of the jamming signal 411 (e.g., represented using spherical coordinates). The mobile station 401 also derives respective ranges of expected reception angles [θ 1 , θ 2 ] and [η 1 , η 2 ] relative to its own position based on the orbital positions of the satellites 403a, 403b. Because β falls out of these ranges (e.g., [θ 1 , θ 2 ] and/or [η 1 , η 2 ]), the mobile station 401 can determine that the signal 411 is a jamming signal coming from a jamming device 405.

[0040] In some embodiments, when the mobile device 401 is in motion, movement of the mobile device 401 and/or its surroundings can impact the received GNSS signals. The GNSS signals may be attenuated; at times one or more satellites may not be visible. To ensure that the mobile device 401 can still estimate its location relative to the satellites when it is in motion, the cellular network can further provide information about the constellation of satellites. For example, the mobile device 401 can be initially configured to listen to GPS satellites. Based on the information provided by the cellular network, the mobile device 401 can listen to additional GNSS satellites from different global navigation satellite systems, such as the Global Navigation Satellite System (GLONASS), the Galileo satellite navigation system, and/or the BeiDou Navigation Satellite system (BDS), to compensate for any loss of signals. Based on its own location (e.g., determined based on assistance information) and additional satellite information from the cellular network, the mobile device 401 that is in motion can derive and refine the reception angle b of the jamming signal 411 , thereby determining that the jamming signal 411 comes from a jamming device 405.

[0041] In some embodiments, a GNSS jammer is positioned to block signals from a satellite so as to mimic real satellite signals. In those cases, relying only on the actual reception angle of the incoming signal is not sufficient. The GNSS receiver can derive its estimated position based on other characteristics of the signal and determine whether the signal is a jamming signal or a satellite signal. For example, the GNSS receiver can expect certain parts of a message from a particular satellite. When the incoming signal fails to match the expected parts of the message, the incoming signal can be deemed as a jamming signal.

[0042] FIG. 5 illustrates an example 500 of detecting a jamming signal that blocks a satellite signal in accordance with one or more embodiments of the present technology. In FIG. 5, a GNSS jamming device 505 is positioned to block signals from a satellite 503. In some embodiments, interreference between the signal 511 from the GNSS jamming device 505 and the signal from the satellite 403 causes the signal 511 to completely mask out the signal from satellite 503. In those cases, the GNSS receiver 501 can determine that the signal 511 is a jamming signal.

[0043] In some embodiments, the signal 511 from the GNSS jamming device 505 is interpreted by the GNSS receiver 501 as a signal from the satellite 503. However, the received signal 511 is deemed as invalid by the GNSS receiver 501 when the signal is corrupted or fails to match the expected parts of the message. Correspondingly, the GNSS receiver 501 can determine that the signal 511 is a jamming signal. [0044] In some embodiments, the signal 511 from the GNSS jamming device 505 is interpreted by the GNSS receiver 501 as a valid signal from the satellite 503. Based on the characteristics of the received signal 511 (e.g., the intensity of the signal), the GNSS receiver 501 calculates its estimated position and compares the estimated position with its reference position. Upon detecting that there is a mismatch between the estimated position and the reference position (e.g., the difference between the two positions exceeds a threshold), the GNSS receiver 501 can determine that the signal 511 is a jamming signal

[0045] After detecting a jamming signal, the precise location of the GNSS jamming device can be determined based on information from one or more GNSS receivers. For example, Multiple-Input-Multiple-Output (MIMO) is an antenna technology for wireless communications in which multiple antennas are used as the transmitter and receiver. A GNSS receiver using MIMO technology can provide multiple estimated positions that facilitate the triangulation of the GNSS jamming device location. FIG. 6 illustrates an example 600 of determining a location of a GNSS jamming device 605 in accordance with one or more embodiments of the present technology. In FIG. 6, the GNSS receiver 601 is a fixed station equipped with multiple antennas 621a, 621 b, 621c. Each of the antennas 621a, 621b, 621c can be used to derive an estimated location of the respective antenna upon receiving the signal from the GNSS jamming device 605. When the fixed station 601 has a large dimension and the antennas 621a, 621b, 621c are positioned reasonably apart from each other, multiple estimated positions can be used to triangulate the precise position of the GNSS jamming device 605.

[0046] FIG. 7 illustrates another example 700 of determining a location of a GNSS jammer in accordance with one or more embodiments of the present technology. In FIG. 7, multiple mobile GNSS receivers 701a, 701 b, 701c detect jamming signals from the GNSS jamming device 705. Each of the GNSS receivers 701a, 701 b, 701c can determine an estimated position of the GNSS jamming device 705 relative to itself. The GNSS receivers then transmit the estimated positions to a communication node 707 (e.g., a base station). Based on information from multiple GNSS receivers, the communication node 707 can determine the location of the GNSS jamming device 705 using techniques such as triangulation. In particular, when a group of mobile devices within a cell or a few neighboring cells indicates that they have received a jamming signal, the network operator can easily determine where the jamming signals come from.

[0047] FIG. 8 illustrates a method 800 for detecting a signal directed at interfering with satellite signaling in accordance with one or more embodiments of the present technology. The method 800 includes, at operation 810, receiving, by a receiving node, a signal from a signal source. The signal source produces a signal to mimic signals of a satellite or otherwise disguises itself as a satellite. The method 800 includes, at operation 820, determining, by the receiving node, an estimated position of the receiving node based on an orbital position of the satellite and a characteristic of the signal. The method 800 includes, at operation 830, comparing, by the receiving node, the estimated position of the receiving node with a reference position of the receiving node. The method 800 includes, at operation 840, determining, by the receiving node, that the signal source is a spoofing source different than the satellite. The method 800 also includes, at operation 850, determining, by the receiving node, a location of the spoofing source in part based on the estimated position.

[0048] FIG. 9 illustrates a method 900 for determining a location of a spoofing source in accordance with one or more embodiments of the present technology. The method 800 includes, at operation 910, receiving, by a network node in the communication network, a first set of information from a first communication node indicating a first estimated location of the spoofing source. The method 900 includes, at operation 920, receiving, by a network node, a second set of information from a second communication node indicating a second estimated location of the spoofing source. The method 900 includes, at operation 930, receiving, by a network node, a third set of information from a third communication node indicating a third estimated location of the spoofing source. The method 900 also includes, at operation 940, determining, by the network node, a final location of the spoofing source based on triangulating the first, the second, and the third estimated locations of the spoofing source.

[0049] CONCLUSION

[0050] The present application discloses techniques that can be implemented in various embodiments to detect interfering signals from suspicious sources. The techniques can be implemented in both fixed base stations or mobile assets such as phones, tablets, autonomous cars, or loT devices. The wide applicability of the disclosed techniques also enables the determination of the locations of the suspicious sources. Network operators can easily identify the locations of the suspicious sources based on information provided by base stations equipped with multiple antennas or a group of mobile devices.

[0051] FIG. 10 is a diagrammatic representation of a machine in the example form of a computer system 1000 within which a set of instructions, for causing the machine to perform any one or more of the methodologies or modules discussed herein, can be executed.

[0052] In the example of FIG. 10, the computer system 1000 includes a processor, memory, non-volatile memory, and a network communication interface device. The computer system 1000 can also include multiple antennas for receiving signals from various signal sources. Various common components (e.g., cache memory) are omitted for illustrative simplicity. The computer system 1000 is intended to illustrate a hardware device on which any of the components described in the example of FIGS. 1-8 (and any other components described in this specification) can be implemented. The computer system 1000 can be of any applicable known or convenient type. The components of the computer system 1000 can be coupled together via a bus or through some other known or convenient device.

[0053] This disclosure contemplates the computer system 1000 taking any suitable physical form. As example and not by way of limitation, computer system 1000 can be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these. Where appropriate, computer system 1000 can include one or more computer systems 1000; be unitary or distributed; span multiple locations; span multiple machines; or reside in a cloud, which can include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 1000 can perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not byway of limitation, one or more computer systems 1000 can perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems 1000 can perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.

[0054] The processor can be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor. One of skill in the relevant art will recognize that the terms "machine-readable (storage) medium" or "computer-readable (storage) medium" include any type of device that is accessible by the processor.

[0055] The memory is coupled to the processor by, for example, a bus. The memory can include, by way of example but not limitation, random access memory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM). The memory can be local, remote, or distributed.

[0056] The bus also couples the processor to the non-volatile memory and drive unit. The non-volatile memory is often a magnetic floppy or hard disk, a magnetic-optical disk, an optical disk, a read-only memory (ROM), such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory during execution of software in the computer 1000. The non-volatile storage can be local, remote, or distributed. The non-volatile memory is optional because systems can be created with all applicable data available in memory. A typical computer system will usually include at least a processor, memory, and a device (e.g., a bus) coupling the memory to the processor.

[0057] Software is typically stored in the non-volatile memory and/or the drive unit. Indeed, storing and entire large program in memory can not even be possible. Nevertheless, it should be understood that for software to run, if necessary, it is moved to a computer readable location appropriate for processing, and for illustrative purposes, that location is referred to as the memory in this paper. Even when software is moved to the memory for execution, the processor will typically make use of hardware registers to store values associated with the software, and local cache that, ideally, serves to speed up execution. As used herein, a software program is assumed to be stored at any known or convenient location (from non-volatile storage to hardware registers) when the software program is referred to as "implemented in a computer-readable medium." A processor is considered to be "configured to execute a program" when at least one value associated with the program is stored in a register readable by the processor.

[0058] The bus also couples the processor to the network interface device. The interface can include one or more of a modem or network interface. It will be appreciated that an antenna, a modem, or network interface can be considered to be part of the computer system 1000. The interface can include an analog modem, ISDN modem, cable modem, token ring interface, satellite transmission interface (e.g., "direct PC"), or other interfaces for coupling a computer system to other computer systems. The interface can include one or more input and/or output devices. The I/O devices can include, by way of example but not limitation, a keyboard, a mouse or other pointing device, disk drives, printers, a scanner, and other input and/or output devices, including a display device. The display device can include, by way of example but not limitation, a cathode ray tube (CRT), liquid crystal display (LCD), or some other applicable known or convenient display device.

[0059] In operation, the computer system 1000 can be controlled by operating system software that includes a file management system, such as a disk operating system. One example of operating system software with associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Washington, and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux™ operating system and its associated file management system. The file management system is typically stored in the non-volatile memory and/or drive unit and causes the processor to execute the various acts required by the operating system to input and output data and to store data in the memory, including storing files on the non-volatile memory and/or drive unit.

[0060] Some portions of the detailed description can be presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

[0061] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or "generating" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

[0062] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems can be used with programs in accordance with the teachings herein, or it can prove convenient to construct more specialized apparatus to perform the methods of some embodiments. The required structure for a variety of these systems will appear from the description below. In addition, the techniques are not described with reference to any particular programming language, and various embodiments can thus be implemented using a variety of programming languages.

[0063] In alternative embodiments, the machine operates as a standalone device or can be connected (e.g., networked) to other machines. In a networked deployment, the machine can operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. [0064] The machine can be a server computer, a client computer, a personal computer (PC), a tablet PC, a laptop computer, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, an iPhone, a Blackberry, a processor, a telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.

[0065] While the machine-readable medium or machine-readable storage medium is shown in an exemplary embodiment to be a single medium, the term "machine-readable medium" and "machine-readable storage medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term "machine- readable medium" and "machine-readable storage medium" shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies or modules of the presently disclosed technique and innovation.

[0066] In general, the routines executed to implement the embodiments of the disclosure, can be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as "computer programs." The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processing units or processors in a computer, cause the computer to perform operations to execute elements involving the various aspects of the disclosure.

[0067] Moreover, while embodiments have been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments are capable of being distributed as a program product in a variety of forms, and that the disclosure applies equally regardless of the particular type of machine or computer-readable media used to actually effect the distribution.

[0068] Further examples of machine-readable storage media, machine-readable media, or computer-readable (storage) media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.), among others, and transmission type media such as digital and analog communication links.

[0069] In some circumstances, operation of a memory device, such as a change in state from a binary one to a binary zero or vice-versa, for example, can comprise a transformation, such as a physical transformation. With particular types of memory devices, such a physical transformation can comprise a physical transformation of an article to a different state or thing. For example, but without limitation, for some types of memory devices, a change in state can involve an accumulation and storage of charge or a release of stored charge. Likewise, in other memory devices, a change of state can comprise a physical change or transformation in magnetic orientation or a physical change or transformation in molecular structure, such as from crystalline to amorphous or vice versa. The foregoing is not intended to be an exhaustive list in which a change in state for a binary one to a binary zero or vice-versa in a memory device can comprise a transformation, such as a physical transformation. Rather, the foregoing is intended as illustrative examples.

[0070] A storage medium typically can be non-transitory or comprise a non-transitory device. In this context, a non-transitory storage medium can include a device that is tangible, meaning that the device has a concrete physical form, although the device can change its physical state. Thus, for example, non-transitory refers to a device remaining tangible despite this change in state.

[0071] Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of "including, but not limited to." As used herein, the terms "connected," "coupled," or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements; the coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words "herein," "above," "below," and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word "or" in reference to a list of two or more items covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.

[0072] The above Detailed Description of examples of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific examples for the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative implementations may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or sub-combinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples: alternative implementations may employ differing values or ranges.

[0073] The teachings of the invention provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the invention. Some alternative implementations of the invention may include not only additional elements to those implementations noted above, but also may include fewer elements.

[0074] Any patents and applications and other references noted above, and any that may be listed in accompanying filing papers, are incorporated herein by reference in the entirety, except for any subject matter disclaimers or disavowals, and except to the extent that the incorporated material is inconsistent with the express disclosure herein, in which case the language in this disclosure controls. Aspects of the invention can be modified to employ the systems, functions, and concepts of the various references described above to provide yet further implementations of the invention.

[0075] These and other changes can be made to the invention in light of the above Detailed Description. While the above description describes certain examples of the invention, and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific examples disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed examples, but also all equivalent ways of practicing or implementing the invention under the claims.

[0076] To reduce the number of claims, certain aspects of the invention are presented below in certain claim forms, but the applicant contemplates the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as a means-plus-function claim under 35 U.S.C. § 112(f), other aspects may likewise be embodied as a means-plus-function claim, or in other forms, such as being embodied in a computer-readable medium. (Any claims intended to be treated under 35 U.S.C. § 112(f) will begin with the words "means for", but use of the term "for" in any other context is not intended to invoke treatment under 35 U.S.C. § 112(f).) Accordingly, the applicant reserves the right to pursue additional claims after filing this application to pursue such additional claim forms, in either this application or in a continuing application.