IP Library Granted Patent US 7,487,350
Granted Patent B2
US 7,487,350 · App. 10/532,542 · Granted Feb 3, 2009

Fixed client identification system for positive identification of client to server

Assignee: Grand Virtual, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,487,350
App. No.
10/532,542
Granted
Feb 3, 2009
Kind
B2
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 (25)

1. A method for storing data to positively identify 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; and

executing a ClientID retrieval process with the client application when the client application subsequently attempts to connect to the backend, including

retrieving the first and second scrambled versions of the ClientID stored in the first and second locations and unscrambling the first and second scrambled versions of the ClientID using first and second keys to obtain first and second unscrambled values,

running a checksum operation on each of the first and second unscrambled values to verify that each has the correct checksum, and

comparing the first and second unscrambled values to determine an occurrence of a match between the first and second unscrambled values.

2. The method of claim 1 , wherein the retrieval process further comprises:

if the first and second unscrambled values retrieved from the first and second locations have the correct checksum and match each other, reporting the retrieved ClientID to the backend.

3. The method of claim 2 , wherein the retrieval process further comprises:

if the first and second unscrambled values retrieved from the first and second locations lack the correct checksum and match each other, reporting an error to the backend.

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

5. The method of claim 1 , wherein the first and second keys are different.

6. The method of claim 1 , wherein one of the first and second locations is a registry.

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

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

9. A system comprising:

a client machine connected to a backend, wherein

upon connection by a client application to the backend, the backend is configured to generate a unique ClientID containing a checksum for the client machine and send the ClientID to the client machine;

the client machine is configured to reversibly scramble the ClientID with the client application and store a first scrambled version of the ClientID at a first predetermined location on the client machine, the client machine is further configured to reversibly scramble the ClientID with the client application and store a second scrambled version different from the first scrambled version of the ClientID at a second predetermined location on the client machine and

a ClientID retrieval process executed by the client application as the client application subsequently attempts to connect to the backend, the ClientID retrieval process is configured to retrieve the first and second scrambled versions of the ClientID stored in the first and second locations and unscramble the first and second scrambled versions of the ClientID using first and second keys to obtain first and second unscrambled values, the ClientID retrieval process is further configured to execute a checksum operation on each of the first and second unscrambled values to verify that each has the correct checksum, and compare the first and second unscrambled values to determine a state of matching between the first and second unscrambled values.

10. The system of claim 9 , wherein the retrieval process is further configured to report the retrieved ClientID to the backend if the first and second unscrambled values have the correct checksum and match each other.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2016
From: CAMBRIDGE INTERACTIVE DEVELOPMENT CORP.
To: MANGAS GAMING MALTA LIMITED
Reel/Frame 037812/0140 →
CHANGE OF NAME Recorded Dec 8, 2009
From: GRAND VIRTUAL, INC.
To: CAMBRIDGE INTERACTIVE DEVELOPMENT CORP.
Reel/Frame 023607/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2006
From: UTIN, DANIIL
To: GRAND VIRTUAL, INC.
Reel/Frame 017203/0769 →
Continuity (2)
Provisional Application 6042128500 · Oct 25, 2002
Related Publication 20060156014A1 · Jul 13, 2006