IP Library Granted Patent US 7,467,304
Granted Patent B2
US 7,467,304 · App. 11/472,539 · Granted Dec 16, 2008

System, device, and method of selectively allowing a host processor to access host-executable code

Assignee: Discretix Technologies Ltd.
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,467,304
App. No.
11/472,539
Granted
Dec 16, 2008
Kind
B2
Abstract

Some demonstrative embodiments of the invention include a method, device and/or system of selectively allowing a host processor to access a host-executable code. A host apparatus may include, for example, a host processor; and a protected memory module comprising: a memory to maintain a host-executable code to be executed by the host processor; and a memory controller to authenticate the host-executable code, and to selectively allow the host processor to access the host-executable code based on an authenticity of the host-executable code. Other embodiments are described and claimed.

Claims (55)

1. A host apparatus comprising:

a host processor; and

a memory module, comprising:

a memory to maintain a host-executable code to be executed by said host processor; and

a security module comprising logic to authenticate said host-executable code and to selectively allow said host processor to access said host-executable code based on an authenticity of said host-executable code;

wherein said host-executable code is divided into at least two parts,

wherein said security module is adapted to verify the authenticity of said host-executable code,

wherein said host processor is adapted to execute the code of a first part of said at least two parts while the portion of said memory that is used to store said first part of host-executable code is protected by said security module from having its contents modified by said host processor at least during the period at which said security module verifies said first part of host-executable code,

wherein said verification is performable during a time period that is at least partially overlapping the time period at which said host processor executes said first part of said host executable code; and

wherein said code in said first part includes one or more instructions that disable said host processor from executing code of other parts in said memory but the said first part until said security module signals that all said host-executable code is authentic.

2. The host apparatus of claim 1 , wherein said security module is incorporated with said memory module on the same chipset.

3. The host apparatus of claim 1 , wherein said security module limits access of said host processor to contents of said memory if said host-executable code is found by said security module to be non-authentic.

4. The host apparatus of claim 1 , wherein:

said host-executable code contains update code that, when executed by said host processor, causes said host processor to change said host-executable code on said memory module;

said first part of said host-executable code contains one or more instructions that, when executed by said host processor, and when receiving an update signal from said security module, cause said host processor to execute said update code; and

said secure module indicates verified authenticity of said update code, by said update signal, to said host processor.

5. The apparatus of claim 1 , wherein only the first of said parts of host-executable code contains any instructions.

6. The apparatus of claim 5 wherein said security module is incorporated with said memory module on the same chipset.

7. The apparatus of claim 5 wherein said security module limits access of said host processor to contents of said memory, if said host-executable code is found by said security module to be non-authentic.

8. A host apparatus comprising:

a host processor;

a memory module comprising a memory to maintain a host-executable code to be executed by said host processor; and

a security module comprising logic to authenticate said host-executable code and to selectively allow said host processor to access said host-executable code based on an authenticity of said host-executable code,

wherein:

said host-executable code is adapted to contain update code that, when executed by said host processor, causes said host processor to change said host-executable code on said memory module, said update code is different from said host-executable code;

said security module to verify the authenticity of said host-executable code;

said security module to verify the authenticity of said update code;

said security module is adapted to send data to said host processor during the process of said verification, that causes said host processor to wait until said verification processes complete; and

if host-executable code was determined by said verification process to be non-authentic and said update code was determined by said verification process to be authentic, then said security module sends data to said host processor, wherein said data causes said host processor to execute said update code.

9. A method of selectively allowing a host processor to access a host-executable code, said method comprising:

storing host-executable code on a memory module;

allowing a security module to selectively allow a host processor to access said host-executable code, comprising:

dividing said host-executable code into at least two parts;

allowing said security module to verify the authenticity of said host-executable code;

allowing said security module to restrict access of said host processor to said first part of host-executable code to read-only access while authenticity of said first part of host-executable code is being verified by said security module;

allowing said host processor to execute at least a portion of the code of said first part during a time period that is at least partially overlapping the time period at which said security module carries out said verification; and

allowing said first part of host-executable code to contain one or more instructions that, when executed by said host processor, cause said host processor to not execute code of other parts but the said first part before said security module signals that all said host-executable code is authentic.

10. The method of claim 9 wherein said security module limits access of said host processor to contents of said memory, if said host-executable code is found by said security module to be non-authentic.

11. The method of claim 9 further comprising:

allowing host-executable code to contain update code that, when executed by said host processor, causes said host processor to change said host-executable code on said memory module;

allowing said first part of said host-executable code to contain one or more instructions that, when executed by said host processor and when an update signal from said security module is received, cause said host processor to execute said update code; and

allowing said secure module to indicate the verified authenticity of said update code, using said update signal, to said host processor.

12. The method of claim 9 , wherein only the first of said parts of host-executable code contains any instructions.

13. The method of claim 12 wherein said security module causes limitation to the functionality of said host processor, by limiting access of said host processor to contents of said memory if said host-executable code is found by said security module to be non-authentic.

14. A method of selectively allowing a host processor to access a host-executable code, said method comprising:

storing host-executable code on a memory module;

storing update code that, when executed by said host processor, causes said host processor to change said host-executable code on said memory module said update code is different from said host-executable code;

allowing said security module to selectively allow said host processor to access said host-executable code, comprising:

allowing said security module to verify the authenticity of said host-executable code;

allowing said security module to verify the authenticity of said update code;

allowing said security module to send data to said host processor, during said verification process wherein said data causing said host processor to wait until said verification process completes; and

allowing said security module to carry out a decision process once verification process completes,

wherein:

if said host-executable code was found by said verification process to be non-authentic and said update code was found by said verification process to be authentic, then said decision process results in allowing said security module to send data to said host processor wherein said data causes said host processor to execute said update code; and

if said host-executable code was found by said verification process to be authentic, then said decision process results in allowing said host processor to execute said host-executable code.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2017
From: ARM TECHNOLOGIES ISRAEL LIMITED
To: ARM LIMITED
Reel/Frame 043906/0343 →
CHANGE OF NAME Recorded Oct 4, 2015
From: DISCRETIX TECHNOLOGIES LTD.
To: ARM TECHNOLOGIES ISRAEL LTD.
Reel/Frame 036746/0538 →
RELEASE OF SECURITY INTEREST Recorded Aug 27, 2015
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DISCRETIX TECHNOLOGIES, LTD.
Reel/Frame 036440/0279 →
SECURITY INTEREST Recorded Jun 15, 2015
From: DISCRETIX TECHNOLOGIES LTD.; DISCRETIX INC.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035900/0768 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2007
From: BAR-EL, HAGAI; DEITCHER, DAVID; VOSCHINA, DAVID; WEISS, YOAV; RIPPEL, ERAN
To: DISCRETIX TECHNOLOGIES LTD.
Reel/Frame 018820/0355 →
Continuity (2)
Provisional Application 6069257500 · Jun 22, 2005
Related Publication 20060294513A1 · Dec 28, 2006