IP Library Granted Patent US 8,966,276
Granted Patent B2
US 8,966,276 · App. 10/938,422 · Granted Feb 24, 2015

System and method providing disconnected authentication

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 8,966,276
App. No.
10/938,422
Granted
Feb 24, 2015
Kind
B2
Abstract

In a system for disconnected authentication, verification records corresponding to given authentication token outputs over a predetermined period of time, sequence of events, and/or set of challenges are downloaded to a verifier. The records include encrypted or hashed information for the given authentication token outputs. In one embodiment using time intervals, for each time interval, token output data, a salt value, and a pepper value, are hashed and compared with the verification record for the time interval. After a successful comparison, a user can access the computer. A PIN value can also be provided as an input the hash function. A portion of the hash function output can be used as a key to decrypt an encrypted (Windows) password, or other sensitive information.

Claims (85)

1. A method for authenticating at a verifier a user who possesses an authentication token capable of providing one or more one-time passcodes, comprising:

obtaining a verification record from an authentication server;

obtaining a passcode from the authentication token submitted to authenticate the user at the verifier, wherein the one-time passcodes are generated as a function of a token secret, and wherein the verifier is isolated from the token secret; and

determining whether the submitted passcode is consistent with the verification record, where the verification record is a function of a reference passcode, wherein the verifier is disconnected from the authentication server which provided the verification record.

2. The method according to claim 1 , wherein the verifier is a personal computer.

3. The method according to claim 1 , wherein the token secret is updated in response to an event.

4. The method according to claim 1 , wherein the one-time passcodes are generated as a function of a time variable.

5. The method according to claim 1 , wherein the one-time passcodes are generated as a function of an event variable.

6. The method according to claim 1 , wherein the passcodes are generated as a function of a challenge value.

7. The method according to claim 1 , wherein the one-time passcodes are generated as a function of a PIN.

8. The method according to claim 1 , wherein a function for generating the one-time passcodes comprises generating a tokencode from the token secret and combining the tokencode with the PIN.

9. The method according to claim 1 , wherein the one-time passcodes are generated as a function of a token secret stored at an authentication server.

10. The method according to claim 9 , wherein the token secret is stored in the authentication token.

11. The method according to claim 1 , wherein the authentication server generates at least part of the reference passcode.

12. The method according to claim 1 , wherein the authentication token generates at least part of the submitted passcode.

13. The method according to claim 1 , wherein one or more tokencodes are stored in the authentication token, and the submitted passcode is obtained as a function of one of said tokencodes.

14. The method according to claim 1 , wherein the verification record is obtained from an intermediary, and wherein the intermediary obtains the verification record from the authentication server.

15. The method according to claim 14 , wherein the intermediary is a personal computer.

16. The method according to claim 14 , wherein the intermediary is an application server.

17. The method according to claim 1 , wherein the verification record is obtained as part of a data structure comprising a plurality of verification records.

18. The method according to claim 1 , wherein the verification record is obtained as part of an authenticated data structure.

19. The method according to claim 18 , wherein the authenticated data structure is a SAML assertion.

20. The method according to claim 1 , wherein the verification record is stored at the verifier.

21. The method according to claim 1 , wherein at least part of the submitted passcode is obtained via user interaction.

22. The method according to claim 1 , wherein at least part of the submitted passcode is obtained via a wired and/or wireless communications link.

23. The method according to claim 1 , wherein consistency of the submitted passcode is determined with respect to a plurality of verification records.

24. The method according to claim 1 , wherein the function for generating the verification record comprises a cryptographic hash function.

25. The method according to claim 24 , wherein the cryptographic hash function is iterated multiple times.

26. The method according to claim 24 , wherein the function for generating the verification record comprises a cryptographic time-lock puzzle.

27. The method according to claim 24 , wherein the verification record comprises a reference hashed passcode, where the reference hashed passcode is the result of applying a one-way function to the reference passcode.

28. The method according to claim 1 , wherein the verification record comprises an encrypted data element, where the encrypted data element is the result of encrypting a data element with a key, and where the key is the result of applying a one-way function to the reference passcode.

29. The method according to claim 28 , further including

applying the one-way function to the submitted passcode to obtain a key;

decrypting the encrypted data element with the key to recover the data element; and

determining consistency based at least in part on whether the decryption operation is successful.

30. The method according to claim 28 , further including

applying the one-way function to the submitted token code to obtain a key;

decrypting the encrypted data element with the key to recover the data element;

