IP Library Granted Patent US 7,571,489
Granted Patent B2
US 7,571,489 · App. 10/969,435 · Granted Aug 4, 2009

One time passcode system

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,571,489
App. No.
10/969,435
Granted
Aug 4, 2009
Kind
B2
Abstract

The invention relates to a system for securing access to resources or computer systems by means of a self modifying, single use password that limits access to a system and automatically changes each time it is used. Independent computer systems, or clients, are utilized by users to generate one time passcodes to prove their identity to one or more authentication servers. Servers are used to authenticate user inputted one time passcodes, to maintain and update the status of one time passcode clients, and perform rekeying and reset operations. Middleware, an optional component, allows for the interaction between one time passcode clients and servers. Middleware allows for client rekeying and resets as well as synchronisation between the client and server. The invention facilitates, inter alia, distribution of clients to users, maintaining and administering the status of clients on one or more servers, generation of a one time passcode (OTP), authentication of a one time passcode, rekeying of a one time passcode client, resetting of a one-time passcode client, Resetting of a one time passcode client, requesting for generation of a one time passcode on a communication enabled client through software or hardware interfaces, and authentication of one time passcodes by remote application servers.

Claims (56)

1. A method process implemented within a data processing system comprising the steps of:

generating a client-specific identifier, a random number seed and an initial client-specific key in a first data processing system;

storing, by the first data processing system, the client-specific identifier, the random number seed and the initial client-specific key in a temporary storage of the first data processing system as a first client-specific identifier, a first random number seed and a first initial client-specific key;

sending, on initialization of a second data processing system, from the first data processing system, over a computer network, a copy of the client-specific identifier, the random number seed and the initial client-specific key to a second data processing system for storing in the second data processing system as a second client-specific identifier, a second random number seed and a second initial client-specific key;

receiving a user request for a one-time passcode in the second data processing system;

generating in the second data processing system a first plaintext based on the second client-specific identifier and the second random number seed;

encrypting, in the second data processing system, the first plaintext using the second initial client-specific key to create a first ciphertext;

generating, in the second data processing system, the one-time passcode based on the first ciphertext;

outputting, by the second data processing system, only the one-time passcode for the user to the first data processing system; and

verifying in the first data processing system the one-time passcode of the second data processing system, wherein the step of verifying the received one-time passcode comprises the steps of:

receiving in the first data processing system only the one-time passcode from the second data processing system;

generating, on the first data processing system, a second plaintext based on the first client-specific identifier and the first random number seed;

encrypting the second plaintext using the first initial client-specific key to create a second ciphertext;

generating a one-time code based on the second ciphertext;

comparing the one-time passcode with the one-time code; and,

when the one-time passcode and the one-time code match, allowing user access to the second data processing system.

2. The method of claim 1 , further comprising:

generating in second data processing system an updated second client-specific key using the second initial client-specific key, the second client-specific identifier, and the second random number seed; and

storing the updated second client-specific key in the second data processing unit.

3. The method of claim 2 , wherein the updated second client-specific key contains a new data value having a character length similar to the character length of the second initial client-specific key.

4. The method of claim 1 , wherein the second data processing system is selected from a group consisting of hardware devices and software programs.

5. The method of claim 1 , further comprising the step of generating a failure message when the one-time passcode exceeds a pre-determined threshold value.

6. The method of claim 1 , further comprising:

generating in the first data processing system an updated first client-specific key using the first initial client-specific key, the first client-specific identifier, and the first random number seed; and

storing the updated first client-specific key in the temporary storage of the first data processing system.

7. The method of claim 6 , wherein the updated first client-specific key contains a new data value having a character length similar to the character length of the first initial client-specific key.

8. A system comprising:

at least one processor; and

a memory coupled to the at least one processor, wherein the memory comprises instructions which, when executed by the at least one processor, cause the at least one processor to:

generate a client-specific identifier, a random number seed and an initial client-specific key in a first data processing system;

store, by the first data processing system, the client-specific identifier, the random number seed and the initial client-specific key in a temporary storage of the first data processing system as a first client-specific identifier, a first random number seed and a first initial client-specific key;

send, on initialization of a second data processing system, from the first data processing system, over a computer network, a copy of the client-specific identifier, the random number seed and the initial client-specific key to a second data processing system for storing in the second data processing system as a second client-specific identifier, a second random number seed and a second initial client-specific key;

receive from the second data processing system only a one-time passcode for the user in the first data processing system, wherein the second data processing system generates the one-time passcode by:

receiving a user request for the one-time passcode in the second data processing system;

generating in the second data processing system a first-plaintext based on the second client-specific identifier and the second random number seed;

encrypting, in the second data processing system, the first plaintext using the second initial client-specific key to create a first ciphertext;

generating, in the second data processing system, the one-time passcode based on the first ciphertext; and

outputting, by the second data processing system, only the one-time passcode for the user to the first data processing system; and

verify by the first data processing system the one-time passcode of the second data processing system, wherein the instructions to verify the received one-time passcode further cause the processor to:

receive in the first data processing system only the one-time passcode from the second data processing system;

generate, on the first data processing system, a second plaintext based on the first client-specific identifier and the first random number seed;

encrypt the second plaintext using the first initial client-specific key to create a second ciphertext;

generate a one-time code based on the second ciphertext;

compare the one-time passcode with the one-time code; and,

when the one-time passcode and the one-time code match, allow user access to the second data processing system.

9. The system of claim 8 , wherein the instructions further cause the processor to:

generate in the first data processing system an updated first client-specific key using the first initial client-specific key, the first client-specific identifier, and the first random number seed; and

store the updated first client-specific key in the temporary storage of the first data processing system.

10. The system of claim 9 , wherein the updated first client-specific key contains a new data value having a character length similar to the character length of the first initial client-specific key.

11. The system of claim 8 , wherein, upon outputting, by the second data processing system, only the one-time passcode for the user to the first data processing system, the second data processing system:

generates in the second data processing system an updated second client-specific key using the second initial client-specific key, the second client-specific identifier, and the second random number seed; and

stores the updated second client-specific key in the second data processing unit.

12. The system of claim 11 , wherein the updated second client-specific key contains a new data value having a character length similar to the character length of the second initial client-specific key.

13. The system of claim 8 , wherein the second data processing system is selected from a group consisting of hardware devices and software programs.

14. The system of claim 8 , wherein the instructions further cause the processor to:

generate a failure message when the one-time passcode exceeds a pre-determined threshold value.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR. DOCUMENT PREVIOUSLY RECORDED AT REEL 021541 FRAME 0893. ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Oct 9, 2008
From: ENCENTUATE PTE. LTD.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021792/0815 →
ACQUISITION Recorded Sep 9, 2008
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021541/0893 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2005
From: ONG, PENG T.; RAMACHANDRAN, SRIRAM
To: ENCENTUATE PTE. LTD.
Reel/Frame 016243/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2004
From: ONG, PENG T.; RAMACHANDRAN, SRIRAM
To: ENCENTRUATE PTE, LTD.
Reel/Frame 015919/0488 →