US7937586B2

Defending against denial of service attacks

Summary by NHIP

Dynamic Challenge-Based DDoS Defense

The method defends against denial of service attacks by adjusting challenge difficulty based on server processor utilization. It hides a variable number of key bits determined by busyness levels, requiring clients to perform memory-intensive stream cipher operations before granting web service access.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

In various embodiments, a server may be provided. The server may respond to a request for a service, from a processing device, with a challenge. The challenge may include a partial key for a memory-intensive operation, a number of iterations of the memory-intensive operation to perform, and a result of performing the number of iterations of the memory-intensive operation. Upon receiving the challenge, the processing device may choose a complete key consistent with the partial key and may produce a proposed result by performing the memory-intensive operation for the number of iterations. When the proposed result matches the result included in the challenge, the processing device may send a challenge answer, including the chosen complete key, to the server. Upon receiving a correct challenge answer from the processing device, the server may access the requested service and may return a result of the access to the processing device.

US7937586B2, drawing sheet 1
Sheet 1 of 7

Term

3.4 yearsleft in the term

Expires 5 February 2030, including 952 days of term adjustment.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

14 claims: 2 independent, 12 dependent

  1. 1
    Broadest claimClaim Score 59, broad(NHIP)A machine-implemented method for defending against a denial of service attack, the machine-implemented method comprising:receiving a request from a client for access to a web service;determining a level of busyness based on processor utilization after the receiving of the request from the client;determining a number of bits of a complete key to hide when forming a partial key based on the determined level of busyness;responding to the client with a challenge including the partial key for a memory intensive operation to be performed by the client;receiving a response to the challenge from the client;determining whether the response to the challenge includes a correct challenge answer;and returning to the client a result of accessing the web service when the response to the challenge is determined to include the correct challenge answer, wherein the machine-implemented method is implemented by a processing device.
  2. 8
    At least one server arranged to provide a service, each of the at least one server comprising:at least one processor;and a memory connected to the at least one processor, the memory further comprising: instructions for determining a level of busyness based on a utilization of the at least one processor, instructions for determining a number of bits of a complete key to hide when forming a partial key based on the determined level of busyness, instructions for creating and sending a challenge to a client in response to receiving a request from the client for access to the service, the challenge including the partial key for a stream cipher operation, a specified number of iterations with respect to the stream cipher operation, and a result of performing the stream cipher operation using the complete key for the specified number of iterations of the stream cipher operation, instructions for determining whether a challenge answer from the client, responsive to sending the challenge, includes the complete key, and instructions for permitting the access to the service and returning a result of the access to the client when the challenge answer from the client includes the complete key.