IP Library Granted Patent US 10,462,600
Granted Patent B2
US 10,462,600 · App. 16/241,858 · Granted Oct 29, 2019

Secure and private cloud based broadcast identification

Inventor: Josselin de la Broise (Mountain View, CA)
Assignee: Tile, Inc.
H04W4/02H04L67/18H04L67/303H04W12/06H04W64/006H04L63/12H04L67/16H04W12/10Y02D70/00Y02D70/144Y02D70/164
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,462,600
App. No.
16/241,858
Granted
Oct 29, 2019
Kind
B2
Abstract

A tracking device can securely communicate with a secondary device by generating a hash value based on the identity of the tracking device. If the secondary device cannot resolve the hash value, the hash value can be provided to a tracking server, such as a cloud server, for resolving the hash value. Upon resolving the hash value, the tracking server can store a location of the tracking device in association with the identity of the tracking device. To preserve power, the secondary device can activate location-detection functionality (such as a GPS receive) only in response to the detection of movement of the tracking device, can obtain location information, and can de-activate the location-detection functionality upon providing the location information to the tracking server. The tracking server can associate one or both of a previous location and the current location information based on movement of the tracking device.

Claims (37)

1. A method comprising:

receiving, at a mobile device from a tracking device, a hash value computed by the tracking device based on a unique identifier associated with the tracking device and an incremented value maintained by the tracking device;

determining, by the mobile device, if the tracking device is associated with the mobile device by computing a hash value for each of a set of tracking devices associated with the mobile device based on a set of unique identifiers associated with the set of tracking devices and the incremented value; and

in response to a determination that the tracking device is not associated with the mobile device, providing the received hash value to a tracking server, the tracking server configured to resolve a conflict between the received hash value and one or more other hash values based on a comparison of a geographic location associated with the tracking device and a geographic location associated with each of the one or more other hash values.

2. The method of claim 1 , wherein the hash value is computed based further on a key stored by the tracking device.

3. The method of claim 2 , wherein the key is also stored by mobile device, and wherein the key is not transmitted between the tracking device and the mobile device.

4. The method of claim 1 , wherein the incremented value is incremented by the tracking device after each subsequent passage of a pre-determined interval of time.

5. The method of claim 1 , wherein the incremented value is incremented by the tracking device every 15 minutes.

6. The method of claim 1 , wherein the received hash value is received in an advertisement packet transmitted by the tracking device, and wherein the advertisement packet includes the incremented value in plaintext.

7. The method of claim 1 , wherein the tracking server is configured to compute a hash value for each tracking device associated with tracking server, and wherein the tracking server is configured to identify the tracking device in response to a match between a computed hash value and the received hash value.

8. A method comprising:

receiving, at a tracking server from a mobile device, a hash value computed by a tracking device based on a unique identifier associated with the tracking device and a counter value maintained by the tracking device and transmitted to the mobile device;

computing, by the tracking server, a hash value corresponding to each of a set of tracking devices associated with the tracking server based on a unique identifier associated with each of the set of tracking devices;

in response to one computed hash value matching the received hash value, identifying, by the tracking server, the tracking device as one of the set of tracking devices corresponding to the matching computed hash value; and

in response to a plurality of computed hash values matching the received hash value, determining that the plurality of computed hash values comprise a hash value collision and attempting to resolve the collision by identifying, by the tracking server, one of the plurality of computed hash values as associated with the received hash value based on a comparison of a geographic location associated with the tracking device and a geographic location associated with each of the multiple computed hash values.

9. The method of claim 8 , wherein the counter value is incremented by the tracking device after each subsequent passage of a pre-determined interval of time.

10. The method of claim 8 , wherein the counter value is incremented by the tracking device every 15 minutes.

11. The method of claim 8 , further comprising:

further attempting to resolve the collision using user account information associated with each tracking device corresponding to the plurality of computed hash values.

12. The method of claim 11 , further comprising:

in response to being unable to resolve the collision using user account information, attempting to resolve the collision using a proximity of the counter value using to computed the received hash value to a counter value most recently used by each tracking device corresponding to the plurality of computed hash values.

13. The method of claim 8 , wherein the received hash value is received in an advertisement packet transmitted by the tracking device, and wherein the advertisement packet includes the counter value in plaintext.

14. The method of claim 13 , wherein the tracking server is configured to compute the hash values corresponding to the set of tracking devices based further on the counter value included in the advertisement packet.

15. A tracking server associated with each of a set of tracking devices, comprising:

a hardware processor; and

a non-transitory computer-readable storage medium storing executable computer instructions that, when executed by the hardware processor, cause the hardware processor to perform steps comprising:

receiving, from a mobile device, a hash value computed by a tracking device based on a unique identifier associated with the tracking device and a counter value maintained by the tracking device and transmitted to the mobile device;

computing a hash value corresponding to each of the set of tracking devices based on a unique identifier associated with each of the set of tracking devices;

in response to one computed hash value matching the received hash value, identifying the tracking device as one of the set of tracking devices corresponding to the matching computed hash value; and

in response to a plurality of computed hash values matching the received hash value, determining that the plurality of computed hash values comprise a hash value collision and attempting to resolve the collision by identifying one of the plurality of computed hash values as associated with the received hash value based on a comparison of a geographic location associated with the tracking device and a geographic location associated with each of the multiple computed hash values.

16. The tracking server of claim 15 , wherein the counter value is incremented by the tracking device after each subsequent passage of a pre-determined interval of time.

17. The tracking server of claim 15 , wherein the counter value is incremented by the tracking device every 15 minutes.

18. The tracking server of claim 15 , the instructions, when executed by the hardware processor, configured to cause the hardware process to perform further steps comprising:

further attempting to resolve the collision using user account information associated with each tracking device corresponding to the plurality of computed hash values.

19. The tracking server of claim 18 , the instructions, when executed by the hardware processor, configured to cause the hardware process to perform further steps comprising:

in response to being unable to resolve the collision using user account information, attempting to resolve the collision using a proximity of the counter value using to computed the received hash value to a counter value most recently used by each tracking device corresponding to the plurality of computed hash values.

20. The tracking server of claim 15 , wherein the received hash value is received in an advertisement packet transmitted by the tracking device, and wherein the advertisement packet includes the counter value in plaintext.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jan 10, 2022
From: CAPITAL IP INVESTMENT PARTNERS LLC
To: TILE, INC.
Reel/Frame 058671/0383 →
SECURITY INTEREST Recorded Sep 28, 2021
From: TILE, INC.
To: CAPITAL IP INVESTMENT PARTNERS LLC AS ADMINISTRATIVE AGENT
Reel/Frame 057633/0569 →
RELEASE OF SECURITY INTEREST Recorded Sep 2, 2021
From: SILICON VALLEY BANK
To: TILE, INC.
Reel/Frame 057650/0820 →
SECURITY INTEREST Recorded May 28, 2019
From: TILE, INC.
To: PINNACLE VENTURES, L.L.C., AS AGENT
Reel/Frame 049292/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2019
From: DE LA BROISE, JOSSELIN
To: TILE, INC.
Reel/Frame 048029/0893 →
Continuity (6)
Continuation In Part 15947207 · Apr 6, 2018
Continuation 15660766 · Jul 26, 2017
Continuation 15472281 · Mar 29, 2017
Continuation 14822580 · Aug 10, 2015
Provisional Application 62062062 · Oct 9, 2014
Related Publication 20190141474A1 · May 9, 2019