# US 8,001,376 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,001,376 B2
- Document ID: US8001376B2
- Status: Granted
- Kind: B2
- Application number: 12/364,816
- Filed: 2009-02-03
- Published: 2009-06-04
- Granted: 2011-08-16
- Earliest claimed: 2002-10-25
- Assignees: Cambridge Interactive Development Corp.
- Inventors: Daniil Utin
- Web page: https://patentgrep.com/patent/US8001376B2

## 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 for storing data for identification comprising:
in response to a client machine establishing a connection with a backend machine, receiving unique identifying data at the client machine from the backend machine;
reversibly scrambling the unique identifying data to produce a first scrambled version of the unique identifying data and a second version of the unique identifying data;
storing the first scrambled version of the unique identifying data at a first predetermined location of the client machine and the second scrambled version of the unique identifying data at a second predetermined location of the client machine, different from the first predetermined location;
retrieving the first and second stored scrambled versions of the unique identifying data;
unscrambling the first and second stored scrambled versions to produce a first unscrambled version and 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 machine.

### 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 machine to the backend machine.

### 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 machine establishing a subsequent connection with the backend machine.

### Claim 4 (depends on 1)

The method of claim 1, wherein the data representative of the comparison sent to the backend machine 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 machine 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 machine 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 machine.

### 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 machine.

### 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 machine for receiving unique identifying data from a backend machine in response to establishing a connection with the backend machine, the unique identifying data being reversibly scrambled by the client machine to produce a first scrambled version of the unique identifying data and a second version of the unique identifying data, the first scrambled version of the unique identifying data being stored at a first predetermined location of the client machine and the second scrambled version of the unique identifying data being stored at a second predetermined location of the client machine, different from the first predetermined location, wherein the client machine is further configured to unscramble the first and second stored scrambled versions of the unique identifying data to produce a first unscrambled version and a second unscrambled version of the unique identifying data, the first unscrambled version and second unscrambled version are compared, and data representative of the comparison is sent to the backend machine.

### Claim 12 (depends on 11)

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

### Claim 13 (depends on 11)

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

### Claim 14 (depends on 11)

The system of claim 11, wherein the data representative of the comparison sent to the backend machine 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 machine 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 machine 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 machine.

### 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 machine.

### Claim 20 (depends on 11)

The system of claim 11, wherein the client machine 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 computer storage device and comprising instructions that when executed by a processor perform a method for storing data for identification comprising:
in response to a client machine establishing a connection with a backend machine, receiving unique identifying data at the client machine from the backend machine;
reversibly scrambling the unique identifying data to produce a first scrambled version of the unique identifying data and a second version of the unique identifying data;
storing the first scrambled version of the unique data at a first predetermined location of the client machine and the second scrambled version of the unique identifying data at a second predetermined location of the client machine, different from the first predetermined location;
retrieving the first and second stored scrambled versions of the unique identifying data;
unscrambling the first and second stored scrambled versions to produce a first unscrambled version and 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 machine.
