IP Library Granted Patent US 7,197,639
Granted Patent B1
US 7,197,639 · App. 09/496,824 · Granted Mar 27, 2007

Cryptographic countermeasures against connection depletion attacks

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 7,197,639
App. No.
09/496,824
Granted
Mar 27, 2007
Kind
B1
Abstract

This invention relates to cryptographic communications methods and systems that protect a server from a connection depletion attack. Specifically, the invention presents a method for allocating a resource comprising the steps of receiving a resource allocation request from a client, imposing a computational task and a time limit for correct completion of the task upon the client, verifying that the task was performed correctly within the time limit, and allocating the resource if the task was correctly performed within the time limit.

Claims (78)

1. A method for allocating a resource, comprising the steps of:

(a) receiving a resource allocation request from a client;

(b) imposing on said client a computational task and a time limit for correct completion of said computational task;

(c) receiving verification that said client has correctly performed said computational task within said time limit; and

(d) allocating said resource for said client if the verification is received;

wherein said step (b) comprises communicating a puzzle as at least a portion of said communication task.

2. The method of claim 1 wherein said resource allocation request comprises a network connection request.

3. The method of claim 1 wherein said step (b) comprises communicating the output of a one-way function to said client.

4. The method of claim 1 wherein said step (b) comprises communicating the output of a block cipher to said client.

5. The method of claim 1 wherein said step (b) comprises communicating the output of a function, wherein the input of said function is generated, based at least in part on a server secret unknown to said client, and not revealed through correct performance of said computational task.

6. The method of claim 1 wherein said step (b) comprises communicating the output of a function, wherein the input of said function comprises a timestamp and information authenticating the timestamp.

7. The method of claim 1 wherein said step (b) comprises communicating a puzzle constructed in a self authenticating fashion.

8. The method of claim 1 wherein said step (b) comprises communicating a hash image and a partially revealed pre-image to said client.

9. The method of claim 8 wherein said step (c) comprises receiving the remaining pre-image.

10. The method of claim 1 wherein said step (b) comprises communicating a plurality of sub-puzzles to a client.

11. The method of claim 10 wherein said step (b) comprises communicating a plurality of independently constructed sub-puzzles.

12. The method of claim 10 wherein said step (b) comprises communicating a plurality of sub-puzzles wherein each sub-puzzle is constructed with an overlap of at least a portion of information that is common to two or more of the plurality of sub-puzzles.

13. The method of claim 1 wherein said step (a) comprises receiving a TCP SYN request.

14. The method of claim 1 wherein said step (a) comprises receiving a request to open an SSL connection.

15. The method of claim 1 wherein said step (b) comprises the steps of:

(ba) determining if a computational task is to be imposed upon said client based upon the operating circumstances at the time of receiving said resource allocation request from said client; and

(bb) if a computational task is determined to be imposed upon said client then selecting a computational task responsive to at least one characteristic of said operating circumstances at the time of receiving said resource allocation request; and

(bc) if a computational task is determined to be imposed upon said client then imposing the selected computational task on said client.

16. The method of claim 1 , wherein said step (a) comprises receiving a resource allocation request comprising a query, or accompanied or preceded by a query concerning whether a server is currently imposing computational tasks.

17. A method for procuring a resource comprising the steps of:

(a) communicating a resource allocation request to a server;

(b) receiving a computational task from said server;

(c) performing or delegating the performance of said computational task correctly within a known time limit; and

(d) communicating to said server a verification that said computational task has been performed correctly within the known time limit;

wherein said step (b) comprises receiving said computational task and a time limit for performance of said computational task from said server.

18. The method of claim 17 wherein said resource allocation request comprises a network connection request.

19. The method of claim 17 wherein said step (c) comprises solving a puzzle.

20. The method of claim 19 wherein said step (c) comprises a linear search of the solution space associated with said computational task.

21. The method of claim 17 wherein said step (c) comprises solving a plurality of sub-puzzles.

22. The method of claim 17 wherein said step (a) comprises transmitting a TCP SYN request.

23. The method of claim 17 wherein said step (a) comprises transmitting a request to open an SSL connection.

