The present invention is in the technical field of computer security. More particularly, the present invention is in the technical field of identifying a computing device and/or the user of such a device using credentials stored on an authentication token and/or based on the location of the computing device.
As mobile devices, such as smartphones and tablet computers, become more powerful and ubiquitous, it becomes advantageous to use them for an increasing number of applications. In some instances, these applications may require that sensitive information be stored in nonvolatile memory on the device. It is therefore important to be able to protect said information stored on the device both while the device is running and while the device is powered off. Securing a device may include authenticating a user's credentials.
An additional element of security may be added based on the location of the device. For example, a user of a device may be able to authenticate on the device, but may not get access to certain files unless the device is in a certain location. Similarly, a user may be able to authenticate on the device, but may be prohibited from accessing certain applications while in a certain location (e.g. prohibited from texting while in a car).
Embodiments provide a plurality of beacons in the environment, wherein each beacon emits a localization signal. A system receives data derived from a localization signal from a user device and determines the initial location of a user device within the environment based on the localization signal. A plurality of devices are also located within the environment, each of which may provide user interaction. A first user interaction is provided via a first device, where the first device is selected from the plurality based on an initial location of the user device. An updated location of the user device is determined, and a second user interaction is provided via a second device, where the second device is selected from the plurality based on the updated location of the user device. Embodiments also operate by providing multiple user devices, each of which emits and receives localization signals. Each device may include a display, a receiver, and an emitter. At least some devices also include a modification system which modifies the display of the device based on localization signals received from other devices.
Tracking user devices may also enable additional applications for the user devices. For example, location information may be used for gathering input for customer analytics, enabling the user devices to behave as universal remotes, and enhancing multiplayer games.
A platform for tracking the location of a user device may be useful for enhancing the security of the user device and other computing systems. Additionally, the location information derived from such a platform may permit additional functionality for the user device, the other computing systems or both.
Referring to
In embodiments, the user device 102A, B, and/or C may be a mobile device, such as a tablet, a mobile phone or a laptop. The user device 102A, B, and/or C may comprise a processor 164, a memory 168, an application 138, a microphone 144, a speaker 142, a display 154, a data 148, a screen lock facility 104, a credential processing facility 110, an authentication token reading facility 108, a device location monitor 132 and an IR remote control facility 150.
The computing system 162 may be a server, a workstation, a desktop, a laptop, a missile launching facility, a testing facility, a mobile device, a vehicle system and/or some other computing system. The network 114 may be one or more of a LAN, a wireless network, a wired network, and the like.
It may be imperative that the identity of the user be verified before granting access to the information stored on a device. Current solutions to this problem involve using a “screen lock” function, which requires users to enter a password or PIN before granting access to the device. However, passwords may still be a point of insecurity, since the passwords may be shared, stolen, sniffed, cracked, and/or have poor password strength. Such vulnerabilities relating to password security present a broad attack surface to malicious users. A need exists for improved solutions.
To provide the greatest level of security, methods and systems are provided herein to prevent unauthorized users from unlocking a device, including without limitation by reducing the exposure to attacks by requiring a user to authenticate himself or herself prior to unlocking the device.
The present invention includes a system for securing the screen lock of a device using credentials stored on an authentication token.
The present disclosure may provide greater security than just password protection in the respect that users of a device may be required to authenticate with an external authentication token before the device allows the users to access the screen lock.
This disclosure may increase the security of a mobile device by preventing access to the device screen lock. This may be accomplished using an external authentication token. Said tokens may provide a greater level of security by increasing the number of possible unlock combinations. For instance, a challenging password to remember may be 10 characters long, for example. By comparison, authentication tokens may provide passwords of 256 characters or longer. An example of such an authentication token is a Common Access Card (CAC). Another example of such an authentication token is a Personal Identity Verification card, such as a card implementing NIST standard FIPS 201.
Referring to
In embodiments, a user may be required to authenticate on the device 102A, B and/or C using an external authentication token 112 in order to access the screen lock facility 104 on the device 102A, B and/or C. In embodiments, the user may also be required to authenticate on the device 102A, B and/or C using an external authentication token 112 in order to decrypt a root file system on the device 102A, B and/or C, and/or to use an operating system on the device 102A, B and/or C. When the device 102A, B and/or C is locked, the credential processing facility 110 may instruct the user of the device 102A, B and/or C to provide authentication information via the authentication token reading facility 108. The authentication token reading facility 108 may read authentication information from a physical device. The information may be an authentication token 112. The authentication token 112 may be stored on a Common Access Card, Personal Identity Verification card (e.g. a card implementing NIST standard FIPS 201), a smartcard, a USB token, a SD card, a key fob, or some other physical device. The authentication token 112 may be a cryptographic key, such as a public key certificate, a digital signature, biometric data, a user id, or some other authentication information. In some embodiments, the authentication token reading facility 108 may be an external device connected to the device 102A, B and/or C. In such embodiments, the authentication token reading facility 108 may be configured to communicate with the device 102A, B and/or C via a communications medium, such as Bluetooth, near field communication (“NFC”), Wi-Fi, or other wired or wireless communications medium. For example, the authentication token reading facility 108 may be a smartcard reader connected to the device 102A, B and/or C via Bluetooth.
In embodiments, the device 102A, B and/or C may be enabled to connect to a network 114. In such embodiments, authenticating the user on the device 102A, B and/or C may include communicating first, second, and third authentication data over a short-range wireless signal between the device 102A, B and/or C and an in-location access point, wherein the second authentication data from the device 102A, B and/or C is based on the first authentication data from the in-location access point and the third authentication data from the in-location access point is based on the second authentication data; communicating a fourth authentication data between the mobile device and a web-based information system, wherein the fourth authentication data comprises at least a portion of at least one of the first, second, and third authentication data; and authenticating access to network accessible content by the mobile device with the web-based information system. The first authentication data may be the authentication token 112 data. The web-based information system may be a proxy 118. For example, the authentication token reading facility 108 associated with the device 102A, B and/or C may receive the authentication token 112 via NFC, send the second authentication data to the in-location access point via Bluetooth heartbeat messages, receive the third authentication data as responses to the Bluetooth heartbeat messages, send a request to a web proxy 118 that includes the third authentication data (e.g. in the form of hypertext transport protocol (HTTP) request with such data in the HTTP headers, for example), and receive access to the device if the proxy 118 determines that the user is authorized, based on the third authentication data.
The credential processing facility 110 may determine whether the authentication token 112 data is valid and whether the user is permitted to access the screen lock facility 104, based on the user provided authentication token 112. Credential processing may include local or distributed processing, using processing and storage capabilities of the authentication token device 112 or using remote (e.g., server-based) processing capabilities. Upon determining that the authentication token 112 data is valid and the user is permitted to access the screen lock facility 104, the device 102A, B and/or C may present the user with the unlock screen and prompt the user for a password and/or PIN. Upon determining that the authentication token 112 data is invalid and/or the user is not permitted to access the screen lock facility 104, the credential processing facility 110 may prevent the device 102A, B and/or C from presenting the user with the unlock screen. In some embodiments, the credential processing facility 110 could erase part or all of the data stored on the device 102A, B and/or C upon a predetermined number of failed authentication attempts.
For example, the user of the device 102A, B and/or C may provide a smartcard to be read by the authentication token reading facility 108 associated with the device 102A, B and/or C, where the smartcard includes the user's authentication token 112. The authentication token 112 data may be one or more X.509 certificates. In this example, the authentication token reading facility 108 may read the authentication token 112 from the smartcard and provide the authentication token 112 information to the credential processing facility 110. The credential processing facility 110 may, then, determine whether the user is authorized to access the screen lock facility 104, based on the authentication token 112 information.
Referring now to
In retail store environments, such as BestBuy, Wal-Mart, Target, and others, the appropriation of customer service representatives to particular areas of the store is typically performed on a predetermined schedule. For example, at any given time, three customer service reps may be assigned to the electronics section, while two others are in home goods. Currently, there is no effective method for determining, in real time, the number of customer service representatives that are needed in a given product section of a store. The most effective method currently employed is for customers to actively seek out existing personnel. However, this can become problematic in times of heavy volume, since personnel in one section may become overwhelmed while personnel in another section are idle. It would be advantageous for a retail store to be able to dynamically appropriate personnel based on number of customers in a particular area.
Therefore, it may be useful to implement a system for identifying the locations and distribution of customers within a store and tracking the same based on the locations of the customers' mobile computing devices. Location services, such as GPS provide reliable and precise location information when the receiver has a clear view of the sky. However, these technologies are not effective indoors, making them unsuitable for use in determining concentrations of customers at particular product areas within a retail store. Instead, it may be desirable to utilize a network of transmitters, transmitting an electronic heartbeat message to establish a precise location for each user in the store.
Referring to
In embodiments, the transmitter 130A-C may be enabled to send an electronic heartbeat message. Such heartbeat message may utilize one or more protocols, such as, but not limited to Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, Zigbee and the like. In embodiments, a transmitter may broadcast a unique identifier. For example, if an environment 120 has a plurality of transmitters 130A-C, each transmitter 130 may broadcast its own unique identifier so that the location within the environment 120 of a customer's mobile device 102A, B and/or C may be determined based on the unique identifier(s) received by the customer's mobile device 102A, B and/or C.
In some embodiments, the customer mobile computing device 102A-C may be a cellular phone, such as an iPhone, a Motorola Droid Razr Maxx, a HTC One X, a Samsung Focus 2, a Samsung Gusto 2, or some other cellular phone. In other embodiments, the customer mobile computing device may be a tablet, such as an iPad, an Asus Eee Pad Transformer Prime, a Sony Tablet S, a Samsung Galaxy Tab 10.1, or some other tablet.
The server 122 may be comprised of a customer location monitor facility 124 and a customer service dispatch facility 128. The server may be connected to the one or more transmitters 130A-C in the environment via a network 114. The network 114 may be one or more of a wireless network, a wired network, a LAN, a WAN, a MAN or some other network. In some embodiments, the server 122 may also be connected to a data store 134. Such data store 134 may be a database or file system.
The customer mobile computing device 102A, B, and/or may be enabled to use the unique identifier received from a transmitter 130A, B and/or C to determine the said customer mobile computing device's 102A, B and/or C location in the environment 120. In some embodiments, the step of determining may involve uploading the unique identifier by the customer mobile computing device 102A, B and/or C to the server 122 via the network 114. The customer location monitor facility 124 on the server 122 may use the unique identifier to look up in a data store 134 the location of the transmitter 130 A, B and/or C transmitting said unique identifier, where the data store 134 may store the unique identifier associated with each such transmitter and the location of each such transmitter. In embodiments, determining the location of the customer mobile computing device 102A, B and/or C may comprise the customer mobile computing device 102A, B and/or C comparing a first identifier with a local data store, such as a database or file system, containing a plurality of identifiers and corresponding location information to determine the location of a first transmitter 130A. The location of the first transmitter 130A may then be used to determine the location of the customer mobile computing device 102A, B and/or C based on one or more of the configuration parameters of said electronic heartbeat message and the transmitter 130A (e.g. the range of the transmitter's signal, a triangulation based on a plurality of heartbeat messages from a plurality of transmitters, etc.).
In embodiments, once the location of the customer mobile computing device 102A has been determined, said location of mobile computing device 102A, B and/or C may be accessed at the server 122. In some embodiments, the server 122 may not be the same server 122 that determined the location of the customer mobile computing device 102A, B and/or C. For example, the customer location monitor facility 124 may determine the location of the customer mobile computing device 102A, B and/or C and pass the location information to the customer dispatch facility 128. The customer service dispatch facility 128 on the server 122 may then, automatically or otherwise, dispatch one or more customer service representatives to the location in the environment 120 where the customer mobile computing devices 102A, B and/or C is located. The customer service dispatch facility 128 may also be enabled to perform business intelligence based on the customer mobile computing devices 102A, B and/or C location information. For example, the customer service dispatch facility 128 may determine that there are a sufficient number of customer service representatives in the vicinity of the customer mobile computing devices 102A, B and/or C. In another example, the customer service dispatch facility 128 may determine that there are more customers in a different location in the environment and that one or more customer service representatives in the vicinity of the customer mobile computing devices 102A, B and/or C should be dispatched to a location of greater need in the environment 120. In embodiments, a person may actively monitor the system and/or data therefrom and may dispatch personnel based on the same. The step of dispatching could occur in other ways as well.
Referring now to
In embodiments, the heartbeat message may comprise one or more of a unique identifier, a location identifier and/or some other identifier information. In embodiments, determining the user device's location based on the heartbeat message 510 may comprise determining the location by the user device. For example and as discussed above, the user device may determine its location by comparing the heartbeat message to data in a local data store. In embodiments, such local data store may reside on the user device. In some embodiments, determining the user device's location based on the heartbeat message 510 may comprise determining the location by a server. For example and as discussed above, the user device may receive a heartbeat message with a unique identifier from a transmitter, transmit the unique identifier to a server via a network, and the server may determine the location of user device based on the received unique identifier.
In embodiments, dispatching to a location one or more customer service representatives based on the number of devices at the user device's location 512 may further comprise determining a heat map of user devices in the shopping environment, determining a heat map of customer service representatives in the shopping environment, determining a redistribution of customer service representatives by comparing the two heat maps, and dispatching to a location or more customer service representatives. For example, if the user device is located in an area with a ratio of customers-to-customer service representatives is over a specified threshold, a customer service representative may be dispatched to that location to provide additional assistance. The step of dispatching may occur automatically using an automated dispatch system, or could include a person actively monitoring the system and dispatching personnel as appropriate. The step of dispatching could occur in other ways as well. Determining a redistribution of customer service representatives may further comprise a business intelligence analysis. For example, the server may perform one or more of the following steps in connection with determining the redistribution of customer service representatives: record a customer shopping pattern, record a customer service representative redistribution outcome, analyze a customer shopping pattern, analyze a customer service representative redistribution outcome, or some other business intelligence action.
Businesses may also benefit from the ubiquity of mobile devices and networks by using information regarding the locations of user devices to dispense coupons for encouraging users in certain locations.
Referring to
For example, the user device 102A, B and/or C may execute an application 138 that runs in the background and that monitors the microphone 144 for high frequency sounds. When the application 138 determines that the microphone 144 has received a broadcast from a speaker within a retail store, the application 138 may change the display 154 to depict a coupon, such as in a web browser or other application, for use in the retail store.
In some embodiments, the transmitter 130A, B and/or C may emit a high frequency sound to alter one or more of a sale, transaction, lease, offer for sale, proposed transaction, or other information. Such alteration may be a change to the sale price, the characteristics of a sale, lease, or other transaction. For example, the transmitter 130A, B and/or C may be located in a store in the vicinity of a particular good that the store is marketing heavily. When the application 138 determines that the microphone 144 has received a broadcast from the transmitter 130A, B and/or C, the application 138 may change the sale price for the good and the like.
In embodiments, the high frequency sound emitted by the transmitter 130A, B and/or C may include an information associated with a product or category of products located in proximity with the transmitter 130. For example, the transmitter 130 may be located near a particular television or brand of televisions, and the high frequency sound emitted by the transmitter 130 may include information regarding discounts on such televisions.
In embodiments, when the application 138 determines that the microphone 144 has received the high frequency sound emitted by the transmitter 130A, B and/or C, the application 138 may send information related to the high frequency sound to a server 122. The information may be one or more characteristics and contents of the high frequency sound. The server 122 may include a coupon analytics facility 158. The coupon analytics facility 158 may, based on the information received from the application 138, determine a coupon to be displayed on the device display 154 and send such coupon to the device 102A, B and/or C via the network 114. Additionally, the coupon analytics facility 158 may be enabled to direct the transmitter 130A, B and/or C to emit a particular high frequency sound in order to change the response of the application 138. Returning to the example above with the transmitter 130A, B and/or C near the televisions, the coupon analytics facility 158 may direct the transmitter 130A, B and/or C to change the high frequency sound it emits so that an application 138 would display a new sales price or an offer for a discount on an existing price. In such embodiments, the coupon analytics facility's 158 direction to a transmitter 130A, B and/or C to emit a particular high frequency sound may be based on one or more of marketing input, inventory input, a timer input, customer location input, other customer data input, or other inputs.
Currently, large retail locations do not have a good method for analyzing the movements of customers within a store. This kind of information could be extremely valuable to commercial organizations that typically operate in large spaces, helping them to arrange the store layout in such a way that improves customer experience, increases purchases and reduces lost sales to other retailers, such as e-commerce platforms. Furthermore, such information could also allow retailers to deliver targeted advertisements based on previous customer interest in products and services.
As described above, businesses may track customers in a retail space in order to dispatch customer service representatives. Tracking customers may also be useful for analyzing the behavior of the customers
Referring again to
For example, a grocery store may have high frequency emitting transmitters located in several aisles to provide the customers devices with location information. The customers devices could transmit periodic updates to a server 122 connected via the store's wireless network 114. The store's server 122 may analyze the customer location data received to identify customer movement patterns. The customer movement patterns to be used, for example, by a consultant, to reorganize the layout of the store in order to make a typical customer's movement path more efficient or draw customer attention to certain sections of the store to increase revenue and customer experience.
Methods and systems of a customer service representative dispatch system may be used to locate and track customers in an environment. Such methods and systems may be associated with analyzing customer behavior based on tracking customer locations as described herein, for example. By way of example, the determination to dispatch a customer service representative may be based on the results of analyzing customer behavior based on tracking customer locations. In this example, based on the analysis of the customer behavior, a business may note that there is not much customer traffic near where a popular consumer good is being sold, and, therefore, may dispatch one or more customer service representatives to that area to help customers find the good.
Methods and systems for dispensing coupons based on the location of a user may be used to track customers in an environment and offer for sale some good in the environment. Such methods and systems may be associated with analyzing customer behavior based on tracking customer locations. By way of example, the determination to dispense a coupon may be based on the results of analyzing customer behavior based on tracking customer locations, as described herein, for example. In this example, based on the analysis of the customer behavior, the business may determine that one or more users with certain heat map patterns are less likely to buy certain goods sold by the business. Based on this determination, the business may issue a coupon for such goods to users who exhibit similar or the same patterns.
As devices become more mobile and networks become more ubiquitous, device users have a growing number of options of outputs to connect to their devices. For example, many home audio or theater systems are networked and may contain multiple speakers and other output devices throughout a home. Similarly, offices have multiple output sources for users, such as monitors at a user's desk and a projector in a meeting room. Often, users of these systems will move throughout their environment, whether at home or in the office, and switch their output device. In the home user example, the user may move through their home while listening to or otherwise consuming content. Currently, such users must manually turn on and turn off output devices based on the room they are entering or leaving respectively. It would be advantageous for such a system to be able to automatically enable or disable output devices based on the detected location of the user. Again, providing transmitters throughout an environment may provide a desirable solution for such automatic switching.
Referring again to
The environment 120 may be a home, an office, or some other environment. The user device 102 A, B and/or C may be a mobile device, such as a cell phone, a personal assistant, a tablet, a laptop or some other mobile device. The user device 102A, B and/or C may be comprised of a microphone 144. An output device 140 may be a monitor, a television, an audio component, a printer, a media device (e.g. a Roku, an Apple TV, a PlayStation, an Xbox, etc.), another user device 102B, or some other output device.
In embodiments, the user device 102A, B and/or C, the transmitter 130, and the output devices may be connected via a network 114. The network 114 may be wired or wireless. The network 114 may be a LAN.
In embodiments, the transmitters 130A-C may be enabled to emit a message and/or data. In embodiments, such message may be a high frequency. As previously noted, such message may utilize one or more protocols, such as, but not limited to Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, Zigbee and the like.
In embodiments, the user may select an output device 140 for the user device 102A, B and/or C. Selecting the output device 140 may include one or more of selecting the initial output device 140A and/or B, selecting a default output device 140, selecting the output device 140A and/or B for the current location, selecting the output device 140A and/or B for a different location and selecting the output device 140 A and/or B for some other purpose. Selecting an output device 140 A and/or B may also include defining a location within the environment 120.
When a user with a user device 102 A, B and/or C enters into an environment, the user device may be enabled to receive a message from a first transmitter 130A. For example, the user may enter the living room in his home and his cell phone may receive a high frequency sound from a first transmitter 130A located in the living room. In this example, the user device's 102 A, B and/or C may receive, via a microphone 144, the high frequency sound from the first transmitter 130A. If the user has an output device 140A, for example, associated with that location, the device 102 A, B and/or C, upon receiving the high frequency sound may route output to the associated output device 140A. In this example, the output device 140A may be a set of speakers located in the living room. If, in this example, the user has a second transmitter 130B located in his bedroom and walks to his bedroom, the user device 102A, B and/or C may receive a high frequency sound from the second transmitter 130B located in the bedroom. Upon receiving the new high frequency sound and the user device 102A, B and/or C may switch the media stream to the second output device 140B associated with the bedroom, for example, a different set of speakers in the bedroom.
In some embodiments, the media stream may be from a remote computing system (e.g. a streaming media device, like a Roku, or a cable box, etc.). In such embodiments, the user device 102A may, in response to receiving a high frequency sound from a transmitter 130A, B and/or C, may transmit data (e.g. observed characteristics of the high frequency sound) to a remote computing system, such as a server 122. The remote computing system may associate the (e.g. the characteristics of the high frequency sound) with an output device 140A and/or B and, then switch the media stream to the output device 140.
In embodiments, the device 102A, B and/or C may be further enabled to determine when it no longer is receiving a message from a first transmitter 130A. When the device 102A, B and/or C no longer is receiving a message from the first transmitter 130A, the device 102A, B and/or C may communicate such determination to the server 122. In response to receiving such determination, the server 122 may terminate the media stream to the first output device 140A.
As devices become more mobile and networks become more ubiquitous, device users also have a growing number of devices that may be controlled remotely, either by IR signals or over some other protocol. As previously noted, many home audio or theater systems are networked and may contain multiple speakers and other output devices throughout a home, and such devices may be controlled remotely, including by other devices on the network. Since the user already has one device, it may be desirable to enable that device to control the other devices in the environment. Furthermore, it may be desirable to enable the device to automatically detect its location and configure itself to control the devices in the same location. In the home user example, the user may start watching a media stream in one room and use the user device to control the home media system in the first room. If the user moves to another room to finish watching the media, it may be useful to have the user device identify the location change and reconfigure which devices it is set to control. Currently, such users must either keep separate controls for each room, or manually switch a controller based on the room they are entering or leaving. It would be advantageous for such a system to be able to automatically enable or disable the control of the output devices based on the detected location of the user. Again, providing transmitters throughout an environment may provide a desirable solution for such automatic switching.
Referring still to
In some embodiments, the systems and methods may further comprise altering an output from the user device 102A, B and/or C based on the characteristics or contents of the message received from a transmitter 130A, B and/or C. For example, the user device 102 A, B and/or C may be enabled to, based on the frequency of sound received from a transmitter 130A, B and/or C, download and configure specific IR remote control facility codes for controlling an output device in the environment 120 via the IR remote control facility 150 on the user device 102A, B and/or C.
Modifying the IR remote control facility on the user device 102A, B and/or C may further comprise determining which output device 140 is located at a location and associated with a transmitter 130A, B and/or C, based on the message from the transmitter 140A and/or B, then modifying the control interface. Modifying the control interface may also include changing one or more output signals and/or protocols from the user device 102A, B and/or C for controlling the correct output device 140A and/or B. For example, the user device 102A, B and/or C may, but is not limited to, determine its location based upon a high frequency sound from a transmitter 130A, B and/or C in the room, and adjust the volume of all speakers within a home in order to maintain a consistent volume to the user as they move from room to room.
Returning the example of the user at home, the user may walk into the living room. The user device 102A, B and/or C may receive a message from a first transmitter 130A located in the living room. Upon receiving the message from the first transmitter 130A, the device may modify the IR remote control facility 150 to control an output device 140A and modify the display 154 to depict controls for an output device 140A in the living room, such as a home theater system. The controls depicted on the display 154 may include the controls available via the IR remote control facility 150, such as a volume control, frequency tuning control, a device input control, a power control, a DVD player control or some other device control.
Staying with this example, when the user walks into the kitchen, the user device 102A, B and/or C may receive a message from a second transmitter 130B located in the kitchen. Upon receiving the message from the second transmitter 130B, the device may modify the IR remote control facility 150 and the display 154 to depict controls for an output device 140B in the kitchen, which may be an iPod docking station, for example.
Methods and systems of automatically switching of output devices based on a location may be used to track a user in environment and provide dynamic output selection, based on the user's location. Such methods and systems may be associated with automatically switching the controls for a plurality of output devices. For example, upon determining that a user has moved from one location associated with a first output device to a second location associated with a second output device, the user device may automatically switch the media stream from the first to the second output device and automatically switch the controls and the display on the user device from the controls associated with the first output device to those associated with the second output device. In embodiments, such determination may be made by receiving at the device a high frequency message from a transmitter associated with a specific output device, as described herein, for example.
In addition to the foregoing security and business benefits discussed above, locating and tracking a user based on the location of the user's device may have game and/or multiplayer game applications. This may provide an inexpensive way of introducing potentially asymmetric information dissemination to players of a multiplayer game. Asymmetric gameplay is an emerging sector of the game industry, and has the potential to drive a large amount of innovation, as evidenced by the development of the Wii U.
Referring still to
For example, two players may be playing a multiplayer game on a Wii U in the same room. The players' characters may be located in different parts of the same game map and the first player may be hiding from the second player. The first player's controller may emit a sound, such as a high frequency sound based on the first player's character's location in the game map. The second player's GamePad may receive the sound, analyze it in whole and/or in part, and update the map information displayed on the GamePad to indicate the general direction of the first player's character. In embodiments, the emitted sound may alter one or more of various devices and/or one or more of various devices may emit a sound for altering content of the display of one or more devices based on an analysis of the sound and/or an analysis of the sound and other data and/or one or more items. In embodiments, devices such as a game headset could alter the intensity of an indicator and/or display to reflect a detected amplitude of a specific sound frequency, and may thereby indicate the proximity of other players.
In some situations, it may be beneficial to ensure that all the users of a particular system are present in the same location before granting any user access to a system. A potential example of this need arises from a testing scenario in which no user should be granted an unfair advantage over another user by being granted access to test materials before any other user. Another example involves the authorization of particular actions that carry significant consequences, such as launching a missile or overriding a safety control. In such cases, it may be necessary to guarantee that the required users are physically present together before allowing a specific action (e.g. launching a missile) to be executed. This may be accomplished by securing access to some resource, such as a computing system, until all the required users are located in the vicinity of the resource. Tracking and confirming the locations of the required users may be accomplished with a location beacon to track unique sounds emitted by enabled devices carried by the required users.
Referring again to
For example, a testing environment may have a fixed location beacon 160 that is configured to receive ultrasonic signals. The students who are required to be present for the test may each have a user device 102A, B and/or C. Each device 102A, B and/or C may have a speaker 142 enabled to produce an ultrasonic signal. The location beacon 160 and the user devices 102 A, B and/or C may each be connected to a computing system 162 via a wireless network 114. The user devices 102A, B and/or C may receive from the computing system 162 a specific ultrasonic signal configuration, unique to each device 102. For example, when a user signs up for the test, the computing system 162 may send said user's device 102A, B and/or C the specific ultrasonic signal configuration to be emitted for a period before the exam and during the exam. Each device 102A, B and/or C may then transmit the specific signal with the configuration received from said computing system 162. The location beacon 160 may provide updates to the computing system 162 regarding the ultrasonic signals from the devices received by the location beacon 160. The computing system 162 may track which students are located in the testing environment based on the updates from the location beacon 160. Once the computing system 162 determines that all the required students are located in the testing environment, the computing system 162 may begin the test and grant the students access to the test materials.
Referring now to
An additional application for location-based security is to secure access to data in a file system (i.e. read, write, execute, modify, delete, copy, and/or transmit) based on a user's location.
Referring again to
For example, a user device could pick up a high frequency sound broadcast by a speaker device, identify the frequency of the sound, and report the frequency to a remote file server in an effort to gain access to files on that server. The server would then process the reported data and determine whether to grant access to the mobile device.
In some embodiments, the heartbeat message may be sent as a high frequency sound embedded in television or radio media. A mobile device 102A, B and/or C may be enabled to receive such media and use the high frequency sound to request content from a server 122 that may be relevant advertising content.
By way of example, in embodiments, controlling access to first data stored on a first device may include sending a heartbeat message from a second device to a third device (having memory, a processing unit and a microphone), prompting the third device to send second data to a fourth device (which may also be the first device) said data including, but not limited to, information signifying receipt or failure to receive heartbeat messages, so that the fourth device may process the second data in whole or in part to determine whether access to the first data should be granted to the third device. Such access may include the ability to read, copy, modify, delete and/or transmit said data. In embodiments, such firs, second, third, fourth, etc, device may comprise a plurality of devices such that messages are send to and from one or more devices at the steps described. In embodiments, a mobile device may pick up a high frequency sound broadcast by a speaker device, identify the frequency, and report the frequency to a remote file server in an effort to gain access to files on that server. The server may then process the reported data and determine whether to grant access to the mobile device.
An additional application for location-based security is to secure access to an application based on a user's location.
Referring again to
For example, the transmitter 130A, B and/or C may be located in a car, truck, other automobile, or other piece of machinery around which certain kinds of phone usage might be dangerous. In this example, the transmitter 130A, B and/or C may broadcast a signal whenever the automobile is not in park, so that the driver's mobile device disables the SMS messaging application 138 during the operation of the automobile.
Methods and systems of controlling access to data on a device may be used to track users and either grant or block access to files, based on where the user is located. Such methods and systems may be associated with granting and/or blocking user access to one or more applications, based on where the user is located. Per an example above, a user located in a car may not be permitted to use the SMS application on the user's device while the car is running Additionally, the user may be permitted to access certain media files while in the car (e.g. MP3s) and prohibited from accessing certain other media files while in the car (e.g. video files). Tracking a player of game based on the location of the player's device is a species of the foregoing. So, for example, a function or data in multiplayer game may be associated with detecting or locating another player. Such function or data may be enabled or disabled, based on the proximity of a first player to a second player of the game.
The process of entering user credentials before being granted access to a computing system is a necessary yet tedious process. In many systems, it is imperative that a user is authenticated before being shown sensitive data in order to ensure, for example, privacy, confidentiality, or security. If only performed once, this process is trivial, but in environments where users must log in and log out of systems 20, 30, 40 or more times per day, this trivial amount of time becomes significant. It therefore becomes advantageous to streamline this process and provide a different authentication medium.
Mobile devices, such as smartphones, tablets and other mobile computing devices are becoming ubiquitous and, when tied to an individual, possess the capability to authenticate a user in a different system. A secured computing system may be maintained without requiring a nearby user to repeat the step of logging in by tracking the previously authenticated user's location.
Referring to
Referring again to
The user device 102A, B and/or C may determine its location by way of a location determination mechanism. This location determination mechanism could be a system such as GPS or could be a proprietary system implemented using a technology such as ultrasonic sound, RF signals, Bluetooth signals, Wi-Fi signals, NFC tags, and/or the like, such that the location of the user device 102A, B and/or C can be determined to be close to the location of the computing system 162. Upon determining, that the user device 102A, B and/or C is in proximity to the computing system 162, authentication credentials are automatically transmitted to the computing system 162 either directly or indirectly. In embodiments, transmitting the authentication credentials may include transmitting them via a network 114, which may be a wireless LAN. The computing system 162 may then authenticate the user and may grant access to the secured content without user intervention at the computing system 162. In some embodiments, the user device 102A, B and/or C may require the user to confirm the transmission of credentials before transmission of credentials from the user device 102A, B and/or C to the computing system 162. In some embodiments, upon determining that the user device 102 A, B and/or C is no longer present at the location corresponding to the computing system 162, the computing system 162 may automatically de-authenticate the user. A person of skill in the art would understand that arbitrary levels of security may be added to this system without significant deviation from the aforementioned embodiments, such as encryption, device authentication, and the like.
While only a few embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that many changes and modifications may be made thereunto without departing from the spirit and scope of the present invention as described in the following claims. All patent applications and patents, both foreign and domestic, and all other publications referenced herein are incorporated herein in their entireties to the full extent permitted by law.
The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software, program codes, and/or instructions on a processor. The present invention may be implemented as a method on the machine, as a system or apparatus as part of or in relation to the machine, or as a computer program product embodied in a computer readable medium executing on one or more of the machines. In embodiments, the processor may be part of a server, cloud server, client, network infrastructure, mobile computing platform, stationary computing platform, or other computing platform. A processor may be any kind of computational or processing device capable of executing program instructions, codes, binary instructions and the like. The processor may be or may include a signal processor, digital processor, embedded processor, microprocessor or any variant such as a co-processor (math co-processor, graphic co-processor, communication co-processor and the like) and the like that may directly or indirectly facilitate execution of program code or program instructions stored thereon. In addition, the processor may enable execution of multiple programs, threads, and codes. The threads may be executed simultaneously to enhance the performance of the processor and to facilitate simultaneous operations of the application. By way of implementation, methods, program codes, program instructions and the like described herein may be implemented in one or more thread. The thread may spawn other threads that may have assigned priorities associated with them; the processor may execute these threads based on priority or any other order based on instructions provided in the program code. The processor, or any machine utilizing one, may include memory that stores methods, codes, instructions and programs as described herein and elsewhere. The processor may access a storage medium through an interface that may store methods, codes, and instructions as described herein and elsewhere. The storage medium associated with the processor for storing methods, programs, codes, program instructions or other type of instructions capable of being executed by the computing or processing device may include but may not be limited to one or more of a CD-ROM, DVD, memory, hard disk, flash drive, RAM, ROM, cache and the like.
A processor may include one or more cores that may enhance speed and performance of a multiprocessor. In embodiments, the process may be a dual core processor, quad core processors, other chip-level multiprocessor and the like that combine two or more independent cores (called a die).
The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software on a server, client, firewall, gateway, hub, router, or other such computer and/or networking hardware. The software program may be associated with a server that may include a file server, print server, domain server, internet server, intranet server, cloud server and other variants such as secondary server, host server, distributed server and the like. The server may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other servers, clients, machines, and devices through a wired or a wireless medium, and the like. The methods, programs or codes as described herein and elsewhere may be executed by the server. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the server.
The server may provide an interface to other devices including, without limitation, clients, other servers, printers, database servers, print servers, file servers, communication servers, distributed servers, social networks and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the server through an interface may include at least one storage medium capable of storing methods, programs, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs.
The software program may be associated with a client that may include a file client, print client, domain client, internet client, intranet client and other variants such as secondary client, host client, distributed client and the like. The client may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other clients, servers, machines, and devices through a wired or a wireless medium, and the like. The methods, programs or codes as described herein and elsewhere may be executed by the client. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the client.
The client may provide an interface to other devices including, without limitation, servers, other clients, printers, database servers, print servers, file servers, communication servers, distributed servers and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the client through an interface may include at least one storage medium capable of storing methods, programs, applications, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs.
The methods and systems described herein may be deployed in part or in whole through network infrastructures. The network infrastructure may include elements such as computing devices, servers, routers, hubs, firewalls, clients, personal computers, communication devices, routing devices and other active and passive devices, modules and/or components as known in the art. The computing and/or non-computing device(s) associated with the network infrastructure may include, apart from other components, a storage medium such as flash memory, buffer, stack, RAM, ROM and the like. The processes, methods, program codes, instructions described herein and elsewhere may be executed by one or more of the network infrastructural elements. The methods and systems described herein may be adapted for use with any kind of private, community, or hybrid cloud computing network or cloud computing environment, including those which involve features of software as a service (SaaS), platform as a service (PaaS), and/or infrastructure as a service (IaaS).
The methods, program codes, and instructions described herein and elsewhere may be implemented on a cellular network having multiple cells. The cellular network may either be frequency division multiple access (FDMA) network or code division multiple access (CDMA) network. The cellular network may include mobile devices, cell sites, base stations, repeaters, antennas, towers, and the like. The cell network may be a GSM, GPRS, 3G, EVDO, mesh, or other networks types.
The methods, programs codes, and instructions described herein and elsewhere may be implemented on or through mobile devices. The mobile devices may include navigation devices, cell phones, mobile phones, mobile personal digital assistants, laptops, palmtops, netbooks, pagers, electronic books readers, music players and the like. These devices may include, apart from other components, a storage medium such as a flash memory, buffer, RAM, ROM and one or more computing devices. The computing devices associated with mobile devices may be enabled to execute program codes, methods, and instructions stored thereon. Alternatively, the mobile devices may be configured to execute instructions in collaboration with other devices. The mobile devices may communicate with base stations interfaced with servers and configured to execute program codes. The mobile devices may communicate on a peer to peer network, mesh network, or other communications network. The program code may be stored on the storage medium associated with the server and executed by a computing device embedded within the server. The base station may include a computing device and a storage medium. The storage device may store program codes and instructions executed by the computing devices associated with the base station.
The computer software, program codes, and/or instructions may be stored and/or accessed on machine readable media that may include: computer components, devices, and recording media that retain digital data used for computing for some interval of time; semiconductor storage known as random access memory (RAM); mass storage typically for more permanent storage, such as optical discs, forms of magnetic storage like hard disks, tapes, drums, cards and other types; processor registers, cache memory, volatile memory, non-volatile memory; optical storage such as CD, DVD; removable media such as flash memory (e.g. USB sticks or keys), floppy disks, magnetic tape, paper tape, punch cards, standalone RAM disks, Zip drives, removable mass storage, off-line, and the like; other computer memory such as dynamic memory, static memory, read/write storage, mutable storage, read only, random access, sequential access, location addressable, file addressable, content addressable, network attached storage, storage area network, bar codes, magnetic ink, and the like.
The methods and systems described herein may transform physical and/or or intangible items from one state to another. The methods and systems described herein may also transform data representing physical and/or intangible items from one state to another.
The elements described and depicted herein, including in flow charts and block diagrams throughout the figures, imply logical boundaries between the elements. However, according to software or hardware engineering practices, the depicted elements and the functions thereof may be implemented on machines through computer executable media having a processor capable of executing program instructions stored thereon as a monolithic software structure, as standalone software modules, or as modules that employ external routines, code, services, and so forth, or any combination of these, and all such implementations may be within the scope of the present disclosure. Examples of such machines may include, but may not be limited to, personal digital assistants, laptops, personal computers, mobile phones, other handheld computing devices, medical equipment, wired or wireless communication devices, transducers, chips, calculators, satellites, tablet PCs, electronic books, gadgets, electronic devices, devices having artificial intelligence, computing devices, networking equipment, servers, routers and the like. Furthermore, the elements depicted in the flow chart and block diagrams or any other logical component may be implemented on a machine capable of executing program instructions. Thus, while the foregoing drawings and descriptions set forth functional aspects of the disclosed systems, no particular arrangement of software for implementing these functional aspects should be inferred from these descriptions unless explicitly stated or otherwise clear from the context. Similarly, it will be appreciated that the various steps identified and described above may be varied, and that the order of steps may be adapted to particular applications of the techniques disclosed herein. All such variations and modifications are intended to fall within the scope of this disclosure. As such, the depiction and/or description of an order for various steps should not be understood to require a particular order of execution for those steps, unless required by a particular application, or explicitly stated or otherwise clear from the context.
The methods and/or processes described above, and steps associated therewith, may be realized in hardware, software or any combination of hardware and software suitable for a particular application. The hardware may include a general purpose computer and/or dedicated computing device or specific computing device or particular aspect or component of a specific computing device. The processes may be realized in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors or other programmable device, along with internal and/or external memory. The processes may also, or instead, be embodied in an application specific integrated circuit, a programmable gate array, programmable array logic, or any other device or combination of devices that may be configured to process electronic signals. It will further be appreciated that one or more of the processes may be realized as a computer executable code capable of being executed on a machine readable medium.
The computer executable code may be created using a structured programming language such as C, an object oriented programming language such as C++, or any other high-level or low-level programming language (including assembly languages, hardware description languages, and database programming languages and technologies) that may be stored, compiled or interpreted to run on one of the above devices, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or any other machine capable of executing program instructions.
Thus, in one aspect, methods described above and combinations thereof may be embodied in computer executable code that, when executing on one or more computing devices, performs the steps thereof. In another aspect, the methods may be embodied in systems that perform the steps thereof, and may be distributed across devices in a number of ways, or all of the functionality may be integrated into a dedicated, standalone device or other hardware. In another aspect, the means for performing the steps associated with the processes described above may include any of the hardware and/or software described above. All such permutations and combinations are intended to fall within the scope of the present disclosure.
While the disclosure has been disclosed in connection with the preferred embodiments shown and described in detail, various modifications and improvements thereon will become readily apparent to those skilled in the art. Accordingly, the spirit and scope of the present disclosure is not to be limited by the foregoing examples, but is to be understood in the broadest sense allowable by law.
The use of the terms “a” and “an” and “the” and similar referents in the context of describing the disclosure (especially in the context of the following claims) is to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate the disclosure and does not pose a limitation on the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.
While the foregoing written description enables one of ordinary skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The disclosure should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the disclosure.
All documents referenced herein are hereby incorporated by reference.
Some of the aspects of the methods and systems described herein have been described in U.S. Provisional Application Nos. 61/780,408 entitled “Systems And Methods To Synchronize Data To A Mobile Device Based On A Device Usage Context”, filed Mar. 13, 2013; 61/781,252 entitled “Systems And Methods To Secure Short-Range Proximity Signals”, filed Mar. 14, 2013; 61/781,509 entitled “Systems And Methods For Securing And Locating Computing Devices”, filed Mar. 14, 2013; 61/779,931 entitled “Systems And Methods For Securing The Boot Process Of A Device Using Credentials Stored On An Authentication Token”, filed Mar. 13, 2013; 61/790,728 entitled “Systems And Methods For Enforcing Security In Mobile Computing”, filed Mar. 15, 2013; and U.S. Non-Provisional application Ser. No. 13/735,885 entitled “Systems and Methods for Enforcing Security in Mobile Computing”, filed Jan. 7, 2013, each of which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
61790728 | Mar 2013 | US | |
61785109 | Mar 2013 | US | |
61781252 | Mar 2013 | US | |
61780408 | Mar 2013 | US | |
61779931 | Mar 2013 | US |