Confirming geolocation of a device

Verifying that a first device is in a claimed location including: requesting the first device to display a device location identifier (DLI) on a display; sending a request to a second device to: (1) capture the DLI displayed on the display; (2) receive inputs from at least one positioning system and the captured DLI; and (3) output a location proof using the inputs; and receiving the location proof to initiate a verification of the claimed location of the first device, wherein the location proof includes the captured DLI and a captured location.

BACKGROUND

Field

The present disclosure relates to verifying a geographical location (“geolocation”) of a device, and more specifically, to verifying the geolocation of a device configured without a geolocation system.

Background

A device may need to demonstrate that it is in a given geographical location. One of the most accurate but expensive solutions includes the device which implements a geolocation system. The most widely used geolocation systems employ either the Global Positioning Service (GPS) or a localization based on the presence of a set of wireless fidelity (Wi-Fi) networks.

For devices connected to the Internet, it is possible to guess a rough localization through their IP address. Unfortunately, this solution requires an IP connection and does not have great accuracy. Furthermore, the advent of Internet Protocol Version 6 (IPV6) will moot this solution.

SUMMARY

The present disclosure provides for verifying the geolocation of a device configured without a geolocation system.

In one implementation, a system for verifying that a first device is in a claimed location is disclosed. The system includes: a display onto which the first device projects or displays a device location identifier (DLI); and a mobile device configured to capture the DLI, the mobile device including a localization function application, wherein the localization function application receives inputs from at least one positioning system and the captured DLI, and outputs a location proof using the inputs.

In one implementation, the DLI is a visual indicator including one of a fixed image or short video sequence. In one implementation, the DLI is a visual indicator includes one of a fixed image or short video sequence. In one implementation, the visible indicator uniquely identifies the first device. In one implementation, the visible indicator is a Quick Response code (QR code). In one implementation, the DLI includes a visible code and a characteristic signature. In one implementation, the characteristic signature includes a set of characteristics that are inherently present in content displayed by the display including a combination of color, pixel pitch, contrast, and refresh rate. In one implementation, the characteristic signature identifies a model or model family of the first device. In one implementation, the characteristic signature includes an invisible watermark. In one implementation, the at least one positioning system includes at least one of Global Positioning System (GPS) and wireless fidelity (Wi-Fi) network systems. In one implementation, the location proof includes the captured DLI, a captured location, and a timestamp. In one implementation, the captured location is received as position coordinates from the at least one positioning system. In one implementation, the timestamp is generated by the mobile device.

In another implementation, a method for verifying that a first device is in a claimed location is disclosed. The method includes: requesting the first device to display a device location identifier (DLI) on a display; sending a request to a second device to: (1) capture the DLI displayed on the display; (2) receive inputs from at least one positioning system and the captured DLI; and (3) output a location proof using the inputs; and receiving the location proof to initiate a verification of the claimed location of the first device, wherein the location proof includes the captured DLI and a captured location.

In one implementation, the first device receives an encoded identifier from a verifier and decodes the encoded identifier to generate the DLI. In one implementation, the second device is a mobile device. In one implementation, the DLI comprises a visible code and a captured signature of the first device. In one implementation, the DLI is a visual indicator which uniquely identifies the first device. In one implementation, the method further includes extracting a device identifier and a captured signature of the first device from the DLI. In one implementation, the method further includes retrieving a first record from a device database corresponding to the device identifier, wherein the first record includes a claimed location of the first device. In one implementation, the method further includes checking whether the captured location is within a predetermined radius of the claimed location of the first device. In one implementation, the method further includes retrieving a model reference number from the first record retrieved from the device database; retrieving a second record from a signature database corresponding to the model reference number, wherein the second record includes a reference signature of the first device. In one implementation, the method further includes checking whether the captured signature is within a predefined boundary of the reference signature of the first device.

Other features and advantages should be apparent from the present description which illustrates, by way of example, aspects of the disclosure.

DETAILED DESCRIPTION

As described above, verifying the geolocation of a device configured without a geolocation system is difficult. In some cases, a rough estimate of the geolocation using the IP address may be possible for devices with IP connections.

Certain implementations of the present disclosure provide for systems and methods for verifying the geolocation of a device configured without a geolocation system. After reading these descriptions, it will become apparent how to implement the disclosure in various implementations and applications. Although various implementations of the present disclosure will be described herein, it is understood that these implementations are presented by way of example only, and not limitation. As such, this detailed description of various implementations should not be construed to limit the scope or breadth of the present disclosure.

