IP Library Granted Patent US 7,949,874
Granted Patent B2
US 7,949,874 · App. 11/529,141 · Granted May 24, 2011

Secure firmware execution environment for systems employing option read-only memories

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,949,874
App. No.
11/529,141
Granted
May 24, 2011
Kind
B2
Abstract

A method for providing a secure firmware operating environment includes detecting the presence of a new component, for example, a peripheral device. Next, a determination is made as to whether the peripheral device includes an option read-only memory. Next, a determination is made as to whether the option read-only memory is authorized to be executed on the corresponding device. If the option read-only memory is authorized, the code contained within the option read-only memory is executed. By only allowing execution of peripheral devices or components including authorized option read-only memories, security related breaches are substantially reduced or eliminated; thereby, enhancing device integrity.

Claims (44)

1. A method for providing a secure firmware operating environment, comprising:

upon detecting a new component coupled to a first device, determining whether the new component includes an option read only memory, wherein the option read only memory is a memory component that comprises operating code that may be called by the firmware of the first device, and wherein the operating code is associated with a different device than the first device;

determining whether code contained within the option read only memory is authorized to be executed;

upon determining that the code contained within the option read only memory is authorized to be executed, executing the code contained within the option read only memory; and

upon determining that the code contained within the option read only memory is not authorized to be executed, performing: (a) initially preventing the code contained within the option read only memory from being executed, (b) requesting permission, from a user, to add a hash value of the code to a list of authorized option read only memory images, and (c) upon receiving permission, from the user, to add the hash value to the list of authorized option read only memory images, executing the code contained within the option read only memory.

2. The method of claim 1 , wherein determining whether the new component includes an option read only memory comprises:

detecting a hardware interrupt, and

determining whether the hardware interrupt includes data indicating that the new component includes an option read only memory.

3. The method of claim 1 , wherein determining whether the new component includes an option read only memory comprises:

detecting a software interrupt, and

determining whether the software interrupt includes data indicating that the new component includes an option read only memory.

4. The method of claim 1 , wherein determining whether the option read only memory is authorized comprises:

performing a hash function on visible components of the detected option read only memory to generate a hash value, and

comparing the generated hash value with a list of approved hash values, where each approved hash value corresponds to an authorized option read only memory.

5. The method of claim 4 , wherein a system receives data indicating that the generated hash value should be added to the list of approved hash values.

6. The method of claim 5 , wherein the data indicating that the generated hash value should be added to the approved list is provided by a private key/public key exchange methodology.

7. The method of claim 5 , wherein the data indicating that the generated hash value should be added to the approved list is received from an end user.

8. The method of claim 5 , wherein the data indicating that the generated hash value should be added to the approved list is received from an external entity.

9. The method of claim 8 , wherein the external entity may be one of the following: a database connected to a trusted server and an option read only memory image provided by a smart token.

10. The method of claim 1 , further including the step of providing an indication that the option read only memory is not authorized.

11. An electronic device, comprising:

a processor;

an external connector; and

a memory, coupled to the processor, the memory maintaining instructions that when executed by the processor, cause the processor to:

upon detecting a new component coupled to the electronic device, determining whether the new component includes an option read only memory, wherein the option read only memory is a memory component that comprises operating code that may be called by the firmware of the electronic device, wherein the operating code is associated with a different device than the electronic device,

determining whether code contained within the option read only memory is authorized to be executed;

upon determining that the code contained within the option read only memory is authorized to be executed, executing the code contained within the option read only memory; and

upon determining that the code contained within the option read only memory is not authorized to be executed, performing: (a) initially preventing the code contained within the option read only memory from being executed, (b) requesting permission, from a user, to add a hash value of the code to a list of authorized option read only memory images, and (c) upon receiving permission, from the user, to add the hash value to the list of authorized option read only memory images, executing the code contained within the option read only memory.

12. The electronic device of claim 11 , where the memory further maintains instructions that when executed by the processor, cause the processor to provide an indication that the option read only memory is not authorized when either the new component or the option read only memory is not authorized to be executed on the electronic device.

13. The electronic device of claim 11 , wherein the processor detects a hardware component being connected to the external connector, and further determines whether the connected hardware has caused an interrupt which includes data indicating that the connected component includes an option read only memory.

