Support for secure objects in a computer system
AssigneeInternational Business Machines Corporation
InventorRichard Harold Boivie
Life of this patent
Estimating the term…
Abstract
A method and structure in a computer system, including a mechanism supporting a Secure Object that includes code and data that is cryptographically protected from other software on the computer system.
Claims24
A processor in a computer system, said processor comprising a mechanism supporting a Secure Object that comprises information that is cryptographically protected so that other software on said computer system cannot access or undetectably tamper with said information, thereby protecting both a confidentiality and an integrity of the Secure Object information from other software while making an unencrypted form of the Secure Object information available to the Secure Object itself during execution of the Secure Object, wherein said mechanism comprises:
- a crypto engine that decrypts and integrity-checks Secure Object information as said Secure Object information moves into the processor from an external memory and encrypts and updates an integrity value for the Secure Object information as said Secure Object information moves out of the processor to the external memory;
- and
- a protected key storage area, that is not accessible by software, used to store keys used for decryption and integrity-checking of Secure Object information when this information is moved into said processor from said external memory and for encryption of Secure Object information and generation of an integrity value as said information is moved out of said processor back to said external memory;
- and
- a machine instruction included in said Secure Object that includes a handle that is not usable by other software, the machine instruction using said handle to load a crypto key into said key storage area used by said crypto engine for decrypting said Secure Object,
- wherein the processor generates a cryptographic integrity exception if said handle of said Secure Object is used by any other software.
A method of protecting private information on a computer, said method comprising providing a mechanism supporting a Secure Object comprising information that is cryptographically protected so that other software on said computer system cannot access or undetectably tamper with said information, thereby protecting both a confidentiality and an integrity of the Secure Object information from other software while making an unencrypted form of the Secure Object information available to the Secure Object itself during execution of the Secure Object, wherein said mechanism, performs the steps of:
- decrypting and integrity-checking Secure Object information as said Secure Object information moves into the processor from an external memory and encrypting and updating an integrity value for the Secure Object information as said Secure Object information moves out of the processor to the external memory;
- executing a machine instruction that is used by the Secure Object that uses a handle that is not usable by other software to load key information into said crypto engine that provides access to data of the Secure Object while the Secure Object is executing on said processor;
- and
- generating a CPU cryptographic integrity exception if the handle of a Secure Object is used by any other software.
A non-transitory storage medium storing one or more instructions executable on a processor within a system to perform a method of protecting private information on a computer, said method comprising providing a mechanism supporting a Secure Object comprising information that is cryptographically protected so that other software on said computer system cannot access or undetectably tamper with said information, thereby protecting both a confidentiality and an integrity of the Secure Object information from other software while making an unencrypted form of the Secure Object information available to the Secure Object itself during execution of the Secure Object, wherein said mechanism, performs the steps of:
- decrypting and integrity-checking Secure Object information as said Secure Object information moves into the processor from an external memory and encrypting and updating an integrity value for the Secure Object information as said Secure Object information moves out of the processor to the external memory;
- executing a machine instruction that is used by the Secure Object that uses a handle that is not usable by other software to load key information into said crypto engine that provides access to data of the Secure Object while the Secure Object is executing on said processor;
- and
- generating a CPU cryptographic integrity exception if the handle of a Secure Object is used by any other software.
A data structure tangibly embodied in a non-transitory machine-readable storage medium, said data structure comprising:
- a Secure Object comprising information that is cryptographically protected so that other software on said computer system cannot access or undetectably tamper with said information, thereby protecting both a confidentiality and an integrity of the Secure Object information from other software while making an unencrypted form of the Secure Object information available to the Secure Object itself during execution of the Secure Object, said Secure Object comprising:
- information for a machine instruction that loads key information into a crypto engine that provides access to the Secure Object information while the Secure Object is executing on a processor, such that the Secure Object information is decrypted and integrity-checked as said Secure Object information moves into the processor from an external memory and is encrypted and an integrity value for the Secure Object information is updated as said Secure Object information moves out of the processor to the external memory,
- a machine instruction included in said Secure Object that includes a handle that is not usable by other software, the machine instruction using said handle to load a crypto key into said crypto engine for decrypting said Secure Object information,
- wherein the processor generates a cryptographic integrity exception if said handle of said Secure Object is used by any other software.
A machine instruction implemented on a machine, said machine instruction comprising a mechanism supporting a Secure Object that comprises information that is cryptographically protected so that other software on said machine cannot access or undetectably tamper with said information, thereby protecting both a confidentiality and an integrity of the Secure Object information from other software while making an unencrypted form of the Secure Object information available to the Secure Object itself during execution of the Secure Object, said mechanism:
- decrypting and integrity-checking Secure Object information as said Secure Object information moves into the processor from an external memory;
- encrypting said Secure Object information and updating an integrity value for the Secure Object information as said Secure Object information moves out of the processor to the external memory;
- executing a machine instruction that is used by the Secure Object that uses a handle that is not usable by other software to load key information into said crypto engine that provides access to the Secure Object information while the Secure Object is executing on said processor;
- and
- generating a CPU cryptographic integrity exception if the handle of a Secure Object is used by any other software.
Dependencies are inferred from the claim text.