FIG. 1is a block diagram of a system100for verifying that a device130is in a given claimed location110in accordance with one implementation of the present disclosure. In the illustrated implementation ofFIG. 1, the device130is connected to or includes a graphical display120. The device130displays a device location identifier122on the graphical display120. In one implementation, the device130displays the device location identifier122when a request102is sent to the device130by a verifier160.

In one implementation, the device location identifier122is a visual indicator, such as a fixed image or a short video sequence. In the illustrated implementation ofFIG. 1, the device location identifier122includes a code124(e.g., a visible code) and a characteristic signature126. In other implementations, the device location identifier includes either or both the code124and the signature126, and/or other visible or invisible elements.

In one implementation, the code124uniquely identifies the device130. For example, the code124may be a textual message or Quick Response code (QR code). If the device location identifier122is a video sequence, then the code124remains constant during the sequence.

In one implementation, the characteristic signature126identifies the model or model family of the device130. The characteristic signature126is a set of characteristics that are inherently present in the content displayed by the display120. For example, the characteristic signature126may be a combination of color, pixel pitch, contrast, and refresh rate. Thus, each family of the display has unique characteristics such as color, pixel pitch, contrast, and refresh rate. In one implementation, an invisible watermark may also serve as the characteristic signature126.

In one implementation, the user shoots or captures128the device location identifier122using a mobile device (e.g., mobile phone)140equipped with an integrated localization function142and a camera144. In one implementation, the mobile device140captures the device location identifier122when requested by the verifier160. In one implementation, the localization function142is an application (e.g., a map application) using at least one positioning system including GPS and Wi-Fi network localization systems. In another implementation, the at least one position system includes an Internet protocol (IP) geolocation system.

In the illustrated implementation ofFIG. 1, the mobile phone140generates and outputs a location proof150. In one implementation, the location proof150includes a captured device location identifier (DLI)152, a captured location154, and a timestamp156. The captured DLI152is the recorded device location identifier122, which may be either an image or video sequence. The captured location154is provided by the localization function142. The optional timestamp156is generated by the mobile phone140. In one implementation, the user launches an application (e.g., the localization function142) residing on the mobile phone140. The application records the captured DLI152using the integrated camera144. The application receives the captured location154as GPS coordinates from a positioning system such as the integrated GPS receiver. The application generates and sends the location proof150to the verifier160.

In the illustrated implementation ofFIG. 1, the generated location proof150is transmitted to a verifier160. In one implementation, the verifier160performs the following operations: (1) reads a code162(the code124captured by the mobile phone140) extracted from the captured DLI152; (2) checks whether the extracted code162matches the code124of the device130; (3) extracts the captured signature164from the captured DLI152; (4) checks whether the captured signature164matches the characteristic signature126of the device130; and (5) checks whether the captured location154matches the claimed location110of the device130. Optionally, the verifier160checks the freshness of the captured DLI152by verifying the timestamp156. If all the above tests are successful, then the verifier160asserts that the device130is at its claimed location110. The details of the operation of the verifier160and how and where the verifier160calculates and receives information about the device130is described in detail in conjunction with the description ofFIG. 3andFIGS. 4A through 4C.

FIG. 2is a block diagram of a device200having an integrated display240in accordance with one implementation of the present disclosure. In the illustrated implementation ofFIG. 2, the device200includes a code generator220, a rendering unit230, an integrated display240, and a video source250(e.g., digital).

In the illustrated implementation ofFIG. 2, the rendering unit230renders digital video and projects or presents the rendered result on the integrated display240. The code generator220graphically overlays the code124on the video source250. In one implementation, the code generator220is a quick response (QR) code generator. In another implementation, the code generator220is a text inserter.

In one implementation, when the user needs to prove that the device200is in the expected location, the user (e.g., through the use of the verifier160) requests the device200to display its device location identifier122. Thus, the device200plays a given video sequence from its video source250. The device200enables the code generator220with the value of code124. In one implementation, the value of the code124is a combination of a device identifier202and the current time provided by an internal clock210. In one implementation, the device200then displays (on the integrated display240) the device location identifier122that is a video clip displaying a QR code. In another implementation, the device200displays a text value (e.g., a value in base64) in a known location of the display240, rather than the QR code.

