Method and system for providing secure access to computer resources
First Claim
1. A method in a computer system for ensuring that a computer program has authorization to access a resource of the computer system, the resource having a unique resource key for indicating authority to access the resource, the method comprising the steps of:
- generating a resource data structure in main memory of the computer system, the resource data structure having a plurality of resource entries, each resource entry being referenced by a handle;
storing the resource key in an entry of the resource data structure;
providing to the computer program to enable the computer program to access the resource both the resource key and the handle referencing the entry of the resource data structure in which the resource key is stored;
receiving, from the computer program, a handle and a resource key; and
when the received resource key is stored in a resource entry that is referenced by the received handle, granting the computer program access to the resource.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for allowing processes to access resources. A kernel of an operating system maintains a system-wide resource table. This resource table contains resource entries. When a resource is allocated, the kernel generates a key for the resource. The key is a very large number so as to prevent a malicious process from gaining unauthorized access to the resource. The kernel also hashes the key to generate an index into the resource table that is used as a handle. The kernel stores the key in a resource entry that is indexed by the handle. The handle\key pair is sent to a process. The process accesses the resources by passing handle\key pairs to the kernel. The kernel compares the passed key with a key that is stored in the resource entry referenced by the passed handle. When the stored key and the passed key match, the process is allowed to access the resource. When the stored key and the passed key do not match, the kernel rehashes the passed key to generate a new handle. The kernel then searches starting at the index of the new handle for a resource entry with a key that matches the passed key. When a key matches the passed key, the process is allowed to access the resource, and the index for the resource entry is returned to the process so that the process can use the index as a handle to access the resource on subsequent resource access requests. When the passed key does not match a key, the process is denied access to the resource.
194 Citations
17 Claims
-
1. A method in a computer system for ensuring that a computer program has authorization to access a resource of the computer system, the resource having a unique resource key for indicating authority to access the resource, the method comprising the steps of:
-
generating a resource data structure in main memory of the computer system, the resource data structure having a plurality of resource entries, each resource entry being referenced by a handle; storing the resource key in an entry of the resource data structure; providing to the computer program to enable the computer program to access the resource both the resource key and the handle referencing the entry of the resource data structure in which the resource key is stored; receiving, from the computer program, a handle and a resource key; and when the received resource key is stored in a resource entry that is referenced by the received handle, granting the computer program access to the resource. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for providing secure access to resources of a computer system, the method comprising the steps of:
-
receiving, from an allocating process, a resource allocation request that specifies a resource; assigning a key to the resource; creating a handle for the assigned key; storing the assigned key in a resource entry of a resource data structure, the resource entry being referenced by the created handle; and sending the created handle and the assigned key to the allocating process so that the allocating process can access the resource by using the created handle to identify the resource and by using the assigned key to indicate authority to access the resource. - View Dependent Claims (7, 8, 9)
-
-
10. A method for providing secure access to resources of a computer system, the method comprising the steps of:
-
providing a resource data structure, the resource data structure having an initial size; and allocating a plurality of resources by generating a resource key for each resource whose possession by any program reflects the possessing program'"'"'s authorization to access the allocated resource, generating a handle for the resource key, storing the resource key in a resource entry of the resource data structure, the resource entry specified by the generated handle, and providing the resource key and handle for each resource to an allocating program to enable the allocating program to access a resource by supplying the resource key and the handle for the resource. - View Dependent Claims (11)
-
-
12. A method in a computer system for granting access to a resource of the computer system, the method comprising the steps of:
-
generating a key that uniquely identifies the resource, the key being generated to minimize likelihood that the key can be forged; generating a handle based on the key, the handle for identifying a resource entry that contains the key; and when access to the resource is requested by a requestor, receiving from the requestor a handle and the generated key;
using the received handle to identify a resource entry;when the identified resource entry contains the generated key, granting to the requestor access to the resource; and when the identified resource entry does not contain the generated key, generating a new handle for the generated key and granting to the requestor access to the resource when a resource entry identified by the new handle contains the key.
-
-
13. A method in a computer system for identifying a resource, the method comprising the steps of:
-
generating a handle\key pair, the key being generated as a non-forgeable identifier of the resource so that possessors of the generated key can use the key to indicate authority to access the resource, the handle being generated to identify a resource entry that identifies the resource, the resource entry containing the generated key; and when accessing the resource, receiving a handle\key pair; when the resource entry identified by the received handle contains a key that matches the received key, indicating that the resource has been identified; and when the resource entry identified by the received handle contains a key that does not match the received key, generating a new handle for the passed key; and when the resource entry identified by the new handle contains a key that matches the received key, indicating that the resource has been identified.
-
-
14. A computer-readable medium having contents that cause a computer system to ensure that a computer program has authorization to access a resource of the computer system, the resource having a unique resource key for indicating authority to access the resource by performing the steps of:
-
generating a resource data structure in main memory of the computer system, the resource data structure having a plurality of resource entries, each resource entry being referenced by a handle; storing the resource key in an entry of the resource data structure; providing to the computer program to enable the computer program to access the resource both the resource key and the handle referencing the entry of the resource data structure in which the resource key is stored; receiving, from the computer program, a handle and a resource key; and when the received resource key is stored in a resource entry that is referenced by the received handle, granting the computer program access to the resource. - View Dependent Claims (15, 16)
-
-
17. A computer-readable memory containing a resource access data structure adapted to ensuring that computer programs executing in a computer system have authorization to access resources of the computer system, the resource access data structure comprising a multiplicity of resource entries, at least a plurality of the multiplicity of resource entries:
-
corresponding to a particular resource; containing a non-forgeable key possessed by programs authorized to access the resource to which the resource entry corresponds; and being referenced by a handle possessed by at least a subset of programs authorized to access the resource to which the resource entry corresponds, such that a program can specify one of the multiplicity of resource entries with the handle that references the specified resource entry and can indicate authority to access the resource to which the specified resource entry corresponds with the non-forgeable key contained in the specified resource entry.
-
Specification