Systems and methods for mitigating mobile device loss

A computer-implemented method for mitigating mobile device loss may include (1) identifying historical data specifying a plurality of past locations of a mobile computing device, (2) identifying a current location of the mobile computing device, (3) determining that the current location deviates from an expected location based on the historical data, and (4) performing a security measure on the mobile computing device in response to determining that the current location deviates from the expected location. Various other methods, systems, and computer-readable media are also disclosed.

BACKGROUND

Computing devices have become a ubiquitous part of everyday life. For example, millions of people carry and use mobile computing devices (e.g., cellular telephones, MP3 players, laptops, Bluetooth headsets, etc.) throughout their daily activities. However, such computing devices (especially relatively small, mobile computing devices) may be easily misplaced by users and/or stolen by thieves. The loss of a mobile computing device may not only represent the loss of the value of the device to the owner, but also the loss of important data stored on the device. In addition, private or even confidential data may be stored on the device, exposing the owner of a lost device to potential privacy and/or security risks.

Traditional mobile device security systems may allow a user and/or owner to remotely activate anti-theft measures once the user realizes that the mobile device is missing and most likely stolen. Unfortunately, by the time the owner realizes that the mobile device is stolen, a thief may have already compromised the mobile device (e.g., by retrieving sensitive data from the device, wiping the device, etc.). Accordingly, the instant disclosure identifies and addresses a need for additional and improved systems and methods for mitigating mobile device loss.

SUMMARY

As will be described in greater detail below, the instant disclosure generally relates to systems and methods for mitigating mobile device loss by using historical data describing past locations of a mobile device to determine where the mobile device is expected to be and by automatically taking security measures if the mobile device is in an unexpected location. In one example, a computer-implemented method for mitigating mobile device loss may include (1) identifying historical data specifying a plurality of past locations of a mobile computing device, (2) identifying a current location of the mobile computing device, (3) determining that the current location deviates from an expected location based on the historical data, and (4) performing a security measure on the mobile computing device in response to determining that the current location deviates from the expected location.

The historical data specifying a plurality of past locations of the mobile computing device may include any of a variety of information about the past locations of the mobile computing device. In some examples, the historical data may specify a plurality of times corresponding to the plurality of past locations of the mobile computing device. In some examples, the computer-implemented method may also track the location of the mobile computing device to generate the historical data.

In some embodiments, in addition to identifying the current location of the mobile computing device, the computer-implemented method may identify a current time. In these embodiments, determining that the current location deviates from the expected location based on the historical data may include determining that the current location deviates from the expected location given the current time.

In some examples, determining that the current location deviates from the expected location may include determining that the current location deviates from the expected location by a distance beyond a predetermined threshold. Additionally or alternatively, determining that the current location deviates from the expected location may include determining that the current location deviates from the expected location based at least in part on a route used to arrive at the current location. In some examples, determining that the current location deviates from the expected location may include (1) identifying a movement pattern within the historical data and (2) determining that an arrival at the current location deviates from the movement pattern. Additionally or alternatively, determining that the current location deviates from the expected location may include determining, based on the historical data, that a statistical likelihood of the mobile computing device being at the current location at a current time falls below a predetermined threshold.

In some embodiments, performing the security measure may include presenting a challenge via an interface of the mobile computing device to verify that an authorized user of the mobile computing device is in possession of the mobile computing device. Additionally or alternatively, performing the security measure may include locking the mobile device, changing an access code for the mobile computing device, using a media capture device within the mobile computing device, and/or removing sensitive data from the mobile computing device.

In one embodiment, a system for implementing the above-described method may include (1) an identification module programmed to identify historical data specifying a plurality of past locations of a mobile computing device, (2) a location module programmed to identify a current location of the mobile computing device, (3) a determination module programmed to determine that the current location deviates from an expected location based on the historical data, and (4) a performing module programmed to perform a security measure on the mobile computing device in response to determining that the current location deviates from the expected location. The system may also include at least one processor configured to execute the identification module, the location module, the determination module, and the performing module.

