IP Library Patent Application 14136795
Patent Application
App. No. 14/136,795

TOKEN AUTHENTICATION SYSTEM AND METHOD

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 None
App. No.
14/136,795
Abstract

A method for calculating a One Time Password. A secret is concatenated with a count, where the secret is uniquely assigned to a token. The secret can be a private key or a shared secret symmetric key. The count is a number that increases monotonically at the token with the number of one-time Passwords generated at the token. The count is also tracked at an authentication server, where it increases monotonically with each calculation of a one-time Password at the authentication server. An OTP can be calculated by hashing a concatenated secret and count. The result can be truncated.

Claims (81)

1 . (canceled)

2 . A token comprising:

a counter to generate a count, wherein the count is a value that increases with each One Time Password generated by the token;

a storage to store a secret and the count; and

a component, coupled to the storage, to:

concatenate the secret with the count;

calculate a hash based upon the concatenated secret and count; and

truncate a result of the hash to obtain a new One Time Password.

3 . The token of claim 2 , further comprising:

a button, wherein the new One Time Password is to be generated and the count is to be incremented in response to a press of the button; and

a display to display the new One Time Password.

4 . The token of claim 2 , wherein the hash is calculated using an SHA-1 hash function and the secret is a symmetric cryptographic key.

5 . The token of claim 2 , wherein the One Time Password comprises at most 4 bytes from the hash.

6 . The token of claim 2 , wherein truncating the result of the hash comprises:

determining an offset value from four bits of a predetermined byte of the hash;

indexing into bytes of the hash based on the offset value; and

returning values for a predetermined number of bytes of the hash that are identified based on the indexing.

7 . An authentication server comprising:

a storage to store a secret and a count that are associated with a token, wherein the count is a value that increases with each received valid One Time Password; and

a component, coupled to the storage, to:

concatenate the secret with the count;

calculate a hash based upon the concatenated secret and count; and

truncate a result of the hash to compute a One Time Password.

8 . The authentication server of claim 7 , wherein the computed One Time Password is to be generated in response to receipt of a request comprising a received One Time Password, and wherein the component is further to:

compare the computed One Time Password with the received One Time Password; and

responsive to a determination that the computed One Time Password matches the received One Time Password, authenticate the request and increment the count.

9 . The authentication server of claim 8 , wherein responsive to a determination that the computed One Time Password fails to match the received One Time Password, the component is further to perform authentication operations comprising:

incrementing the count;

computing a new One Time Password based on the incremented count;

comparing the new One Time Password with the received One Time Password; and

if the new One Time Password matches the received One Time Password, authenticating the request and increment the count.

10 . The authentication server of claim 9 , wherein:

the component is further to repeat the authentication operations up to a threshold number of times if the new One Time Password fails to match the received One Time Password; and

the component is to determine that the request is not authenticated if no computed One Time Password matches the received One Time Password.

11 . The authentication server of claim 7 , wherein the One Time Password comprises at most 4 bytes from the hash.

12 . The authentication server of claim 7 , wherein truncating the result of the hash comprises:

determining an offset value from four bits of a predetermined byte of the hash;

indexing into bytes of the hash based on the offset value; and

returning values for a predetermined number of bytes of the hash that are identified based on the indexing.

13 . A method comprising:

receiving, by an authentication server, a request for authentication, the request comprising a first One Time Password generated by a token, wherein the first One Time Password is based upon a value of a first count at the token and a secret shared between the token and the authentication server;

calculating, by the authentication server, a second One Time Password based upon the secret and a first value of a second count at the authentication server;

comparing the calculated second One Time Password with the received first One Time Password;

responsive to a determination that the calculated second One Time Password corresponds to the received first One Time Password, determining that the request is authenticated; and

responsive to a determination that the calculated second One Time Password does not correspond to the received first One Time Password, performing additional authentication operations by the authentication server, the additional authentication operations comprising:

incrementing the second count to a next value;

recalculating the second One Time Password based upon the incremented second count and the secret; and

comparing the recalculated second One Time Password with the received first One Time Password.

14 . The method of claim 13 , further comprising:

responsive to a determination that the recalculated second One Time Password corresponds to the received first One Time Password, determining that the request is authenticated; and

responsive to a determination that the recalculated second One Time Password does not correspond to the received first One Time Password, repeating the additional authentication operations by the authentication server until at least one of a) the count has been incremented a threshold number of times or b) the recalculated second One Time Password corresponds to the received first One Time Password.

15 . The method of claim 14 , further comprising:

resetting the count to the first value after the count is incremented the threshold number of times if the recalculated second One Time Password does not correspond to the received first One Time Password.

16 . The method of claim 13 , wherein the request further comprises a serial number that is uniquely associated with the token and a personal identification number associated with a user, the method further comprising:

retrieving the second count and the secret based on at least one of the serial number or the personal identification number.

17 . The method of claim 13 , wherein the hash function is SHA-1 and the secret is a symmetric cryptographic key.

18 . The method of claim 13 , wherein calculating the second One Time Password comprises:

concatenating the secret with the second count;

calculating a hash based upon the concatenated secret and the second count; and

truncating a result of the hash to obtain the second One Time Password.

19 . The method of claim 18 , wherein the second One Time Password comprises at most 4 bytes from the hash.

20 . The method of claim 18 , wherein truncating the result of the hash comprises:

determining an offset value from four bits of a predetermined byte of the hash;

indexing into bytes of the hash based on the offset value; and

returning values for a predetermined number of bytes of the hash that are identified based on the indexing.

21 . An authentication server comprising:

a storage to store a shared secret and a second count that are associated with a token, wherein the second count is a value that increases with each received valid One Time Password; and

a component, coupled to the storage, to:

receive a request for authentication, the request comprising a first One Time Password generated by the token, wherein the first One Time Password is based upon a value of a first count at the token and the shared secret;

calculate a second One Time Password based upon the shared secret and a first value of the second count;

compare the calculated second One Time Password with the received first One Time Password;

responsive to a determination that the calculated second One Time Password corresponds to the received first One Time Password, determine that the request is authenticated; and

responsive to a determination that the calculated second One Time Password does not correspond to the received first One Time Password, perform additional authentication operations by the authentication server, the additional authentication operations comprising:

incrementing the second count to a next value;

recalculating the second One Time Password based upon the incremented second count and the secret; and

comparing the recalculated second One Time Password with the received first One Time Password.

22 . The authentication server of claim 21 , wherein the component is further to:

responsive to a determination that the recalculated second One Time Password corresponds to the received first One Time Password, determine that the request is authenticated; and

responsive to a determination that the recalculated second One Time Password does not correspond to the received first One Time Password, repeat the additional authentication operations until at least one of a) the count has been incremented a threshold number of times or b) the recalculated second One Time Password corresponds to the received first One Time Password.

23 . The authentication server of claim 21 , wherein the component is further to:

reset the count to the first value after the count is incremented the threshold number of times if the recalculated second One Time Password does not correspond to the received first One Time Password.

Assignments (3)
CHANGE OF NAME Recorded May 18, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 063697/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2017
From: VERISIGN, INC.
To: SYMANTEC CORPORATION
Reel/Frame 043885/0420 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: POPP, NICOLAS
To: VERISIGN, INC.
Reel/Frame 043828/0826 →