Trusting an unverified code image in a computing device
First Claim
Patent Images
1. A computer implemented method, comprising:
- verifying a code image in a device according to a key stored within a memory of the device, the key uniquely identifying the device;
executing, if the code image is successfully verified, the code image configuring the key including one of enabling and disabling the key according to a predetermined condition, wherein the code image is loaded from a provider to set up at least one component of an operating environment of the device, the provider satisfying the predetermined condition, the configuration of the key capable of preventing an application code image from compromising user data stored in a storage of the device, the user data including content associated with a user of the device, wherein the code image and the application code image are separate executable code images for the device, wherein the application code image is not verified for the device and wherein the application code image is capable of sending a request to access the user data;
loading, subsequent to the execution of the code image, the application code image into the device for execution without verifying the application code image according to the key; and
in response to the request from the execution of the application code image to access the user data, executing a secure code in the memory to determine whether the key is enabled to grant the request to access the user data according to the configuration of the key.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and an apparatus for configuring a key stored within a secure storage area (e.g., ROM) of a device including one of enabling and disabling the key according to a predetermined condition to execute a code image are described. The key may uniquely identify the device. The code image may be loaded from a provider satisfying a predetermined condition to set up at least one component of an operating environment of the device. Verification of the code image may be optional according to the configuration of the key. Secure execution of an unverified code image may be based on a configuration that disables the key.
46 Citations
25 Claims
-
1. A computer implemented method, comprising:
-
verifying a code image in a device according to a key stored within a memory of the device, the key uniquely identifying the device; executing, if the code image is successfully verified, the code image configuring the key including one of enabling and disabling the key according to a predetermined condition, wherein the code image is loaded from a provider to set up at least one component of an operating environment of the device, the provider satisfying the predetermined condition, the configuration of the key capable of preventing an application code image from compromising user data stored in a storage of the device, the user data including content associated with a user of the device, wherein the code image and the application code image are separate executable code images for the device, wherein the application code image is not verified for the device and wherein the application code image is capable of sending a request to access the user data; loading, subsequent to the execution of the code image, the application code image into the device for execution without verifying the application code image according to the key; and in response to the request from the execution of the application code image to access the user data, executing a secure code in the memory to determine whether the key is enabled to grant the request to access the user data according to the configuration of the key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A machine-readable non-transitory storage medium having instructions stored therein, which when executed by a machine, cause the machine to perform a method, the method comprising:
-
verifying a code image in a device according to a key stored within a memory of the device, the key uniquely identifying the device; executing, if the code image is successfully verified, the code image configuring the key including one of enabling and disabling the key according to a predetermined condition, wherein the code image is loaded from a provider to set up at least one component of an operating environment of the device, the provider satisfying the predetermined condition, the configuration of the key capable of preventing an application code image from compromising user data stored in a storage of the device, the user data including content associated with a user of the device, wherein the code image and the application code image are separate executable code images for the device, wherein the application code image is not verified for the device and wherein the application code image is capable of sending a request to access the user data; loading, subsequent to the execution of the code image, the application code image into the device for execution without verifying the application code image according to the key ; and in response to the request from the execution of the application code image to access the user data, executing a secure code in the memory to determine whether the key is enabled to grant the request to access the user data according to the configuration of the key. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. An apparatus, comprising:
-
means for verifying a code image in a device according to a key stored within a memory of the device, the key uniquely identifying the device; means for executing, if the code image is successfully verified, the code image configuring the key including one of enabling and disabling the key according to a predetermined condition, wherein the code image is from a provider satisfying the predetermined condition, the configuration of the key to prevent an application code image from compromising user data stored in a storage of the device, the user data including content associated with a user of the device, wherein the code image and the application code image are separate executable code images for the device, wherein the application code image is not verified for the device and wherein the application code image is capable of sending a request to access the user data; means for loading, subsequent to the execution of the code image, the application code image into the device for execution without verifying the application code image according to the key ; and means for executing, in response to the request from the execution of the application code image to access the user data, a secure code in the memory to determine whether the key is enabled to grant the request to access the user data according to the configuration of the key.
-
-
19. A computer implemented method, comprising:
-
executing a trusted code image to disable access to a key in a secure memory of a portable device, the trusted code image verified via a code stored in the secure memory and the key uniquely identifying the portable device, the access to the key being disabled to prevent user data stored in a storage of the portable device from being compromised by an executable image capable of sending a request to access the user data, the user data including content associated with a user of the portable device, wherein the trusted code image and the executable image are separate executable code images for the portable device; executing the executable image without verifying the executable image via the code stored in the secure memory and the key uniquely identifying the portable device, the executable image to send the request to access the user data, wherein the executable image is loaded into the portable device for execution subsequent to the execution of the trusted code image; in response to the request from the execution of the executable image, determining whether the key is enabled for the access, wherein the user data is not accessible for the request if the key is disabled for the access; and continuing executing the executable image without the executable image accessing the user data if the user data is determined to be not accessible.
-
-
20. A machine-readable non-transitory storage medium having instructions therein, which when executed by a machine, cause a machine to perform a method, the method comprising:
-
executing a trusted code image to disable access to a key in a secure memory of a portable device, the trusted code image verified via a code stored in the secure memory and the key uniquely identifying the portable device, the access to the key being disabled to prevent an executable image from compromising user data stored in a storage of the portable device, the user data including content associated with a user of the portable device, wherein the trusted code image and the executable image are separate executable code images for the portable device, wherein the executable image is capable of sending a request to access the user data; executing the executable image without verifying the executable image via the code stored in the secure memory and the key uniquely identifying the portable device, the executable image to send the request to access the user data, wherein the executable image is loaded into the portable device for execution subsequent to the execution of the trusted code image ; in response to the request from the execution of the executable image, determining whether the key is enabled for the access, wherein the user data is not accessible for the request if the key is disabled for the access; and continuing executing the executable image without the executable image accessing the user data if the user data is determined to be not accessible.
-
-
21. A computer implemented method, comprising:
-
configuring a key stored within a memory of a device via a verified code image, the configuring including one of enabling and disabling the key, the key uniquely identifying the device, wherein the verified code image was verified to be trusted for the device based on the key, the configuration of the key capable of preventing a code image from compromising user data stored in a storage of the device, the user data including content associated with a user of the device, wherein the code image is capable of sending a request to access the user data; loading the code image into the device for execution subsequent to the configuration without verifying if the code image is trusted for the device based on the key; executing the code image to call an application programming interface to send the request for the access of the user data via the key without verifying the code image; and in response to the request of the call, executing a secure code in the memory to determine whether the key is disabled to block the access to the user data.
-
-
22. A computer implemented method, comprising:
-
enabling or disabling a key stored within a memory of a device via a verified code image from a provider according to a condition, the key uniquely identifying the device and the provider satisfying the condition, the key capable of preventing a code image from compromising user data stored in a storage of the device, wherein the verified code image was verified to be trusted for the device based on the key, the user data including content associated with a user of the device, wherein the code image and the verified code image are separate executable code images for the device, wherein the code image is capable of sending a request to access the user data; loading the code image into the device for execution subsequent to the enabling or disabling of the key without verifying if the code image is trusted for the device based on the key; executing the code image calling an application programming interface to send the request for the access of the user data via the key; and in response to the request of the call, executing a secure code in the memory to determine whether the key is disabled to block the access to the user data by the request. - View Dependent Claims (23)
-
-
24. A computer implemented method, comprising:
-
updating a configuration of a key stored within a secure storage area of a device by executing a verified code image, the key uniquely identifying the device, the configuration of the key preventing a code image from compromising user data stored in a storage of the device, the user data including content associated with a user of the device, wherein the verified code image was verified to be trusted for the device based on the key, wherein the code image and the verified code image are separate executable code images for the device, wherein the code image is capable of sending a request to access the user data; loading the code image into the device for execution subsequent to the update of the configuration without verifying the code image based on the key via the verified code image, wherein the configuration is updated to enable or disable the key; executing the code image to activate an application program interface to send the request for the access to the user data via the key; and in response to the request, executing a secure code in the secure storage area to determine whether the key is enabled according to the updated configuration to block the access to the user data by the request. - View Dependent Claims (25)
-
Specification