In some examples, the above-described method may be encoded as computer-readable instructions on a computer-readable-storage medium. For example, a computer-readable-storage medium may include one or more computer-executable instructions that, when executed by at least one processor of a computing device, may cause the computing device to (1) identify historical data specifying a plurality of past locations of a mobile computing device, (2) identify a current location of the mobile computing device, (3) determine that the current location deviates from an expected location based on the historical data, and (4) perform a security measure on the mobile computing device in response to determining that the current location deviates from the expected location.

As will be explained in greater detail below, by using historical data describing past locations of a mobile device to determine where the mobile device is expected to be and by automatically taking security measures if the mobile device is in an unexpected location, the systems and methods described herein may potentially perform the security measures before an owner of the mobile device knows that it is missing, thereby potentially providing more effective security. Additionally, in some examples, these systems and methods may perform such security determinations with minimal or no user input regarding safe and/or expected locations.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The following will provide, with reference toFIGS. 1-2, detailed descriptions of exemplary systems for mitigating mobile device loss. Detailed descriptions of corresponding computer-implemented methods will also be provided in connection withFIG. 3. Detailed descriptions of exemplary location data will be provided in connection withFIGS. 4-5. In addition, detailed descriptions of an exemplary computing system and network architecture capable of implementing one or more of the embodiments described herein will be provided in connection withFIGS. 6 and 7, respectively.

FIG. 1is a block diagram of an exemplary system100for mitigating mobile device loss. As illustrated in this figure, exemplary system100may include one or more modules102for performing one or more tasks. For example, and as will be explained in greater detail below, exemplary system100may include an identification module104programmed to identify historical data specifying a plurality of past locations of a mobile computing device. Exemplary system100may also include a location module106programmed to identify a current location of the mobile computing device.

In addition, and as will be described in greater detail below, exemplary system100may include a determination module108programmed to determine that the current location deviates from an expected location based on the historical data. Exemplary system100may also include a performing module110programmed to perform a security measure on the mobile computing device in response to determining that the current location deviates from the expected location. Although illustrated as separate elements, one or more of modules102inFIG. 1may represent portions of a single module or application.

Exemplary system100inFIG. 1may be implemented in a variety of ways. For example, all or a portion of exemplary system100may represent portions of exemplary system200inFIG. 2. As shown inFIG. 2, system200may include a mobile computing device202.

In one embodiment, one or more of modules102fromFIG. 1may, when executed by at least one processor of mobile computing device202, facilitate mobile computing device202in mitigating mobile device loss. For example, and as will be described in greater detail below, one or more of modules102may cause mobile computing device202to (1) identify historical data specifying a plurality of past locations of a mobile computing device (e.g., historical location data210), (2) identify a current location of the mobile computing device (e.g., indicated by current location data212), (3) determine that the current location deviates from an expected location based on the historical data (e.g., determine that a location indicated by current location data212deviates from an expected location based on historical location data210), and (4) perform a security measure on the mobile computing device in response to determining that the current location deviates from the expected location (e.g., performing a security measure on mobile computing device202in response to determining that a location indicated by current location data212deviates from an expected location based on historical location data210).

Mobile computing device202generally represents any type or form of computing device capable of reading computer-executable instructions. Examples of computing device202include, without limitation, cellular phones, tablet computing devices, e-book readers, laptops, netbooks, personal digital assistants (PDAs), multimedia players, embedded systems, combinations of one or more of the same, exemplary computing system610inFIG. 6, or any other suitable computing device.

FIG. 3is a flow diagram of an exemplary computer-implemented method300for mitigating mobile device loss. The steps shown inFIG. 3may be performed by any suitable computer-executable code and/or computing system. In some embodiments, the steps shown inFIG. 3may be performed by one or more of the components of system100inFIG. 1, system200inFIG. 2, computing system610inFIG. 6, and/or portions of exemplary network architecture700inFIG. 7.

