Patent ID: 7634655

Claim:
In a local server that receives data from one or more remote entities over a data transport protocol, a method of applying a cryptographically secure hash to packets from unverified remote entities for preventing denial of service attacks on lookup tables used to store state information for one or more remote entities, while maintaining the performance of the local server for packets from verified remote entities, the method comprising the acts of: receiving a packet of data from a remote entity that includes connection identifier information; hashing at least a portion of the connection identifier information using a first hash function to generate a first hash, the first hash identifying an entry in a first table of verified remote entities, the first table for storing remote entities that have a confirmed connection identifier; determining when state information for the remote entity exists at the entry in the first table of verified remote entities, and performing standard data transport protocol on the packet of data; and determining when state information for the remote entity does not exist in the first table of verified remote entities and performing the following: hashing at least a portion of the connection identifier information using a second hash function that is cryptographically secure to generate a second hash, the second hash function having a lower probability than the first hash function of generating an identical hash for connection identifier information from more than one remote entity, the second hash identifying a second entry in a second table of unverified remote entities, the second table for storing remote entities that do not have a confirmed connection identifier; determining when state information for the remote entity exists at the second entry in the second table of unverified remote entities, and comparing secret information received within the packet of data with other information which had been previously supplied to the remote entity by the local server for determining if the remote entity can be verified such that state information can be moved to the first table of verified remote entities; and determining when state information for the remote entity does not exist in the second table of unverified remote entities and checking whether the local server is a listener that may accept the packet of data from the remote entity for determining when the state information for the remote entity should be created in the second table of unverified remote entities.