Method and system for providing tamper-resistant executable software
First Claim
1. A method for providing tamper-resistant software, comprising:
- receiving an executable file;
determining an initial hash value for the executable file;
encrypting the executable file based on the initial hash value;
inserting the initial hash value into the encrypted executable file;
determining an encrypted hash value for the encrypted executable file;
inserting the encrypted hash value into the encrypted executable file;
coupling a security file to the encrypted executable file for transport with the encrypted executable file;
transporting the encrypted executable file and the coupled security file to a remote location;
storing the encrypted executable file and the coupled security file at the remote location, wherein the security file is operable, while the encrypted executable filed is stored at the remote location, to;
extract the encrypted hash value from the encrypted executable file;
determine a storage hash value for the encrypted executable file;
compare the storage hash value to the encrypted hash value;
generate an alarm unless the storage hash value matches the encrypted hash value;
receiving a request to execute the encrypted executable file at the remote location; and
in response to receiving a request to execute the encrypted executable file at the remote location, executing the security file, wherein the security file is operable to;
extract the initial hash value from the encrypted executable file;
decrypt the encrypted executable file based on the initial hash value;
determine an execution-time hash value for the decrypted executable file;
compare the execution-time hash value to the initial hash value; and
prevent execution of the decrypted executable file unless the execution-time hash value matches the initial hash value.
1 Assignment
0 Petitions
Accused Products
Abstract
Tamper-resistant software is provided by determining an initial value of a specified property for an executable file. The executable file is then encrypted based on the initial value of the specified property. The initial value of the specified property is associated with the encrypted executable file and later used to decrypt the encrypted executable file. An execution-time value of the specified property is determined for the decrypted executable file. The execution-time value of the specified property is compared to the initial value of the specified property to determine whether tampering has occurred. The decrypted executable file is executed in response to the execution-time value of the specified property matching the initial value of the specified property.
-
Citations
5 Claims
-
1. A method for providing tamper-resistant software, comprising:
-
receiving an executable file;
determining an initial hash value for the executable file;
encrypting the executable file based on the initial hash value;
inserting the initial hash value into the encrypted executable file;
determining an encrypted hash value for the encrypted executable file;
inserting the encrypted hash value into the encrypted executable file;
coupling a security file to the encrypted executable file for transport with the encrypted executable file;
transporting the encrypted executable file and the coupled security file to a remote location;
storing the encrypted executable file and the coupled security file at the remote location, wherein the security file is operable, while the encrypted executable filed is stored at the remote location, to;
extract the encrypted hash value from the encrypted executable file;
determine a storage hash value for the encrypted executable file;
compare the storage hash value to the encrypted hash value;
generate an alarm unless the storage hash value matches the encrypted hash value;
receiving a request to execute the encrypted executable file at the remote location; and
in response to receiving a request to execute the encrypted executable file at the remote location, executing the security file, wherein the security file is operable to;
extract the initial hash value from the encrypted executable file;
decrypt the encrypted executable file based on the initial hash value;
determine an execution-time hash value for the decrypted executable file;
compare the execution-time hash value to the initial hash value; and
prevent execution of the decrypted executable file unless the execution-time hash value matches the initial hash value. - View Dependent Claims (2)
determine a post execution hash value for the executing executable file;
compare the post execution hash value to the initial hash value; and
terminate execution of the executing executable file unless the post execution hash value matches the initial hash value.
-
-
3. A system for providing tamper-resistant software, comprising:
-
an executable file encrypted based on an initial value of a specified property for the executable file and including an encrypted value of the specified property;
the initial value of the specified property stored within the encrypted executable file for transport with the encrypted executable file;
a security file operable to be executed in response to a request for execution of the executable file, to extract the initial value of the specified property from the encrypted executable file, to decrypt the encrypted executable file based on the initial value of the specified property, to determine an execution-time value of the specified property for the decrypted executable file, to compare the execution-time value of the specified property to the initial value of the specified property, and to prevent execution of the executable file unless the execution-time value matches the initial value, wherein the security file is coupled to the encrypted executable file for transport with the encrypted executable file to a remote location; and
the security file operable during storage of the encrypted executable file at the remote location to extract the encrypted value of the specified property, to determine a storage value of the specified property for the encrypted executable file, to compare the storage value of the specified property to the encrypted value of the specified property, and to generate an alarm unless the storage value matches the encrypted value. - View Dependent Claims (4, 5)
during execution of the decrypted executable file at the remote location, the security file operable to determine a post execution hash value for the executing executable file, to compare the post execution hash value to the initial hash value, and to terminate execution of the executing executable file unless the post execution hash value matches the initial hash value.
-
-
5. The system of claim 3, wherein the specified property is a hash of file length.
Specification