# US 2012/0084845 A1 · 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 2012/0084845 A1
- Document ID: US20120084845A1
- Status: Published application
- Kind: A1
- Application number: 13/209,980
- Filed: 2011-08-15
- Published: 2012-04-05
- Earliest claimed: 2002-10-25
- Assignees: Cambridge Interactive Development Corp.
- Inventors: Daniil Utin
- Web page: https://patentgrep.com/patent/US20120084845A1

## 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 system for positively identifying a client machine running a client application to a backend, comprising
executing a ClientID storage process, including
upon connection by the client application to the backend, generating a unique ClientID containing a checksum at the backend for the client machine,
sending the ClientID to the client application,
reversibly scrambling the ClientID with the client application at the client machine and storing a first scrambled version of the ClientID at a first predetermined location on the client machine, and
reversibly scrambling the ClientID with the client application at the client machine and storing a second scrambled version different from the first version of the ClientID at a second predetermined location on the client machine.

### Claim 2 (depends on 1)

The system of claim 1, further comprising executing a ClientID retrieval process with the client application when the client application subsequently attempts to connect to the backend, including
retrieving and unscrambling the values stored in both locations using the first and second keys,
running a checksum operation on the unscrambled values to verify that each has the correct checksum, and
comparing the two unscrambled values to see whether they match.

### Claim 3 (depends on 2)

The system of claim 2, wherein the retrieval process executed by the client application further comprises
if the two unscrambled values retrieved from the two locations have the correct checksum and match each other, reporting the retrieved ClientID to the backend.

### Claim 4 (depends on 3)

The system of claim 3, wherein the retrieval process executed by the client application further comprises
if the two unscrambled values retrieved from the two locations do not both have the correct checksum and match each other, reporting an error to the backend.

### Claim 5 (depends on 1)

The system of claim 1, wherein the storage process further comprises encrypting the value of the newly generated ClientID at the backend and storing the encrypted version of the ClientID on the backend in a ClientID record.

### Claim 6 (depends on 1)

The system of claim 1, wherein the storage process steps of scrambling use different first and second keys.

### Claim 7 (depends on 1)

The system of claim 1, wherein one of the first and second locations is the registry.

### Claim 8 (depends on 1)

The system of claim 1, wherein one of the first and second locations is the system configuration file.

### Claim 9 (depends on 1)

The system of claim 1, wherein the first and second locations are the registry and system configuration file.