As illustrated inFIG. 3, at step302one or more of the systems described herein may identify historical data specifying a plurality of past locations of a mobile computing device. For example, at step302identification module104may, as part of mobile computing device202inFIG. 2, identify historical location data210specifying a plurality of past locations of mobile computing device202.

The historical data may specify any of a variety of information relating to past locations of the mobile computing device. For example, the historical data may specify a plurality of times corresponding to the plurality of past locations of the mobile computing device. For example, the historical data may specify the time of day at which the mobile computing device was located at each of the past locations. Additionally or alternatively, the historical data may specify a date at which the mobile computing device was located at each of the past locations. In some examples, the historical data may specify a day of the week, a period of the day (e.g., morning, afternoon, evening, or night), and/or any other division of time at which the computing device was located at each of the past locations. In some examples, the historical data may specify a direction and/or speed of travel of the mobile computing device at the time that the mobile computing device was located at each of the past locations. In one example, the historical data may include three-dimensional location data. For example, the historical data may specify past locations according to the longitude, latitude, and elevation of the mobile computing system. Additionally or alternatively, the historical data may specify the past locations according to map data (e.g., specifying one or more of the past locations in terms of street addresses and/or roads).

Identification module104may identify the historical data in any of a variety of contexts. In some examples, identification module104may identify the historical data having previously generated the historical data. For example, identification module104may track the location of the mobile computing device to generate the historical data. Identification module104may track the location of the mobile computing device using any of a variety of techniques. For example, identification module104may query a positioning device (such as a global positioning system device) within the mobile computing system for the position of the mobile computing system. Additionally or alternatively, identification module104may retrieve the location from and/or calculate the location using a Wi-Fi triangulation technique, a mobile positioning technique (such as cellular signal triangulation and/or multilateration), and/or any other suitable method for locating and/or approximating the location of the mobile computing system. In some examples, identification module104may only track the location of the mobile computing device intermittently. For example, identification module104may track the location of the mobile computing device once every 15 minutes or once every hour. In this manner, identification module104may effectively track the mobile computing device while minimizing power and/or memory consumption on the mobile computing device.