using the data element; and

determining consistency based at least in part on whether the usage of the data element is successful.

31. The method according to claim 28 , wherein the data element comprises a Windows password.

32. The method according to claim 28 , wherein the data element comprises at least part of a pepper value for another authentication operation.

33. The method according to claim 28 , wherein the data element comprises a hint value for another authentication operation.

34. The method according to claim 28 , wherein the data element comprises a second key.

35. The method according to claim 34 , further including obtaining a second encrypted data element, where the second encrypted data element is the result of encrypting a second data element with the second key.

36. The method according to claim 35 ,wherein the second data element comprises a Windows password.

37. The method according to claim 35 , wherein the second data element comprises a hint value.

38. The method according to claim 35 , wherein the data element comprises sensitive data.

39. The method according to claim 1 , wherein input to the function for generating the verification record also comprises a function of a PIN value.

40. The method according to claim 39 , wherein the function of the PIN value contains less information than the entire PIN value, such that more than one PIN value is consistent with the verification record.

41. The method according to claim 40 , wherein verification records generated from incorrect PINs are also stored at the verifier.

42. The method according to claim 1 , wherein the input to the function for generating the verification record also comprises a salt value.

43. The method according to claim 42 , wherein the verification record comprises the salt value.

44. The method according to claim 42 , wherein part or all of the salt value is included in another verification record.

45. The method according to claim 44 , further including testing consistency with salt values from one or more other verification records.

46. The method according to claim 1 , wherein input to the function for generating the verification record also comprises a pepper value.

47. The method according to claim 46 , further including testing consistency for one or more possible pepper values.

48. The method according to claim 1 , wherein the input to the function for generating the verification record also comprises a hint value.

49. The method according to claim 48 , wherein the hint value is recovered from one or more other authentication operations.

50. The method according to claim 1 , further including encrypting the verification record to produce an encrypted verification record,

obtaining a decryption key; and

decrypting the encrypted verification record to recover the verification record.

51. The method according to claim 50 , wherein the decryption key is derived from an emergency access code.

52. The method according to claim 50 , wherein the decryption key is derived from a key recovered in another verification operation.

53. The method according to claim 1 , wherein input to the function for generating the verification record also comprises at least part of a second reference passcode.

54. The method according to claim 53 , further including testing consistency of the verification record with both of the reference passcode and the at least part of the second reference passcode.

55. The method according to claim 1 , wherein the authentication token is a software token implemented on a computer.

56. The method according to claim 1 , further including increasing over time an amount of work required to compute the verification record in an attack.

57. A method for disconnection authentication, comprising:

receiving verification records from an authentication server by an authenticated computer connected to the authentication server;

storing the verification records on the computer, wherein the verification records correspond to a period of time and/or an event and include information corresponding to passcodes;

receiving a passcode from an authentication token submitted by a user of the computer, which is disconnected from the server, wherein the passcode is generated as a function of a token secret, and wherein the verifier is isolated from the token secret; and

determining whether the submitted passcode corresponds to a given one of the verification records to authenticate the user and allow the user to use the computer.

58. A method for authenticating at a laptop computer a user who possesses an authentication token capable of providing one or more one-time passcodes, comprising:

obtaining a verification record from an authentication server;

obtaining a passcode from the authentication token submitted to authenticate the user at the laptop, wherein the passcode is generated as a function of a token secret, and wherein the laptop computer is isolated from the token secret; and

determining whether the submitted passcode is consistent with the verification record, where the verification record is a function of a reference passcode, wherein the laptop computer is disconnected from the authentication server which provided the verification record, and disconnected from all network connections.

59. A method for authenticating at a verifier a user who possesses an authentication token capable of providing one or more one-time passcodes, comprising:

obtaining a verification record from an authentication server;

obtaining a passcode from the authentication token submitted to authenticate the user at the verifier; and

determining whether the submitted passcode is consistent with the verification record, where the verification record is a function of a reference passcode, wherein the verifier is disconnected from the authentication server which provided the verification record.

wherein determining whether the submitted passcode is consistent with the verification record includes:

applying a one-way function to the submitted passcode to obtain a hashed passcode;

comparing the hashed passcode to a reference hashed passcode; and

determining consistency based at least in part on the whether the comparison is successful.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023975/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023975/0453 →
MERGER Recorded Jan 27, 2010
From: RSA SECURITY INC
To: RSA SECURITY LLC
Reel/Frame 023852/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023824/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023825/0109 →