IP Library Granted Patent US 9,634,837
Granted Patent B1
US 9,634,837 · App. 15/211,731 · Granted Apr 25, 2017

Method and apparatus for causing a delay in processing requests for internet resources received from client devices

Inventors: Dane Orion Knecht (San Francisco, CA); John Graham-Cumming (London, GB)
Assignee: CLOUDFLARE, INC.
H04L9/12H04L61/1511H04L67/02
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 9,634,837
App. No.
15/211,731
Granted
Apr 25, 2017
Kind
B1
Abstract

A method and apparatus for causing a delay in processing requests for Internet resources received from client devices is described. A server receives from a client device a request for a resource. The server transmits a response to the first client device indicating that access to the resource is temporarily denied. The response includes a cryptographic token associated with the first request and a predetermined period of time during which the first client device is to wait prior to transmitting another request to access the resource. The server receives a second request for the resource, upon determining that the second request includes a valid cryptographic token, the server causes the second request to be processed. The server receives a third request for the resource, and upon determining that the third request does not include a valid cryptographic token, the server blocks the third request.

Claims (50)

1. A method of causing a delay in processing requests for resources received from client devices, the method comprising:

receiving, from a first client device, a first request for a resource;

transmitting a first response to the first client device indicating that access to the resource is temporarily denied, wherein the first response includes a cryptographic token associated with the first request and a predetermined period of time during which the first client device is to wait prior to transmitting another request to access the resource;

receiving from the first client device a second request for the resource;

in response to determining that the second request includes a valid cryptographic token, causing the second request to be processed;

receiving from a second client device a third request for the resource; and

in response to determining that the third request does not include the valid cryptographic token, blocking the third request.

2. The method of claim 1 , wherein transmitting the first response to the first client device is performed in response to determining that the resource is suspected to be under attack.

3. The method of claim 2 , wherein the first request includes first account information for securely accessing a user account, and wherein determining that the resource is suspected to be under attack includes at least in part determining that the first account information is invalid.

4. The method of claim 3 , wherein determining that the resource is suspected to be under attack further includes determining that an Internet Protocol (IP) address associated with the first client device is included in a blacklist.

5. The method of claim 3 , wherein determining that the resource is suspected to be under attack further includes that the first request follows one or more unsuccessful requests received from the first client device to access the resource indicating that the resource is under a brute force attack.

6. The method of claim 1 , wherein the method is performed in a proxy server and the resource is hosted at an origin server, and wherein to receive the first, the second and the third request is a result of a DNS request for a domain associated with the resource resolving to the proxy server instead of the origin server.

7. The method of claim 6 , wherein causing the second request to be processed includes:

transmitting the second request to the origin server; and

receiving a third response from the origin server to be transmitted to the first client device.

8. The method of claim 7 , further comprising transmitting the third response to the first client device only after a second predetermined period of time has elapsed.

9. A server comprising:

a non-transitory computer readable storage medium to store instructions; and

a processor coupled with the non-transitory computer readable storage medium to process the stored instructions to:

receive, from a first client device, a first request for a resource,

transmit a first response to the first client device indicating that access to the resource is temporarily denied, wherein the first response includes a cryptographic token associated with the first request and a predetermined period of time during which the first client device is to wait prior to transmitting another request to access the resource,

receive from the first client device a second request for the resource,

in response to determining that the second request includes a valid cryptographic token, cause the second request to be processed,

receive from a second client device a third request for the resource, and

in response to determining that the third request does not include the valid cryptographic token, block the third request.

10. The server of claim 9 , wherein to transmit the first response to the first client device is to be performed in response to determining that the resource is suspected to be under attack.

11. The server of claim 10 , wherein the first request includes first account information for securely accessing a user account, and wherein to determine that the resource is suspected to be under attack includes at least in part to determine that the first account information is invalid.

12. The server of claim 11 , wherein to determine that the resource is suspected to be under attack further includes to determine that an Internet Protocol (IP) address associated with the first client device is included in a blacklist.

13. The server of claim 11 , wherein to determine that the resource is suspected to be under attack further includes that the first request follows one or more unsuccessful requests received from the first client device to access the resource indicating that the resource is under a brute force attack.

14. The server of claim 9 , wherein the server is a proxy server and the resource is hosted at an origin server, and wherein to receive the first, the second and the third request is a result of a DNS request for a domain associated with the resource resolving to the proxy server instead of the origin server.

15. The server of claim 14 , wherein to cause the second request to be processed includes:

to transmit the second request to the origin server; and

to receive a third response from the origin server to be transmitted to the first client device.

16. The server of claim 15 , wherein the processor is further to transmit the third response to the first client device only after a second predetermined period of time has elapsed.

17. A non-transitory computer readable storage medium that provide instructions, which when executed by a processor of a server, cause said processor to perform operations comprising:

receiving, from a first client device, a first request for a resource;

transmitting a first response to the first client device indicating that access to the resource is temporarily denied, wherein the first response includes a cryptographic token associated with the first request and a predetermined period of time during which the first client device is to wait prior to transmitting another request to access the resource;

receiving from the first client device a second request for the resource;

in response to determining that the second request includes a valid cryptographic token, causing the second request to be processed;

receiving from a second client device a third request for the resource; and

in response to determining that the third request does not include the valid cryptographic token, blocking the third request.

18. The non-transitory computer readable storage medium of claim 17 , wherein transmitting the first response to the first client device is performed in response to determining that the resource is suspected to be under attack.

19. The non-transitory computer readable storage medium of claim 18 , wherein the first request includes first account information for securely accessing a user account, and wherein determining that the resource is suspected to be under attack includes at least in part determining that the first account information is invalid.

20. The non-transitory computer readable storage medium of claim 19 , wherein determining that the resource is suspected to be under attack further includes determining that an Internet Protocol (IP) address associated with the first client device is included in a blacklist.

21. The non-transitory computer readable storage medium of claim 19 , wherein determining that the resource is suspected to be under attack further includes that the first request follows one or more unsuccessful requests received from the first client device to access the resource indicating that the resource is under a brute force attack.

22. The non-transitory computer readable storage medium of claim 17 , wherein the server is a proxy server and the resource is hosted at an origin server, and wherein to receive the first, the second and the third request is a result of a DNS request for a domain associated with the resource resolving to the proxy server instead of the origin server.

23. The non-transitory computer readable storage medium of claim 22 , wherein causing the second request to be processed includes:

transmitting the second request to the origin server; and

receiving a third response from the origin server to be transmitted to the first client device.

24. The non-transitory computer readable storage medium of claim 23 , wherein the operations further include transmitting the third response to the first client device only after a second predetermined period of time has elapsed.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2016
From: KNECHT, DANE ORION; GRAHAM-CUMMING, JOHN
To: CLOUDFLARE, INC.
Reel/Frame 039170/0432 →
Continuity (1)
Continuation 15179516 · Jun 10, 2016