Shared names
First Claim
1. A method for facilitating a secured name space for an assembly employable by application programs during runtime, comprising the steps of:
- providing a key pair having a public key and a private key;
providing the assembly with a manifest that contains the public key;
hashing the assembly;
encrypting the hash of the assembly with the private key;
relating the encrypted hash to the assembly; and
referencing the assembly with a manifest of a referencing assembly that contains a token of the public key that is computed by a hash function, the assembly is referenced by comparing the token of the public key in the manifest of the referencing assembly with the public key contained in the manifest of the assembly.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method is provided for providing security to components or assemblies employed by application programs during runtime. The present invention employs digital signature keys to ensure that an assembly name that is published is unique because the assembly is published with a publisher'"'"'s public key. This prevents others from publishing an updated version of an assembly that claims to be published from the same publisher. The present invention guarantees name uniqueness and prevents name spoofing because the original publisher is the only one with the private key matching the public key related to a published assembly. Due to the fact that the public keys are stored in each reference, the caller can be assured that the assembly that the caller is binding to at runtime comes from the same publisher that owns the private key.
81 Citations
17 Claims
-
1. A method for facilitating a secured name space for an assembly employable by application programs during runtime, comprising the steps of:
-
providing a key pair having a public key and a private key; providing the assembly with a manifest that contains the public key; hashing the assembly; encrypting the hash of the assembly with the private key; relating the encrypted hash to the assembly; and referencing the assembly with a manifest of a referencing assembly that contains a token of the public key that is computed by a hash function, the assembly is referenced by comparing the token of the public key in the manifest of the referencing assembly with the public key contained in the manifest of the assembly. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer readable medium having at least one computer executable component employable by an application program at runtime comprising:
an assembly including a manifest that contains a public key and a hash of the contents of the assembly encrypted by a private key, the private key and the public key forming a key pair, the encrypted hash being referenced to the assembly, and a referencing assembly that references the assembly, the referencing assembly including a manifest that contains a token of the public key of the assembly, the assembly is referenced by comparing the public key contained in the manifest of the assembly with the token of the public key that is contained in the manifest of the referencing assembly. - View Dependent Claims (8)
-
9. A system for facilitating secured name spaces of assemblies employable by application programs at runtime, the system comprising:
-
a first component adapted to provide a manifest within an assembly with a public key; a second component adapted to hash the contents of the assembly and encrypt the hash with a private key matching the public key; a third component that uses a hash function to compute a token of the public key associated with the manifest, the token is contained in a manifest of a referencing assembly; and a fourth component that references the assembly by comparing the public key in the manifest of the assembly with the token of the public key that is contained in the manifest of the referencing assembly. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A system for facilitating a secured name space of an assembly employable by application programs at runtime, the system comprising:
-
means for providing a key pair having a public key and a private key; means for inserting a public key in a manifest of an assembly; means for hashing the assembly; means for encrypting the hash of the assembly with the private key; means for relating the encrypted hash to the assembly; means for hashing the public key; means for inserting a token of the public key into a manifest of a referencing assembly that references the assembly; and means for comparing the token of the public key in the manifest of the referencing assembly with the public key in the manifest of the assembly. - View Dependent Claims (15, 16, 17)
-
Specification