14. The electronic device of claim 11 , wherein the memory maintains instructions, that when executed by the processor, cause the processor to detect a software interrupt, and further determining whether the software interrupt includes data indicating that a connected hardware component includes an option read only memory.

15. The electronic device of claim 11 , wherein the memory maintains instructions, that when executed by the processor, cause the processor to perform a hash function on visible components of the detected option read only memory, and comparing the generated hash value with a list of authorized values, where each authorized hash value corresponds to an authorized option read only memory.

16. The electronic device of claim 15 , wherein the memory maintains instructions, that when executed by the processor, cause the processor to receive data indicating that the generated hash value should be added to the list of authorized hash values.

17. The electronic device of claim 16 , wherein the memory contains a private key, and further maintains instructions that when executed by the processor cause the processor to add the generated hash value to the authorized list in response to the results of a private key/public key exchange methodology.

18. The electronic device of claim 16 , wherein the received data indicating that the generated hash value should be added to the authorized list is received from an end user.

19. The electronic device of claim 16 , wherein the received data indicating that the generated hash value should be added to the authorized list is received from an external entity.

20. A non-transitory computer readable medium maintaining code segments, that when executed by a processor, cause the processor to:

upon detecting a new component coupled to a first device comprising the computer readable medium, determining whether the new component includes an option read only memory, wherein the option read only memory is a memory component that comprises operating code that may be called by the firmware of the first device, wherein the operating code is associated with a different device than the first device;

determining whether the code contained within the option read only memory is authorized to be executed;

upon determining that the code contained within the option read only memory is authorized to be executed, executing the code contained within the option read only memory; and

upon determining that the code contained within the option read only memory is not authorized to be executed, performing: (a) initially preventing the code contained within the option read only memory from being executed, (b) requesting permission, from a user, to add a hash value of the code to a list of authorized option read only memory images, and (c) upon receiving permission, from the user, to add the hash value to the list of authorized option read only memory images, executing the code contained within the option read only memory.

21. The computer readable medium of claim 20 , further including code segments, that when executed by a processor, cause the processor to detect a hardware interrupt, and further determine whether the hardware interrupt includes data indicating that the detected hardware includes an option read only memory.

22. The computer readable medium of claim 20 , further including code segments, that when executed by a processor, cause the processor to detect a software interrupt, and further determine whether the software interrupt includes data indicating that the detected hardware includes an option read only memory.

23. The computer readable medium of claim 20 , wherein the code segments that provide for the authorization capability further include code segments, that when executed by a processor, further cause the processor to perform a hash function on visible components of the detected option read only memory to generate a hash value, and comparing the generated hash value with a list of authorized hash values, where each authorized hash value corresponds to an authorized option read only memory.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATES OF INVENTORS ON THE ABSTRACT OF TITLE PREVIOUSLY RECORDED ON REEL 018356 FRAME 0640. ASSIGNOR(S) HEREBY CONFIRMS THE EXECUTION OF TIMOTHY ANDREW LEWIS IS SEPTEMBER 26, 2006. EXECUTION OF TIMOTHY JOSEPH MARKEY IS SEPTEMBER 25, 2006.. Recorded Mar 28, 2013
From: LEWIS, TIMOTHY ANDREW; MARKEY, TIMOTHY JOSEPH
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 030107/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2013
From: HONG KONG TECHNOLOGIES GROUP LIMITED
To: INSYDE SOFTWARE CORPORATION
Reel/Frame 029672/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2012
From: KINGLITE HOLDINGS INC.
To: HONG KONG TECHNOLOGIES GROUP LIMITED
Reel/Frame 029489/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: PHOENIX TECHNOLOGIES LTD.
To: KINGLITE HOLDINGS INC.
Reel/Frame 029339/0716 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2012
From: MEP PLP, LLC
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029307/0590 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC
To: MEP PLP, LLC
Reel/Frame 029291/0354 →
GRANT OF SECURITY INTEREST - PATENTS Recorded Nov 24, 2010
From: PHOENIX TECHNOLOGIES LTD.
To: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC, AS COLLATERAL AGENT
Reel/Frame 025406/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2006
From: LEWIS, TIMOTHY ANDREW; MARKEY, TIMOTHY JOSEPH
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 018356/0640 →