# US 10,873,641 B2 · Systems and methods for recognizing a device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,641 B2
- Document ID: US10873641B2
- Status: Granted
- Kind: B2
- Application number: 16/449,899
- Filed: 2019-06-24
- Published: 2019-10-10
- Granted: 2020-12-22
- Earliest claimed: 2016-02-25
- Assignees: Inauth, Inc.
- Applicants: Inauth, Inc.
- Inventors: Glenn S. Benson; Paul Marsolan; Christopher Guenther Moos
- Web page: https://patentgrep.com/patent/US10873641B2

## CPC

- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 63/102: {Entity profiles}
- H04L 67/303: Terminal profiles
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system for detecting whether a device seeking communication with a server is a returning device that previously communicated with the server includes a database that stores groups of device attributes based on observable device characteristics and unique identifiers. The database is generally not accessible to the devices. Each attribute group and the associated device identifier (DID) can uniquely identify a particular device, and the associated DID is generally not derivable from the attributes. The database may satisfy a uniqueness property so that each attribute value in the database may also uniquely identify a device.

## Claims

### Claim 1

A method for identifying a device seeking communication with a server, the method comprising the steps of:
receiving at the server, from the device, device data comprising a plurality of device attributes;
determining by analyzing the device attributes that (i) the device is not classified as a risky device, and that (ii) the plurality of device attributes comprises a key attribute comprising a public key for the device, and a set of other device attributes;
querying a database with the public key;
when the database contains the public key:
accessing from the database a record that corresponds to the public key and comprises a device identifier (DID); and
providing the DID in the record as an identifier of the device;
otherwise:
querying the database with the set of other device attributes;
when the database contains at least one device attribute from the set of other device attributes:
accessing from the database a record that corresponds to the at least one device attribute and comprises a device identifier (DID);
updating the record with the public key for the device;
providing the DID in the record as an identifier of the device;
otherwise:
creating a new DID and a new record comprising the new DID, the public key for the device, and the set of other device attributes;
storing the new record in the database; and
providing the new DID as the identifier of the device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the accessed database record comprises a plurality of stored device attributes, the method further comprising:
comparing the set of other device attributes with the stored attributes;
determining that a first attribute from the set of other device attributes fails to match with a corresponding stored attribute; and
updating the corresponding stored attribute with the first attribute.

### Claim 3 (depends on 1)

The method of claim 1, wherein creating the new DID comprises generating the new DID using at least one of a random number generator or a pseudo-random number generator.

### Claim 4 (depends on 1)

The method of claim 1, wherein the new DID is generated independently of any of the plurality of device attributes.

### Claim 5 (depends on 1)

The method of claim 1, wherein a device attribute in the plurality of device attributes is based on at least one of: a phone number, a mobile equipment identifier, a parameter of an operating system installed on the device, a model number of the device, a serial number of the device, a device characteristic, a public key allocated to the device, or a public key installed on the device.

### Claim 6 (depends on 1)

The method of claim 1, wherein the receiving step comprises receiving the device data via a digitally signed message.

### Claim 7 (depends on 6)

The method of claim 6, wherein the message comprises: (i) an information object comprising the plurality of device attributes, (ii) a header object comprising an anti-replay header or an anti-tamper header, and (iii) an integrity object comprising a signature associated with the information object and the header object, the method further comprising:
validating the information object based on the digital signature.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
performing by the server at least one of: (i) an anti-replay check, or (ii) an anti-tamper check; and
validating the information object according to a result of at least one of: (i) the antireplay check, or (ii) the anti-tamper check.

### Claim 9

A system for identifying a device seeking communication with a server, the system comprising:
a first processor; and
a first memory in electrical communication with the first processor, the first memory comprising instructions which, when executed by a processing unit included in the server and comprising at least one of the first processor or a second processor, and in electronic communication with a memory module comprising at least one of the first memory or a second memory, program the processing unit to:
receive from the device, device data comprising a plurality of device attributes;
determine by analyzing the device attributes that (i) the device is not classified as a risky device, and that (ii) the plurality of device attributes comprises a key attribute comprising a public key for the device, and a set of other device attributes;
query a database with the public key;
when the database contains the public key:
access from the database a record that corresponds to the public key and comprises a device identifier (DID); and
provide the DID in the record as an identifier of the device;
otherwise:
query the database with the set of other device attributes;
when the database contains at least one device attribute from the set of other device attributes:
access from the database a record that corresponds to the at least one device attribute and comprises a device identifier (DID);
update the record with the public key for the device;
provide the DID in the record as an identifier of the device;
otherwise:
create a new DID and a new record comprising the new DID, the public key for the device, and the set of other device attributes;
store the new record in the database; and
provide the new DID as the identifier of the device.

### Claim 10 (depends on 9)

The system of claim 9, wherein:
the accessed database record comprises a plurality of stored device attributes; and the instructions further program the processing unit to:
compare the set of other device attributes with the stored attributes;
determine that a first attribute from the set of other device attributes fails to match with a corresponding stored attribute; and
update the corresponding stored attribute with the first attribute.

### Claim 11 (depends on 9)

The system of claim 9, wherein to create the new DID, the instructions program the processing unit to generate the new DID using at least one of a random number generator or a pseudo-random number generator.

### Claim 12 (depends on 9)

The system of claim 9, wherein the instructions program the processing unit to generate the new DID independently of any of the plurality of device attributes.

### Claim 13 (depends on 9)

The system of claim 9, wherein a device attribute in the plurality of device attributes is based on at least one of: a phone number, a mobile equipment identifier, a parameter of an operating system installed on the device, a model number of the device, a serial number of the device, a device characteristic, a public key allocated to the device, or a public key installed on the device.

### Claim 14 (depends on 9)

The system of claim 9, wherein a digitally signed message comprises the device data being received.

### Claim 15 (depends on 14)

The system of claim 14, wherein:
the message comprises: (i) an information object comprising the plurality of device attributes, (ii) a header object comprising an anti-replay header or an anti-tamper header, and (iii) an integrity object comprising a signature associated with the information object and the header object; and
the instructions further program the processing unit to validate the information object based on the digital signature.

### Claim 16 (depends on 15)

The system of claim 15, wherein the instructions further program the processing unit to:
perform least one of: (i) an anti-replay check, or (ii) an anti-tamper check; and
validate the information object according to a result of at least one of: (i) the anti-replay check, or (ii) the anti-tamper check.
