# US 8,683,561 B2 · Fixed client identification system for positive identification of client to server

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

- Number: US 8,683,561 B2
- Document ID: US8683561B2
- Status: Granted
- Kind: B2
- Application number: 13/209,980
- Filed: 2011-08-15
- Published: 2012-04-05
- Granted: 2014-03-25
- Earliest claimed: 2002-10-25
- Assignees: Cambridge Interactive Development Corp.
- Applicants: Daniil Utin
- Inventors: Daniil Utin
- Web page: https://patentgrep.com/patent/US8683561B2

## CPC

- G06F 21/31: User authentication
- G06F 21/55: Detecting local intrusion or implementing counter-measures
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- G06F 2221/2129: Authenticate client device independently of the user
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A tamperproof ClientID system to uniquely identify a client machine is invoked upon connection of a client application to a backend. Upon initial connection, the backend issues a unique ClientID containing a checksum. The client application prepares at least two different scrambled versions of the ClientID and stores them in respective predetermined locations on the client machine. Upon subsequent connection to the backend, the client application retrieves and unscrambles the values at the two locations, verifies the checksums and compares the values. If the checksums are both correct and the values match, the ClientID value is sent to the backend, otherwise the client application sends an error code.

## Claims

### Claim 1

A method comprising:
retrieving a first scrambled version and a second scrambled version of unique identifying data by executing a retrieval process, the first and second versions being produced by reversibly scrambling the unique identifying data in response to a client computing device establishing a connection with a backend computing device, wherein the first scrambled version of the unique identifying data is stored at a first predetermined location of the client computing device and the second scrambled version of the unique identifying data is stored at a second predetermined location of the client computing device, different from the first predetermined location;
unscrambling the retrieved first scrambled version to produce a first unscrambled version of the unique identifying data;
unscrambling the retrieved second scrambled version to produce a second unscrambled version of the unique identifying data;
comparing the first unscrambled version and second unscrambled version; and
sending data representative of the comparison to the backend computing device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
using the comparison data and a stored version of the unique identifying data to grant access of the client computing device to the backend computing device.

### Claim 3 (depends on 1)

The method of claim 1, wherein the retrieving the first and second stored scrambled versions of the unique identifying data is based upon the client computing device establishing a subsequent connection with the backend computing device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the data representative of the comparison sent to the backend computing device includes the unique identifying data.

### Claim 5 (depends on 1)

The method of claim 1, wherein the data representative of the comparison sent to the backend computing device includes an error message.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data representative of the comparison sent to the backend computing device includes a request for additional unique identifying data.

### Claim 7 (depends on 1)

The method of claim 1, wherein the unique identifying data provides a unique identification for the client computing device.

### Claim 8 (depends on 1)

The method of claim 1, wherein the unique identifying data includes a checksum.

### Claim 9 (depends on 1)

The method of claim 1, wherein the unique identifying data is encrypted by the backend computing device.

### Claim 10 (depends on 1)

The method of claim 1, wherein a first key is used to reversibly scramble the unique identifying data to produce the first scrambled version, and a second key, different than the first key, is used to reversibly scramble the unique identifying data to produce the second scrambled version.

### Claim 11

A system comprising:
a client computing device configured to execute a retrieval process for retrieving a first scrambled version and a second scrambled version of unique identifying data, the first and second versions being produced by reversibly scrambling the unique identifying data in response to the client computing device establishing a connection with a backend computing device, wherein the first scrambled version of the unique identifying data is stored at a first predetermined location of the client computing device and the second scrambled version of the unique identifying data is stored at a second predetermined location of the client computing device, different from the first predetermined location, the client computing device is configured to unscramble the retrieved first scrambled version to produce a first unscrambled version of the unique identifying data, and, unscramble the retrieved second scrambled version to produce a second unscrambled version of the unique identifying data, the client computing device is further configured to compare the first unscrambled version and second unscrambled version, and send data representative of the comparison to the backend computing device.

### Claim 12 (depends on 11)

The system of claim 11, wherein the backend computing device uses the comparison data and a stored version of the unique identifying data to grant the client computing device access.

### Claim 13 (depends on 11)

The system of claim 11, wherein the client computing device unscrambles the first and second stored scrambled versions of the unique identifying data based upon the client computing device establishing a subsequent connection with the backend computing device.

### Claim 14 (depends on 11)

The system of claim 11, wherein the data representative of the comparison sent to the backend computing device includes the unique identifying data.

### Claim 15 (depends on 11)

The system of claim 11, wherein the data representative of the comparison sent to the backend computing device includes an error message.

### Claim 16 (depends on 11)

The system of claim 11, wherein the data representative of the comparison sent to the backend computing device includes a request for additional unique identifying data.

### Claim 17 (depends on 11)

The system of claim 11, wherein the unique identifying data provides a unique identification for the client computing device.

### Claim 18 (depends on 11)

The system of claim 11, wherein the unique identifying data includes a checksum.

### Claim 19 (depends on 11)

The system of claim 11, wherein the unique identifying data is encrypted by the backend computing device.

### Claim 20 (depends on 11)

The system of claim 11, wherein the client computing device uses a first key to reversibly scramble the unique identifying data to produce the first scrambled version, and uses a second key, different than the first key, to reversibly scramble the unique identifying data to produce the second scrambled version.

### Claim 21

A computer program product tangibly embodied in a non-transitory computer readable storage device and comprising instructions that when executed by a processor perform operations comprising:
retrieving a first scrambled version and a second scrambled version of unique identifying data by executing a retrieval process, the first and second versions being produced by reversibly scrambling the unique identifying data in response to a client computing device establishing a connection with a backend computing device, wherein the first scrambled version of the unique identifying data is stored at a first predetermined location of the client computing device and the second scrambled version of the unique identifying data is stored at a second predetermined location of the client computing device, different from the first predetermined location;
unscrambling the retrieved first scrambled version to produce a first unscrambled version of the unique identifying data;
unscrambling the retrieved second scrambled version to produce a second unscrambled version of the unique identifying data;
comparing the first unscrambled version and second unscrambled version; and
sending data representative of the comparison to the backend computing device.

### Claim 22 (depends on 21)

The computer program product of claim 21, further comprising instructions that when executed by a processor perform operations comprising:
using the comparison data and a stored version of the unique identifying data to grant access of the client computing device to the backend computing device.