24. The method of claim 17 wherein said step (a) comprises transmitting a resource allocation request comprising a query, or accompanied or preceded by a query concerning whether a server is currently imposing computational tasks.

25. An apparatus for allocating a resource comprising:

a first receiver receiving a resource allocation request from a client;

a computational task generator for imposing a computational task upon said client for correct performance within a time limit; and

a transmitter communicating said computational task to said client;

a second receiver receiving a verification from said client that said computational task was correctly performed with said time limit; and an allocator allocating said resource for said client;

wherein said computational task comprises a puzzle.

26. The apparatus of claim 25 wherein said first receiver and said second receiver comprise the same receiver.

27. The apparatus of claim 25 wherein said first receiver receives a resource allocation request comprising a network connection request.

28. The apparatus of claim 25 wherein said transmitter communicates said computational task and a time limit for performance of said computational task to said client.

29. The apparatus of claim 25 wherein said puzzle comprises the output of a one-way function.

30. The apparatus of claim 25 wherein said puzzle comprises the output of a block cipher.

31. The apparatus of claim 25 wherein said puzzle comprises the output of a function, wherein the input of said function is based at least in part on a server secret unknown to said client and not revealed through correct performance of said computational task.

32. The apparatus of claim 25 wherein said puzzle comprises the output of a function, wherein the input of said function comprises a timestamp and information authenticating the timestamp.

33. The apparatus of claim 25 wherein said puzzle is constructed in a self authenticating fashion.

34. The apparatus of claim 25 wherein said puzzle comprises a hash image, and a partially revealed pre-image.

35. The apparatus of claim 34 wherein said verification comprises verifying the remaining unrevealed pre-image.

36. The apparatus of claim 25 wherein said puzzle comprises a plurality of sub-puzzles.

37. The apparatus of claim 36 wherein said plurality of sub-puzzles are constructed independently.

38. The apparatus of claim 36 wherein said plurality of sub-puzzles are constructed with an overlap of at least a portion of information that is common to two or more of the plurality of sub-puzzles.

39. The apparatus of claim 25 wherein said resource allocation request comprises a TCP SYN request.

40. The apparatus of claim 25 wherein said resource allocation request comprises a request to open an SSL connection.

41. The apparatus of claim 25 wherein said computational task is selected responsive to at least one characteristic of the operating circumstances at the time of receiving said resource allocation request.

42. The apparatus of claim 25 wherein said resource allocation request comprises a query, or is accompanied or preceded by a query concerning whether a server is currently imposing computational tasks.

43. The apparatus of claim 25 comprising a time limit generator generating a time limit within which said client must correctly perform said computational task.

44. An apparatus for procuring a resource comprising:

a first transmitter communicating a resource allocation request to a server;

a first receiver receiving a computational task from said server;

a computational task solver correctly performing said computational task within a known time limit; and

a second transmitter communicating to said server a verification that said computational task has been performed;

further comprising a second receiver receiving a time limit for performing said computational task.

45. The apparatus of claim 44 wherein said first transmitter and said second transmitter comprise the same transmitter.

46. The method of claim 44 wherein said first transmitter sends a resource allocation request comprising a network connection request.

47. The apparatus of claim 44 wherein said first receiver and said second receiver comprise the same receiver.

48. The apparatus of claim 44 wherein said computational task comprises a puzzle.

49. The apparatus of claim 44 wherein said computational task performs a linear search of potentially the entire solution space associated with said computational task.

50. The apparatus of claim 44 wherein said computational task comprises a plurality of sub-puzzles.

51. The apparatus of claim 50 wherein said sub-puzzles are constructed independently.

52. The apparatus of claim 50 wherein said sub-puzzles are constructed with an overlap of at least a portion of information that is common to two or more of the plurality of sub-puzzles.

53. The apparatus of claim 44 wherein said resource allocation request comprises a TCP SYN request.

54. The apparatus of claim 44 wherein said resource allocation request comprises a request to open an SSL connection.

55. The apparatus of claim 44 wherein said resource allocation request comprises a query, or is accompanied or preceded by a query concerning whether said server is currently imposing computational tasks.

Assignments (12)
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 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: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/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 →
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/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023825/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023824/0721 →