Abstract:
Methods and systems of transmitting a beacon message. Implementations of the present disclosure include determining, by a computing device based on a predetermined algorithm, an encryption method using a current time as a parameter. The computing device may encrypt a beacon message using the determined encryption method to obtain an encrypted beacon message. The computing device may further generate a radio frame including the encrypted beacon message and information associated with a decryption computing device, and transmit the radio frame to a mobile device. Implementations of this present disclosure avoid leaking users&#39; sensitive information, and therefore protect users&#39; privacy as well as improve safe uses of beacon transmission.

Description:
CROSS REFERENCE TO RELATED PATENT APPLICATIONS 
       [0001]    This application claims priority to Chinese Patent Application No. 201410136738.0, filed on Apr. 4, 2014, entitled “Method and Device for Transmission of Beacon Message for Beacon-based Service,” which is hereby incorporated by reference in its entirety. 
       TECHNICAL FIELD 
       [0002]    This present disclosure relates to a communication network technology, more particularly, to a beacon data transmission. 
       BACKGROUND 
       [0003]    With the popularity of smart phone technology, the mobile device has been deeply rooted in people&#39;s lives. For example, using mobile positioning technology, mobile devices provide users with personalized and localized services. 
         [0004]    GPS (Global Positioning System) is currently a widely used positioning technology. However, when a GPS receiver is operating in a room, the room attenuates the signal and decreases accuracy of the GPS. Recently, indoor positioning technologies have been developed, such as WiFi (Wireless Fidelity), ZigBee, Bluetooth, and ultra wideband wireless communication network. 
         [0005]    Beacons implement an indoor positioning technology and provide a promising solution for positioning inside of buildings. Beacons generate radio frames and transmit to mobile devices in a certain beacon signal region. However, since applications resided on the mobile devices may retrieve user sensitive information during communication between the beacons and the mobile devices, security has become an issue for commercializing the beacon technology. 
       SUMMARY 
       [0006]    This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify all key features or essential features of the claimed subject matter, nor is it intended to be used alone as an aid in determining the scope of the claimed subject matter. The term “techniques,” for instance, may refer to apparatus(s), system(s), method(s) and/or computer-executable instructions as permitted by the context above and throughout the present disclosure. 
         [0007]    Implementations of this present disclosure relate to methods for transmitting a beacon message. The implementations may include determining, by one or more processors of a beacon based on a predetermined algorithm, an encryption method using a current time as a parameter. The beacon may encrypt an identifier (ID) of the beacon using the determined encryption method to obtain a beacon message including an encrypted ID of the beacon. The beacon may generate a radio frame including the beacon message and information associated with a decryption computing device, and transmit the radio frame to a mobile device. 
         [0008]    Implementations of this present disclosure further relate to one or more computer-readable media storing computer-executable instructions that, when executed by one or more processors, instruct the one or more processors to perform acts. The acts may include determining, by a computing device based on a predetermined algorithm, a decryption method using a current time as a parameter. The computing device may receive an encrypted beacon message including an encrypted ID of a beacon from a mobile device. The computing device may decrypt the encrypted ID using the determined decryption method to obtain an ID of the beacon and provide a task corresponding to the ID of the beacon to the mobile device. 
         [0009]    Implementations of this present disclosure further relate to a system including: one or more processors; and memory to maintain a plurality of components executable by the one or more processors. The plurality of components may include an encryption determination module, an encryption module, and a transmission module. The encryption determination module is configured to determine, based on a predetermined algorithm, an encryption method using a current time as a parameter. The encryption module is configured to encrypt an ID of a beacon using the determined encryption to obtain a beacon message including an encrypted ID of the beacon. The transmission module is configured to generate a radio frame including the beacon message and information associated with a decryption computing device, and transmit the radio frame to a mobile device. 
         [0010]    Implementations of this present disclosure further relate to another system including: one or more processors; and memory to maintain a plurality of components executable by the one or more processors. The plurality of components may include a decryption determination module, an encrypted message receiving module, an encrypted message receiving module, a decryption module, and a task providing module. The decryption determination module is configured to determine, based on a predetermined algorithm, a decryption method using a current time as a parameter. The encrypted message receiving module is configured to receive a beacon message including an encrypted ID of a beacon from a mobile device. The decryption module is configured to decrypt the encrypted ID using the determined decryption method to obtain the ID of the beacon. The task providing module is configured to provide a task corresponding to the ID of the beacon to the mobile device. 
         [0011]    Implementations of this present disclosure may generate time-varying encryption associated with the beacon ID such that an unauthorized malware cannot obtain a real and stable ID of the beacon. Therefore, it is difficult to counterfeit beacon IDs corresponding to services, which may involve users&#39; sensitive information. This protects user interest and improves beacon network safety. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The Detailed Description is described with reference to the accompanying figures. The use of the same reference numbers in different figures indicates similar or identical items. 
           [0013]      FIG. 1  is a schematic diagram of an illustrative computing environment, which enables transmission of a beacon message. 
           [0014]      FIG. 2  is a flow chart of an illustrative process for transmitting a beacon message. 
           [0015]      FIG. 3  is a flow chart of an illustrative process for providing a beacon-based service. 
           [0016]      FIGS. 4 and 5  are schematic diagrams of illustrative computing architectures that enable transmission of a beacon message. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    Under conventional techniques, an identifier (ID) of a beacon is transmitted via an unencrypted message. Applications on the mobile device can obtain the ID. This provides an opportunity for malware. After a beacon ID is obtained by malicious software designers, they may lead customers to a fishing server and use false order/payment pages to obtain financial information of the customers. 
         [0018]    Implementations of this present disclosure relate to new methods of beacon data transmission to address problems of the conventional techniques.  FIG. 1  is a schematic diagram of an illustrative computing environment  100 , which enables transmission of a beacon message. The environment may include a beacon  102  that may generate a beacon signal  104 , and a mobile device  106  that may receive the beacon signal  104  within a certain distance. In some implementations, the beacon signal  104  may include encrypted information  112  associated with the beacon  102  and/or a service associated with the beacon  102 . The mobile device  106  and the beacon  102  may use various supported wireless protocols for data transmission. The mobile device  106  may further communicate with a server  108  via a network  110 . In some implementations, the beacon  102  may be connected to a mobile communication network, network management servers, and/or other devices for data exchange. Types of mobile devices, protocols, or network structures of wireless communications used in the computing environment  100  are not limited by implementations of this present disclosure. 
         [0019]    Implementation of this present disclosure may encrypt an ID of the beacon  102  to generate a beacon message including encryption information, such as an encrypted ID of the beacon  102 . The beacon message may be encrypted using an encryption method, which may be modified with time. In some embodiments, after receiving the beacon message, the mobile device  106  may send the beacon message to the server  108 . The server  108  may decrypt the beacon message and provide a corresponding service to a customer associated with the mobile device  106 . 
         [0020]      FIG. 2  is a flow chart of an illustrative process for transmitting a beacon message. At  202 , the beacon  102  may determine, based on a predetermined algorithm, an encryption method using a current time as a parameter. In some implementations, the beacon  102  may determine the encryption algorithm using the current time. In some implementations, the beacon  102  may implement a predetermined encryption algorithm to determine a private key using the current time. Alternatively, the beacon  102  may determine the encryption algorithm and the private key using the current time. In other words, the encryption method may include encryption algorithm and/or the private key. In these instances, the server  108  may use the corresponding decryption methods to decrypt. 
         [0021]    In some implementations, the beacon  102  may be installed in a certain location and an initial configuration may be performed after the installation. After the initial configuration, the beacon  102  may generate a radio frame based on the initial configuration and transmit the radio frame to a computing device such as the mobile device  106 . In some implementations, encryption on the beacon  102  may be performed by the beacon  102 , and decryption may be performed by the server  108 . In some implementations, the server  108  and the beacon  102  may rarely communicate. In these instances, encryption and decryption may be implemented using a mutual reference to synchronize and/or modify the encryption method and the decryption method respectively. For example, the mutual reference may include a current time. 
         [0022]    The beacon  102  and the server  108  may modify the encryption method and decryption method for a predetermined time period respectively. In some implementations, a modifying frequency may be determined based on various conditions. For example, the encryption method and decryption method may be modified after a fixed and/or variable interval of time. The encryption method and decryption method may be modified at the same time in a corresponding manner such that a message encrypted by the beacon  102  may be decrypted by the server  108 . 
         [0023]    For example, the beacon  102  and the server  108  may implement a predetermined symmetric encryption algorithm (e.g., using identical decryption and private key). The encryption and private key may be determined based on an algorithm using an integer of the current time (e.g., 9 for 9:45) as an input parameter. Accordingly, the beacon  102  and the server  108  may modify the encryption method and the decryption method every hour respectively. 
         [0024]    In some implementations, the beacon  102  may preset N types of encryption methods. N is a natural number greater than 1. The beacon  102  may map the current time to M using a predetermined mapping algorithm and designate an encryption method corresponding to M as the determined encryption method. M is a nature number, greater than or equal to 1, and less than N. In some implementations, the server  108  may present N types decryption methods corresponding to the N types of encryption methods. In accordance with the same mapping algorithm, the server  108  may obtain number M decryption method, which may be implemented as a determined decryption method. Accordingly, the beacon  102  and the server  108  may have corresponding encryption and decryption methods respectively. 
         [0025]    At  204 , the beacon  102  may encrypt an ID of the beacon using the determined encryption method to obtain a beacon message including an encrypted ID of the beacon  102 . In some implementations, a radio frame generated and/or transmitted by the beacon  102  may include the beacon message. In these instances, the radio frame may include a unique ID of the beacon  102  and other beacon information, such as a location code of the beacon  102  and equipment information of the beacon  102 . The beacon  102  may encrypt the ID and/or other beacon information associated with the beacon  102  as long as the server  108  may correctly decrypt the encrypted information. 
         [0026]    For example, a radio frame of the beacon  102  may include the following types of information: UUID, Major (e.g., main features of the beacon  102 ), Minor (e.g., minor features of the beacon  102 ), Measured Power (e.g., measurement of power). The UUID may be a 128-bit ID used to uniquely identify the beacon  102 : the beacon ID. Major and Minor are 16-bit IDs, and are set by a beacon operator to carry additional ID information of the beacon  102 . For example, a store may include location information in Major, and include a reference number and/or ID associated with the store. For example, if the Beacon  102  is installed in an appliance, the product models may be included in Major, and reference numbers corresponding to types of errors may be included in Minor. 
         [0027]    Measured Power may represent a strength reference indicating signal strength generated by the beacon  102  when a distance between a transmission module of the Beacon and a receiver (e.g., the mobile device  106 ) is about a predetermined distance (e.g., one meter). The receiver may determine the distance based on the strength reference and signal strength that is currently received. During encryption, the beacon  102  may encrypt at least one of UUID, Major, or Minor associated with the beacon  102 . 
         [0028]    At  206 , the beacon  102  may generate a radio frame including the encrypted ID and information associated with a decryption computing device (e.g., the server  108 ). 
         [0029]    In some implementations, the mobile device  106  may receive a radio frame, retrieve an unencrypted ID of the beacon  102  from the radio frame, and perform a certain action corresponding to the unencrypted ID. In some implementations, the certain action may include locating and connecting with an address of a corresponding server. For example, the mobile device  106  may identify a corresponding server address of the server  108  and initiate a connection to the server  108 . In other implementations, the ID of the beacon  102  may be encrypted, and the mobile device  106  may not be able to decrypt the encrypted ID. In these instances, the server  108  may be configured to decrypt the encrypted ID. Therefore, the information of the server  108  and the encrypted ID may be included in the radio frame such that the mobile device  106  may transmit the encrypted ID to an appropriate server (e.g., the server  108 ), which has a corresponding decryption method. 
         [0030]    The beacon  102  may retrieve the information of the server  108  and package the information into a radio frame. In some implementations, the beacon  102  may retrieve the information using an application that is resided in the mobile device  106  and analyzes the radio frame. For example, the information may include an IP (Internet Protocol) address, a URL (Uniform Resoure Locator) address, or a number the server  108  recognized by the application such that the mobile device  106  may identify and/or locate the server  108  accordingly. 
         [0031]    At  208 , the beacon  102  may transmit the radio frame to the mobile device  106 , which identify the server  108  and transmit a request for decryption to the server  108 . 
         [0032]      FIG. 3  is a flow chart of an illustrative process for providing a beacon-based service. At  302 , the server  108  may determine, based on a predetermined algorithm, a decryption method using a current time as a parameter. In some implementations, decryption method may include a decryption algorithm and/or a private key. 
         [0033]    In some implementations, the server  108  may preset N types of decryption methods. N is a natural number greater than 1. The server  108  may map the current time to M using a predetermined mapping algorithm and designate a decryption method corresponding to M as the determined encryption method. M is a nature number, greater than or equal to 1, and less than N. Since the decryption method associated with the server  108  corresponds to the encryption method associated with the beacon  102 , the server  108  may determine the decryption method based on the encryption method that is determined and/or designated by the beacon  102 . 
         [0034]    At  304 , the server  108  may receive an encrypted message including the encrypted ID of the beacon  102 . For example, the mobile device  106  may receive the radio frame and retrieve information of the server  108  as well as the encrypted message from the radio frame. The mobile device  106  may transmit the encrypted message including the encrypted ID of the beacon  102  to the server  108 . 
         [0035]    At  306 , the server  108  may obtain the ID of the beacon  102  based on the decryption method corresponding to the encrypted ID of the beacon  102 . In addition to the ID of the beacon  102 , the server  108  may decrypt other beacon information, such as a location code of the beacon  102  and equipment information of the beacon  102 . 
         [0036]    At  308 , the server  108  may determine information of a task (e.g., a service) corresponding to the ID of the beacon  102  and transmit the information to the mobile device  106 . In some implementations, the server  108  may identify and/or locate a task corresponding to the ID of the beacon  102 , and transmit the information of the task to the mobile device  106 . For example, the server  108  may store information of a store associated with the beacon  102 . The information may include services provided by the store to a customer. The server  108  may obtain the ID of the beacon  102 , identify and/or locate the store associated with the beacon  102 , and provide to the customer with the information of the services associated with the store. 
         [0037]    Since the mobile device  106  may transmit the ID of the beacon  102  and additional information to the server  108 , the server  108  may provide detailed and accurate information of services to the mobile device  106 . In some implementations, the server  108  may further facilitate the services based on additional information transmitted from the mobile device  106  to the server  108 . The additional information may include at least one of location of the beacon  102 , equipment information of the beacon  102 , environment information (e.g., weather and traffic) associated with the beacon  102 , or device information associated with the mobile device  106 . 
         [0038]    Suppose that the beacon  102  is a Bluetooth beacon (e.g., iBeacon®). Asymmetric encryption and decryption algorithms (e.g., RSA) may be performed on the UUID of the beacon  102 . These algorithms may be performed on the beacon  102  and the server  108  respectively. In some instance, the encryption method of the server  108  and the beacon  102  may be a private key and a public key, respectively. The private key and the public key may be determined based on the current date. In some implementations, the beacon  102  may preset K public keys, and the server  108  may preset K private keys. In these instances, the K public keys correspond to the K private keys. An individual public key and the corresponding private key may be adopted by the beacon  102  and the server  108  respectively. The beacon  102  and the server  108  may further modify the individual public key and the corresponding individual private key respectively. 
         [0039]    In some implementations, K public keys and current time may be stored in the beacon  102 . The beacon  102  may determine and/or set a private key based on the current time and a predetermined algorithm. The beacon  102  may further encrypt UUID and transmit information including the encrypted message and information associated with the server  108  to the mobile device  106 . 
         [0040]    Since the beacon  102  may transmit radio frames at a fixed frequency, the beacon  102  may determine the number of radio frames that the beacon  102  sends out at a certain time. Therefore, the beacon  102  may determine whether the private key need to be modified. In some implementations, the beacon  102  may modify the private key in response to a determination that the number of radio frames is equal to a total number of radio frames that are allowed to be transmitted per day. The beacon  102  may then modified the encryption method, and recount the number of radio frames. On an initial day, an initial number may be determined based on the current time and the transmission frequency of radio frames such that the number of radio frames may reach the total number of radio frames allowed to be transmitted per day at zero clock of the next day. 
         [0041]    After the initial setting, the beacon  102  may enter an auto mode. In some implementations, the beacon  102  may transmit radio frames at a predetermined frequency. In response to a determination that a number of radio frame transmissions is equal to a total number of radio frame transmissions allowed to be transmitted per day, the beacon  102  may adopt the new private key next to the current private key. The beacon may encrypt the UUID and other parameters using the new private key to obtain a new encrypted message. The beacon  102  may enter a new broadcast day. When the mobile device  106  receives the radio frame from the beacon  102 , the mobile device  106  may retrieve information of the decryption server (e.g., the server  108 ) as well as the encrypted message including the UUID and other parameter. The mobile device  106  may then transmit the encrypted message to the server  108 . 
         [0042]    After the server  108  receives the encrypted message, the server  108  may, based on the current date and a predetermined algorithm, determine and/or locate the corresponding private key to decrypt the encrypted message to obtain the UUID and other parameters associated with the beacon  102 . The server  108  may determine a task corresponding to the UUID, and transmit information of the task to the mobile device  106 . 
         [0043]    Implementations of this present disclosure may encrypt the ID of the beacon  102  and generate an encrypted message that may be modified with time. Even though a third party may obtain the encrypted message, it would be difficult for the third party to obtain information associated with the beacon  102  since the encrypted message change with the time. Further, the third party may not be able to steal sensitive information from the mobile device  106 . Similarly, unauthorized applications on the mobile device  106  may merely obtain the encrypted message, and the information encrypted in the encrypted message may not be obtained by the unauthorized applications. 
         [0044]      FIGS. 4 and 5  are schematic diagrams of illustrative computing architectures that enable transmission of a beacon message.  FIG. 4  is a diagram of a computing device  400  (e.g., the beacon  102 ). The computing device  400  may be a user device or a server for a multiple location login control. In one exemplary configuration, the computing device  400  includes one or more processors  402 , input/output interfaces  404 , network interface  406 , and memory  408 . 
         [0045]    The memory  408  may include computer-readable media in the form of volatile memory, such as random-access memory (RAM) and/or non-volatile memory, such as read only memory (ROM) or flash RAM. The memory  408  is an example of computer-readable media. 
         [0046]    Computer-readable media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that may be used to store information for access by a computing device. As defined herein, computer-readable media does not include transitory media such as modulated data signals and carrier waves. 
         [0047]    Turning to the memory  408  in more detail, the memory  408  may include an encryption determination module  410 , an encryption module  412 , and a transmission module  414 . The encryption determination module  410  is configured to determine, based on a predetermined algorithm, an encryption method using a current time as a parameter. The encryption module  412  is configured to encrypt an ID of a beacon using the determined encryption to obtain an encrypted ID of the beacon. The transmission module  414  is configured to generate a radio frame including the encrypted ID and information associated with a decryption computing device (e.g., the server  108 ), and transmit the radio frame to the mobile device  106 . 
         [0048]    In some implementations, the encryption determination module  410  may include an encryption presetting module, an encryption mapping module, and an encryption selecting module. The encryption presetting module is configured to preset N types of encryption methods. N is a natural number greater than 1. The encryption mapping module is configured to map the current time to M using a predetermined mapping algorithm. M is a nature number, greater than or equal to 1, and less than N. The encryption selecting module is configured to designate an encryption method corresponding to M as the determined encryption method. 
         [0049]    In some implementations, the encryption method is a public key, and wherein the current time is a current date. In some instances, the encryption determination module  410  may include a total counting module, a counting module, and an encryption modification module. The total counting module is configured to determine a total number of transmission times of radio frames in a day based on a radio transmission frequency. The counting module is configured to count a number of transmission times of the radio frames based on the current time and the radio transmission frequency. The encryption modification module is configured to modify the encryption method based on the predetermined algorithm in response to a determination that the number of transmission times is equal to the total number of transmission times, and recount the number of transmission times. In some implementations, the encryption method may include a private key and/or an encryption algorithm. 
         [0050]      FIG. 5  is a diagram of a computing device  500  (e.g., the server  108 ). The computing device  500  may be a user device or a server for a multiple location login control. In one exemplary configuration, the computing device  500  includes one or more processors  502 , input/output interfaces  504 , network interface  506 , and memory  508 . 
         [0051]    The memory  508  may include computer-readable media in the form of volatile memory, such as random-access memory (RAM) and/or non-volatile memory, such as read only memory (ROM) or flash RAM. The memory  508  is an example of computer-readable media. 
         [0052]    Computer-readable media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that may be used to store information for access by a computing device. As defined herein, computer-readable media does not include transitory media such as modulated data signals and carrier waves. 
         [0053]    Turning to the memory  508  in more detail, the memory  508  may include a decryption determination module  510 , an encrypted message receiving module  512 , a decryption module  514 , and a task providing module  516 . The decryption determination module  510  is configured to determine, based on a predetermined algorithm, a decryption method using a current time as a parameter. The encrypted message receiving module  512  is configured to receive an encrypted ID of a beacon from a mobile device. The decryption module  514  is configured to decrypt the encrypted ID using the determined decryption method to obtain an ID of the beacon. The task providing module  516  is configured to provide a task corresponding to the ID to the mobile device. 
         [0054]    In some implementations, the server  108  may preset N types of decryption methods. N is a natural number greater than 1. The server  108  may map the current time to M using a predetermined mapping algorithm and designate a decryption method corresponding to M as the determined decryption method. M is a nature number, greater than or equal to 1, and less than N. 
         [0055]    Under conventional techniques, beacons transmit radio frames without encryption. Implementations of the present disclosure may encrypt the ID of the beacon  102 , and modify the encryption method with time. Accordingly, applications unauthorized by the beacon  102  may not obtain a stable ID of the beacon  102 ; an unauthorized service may not be provided via the beacon  102 . This avoids not only disclosure of sensitive information of customers but also beacon message theft. 
         [0056]    The implementations are merely for illustrating the present disclosure and are not intended to limit the scope of the present disclosure. It should be understood for persons in the technical field that certain modifications and improvements may be made and should be considered under the protection of the present disclosure without departing from the principles of the present disclosure.