CN110234073B - Positioning method, device and storage medium based on Bluetooth positioning - Google Patents
Positioning method, device and storage medium based on Bluetooth positioning Download PDFInfo
- Publication number
- CN110234073B CN110234073B CN201910682307.7A CN201910682307A CN110234073B CN 110234073 B CN110234073 B CN 110234073B CN 201910682307 A CN201910682307 A CN 201910682307A CN 110234073 B CN110234073 B CN 110234073B
- Authority
- CN
- China
- Prior art keywords
- token
- uuid
- positioning
- terminal device
- identification code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W64/00—Locating users or terminals or network equipment for network management purposes, e.g. mobility management
Abstract
The invention relates to a method, a device and a computer readable storage medium for Bluetooth positioning. The method comprises the following steps: receiving a universal unique identification code UUID, a signal field strength indicator RSSI and a first token from a terminal device; and under the condition that the first token is the same as the second token calculated by the positioning service background, sending feedback of the positioning of the terminal equipment calculated by the positioning service background to the terminal equipment, and under the condition that the first token is different from the second token, sending feedback of refusing the positioning to the terminal equipment.
Description
Technical Field
The present invention relates to the field of positioning, and in particular, to a positioning method, apparatus and storage medium based on bluetooth positioning.
Background
For indoor positioning, bluetooth positioning is mainly implemented by using bluetooth Low energy (ble) technology of bluetooth 4.0. Currently, bluetooth positioning technology has no universal international standard, but is generally based on the positioning principle of received Signal Strength rssi (received Signal Strength indication). In the existing technical scheme for positioning the terminal equipment, the UUID and RSSI values corresponding to each beacon are uploaded to a map engine service for positioning calculation. Where UUID is fixed for each end device and visible to external devices, it is easy to clone. For example, if an end device clones beacon data after receiving it at a location, it can still upload the data to a mapping engine service for location calculations to forge a location after leaving the location. This presents a safety risk for applications that rely on geographical location for their respective services.
Disclosure of Invention
It would be advantageous to provide a mechanism that can alleviate, reduce or even eliminate one or more of the above-mentioned problems.
According to a first aspect of the invention, a method for bluetooth positioning is provided. The method comprises the following steps: receiving a universal unique identification code UUID, a signal field strength indicator RSSI and a first token from a terminal device; and under the condition that the first token is the same as the second token calculated by the positioning service background, sending feedback of the positioning of the terminal equipment calculated by the positioning service background to the terminal equipment, and under the condition that the first token is different from the second token, sending feedback of refusing the positioning to the terminal equipment.
According to some embodiments of the invention, the second token is generated by the location service background in advance based on a stored key corresponding to a universally unique identification code UUID of each bluetooth signal transmitter.
According to some embodiments of the invention, the second token is generated by the location server based on a pre-stored key corresponding to the universally unique identification code UUID received from the terminal device.
According to some embodiments of the invention, the first token and the second token are each regenerated once per a predetermined time period.
According to some embodiments of the invention, the calculation rules of the first token and the second token are the same.
According to some embodiments of the invention, the first token and the second token are each calculated based on:
token=F(key, timeFactor),
timeFactor=T(time),
wherein token represents a token, key represents a key corresponding to a universal unique identifier UUID of a bluetooth signal transmitter, timeFactor represents a time factor, F (key, timeFactor) represents a calculation function of the token, t (time) represents a time factor calculation function, and time represents a current second-level timestamp.
According to a second aspect of the invention, a method for bluetooth positioning is provided. The method comprises the following steps: generating a token based on a key corresponding to a universally unique identification code UUID of the Bluetooth signal transmitter; and sending the universal unique identification code UUID, the signal field strength indicator RSSI and the token.
According to some embodiments of the invention, the token is regenerated once every predetermined period of time.
According to some embodiments of the invention, the token is calculated based on the following formula:
token=F(key, timeFactor),
timeFactor=T(time),
wherein token represents a token, key represents a key corresponding to a universal unique identifier UUID of a bluetooth signal transmitter, timeFactor represents a time factor, F (key, timeFactor) represents a calculation function of the token, t (time) represents a time factor calculation function, and time represents a current second-level timestamp.
According to a third aspect of the invention, a method for bluetooth positioning is provided. The method comprises the following steps: receiving a universal unique identification code UUID, a signal field strength indicator RSSI and a token from a Bluetooth signal transmitter; sending a universal unique identification code UUID, a signal field intensity indication RSSI and a token to a positioning service background; and receiving feedback from the positioning service background.
According to some embodiments of the invention, the token is generated based on a key corresponding to a UUID of the bluetooth signal transmitter.
According to some embodiments of the invention, the token is regenerated once every predetermined period of time.
According to some embodiments of the invention, the token is calculated based on the following formula:
token=F(key, timeFactor),
timeFactor=T(time),
wherein token represents a token, key represents a key corresponding to a universal unique identifier UUID of a bluetooth signal transmitter, timeFactor represents a time factor, F (key, timeFactor) represents a calculation function of the token, t (time) represents a time factor calculation function, and time represents a current second-level timestamp.
According to a fourth aspect of the present invention, there is provided a bluetooth location server. The Bluetooth positioning server comprises a receiving module and a feedback module. The receiving module is configured to receive a universally unique identification code UUID, a signal field strength indication RSSI and a first token from the terminal device. The feedback module is configured to send feedback of terminal device positioning to the terminal device when the first token is the same as the second token calculated by the positioning service background, and send feedback of rejecting positioning to the terminal device when the first token is different from the second token.
According to a fifth aspect of the present invention, there is provided a bluetooth signal transmitter. The Bluetooth signal transmitter comprises a token generation module and a sending module. The token generation module is configured to generate a token based on a key corresponding to a universally unique identification code UUID of the bluetooth signal transmitter. The sending module is configured to send a universal unique identification code UUID, a signal field strength indicator RSSI and a token.
According to a sixth aspect of the present invention, there is provided a terminal device for bluetooth positioning. The terminal equipment comprises a first receiving module, a sending module and a second receiving module. The first receiving module is configured to receive a universally unique identification code UUID, a signal field strength indicator RSSI and a token from a Bluetooth signal transmitter. The sending module is configured to send the universal unique identification code UUID, the signal field strength indication RSSI and the token to the positioning service background. The second receiving module is configured to receive feedback from the positioning service backend.
According to some embodiments of the invention, there is provided a computer readable storage medium having stored thereon instructions which, when executed on a processor, cause the processor to perform any of the above methods.
Embodiments of the present invention provide various advantages. The proposed mechanism for dynamically updating tokens verifies whether the tokens are the same before the map engine service performs the location calculation. Because the token cannot be forged, the purpose of preventing forged positioning is realized, and the positioning authenticity is ensured. The invention also ensures the safety of the application of the corresponding positioning service depending on the geographical position. For example, in an application of automatically opening a door based on the positioning of a terminal device in a smart building, the positioning of a counterfeit terminal device is effectively prevented, so that the door of the smart building is effectively ensured not to be opened under the condition of the counterfeit positioning.
Drawings
Further details, features and advantages of the invention are disclosed in the following description of exemplary embodiments with reference to the accompanying drawings, in which:
figure 1 illustrates a schematic diagram of a bluetooth positioning scheme according to the prior art;
FIG. 2 illustrates a schematic diagram of a triangulation algorithm;
FIG. 3 illustrates an interactive signaling diagram of nodes in a Bluetooth positioning system in accordance with an embodiment of the present invention;
FIG. 4 illustrates a method for Bluetooth positioning according to one embodiment of the invention;
FIG. 5 illustrates a method for Bluetooth positioning according to another embodiment of the present invention;
FIG. 6 illustrates a method for Bluetooth positioning according to yet another embodiment of the present invention;
FIG. 7 illustrates a Bluetooth location server in accordance with one embodiment of the present invention;
FIG. 8 illustrates a Bluetooth signal transmitter in accordance with one embodiment of the present invention;
fig. 9 illustrates a terminal device for bluetooth positioning according to one embodiment of the present invention;
FIG. 10 illustrates a schematic block diagram of an example computing device.
Detailed Description
The invention provides a technical scheme for regularly generating a token by using a key (key) of a Bluetooth signal transmitter. Each Bluetooth signal emitter has its own secret key, and the map navigation server in the background of the positioning service stores the secret keys of the Bluetooth signal emitters. The map navigation server acquires UUID, RSSI and token information of the Bluetooth signal transmitter, and firstly verifies the token when positioning calculation is carried out. Because the token is changed periodically, it is no longer feasible to forge a location by cloning the UUID.
Before describing embodiments of the present invention, a number of terms referred to herein are first defined.
1. Bluetooth Low Energy (BLE): also known as bluetooth low energy, is a personal area network technology designed and sold by the bluetooth special interest group, and is intended for emerging applications in the fields of healthcare, sports, beacons, security, home entertainment, etc. Bluetooth low energy is intended to maintain significant power reduction and cost in comparable communication ranges compared to classical bluetooth technology.
2. iBeacon: a function provided on an os for a mobile device released by apple inc is operated in such a manner that a device provided with a bluetooth low energy communication function transmits its own ID to the surroundings using BLE technology, and a node receiving the ID takes some action based on the ID.
3. Universal Unique Identifier (UUID): is a standard for software construction and consists of a set of 32-bit numbers. UUID is intended to enable all elements in a distributed system to have unique identification information without the need for a central control end to identify specifications of the information, etc.
4. Received Signal Strength Indication (RSSI): is an indication of the strength of the received signal, which is used as an optional part of the radio transmission layer to determine the link quality, and to determine whether the broadcast transmission strength needs to be increased, etc.
Embodiments of the present invention are described in detail below with reference to the accompanying drawings.
Fig. 1 illustrates a schematic diagram of a bluetooth positioning scheme by taking the iBeacon scheme as an example. Among various schemes based on bluetooth positioning, the iBeacon bluetooth positioning by apple is most widely used. Included in the bluetooth network environment 100 are a bluetooth signal transmitter 101, a terminal device 102, and a map engine server 103 (included in the positioning service back office). Bluetooth signal transmitters are deployed within a predetermined area (e.g., indoors, in a smart building, etc.), each having its own unique UUID identification, and corresponding coordinate location information is stored in the map engine server 103. Bluetooth signal transmitters 101 each constantly broadcast within its coverage area a signal and a data packet that includes at least a UUID identification and an RSSI value. When the terminal device 102 enters the coverage area of the bluetooth signal transmitter 101, it will receive the signal and data packet broadcasted from the bluetooth signal transmitter 101, and thus receive the UUID and RSSI value in the data packet. Then, the terminal apparatus 102 transmits a request for positioning to the map engine server 103. The map engine server 103 reads the UUID and RSSI values from the respective bluetooth signal transmitters 101 from the terminal device 102 in response to the request, and calculates a specific location of the terminal using an engine location algorithm. In some embodiments, the positioning algorithm may be a triangulation positioning algorithm. Other positioning algorithms may also be employed, as will be appreciated by those skilled in the art.
FIG. 2 illustrates a schematic diagram of a triangulation algorithm. With the positions of the Bluetooth signal transmitters known, the RSSI attenuation model can be used to estimate the distance from the terminal device 204 to each Bluetooth signal transmitter (201, 202, 203), and then a circle can be drawn according to the distance from the terminal device 204 to each Bluetooth signal transmitter (201, 202, 203). In practical use, only the distance from the terminal device 204 to at least three surrounding bluetooth signal transmitters (201, 202, 203) is known, and three circles (205, 206, 207) can be drawn based on the distance, and the intersection of the three circles is the position of the terminal device 204.
The process of bluetooth positioning is divided into two stages: and (4) ranging and positioning. In the ranging phase of triangulation, the terminal device 204 first receives the RSSI from three different bluetooth signal transmitters (201, 202, 203) with known locations, and then calculates the distance from the terminal device 204 to the respective bluetooth signal transmitter (201, 202, 203) according to a wireless signal transmission loss model. In the positioning stage of triangulation, the position of the terminal device 204 is calculated by triangulation. Specifically, three bluetooth signal transmitters (201, 202, 203) with known positions are taken as circle centers respectively, the respective distances from the three bluetooth signal transmitters to the terminal device 204 to be tested are taken as radii to draw a circle, and the intersection point of the three circles is the position of the terminal device 204 to be tested.
Fig. 3 illustrates an interactive signaling diagram of nodes of the system according to an embodiment of the present invention. The invention adds the function of dynamically generating tokens at the Bluetooth pilot frequency emitter side and the positioning service background side. The value of the token is dynamically changed every fixed time. In one embodiment, regeneration occurs every 1 minute. In this signaling diagram 300, a bluetooth signal transmitter first generates a token based on its own key. The key is a key corresponding to the UUID of the bluetooth signal transmitter. It should be noted that the UUID is visible to the end device and the key is not visible to the end device, and the key is stored in memory inside the bluetooth signal transmitter. Therefore, generating the token based on the key more effectively guarantees the security of the token. In signal 301, the bluetooth signal transmitter broadcasts a UUID, RSSI, and first token it generates and periodically changes within its coverage area. When the terminal equipment enters the coverage range of the Bluetooth signal transmitter, the terminal equipment receives the UUID, the RSSI and the first token from the broadcast of different Bluetooth signal transmitters. In signal 302, the terminal device issues a location service request to the location service back office. After receiving the signal 303 acknowledgement message ACK from the location services back-office, the end device sends the UUID, RSSI and first token it received from the respective bluetooth signal transmitter to the location services back-office in signal 304.
The key of each Bluetooth signal transmitter is stored in the positioning service background. In one embodiment, the location service background generates a token set in advance based on stored keys corresponding to the UUIDs of the universal unique identification codes of the Bluetooth signal transmitters, and in response to receiving the UUIDs, the RSSIs and the first tokens of the Bluetooth signal transmitters from the terminal equipment, searches a second token corresponding to the received UUIDs from the generated token set in advance. The first token and the second token are then compared. Then if the first token and the second token are identical, the location of the terminal device is sent to the terminal device in signal 305; if the first token and the second token are different, a notification of the rejection of the positioning is sent to the terminal device in signal 305.
In another embodiment, the location services backend, in response to receiving the UUID, RSSI, and first token from each bluetooth signal transmitter of the end device, generates a second token based on a pre-stored key corresponding to the received universally unique identification code UUID. The first token and the second token are then compared. Then if the first token and the second token are identical, the location of the terminal device is sent to the terminal device in signal 305; if the first token and the second token are different, a notification of the rejection of the positioning is sent to the terminal device in signal 305.
The token is periodically changed, for example, regenerated every minute. The generation rules of the first token and the second token are kept the same at all times. At the bluetooth signal transmitter end and the location service background end, tokens are generated according to the following formula:
token=F(key, timeFactor), (1)
timeFactor=T(time), (2)
wherein the key is a key stored inside each Bluetooth signal transmitter, and different Bluetooth signal transmitters have different UUID identifications and different key values. For each bluetooth signal transmitter, its UUID identification corresponds to the key value. The UUID is composed of 32-bit digits. The key value may be any letter or number, such as 123 abc. the timeFactor is a time factor that varies every fixed period of time (e.g., 1 minute, i.e., 60 seconds). time is the current second time stamp, e.g., "1544085473". The T function is a time factor calculation function whose inputs are the current timestamp (time) and a fixed duration (60 in the following equation). The form of the T function is such as, but not limited to: timeFactor = ⌊ time/60 ⌋, i.e. the current timestamp divided by the fixed duration, ⌊ ⌋ represents rounding down the result. Therefore, the time factor is unchanged in value within a fixed time length. Here 60 is merely an exemplary fixed duration. Other fixed durations may be chosen as long as both remain the same at the bluetooth signal transmitter and the location services back office, as will be appreciated by those skilled in the art.
F is a token computation function with inputs of key and timeFactor values and an output of token. F can be calculated using, but is not limited to, md5, such as md5(key + timeFactor). Thus, the calculated token value varies once per fixed time period.
Since the map engine service in the background of the positioning service also stores the key of each bluetooth signal transmitter, the map engine service can calculate the token value of each bluetooth signal transmitter, and the calculation process is the same as the process described above. When a positioning request of terminal equipment is received, a key value corresponding to the UUID is searched according to the received UUID, and a token value is obtained through calculation according to the formulas (1) and (2). And then comparing the token value with the token value carried by the positioning request. If the comparison result is consistent, the positioning calculation is allowed; if not, the request is denied. Since the value of the token changes dynamically, it is difficult to forge, so that the location cannot be forged, thereby ensuring the authenticity of the location request.
Fig. 4 illustrates a method 400 for bluetooth positioning in accordance with one embodiment of the present invention. The method 400 is performed by a location services back office, specifically by a mapping engine service contained in the location services back office. In step 401, the location services back office receives a UUID, RSSI, and a first token from the end device. The UUID, RSSI, and first token are received by the end device from the bluetooth signal transmitter. In step 402, the location services background compares the first token with its own computed second token. And under the condition that the first token is the same as the second token calculated by the positioning service background, the positioning service background calculates the positioning of the terminal equipment through a triangulation algorithm and sends the feedback of the positioning of the terminal equipment calculated by the positioning service background to the terminal equipment. And sending feedback of refusing positioning to the terminal equipment under the condition that the first token and the second token are different. The second token can be generated in advance by the positioning service background based on the stored keys corresponding to the universal unique identification codes UUIDs of the Bluetooth signal transmitters, or can be generated based on the stored keys corresponding to the universal unique identification codes UUIDs received from the terminal equipment in response to the UUIDs received from the terminal equipment, the RSSI and the first token. The first token and the second token are periodically changed (for example, every 1 minute), and the generation rule thereof is the same. The generation rule may be, for example, token = F (key, timeFactor), timeFactor = t (time). Wherein token represents the token, key represents the key corresponding to the universal unique identifier UUID of the Bluetooth signal transmitter, timeFactor represents the time factor, T (time) represents the time factor calculation function, time represents the current second-level timestamp, and F (key, timeFactor) represents the calculation function of the token.
Fig. 5 illustrates a method 500 for bluetooth positioning, in accordance with another embodiment of the present invention. Method 500 is performed by a bluetooth signal transmitter (also known as bluetooth beacon). In step 501, the bluetooth signal transmitter first generates a token based on a key corresponding to its own UUID. The token is periodically changed (e.g., every 1 minute) and its generation rules are the same as those for generating tokens based on keys in the map service engine in the location services back office. The generation rule may be, for example, token = F (key, timeFactor), timeFactor = t (time). Wherein token represents the token, key represents the key corresponding to the universal unique identifier UUID of the Bluetooth signal transmitter, timeFactor represents the time factor, T (time) represents the time factor calculation function, time represents the current second-level timestamp, and F (key, timeFactor) represents the calculation function of the token. In step 502, the bluetooth signal transmitter broadcasts its UUID, RSSI, and the calculated token.
Fig. 6 illustrates a method 600 for bluetooth positioning, in accordance with yet another embodiment of the present invention. The method 600 is performed by a terminal device (e.g., a smartphone, a tablet, a laptop, etc.). In step 601, the end device receives a UUID, RSSI, and token from a bluetooth signal transmitter. The token is periodically changed (e.g., every 1 minute). The generation rule may be, for example, token = F (key, timeFactor), timeFactor = t (time). Wherein token represents the token, key represents the key corresponding to the universal unique identifier UUID of the Bluetooth signal transmitter, timeFactor represents the time factor, T (time) represents the time factor calculation function, time represents the current second-level timestamp, and F (key, timeFactor) represents the calculation function of the token. Then, the terminal device sends the received UUID, RSSI and token to the location service background in step 602. Then in step 603, feedback is received from the positioning service back office. And in the case that the token is verified, receiving the positioning of the terminal equipment calculated by the positioning service background. In case the token verification fails, a message denying the positioning will be received.
Fig. 7 illustrates a bluetooth location server 700 according to one embodiment of the present invention. The bluetooth positioning server 700 comprises a receiving module 701 and a feedback module 702. The receiving module 701 is configured to receive a universally unique identification code UUID, a signal field strength indication RSSI and a first token from the terminal device. The feedback module 702 is configured to calculate the location of the terminal device through a triangulation algorithm under the condition that the first token is the same as the second token calculated by the location service background, and send a feedback of the location of the terminal device calculated by the location service background to the terminal device. And sending feedback of refusing positioning to the terminal equipment under the condition that the first token and the second token are different. The second token can be generated in advance by the positioning service background based on the stored keys corresponding to the universal unique identification codes UUIDs of the Bluetooth signal transmitters, or can be generated based on the stored keys corresponding to the universal unique identification codes UUIDs received from the terminal equipment in response to the UUIDs received from the terminal equipment, the RSSI and the first token. The first token and the second token are periodically changed (for example, every 1 minute), and the generation rule thereof is the same. The generation rule may be, for example, token = F (key, timeFactor), timeFactor = t (time). Wherein token represents the token, key represents the key corresponding to the universal unique identifier UUID of the Bluetooth signal transmitter, timeFactor represents the time factor, T (time) represents the time factor calculation function, time represents the current second-level timestamp, and F (key, timeFactor) represents the calculation function of the token.
Fig. 8 illustrates a bluetooth signal transmitter 800 according to one embodiment of the present invention. The bluetooth signal transmitter 800 includes a token generation module 801 and a transmission module 802. The token generation module 801 is configured to generate a token based on a key corresponding to the universally unique identification code UUID of the bluetooth signal transmitter. The token is periodically changed (e.g., every 1 minute) and its generation rules are the same as those for generating tokens based on keys in the map service engine in the location services back office. The generation rule may be, for example, token = F (key, timeFactor), timeFactor = t (time). Wherein token represents the token, key represents the key corresponding to the universal unique identifier UUID of the Bluetooth signal transmitter, timeFactor represents the time factor, T (time) represents the time factor calculation function, time represents the current second-level timestamp, and F (key, timeFactor) represents the calculation function of the token. The sending module 802 is configured to send a universally unique identification code UUID, a signal field strength indication RSSI, and a token.
Fig. 9 illustrates a terminal device 900 for bluetooth positioning according to one embodiment of the present invention. The terminal device 900 may be, for example, a smart phone, a tablet, a laptop, etc. The terminal device 900 comprises a first receiving module 901, a sending module 902 and a second receiving module 903. The first receiving module 901 is configured to receive a universally unique identification code UUID, a signal field strength indication RSSI and a token from a bluetooth signal transmitter. The token is periodically changed (e.g., every 1 minute). The generation rule may be, for example, token = F (key, timeFactor), timeFactor = t (time). Wherein token represents the token, key represents the key corresponding to the universal unique identifier UUID of the Bluetooth signal transmitter, timeFactor represents the time factor, T (time) represents the time factor calculation function, time represents the current second-level timestamp, and F (key, timeFactor) represents the calculation function of the token. The sending module 902 is configured to send the universally unique identifier UUID, the signal field strength indication RSSI, and the token to the location service background. The second receiving module 903 is configured to receive feedback from the positioning service backend.
Fig. 10 illustrates an example system 1000 that includes an example computing device 1010 that represents one or more systems and/or devices that may implement the various techniques described herein. Computing device 1010 may be, for example, a server of a service provider, a device associated with a client (e.g., a client device), a system on a chip, and/or any other suitable computing device or computing system. The apparatus for bluetooth positioning 700, 800, or 900 described above with respect to fig. 7, 8, or 9 may take the form of a computing device 1010. Alternatively, the apparatus for bluetooth positioning 700, 800 or 900 may be implemented as a computer program in the form of a bluetooth positioning application 1016.
The example computing device 1010 as illustrated includes a processing system 1011, one or more computer-readable media 1012, and one or more I/O interfaces 1013 communicatively coupled to each other. Although not shown, the computing device 1010 may also include a system bus or other data and command transfer system that couples the various components to one another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. Various other examples are also contemplated, such as control and data lines.
Computer-readable medium 1012 is illustrated as including memory/storage 1015. Memory/storage 1015 represents the memory/storage capacity associated with one or more computer-readable media. Memory/storage 1015 may include volatile media (such as Random Access Memory (RAM)) and/or nonvolatile media (such as Read Only Memory (ROM), flash memory, optical disks, magnetic disks, and so forth). Memory/storage 1015 may include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., flash memory, a removable hard drive, an optical disk, and so forth). The computer-readable medium 1012 may be configured in various other ways as further described below.
One or more I/O interfaces 1013 represent functionality that allows a user to enter commands and information to computing device 1010, and optionally also allows information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone (e.g., for voice input), a scanner, touch functionality (e.g., capacitive or other sensors configured to detect physical touch), a camera (e.g., motion that may not involve touch may be detected as gestures using visible or invisible wavelengths such as infrared frequencies), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, a haptic response device, and so forth. Thus, the computing device 1010 may be configured in various ways to support user interaction, as described further below.
The computing device 1010 also includes a bluetooth location application 1016. The bluetooth positioning application 1016 may be, for example, a software instance of 700, 800, or 900 described with respect to fig. 7, 9, or 9, and in combination with other elements in the computing device 1010 implement the techniques described herein.
Various techniques may be described herein in the general context of software hardware elements or program modules. Generally, these modules include routines, programs, objects, elements, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The terms "module," "functionality," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted across some form of computer readable media. Computer readable media can include a variety of media that can be accessed by computing device 1010. By way of example, and not limitation, computer-readable media may comprise "computer-readable storage media" and "computer-readable signal media".
"computer-readable storage medium" refers to a medium and/or device, and/or a tangible storage apparatus, capable of persistently storing information, as opposed to mere signal transmission, carrier wave, or signal per se. Accordingly, computer-readable storage media refers to non-signal bearing media. Computer-readable storage media include hardware such as volatile and nonvolatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer-readable instructions, data structures, program modules, logic elements/circuits or other data. Examples of computer readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage devices, tangible media, or an article of manufacture suitable for storing the desired information and accessible by a computer.
"computer-readable signal medium" refers to a signal-bearing medium configured to transmit instructions to the hardware of computing device 1010, such as via a network. Signal media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave, data signal or other transport mechanism. Signal media also includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
As previously described, the hardware elements 1014 and the computer-readable medium 1012 represent instructions, modules, programmable device logic, and/or fixed device logic implemented in hardware form that may be used in some embodiments to implement at least some aspects of the techniques described herein. The hardware elements may include integrated circuits or systems-on-chips, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), Complex Programmable Logic Devices (CPLDs), and other implementations in silicon or components of other hardware devices. In this context, a hardware element may serve as a processing device that performs program tasks defined by instructions, modules, and/or logic embodied by the hardware element, as well as a hardware device for storing instructions for execution, such as the computer-readable storage medium described previously.
Combinations of the foregoing may also be used to implement the various techniques and modules described herein. Thus, software, hardware, or program modules and other program modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage medium and/or by one or more hardware elements 1014. The computing device 1010 may be configured to implement particular instructions and/or functions corresponding to software and/or hardware modules. Thus, implementing a module as a module executable by the computing device 1010 as software may be implemented at least partially in hardware, for example, using the computer-readable storage medium and/or hardware elements 1014 of a processing system. The instructions and/or functions may be executable/operable by one or more articles of manufacture (e.g., one or more computing devices 1010 and/or processing systems 1011) to implement the techniques, modules, and examples described herein.
In various implementations, the computing device 1010 may assume a variety of different configurations. For example, the computing device 1010 may be implemented as a computer-like device including a personal computer, a desktop computer, a multi-screen computer, a laptop computer, a netbook, and so forth. The computing device 1010 may also be implemented as a mobile device class device that includes mobile devices such as mobile phones, portable music players, portable gaming devices, tablet computers, multi-screen computers, and the like. Computing device 1010 may also be implemented as a television-like device that includes devices with or connected to a generally larger screen in a casual viewing environment. These devices include televisions, set-top boxes, game consoles, and the like.
The techniques described herein may be supported by these various configurations of computing device 1010 and are not limited to specific examples of the techniques described herein. Functionality may also be implemented in whole or in part on the "cloud" 1020 through the use of a distributed system, such as through the platform 1022 described below.
The cloud 1020 includes and/or is representative of a platform 1022 for resources 1024. The platform 1022 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 1020. Resources 1024 may include applications and/or data that may be used when executing computer processes on servers remote from computing device 1010. Resources 1024 may also include services provided over the internet and/or over a subscriber network such as a cellular or Wi-Fi network.
The platform 1022 may abstract resources and functionality to connect the computing device 1010 with other computing devices. The platform 1022 may also be used to abstract a hierarchy of resources to provide a corresponding level of hierarchy encountered for the demand of the resources 1024 implemented via the platform 1022. Thus, in an interconnected device embodiment, implementation of functions described herein may be distributed throughout the system 1000. For example, the functionality may be implemented in part on the computing device 1010 and through the platform 1022 that abstracts the functionality of the cloud 1020.
It will be appreciated that embodiments of the invention have been described with reference to different functional blocks for clarity. However, it will be apparent that the functionality of each functional module may be implemented in a single module, in a plurality of modules or as part of other functional modules without departing from the invention. For example, functionality illustrated to be performed by a single module may be performed by multiple different modules. Thus, references to specific functional blocks are only to be seen as references to suitable blocks for providing the described functionality rather than indicative of a strict logical or physical structure or organization. Thus, the invention may be implemented in a single module or may be physically and functionally distributed between different modules and circuits.
It will be understood that, although the terms first, second, third, etc. may be used herein to describe various devices, elements, or components, these devices, elements, or components should not be limited by these terms. These terms are only used to distinguish one device, element, or component from another device, element, or component. "Bluetooth signal transmitter", "Bluetooth beacon", "Bluetooth pilot", "Bluetooth base station" are used interchangeably herein.
Variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed subject matter, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, the indefinite article "a" or "an" does not exclude a plurality, and "a plurality" means two or more. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Claims (12)
1. A method for Bluetooth positioning, which is applied to a positioning service background, comprises the following steps:
receiving a universal unique identification code UUID, a signal field strength indicator RSSI and a first token from a terminal device;
generating a second token, which is generated in advance based on a stored key corresponding to a universally unique identification code UUID of each Bluetooth signal transmitter or a prestored key corresponding to the universally unique identification code UUID received from a terminal device;
performing comparison of the first token and a second token calculated by the positioning service background;
and sending feedback of the terminal equipment positioning calculated by the positioning service background to the terminal equipment under the condition that the first token and the second token are the same, and sending feedback of refusing positioning to the terminal equipment under the condition that the first token and the second token are different.
2. The method of claim 1, wherein the first token and the second token have the same computational rules.
3. The method of claim 2, the first token and the second token each being calculated based on:
token=F(key, timeFactor),
timeFactor=T(time),
wherein token represents a token, key represents a key corresponding to a universally unique identifier UUID of a bluetooth signal transmitter, timeFactor represents a time factor, F (key, timeFactor) represents a calculation function of the token, t (time) represents the time factor calculation function, and time represents a current second-level timestamp.
4. A method for bluetooth positioning, the method being applied to a bluetooth signal transmitter, comprising:
generating a first token based on a key corresponding to a universally unique identification code (UUID) of the Bluetooth signal transmitter;
sending the universal unique identification code UUID, the signal field intensity indication RSSI and the first token to a terminal device, so that the terminal device sends the universal unique identification code UUID, the signal field intensity indication RSSI and the first token to a positioning service background and receives feedback from the positioning service background, wherein the feedback is generated by the positioning service background through the following steps:
generating a second token, the second token being generated in advance based on a stored key corresponding to a universally unique identification code UUID of the Bluetooth signal transmitter or based on a pre-stored key corresponding to the universally unique identification code UUID received from a terminal device,
performing a comparison of the first token and the second token,
generating feedback of the terminal device location in case the first token and the second token are identical, and generating feedback of rejecting location in case the first token and the second token are different.
5. The method of claim 4, wherein the first token is regenerated once every predetermined period of time.
6. The method of claim 4 or 5, wherein the first token is calculated based on the following equation:
token=F(key, timeFactor),
timeFactor=T(time),
wherein token represents a token, key represents a key corresponding to a universally unique identifier UUID of a bluetooth signal transmitter, timeFactor represents a time factor, F (key, timeFactor) represents a calculation function of the token, t (time) represents the time factor calculation function, and time represents a current second-level timestamp.
7. A method for Bluetooth positioning, which is applied to a terminal device, comprises the following steps:
receiving a universally unique identification code (UUID), a signal field strength indication (RSSI) and a first token from a Bluetooth signal transmitter, wherein the first token is generated based on a key corresponding to the universally unique identification code (UUID) of the Bluetooth signal transmitter;
sending the universal unique identification code UUID, the signal field intensity indication RSSI and the first token to a positioning service background; and
receiving feedback from the positioning service backend, wherein the feedback is generated by the positioning service backend by:
generating a second token, the second token being generated in advance based on a stored key corresponding to a universally unique identification code UUID of the Bluetooth signal transmitter or based on a pre-stored key corresponding to the universally unique identification code UUID received from a terminal device,
performing a comparison of the first token and the second token,
generating feedback of the terminal device location in case the first token and the second token are identical, and generating feedback of rejecting location in case the first token and the second token are different.
8. The method of claim 7, wherein the first token is calculated based on the following equation:
token=F(key, timeFactor),
timeFactor=T(time),
wherein token represents a token, key represents a key corresponding to a universally unique identifier UUID of a bluetooth signal transmitter, timeFactor represents a time factor, F (key, timeFactor) represents a calculation function of the token, t (time) represents the time factor calculation function, and time represents a current second-level timestamp.
9. A bluetooth location server, comprising:
the receiving module is configured for generating a second token in advance based on a stored key corresponding to a universal unique identification code UUID of each Bluetooth signal transmitter or a pre-stored key corresponding to the universal unique identification code UUID received from the terminal equipment, and performing comparison between the first token and the second token calculated by the positioning service background; and
a feedback module configured to send feedback of the terminal device location calculated by the location service background to the terminal device when the first token and the second token calculated by the location service background are the same, and send feedback of rejecting location to the terminal device when the first token and the second token are different.
10. A bluetooth signal transmitter, comprising:
a token generation module configured to generate a first token based on a key corresponding to a universally unique identification code UUID of a Bluetooth signal transmitter;
a sending module configured to send the UUID, the RSSI and the first token to a terminal device, so that the terminal device sends the UUID, the RSSI and the first token to a location service background and receives feedback from the location service background,
wherein the feedback is generated by the positioning service background by:
generating a second token, the second token being generated in advance based on a stored key corresponding to a universally unique identification code UUID of the Bluetooth signal transmitter or based on a pre-stored key corresponding to the universally unique identification code UUID received from a terminal device,
performing a comparison of the first token and the second token,
generating feedback of the terminal device location in case the first token and the second token are identical, and generating feedback of rejecting location in case the first token and the second token are different.
11. A terminal device for bluetooth positioning, comprising:
a first receiving module configured to receive a universally unique identification code (UUID), a signal field strength indication (RSSI) and a first token from a Bluetooth signal transmitter, wherein the first token is generated based on a key corresponding to the UUID of the Bluetooth signal transmitter;
the sending module is configured to send the UUID, the RSSI and the first token to a positioning service background; and
a second receiving module configured to receive feedback from the location services back-office,
wherein the feedback is generated by the positioning service background by:
generating a second token, the second token being generated in advance based on a stored key corresponding to a universally unique identification code UUID of the Bluetooth signal transmitter or based on a pre-stored key corresponding to the universally unique identification code UUID received from a terminal device,
performing a comparison of the first token and the second token,
generating feedback of the terminal device location in case the first token and the second token are identical, and generating feedback of rejecting location in case the first token and the second token are different.
12. A computer-readable storage medium having stored thereon instructions that, when executed on a processor, cause the processor to perform the method of any one of claims 1-8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910682307.7A CN110234073B (en) | 2019-07-26 | 2019-07-26 | Positioning method, device and storage medium based on Bluetooth positioning |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910682307.7A CN110234073B (en) | 2019-07-26 | 2019-07-26 | Positioning method, device and storage medium based on Bluetooth positioning |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110234073A CN110234073A (en) | 2019-09-13 |
CN110234073B true CN110234073B (en) | 2022-01-04 |
Family
ID=67856020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910682307.7A Active CN110234073B (en) | 2019-07-26 | 2019-07-26 | Positioning method, device and storage medium based on Bluetooth positioning |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110234073B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110763235A (en) * | 2019-10-18 | 2020-02-07 | 深圳智慧园区信息技术有限公司 | Cross-floor indoor positioning navigation system and navigation method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102325324A (en) * | 2011-09-13 | 2012-01-18 | 中兴通讯股份有限公司 | Wireless device and mobile terminal positioning method and system |
CN102608962A (en) * | 2011-12-09 | 2012-07-25 | 绍兴电力局 | Automatic maintenance method for bottom-up electricity-consumption information acquisition equipment |
CN102984646A (en) * | 2011-09-05 | 2013-03-20 | 中国移动通信集团辽宁有限公司 | Providing method and system of mobile phone client-side location services |
CN105007257A (en) * | 2015-05-08 | 2015-10-28 | 牛力伟 | On-site identity verification method based on bluetooth technology and on-site identity verification system based on bluetooth technology |
CN108282768A (en) * | 2018-01-24 | 2018-07-13 | 北京地平线机器人技术研发有限公司 | Bluetooth equipment shares control and requesting method and electronic equipment |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8437742B2 (en) * | 2009-10-16 | 2013-05-07 | At&T Intellectual Property I, L.P. | Systems and methods for providing location-based application authentication using a location token service |
US9641630B2 (en) * | 2014-12-15 | 2017-05-02 | International Business Machines Corporation | Location-enforced data management in complex multi-region computing |
-
2019
- 2019-07-26 CN CN201910682307.7A patent/CN110234073B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984646A (en) * | 2011-09-05 | 2013-03-20 | 中国移动通信集团辽宁有限公司 | Providing method and system of mobile phone client-side location services |
CN102325324A (en) * | 2011-09-13 | 2012-01-18 | 中兴通讯股份有限公司 | Wireless device and mobile terminal positioning method and system |
CN102608962A (en) * | 2011-12-09 | 2012-07-25 | 绍兴电力局 | Automatic maintenance method for bottom-up electricity-consumption information acquisition equipment |
CN105007257A (en) * | 2015-05-08 | 2015-10-28 | 牛力伟 | On-site identity verification method based on bluetooth technology and on-site identity verification system based on bluetooth technology |
CN108282768A (en) * | 2018-01-24 | 2018-07-13 | 北京地平线机器人技术研发有限公司 | Bluetooth equipment shares control and requesting method and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
CN110234073A (en) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9813860B2 (en) | Geo-fencing based location detection method and electronic device | |
KR102106092B1 (en) | Generating and publishing validated location information | |
EP3029972B1 (en) | Smart beacon data security | |
US9046987B2 (en) | Crowd formation based on wireless context information | |
US11107079B2 (en) | Methods, systems, apparatuses and devices for verifying credibility of consortium blockchain | |
US20190034604A1 (en) | Voice activation method for service provisioning on smart assistant devices | |
CN113014568A (en) | Account login method, device and server | |
JP6073378B2 (en) | POSITIONING METHOD, POSITIONING DEVICE, AND COMPUTER PROGRAM | |
AU2015223377B2 (en) | Priority access to a priority access channel | |
KR20170031552A (en) | Electronic device and method for authenticating electronic device in near field | |
US11451539B2 (en) | Identity identification and preprocessing | |
US10368185B2 (en) | Mobile device location proofing | |
US20160050529A1 (en) | Location Information from a Mobile Device | |
CN107248995B (en) | Account verification method and device | |
US20200107196A1 (en) | Network access method, apparatus, and system | |
US20160050281A1 (en) | Seamless peer to peer internet connectivity | |
TWI515450B (en) | Passive wireless transmitter authentication used for receiver location determination | |
CN110234073B (en) | Positioning method, device and storage medium based on Bluetooth positioning | |
CN104618324A (en) | Method and device for transmitting data and detecting data legality | |
CN107920386B (en) | Sparse point positioning method, server, system and computer readable storage medium | |
CN114092101B (en) | Transaction verification method and device, storage medium and electronic equipment | |
JP2016091155A (en) | Information processing device and user terminal device and program | |
US11086976B2 (en) | Identification preprocessing | |
CN116264523A (en) | System, method, computer program product, device and medium for message subscription |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |