IP Library Granted Patent US 10,735,398
Granted Patent B1
US 10,735,398 · App. 16/801,811 · Granted Aug 4, 2020

Rolling code authentication techniques

Inventors: Adam Covati (Durham, NC); Bryan C. Turner (Durham, NC)
Assignee: Bandwidth, Inc.
H04L63/08H04L9/0861H04L9/3228H04L63/0428
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 10,735,398
App. No.
16/801,811
Filed
Feb 26, 2020
Granted
Aug 4, 2020
Kind
B1
Art Unit
2431
USPC
726/7
Abstract

Techniques are described for single or multi-factor authentication. An access request is received followed by a prompt for authentication data comprising a segment of a continuous rolling authentication code. Upon receipt of the segment of a continuous rolling authentication code, it is compared to another version of the continuous rolling authentication code generated by an algorithm and shared secret key known to both parties. The access request may be authenticated when the segment of the rolling authentication code received in response to the prompt for authentication data matches a segment the continuous rolling authentication code generated. Otherwise, it is rejected.

Claims (50)

1. An access authentication method comprising:

receiving an access request;

prompting for authentication data pertaining to the access request, the authentication data comprising a segment of a continuous rolling authentication code comprised of characters;

receiving, in response to the prompt for authentication data, a segment of a continuous rolling authentication code;

comparing the received segment of the continuous rolling authentication code to a window segment of the continuous rolling authentication code of the same segment length beginning at time “x−y” seconds where “x” is the moment at which the received segment was received and “y” is a look back period;

shifting the window segment one character at a time until there is a match between the received segment and a window segment or the time attributable to the shifted window segment is “x”;

authenticating the access request when the received segment of the continuous rolling authentication code exactly matches a window segment; and

rejecting the access request when the received segment of the continuous rolling authentication code does not match any window segments.

2. The method of claim 1 , wherein the continuous rolling authentication code is generated using a shared secret key time-based one-time password (TOTP) application.

3. The method of claim 1 , wherein the continuous rolling code comprises digits, alpha-numeric characters, ASCII characters, symbols, gestures, or any combination thereof.

4. The method of claim 3 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on the IP address of the device making the access request.

5. The method of claim 3 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a device identifier of the device making the access request.

6. The method of claim 3 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a geographic location of the device making the access request.

7. The method of claim 3 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a status of the server or network the device making the access request is using.

8. The method of claim 1 , wherein the continuous rolling authentication code has a new character added every “n” seconds.

9. The method of claim 8 , wherein the look back period “y” is calculated by multiplying the number of characters in the segment of continuous rolling authentication code received in response to the prompt for authentication data by “n”.

10. A system for processing access requests, comprising:

a processor; and

a non-transitory computer readable medium to store a set of instructions for execution by the processor, the set of instructions to cause the processor to:

receive an access request;

prompt for authentication data pertaining to the access request, the authentication data comprising a segment of a continuous rolling authentication code comprised of characters;

receive, in response to the prompt for authentication data, a segment of a continuous rolling authentication code;

compare the received segment of the continuous rolling authentication code to a window segment of the continuous rolling authentication code of the same segment length beginning at time “x−y” seconds where “x” is the moment at which the received segment was received and “y” is a look back period;

shift the window segment one character at a time until there is a match between the received segment and a window segment or the time attributable to the shifted window segment is “x”;

authenticate the access request when the received segment of the continuous rolling authentication code exactly matches a window segment; and

reject the access request when the received segment of the continuous rolling authentication code does not match any window segments.

11. The system of claim 10 , wherein the continuous rolling authentication code is generated using a shared secret key time-based one-time password (TOTP) application.

12. The system of claim 10 , wherein the continuous rolling code comprises digits, alpha-numeric characters, ASCII characters, symbols, gestures, or any combination thereof.

13. The system of claim 10 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on the IP address of the device making the access request.

14. The system of claim 10 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a device identifier of the device making the access request.

15. The system of claim 10 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a geographic location of the device making the access request.

16. The system of claim 10 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a status of the server or network the device making the access request is using.

17. The system of claim 10 , wherein the continuous rolling authentication code has a new random character added every “n” seconds.

18. The system of claim 17 , wherein the look back period “y” is calculated by multiplying the number of characters in the segment of continuous rolling authentication code received in response to the prompt for additional data by “n”.

19. At least one non-transitory machine-readable medium comprising a set of instructions executable on at least one computing device to cause the at least one computing device to perform multi-factor authentication, set of instructions to:

receive an access request;

prompt for authentication data pertaining to the access request, the authentication data comprising a segment of a continuous rolling authentication code comprised of characters;

receive, in response to the prompt for authentication data, a segment of a continuous rolling authentication code;

compare the received segment of the continuous rolling authentication code to a window segment of the continuous rolling authentication code of the same segment length beginning at time “x-y” seconds where “x” is the moment at which the received segment was received and “y” is a look back period;

shift the window segment one character at a time until there is a match between the received segment and a window segment or the time attributable to the shifted window segment is “x”;

authenticate the access request when the received segment of the continuous rolling authentication code exactly matches a window segment; and

reject the access request when the received segment of the continuous rolling authentication code does not match any window segments.

20. The non-transitory machine-readable medium of claim 19 , wherein the continuous rolling authentication code is generated using a shared secret key time-based one-time password (TOTP) application.

21. The non-transitory machine-readable medium of claim 19 , wherein the continuous rolling code comprises digits, alpha-numeric characters, ASCII characters, symbols, gestures, or any combination thereof.

22. The non-transitory machine-readable medium of claim 19 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on the IP address of the device making the access request.

23. The non-transitory machine-readable medium of claim 19 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a device identifier of the device making the access request.

24. The non-transitory machine-readable medium of claim 19 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a geographic location of the device making the access request.

25. The non-transitory machine-readable medium of claim 19 , wherein the length of the segment of the continuous rolling authentication code prompted for is variable and is determined based in part on a status of the server or network the device making the access request is using.

26. The non-transitory machine-readable medium of claim 19 , wherein the continuous rolling authentication code has a new character added every “n” seconds.

27. The non-transitory machine-readable medium of claim 26 , wherein the look back period “y” is calculated by multiplying the number of characters in the segment of continuous rolling authentication code received in response to the prompt for additional data by “n”.

Assignments (4)
SECURITY INTEREST Recorded Sep 6, 2023
From: BANDWIDTH INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 064807/0346 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2023
From: SILICON VALLEY BRIDGE BANK, N.A. (SUCCESSOR TO SILICON VALLEY BANK), AS AGENT
To: BANDWIDTH INC.
Reel/Frame 062993/0767 →
SECURITY INTEREST Recorded Jun 6, 2022
From: BANDWIDTH INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 060112/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2020
From: COVATI, ADAM; TURNER, BRYAN C
To: BANDWIDTH, INC.
Reel/Frame 051938/0201 →
Cited By (5)
US 12,289,310 US 12,323,526 US 12,386,930 US 12,537,688 US 12,719,668