IP Library Granted Patent US 7,228,417
Granted Patent B2
US 7,228,417 · App. 10/291,281 · Granted Jun 5, 2007

Simple secure login with multiple-authentication providers

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,228,417
App. No.
10/291,281
Granted
Jun 5, 2007
Kind
B2
Abstract

A secure distributed single-login authentication system comprises a client and a server. The client collects a user name and password from a user and tests that user name and password at a variety of potential authentication servers to check where the login is valid. It combines the password with a time varying salt and a service specific seed in a message digesting hash and generates a first hash value. The client sends the hash value along with the user name and the time varying salt to a currently selected server. The server extracts the user name and looks up an entry under the user name from the selected server's database. If an entry is found, it retrieves the password and performs the same hash function on the combination of the user name, the service specific seed, and the retrieved password to generate a second hash value. Then, it compares two hash values. If these two values match, the user is authenticated. In this way, the system never sufficiently reveals the password to authentication agents that might abuse the information.

Claims (89)

1. In a computerized network comprising at least one client and a plurality of authentication servers, said client and said authentication servers being communicatively coupled to each other via a global telecommunications network, a method for providing distributed authentication service comprising said steps of:

(a) taking and parsing, by said client, an entered user name and password;

(b) generating a time stamp;

(c) selecting an authentication server from a list of authentication servers;

(d) combining said password and a service specific seed unique to an authentication server selected from said list of authentication servers;

(e) applying a hash algorithm to said combination and said time stamp to generate a first hash value;

(f) finding an address representing said selected authentication server;

(g) sending a data packet to said selected authentication server, said data packet comprising said first hash value, said user name, and said time stamp;

(h) extracting said first hash value, said user name, and said time stamp from said data packet received from said client;

(i) checking whether an entry under said user name is available in said selected authentication server's database;

(j) if no entry under said user name is found, then returning a failure message to said client and repeating steps (b) to (g) for a next selected authentication server;

(k) if an entry under said user name is found, then retrieving said user's password;

(l) combining said time stamp, said retrieved password, and said service specific seed unique to said selected authentication server;

(m) applying said hash algorithm to said combination from Step (l) to generate a second hash value;

(n) comparing said first hash value and said second hash value;

(o) if said first hash value and said second hash value do not match, then returning a failure message to said client and repeating steps (b) to (g) for a next selected authentication server;

(p) if said first hash value and said second hash value match, then returning a successful authentication message to said client;

(q) caching and distributing said positive authentication result; and

(r) when said entire list has been tested and no one authenticates said user, then resulting in authentication failure.

2. The method of claim 1 , wherein said hash algorithm is a message digesting (MD) algorithm or its equivalent.

3. The method of claim 1 , wherein said service specific seed is a domain name of said selected authentication server.

4. The method of claim 1 , wherein Step (f) further comprising said steps of:

(s) looking up a local mapping list; and

(t) if Step (s) fails, consulting to a domain name system (DNS).

5. In a computerized network which is registered with a unique domain name, said network comprising at least one orient and a plurality of authentication servers, said client and said authentication servers being communicatively coupled to each other via a global telecommunications network, each of said authentication servers having a fully qualified domain name which is a local host name with said unique domain name appended, a method for providing distilbuted authentication service, wherein a given user enters a global user identification (GUID) and a password for authentication to be carried out at a target authentication server, said GUID comprising a user name, a delimitation symbol, and a domain which is same as said local host name of said target authentication server, said method comprising said steps of:

(a) parsing, by said client, an entered GUID and password;

(b) generating a time stamp;

(c) extracting said user name from said GUID;

(d) extracting a domain from said GUID;

(e) combining said password and a service specific seed unique to said target authentication server;

(f) applying a hash algorithm to said combination and said time stamp to generate a first hash value;

(g) appending a unique domain name to said domain to form a fully qualified domain name (FQDN) for said target authentication server;

(h) looking up said FQDN from a local mapping list to obtain an address representing said target authentication server;

(i) if Step (h) fails, looking up said FQDN in a domain name system (DNS) to obtain an address representing said target authentication server;

(j) sending a data packet to said target authentication server, said data packet comprising said first hash value, said user name, and said time stamp;

(k) extracting said first hash value, said user name, and said time stamp from said data packet received from said client;

(l) checking whether an entry under said user name is available in said target authentication server's database;

(m) if no entry under said user name is found, then returning a failure message to said client;

(n) if an entry under said user name is found, then retrieving said user's password;

(o) combining said time stamp, said retrieved password and said service specific seed unique to said target authentication server;

(p) applying said hash algorithm to said combination from Step (o) to generate a second hash value;

(q) comparing said first hash value and said second hash value;

(r) if said first hash value and said second hash value do not match, then returning a failure message to said client;

(s) if said first hash value and said second hash value match, then returning a successful authentication message to said client; and (t) caching and distributing said positive authentication result.

6. The method of claim 5 , further comprising said step of:

if Step (i) fails or if a failure message is returned from Step (m) or Step (r),