FIG. 3is a detailed block diagram of a verifier300in accordance with one implementation of the present disclosure. In the illustrated implementation ofFIG. 3, the verifier360includes a signature reference database300, a device database310, a code reader320, a characteristics extractor322, and a verification unit324.

In one implementation, the signature reference database300includes information about the devices, such as model ID302and reference signature304. The model ID302is the model number of the manufacturer (may be same as the model reference316). The reference signature304is the typical characteristic signature126for this model.

In one implementation, the device database310includes information for devices, such as device identifier312, claimed location314, and model reference316. The device identifier312is the identifier for a particular device. The claimed location314is the GPS coordinates of the expected location for the device200. The model reference316is the model number of the manufacturer of the device200.

In one implementation, the code reader320is configured to extract the value of the code124from a video sequence, if present. If successful, the extraction returns the extracted code162. In one implementation, the code reader320is a QR code reader. In another implementation, in which the code124is text-based, the code reader320is an optical character reader (OCR). In one implementation, the characteristics extractor322is configured to extract characteristics from a video sequence. In this implementation, the characteristics (i.e., the captured signature164) include a refresh rate, a color histogram, an average contrast, and a measured pixel pitch. In one implementation, the verification unit324is configured to perform tests and to output a decision whether the device is at the expected location.

FIGS. 4A and 4Bform a flow diagram of a verification process400in accordance with one implementation of the present disclosure. In the illustrated implementation ofFIGS. 4A and 4B, at block410, the verification unit324retrieves from the device database310the record corresponding to the assessed device200. Since the verification unit324has already determined for which device200it needs to verify the location, the verification unit324searches, at block412, the device database310for the record corresponding to the determined device. In one implementation, the retrieved record includes the device identifier312, the claimed location314, and the model reference316for the corresponding device200.

At block420, the verification unit324requests the user to send a device location identifier122for the device200. In one implementation, the transmission of the device location identifier122includes sending an email and providing a return URL for uploading the captured location330and the captured DLI332. The verification unit324checks, at block422, if the captured location330is within a predetermined radius of the claimed location314. In one implementation, the predetermined radius is 100 meters. If the captured location330is not within the given radius of the claimed location314, the process is aborted, at block424.

In one implementation, the code reader320extracts from the captured DLI332, at block426, the value of the retrieved identity (i.e., the extracted code162), if present. The verification unit324then checks, at block428, whether the retrieved identity matches the device identifier312corresponding to the device200. If the retrieved identity does not match the device identifier312, the process is aborted, at block424.

In one implementation, the verification unit324validates the characteristics of the device200. In one implementation, the characteristics extractor322extracts, at block432, the captured signature164from the captured DLI332. In one implementation, the verification unit324searches, at block434, the device database310for the model reference316of the device200. In another implementation, the verification unit324searches, at block436, the signature reference database300for the reference signature304corresponding to the model identifier302matching the model reference316. In another implementation, the verification unit324checks, at block438, whether the captured signature164matches the expected reference signature304. If the difference between the different parameters is within a predefined boundary, the captured signature164matches the expected reference signature304and the verification unit324concludes that the test is successful, at block440. Otherwise, if the difference between the different parameters is not within the predefined boundary, the process is aborted, at block442.

FIG. 4Cis a flow diagram of a verification process450in accordance with another implementation of the present disclosure. In the illustrated implementation ofFIG. 4C, the user initiates the verification of the location. Thus, the user sends the captured DLI332directly to the verification unit324.

In one implementation, the code reader320extracts, at block452, the value of the code124(if present) from the captured DLI332. The extracted code162corresponds to the device identifier312of the device200. The verification unit324retrieves from the device database310, at block454, the record corresponding to the assessed device200using the extracted device identifier312to find the record. The verification unit324then checks, at block456, if the captured location330is within a predetermined radius of the claimed location314in the record. In one implementation, the given radius is 100 meters. If the captured location330is not within the given radius of the claimed location314, the process is aborted, at block458.

