US20180365421A9 - Multiple Hardware-Separated Computer Operating Systems within a Single Processor Computer System to Prevent Cross-Contamination between Systems - Google Patents

Multiple Hardware-Separated Computer Operating Systems within a Single Processor Computer System to Prevent Cross-Contamination between Systems Download PDF

Info

Publication number
US20180365421A9
US20180365421A9 US15/070,259 US201615070259A US2018365421A9 US 20180365421 A9 US20180365421 A9 US 20180365421A9 US 201615070259 A US201615070259 A US 201615070259A US 2018365421 A9 US2018365421 A9 US 2018365421A9
Authority
US
United States
Prior art keywords
computer system
monitor
operating system
computer
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US15/070,259
Other versions
US20180032733A1 (en
US10146940B2 (en
Inventor
Oleksii Surdu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inzero Technologies LLC
Original Assignee
GBS Laboratories LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GBS Laboratories LLC filed Critical GBS Laboratories LLC
Priority to US15/070,259 priority Critical patent/US10146940B2/en
Publication of US20180032733A1 publication Critical patent/US20180032733A1/en
Assigned to GBS LABORATORIES, LLC reassignment GBS LABORATORIES, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SURDU, OLEKSII
Application granted granted Critical
Publication of US10146940B2 publication Critical patent/US10146940B2/en
Publication of US20180365421A9 publication Critical patent/US20180365421A9/en
Assigned to INZERO TECHNOLOGIES, LLC reassignment INZERO TECHNOLOGIES, LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GBS LABORATORIES, LLC
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates generally to providing multiple computing environments in one physical endpoint computer; providing for hardware-enforced protection of accessing one such internal computing environment from another; and protecting an OS from malware that may be introduced in another OS in the same computer.
  • the end user's computer under existing data-separation art contains one set of resources employs some or all of a single set of computer resources (kernel, RAM, drivers, storage), and by doing so the compromised resource can be the conduit to complete computer infection and network access.
  • kernel resources for example, despite data separation via containers or sandboxes, in an endpoint computer share kernel resources.
  • the hypervisor-based host OS shares resources with guest OS's.
  • Profiling is easily compromised as well, by obtaining the rights to access different data segments.
  • these vulnerabilities are known collectively as “privilege escalation” (and virtual machine escape).
  • the present invention through hardware separated operating systems (HSOS's), advances the art to create absolute data separation between the created independent OS's to both prevent cross-contamination between OS's but as well, to do so without restricting typical, wide-ranging usability.
  • HSOS hardware separated operating systems
  • the embodiment provides for three OS's whereby (1) one OS is used for access to a locked-down, restricted network, (2) a second OS is used for general enterprise activity such as business research or receipt of emails from untrusted but seemingly legitimate sources (a method typically used in phishing attacks) and (3) a third OS purely for personal use.
  • the network data cannot be accessed even if the phishing exploit deceives the user into allowing access to all data in the second OS or third OS.
  • Ohta (Application 20080184274) describes a switch-source OS controller for switching from one OS to another.
  • Shimotono (Application 20010018717) describes a computer system with a plurality of operating systems, having an instruction for changing the current operating system, suspend control means, resume control means, and operating switching means.
  • Sun (Application 20080092145) discloses means for switching operating systems, including identifying a second OS to be active next, configuring a memory controller, and causing the second OS to become active.
  • Zhang (Application 20120246370) teaches interrupt processing to save the state of the current running OS and switching to a new OS corresponding to the interrupt.
  • Qu (Application 20120138685) describes a virtual machine monitor supporting a plurality of operating systems and switching OS access to the processor.
  • FIG. 1 illustrates a computer system with two OS's such as might be provided by virtual machines, a software scheduling and separation mechanism such as might be provided by a hypervisor or virtual machine monitor, and desired and undesirable accesses by the running OS.
  • the hypervisor provides memory and other resources for the various operating systems, provides access for the operating systems to the processor, slices processor time between running virtual machines and emulates dedicated computer hardware for each operating system. But because there is no separate hardware domain for the hypervisor, it is possible for rootkit malware, e.g., Blue Pill, to insert itself under the hypervisor. Consequently, Second OS 7 may be able to gain undesirable accesses 13 to the storage and memory of First OS 6 .
  • rootkit malware e.g., Blue Pill
  • ARM TrustZone, Intel VT-x, and AMD V technologies provide hardware-based protection mechanisms that hypervisors can use to protect against such threats. But because of mobile CPU limitations (performance and battery life) and requirements to virtualize all system hardware in order to have fully isolated virtual machines, mobile devices are not good candidates for virtualization.
  • the invention consists of an end point computer running one a single processor with multiple isolated and HSOS's and a trusted switching mechanism. At any time while the computer is active, one OS is executing and others are inactive and suspended. When a user initiates a switch from an active OS to a suspended OS, the trusted switching mechanism suspends the active OS, configures or resets its resources (kernel, drivers, storage and memory) so that they are invisible to all OS's, and resumes the previously suspended system where it was left off. This can be repeated as many times as desired by the user.
  • a security architecture such as TrustZone from ARM Ltd or other method to run a hardware-protected security monitor and a conventional OS at the same time on a single processor core.
  • the TrustZone monitor runs in a hardware protected domain called the “Secure World” while the OS runs in “Normal World”.
  • Secure World software can access Normal World memory, but Normal World memory is blocked by hardware mechanisms from accessing Secure World resources. Because the monitor runs in Secure World memory that cannot be accessed by any OS in Normal World, it cannot be modified or bypassed by an OS.
  • a user may switch from a first OS to a second OS by performing a configured action (for example, clicking or tapping on icon) or a hardware operation (e.g., a button pushing sequence).
  • This action initiates transfer control from the first OS to the monitor, which suspends the first OS cloaks the resources of the first operating system, resets hardware peripheral devices, uncloaks the resources the second operating system, and resumes the second operating system.
  • FIG. 1 illustrates prior art, a computer system with two OS's and having accesses from one system to another.
  • FIG. 2 illustrates a preferred embodiment of the invention, a first OS (running) and a second OS (suspended), and the first OS sending a suspend request to the monitor.
  • FIG. 3 is a block diagram of the processing performed by the monitor when it receives a request from an OS to suspend and switch operating systems.
  • FIG. 4 shows the first OS (suspended by the monitor) and the monitor performing activities to resume the second OS.
  • FIG. 1 illustrates a computer system with OS 6 and OS 7 . These OS's may run directly on hardware or on a software virtualization layer. In any event there must be an OS controller such as a Hypervisor 4 that permits only one OS to run at a time and provides protection for each operating system's resources. The OS's request resources such as RAM 1 , Storage 3 , or the processor by sending interrupts 5 to the Hypervisor 4 .
  • OS controller such as a Hypervisor 4 that permits only one OS to run at a time and provides protection for each operating system's resources.
  • the OS's request resources such as RAM 1 , Storage 3 , or the processor by sending interrupts 5 to the Hypervisor 4 .
  • an OS controller is a personal computer with firmware, such as BIOS, for selecting and booting one of a multiplicity of operating systems. Once an OS is booted, it has undesirable accesses 13 as well as desirable accesses 12 to the computer's resources, including the boot image and files of other operating systems, until the OS is shut down or the computer is turned off. Conventional OS's provide access to all the computer's resources and sufficiently privileged or authorized application software can access those resources.
  • a virtual machine (VM) Hypervisor also allows multiple OS's to run concurrently, for example, in a time-sliced manner.
  • the hypervisor virtualizes the physical hardware so each OS has access to its own subset of the computer's physical resources.
  • the hypervisor limits an operating system's access to the computer's resources. But without hardware constraints, such as a separate hardware domain for the hypervisor, these mechanisms are only as good as the hypervisor software.
  • the Blue Pill rootkit can install itself below the hypervisor and thus get all access to the computer.
  • Intel's Trusted Execution Technology provides a root of trust that can be used to verify checksums on system firmware, hypervisor code, and individual operating systems, but this is a complicated process that is best applied to servers and not to mobile devices. (Reference: Intel® Trusted Execution Technology white paper, James Greene, Intel Corporation).
  • FIG. 2 depicts a preferred embodiment of an inventive mobile device using TrustZone technology by ARM, Inc.
  • the ARM architecture provides a 32-bit Reduced Instruction Set Computing (RISC) architecture with low power requirements that make it the favorite for mobile devices such as tablets and smart phones.
  • RISC Reduced Instruction Set Computing
  • TrustZone is security technology for recent ARM processors that provides a separate Secure World 101 hardware environment for trusted processing that cannot be accessed by OS's running in the Normal World 102 .
  • TrustZone extends from the processor (via dedicated bus signals) to TrustZone—aware memory, peripheral and interrupt controllers. For example, an address space controller prevents access to areas of secure DRAM unless the processor is executing code in the Secure World 101 .
  • the Secure Configuration Register (SCR) contains a Non-secure (NS) bit to determine whether program execution is in the Normal or Secure worlds.
  • TrustZone provides a Secure Monitor Call (SMC) instruction and vectoring mechanism 105 for privileged (for example, Linux root) software in the Normal World 102 to switch execution to a Monitor 104 in the Secure World 101 .
  • SMC Secure Monitor Call
  • the Monitor is code that runs in the Secure World 101 and processes transitions for Normal World 102 software to and from the Secure World 101 .
  • the Monitor operates as an exception handler, saving the processor registers from the previous mode and restoring the registers for the new mode.
  • the Monitor also changes the NS bit to indicate the current world in which software is running.
  • Direct access by First OS 110 to Storage 103 is denied by configuration of the Central Security Unit (CSU) within the Monitor 104 .
  • CSU Central Security Unit
  • the OS In order for First OS 110 to access First OS Image 113 or First Data 114 , the OS must make a SMC call for read/write flash memory block operations.
  • the Monitor 104 grants the First OS 110 read-only access to First OS Image 113 and read/write access to the First Data 114 . Access to all other blocks of the Storage 103 is denied, including Second Data 124 and Second OS image 123 .
  • the First OS 110 may be configured and managed by an employer and identified as “Work”. As OS's are conventionally configured, the First OS 110 includes a First Kernel 111 that operates when the processor is executing in a privileged mode and a collection of First User Apps (Applications) 112 that perform functions for the present operator when the processor is executing in user mode. At this point the First OS 110 has full control of the processor and all hardware that can be accessed in the Normal World 102 .
  • the First OS 110 has a First OS Image 113 that was used to boot the First OS 110 and a range of flash memory blocks having one or more file systems used for storing First Data 114 , for example, OS configuration data, applications, and user data files.
  • the Second OS 120 (and potentially additional operating systems) are in a suspended state (enforced by hardware) and thus has no access to any resources used by the First OS 110 .
  • FIG. 3 is a block diagram of the processing performed by the Monitor 104 when the First OS 110 sends a Switch OS request 105 to the Monitor 104 .
  • the First OS is the OS requesting the switch and the Second OS is the OS that resumes processing after the switch. After a switch, the roles are of course reversed.
  • the switch from the First OS 110 to a suspended OS such as OS 120 is typically initiated by the user, for example, by a menu input or hand movement on the touch sensitive screen, but it may be appreciated that certain OS scripts or other programmed input may also switch OS's at particular times.
  • privileged software within the First OS 110 executes the SMC instruction 105 with a numeric immediate value (argument) specifically indicating the operating system's Switch OS request.
  • the SMC command switches the processor from the First OS 110 in Normal World 102 to the Monitor 104 in Secure World 101 and transfers the immediate value to the Monitor.
  • the trusted Monitor 104 is the only software required for switching from one OS to another while maintaining the security and integrity of both operating systems. It operates within the Secure World 101 as a synchronous library and does not require a separate Secure World OS or applications. As previously described, the Monitor conventionally operates as an exception handler for transitions to and from the Secure World, but the invention extends the concept of Monitor to also perform the OS switching function.
  • the Monitor 104 receives the OS request from the Present OS 110 .
  • the Monitor 104 functions at this phase as an exception handler, saving the state of the Normal world and restoring the state of the Secure World at the location to which it switches.
  • the Monitor 104 compares the SMC immediate value to the values of various functions supported by the Monitor.
  • the immediate value has a size of 16 bits, which allows the Monitor 104 to support various other conventional functions unrelated to switching operating systems, for example, performing a cryptographic operation with a key held within the Secure World 101 .
  • a request to switch OS's might have an immediate value of 255 while a request to cryptographically sign a buffer might have an immediate value of 8, and there may be other immediate values defined consistent with the functions provided by the Monitor 104 . If in step 203 the immediate value of the SMC exception indicates an OS switch request, then processing continues at step 210 . Otherwise processing continues at step 204 to identify the function to be performed by the Monitor 104 .
  • the Monitor 104 suspends the First OS 110 .
  • the Monitor calls the same suspend code that is used to cut unnecessary power to the device when it is not being used. (An OS may directly invoke this code during periods of inactivity by calling SMC with the immediate value assigned for suspending the operating system.)
  • the suspend mechanism saves the information needed to restore the state in RAM.
  • the suspend code called at step 210 when switching to a different OS shut down the wireless interface, display, and all other power-consuming devices that are not necessary to maintain the machine's state.
  • the Monitor 104 resets devices that are sequentially shared by all operating systems, including input/output buffers and control/status registers for network devices, the display, and virtual keyboards. This is done in order to prevent residual information from a First OS before a switch from being leaked to a different OS after the switch.
  • Block storage devices such as device flash memory are handled separately by allocating non-overlapping regions of memory to each operating system.
  • Step 220 begins the disclosure of relevant aspects of the OS switching mechanism as distinguished from the normal processing of the TrustZone Monitor.
  • the mobile device provides random access memory (RAM) for OS and program execution.
  • RAM random access memory
  • the system's RAM is pre-allocated to Secure World RAM 101 (e.g., Monitor 104 , boot code, cryptographic applications) and to Normal World RAM 102 for each of the various operating systems.
  • Secure World RAM 101 e.g., Monitor 104 , boot code, cryptographic applications
  • Normal World RAM 102 for each of the various operating systems.
  • a mobile device running TrustZone on an ARM CortexTM—A processor with appropriate bus hardware prevents access from Normal world software, that is, an executing operating system, to Secure World RAM 101 . This is how the Monitor is protected from access by an OS running in Normal world.
  • the Monitor 104 maps the RAM for the First OS 110 to Secure World RAM 101 . This prevents any other OS's running in Normal world RAM 102 from accessing the RAM for the First OS 110 .
  • Monitor 104 is running, all OS's are suspended, and the RAM for every OS is mapped to Secure World RAM 101 .
  • the Monitor 104 In order to protect suspended OS RAM, only one OS at a time may occupy Normal world RAM; the Monitor 104 must switch the remaining operating system(s) to Secure World.
  • the Monitor 104 internally reconfigures the Storage Access Table and makes the regions for First OS Image 113 and First Data 114 inaccessible. As described for FIG. 2 , accesses to Storage blocks are granted only through secure monitor calls to the Monitor 104 .
  • the Monitor 104 identifies the next operating system, i.e., Second OS 220 .
  • Second OS 220 the Monitor 104 will always switch from the active OS to the suspended operating system, but with more than two OS's installed it is necessary to provide a means for the Monitor 104 to resume the proper system.
  • a first preferred embodiment operates according to a round-robin convention in which the Monitor 104 resumes the next OS in accordance with the OS positions in an OS Table managed by the Monitor 104 .
  • the embodiment would resume the third OS in the table. If the user wishes to use the first operating system, the user may then make a second switch request and the embodiment will resume the first OS in the table.
  • a second embodiment provides a mechanism such as a menu on the screen for the user to explicitly select the subsequent operating system, which might then be encoded by the requesting OS and decoded by the Monitor 104 .
  • a mechanism such as a menu on the screen for the user to explicitly select the subsequent operating system, which might then be encoded by the requesting OS and decoded by the Monitor 104 .
  • an immediate value of 251 might indicate switching to the first operating system, 252 to the second operating system, and 253 to the third operating system.
  • the round-robin embodiment neatly addresses the use of two OS's without requiring an extra menu and as the time required to suspend an OS and resume the next OS is only a few seconds, the round-robin embodiment will be preferred in most cases.
  • the Monitor 104 maps the Secure World RAM for the Second OS 120 into the Normal world, so it can be accessed by the Second OS 120 when it is resumed.
  • the process for switching OS's is single-threaded, and so it is not possible for another OS to be resumed and have access to this memory.
  • the Monitor 104 is running, but the RAM is now ready for the Second OS 220 when it is resumed.
  • the Monitor 104 internally reconfigures the Storage Access Table and makes the regions for Second OS Image 123 and Second Data 124 accessible to the Second OS 120 . As described for FIG. 2 , accesses to Storage blocks are granted only through secure monitor calls to the Monitor 104 .
  • the Monitor 104 resumes operation of the Second OS 120 .
  • the Monitor makes a subroutine call to the same resume code that is used by an OS to resume operation when a user becomes active after being suspended. (An OS may directly invoke this resume mechanism by calling SMC with a different immediate value than the value used to switch operating systems.)
  • the resume call re-awakens the network, display, and other devices that were suspended.
  • Step 106 occurs as the last action when the Monitor 104 resumes the Second OS 120 .
  • the Monitor operates as an exception handler, and so must save the processor registers for the Secure World and restore the Normal world registers for the Second OS 120 .
  • Second OS 120 is resumed and running, and the First OS 110 (and any additional operating systems) are suspended.
  • FIG. 4 illustrates the new configuration with the Second OS 120 running after the Monitor 104 performs a resume 106 .
  • the memory for First OS 110 is configured in Secure World and cannot be accessed by the Second OS 120 . Further, the storage partition for the First OS 110 is unmapped and also cannot be accessed by the Second OS 120 .
  • the Monitor 104 has loaded all participating OS's prior to switching from one OS to another.
  • the Monitor loads the kernels for all systems and then boots one of the operating systems.
  • This strategy is not obvious but means that the Monitor 104 does not require bootstrap code and so the memory can be used for operating systems.
  • the additional time required to load a kernel for an OS is minimal, and mobile devices remain loaded for long periods of time, sleeping when unused, and resuming on demand.
  • the time required to switch from one OS to another is on the order of a few seconds, which is longer than a context switch for a virtual machine with multiple operating systems, but is much faster and therefore advantageous over other mechanisms for switching from one OS to another.
  • the code base for the Monitor 104 is minimized, which requires less memory and also is small enough to be verified by code analysis as to its trustworthiness.
  • the power consumption is very low when compared with a virtual memory system.
  • this design allows each OS to have all of the CPU cycles while it is running. There are limits to how many OS's can be installed, since physical memory and storage must be pre-allocated to each operating system.
  • First OS and “Second OS” are for purposes of describing the invention and are not meant to limit the invention to switching only from the First OS 110 (Work) to the Second OS 120 (Play) systems. Rather, the mechanisms for switching OS's while protecting the suspended systems are symmetrical and can be carried out in either direction. Further, mechanisms are consistent from the first cycle (First OS 110 to Second OS 120 back to First OS 110 ) through multiple cycles.
  • the present invention is elaborated as using TrustZone to provide a protected environment for a trusted monitor to execute, but the invention can also be practiced with other OS's and hardware architectures when they become available. It will be obvious to one skilled in the art that the invention may have usefulness and application to any computing device requiring a protected switching mechanism for switching among a multiplicity of OS's without the overhead of a virtual machine hypervisor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

Using a single processor, separate and independent hardware-enforced operating systems (OS's) are created in a computer, each OS inaccessible by another OS so that malware introduced in one OS cannot access and contaminate another. With a trusted switching mechanism, only one OS is active at any time yet switching between OS's occurs quickly by user action, without need to save open data and/or close the active OS, and/or reboot the inactive OS, yet on activation, the previously inactive OS resumes back where it was left off and no OS rebooting is required.

Description

    FIELD OF THE INVENTION
  • The present invention relates generally to providing multiple computing environments in one physical endpoint computer; providing for hardware-enforced protection of accessing one such internal computing environment from another; and protecting an OS from malware that may be introduced in another OS in the same computer.
  • BACKGROUND OF THE INVENTION
  • Computer manufacturers (OEMs) recognize the desirability and need to provide for “data separation” in computers, for a variety of reasons. Data separation is desirable for convenience and organization of data, differentiating privileges to access specific data, and preventing inadvertent contamination of data from infecting and compromising other data, among other purposes. As a result, for several years, numerous data-separation methods have been commercially introduced, chiefly in the form of downloadable applications onto a computer.
  • These include methods generally known as profiling, containerization, sandboxing, hypervisor-based virtualization, often characterized as “dual persona” to connote a meaningful separation between two data sets in an endpoint computer. Much of this methodology is directed to the growing popularity of “Bring Your Own Device” (BOYD) usage of various endpoint computers, tablets and smartphones by enterprise and government employees.
  • However, the combination of work-related and personal computing activity on the same computing device as, in turn, encouraged and spurred the growing scourge of organized, sophisticated cybercrime usually in the form of phishing exploit attacks, but others as well (such as keylogging) whereby the end user inadvertently allows malware to access the necessary data to effectively take over the endpoint computer, gain the necessary right to access the end user's network connections, and even obtain sufficient administrative privileges to compromise and steal massive network data. The existing art including the methods described above, do not assure prevention of these forms of attack. Regardless of method, the end user's computer under existing data-separation art contains one set of resources employs some or all of a single set of computer resources (kernel, RAM, drivers, storage), and by doing so the compromised resource can be the conduit to complete computer infection and network access. For example, despite data separation via containers or sandboxes, in an endpoint computer share kernel resources. Likewise, the hypervisor-based host OS shares resources with guest OS's. Profiling is easily compromised as well, by obtaining the rights to access different data segments. Typically, these vulnerabilities are known collectively as “privilege escalation” (and virtual machine escape).
  • The need to thwart privilege escalation vulnerability is well known and publicized. Examples of publications include: Numerous industry reports detail the inherent vulnerability and other flaws in these methods, e.g.: “How Mobile Malware Breaks Secure Containers”—Lacoon (July 2013); “Security Vulnerability Analysis in Virtualized Computing Environments”—International Journal of Intelligent Computing Research (March/June 2012); “New Virtualization Vulnerability Allows Escape To Hypervisor Attacks”—www.darkreading.com (June 2012); BlackBerry “file sharing authentication bypass vulnerabilities” and “escalation of privilege vulnerability”—www.blackberry.com (BSRT-2014-006)
  • In fact, reports of massive and costly data breach occurring long after the existing art was introduced indicates the need for an advanced data-separation method to thwart these successful attacks. Since 2013, massive attacks attributed to successful endpoint phishing that allowed the exploits to gain extensive enterprise and government network data, occurred at the U.S. Office of Personal Management, U.S. Department of Homeland Security, JPMorgan Chase, Target stores, the Home Depot, Anthem Healthcare, among numerous others. These share the common vulnerability that the access network was not “locked down”, as a true intranet whereby only authorized URL's were accessible, because to have done so, would have seriously hindered usability. Consequently, the successful attack gained sufficient user privileges to ultimately access the target enterprise network to cause harm that at times, has cost a victim over $250 million.
  • It is apparent that a method is desirable to provide absolute data-segment separation at the endpoint so that on the one hand, the appropriate network data can be locked down, while on the other hand, the use retains the flexibility not only to perform general employment functions in the same computer, but to engage in personal activity without threat that inadvertently, the user will introduce malware able to migrate to network access.
  • The present invention, through hardware separated operating systems (HSOS's), advances the art to create absolute data separation between the created independent OS's to both prevent cross-contamination between OS's but as well, to do so without restricting typical, wide-ranging usability.
  • In a preferred embodiment for combining use for business enterprise and personal activity where the enterprise data includes access to sensitive network data, the embodiment provides for three OS's whereby (1) one OS is used for access to a locked-down, restricted network, (2) a second OS is used for general enterprise activity such as business research or receipt of emails from untrusted but seemingly legitimate sources (a method typically used in phishing attacks) and (3) a third OS purely for personal use. In this embodiment, the network data cannot be accessed even if the phishing exploit deceives the user into allowing access to all data in the second OS or third OS.
  • RELATED ART
  • The following references identify related art regarding running multiple operating systems on a single processor core.
  • Ohta (Application 20080184274) describes a switch-source OS controller for switching from one OS to another.
    Shimotono (Application 20010018717) describes a computer system with a plurality of operating systems, having an instruction for changing the current operating system, suspend control means, resume control means, and operating switching means.
    Sun (Application 20080092145) discloses means for switching operating systems, including identifying a second OS to be active next, configuring a memory controller, and causing the second OS to become active.
    Zhang (Application 20120246370) teaches interrupt processing to save the state of the current running OS and switching to a new OS corresponding to the interrupt.
    Qu (Application 20120138685) describes a virtual machine monitor supporting a plurality of operating systems and switching OS access to the processor.
  • FIG. 1 (Prior Art) illustrates a computer system with two OS's such as might be provided by virtual machines, a software scheduling and separation mechanism such as might be provided by a hypervisor or virtual machine monitor, and desired and undesirable accesses by the running OS. The hypervisor provides memory and other resources for the various operating systems, provides access for the operating systems to the processor, slices processor time between running virtual machines and emulates dedicated computer hardware for each operating system. But because there is no separate hardware domain for the hypervisor, it is possible for rootkit malware, e.g., Blue Pill, to insert itself under the hypervisor. Consequently, Second OS 7 may be able to gain undesirable accesses 13 to the storage and memory of First OS 6.
  • ARM TrustZone, Intel VT-x, and AMD V technologies provide hardware-based protection mechanisms that hypervisors can use to protect against such threats. But because of mobile CPU limitations (performance and battery life) and requirements to virtualize all system hardware in order to have fully isolated virtual machines, mobile devices are not good candidates for virtualization.
  • It is thus desirable to provide for isolated OS's, as many as are desired, and a small and verifiable monitor without the overhead of full system virtualization, with its own hardware environment separate from the OS kernel and user spaces of the various OS's, to control the dispatching and separation mechanisms of the various OS's.
  • SUMMARY OF THE INVENTION
  • The invention consists of an end point computer running one a single processor with multiple isolated and HSOS's and a trusted switching mechanism. At any time while the computer is active, one OS is executing and others are inactive and suspended. When a user initiates a switch from an active OS to a suspended OS, the trusted switching mechanism suspends the active OS, configures or resets its resources (kernel, drivers, storage and memory) so that they are invisible to all OS's, and resumes the previously suspended system where it was left off. This can be repeated as many times as desired by the user.
  • To prevent malware attacks against the trusted switching mechanism, it is preferable to use a security architecture such as TrustZone from ARM Ltd or other method to run a hardware-protected security monitor and a conventional OS at the same time on a single processor core. The TrustZone monitor runs in a hardware protected domain called the “Secure World” while the OS runs in “Normal World”. Secure World software can access Normal World memory, but Normal World memory is blocked by hardware mechanisms from accessing Secure World resources. Because the monitor runs in Secure World memory that cannot be accessed by any OS in Normal World, it cannot be modified or bypassed by an OS.
  • A user may switch from a first OS to a second OS by performing a configured action (for example, clicking or tapping on icon) or a hardware operation (e.g., a button pushing sequence). This action initiates transfer control from the first OS to the monitor, which suspends the first OS cloaks the resources of the first operating system, resets hardware peripheral devices, uncloaks the resources the second operating system, and resumes the second operating system.
  • In a first instantiation, to simplify the switching process, all operating systems are started when the device boots and all but the desired OS are suspended. In another instantiation, the desired OS is booted and any remaining operating systems are booted only as they are required during the switching process.
  • These and other advantages of the present invention will be clarified and become apparent in the Detailed Description and corresponding Drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates prior art, a computer system with two OS's and having accesses from one system to another.
  • FIG. 2 illustrates a preferred embodiment of the invention, a first OS (running) and a second OS (suspended), and the first OS sending a suspend request to the monitor.
  • FIG. 3 is a block diagram of the processing performed by the monitor when it receives a request from an OS to suspend and switch operating systems.
  • FIG. 4 shows the first OS (suspended by the monitor) and the monitor performing activities to resume the second OS.
  • DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
  • This section describes various exemplary embodiments of the present invention with reference to the accompanying drawings. The detailed description of these exemplary embodiments and the corresponding drawings are intended to make it apparent to one of ordinary skill in the art how to construct these exemplary embodiments. Various modifications may become apparent to those skilled in the art, such as other types of security technology, processors, memories, programming techniques, or network protocols. Consequently, the invention is not limited to these exemplary embodiments because the same result may be accomplished with other technologies. And so it should be understood that the present invention is limited only by the scope of the appended claims.
  • FIG. 1 (Prior Art) illustrates a computer system with OS 6 and OS 7. These OS's may run directly on hardware or on a software virtualization layer. In any event there must be an OS controller such as a Hypervisor 4 that permits only one OS to run at a time and provides protection for each operating system's resources. The OS's request resources such as RAM 1, Storage 3, or the processor by sending interrupts 5 to the Hypervisor 4.
  • A limited example of an OS controller is a personal computer with firmware, such as BIOS, for selecting and booting one of a multiplicity of operating systems. Once an OS is booted, it has undesirable accesses 13 as well as desirable accesses 12 to the computer's resources, including the boot image and files of other operating systems, until the OS is shut down or the computer is turned off. Conventional OS's provide access to all the computer's resources and sufficiently privileged or authorized application software can access those resources.
  • A virtual machine (VM) Hypervisor also allows multiple OS's to run concurrently, for example, in a time-sliced manner. The hypervisor virtualizes the physical hardware so each OS has access to its own subset of the computer's physical resources. The hypervisor limits an operating system's access to the computer's resources. But without hardware constraints, such as a separate hardware domain for the hypervisor, these mechanisms are only as good as the hypervisor software. For example, the Blue Pill rootkit can install itself below the hypervisor and thus get all access to the computer. Intel's Trusted Execution Technology (TXT) provides a root of trust that can be used to verify checksums on system firmware, hypervisor code, and individual operating systems, but this is a complicated process that is best applied to servers and not to mobile devices. (Reference: Intel® Trusted Execution Technology white paper, James Greene, Intel Corporation).
  • What is needed is a hardware-enforced mechanism that can be configured by relatively simple and easily verified trusted firmware to constrain each OS to access only its own resources.
  • FIG. 2 depicts a preferred embodiment of an inventive mobile device using TrustZone technology by ARM, Inc. The ARM architecture provides a 32-bit Reduced Instruction Set Computing (RISC) architecture with low power requirements that make it the favorite for mobile devices such as tablets and smart phones.
  • TrustZone is security technology for recent ARM processors that provides a separate Secure World 101 hardware environment for trusted processing that cannot be accessed by OS's running in the Normal World 102. TrustZone extends from the processor (via dedicated bus signals) to TrustZone—aware memory, peripheral and interrupt controllers. For example, an address space controller prevents access to areas of secure DRAM unless the processor is executing code in the Secure World 101. The Secure Configuration Register (SCR) contains a Non-secure (NS) bit to determine whether program execution is in the Normal or Secure worlds.
  • TrustZone provides a Secure Monitor Call (SMC) instruction and vectoring mechanism 105 for privileged (for example, Linux root) software in the Normal World 102 to switch execution to a Monitor 104 in the Secure World 101. As defined by TrustZone, the Monitor is code that runs in the Secure World 101 and processes transitions for Normal World 102 software to and from the Secure World 101. When a transition occurs, the Monitor operates as an exception handler, saving the processor registers from the previous mode and restoring the registers for the new mode. The Monitor also changes the NS bit to indicate the current world in which software is running.
  • Direct access by First OS 110 to Storage 103 is denied by configuration of the Central Security Unit (CSU) within the Monitor 104. In order for First OS 110 to access First OS Image 113 or First Data 114, the OS must make a SMC call for read/write flash memory block operations. The Monitor 104 grants the First OS 110 read-only access to First OS Image 113 and read/write access to the First Data 114. Access to all other blocks of the Storage 103 is denied, including Second Data 124 and Second OS image 123.
  • In this example, the First OS 110 may be configured and managed by an employer and identified as “Work”. As OS's are conventionally configured, the First OS 110 includes a First Kernel 111 that operates when the processor is executing in a privileged mode and a collection of First User Apps (Applications) 112 that perform functions for the present operator when the processor is executing in user mode. At this point the First OS 110 has full control of the processor and all hardware that can be accessed in the Normal World 102. The First OS 110 has a First OS Image 113 that was used to boot the First OS 110 and a range of flash memory blocks having one or more file systems used for storing First Data 114, for example, OS configuration data, applications, and user data files.
  • The Second OS 120 (and potentially additional operating systems) are in a suspended state (enforced by hardware) and thus has no access to any resources used by the First OS 110.
  • FIG. 3 is a block diagram of the processing performed by the Monitor 104 when the First OS 110 sends a Switch OS request 105 to the Monitor 104. This continues with the example illustrated in FIG. 2 wherein, for purposes of identification, the First OS is the OS requesting the switch and the Second OS is the OS that resumes processing after the switch. After a switch, the roles are of course reversed.
  • The switch from the First OS 110 to a suspended OS such as OS 120 is typically initiated by the user, for example, by a menu input or hand movement on the touch sensitive screen, but it may be appreciated that certain OS scripts or other programmed input may also switch OS's at particular times.
  • Regardless of how the OS switch is initiated, privileged software within the First OS 110 executes the SMC instruction 105 with a numeric immediate value (argument) specifically indicating the operating system's Switch OS request. The SMC command switches the processor from the First OS 110 in Normal World 102 to the Monitor 104 in Secure World 101 and transfers the immediate value to the Monitor.
  • Aside from the First OS 110 making the Switch OS 105 request, the trusted Monitor 104 is the only software required for switching from one OS to another while maintaining the security and integrity of both operating systems. It operates within the Secure World 101 as a synchronous library and does not require a separate Secure World OS or applications. As previously described, the Monitor conventionally operates as an exception handler for transitions to and from the Secure World, but the invention extends the concept of Monitor to also perform the OS switching function.
  • At step 201 the Monitor 104 receives the OS request from the Present OS 110. The Monitor 104 functions at this phase as an exception handler, saving the state of the Normal world and restoring the state of the Secure World at the location to which it switches.
  • At step 203 the Monitor 104 compares the SMC immediate value to the values of various functions supported by the Monitor. The immediate value has a size of 16 bits, which allows the Monitor 104 to support various other conventional functions unrelated to switching operating systems, for example, performing a cryptographic operation with a key held within the Secure World 101. A request to switch OS's might have an immediate value of 255 while a request to cryptographically sign a buffer might have an immediate value of 8, and there may be other immediate values defined consistent with the functions provided by the Monitor 104. If in step 203 the immediate value of the SMC exception indicates an OS switch request, then processing continues at step 210. Otherwise processing continues at step 204 to identify the function to be performed by the Monitor 104.
  • At Step 210 the Monitor 104 suspends the First OS 110. The Monitor calls the same suspend code that is used to cut unnecessary power to the device when it is not being used. (An OS may directly invoke this code during periods of inactivity by calling SMC with the immediate value assigned for suspending the operating system.) When an OS is suspended, the suspend mechanism saves the information needed to restore the state in RAM. The suspend code called at step 210 when switching to a different OS shut down the wireless interface, display, and all other power-consuming devices that are not necessary to maintain the machine's state.
  • At step 211 the Monitor 104 resets devices that are sequentially shared by all operating systems, including input/output buffers and control/status registers for network devices, the display, and virtual keyboards. This is done in order to prevent residual information from a First OS before a switch from being leaked to a different OS after the switch. Block storage devices such as device flash memory are handled separately by allocating non-overlapping regions of memory to each operating system.
  • Step 220 begins the disclosure of relevant aspects of the OS switching mechanism as distinguished from the normal processing of the TrustZone Monitor.
  • The mobile device provides random access memory (RAM) for OS and program execution. The system's RAM is pre-allocated to Secure World RAM 101 (e.g., Monitor 104, boot code, cryptographic applications) and to Normal World RAM 102 for each of the various operating systems. A mobile device running TrustZone on an ARM Cortex™—A processor with appropriate bus hardware prevents access from Normal world software, that is, an executing operating system, to Secure World RAM 101. This is how the Monitor is protected from access by an OS running in Normal world.
  • In keeping with the request from the First OS 110 to suspend and switch to a different operating system, at step 220 the Monitor 104 maps the RAM for the First OS 110 to Secure World RAM 101. This prevents any other OS's running in Normal world RAM 102 from accessing the RAM for the First OS 110.
  • At this point only the Monitor 104 is running, all OS's are suspended, and the RAM for every OS is mapped to Secure World RAM 101. In order to protect suspended OS RAM, only one OS at a time may occupy Normal world RAM; the Monitor 104 must switch the remaining operating system(s) to Secure World.
  • At step 225 the Monitor 104 internally reconfigures the Storage Access Table and makes the regions for First OS Image 113 and First Data 114 inaccessible. As described for FIG. 2, accesses to Storage blocks are granted only through secure monitor calls to the Monitor 104.
  • At step 230 the Monitor 104 identifies the next operating system, i.e., Second OS 220. With only two OS's installed on the mobile device the Monitor 104 will always switch from the active OS to the suspended operating system, but with more than two OS's installed it is necessary to provide a means for the Monitor 104 to resume the proper system.
  • A first preferred embodiment operates according to a round-robin convention in which the Monitor 104 resumes the next OS in accordance with the OS positions in an OS Table managed by the Monitor 104.
  • For example, with three OS's installed and the second OS in the table making a switch request, the embodiment would resume the third OS in the table. If the user wishes to use the first operating system, the user may then make a second switch request and the embodiment will resume the first OS in the table.
  • A second embodiment provides a mechanism such as a menu on the screen for the user to explicitly select the subsequent operating system, which might then be encoded by the requesting OS and decoded by the Monitor 104. For example, with three operating systems, an immediate value of 251 might indicate switching to the first operating system, 252 to the second operating system, and 253 to the third operating system. However, as the round-robin embodiment neatly addresses the use of two OS's without requiring an extra menu and as the time required to suspend an OS and resume the next OS is only a few seconds, the round-robin embodiment will be preferred in most cases.
  • At step 231 the Monitor 104 maps the Secure World RAM for the Second OS 120 into the Normal world, so it can be accessed by the Second OS 120 when it is resumed. The process for switching OS's is single-threaded, and so it is not possible for another OS to be resumed and have access to this memory. At this point only the Monitor 104 is running, but the RAM is now ready for the Second OS 220 when it is resumed.
  • At step 235 the Monitor 104 internally reconfigures the Storage Access Table and makes the regions for Second OS Image 123 and Second Data 124 accessible to the Second OS 120. As described for FIG. 2, accesses to Storage blocks are granted only through secure monitor calls to the Monitor 104.
  • At Step 240 the Monitor 104 resumes operation of the Second OS 120. The Monitor makes a subroutine call to the same resume code that is used by an OS to resume operation when a user becomes active after being suspended. (An OS may directly invoke this resume mechanism by calling SMC with a different immediate value than the value used to switch operating systems.) The resume call re-awakens the network, display, and other devices that were suspended.
  • Step 106 occurs as the last action when the Monitor 104 resumes the Second OS 120. The Monitor operates as an exception handler, and so must save the processor registers for the Secure World and restore the Normal world registers for the Second OS 120.
  • At this point the Second OS 120 is resumed and running, and the First OS 110 (and any additional operating systems) are suspended.
  • FIG. 4 illustrates the new configuration with the Second OS 120 running after the Monitor 104 performs a resume 106. The memory for First OS 110 is configured in Secure World and cannot be accessed by the Second OS 120. Further, the storage partition for the First OS 110 is unmapped and also cannot be accessed by the Second OS 120.
  • In the preceding description, it is preferable that the Monitor 104 has loaded all participating OS's prior to switching from one OS to another. When the computer is powered up, the Monitor loads the kernels for all systems and then boots one of the operating systems. This strategy is not obvious but means that the Monitor 104 does not require bootstrap code and so the memory can be used for operating systems. The additional time required to load a kernel for an OS is minimal, and mobile devices remain loaded for long periods of time, sleeping when unused, and resuming on demand.
  • The time required to switch from one OS to another is on the order of a few seconds, which is longer than a context switch for a virtual machine with multiple operating systems, but is much faster and therefore advantageous over other mechanisms for switching from one OS to another. The code base for the Monitor 104 is minimized, which requires less memory and also is small enough to be verified by code analysis as to its trustworthiness. Finally, the power consumption is very low when compared with a virtual memory system. Finally, this design allows each OS to have all of the CPU cycles while it is running. There are limits to how many OS's can be installed, since physical memory and storage must be pre-allocated to each operating system.
  • It should be appreciated that the terms “First OS” and “Second OS” are for purposes of describing the invention and are not meant to limit the invention to switching only from the First OS 110 (Work) to the Second OS 120 (Play) systems. Rather, the mechanisms for switching OS's while protecting the suspended systems are symmetrical and can be carried out in either direction. Further, mechanisms are consistent from the first cycle (First OS 110 to Second OS 120 back to First OS 110) through multiple cycles.
  • The present invention is elaborated as using TrustZone to provide a protected environment for a trusted monitor to execute, but the invention can also be practiced with other OS's and hardware architectures when they become available. It will be obvious to one skilled in the art that the invention may have usefulness and application to any computing device requiring a protected switching mechanism for switching among a multiplicity of OS's without the overhead of a virtual machine hypervisor.
  • We claim the benefit of provisional application#62278157

Claims (17)

1. A method of switching and isolating a plurality of OS's on a computer system providing a separate hardware-protected domain for performing switching, but not having a virtual machine hypervisor, the method comprising:
Starting the plurality of OS's when the computer system boots, accepting a boot command to identify a first OS that will continue to run in an active state, and placing the remaining second OS's in a suspended state;
User initiating switch from the first OS to a second operating system;
Suspending the first operating system, assigning the first operating system's memory resources to secure status so the computer hardware will prevent the second OS from accessing the first operating system's memory resources, resetting internal devices, assigning the second operating system's memory resources to normal status, and returning control to the second OS so it will run with full access to the computer's resources;
Second OS resuming from the point of previous suspension.
2. The method of claim 1, further comprising suspending first OS by resetting or cutting power of internal computer system devices and putting CPU and RAM into a minimum power state just sufficient to retain its data.
3. The method of claim 1, wherein the computer system is a personal computer, laptop, mobile communication device, smartphone or tablet.
4. The method of claim 1, wherein the protected hardware domain is provided by TrustZone technology by ARM, Ltd.
5. The method of claim 1, wherein the protected hardware domain is provided by Intel Virtualization Technology (VT-x).
6. The method of claim 1, wherein the protected hardware domain is provided by AMD Virtualization Technology (AMD-V).
7. The method of claim 1, wherein the desired OS is booted and any remaining OS's are booted only as they are required during the switching process.
8. A computer system hosting multiple OS's temporally sharing a single processor such that one OS may be active at a time while the remaining OS's are suspended, the computer system comprising:
A monitor performing OS switching and protecting the memory and storage resources of suspended OS's from access by the active OS without using a virtual machine hypervisor;
The monitor loading the multiple OS's when the computer system is booted, accepting a boot command to identify a first OS that will continue to run, and suspending the remaining operating systems;
A means for the first OS to request the monitor to switch operating systems; Monitor suspending the first operating system, resetting internal devices, protecting the resources of the first operating system, identifying a second OS to be started, unprotecting the resources of the second operating system, and returning control to the second operating system;
Second OS resumes from the point of previous suspension.
9. The computer system of claim 8, wherein the request by the first OS to switch OS's is initiated by a user action.
10. The user action of claim 9, wherein request to switch OS's is made by a touch or hand motion on a touch sensitive screen.
11. The computer system of claim 8, wherein the request by the first OS to switch OS's is initiated automatically by a program within the first operating system.
12. The computer system of claim 8, wherein suspending first OS is performed by resetting or cutting power of internal computer system devices and putting CPU and RAM into a minimum power state just sufficient to retain its data.
13. The computer system of claim 8, wherein malware is prevented from spreading from one OS to another.
14. The computer system of claim 8, wherein the computer system may be a personal computer, laptop, mobile communication device, smartphone or tablet.
15. The computer system of claim 8, wherein selecting a second OS is done automatically by the monitor in a round-robin manner.
16. The computer system of claim 8, wherein selecting a second OS is done by user action.
17. The method of claim 16, wherein the desired OS is booted and any remaining OS's are booted only as they are required during the switching process.
US15/070,259 2016-01-13 2016-03-15 Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems Active US10146940B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/070,259 US10146940B2 (en) 2016-01-13 2016-03-15 Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662278157P 2016-01-13 2016-01-13
US15/070,259 US10146940B2 (en) 2016-01-13 2016-03-15 Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems

Publications (3)

Publication Number Publication Date
US20180032733A1 US20180032733A1 (en) 2018-02-01
US10146940B2 US10146940B2 (en) 2018-12-04
US20180365421A9 true US20180365421A9 (en) 2018-12-20

Family

ID=61009868

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/070,259 Active US10146940B2 (en) 2016-01-13 2016-03-15 Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems

Country Status (1)

Country Link
US (1) US10146940B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020198386A1 (en) * 2019-03-27 2020-10-01 Mcafee, Llc Methods and apparatus to protect closed and open operating systems in a computing environment
US20210182401A1 (en) * 2019-12-13 2021-06-17 Virtual Open Systems System platform initializer for mixed-critical systems

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010475B1 (en) * 2016-10-07 2021-05-18 Janus Technologies Inc. Secure computer with multiple operating systems
US11108741B2 (en) * 2017-02-12 2021-08-31 Noam Camiel System and method for the separation of systems that work together
GB2563881B (en) * 2017-06-28 2019-12-25 Advanced Risc Mach Ltd Realm execution context masking and saving
CN107707981B (en) * 2017-09-27 2020-10-30 晶晨半导体(上海)股份有限公司 Microcode signature safety management system and method based on Trustzone technology
US10417423B2 (en) 2017-10-13 2019-09-17 Gbs Laboratories, Llc TwinBoard mobile computing system
CN108155986A (en) * 2017-12-14 2018-06-12 晶晨半导体(上海)股份有限公司 A kind of key programming system and method based on credible performing environment
CN110321736A (en) * 2018-03-30 2019-10-11 厦门雅迅网络股份有限公司 Dual system hardware device sharing method and computer readable storage medium
DE102018132970A1 (en) * 2018-10-10 2020-04-16 Bayerische Motoren Werke Aktiengesellschaft Method and device for isolating sensitive, untrustworthy program code on mobile devices
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
CN109542524B (en) * 2018-11-22 2022-08-05 一铭软件股份有限公司 Linux and android mutual fast switching method
CN111327761B (en) * 2020-01-19 2022-04-26 深圳市智多互动科技有限公司 Method for operating virtual android system on android mobile phone
US11604674B2 (en) * 2020-09-04 2023-03-14 Elasticsearch B.V. Systems and methods for detecting and filtering function calls within processes for malware behavior

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256066A (en) 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> Computer system, switching system of operating system, mounting method of operating system, switching method of operating system, storage medium and program transmitter
US7356677B1 (en) * 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
US7950020B2 (en) 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
JP4342576B2 (en) 2006-07-25 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ Multiple operating system switching control device and computer system
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8171280B2 (en) * 2009-06-22 2012-05-01 Matthew Laue Method of running multiple operating systems on an X86-based computer system having a dedicated memory region configured as a do not use region
CN101782861A (en) 2009-12-24 2010-07-21 华为终端有限公司 Management method and device of operation systems in embedded system
US9010641B2 (en) 2010-12-07 2015-04-21 Hand Held Products, Inc. Multiple platform support system and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020198386A1 (en) * 2019-03-27 2020-10-01 Mcafee, Llc Methods and apparatus to protect closed and open operating systems in a computing environment
US11144345B2 (en) 2019-03-27 2021-10-12 Mcafee, Llc Methods and apparatus to protect open and closed operating systems
US20210182401A1 (en) * 2019-12-13 2021-06-17 Virtual Open Systems System platform initializer for mixed-critical systems
US11669620B2 (en) * 2019-12-13 2023-06-06 Virtual Open Systems System platform initializer for mixed-critical systems

Also Published As

Publication number Publication date
US20180032733A1 (en) 2018-02-01
US10146940B2 (en) 2018-12-04

Similar Documents

Publication Publication Date Title
US10146940B2 (en) Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems
US11200080B1 (en) Late load technique for deploying a virtualization layer underneath a running operating system
Lentz et al. Secloak: Arm trustzone-based mobile peripheral control
EP3281146B1 (en) Isolating guest code and data using multiple nested page tables
US9563457B2 (en) Enabling a secure environment through operating system switching
US9495540B2 (en) Method and system for monitoring calls to an application program interface (API) function
US7950020B2 (en) Secure operating system switching
US10360386B2 (en) Hardware enforcement of providing separate operating system environments for mobile devices
US9117080B2 (en) Process evaluation for malware detection in virtual machines
US10948967B2 (en) Mobile device virtualization solution based on bare-metal hypervisor with optimal resource usage and power consumption
US9009836B1 (en) Security architecture for virtual machines
JP6063941B2 (en) Virtual high privilege mode for system administration requests
US9633231B2 (en) Hardware-protective data processing systems and methods using an application executing in a secure domain
KR101920980B1 (en) Access isolation for multi-operating system devices
US8893306B2 (en) Resource management and security system
US9037823B2 (en) Protecting IAT/EAT hooks from rootkit attacks using new CPU assists
JP2016173821A (en) System and method for facilitating joint operation of multiple hypervisors in computer system
US9536084B1 (en) Systems and methods for delivering event-filtered introspection notifications
US9596261B1 (en) Systems and methods for delivering context-specific introspection notifications
WO2017112273A1 (en) Detecting data corruption by control flow interceptions
WO2014046974A2 (en) Case secure computer architecture
Schwarz et al. Affordable Separation on Embedded Platforms: Soft Reboot Enabled Virtualization on a Dual Mode System
US11989576B2 (en) Execution of code in system memory
Mallachiev et al. Protecting Applications from Highly Privileged Malware Using Bare-metal Hypervisor
Hu et al. Research on Hardware Built-in Computer Safety

Legal Events

Date Code Title Description
AS Assignment

Owner name: GBS LABORATORIES, LLC, VIRGINIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SURDU, OLEKSII;REEL/FRAME:045776/0882

Effective date: 20180511

FEPP Fee payment procedure

Free format text: PETITION RELATED TO MAINTENANCE FEES GRANTED (ORIGINAL EVENT CODE: PTGR); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: INZERO TECHNOLOGIES, LLC, VIRGINIA

Free format text: CHANGE OF NAME;ASSIGNOR:GBS LABORATORIES, LLC;REEL/FRAME:054555/0094

Effective date: 20191125

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4