automatically mapping to a default server which carries out authentication on said user's authentication request.

7. The method of claim 5 , wherein said hash algorithm is a message digesting (MD) algorithm or its equivalent.

8. The method of claim 5 , wherein said service specific seed is a domain name of said target authentication server.

9. In a computerized network comprising at least one client end a plurality of authentication servers, said client and said authentication servers being communicatively coupled to each other via a global telecommunications network, a method fur providing distributed authentication service comprising said steps of:

(1) parsing a user's login information which includes a user ID and a password;

(2) if said entered user ID is a global user ID (GUID), proceeding to process A; and

(3) if said entered user ID is a regular user name, proceeding to process B; and

wherein said process A comprising said steps of:

(a) generating a time stamp;

(b) extracting said user's user name and a domain from said GUID;

(c) combining said password and a service specific seed unique to a target authentication server identified by said domain of said GUID;

(d) applying a hash algorithm to said combination and said time stamp to generate a first hash value;

(e) finding an IP address for said target authentication server;

(f) sending a data packet to said target authentication server, said data packet comprising said first hash value, said user name, and said time stamp;

(g) extracting said first hash value, said user name, and said time stamp from said data packet received from said client;

(h) checking whether an entry under said user name is available in said target authentication servers database;

(i) if no entry under said user name is found, then returning a failure message to said client;

(j) if an entry under said user name is found, then retrieving said user's password;

(k) combining said time stamp, said retrieved password, and said service specific seed unique to said target authentication server;

(l) applying said hash algorithm to said combination from Step (k) to generate a second hash value;

(m) comparing said first hash value and said second hash value;

(n) if said first hash value and said second hash value do not match, then returning a failure message to said client;

(o) if said first hash value and said second hash value match, then returning a successful authentication message to said client; and

(p) caching and distributing said positive authentication result; and wherein said process B comprising said steps of:

(aa) generating a time stamp;

(bb) selecting an authentication server from a list of authentication servers;

(cc) combining said password and a service specific seed unique to an authentication server selected from said list of authentication servers;

(dd) applying a hash algorithm to said combination and said time stamp to generate a first hash value;

(ee) finding an IP address representing said currently selected authentication server;

(ff) sending a data packet to said currently selected authentication server, said data packet comprising said first hash value, said user name, and said time stamp;

(gg) extracting said first hush value, said user name, and said time stamp from said date packet received from said client;

(hh) checking whether an entry under said user name is available in said currently selected authentication server's database;

(ii) if no entry under said user name is found, then returning a failure message to said client and repeating steps (aa) to (if) for a next selected authentication server;

(jj) if an entry under said user name is found, then retrieving said user's password;

(kk) combining said time stamp, said retrieved password and said service specific seed unique to said currently selected authentication server;

(ll) applying said hash algorithm to said combination from Step (kk) to generate a second hash value;

(mm) comparing said first hash value and said second hash value;

(nn) if said first hash value and said second hash value do not match, then returning a failure message to said client and repeating steps (aa) to (ff) for a next selected authentication server;

(oo) if said first hash value and said second hash value match, then returning a successful authentication message to said client; and (pp) caching and distributing said positive authentication result.

10. The method of claim 9 , wherein said hash algorithm is a message digesting (MD) algorithm or its equivalent.

11. The method of claim 9 , wherein any of Step (e) and Step (ee) further comprising said steps of:

(q) looking up a local mapping list; and

(r) if Step (q) fails, consulting to a domain name system (DNS).

Assignments (8)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058961/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2012
From: AOL INC.
To: FACEBOOK, INC.
Reel/Frame 028487/0304 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 16, 2010
From: BANK OF AMERICA, N A
To: AOL INC; AOL ADVERTISING INC; GOING INC; LIGHTNINGCAST LLC; MAPQUEST, INC; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC; TACODA LLC; TRUVEO, INC; YEDDA, INC
Reel/Frame 025323/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2009
From: AOL LLC
To: AOL INC.
Reel/Frame 023750/0210 →
SECURITY AGREEMENT Recorded Dec 14, 2009
From: AOL INC.; AOL ADVERTISING INC.; BEBO, INC.; ICQ LLC; GOING, INC.; LIGHTNINGCAST LLC; MAPQUEST, INC.; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC.; TACODA LLC; TRUVEO, INC.; YEDDA, INC.
To: BANK OF AMERICAN, N.A. AS COLLATERAL AGENT
Reel/Frame 023649/0061 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 019711 FRAME 0316. ASSIGNOR(S) HEREBY CONFIRMS THE NATURE OF CONVEYANCE IS CHANGE OF NAME. Recorded Mar 25, 2009
From: AMERICA ONLINE, INC.
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY
Reel/Frame 022451/0186 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2007
From: AMERICA ONLINE, INC.
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY
Reel/Frame 019711/0316 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2002
From: ROSKIND, JAMES
To: AMERICA ONLINE, INC.
Reel/Frame 013497/0192 →