IP Library Granted Patent US 7,139,917
Granted Patent B2
US 7,139,917 · App. 09/872,659 · Granted Nov 21, 2006

Systems, methods and software for remote password authentication using multiple servers

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,139,917
App. No.
09/872,659
Granted
Nov 21, 2006
Kind
B2
Abstract

Systems, methods and software that enable multiple servers to verify a password, without providing any single server, client or network attacker with the ability to validate guesses for the password off-line is disclosed. Password security is maintained in a very simple model, requiring no previously secured or server-authenticated channel between the client and any servers. Data may be protected by a small password, and no other keys, remains secret even against an enemy that compromises any, but not all, of two or more cooperating authenticating servers.

Claims (74)

1. A system that provides for remote password authentication, comprising:

a client;

a plurality of authentication servers;

a network interconnecting the client computer and plurality of authentication servers; and

a memory, coupled to the client, the memory maintaining instructions that when executed by the client, cause the client to receive a password, transmit a unique random value y i to each of the servers, derive a group element (P) from the password, send a blinded password value (P x ) to the servers, receive blinded key shares (P xyi ) from the servers, unblind and combine the key shares to create a master key (K m ), and decrypt encrypted private data using the master key (K m ).

2. The system recited in claim 1 wherein the instructions further cause the client to validate the master key (K m ).

3. The system recited in claim 2 wherein the instructions further cause the client to decrypt encrypted private data using the validated master key (K m ).

4. The system recited in claim 2 wherein the instructions further cause the client to send proof of the validated master key (Km) and each blinded password value (P x ) to the servers.

5. The system recited in claim 1 wherein the authentication servers include a memory for maintaining instructions which, when executed by the authentication servers, cause the authentication servers to:

maintain a count of bad login attempts, the number of recent amplifications, a list of recent P x password amplification request values, and a list of timestamps associated with the list of recent password amplification request values on the server;

receives a blinded password (P x ) request

records the blinded password in a short-term list

checks a user account to see if it is locked;

creates a blinded key share (P xy i ) in response to the blinded password request; and

sends the blinded key share to the client if it is unlocked.

6. The system recited in claim 5 wherein the instructions further cause the authentication servers to:

records a timestamp value to note the time that the request was received;

periodically checks for stale requests which are determined when the difference between any timestamp value and the current time becomes greater than a specific period of time;

deletes corresponding password amplification request values and timestamps; and

increments the count of bad attempts.

7. The system recited in claim 5 wherein, when a successful login occurs, the instructions further cause the authentication servers to:

sends a value of Q A , equal to the password raised to a random power, along with any prior values for Q A from earlier runs in the same login session, to each sewer in an encrypted message; and

authenticate the encrypted message using the master key K m .

8. A method that provides for remote password authentication using a system including a client, a plurality of authentication servers, and a network interconnecting the client and the plurality of authentication servers, the method comprising the steps of:

receiving a password;

deriving group elements (P) from the password;

sending blinded password value (p x ) to the servers;

receiving blinded key shares (P xyi ) from the servers;

unblinding and combining the key shares to create a master key (K m ); and

decrypting encrypted private data using the master key (K m ).

9. The method recited in claim 8 further comprising the step of validating the waster key (K m ).

10. The method recited in claim 9 further comprising the step of decrypting encrypted private data using the validated master key (K m ).

11. The method recited in claim 9 further comprising the step of sending proof of the validated master key (K m ) and each blinded password value (P x ) to the servers.

12. The method recited in claim 8 further comprising the steps of:

maintaining a count of bad login attempts, the number of recent amplifications, a list of recent P x password amplification request values, and a list of timestamps associated with the list of recent password amplification request values on the server;

receiving a blinded password (P x ) request

recording the blinded password in a short-term list

checking a user account to see if it is locked;

creating blinded key share (P xy i ) in response to the blinded password request; and

sending the blinded key share to the client if it is unlocked.

13. The method recited in claim 12 further comprising the steps of:

recording a timestamp value to note the time that the request was received;

periodically checking for stale requests which are determined when the difference between any timestamp value and the current time becomes greater than a specific period of time;

checking corresponding password amplification request values and timestamps; and

incrementing the count of bad attempts.

14. The method recited in claim 12 further comprising the steps of

sending the value of Q A , equal to the password raised to a random power, along with any prior values for Q A from earlier runs in the same login session, to each server in an encrypted message; and

authenticating the encrypted message using the master key K m .

15. A computer program embodied on a computer-readable medium for enabling remote password authentication in a multiple-server system including a client, a plurality of authentication servers, and a network interconnecting the client and the plurality of authentication servers, the computer program comprising:

a code segment that enters a password;

a data storage area that contains a unique random value y i on each of the servers,

a code segment that derives a group element (P) from the password;

a code segment that sends blinded password value (P x ) to the servers;

a code segment that provided for receiving blinded key shares (P xy i ) from the servers;

a code segment that unblinds and combines the shares to create a master key (K m ); and

a code segment that decrypts encrypted private data on the client computer using the master key (K m ).

16. The computer program recited in claim 15 further comprising a code segment that validates the master key (K m ).

17. The computer program recited in claim 16 further comprising a code segment that decrypts encrypted private data using the validated master key (K m ).

18. The computer program recited in claim 16 further comprising a code segment that sends proof of the validated master key (K m ) and the blinded password value (P x ) to the servers.

19. The computer program recited in claim 15 further comprising a code segment that:

maintains a count of bad login attempts, the number of recent amplifications, a list of recent P x password amplification request values, and a list of timestamps associated with the list of recent password amplification request values on the server;

receives a blinded password (P x ) request

records the blinded password in a short-term suspect list

checks a user account to see if such account is locked;

creates a blinded key share (P xy i ) if the user account is unlocked; and

sends the blinded key share to the client.

20. The computer program recited in claim 19 further comprising a code segment that:

records timestamp value to note the time that the request was received;

periodically checks for stale requests which are determined when the difference between any timestamp value and the current time becomes greater than a specific period of time;

deletes corresponding password amplification request values and timestamps; and

increments the count of bad attempts.

21. The computer program recited in claim 19 further comprising a code segment that:

sends the value of Q A , equal to the password raised to a random power, along with any prior values for Q A from earlier runs in the same login session, to each server in an encrypted message; and

authenticates this message using the master key K m .

Assignments (4)
LIEN AND SECURITY INTEREST Recorded Jan 13, 2017
From: KINGLITE HOLDINGS INC.
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 041366/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: PHOENIX TECHNOLOGIES LTD.
To: KINGLITE HOLDINGS INC.
Reel/Frame 029339/0716 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2012
From: MEP PLP, LLC
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029307/0590 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC
To: MEP PLP, LLC
Reel/Frame 029291/0354 →