In one implementation, the verification unit324validates the characteristics of the device200. In one implementation, the characteristics extractor322extracts, at block460, the captured signature164from the captured DLI332. In one implementation, the verification unit324searches, at block462, the device database310for the model reference316of the device200. In another implementation, the verification unit324searches, at block464, the signature reference database300for the reference signature304corresponding to the model identifier302matching the model reference316. In another implementation, the verification unit324checks, at block466, whether the captured signature164matches the expected reference signature304. If the difference between the different parameters is within a predefined boundary, the captured signature164matches the expected reference signature304and the verification unit324concludes that the test is successful, at block468. Otherwise, if the difference between the different parameters is not within the predefined boundary, the process is aborted, at block470.

FIG. 5is a block diagram of a device500in the Digital Cinema Initiative (DCI) environment in accordance with another implementation of the present disclosure. InFIG. 5, the device500is configured to enable the verification that the device500(e.g., a DCI projector) is in a given location. In the illustrated implementation ofFIG. 5, the device500includes at least a digital video source550, a rendering unit560, a code generator530, and a watermark embedder540.

The rendering unit560is configured to render digital video and project the rendered result on a display570(e.g., a theatrical screen). The code generator530is configured to graphically overlay the code124on the digital video source550. In one implementation, the code generator530is a QR code generator. In another implementation, the code generator530is a text inserter. The watermark embedder540is configured to embed the watermark (e.g., invisible), which may act as the characteristic signature126.

FIG. 6is a flow diagram of a process600for generating a location proof in accordance with one implementation of the present disclosure. In the illustrated implementation ofFIG. 6, when the proof of the location of the projector is needed, a request is sent, at block610, to the device500to generate and display its device location identifier122. In one implementation, the request is sent to the device500by the user. In another implementation, the request is sent to the device500by the verification unit324of the verifier360. The device500plays, at block620, a given video sequence from the digital video source550. In one implementation, the device500enables the code generator530, at block630, to generate the value of the code124. The value of the code124may be a combination of a device identifier510and the current time generated by a clock520. In another implementation, the watermark embedder540uses as payload the same value as the one carried by the code124(e.g., the QR code) or it may be a different combination.

In illustrated implementation ofFIG. 6, the device500projects the device location identifier122, at block640, to the display570. In one implementation, the device location identifier122is a video clip displaying a QR code and an embedded invisible watermark with payload identical to the value of code124. In another implementation, if the text is used rather than the QR code, then the code124would display a value (e.g., in base64). An application on the mobile phone140is launched, at block650. The application records the captured DLI332, at block652, using the integrated camera144. The application also receives the captured location330as GPS coordinates from the integrated GPS receiver (i.e., the localization function142), at block654. In one implementation, at the beginning of the recording, the application retrieves the timestamp156from its integrated clock, at block656. The application then generates and sends, at block658, the location proof350, including the captured DLI332, the captured location330, and the timestamp156, to the verifier160.

FIG. 7is a detailed block diagram of a verifier700in accordance with another implementation of the present disclosure. In the illustrated implementation ofFIG. 7, the verifier700includes a device database710, a code reader720, a watermark detector730, a verification unit740, and an internal clock760.

In one implementation, the device database310includes information for devices, such as device identifier712and claimed location714. The device identifier712is the identifier for a particular device. The claimed location714is the GPS coordinates of the expected location (i.e., the auditorium or theater) for the device200.

In one implementation, the code reader720is configured to extract the value of the code124from a video sequence, if present. If successful, the extraction returns the extracted code162. In one implementation, the code reader720is a QR code reader. In another implementation, in which the code124is text-based, the code reader720is an optical character reader (OCR). In one implementation, the watermark detector730is configured to extract the watermark from the video sequence, if present. If successful, the extraction returns a payload732. In one implementation, the verification unit324is configured to perform tests and to output a decision whether the device is at the expected location.

FIGS. 8A and 8Bform a flow diagram of a verification process800in accordance with one implementation of the present disclosure. In the illustrated implementation ofFIGS. 8A and 8B, the verification unit740retrieves from the device database710the record corresponding to the assessed device500, at block810. Since the verification unit740has already determined for which device200it needs to verify the location, the verification unit740searches, at block812, the device database710for the record corresponding to the determined device. In one implementation, the retrieved record includes the device identifier712and the claimed location714for the corresponding device500.

The verification unit740checks, at block820, if the captured location752is within a predetermined radius of the claimed location714. In one implementation, the predetermined radius is 200 meters. If the captured location752is not within the given radius of the claimed location714, the process is aborted, at block822.

