US2014115677A1PendingUtilityA1
Token authentication system and method
Est. expiryFeb 23, 2024(expired)· nominal 20-yr term from priority
Inventors:Nicolas Popp
H04L 9/3234H04L 63/0838H04L 9/3226H04L 9/3242H04L 63/0853H04L 9/0863H04L 9/3228
52
PatentIndex Score
0
Cited by
0
References
0
Claims
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
exact text as granted — not AI-modified1 . (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.Join the waitlist — get patent alerts
Track US2014115677A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.