In some examples, identification module104may accumulate historical location data for the mobile computing device indefinitely. Alternatively, identification module104may store only the most recent historical location data (e.g., over a year's time), allowing the oldest historical location data to expire.

In some examples, identification module104may generate the historical data entirely based on observed locations of the mobile computing device. Alternatively, identification module104may also generate the historical data in part based on a user's input. For example, identification module104may allow a user to identify locations of interest to the user. For example, identification module104may allow a user to identify a home location, an office location, one or more shopping locations, etc. Additionally or alternatively, identification module104may retrieve annotated map data to identify common locations of interest near the user's home and/or office that the user may likely visit (e.g., shopping centers, major roads, airports, etc.). In some examples, after establishing one or more locations of interest to the user, identification module104may identify a likely route from one location of interest to another (e.g., from the user's home to the user's office). In these examples, identification module104may query the user if the likely route is the route taken by the user or if another route is normally taken by the user. In these examples, after establishing information about the user's locations of interest, the mobile computing device may periodically update the historical data based on observed locations of the mobile computing device.

FIG. 4illustrates an exemplary historical data400specifying past locations of a mobile computing device. As shown inFIG. 4, exemplary historical data400may include a cluster of locations410(e.g., in or near a user's home), a cluster of locations420(e.g., in or near the user's office), and locations432,434, and436(e.g., in travel between the user's home and office). UsingFIG. 4as an example, at step302identification module104may identify exemplary historical data400. In some examples, identification module104may identify highway360and highway183as a part of a user's route between the user's home and office based on locations432,434, and436.

ReturningFIG. 3, at step304one or more of the systems described herein may identify a current location of the mobile computing device. For example, at step304location module106may, as part of mobile computing device202inFIG. 2, identify a current location of mobile computing device202as indicated by current location data212.

Location module106may identify the current location of the mobile computing device in any suitable manner. For example, location module106may use any of the techniques described earlier for tracking the mobile computing device to generate the historical data. For example, location module106may query a positioning device (such as a global positioning system device) within the mobile computing system for the position of the mobile computing system. Additionally or alternatively, location module106may retrieve the location from and/or calculate the location using a Wi-Fi triangulation technique, a mobile positioning technique (such as cellular signal triangulation and/or multilateration), and/or any other suitable method for locating and/or approximating the location of the mobile computing system.

In some examples, location module106may identify the location of the mobile computing device intermittently. Accordingly, location module106may identify the current location of the mobile computing device based on a predetermined amount of time passing since the last the location of the mobile computing device was identified. In some examples, location module106may identify the current location of the mobile computing device by identifying a recent and/or most recently tracked location of the mobile computing device.

As mentioned earlier, in some examples the historical data may specify a plurality of times corresponding to the plurality of past locations of the mobile computing device. In these examples, location module106may also identify a current time (e.g., a time at which the mobile computing device is located at the current location).

Location module106may identify the current location of the mobile computing device in any of a variety of forms. For example, location module106may identify the current location in terms of global coordinates. Additionally or alternatively, location module106may identify the current location in terms of a street address and/or a road. In some examples, location module106may identify the current location in terms of a type of location (e.g., a road, a residential location, an office park, a restaurant, a gas station, a retail store, a park, etc.).

FIG. 5illustrates an exemplary map500showing an analysis of historical location data of a mobile computing device and recent location data of the mobile computing device. For example, one or more of the systems described herein may describe locations410ofFIG. 4with an expected location510inFIG. 5(e.g., an area around a user's home that allows for small variances in the exact location as well as allowing for location measurement errors). Likewise, one or more of the systems described herein may describe locations420ofFIG. 4with an expected location520inFIG. 5(e.g., an area around a user's office allowing for small variances and measurement errors).FIG. 5may also identify recent locations532,534, and536leading to a recent cluster of locations540. UsingFIG. 5as an example, at step304location module106may identify the current location as the most recent location within cluster of locations540.

ReturningFIG. 3, at step306one or more of the systems described herein may determine that the current location deviates from an expected location based on the historical data. For example, at step306determination module108may, as part of mobile computing device202inFIG. 2, determine that a current location of mobile computing device202indicated by current location data212deviates from an expected location based on historical location data210.

As used herein, the phrase “expected location” may refer to any location, area, and/or sets of locations and/or areas at which the mobile computing device may be expected to be in light of the historical data. As will be explained in greater detail below, determination module108may use any of a variety of techniques to determine the expected location.

Determination module108may determine that the current location deviates from the expected location in any of a variety of ways. For example, as mentioned earlier, in some examples the historical data may include timestamps corresponding to the location data. In these examples, determination module108may determine that the current location deviates from the expected location given the current time. UsingFIG. 4as an example, the cluster of locations420may represent a user's office. Accordingly, historical location data400may identify the cluster of locations420corresponding to times between 9:00 am and 6:00 pm on weekdays. Determination module108may consider an area surrounding the cluster of locations420as an expected location on weekdays between 9:00 am and 6:00 pm, but not on weekends or at midnight.

In some examples, determination module108may determine that the current location deviates from the expected location by determining that the current location deviates from the expected location beyond a predetermined threshold. For example, determination module108may determine that a cluster of locations specified in the historical data generally represent a single location (e.g., a user's home). Accordingly, determination module108may determine that the current location corresponds to the user's home if the current location is within a mile of the user's home. Additionally or alternatively, determination module108may analyze the cluster of locations to determine a center point of the locations and a standard deviation of the distance of the locations from the center point. Determination module108may then set the predetermined threshold as a predetermined number of standard deviations from the center (e.g., three standard deviations). UsingFIG. 5as an example, determination module108may calculate the ranges of expected locations510and520based on the clusters of locations410and420, respectively.

In some examples, determination module108may determine that the current location deviates from the expected location based at least in part on a route used to arrive at the current location. For example, determination module108may determine that the mobile computing device is currently on a road (e.g., during a normal morning commute time) that a user could take from his home to his office, but that the road has not historically be taken by the user from his home to his office. Accordingly, determination module108may determine that the current location on the road deviates from the expected location.

Determination module108may, in some examples, analyze the historical data for patterns. For example, determination module108may identify a movement pattern within the historical data and determine that an arrival at the current location deviates from the movement pattern. For example, determination module108may determine that the current location does not represent an expected location because the current location is out of sequence with a user's routine. For example, determination module108may determine that although the mobile computing device is traveling on a road that the user occasionally uses (e.g., to drive from a donut shop to the user's office), since the mobile computing device was not recently located within the donut shop, the current location on the road does not represent an expected location.

In one example, determination module108may observe over the course of a week that the mobile computing device has traveled along the same road every day and stopped at a restaurant before continuing down the road. Determination module108may also determine that, after the mobile computing device leaves the restaurant on the most recent occasion, the mobile computing device is traveling back up the road instead of continuing down the road. Determination module108may therefore determine that the current location is not an expected location.

In some examples, determination module108may determine that the current location is not an expected location by determining, based on the historical data, that a statistical likelihood of the mobile computing device being at the current location at a current time falls below a predetermined threshold. Determination module108may use any appropriate algorithm and/or formula for determining the statistical likelihood of the mobile computing device being at the current location. For example, determination module108may employ one or more machine learning techniques (e.g., supervised learning and/or unsupervised learning) to determine whether the current location is an expected location. In one example, determination module108build a Huffman tree of location-time pairs (e.g., the location and time as entered in the Huffman tree being coarse enough as to generate multiple hits over time for common location-time pairs). In this example, determination module108may determine that the current location is not an expected location by determining that the current location of the mobile computing device and the current time, when added to the Huffman tree, is and/or would be distant from the root of the Huffman tree (e.g., past a predetermined threshold).

ReturningFIG. 3, at step308one or more of the systems described herein may perform a security measure on the mobile computing device in response to determining that the current location deviates from the expected location. For example, at step308performing module110may, as part of mobile computing device202inFIG. 2, perform a security measure on mobile computing device202in response to determining that a location indicated by current location data212deviates from an expected location based on historical location data210.

Performing module110may perform any of a variety of security measures in response to the determination. For example, performing module110may present a challenge via an interface of the mobile computing device to verify that an authorized user of the mobile computing device is in possession of the mobile computing device. For example, performing module110may present a prompt for the authorized user to enter a password and/or an unlocking sequence for the mobile computing device. In some examples, the challenge may be disguised as another function of the mobile computing system. For example, performing module110may present a fake instant message and check for a countersign as a response. For example, performing module110may present a fabricated instant message saying “Hey, are we still on for lunch today?” from “Betty” (e.g., a fake contact or a random contact stored in the user's mobile computing device). Performing module110may then check for a predetermined response (e.g., “127980”) in response. In some examples, if the user fails the challenge, performing module110may enter a “theft mode” and perform one or more additional security measure. Additionally or alternatively, performing module110may present one or more additional challenges before and/or after entering a theft mode. In some examples, if the user passes the challenge, performing module110may add the current location to the historical data (e.g., as a valid and/or expected location). In some examples, performing module110may enforce a time limit (visible or invisible) for answering the challenge.

In some examples, performing module110may lock the mobile computing device in response to the determination that the current location deviates from an expected location. For example, performing module110may initiate a native lock state of the mobile computing device (e.g., requiring a password, a gesture, biometric data, etc. to unlock). Additionally or alternatively, performing module110may lock the mobile computing device until receiving remote validation that the mobile computing device has not been stolen.

In some examples, performing module110may change an access code for the mobile computing device in response to the determination that the current location deviates from an expected location. In one example, performing module110may change the access code one time. Additionally or alternatively, performing module110may periodically change the access code (e.g., every few minutes).

In some examples, performing module110may use a media capture device within the mobile computing device in response to the determination. For example, performing module110may use a camera in an attempt to capture one or more images of the surroundings and/or the thief of the mobile computing device. Additionally or alternatively, performing module110may remove sensitive data from the mobile computing device. In some examples, performing module110may wipe the mobile computing device of all data. Additionally or alternatively, performing module110may brick the mobile computing device (e.g., render the mobile computing device inoperable). In some examples, performing module110may restrict access to sensitive data and/or functions.

UsingFIG. 5as an example, one or more of the systems described herein may identify the mobile computing device as leaving expected location510on highway183(e.g., a normal route to expected location520). However, these systems may later identify the mobile computing device at location534on highway45, increasing suspicion that the mobile computing device has been stolen. These systems may then identify the mobile computing device at location536on highway35, further increasing suspicion that the mobile computing device has been stolen. However, in some examples these systems and methods may not yet take a security action—e.g., because the mobile computing device has remained on major highways in the general region of expected locations of the mobile computing device. These systems may then identify the mobile computing device multiple times at a cluster of locations540(e.g., in a residential area) where the mobile computing device had never been located. These systems may therefore initiate a security action on the mobile computing device without user intervention.

As explained above, by using historical data describing past locations of a mobile device to determine where the mobile device is expected to be and by automatically taking security measures if the mobile device is in an unexpected location, the systems and methods described herein may potentially perform the security measures before an owner of the mobile device knows that it is missing, thereby potentially providing more effective security. Additionally, in some examples, these systems and methods may perform such security determinations with minimal or no user input regarding safe and/or expected locations.

In certain embodiments, exemplary computing system610may also include one or more components or elements in addition to processor614and system memory616. For example, as illustrated inFIG. 6, computing system610may include a memory controller618, an Input/Output (I/O) controller620, and a communication interface622, each of which may be interconnected via a communication infrastructure612. Communication infrastructure612generally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communication infrastructure612include, without limitation, a communication bus (such as an ISA, PCI, PCIe, or similar bus) and a network.

In certain embodiments, communication interface622may also represent a host adapter configured to facilitate communication between computing system610and one or more additional network or storage devices via an external bus or communications channel. Examples of host adapters include, without limitation, SCSI host adapters, USB host adapters, IEEE 1394 host adapters, SATA and eSATA host adapters, ATA and PATA host adapters, Fibre Channel interface adapters, Ethernet adapters, or the like. Communication interface622may also allow computing system610to engage in distributed or remote computing. For example, communication interface622may receive instructions from a remote device or send instructions to a remote device for execution.

Client systems710,720, and730generally represent any type or form of computing device or system, such as exemplary computing system610inFIG. 6. Similarly, servers740and745generally represent computing devices or systems, such as application servers or database servers, configured to provide various database services and/or run certain software applications. Network750generally represents any telecommunication or computer network including, for example, an intranet, a wide area network (WAN), a local area network (LAN), a personal area network (PAN), or the Internet. In one example, client systems710,720, and/or730and/or servers740and/or745may include all or a portion of system100fromFIG. 1.

As detailed above, computing system610and/or one or more components of network architecture700may perform and/or be a means for performing, either alone or in combination with other elements, one or more steps of an exemplary method for mitigating mobile device loss.

In addition, one or more of the modules described herein may transform data, physical devices, and/or representations of physical devices from one form to another. For example, one or more of the modules recited herein may transform a computing device into a computing device for mitigating mobile device loss. As another example, one or more of the modules recited herein may transform a mobile computing device into a secure mobile computing device.