The verification unit740checks, at block824, if the difference between the current time of the clock760and the timestamp754is less than a given threshold. In one implementation, the threshold is the duration of captured device location identifier756plus two minutes. If the difference is not less than the given threshold, the process is aborted, at block822.

In one implementation, the code reader720extracts from the captured DLI756, at block830, the value of the code124(i.e., the extracted code162), if present. In one implementation, the extracted code162carries the identity of the device (“retrieved identity”) and the time when the code124was generated (“retrieved time”). Thus, the verification unit740extracts, at block832, the retrieved identity and retrieved time from the extracted code162. The verification unit740checks, at block834, whether the retrieved identity matches the device identifier712. If the retrieved identity does not match the device identifier712, the process is aborted, at block822. The verification unit740then checks, at block836, whether the difference between the retrieved time and the timestamp754is less than a threshold. In one implementation, the threshold is 10 minutes. To keep the difference to be less than the threshold, the user should start the mobile phone's application in less than the threshold time from starting the display device location identifier122. Otherwise, the process is aborted, at block840.

In one implementation, the watermark detector530extracts the payload732from the captured DLI756, at block842, if a watermark is present. The verification unit740extracts, at block844, the retrieved identity and the retrieved time from the payload732. The verification unit740checks, at block846, whether the retrieved identity matches the device identifier712. The verification unit740then checks, at block848, whether the difference between the retrieved time and the timestamp754is less than a threshold. In one implementation, the threshold is 10 minutes. If the difference is less than the threshold, the verification unit740concludes that the test is successful, at block850. Otherwise, the process is aborted, at block840.

In another implementation, the value carried by the code124is cryptographically bound to unique and secret information embedded in the device500. In one implementation, the code uses asymmetric encryption. Although the use of a digital signature is possible, it may increase the length of the code. In one example, the code generator530securely holds the private key of the device500. The code generator530then encrypts the value with the private key. The code124carries the encrypted value. In this example, the device database710includes the public key of each device500. The code reader720decrypts the value carried by code124before providing it to the verification unit740.

In another implementation, the verifier700is part of the application of the mobile phone140. In this implementation, the captured DLI756does not leave the mobile phone140. The databases may be remote and accessed across a network. Other variations are also possible, such as using a different code than the QR code, or various applications, such as verifying medical imaging equipment or security cameras.

The description herein of the disclosed implementations is provided to enable any person skilled in the art to make or use the present disclosure. Numerous modifications to these implementations would be readily apparent to those skilled in the art, and the principals defined herein can be applied to other implementations without departing from the spirit or scope of the present disclosure. Thus, the present disclosure is not intended to be limited to the implementations shown herein but is to be accorded the widest scope consistent with the principal and novel features disclosed herein.

Various implementations of the present disclosure are realized in electronic hardware, computer software, or combinations of these technologies. Some implementations include one or more computer programs executed by one or more computing devices. In general, the computing device includes one or more processors, one or more data-storage components (e.g., volatile or non-volatile memory modules and persistent optical and magnetic storage devices, such as hard and floppy disk drives, CD-ROM drives, and magnetic tape drives), one or more input devices (e.g., game controllers, mice and keyboards), and one or more output devices (e.g., display devices).

The computer programs include executable code that is usually stored in a persistent storage medium and then copied into memory at run-time. At least one processor executes the code by retrieving program instructions from memory in a prescribed order. When executing the program code, the computer receives data from the input and/or storage devices, performs operations on the data, and then delivers the resulting data to the output and/or storage devices.

Those of skill in the art will appreciate that the various illustrative modules and method steps described herein can be implemented as electronic hardware, software, firmware or combinations of the foregoing. To clearly illustrate this interchangeability of hardware and software, various illustrative modules and method steps have been described herein generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled persons can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure. In addition, the grouping of functions within a module or step is for ease of description. Specific functions can be moved from one module or step to another without departing from the present disclosure.

All features of each above-discussed example are not necessarily required in a particular implementation of the present disclosure. Further, it is to be understood that the description and drawings presented herein are representative of the subject matter which is broadly contemplated by the present disclosure. It is further understood that the scope of the present disclosure fully encompasses other implementations that may become obvious to those skilled in the art and that the scope of the present disclosure is accordingly limited by nothing other than the appended claims.