Patent US4926476A successfully refreshed from Google Patents.
← Back to Patent Explorer
US4926476A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for secure execution of untrusted software

Assignee: General Dynamics Mission Systems Inc
•
Filing: 1989-02-03
•
Granted: 1990-05-15
•
Expires: 2009-02-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A CPU architecture guarantees that untrusted software will handle multi-level classified data in a secure manner. A single copy of untrusted software is granted simultaneous read and write access to multiple levels of classified data, with assurance that both the Bell-LaPadula simple security property and the *-property will be correctly enforced. This enforcement is accomplished without the severe constraints normally imposed by computers that do not incorporate this invention. The technique may also be used to enforce integrity policy constraints alone or in conjunction with security policy constraints (classifications). This method relies upon hardware comparison of sensitivity level tags (and/or integrity level tags) associated with data storage blocks. Software need not be examined before it is permitted to handle multi-level secure data because any attempted violation of a security policy (or an integrity policy) will cause a trap to the trusted operating system. Internal label registers are dynamically updated for permitted accesses by the untrusted software.

Inventors

  • 👤 Carlin R. Covey

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 23:48
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/60; G06F21/62; G06F21/6218; G06F21/64; G06F2211/00; G06F2211/009

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 168 words
In a processing system including a security kernel, a central processing unit (CPU), internal registers, a memory, and a memory management unit for controlling the access to storage blocks of said memory by a software process, said memory management unit comprising: page register means for indicating a location of each of said storage blocks of said memory; variable label register means corresponding to said internal registers of said CPU and corresponding to said page register means, said variable label register means providing first and second address inputs in response to an instruction execution by said software process; and label calculation means connected to said variable label register means, said label calculation means providing an output in response to said first and second address inputs of said variable label register, said output updating said variable label register means for an allowed access to said memory by said software process, and said output further trapping to said security kernel for a non-allowed access to said memory by said software process.
Claim 2
Dependent Claim 168 words
In a processing system including a security kernel, a central processing unit (CPU), internal registers, a memory, and a memory management unit for controlling the access to storage blocks of said memory by a software process, said memory management unit comprising: page register means for indicating a location of each of said storage blocks of said memory; variable label register means corresponding to said internal registers of said CPU and corresponding to said page register means, said variable label register means providing first and second address inputs in response to an instruction execution by said software process; and label calculation means connected to said variable label register means, said label calculation means providing an output in response to said first and second address inputs of said variable label register, said output updating said variable label register means for an allowed access to said memory by said software process, and said output further trapping to said security kernel for a non-allowed access to said memory by said software process.
Claim 3
Dependent Claim 20 words
A memory management unit as claimed in claim 1, said page register means including a plurality of page descriptor means.
Claim 4
Dependent Claim 50 words
A memory management unit as claimed in claim 2, said variable label register means including: first plurality of variable label register means corresponding one-to-one to a plurality of internal registers of said CPU; and second plurality of variable label register means corresponding one-to-one to said plurality of page descriptor means.
Claim 5
Dependent Claim 113 words
A memory management unit as claimed in claim 3, said label calculation means being connected to each of said first and second pluralities of variable label register means, said label calculation means operating in response to said first and second address inputs to produce said output for dynamically modifying one of said first and second plurality of variable label register means for an allowed access to said storage blocks by said software process, said label calculation means alternately operating in response to said first and second address inputs to produce said output for trapping to said security kernel for said non-allowed access to said storage blocks of said memory by said software process.
Claim 6
Dependent Claim 33 words
A memory management unit as claimed in claim 4, said label calculation means including random access memory (RAM) means operating in response to said first and second address inputs applied as an address.
Claim 7
Dependent Claim 18 words
A memory management unit as claimed in claim 4, said label calculation means including content addressable memory means.
Claim 8
Dependent Claim 17 words
A memory management unit as claimed in claim 4, said label calculation means including associative memory means.
Claim 9
Dependent Claim 17 words
A memory management unit as claimed in claim 4, said label calculation means including programmable logic means.
Claim 10
Dependent Claim 17 words
A memory management unit as claimed in claim 4, said label calculation means including gate array means.
Claim 11
Dependent Claim 149 words
In a processing system including a CPU, memory, a plurality of internal registers and a security kernel, a memory management method for controlling the access to storage blocks of said memory by software process, said memory management method comprising the steps of: setting a plurality of page registers corresponding to said storage blocks of said memory; initializing a plurality of variable label registers and a label memory; addressing said label memory with contents of at least one of said label registers in response to an instruction execution by said software process for access to said storage blocks; updating at least one of said label registers with a result status obtained in response to said contents of said label registers for an allowed access by said software process to said storage blocks; and trapping to said security kernel for a non-allowed accesses to said storage blocks by said software process.
Claim 12
Dependent Claim 149 words
In a processing system including a CPU, memory, a plurality of internal registers and a security kernel, a memory management method for controlling the access to storage blocks of said memory by software process, said memory management method comprising the steps of: setting a plurality of page registers corresponding to said storage blocks of said memory; initializing a plurality of variable label registers and a label memory; addressing said label memory with contents of at least one of said label registers in response to an instruction execution by said software process for access to said storage blocks; updating at least one of said label registers with a result status obtained in response to said contents of said label registers for an allowed access by said software process to said storage blocks; and trapping to said security kernel for a non-allowed accesses to said storage blocks by said software process.
Claim 13
Dependent Claim 61 words
A memory management method as claimed in claim 10, said step of initializing including the steps of: first initializing a plurality of said variable label registers corresponding to said plurality of page registers to predefined values; second initializing said plurality of variable label registers corresponding to said internal registers to predefined values; and third initialing said label memory to predefined values.
Claim 14
Dependent Claim 56 words
A memory management method as claimed in claim 11, said step of updating including the steps of: reading a contents from said label memory corresponding to said input variable label registers; and storing said contents into a particular one of said variable label registers for a permitted access to said storage blocks by said software process.
Claim 15
Dependent Claim 39 words
A memory management method as claimed in claim 12, where there is further included the step of iterating said steps of addressing, reading and storing a predetermined number of times corresponding to particular instructions executed of said software process.
Claim 16
Dependent Claim 41 words
A memory management method as claimed in claim 13, said step of trapping including the step of transferring control from said software process to said security kernel for the detection of an access to non-allowed storage blocks by said software process.
Claim 17
Dependent Claim 150 words
In a microprocessor CPU including internal registers, a security kernel and a memory management unit for providing controlled access to storage blocks memory by a software process, said memory management unit comprising: page register means for indicating the location of said storage blocks of memory; variable label register means corresponding to said page register means and to said internal registers, said variable label register means providing first and second address inputs in response to an instruction execution of said software process; and label calculation means connected to said variable label register means, said label calculation means providing an output in response to said first and second inputs of said variable label register means, said output updating said variable label register means for an allowed access to said memory by said software process, said output trapping to said security kernel for a non-allowed access to said memory by said software process.
Claim 18
Dependent Claim 150 words
In a microprocessor CPU including internal registers, a security kernel and a memory management unit for providing controlled access to storage blocks memory by a software process, said memory management unit comprising: page register means for indicating the location of said storage blocks of memory; variable label register means corresponding to said page register means and to said internal registers, said variable label register means providing first and second address inputs in response to an instruction execution of said software process; and label calculation means connected to said variable label register means, said label calculation means providing an output in response to said first and second inputs of said variable label register means, said output updating said variable label register means for an allowed access to said memory by said software process, said output trapping to said security kernel for a non-allowed access to said memory by said software process.
Claim 19
Dependent Claim 20 words
A memory management unit as claimed in claim 15, said page register means including a plurality of page descriptor means.
Claim 20
Dependent Claim 50 words
A memory management unit as claimed in claim 16, said variable label register means including: first plurality of variable label register means corresponding one-to-one to a plurality of internal registers of said CPU; and second plurality of variable label register means corresponding one-to-one to said plurality of page descriptor means.
Claim 21
Dependent Claim 113 words
A memory management unit as claimed in claim 17, said label calculation means being connected to each of said first and second pluralities of variable label register means, said label calculation means operating in response to said first and second address inputs to produce said output for dynamically modifying one of said first and second plurality of variable label register means for an allowed access to said storage blocks by said software process, said label calculation means alternately operating in response to said first and second address inputs to produce said output for trapping to said security kernel for said non-allowed access to said storage blocks of said memory by said software process.
Claim 22
Dependent Claim 33 words
A memory management unit as claimed in claim 18, said label calculation means including random access memory (RAM) means operating in response to said first and second address inputs applied as an address.
Claim 23
Dependent Claim 18 words
A memory management unit as claimed in claim 18, said label calculation means including content addressable memory means.
Claim 24
Dependent Claim 17 words
A memory management unit as claimed in claim 18, said label calculation means including associative memory means.
Claim 25
Dependent Claim 17 words
A memory management unit as claimed in claim 18, said label calculation means including programmable logic means.
Claim 26
Dependent Claim 17 words
A memory management unit as claimed in claim 18, said label calculation means including gate array means.

References Cited (Backward Citations)

US3245045A Cited
US3657699A Cited
US4120030A Cited
US4278837A Cited
US4319079A Cited
US4807288A Cited
US4685056A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1993-05-14 1993-11-13 1994-05-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1997-05-14 1997-11-13 1998-05-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2001-05-14 2001-11-13 2002-05-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag