US-12627474-B1 - Persistent identification of client devices
Abstract
An example system may persistently identify client devices and/or may recover device identifiers for identifying the client devices. Depending on the implementation, the system may receive, by a client device, a set of candidate data representations from a server. The system may determine, by the client device, a matching data representation from the set of candidate data representations that corresponds to a private key accessible by the client device. The system may determine a device identifier based on the matching data representation and may perform one or more operations respective to a launched application using the device identifier.
Inventors
- Hector Raul Lopez
- Luca Meschiari
Assignees
- Instasize, Inc.
Dates
- Publication Date
- 20260512
- Application Date
- 20240220
Claims (20)
- 1 . A method comprising: receiving, by a client device, a set of multiple candidate data representations from a server, each of the set of multiple candidate data representations being associated with a candidate device identifier of a set of multiple candidate device identifiers; determining, by the client device, a matching data representation from among the set of multiple candidate data representations based on the matching data representation corresponding to a private key accessible by the client device; selecting a device identifier from among the set of multiple candidate device identifiers based on the matching data representation; and performing, by the client device, one or more operations respective to a launched application using the device identifier.
- 2 . The method of claim 1 , further comprising: launching, by the client device, the application on the client device; and responsive to launching the application on the client device, transmitting, by the client device, a set of device parameters to the server, the set of device parameters indicating one or more of a model, a location, and a cellular carrier of the client device.
- 3 . The method of claim 2 , further comprising: filtering, by the server, a set of data representations to determine the set of multiple candidate data representations using the set of device parameters; determining, by the server, the set of multiple candidate device identifiers corresponding to the set of multiple candidate data representations; and transmitting, by the server, the set of multiple candidate data representations and the set of multiple candidate device identifiers to the client device.
- 4 . The method of claim 3 , wherein: determining the matching data representation from the set of multiple candidate data representations includes decrypting the matching data representation using the private key; and determining the device identifier based on the matching data representation includes determining the device identifier from the set of multiple candidate device identifiers received from the server based on an association of the device identifier with the matching data representation.
- 5 . The method of claim 1 , further comprising: determining, by the client device, that a previous set of candidate data representations lacks a match with one or more private keys accessible to the client device; generating, by the client device, the private key and a key derivative matching the private key, the matching data representation including the generated key derivative; and transmitting, by the client device, the key derivative to the server.
- 6 . The method of claim 5 , further comprising: determining, by the server, the device identifier; associating, by the server, the device identifier with the matching data representation in a data table accessible to the server; and transmitting, by the server, the device identifier to the client device, the client device storing the received device identifier locally and using the device identifier for communications with the server.
- 7 . The method of claim 5 , further comprising: transmitting, by the client device, a set of device parameters to the server, the set of device parameters indicating one or more of a model, a location, and a cellular carrier of the client device; and storing, by the server, the set of device parameters in a data table accessible to the server in association with the matching data representation.
- 8 . The method of claim 1 , wherein: the matching data representation includes a public key derived from the private key.
- 9 . The method of claim 1 , wherein: determining the matching data representation from the set of multiple candidate data representations includes querying, by the client device, a local secure data store on the client device to determine whether one or more of the set of multiple candidate data representations corresponds to the private key stored in the local secure data store.
- 10 . A system comprising: one or more processors; and one or more computer memories storing instructions that, when executed by the one or more processors, cause the system to perform operations including: receiving a set of multiple candidate data representations, each of the set of multiple candidate data representations being associated with a candidate device identifier of a set of multiple candidate device identifiers; determining a matching data representation from among the set of multiple candidate data representations based on the matching data representation corresponding to a private key; selecting a device identifier identifying a client device from among the set of multiple candidate device identifiers based on the matching data representation; and performing one or more operations respective to a launched application using the device identifier.
- 11 . The system of claim 10 , wherein the operations further comprise: launching the application on the client device; and responsive to launching the application on the client device, transmitting a set of device parameters to a server, the set of device parameters indicating one or more of a model, a location, and a cellular carrier of the client device.
- 12 . The system of claim 11 , wherein the operations further comprise: filtering a set of data representations to determine the set of multiple candidate data representations using the set of device parameters; determining the set of multiple candidate device identifiers corresponding to the set of multiple candidate data representations; and transmitting the set of multiple candidate data representations and the set of multiple candidate device identifiers to the client device.
- 13 . The system of claim 12 , wherein: determining the matching data representation from the set of multiple candidate data representations includes decrypting the matching data representation using the private key; and determining the device identifier based on the matching data representation includes determining the device identifier from the set of multiple candidate device identifiers received from the server based on an association of the device identifier with the matching data representation.
- 14 . The system of claim 10 , wherein the operations further comprise: determining that a previous set of candidate data representations lacks a match with one or more private keys accessible to the client device; generating the private key and a key derivative matching the private key, the matching data representation including the generated key derivative; and transmitting the key derivative to a server.
- 15 . The system of claim 14 , wherein the operations further comprise: determining the device identifier; associating the device identifier with the matching data representation in a data table accessible to the server; and transmitting the device identifier to the client device, the client device storing the received device identifier locally and using the device identifier for communications with the server.
- 16 . The system of claim 14 , wherein the operations further comprise: transmitting a set of device parameters to the server, the set of device parameters indicating one or more of a model, a location, and a cellular carrier of the client device; and storing the set of device parameters in a data table accessible to the server in association with the matching data representation.
- 17 . The system of claim 10 , wherein: the matching data representation includes a public key derived from the private key.
- 18 . The system of claim 10 , wherein: determining the matching data representation from the set of multiple candidate data representations includes querying a local secure data store on the client device to determine whether one or more of the set of multiple candidate data representations corresponds to the private key stored in the local secure data store.
- 19 . A method comprising: receiving, by a server, a set of device parameters describing a client device; filtering, by the server, a set of key derivatives to determine a set of multiple candidate key derivatives using the set of device parameters; determining, by the server, a set of multiple candidate device identifiers corresponding to the set of multiple candidate key derivatives; transmitting, by the server, the set of multiple candidate key derivatives and the set of multiple candidate device identifiers to the client device; and receiving, by the server, an indication of a matched data representation from the client device, the client device determining the matched data representation from among the multiple candidate data representations based on the matched data representation corresponding to a private key accessible by the client device.
- 20 . The method of claim 19 , further comprising: receiving, by the server, a key derivative from the client device; determining, by the server, a device identifier; associating, by the server, the device identifier with the key derivative and the set of device parameters in a data table accessible to the server; and transmitting, by the server, the device identifier to the client device, the client device storing the received device identifier locally and using the device identifier for communications with the server.
Description
BACKGROUND The present specification generally relates to a technology for persistently identifying client devices. Identification of client devices or users can be useful for many different purposes, such as assisting users to consistently log in to the same account, activity tracking, targeted advertising, or otherwise providing consistent user experiences on computing devices. Many beneficial services are facilitated based on user or client identity. Previously, browser cookies have been used to identify client devices when they interact with servers via browsers. For mobile devices, such as smartphones, other means of identifying the devices have been used. For example, Apple® may use IDFA (ID for advertisers), Android® may use AAID (Android advertising ID), or Google® may use GAID (Google advertising ID) to identify client devices across applications (e.g., mobile apps). Unfortunately, access to these methods of identification may be restricted, controlled by a single entity, or may be reset after certain time periods (e.g., 30 or 60 days), which significantly limits the ability of servers to identify client devices. Accordingly, user experience is impaired, computer functionality is reduced, and computational inefficiencies result. For example, using these previous methods, users may be required to re-enter their login credentials or their graphical user experiences on websites or applications, or they may not be tailored to their preferences or their data. SUMMARY An improved system can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. In some aspects, the techniques described herein relate to a method including: receiving, by a client device, a set of candidate data representations from a server; determining, by the client device, a matching data representation from the set of candidate data representations that corresponds to a private key accessible by the client device; determining a device identifier based on the matching data representation; and performing, by the client device, one or more operations respective to a launched application using the device identifier. In some aspects, the techniques described herein relate to a method, further including: launching, by the client device, the application on the client device; and responsive to launching the application on the client device, transmitting, by the client device, a set of device parameters to the server, the set of device parameters indicating one or more of a model, a location, and a cellular carrier of the client device. In some aspects, the techniques described herein relate to a method, further including: filtering, by the server, a set of data representations to determine the set of candidate data representations using the set of device parameters; determining, by the server, a set of device identifiers corresponding to the set of candidate data representations; and transmitting, by the server, the set of candidate data representations and the set of device identifiers to the client device. In some aspects, the techniques described herein relate to a method, wherein: determining the matching data representation from the set of candidate data representations includes decrypting the matching data representation using the private key; and determining the device identifier based on the matching data representation includes determining the device identifier from the set of device identifiers received from the server based on an association of the device identifier with the matching data representation. In some aspects, the techniques described herein relate to a method, further including: determining, by the client device, that a previous set of candidate data representations lacks a match with one or more private keys accessible to the client device; generating, by the client device, the private key and a key derivative matching the private key, the matching data representation including the generated key derivative; and transmitting, by the client device, the key derivative to the server. In some aspects, the techniques described herein relate to a method, further including: determining, by the server, the device identifier; associating, by the server, the device identifier with the matching data representation in a data table accessible to the server; and transmitting, by the server, the device identifier to the client device, the client device storing the received device identifier locally and using the device identifier for communications with the server. In some aspects, the techniques described herein relate to a method, further including: transmitting, by the client device, a set of device parameters to the server, the set of device parameters indicating one or more of a model, a location, and a cellular carrier of the client device; and storing, by the s