TW201818240A - 在豐富執行環境中安全地執行安全應用程式用的計算系統 - Google Patents

在豐富執行環境中安全地執行安全應用程式用的計算系統 Download PDF

Info

Publication number
TW201818240A
TW201818240A TW106129083A TW106129083A TW201818240A TW 201818240 A TW201818240 A TW 201818240A TW 106129083 A TW106129083 A TW 106129083A TW 106129083 A TW106129083 A TW 106129083A TW 201818240 A TW201818240 A TW 201818240A
Authority
TW
Taiwan
Prior art keywords
virtual machine
machine group
normal
access
privileged
Prior art date
Application number
TW106129083A
Other languages
English (en)
Other versions
TWI733890B (zh
Inventor
洪性珉
全宇衡
金榮奭
李晟在
趙銀玉
Original Assignee
南韓商三星電子股份有限公司
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 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201818240A publication Critical patent/TW201818240A/zh
Application granted granted Critical
Publication of TWI733890B publication Critical patent/TWI733890B/zh

Links

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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
    • 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
    • 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
    • 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]
    • 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
    • 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
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5061Partitioning or combining of resources
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

一種計算系統包括處理器,所述處理器運行多個虛擬機器,在所述多個虛擬機器中分別執行多個作業系統。所述處理器執行管理程式,所述管理程式將所述多個虛擬機器分組成正常虛擬機器群組及特權虛擬機器群組且控制由所述正常虛擬機器群組及所述特權虛擬機器群組請求進行的硬體存取。所述處理器在所述正常虛擬機器群組中執行正常應用程式,且在所述特權虛擬機器群組中執行安全應用程式。

Description

在開放執行環境中安全地執行安全應用程式用的計算系統
本發明概念的示例性實施例涉及計算系統,且更具體來說,涉及在豐富執行環境中安全地執行安全應用程式的計算系統。
為安全地執行安全應用程式,已開發出一種提供可信執行環境(trusted execution environment,TEE)的技術,例如先進精簡指令集機器信任區(Advanced RISC Machines TrustZone,ARM TrustZone)技術。在這種技術中,在豐富執行環境(rich execution environment,REE)或正常區域中執行正常應用程式,在與豐富執行環境或正常區域隔離的可信執行環境或安全區域中執行安全應用程式,且從而確保安全地執行安全應用程式。然而,在可信執行環境或安全區域中無法執行複雜的安全應用程式。
一些示例性實施例提供一種在豐富執行環境中安全地執行安全應用程式的計算系統。
根據示例性實施例,一種計算系統包括處理器。所述處理器運行多個虛擬機器,在所述多個虛擬機器中分別執行多個作業系統。所述處理器執行管理程式,所述管理程式將所述多個虛擬機器分組成正常虛擬機器群組及特權虛擬機器群組且控制由所述正常虛擬機器群組及所述特權虛擬機器群組請求進行的硬體存取。所述處理器在所述正常虛擬機器群組中執行正常應用程式且在所述特權虛擬機器群組中執行安全應用程式。
根據示例性實施例,一種計算系統包括處理器。所述處理器運行多個虛擬機器,在所述多個虛擬機器中分別執行多個作業系統。所述處理器執行管理程式,所述管理程式控制由所述多個虛擬機器請求進行的硬體存取。所述處理器在所述多個虛擬機器中的第一個虛擬機器中執行正常應用程式且在所述多個虛擬機器中的第二虛擬機器中執行安全應用程式。
根據示例性實施例,一種計算系統包括處理器且提供豐富執行環境(REE)及可信執行環境(TEE)。所述處理器運行多個虛擬機器,在所述多個虛擬機器中,在所述豐富執行環境中分別執行多個豐富作業系統,且在所述可信執行環境中執行安全作業系統。所述處理器在豐富執行環境中執行管理程式,所述管理程式將所述多個虛擬機器分組成正常虛擬機器群組及特權虛擬機器群組且控制由所述正常虛擬機器群組及所述特權虛擬機器群組請求進行的硬體存取。所述處理器在所述可信執行環境中執行第一安全應用程式,在所述豐富執行環境的所述正常虛擬機器群組中執行正常應用程式,以及在所述豐富執行環境的所述特權虛擬機器群組中執行第二安全應用程式,其中所述第二安全應用程式需要的資料輸送量大於所述可信執行環境中所述第一安全應用程式需要的資料輸送量。
如上所述,根據示例性實施例的計算系統可在正常虛擬機器群組中執行正常應用程式,可在特權虛擬機器群組中執行安全應用程式,且可阻擋來自正常虛擬機器群組的對被分配給特權虛擬機器群組的至少一個硬體資源的存取請求,從而在豐富執行環境中安全地執行安全應用程式。
另外,根據示例性實施例的計算系統可使用虛擬機器群組的中間物理位址作為記憶體裝置的物理位址而不進行位址轉換,從而減少虛擬化開銷(virtualization overhead)。
根據其他示例性實施例,一種系統包括:記憶體裝置,包括多個物理頁面;處理器;一個或多個主機裝置;以及一個或多個硬體防火牆,配置在所述一個或多個主機裝置與所述記憶體裝置之間,其中所述處理器被配置成:運行多個虛擬機器,在所述多個虛擬機器中分別執行多個作業系統;執行管理程式,所述管理程式控制由所述多個虛擬機器請求進行的硬體存取;在所述多個虛擬機器中的第一個虛擬機器中執行正常應用程式;以及在所述多個虛擬機器中的第二虛擬機器中執行安全應用程式;其中所述處理器及所述一個或多個主機裝置分別被配置成存取所述記憶體裝置中的資料。
圖1是用於描述根據示例性實施例的計算系統的軟體架構的方塊圖。
參照圖1,計算系統100包括硬體170,硬體170包括處理器。計算系統100(或計算系統100的處理器)可運行多個虛擬機器112、114、132及134,且可分別在所述多個虛擬機器112、114、132及134中執行多個作業系統122、124、142及144。計算系統100(或計算系統100的處理器)可執行管理程式150,管理程式150將所述多個虛擬機器112、114、132及134分組成正常虛擬機器群組110及特權虛擬機器群組130,且控制由正常虛擬機器群組110及特權虛擬機器群組130請求進行的硬體存取(或針對硬體170進行的存取)。
管理程式150可為在計算系統100中彼此同時地執行或運行所述多個作業系統122、124、142及144的軟體或邏輯平臺,且可被稱為虛擬機器監視器(virtual machine monitor,VMM)。管理程式150可將所述多個虛擬機器112、114、132及134分組成正常虛擬機器群組110及特權虛擬機器群組130。虛擬機器112、114、132及134中的每一個可被分類成正常虛擬機器群組110中的正常虛擬機器112及114或特權虛擬機器群組130中的特權虛擬機器132及134。也就是說,管理程式150可將正常虛擬機器群組110中的至少一個虛擬機器112及114作為正常虛擬機器112及114來進行管理,且可將特權虛擬機器群組130中的至少一個虛擬機器132及134作為特權虛擬機器132及134來進行管理。舉例來說,管理程式150可將計算系統100的硬體170的資源分類成僅能夠由正常虛擬機器112及114存取的硬體資源、僅能夠由特權虛擬機器132及134存取的硬體資源,及/或能夠由正常虛擬機器113及114以及特權虛擬機器132及134二者存取的硬體資源,且可對正常虛擬機器群組110(或正常虛擬機器112及114)以及特權虛擬機器群組130(或特權虛擬機器132及134)進行管理以使得虛擬機器112、114、132、及134中的每一個僅存取被允許存取的硬體資源。
為確保正常虛擬機器群組110與特權虛擬機器群組130之間隔離,管理程式150可對由正常虛擬機器群組110及特權虛擬機器群組130請求進行的對硬體170進行的存取進行控制。在一些示例性實施例中,管理程式150可選擇性地阻擋在正常虛擬機器群組110中產生的硬體存取請求(例如,利用圖4所示硬體防火牆400來進行阻擋)以使得被僅分配給特權虛擬機器群組130的至少一個硬體資源不被正常虛擬機器群組110存取。舉例來說,所述至少一個硬體資源可包括計算系統100中所包括的記憶體裝置的至少一個物理頁面。也就是說,管理程式150可選擇性地阻擋在正常虛擬機器群組110中產生的針對記憶體裝置的存取請求(例如,利用圖4所示硬體防火牆400來進行阻擋)以使得被僅分配給特權虛擬機器群組130的至少一個物理頁面不被正常虛擬機器群組110存取。然而,硬體資源可並非僅限於記憶體裝置的物理頁面,而是可為計算系統100中包括的任意硬體資源。
正常虛擬機器群組110中的至少一個正常虛擬機器112及114以及特權虛擬機器群組130中的至少一個特權虛擬機器132及134可為電腦系統的模擬形式,且可分別在虛擬機器112、114、132及134中執行所述多個作業系統122、124、142及144。所述多個作業系統122、124、142及144可為在豐富執行環境(REE)中執行的豐富作業系統。舉例來說,作業系統122、124、142及144中的每一個可為安卓作業系統(operating system,OS)、安卓可穿戴作業系統(Android Wear OS)、塞班作業系統(Symbian OS)、Windows作業系統、泰澤(Tizen)作業系統等。因此,其中執行豐富作業系統的正常虛擬機器112及114以及特權虛擬機器132及134能夠執行複雜的應用程式或重應用程式(heavy application)。然而,在一些示例性實施例中,與在正常虛擬機器112及114中執行的作業系統122及124相比,在特權虛擬機器132及134中執行的作業系統142及144可增強安全性。
計算系統100(或計算系統100的處理器)可在正常虛擬機器群組110中(或在正常虛擬機器群組110中的至少一個正常虛擬機器112及114中)執行一個或多個正常應用程式126及128,且可在特權虛擬機器群組130中(或在特權虛擬機器群組130中的至少一個特權虛擬機器132及134中)執行一個或多個安全應用程式146及148。由於當在正常虛擬機器群組110中產生存取請求時管理程式150會阻擋對被僅分配給特權虛擬機器群組130的至少一個硬體資源的存取請求(例如,利用圖4所示硬體防火牆400來進行阻擋),或者當在正常虛擬機器群組110中執行的正常應用程式126或128產生存取請求時,管理程式150阻擋對被僅分配給在特權虛擬機器群組130中執行的安全應用程式146及148的物理(記憶體)頁面的存取請求(例如,利用圖4所示硬體防火牆400來進行阻擋),因此可在其中運行豐富作業系統142及144的豐富執行環境中安全地執行安全應用程式146及148。
如上所述,根據示例性實施例的計算系統100可在正常虛擬機器群組110中執行正常應用程式126及128,可在特權虛擬機器群組130中執行安全應用程式146及148,且可阻擋來自正常虛擬機器群組110的對被分配給特權虛擬機器群組130的至少一個硬體資源的存取請求,從而在豐富執行環境中安全地執行安全應用程式146及148。
圖2是用於描述根據示例性實施例的計算系統的硬體架構的方塊圖,且圖3是用於描述根據示例性實施例的計算系統中的記憶體位址轉換的實例的圖。
參照圖2,計算系統200可包括處理器210、裝置220及230、記憶體裝置240、互連線250及硬體防火牆260及270。計算系統200可為需要執行安全應用程式的任意計算系統,例如智慧型電話、行動電話、平板電腦、膝上型電腦、個人電腦、MP3播放機、個人數位助手(personal digital assistants,PDA)、可擕式多媒體播放機(portable multimedia player,PMP)、數位電視、數位照相機、可擕式遊戲機等。
處理器210可控制計算系統200的總體運行。在一些示例性實施例中,處理器210可為中央處理器(central processing unit,CPU)、應用程式處理器(application processor,AP)、移動處理器等。在一些示例性實施例中,處理器210可執行包括至少一個正常虛擬機器的正常虛擬機器群組、包括至少一個特權虛擬機器的特權虛擬機器群組及管理程式。在一些示例性實施例中,處理器210可包括一級記憶體管理單元(stage-1 memory management unit,STG1 MMU)212及二級記憶體管理單元(stage-2 memory management unit,STG2 MMU)214。一級記憶體管理單元212可受控制於作業系統以第一特權等級或異常等級1(exception level-1,EL1)進行運行的,且二級記憶體管理單元214可受控制於管理程式以第二特權等級或異常等級2(exception level-2,EL2)進行運行,第二特權等級或異常等級2具有比特權等級或異常等級1高的特權。
裝置220及230可包括圖形處理器(graphics processing unit,GPU)及/或非圖形處理器230。舉例來說,非圖形處理器230可包括硬體加速器、顯示裝置、外部子系統等。在一些示例性實施例中,裝置220及230可分別包括一級記憶體管理單元222及232。
處理器210可經由互連線250連接到記憶體裝置240,且裝置220及230可經由硬體防火牆260及270以及互連線250連接到記憶體裝置240。記憶體裝置240可用作計算系統200的主記憶體。在一些示例性實施例中,記憶體裝置240可為揮發性記憶體裝置,例如動態隨機存取記憶體(dynamic random access memory,DRAM)裝置、靜態隨機存取記憶體(static random access memory,SRAM)裝置等。
處理器210及/或裝置220及230可作為輸出對於計算系統200中所包括的硬體(或從機)的存取請求的主機來運行。舉例來說,處理器210及/或裝置220及230可輸出在正常虛擬機器群組或特權虛擬機器群組中產生的對於記憶體裝置240的存取請求。在正常虛擬機器群組及特權虛擬機器群組中執行的作業系統可提供虛擬記憶體,且在正常虛擬機器群組或特權虛擬機器群組中產生的對於記憶體裝置240的存取請求可包括虛擬位址空間中的虛擬位址。另外,在正常虛擬機器群組及特權虛擬機器群組中執行的作業系統可分別管理中間物理位址空間,且包括虛擬位址的存取請求可通過由作業系統控制的一級記憶體管理單元212、222及232被轉換成包括中間物理位址空間中的中間物理位址的存取請求。
在運行多個虛擬機器的傳統計算系統中,所述多個虛擬機器管理不同的物理位址空間,且管理程式利用二級記憶體管理單元將不同的物理位址空間中的一個物理位址空間中的中間物理位址轉換成記憶體裝置的實際物理位址。在這種情形中,二級記憶體管理單元可使用儲存有轉換資訊的轉換旁路緩衝器(translation lookaside buffer,TLB)來快速地執行位址轉換。然而,在其中轉換旁路緩衝器中不存在所需要的轉換資訊的情形中,二級記憶體管理單元應存取記憶體裝置中所包括的頁面表,且因此可能無法快速地執行位址轉換。也就是說,傳統的計算系統在運行所述多個虛擬機器時具有虛擬化開銷。
然而,在根據示例性實施例的計算系統200中,正常虛擬機器群組(或正常虛擬機器)及特權虛擬機器群組(或特權虛擬機器)以與記憶體裝置240的實際物理位址空間相同的方式管理中間物理位址空間。因此,管理程式可使用中間物理位址作為記憶體裝置240的實際物理位址而不對中間物理位址進行位址轉換,且管理程式可控制二級記憶體管理單元214及硬體防火牆260及270來檢查每一個虛擬機器群組(或每一個虛擬機器)是否被允許存取記憶體裝置240的具有物理位址的物理頁面。舉例來說,管理程式可利用二級記憶體管理單元214對從處理器210輸出的存取請求執行存取允許檢查,可利用硬體防火牆260對從裝置220輸出的存取請求執行存取允許檢查,且可利用硬體防火牆270對從裝置230輸出的存取請求執行存取允許檢查。如上所述,根據示例性實施例的計算系統200的管理程式可使用中間物理位址作為記憶體裝置240的實際物理位址,而不對中間物理位址進行位址轉換,從而使虛擬化開銷最小化。
舉例來說,如圖3所示,在正常虛擬機器群組中所包括的每一個正常虛擬機器中執行的作業系統可提供具有第一虛擬位址空間310的虛擬記憶體,且在正常虛擬機器群組中(或在正常虛擬機器群組中所包括的每一個正常虛擬機器中)產生的對於記憶體裝置240的第一存取請求可包括第一虛擬位址空間310中的第一虛擬位址VA1。正常虛擬機器群組(或正常虛擬機器群組中所包括的每一個正常虛擬機器)的作業系統可控制一級記憶體管理單元212、222及232來將第一虛擬位址VA1轉換成第一中間物理位址空間330中的第一中間物理位址IPA1。另外,在特權虛擬機器群組中所包括的每一個特權虛擬機器中執行的作業系統可提供具有第二虛擬位址空間320的虛擬記憶體,且在特權虛擬機器群組中(或在特權虛擬機器群組中所包括的每一個特權虛擬機器中)產生的對於記憶體裝置240的第二存取請求可包括第二虛擬位址空間320中的第二虛擬位址VA2。特權虛擬機器群組(或特權虛擬機器群組中所包括的每一個特權虛擬機器)的作業系統可控制一級記憶體管理單元212、222及232來將第二虛擬位址VA2轉換成第二中間物理位址空間340中的第二中間物理位址IPA2。此處,正常虛擬機器群組的第一中間物理位址空間330及特權虛擬機器群組的第二中間物理位址空間340中的每一個可與記憶體裝置240的物理位址空間350相同。也就是說,可使用中間物理位址IPA1、IPA1-1及IPA2作為物理位址空間350中的物理位址PA1及PA2,而不進行轉換。
針對在正常虛擬機器群組中產生的包括第一中間物理位址IPA1的第一存取請求,可使用第一中間物理位址IPA1作為記憶體裝置240的物理位址空間350中的第一物理位址PA1,且管理程式可控制二級記憶體管理單元214或硬體防火牆260及270基於正常虛擬機器群組的對於記憶體裝置240的具有第一物理位址PA1的物理頁面的存取允許資訊來選擇性地阻擋第一存取請求。因此,管理程式可控制二級記憶體管理單元214或硬體防火牆260及270阻擋來自正常虛擬機器群組的包括與被分配給特權虛擬機器群組的記憶體裝置240的物理頁面對應的物理位址的存取請求。舉例來說,在正常虛擬機器群組中產生具有虛擬位址VA1-1的存取請求、且所述存取請求的虛擬位址VA1-1被轉換成與和被分配給特權虛擬機器群組的物理頁面對應的物理位址PA2相同的中間物理位址IPA1-1的情形中,可阻擋來自正常虛擬機器群組的包括中間物理位址IPA1-1或物理位址PA2的存取請求。因此,計算系統200可防止在特權虛擬機器群組中執行的安全應用程式的資料被洩露至正常虛擬機器群組。
另外,針對在特權虛擬機器群組中產生的包括第二中間物理位址IPA2的第二存取請求,可使用第二中間物理位址IPA2作為記憶體裝置240的物理位址空間350中的第二物理位址PA2,且管理程式可控制二級記憶體管理單元214或硬體防火牆260及270基於特權虛擬機器群組的對於記憶體裝置240的具有第二物理位址PA2的物理頁面的存取允許資訊來選擇性地阻擋第二存取請求。因此,管理程式可控制二級記憶體管理單元214或硬體防火牆260及270阻擋來自特權虛擬機器群組的包括與被分配給正常虛擬機器群組的記憶體裝置240的物理頁面對應的物理位址的存取請求。因此,計算系統200可防止在特權虛擬機器群組中執行的安全應用程式意外地或錯誤地將資料寫入到被分配給正常虛擬機器群組的記憶體裝置240的物理頁面中。
圖4是說明根據示例性實施例的計算系統中所包括的硬體防火牆的方塊圖,圖5A及圖5B是描述產生正常虛擬機器群組及特權虛擬機器群組的時間點的實例的圖,圖6A是說明圖4所示硬體防火牆中所包含的正常存取規則表的實例的圖,圖6B是說明圖4所示硬體防火牆中所包含的特權存取規則表的實例的圖,且圖6C是說明根據圖6A及圖6B中的存取規則表的實例由正常虛擬機器群組及特權虛擬機器群組存取的記憶體裝置的圖。
圖4所示硬體防火牆400可為在圖2中連接到裝置220的硬體防火牆260或者可為在圖2中連接到裝置230的硬體防火牆270。硬體防火牆400可被實作為圖2中的記憶體裝置240與用於輸出對於記憶體裝置240的存取請求REQ的主機(例如,圖2中的作為記憶體裝置240的主機運行的裝置220或230)之間的硬體(結構、裝置、模組、區塊、單元等)。硬體防火牆400可儲存正常虛擬機器群組的對於記憶體裝置的多個物理頁面中的各個物理頁面的正常存取允許資訊以及特權虛擬機器群組的對於記憶體裝置的所述多個物理頁面中的各個物理頁面的特權存取允許資訊。硬體防火牆400可基於以下中的至少一個來選擇性地阻擋存取請求REQ:正常存取允許資訊、特權存取允許資訊、以及存取請求REQ是在正常虛擬機器群組中產生還是在特權虛擬機器群組中產生。由於對存取請求REQ的選擇性阻擋是由被實作為硬體的硬體防火牆400來執行,因此與由軟體來管理存取請求REQ的計算系統相比,安全性可得到增強且可更快速地執行對存取請求REQ的管理及選擇性阻擋。硬體防火牆400可針對每一個物理頁面執行對存取請求REQ的選擇性阻擋,且因此可被稱為“逐頁防火牆(Per-Page-Fire-Wall,PPFW)”。
參照圖4,硬體防火牆400可包括程式化設計介面模組410、正常存取規則表430、特權存取規則表450及存取允許檢查器470。
程式化設計介面模組410可從管理程式接收命令,例如導通/關斷命令、對於正常存取允許資訊NAPI的寫入命令、對於特權存取允許資訊PAPI的寫入命令等。正常存取規則表430可儲存指示是否允許正常虛擬機器群組存取所述多個物理頁面中的各個物理頁面的正常存取允許資訊NAPI。特權存取規則表450可儲存指示是否允許特權虛擬機器群組存取所述多個物理頁面中的各個物理頁面的特權存取允許資訊PAPI。在一些示例性實施例中,特權存取規則表450可由用於特權虛擬機器群組的一個表來實作。在其他示例性實施例中,特權存取規則表450可由分別用於特權虛擬機器群組中的一個或多個特權虛擬機器的一個或多個表來實作。在這種情形中,硬體防火牆400可按照每一個特權虛擬機器來儲存特權存取允許資訊PAPI。正常存取規則表430可通過經由程式化設計介面模組410從管理程式接收正常存取允許資訊NAPI來產生,且特權存取規則表450可通過經由程式化設計介面模組410從管理程式接收特權存取允許資訊來產生。存取允許檢查器470可參照正常存取規則表430或特權存取規則表450來判斷存取請求REQ是否是針對被允許存取的物理頁面。存取允許檢查器470可在其中存取請求REQ是在正常虛擬機器群組中產生的情形中通過參照正常存取規則表430選擇性地阻擋存取請求REQ,且在存取請求REQ是在特權虛擬機器群組中產生的情形中通過參照特權存取規則表450來選擇性地阻擋存取請求REQ。
根據示例性實施例,正常存取規則表430及特權存取規則表450可以在各種時間點產生。在一些示例性實施例中,如圖5A所示,正常虛擬機器群組NVMG可在計算系統啟動時的時間點T1處產生,且特權虛擬機器群組PVMG可在正常虛擬機器群組NVMG運行的同時請求執行安全應用程式時的稍後的時間點T2處產生。另外,在一些示例性實施例中,正常存取規則表430及特權存取規則表450可在產生特權虛擬機器群組PVMG的時間點T2處通過程式化設計介面模組410產生。在其他示例性實施例中,正常存取規則表430可在產生正常虛擬機器群組NVMG時的時間點T1處產生,且特權存取規則表450可在產生特權虛擬機器群組PVMG時的時間點T2處產生。在這種情形中,在產生特權存取規則表450時的時間點T2處更新正常存取規則表430。在另一個示例性實施例中,如圖5B所示,在計算系統啟動時的時間點T1處,可產生正常虛擬機器群組NVMG及特權虛擬機器群組PVMG,且可產生正常存取規則表430及特權存取規則表450。
在一些示例性實施例中,如圖6A所示,正常存取規則表610可包括:所述多個物理頁面中的各個物理頁面的頁面索引PI;正常虛擬機器群組的讀取存取允許資訊RAPI,其指示是否允許正常虛擬機器群組從所述多個物理頁面中的所述各個物理頁面讀取資料;以及正常虛擬機器群組的寫入存取允許資訊WAPI,其指示是否允許正常虛擬機器群組將資料寫入到所述多個物理頁面中的所述各個物理頁面。在圖6A所示的實例中,正常存取規則表610指示:允許正常虛擬機器群組針對‘頁面X’進行讀取存取及寫入存取中的任一者;允許正常虛擬機器群組針對‘頁面Y’進行寫入存取而不允許進行讀取存取;以及不允許正常虛擬機器群組針對‘頁面Z’進行讀取存取及寫入存取中的任一者。
另外,如圖6B所示,特權存取規則表620可包括:所述多個物理頁面中的各個物理頁面的頁面索引PI;特權虛擬機器群組的讀取存取允許資訊RAPI,其指示是否允許特權虛擬機器群組從所述多個物理頁面中的各個物理頁面讀取資料;以及特權虛擬機器群組的寫入存取允許資訊WAPI,其指示是否允許特權虛擬機器群組將資料寫入到所述多個物理頁面中的各個物理頁面。在圖6B所示的實例中,特權存取規則表620指示:不允許特權虛擬機器群組針對‘頁面X’進行讀取存取及寫入存取中的任一者;不允許特權虛擬機器群組針對‘頁面Y’進行寫入存取而允許進行讀取存取;以及允許特權虛擬機器群組針對‘頁面Z’進行讀取存取及寫入存取中的任一者。
因此,如圖6C所示,在其中硬體防火牆400包括圖6A所示正常存取規則表610及圖6B所示特權存取規則表620的情形中,硬體防火牆400可不阻擋來自正常虛擬機器群組NVMG的對於‘頁面X’640的讀取存取及寫入存取請求以及對於‘頁面Y’650的寫入存取請求。然而,硬體防火牆400可阻擋來自正常虛擬機器群組NVMG的對於‘頁面Y’650的讀取存取請求以及對於‘頁面Z’660的讀取存取及寫入存取請求。另外,硬體防火牆400可不阻擋來自特權虛擬機器群組PVMG的對於‘頁面Y’650的讀取存取請求以及對於‘頁面Z’660的讀取存取及寫入存取請求。然而,硬體防火牆400可阻擋來自特權虛擬機器群組PVMG的對於‘頁面X’640的讀取存取及寫入存取請求以及對於‘頁面Y’650的寫入存取請求。然而,本發明概念可不僅限於圖6A至圖6C所示實例。舉例來說,儘管圖6B示出其中特權存取規則表620被實作為特權虛擬機器群組PVMG的一個表的實例,然而在其他示例性實施例中,特權存取規則表620可被實作為分別與特權虛擬機器群組PVMG中所包括的一個或多個特權虛擬機器對應的一個或多個表。
圖7是說明根據示例性實施例的計算系統的一部分的方塊圖,圖8是說明根據示例性實施例的計算系統中所包括的硬體特權產生器的方塊圖,且,圖9是說明圖8所示硬體特權產生器中所包括的上下文表的實例的圖。
參照圖7,計算系統700可包括多個主機710、720、730及740,所述多個主機710、720、730及740輸出對於從機(例如,記憶體裝置)的存取請求。舉例來說,多個主機710、720、730及740可對應於圖2所示至少一個裝置220及230。在一些示例性實施例中,各個主機710、720、730及740可具有不同的埠識別符(port identifications,PORT ID)。舉例來說,第一主機710可具有埠識別符‘0x0’,第二主機720可具有埠識別符‘0x1’,第三主機730可具有埠識別符‘0x2’,且第四主機740可具有埠識別符‘0x3’。
計算系統700可進一步包括在多個主機710、720、730、及740與硬體防火牆780之間被實作為硬體(結構、裝置、模組、區塊、單元等)的硬體特權產生器760。由於硬體特權產生器760被實作為硬體,因此安全性可得到增強且可快速地執行操作。當所述多個主機710、720、730及740中的一個輸出對於從機(例如,記憶體裝置)的存取請求時,可經由互連線750將存取請求傳遞至硬體特權產生器760。硬體特權產生器760可:經由互連線750從所述一個主機接收存取請求;在存取請求上附加指示所述存取請求是由正常虛擬機器群組產生還是由特權虛擬機器群組產生的特權資訊;以及輸出已附加有特權資訊的存取請求。
如圖8所示,為執行這一操作,硬體特權產生器760可包括程式化設計介面模組762、上下文表764及特權產生模組766。程式化設計介面模組762可從管理程式接收命令,例如導通/關斷命令、上下文寫入命令等。上下文表764可相依於主機輸出存取請求REQ來儲存存取請求REQ的操作模式。可經由程式化設計介面模組762將包括操作模式的上下文從管理程式寫入到上下文表764。特權產生模組766可通過參照上下文表764將特權資訊附加到存取請求REQ上,且可輸出已附加有特權資訊的存取請求REQ(包含特權資訊(privilege information,PI))。
在一些示例性實施例中,如圖9所示,上下文表764可包括:儲存在上下文表764中的至少一個上下文的上下文索引CI;匹配遮罩MM,用於對存取請求REQ中所包含的請求識別符(identification,ID)進行逐位掩蔽;匹配值MV,與已被執行逐位掩蔽的請求ID進行逐位匹配;以及包含與所述匹配值MV逐位匹配的請求識別符的存取請求REQ的操作模式OPMODE。
舉例來說,在一些示例性實施例中,一旦所述多個主機710、720、730、及740中的一個主機輸出存取請求REQ,互連線750便可將那一個主機的埠識別符附加到存取請求REQ的請求識別符的末尾來指示是所述多個主機710、720、730及740中的哪一個輸出存取請求REQ。因此,在圖7至圖9所示的實例中,由硬體特權產生器760接收的存取請求REQ的最後兩位可為輸出存取請求REQ的主機的埠識別符。圖9所示包括上下文表764的硬體特權產生器760經由互連線750從所述多個主機710、720、730及740中的所述一個主機接收到存取請求REQ,硬體特權產生器760便可利用匹配遮罩MM對存取請求REQ的請求識別符執行逐位掩蔽。在一些示例性實施例中,包括值為‘0x0’的匹配遮罩MM的上下文可為未啟動上下文或被禁用的上下文,且可不對這種上下文加以考慮(或者可不理會這種上下文)。另外,硬體特權產生器760可利用匹配值MV對與已被執行逐位掩蔽的請求識別符進行逐位匹配,且可搜索包括與請求識別符逐位匹配的匹配值MV的上下文。
在圖7至圖9所示實例中,從埠識別符為‘0x0’的第一主機710輸出的存取請求REQ與上下文索引CI為‘1’的上下文匹配,且硬體特權產生器760對來自第一主機710的存取請求REQ執行與為‘不覆蓋’的操作模式OPMODE對應的操作。在一些示例性實施例中,‘不覆蓋’可表示不在存取請求REQ上附加特權資訊。在這種情形中,第一主機710可通過在輸出存取請求REQ之前先將特權資訊附加到存取請求REQ上來輸出包含特權資訊的存取請求REQ,且硬體特權產生器760可根據為‘不覆蓋’的操作模式OPMODE而不對存取請求REQ執行具體操作。從埠識別符為‘0x1’的第二主機720輸出的存取請求REQ可不與上下文表764中的任意上下文匹配,且在這種情形中,硬體特權產生器760可對存取請求REQ執行默認操作。從埠識別符為‘0x2’的第三主機730輸出的存取請求REQ可與上下文索引CI為‘4’的上下文匹配,且硬體特權產生器760可對來自第三主機730的存取請求REQ執行與為‘覆蓋_正常’的操作模式OPMODE對應的操作。舉例來說,‘覆蓋_正常’可表示在存取請求REQ上附加指示正常虛擬機器群組的特權資訊。第三主機730可為受正常虛擬機器群組控制的主機,且硬體特權產生器760可根據為‘覆蓋_正常’的操作模式OPMODE來將指示正常虛擬機器群組的特權資訊附加到來自第三主機730的存取請求REQ上。從埠識別符為‘0x3’的第四主機740輸出的存取請求REQ可與上下文索引CI為‘3’的上下文匹配,且硬體特權產生器760可對來自第四主機740的存取請求REQ執行與為‘覆蓋_特權’的操作模式OPMODE對應的操作。舉例來說,‘覆蓋_特權’可表示在存取請求REQ上附加指示特權虛擬機器群組的特權資訊。第四主機740可為受特權虛擬機器群組控制的主機,且硬體特權產生器760可根據為‘覆蓋_特權’的操作模式OPMODE來將指示特權虛擬機器群組的特權資訊附加到來自第四主機740的存取請求REQ上。
已由硬體特權產生器760附加了特權資訊的存取請求REQ(包含特權資訊)中所包括的虛擬位址可通過一級記憶體管理單元770被轉換成中間物理位址(用作物理位址),且包括中間物理位址的存取請求REQ(包含特權資訊)可被提供至硬體防火牆780。硬體防火牆780可基於特權資訊而得知是正常虛擬機器群組還是特權虛擬機器群組產生存取請求REQ。硬體防火牆780當存取請求REQ是在正常虛擬機器群組中產生時通過參照正常存取規則表來選擇性地阻擋存取請求REQ,且當存取請求REQ是在特權虛擬機器群組中產生時通過參照特權存取規則表來選擇性地阻擋存取請求REQ。
圖10是說明根據示例性實施例的計算系統的一部分的方塊圖。
參照圖10,硬體防火牆950不僅如圖7所示位於多個主機710、720、730、及740與從機之間,而且也可位於一個主機910與一個從機930(例如,記憶體裝置或任意硬體資源)之間的一對一通訊聖壇處。主機910可輸出對於從機930的存取請求REQ。硬體防火牆950儲存主機910的對於從機930的存取允許資訊,且基於存取允許資訊選擇性地阻擋存取請求REQ。
圖11是用於描述根據示例性實施例的計算系統的軟體架構的方塊圖,圖12是說明根據示例性實施例的計算系統中所包括的硬體防火牆的方塊圖,且圖13是說明根據示例性實施例的計算系統中所包括的硬體特權產生器的上下文表的實例的圖。
參照圖11,在計算系統1000中,可運行多個虛擬機器1010、1020及1030,在所述多個虛擬機器1010、1020及1030中分別執行多個作業系統,且管理程式1050控制由所述多個虛擬機器1010、1020及1030請求進行的對硬體1070的存取。在計算系統1000中,在所述多個虛擬機器1010、1020及1030中的至少第一個虛擬機器中執行正常應用程式,在所述多個虛擬機器1010、1020、1030中的至少第二個虛擬機器中執行安全應用程式,且當在所述多個虛擬機器1010、1020及1030中的第一個虛擬機器中產生存取請求時阻擋對於被分配給所述多個虛擬機器1010、1020及1030中的第二個虛擬機器的至少一個硬體資源(例如,物理記憶體頁面)的存取請求。為實現這種阻擋,計算系統1000可包括圖12所示硬體防火牆1100,硬體防火牆1100位於輸出存取請求的主機與對應的從機(例如,記憶體裝置)之間。
參照圖12,硬體防火牆1100可包括程式化設計介面模組1110、分別與所述多個虛擬機器1010、1020、及1030對應的多個存取規則表(access rule table,ART)1130、1140、及1150、以及存取允許檢查器1170。硬體防火牆1100可具有與圖4所示硬體防火牆400的配置及操作相似的配置及操作,硬體防火牆1100可包括分別與所述多個虛擬機器1010、1020及1030對應的所述多個存取規則表1130、1140及1150,而非包括圖4所示正常存取規則表430及特權存取規則表450。每一存取規則表1130、1140及1150可儲存所述多個虛擬機器1010、1020及1030中的對應一個虛擬機器的對於記憶體裝置的多個物理頁面的存取允許資訊。在一些示例性實施例中,硬體特權產生器對存取請求附加指示由所述多個虛擬機器1010、1020及1030的其中一個產生存取請求的資訊。硬體防火牆1100可從硬體特權產生器接收已附加有所述資訊的存取請求,且可參照所述多個存取規則表1130、1140及1150中的與由所附加資訊指示的虛擬機器對應的一個存取規則表。在一些示例性實施例中,硬體特權產生器可包括圖13所示上下文表1200而非圖9所示上下文表764。上下文表1200可包括埠識別符及虛擬機器識別符(virtual machine identification,VMID)。為指示是由所述多個虛擬機器1010、1020及1030中的哪一個產生存取請求REQ,硬體特權產生器可使用上下文表1200對存取請求REQ附加與埠識別符對應的虛擬機器識別符。
圖14是用於描述根據示例性實施例的計算系統的軟體架構的方塊圖。
參照圖14,計算系統1300可提供豐富執行環境(REE)1305及可信執行環境(TEE)1360。
在豐富執行環境1305中,計算系統1300的處理器可運行多個虛擬機器,在所述多個虛擬機器中分別執行多個豐富作業系統1320及1340。另外,在豐富執行環境1305中,計算系統1300的處理器可執行管理程式1350,管理程式1350將所述多個虛擬機器分組成正常虛擬機器群組1310及特權虛擬機器群組1330,且控制由正常虛擬機器群組1310及特權虛擬機器群組1330請求進行的硬體存取。計算系統1300的處理器可在可信執行環境1360中執行安全作業系統1370。
在計算系統1300中,可在可信執行環境1360中執行第一安全應用程式1372,可在豐富執行環境1305的正常虛擬機器群組1310中執行正常應用程式1322,且可在豐富執行環境1305的特權虛擬機器群組1330中執行第二安全應用程式1342,第二安全應用程式1342需要的資料輸送量比第一安全應用程式1372所需的資料輸送量大。因此,可在可信執行環境1360中執行需要相對小的資料輸送量的輕安全應用程式(light secure application)1372,且可在豐富執行環境1305的特權虛擬機器群組1330中執行需要相對大的資料輸送量的重安全應用程式(heavy secure application)1342。
本發明概念可應用程式于需要執行安全應用程式的任意計算系統中。舉例來說,本發明概念可應用程式於智慧型電話、行動電話、平板電腦、膝上型電腦、個人電腦、MP3播放機、個人數位助理、可擕式多媒體播放機、數位電視、數位照相機、可擕式遊戲機等。
上述是對示例性實施例的說明,而不應被視為對示例性實施例的限制。儘管已闡述了幾個示例性實施例,但是所屬領域中的技術人員將容易理解,在不實質上背離本發明概念的新穎教示及優點的條件下,在示例性實施例中可進行許多修改。因此,所有這些修改均旨在包含於由權利要求所界定的本發明概念的範圍內。因此,應理解,上述是對各種示例性實施例的說明,而不應被視為僅限於所公開的具體示例性實施例,且對所公開的示例性實施例的修改形式以及其他示例性實施例也旨在包含於所附權利要求書的範圍內。
100、200、700、1000、1300‧‧‧計算系統
110、1310、NVMG‧‧‧正常虛擬機器群組
112、114‧‧‧虛擬機器/正常虛擬機器
122、124‧‧‧作業系統
126、128、1322‧‧‧正常應用程式
130、1330、PVMG‧‧‧特權虛擬機器群組
132、134‧‧‧虛擬機器/特權虛擬機器
142、144‧‧‧作業系統/豐富作業系統
146、148‧‧‧安全應用程式
150、1050、1350‧‧‧管理程式
170、1070、1380‧‧‧硬體
210‧‧‧處理器
212、222、232、770‧‧‧一級記憶體管理單元
214‧‧‧二級記憶體管理單元
220‧‧‧裝置
230‧‧‧裝置/非圖形處理器
240‧‧‧記憶體裝置
250、750‧‧‧互連線
260、270、400、780、950、1100‧‧‧硬體防火牆
310‧‧‧第一虛擬位址空間
320‧‧‧第二虛擬位址空間
330‧‧‧第一中間物理位址空間
340‧‧‧第二中間物理位址空間
350‧‧‧物理位址空間
410‧‧‧程式化設計介面模組
430、610‧‧‧正常存取規則表
450、620‧‧‧特權存取規則表
470、1170‧‧‧存取允許檢查器
640‧‧‧‘頁面X’
650‧‧‧‘頁面Y’
660‧‧‧‘頁面Z’
710‧‧‧主機/第一主機
720‧‧‧主機/第二主機
730‧‧‧主機/第三主機
740‧‧‧主機/第四主機
760‧‧‧硬體特權產生器
762、1110‧‧‧程式化設計介面模組
764、1200‧‧‧上下文表
766‧‧‧特權產生模組
910‧‧‧主機
930‧‧‧從機
1010、1020、1030‧‧‧虛擬機器
1130、1140、1150‧‧‧存取規則表
1305‧‧‧豐富執行環境
1320、1340‧‧‧豐富作業系統
1342‧‧‧第二安全應用程式/重安全應用程式
1360‧‧‧可信執行環境
1370‧‧‧安全作業系統
1372‧‧‧第一安全應用程式/輕安全應用程式
CI‧‧‧上下文索引
IPA1‧‧‧第一中間物理位址/中間物理位址
IPA1-1‧‧‧中間物理位址
IPA2‧‧‧第二中間物理位址/中間物理位址
MM‧‧‧匹配遮罩
MV‧‧‧匹配值
NAPI‧‧‧正常存取允許資訊
OPMODE‧‧‧操作模式
PA1‧‧‧第一物理位址/物理位址
PA2‧‧‧第二物理位址/物理位址
PAPI‧‧‧特權存取允許資訊
PI‧‧‧頁面索引
RAPI‧‧‧讀取存取允許資訊
REQ‧‧‧存取請求
T1、T2‧‧‧時間點
VA1‧‧‧第一虛擬位址
VA1-1‧‧‧虛擬位址
VA2‧‧‧第二虛擬位址
WAPI‧‧‧寫入存取允許資訊
結合附圖閱讀以下詳細說明,將更清楚地理解說明性的而非限制性的示例性實施例。
圖1是用於描述根據示例性實施例的計算系統的軟體架構的方塊圖。 圖2是用於描述根據示例性實施例的計算系統的硬體架構的方塊圖。 圖3是用於描述根據示例性實施例的計算系統中的記憶體位址轉換的實例的圖。 圖4是說明根據示例性實施例的計算系統中所包括的硬體防火牆的方塊圖。 圖5A及圖5B是描述產生正常虛擬機器群組及特權虛擬機器群組的時間點的實例的圖。 圖6A是說明圖4所示硬體防火牆中所包含的正常存取規則表的實例的圖,圖6B是說明圖4所示硬體防火牆中所包含的特權存取規則表的實例的圖,且圖6C是說明根據圖6A及圖6B中的存取規則表的實例的由正常虛擬機器群組及特權虛擬機器群組存取的記憶體裝置的圖。 圖7是說明根據示例性實施例的計算系統的一部分的方塊圖。 圖8是說明根據示例性實施例的計算系統中所包括的硬體特權產生器的方塊圖。 圖9是說明圖8所示硬體特權產生器中所包括的上下文表的實例的圖。 圖10是說明根據示例性實施例的計算系統的一部分的方塊圖。 圖11是用於描述根據示例性實施例的計算系統的軟體架構的方塊圖。 圖12是說明根據示例性實施例的計算系統中所包括的硬體防火牆的方塊圖。 圖13是說明根據示例性實施例的計算系統中所包括的硬體特權產生器的上下文表的實例的圖。 圖14是用於描述根據示例性實施例的計算系統的軟體架構的方塊圖。

Claims (25)

  1. 一種計算系統,包括處理器,其中: 所述處理器被配置成運行多個虛擬機器,在所述多個虛擬機器中分別執行多個作業系統, 所述處理器進一步被配置成執行管理程式,所述管理程式將所述多個虛擬機器分組成正常虛擬機器群組及特權虛擬機器群組且控制由所述正常虛擬機器群組及所述特權虛擬機器群組請求進行的硬體存取,且 所述處理器進一步被配置成在所述正常虛擬機器群組中執行正常應用程式以及在所述特權虛擬機器群組中執行安全應用程式。
  2. 如申請專利範圍第1項所述的計算系統,其中所述管理程式被配置成選擇性地阻擋在所述正常虛擬機器群組中產生的硬體存取請求,以使得分配給所述特權虛擬機器群組的至少一個硬體資源不被所述正常虛擬機器群組存取。
  3. 如申請專利範圍第1項所述的計算系統,進一步包括記憶體裝置,所述記憶體裝置包括多個物理頁面, 其中所述管理程式被配置成選擇性地阻擋在所述正常虛擬機器群組中產生的對於所述記憶體裝置的存取請求,以使得分配給所述特權虛擬機器群組的所述多個物理頁面中的至少一個不被所述正常虛擬機器群組存取。
  4. 如申請專利範圍第1項所述的計算系統,進一步包括記憶體裝置, 其中針對在所述正常虛擬機器群組中產生的且包括第一虛擬位址空間中的第一虛擬位址的對於所述記憶體裝置的第一存取請求,所述正常虛擬機器群組被配置成將所述第一虛擬位址轉換成第一中間物理位址空間中的第一中間物理位址, 其中針對在所述特權虛擬機器群組中產生的且包括第二虛擬位址空間中的第二虛擬位址的對於所述記憶體裝置的第二存取請求,所述特權虛擬機器群組被配置成將所述第二虛擬位址轉換成第二中間物理位址空間中的第二中間物理位址,且 其中所述第一中間物理位址空間及所述第二中間物理位址空間中的每一個與所述記憶體裝置的物理位址空間相同。
  5. 如申請專利範圍第4項所述的計算系統,其中所述管理程式被配置成:從所述正常虛擬機器群組接收包括所述第一中間物理位址的所述第一存取請求;使用所述第一中間物理位址作為所述記憶體裝置的所述物理位址空間中的第一物理位址而不對所述第一中間物理位址進行位址轉換;以及對於所述記憶體裝置的具有所述第一物理位址的物理頁面,基於所述正常虛擬機器群組的存取允許資訊來選擇性地阻擋所述第一存取請求。
  6. 如申請專利範圍第4項所述的計算系統,其中所述管理程式被配置成:從所述特權虛擬機器群組接收包括所述第二中間物理位址的所述第二存取請求;使用所述第二中間物理位址作為所述記憶體裝置的所述物理位址空間中的第二物理位址而不對所述第二中間物理位址進行位址轉換;以及對於所述記憶體裝置的具有所述第二物理位址的物理頁面,基於所述特權虛擬機器群組的存取允許資訊來選擇性地阻擋所述第二存取請求。
  7. 如申請專利範圍第1項所述的計算系統,进一步包括: 記憶體裝置,包括多個物理頁面; 主機,被配置成輸出對於所述記憶體裝置的存取請求;以及 硬體防火牆,位於所述主機與所述記憶體裝置之間,所述硬體防火牆被配置成儲存所述正常虛擬機器群組對於所述多個物理頁面的正常存取允許資訊且儲存所述特權虛擬機器群組對於所述多個物理頁面的特權存取允許資訊,並基於所述正常存取允許資訊、所述特權存取允許資訊、以及所述存取請求是在所述正常虛擬機器群組中產生還是在所述特權虛擬機器群組中產生中的至少一個來選擇性地阻擋所述存取請求。
  8. 如申請專利範圍第7項所述的計算系統,其中所述硬體防火牆包括: 程式化設計介面模組,被配置成從所述管理程式接收命令; 正常存取規則表,被配置成儲存指示是否允許所述正常虛擬機器群組存取所述多個物理頁面中的各個物理頁面的所述正常存取允許資訊; 特權存取規則表,被配置成儲存指示是否允許所述特權虛擬機器群組存取所述多個物理頁面中的各個物理頁面的所述特權存取允許資訊;以及 存取允許檢查器,被配置成當所述存取請求是在所述正常虛擬機器群組中產生時通過參照所述正常存取規則表來選擇性地阻擋所述存取請求,以及當所述存取請求是在所述特權虛擬機器群組中產生時通過參照所述特權存取規則表來選擇性地阻擋所述存取請求。
  9. 如申請專利範圍第8項所述的計算系統,其中所述正常存取規則表包括: 頁面索引,用於所述多個物理頁面中的所述各個物理頁面; 讀取存取允許資訊,指示是否允許所述正常虛擬機器群組從所述多個物理頁面中的所述各個物理頁面讀取資料;以及 寫入存取允許資訊,指示是否允許所述正常虛擬機器群組將資料寫入到所述多個物理頁面中的所述各個物理頁面。
  10. 如申請專利範圍第8項所述的計算系統,其中所述特權存取規則表包括: 頁面索引,用於所述多個物理頁面中的所述各個物理頁面; 讀取存取允許資訊,指示是否允許所述特權虛擬機器群組從所述多個物理頁面中的所述各個物理頁面讀取資料;以及 寫入存取允許資訊,指示是否允許所述特權虛擬機器群組將資料寫入到所述多個物理頁面中的所述各個物理頁面。
  11. 如申請專利範圍第8項所述的計算系統,其中在所述正常虛擬機器群組運行的同時,當請求執行所述安全應用程式時產生所述特權虛擬機器群組,且 其中所述正常存取規則表及所述特權存取規則表是在所述特權虛擬機器群組產生時由所述管理程式通過所述程式化設計介面模組產生。
  12. 如申請專利範圍第8項所述的計算系統,其中該當所述計算系統啟動時,產生所述正常虛擬機器群組及所述正常存取規則表,且 其中當請求執行所述安全應用程式時,產生所述特權虛擬機器群組及所述特權存取規則表,且更新所述正常存取規則表。
  13. 如申請專利範圍第8項所述的計算系統,其中當所述計算系統啟動時,產生所述正常虛擬機器群組、所述特權虛擬機器群組、所述正常存取規則表及所述特權存取規則表。
  14. 如申請專利範圍第7項所述的計算系統,進一步包括: 硬體特權產生器,位於所述主機與所述硬體防火牆之間,所述硬體特權產生器被配置成:從所述主機接收所述存取請求;在所述存取請求上附加指示所述存取請求是由所述正常虛擬機器群組產生還是由所述特權虛擬機器群組產生的特權資訊;以及輸出已附加有所述特權資訊的所述存取請求。
  15. 如申請專利範圍第14項所述的計算系統,其中所述硬體特權產生器包括: 程式化設計介面模組,從所述管理程式接收命令; 上下文表,被配置成相依於所述主機輸出所述存取請求來儲存所述存取請求的操作模式;以及 特權產生模組,被配置成通過參照所述上下文表將所述特權資訊附加到所述存取請求。
  16. 如申請專利範圍第15項所述的計算系統,其中所述上下文表包括: 上下文索引,用於儲存在所述上下文表中的至少一個上下文的; 匹配遮罩,用於對所述存取請求中所包含的請求識別符進行逐位掩蔽; 匹配值,與已被執行所述逐位掩蔽的所述請求識別符進行逐位匹配;以及 所述操作模式,用於包含與所述匹配值逐位匹配的所述請求識別符的所述存取請求。
  17. 如申請專利範圍第1項所述的計算系統,進一步包括: 從機; 主機,被配置成輸出對於所述從機的存取請求;以及 硬體防火牆,位於所述主機與所述從機之間,所述硬體防火牆被配置成儲存所述主機對於所述從機的存取允許資訊,且基於所述存取允許資訊選擇性地阻擋所述存取請求。
  18. 一種計算系統,包括處理器,其中: 所述處理器被配置成運行多個虛擬機器,在所述多個虛擬機器中分別執行多個作業系統, 所述處理器進一步被配置成執行管理程式,所述管理程式控制由所述多個虛擬機器請求的硬體存取,且 所述處理器進一步被配置成在所述多個虛擬機器中的第一個虛擬機器中執行正常應用程式以及在所述多個虛擬機器中的第二虛擬機器中執行安全應用程式。
  19. 如申請專利範圍第18項所述的計算系統,進一步包括: 記憶體裝置,包括多個物理頁面; 主機,被配置成輸出對於所述記憶體裝置的存取請求; 硬體特權產生器,被配置成對所述存取請求附加指示由所述多個虛擬機器中的哪一個產生所述存取請求的資訊;以及 硬體防火牆,被配置成儲存所述多個虛擬機器中的各個虛擬機器對於所述多個物理頁面中的各個物理頁面的存取允許資訊,且基於所附加的所述資訊及所述存取允許資訊選擇性地阻擋所述存取請求。
  20. 一種計算系統,包括處理器且提供豐富執行環境及可信執行環境,其中: 所述處理器被配置成運行多個虛擬機器,在所述多個虛擬機器中,在所述豐富執行環境中分別執行多個豐富作業系統,且在所述可信執行環境中執行安全作業系統, 所述處理器進一步被配置成在所述豐富執行環境中執行管理程式,所述管理程式將所述多個虛擬機器分組成正常虛擬機器群組及特權虛擬機器群組且控制由所述正常虛擬機器群組及所述特權虛擬機器群組請求進行的硬體存取,且 所述處理器進一步被配置成在所述可信執行環境中執行第一安全應用程式,在所述豐富執行環境的所述正常虛擬機器群組中執行正常應用程式,以及在所述豐富執行環境的所述特權虛擬機器群組中執行第二安全應用程式,其中所述第二安全應用程式需要的資料輸送量大於所述可信執行環境中所述第一安全應用程式需要的資料輸送量。
  21. 一種系統,包括: 記憶體裝置,包括多個物理頁面; 處理器,其中所述處理器被配置成:運行多個虛擬機器,在所述多個虛擬機器中分別執行多個作業系統;執行管理程式,所述管理程式控制由所述多個虛擬機器請求進行的硬體存取;在所述多個虛擬機器中的第一個虛擬機器中執行正常應用程式;以及在所述多個虛擬機器中的第二虛擬機器中執行安全應用程式; 一個或多個主機裝置;以及 一個或多個硬體防火牆,配置在所述一個或多個主機裝置與所述記憶體裝置之間, 其中所述處理器及所述一個或多個主機裝置分別被配置成存取所述記憶體裝置中的資料。
  22. 如申請專利範圍第21項所述的系統,其中所述管理程式進一步被配置成將所述多個虛擬機器分組成正常虛擬機器群組及特權虛擬機器群組,其中所述處理器進一步被配置成在所述正常虛擬機器群組中執行所述正常應用程式、且在所述特權虛擬機器群組中執行所述安全應用程式。
  23. 如申請專利範圍第22項所述的系統,其中所述一個或多個硬體防火牆被配置成從所述管理程式接收存取允許資訊以及回應於所接收的所述存取允許資訊來控制所述一個或多個主機裝置對所述記憶體裝置的存取。
  24. 如申請專利範圍第23項所述的系統,進一步包括連接在所述處理器與所述記憶體裝置之間的互連線,其中所述一個或多個硬體防火牆中的每一個對應於所述一個或多個主機裝置中的一個,其中所述硬體防火牆中的每一個配置在所述對應的主機裝置與所述互連線之間。
  25. 如申請專利範圍第24項所述的系統,其中所述存取允許資訊包括正常存取允許資訊及特權存取允許資訊,所述正常存取允許資訊指示是否允許所述正常虛擬機器群組存取所述記憶體裝置的多個物理頁面中的各個物理頁面,且所述特權存取允許資訊指示是否允許所述特權虛擬機器群組存取所述多個物理頁面中的所述各個物理頁面,且其中所述一個或多個硬體防火牆中的每一個包括: 程式化設計介面模組,被配置成從所述管理程式接收所述存取允許資訊; 正常存取規則表,被配置成儲存所述正常存取允許資訊; 特權存取規則表,被配置成儲存所述特權存取允許資訊;以及 存取允許檢查器,被配置成當所述存取請求是在所述正常虛擬機器群組中產生時通過參照所述正常存取規則表來選擇性地阻擋來自對應的主機裝置的對於所述記憶體裝置的存取請求,以及當所述存取請求是在所述特權虛擬機器群組中產生時通過參照所述特權存取規則表來選擇性地阻擋所述存取請求。
TW106129083A 2016-11-09 2017-08-28 在豐富執行環境中安全地執行安全應用程式用的計算系統 TWI733890B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020160148716A KR102511451B1 (ko) 2016-11-09 2016-11-09 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템
KR10-2016-0148716 2016-11-09
??10-2016-0148716 2016-11-09

Publications (2)

Publication Number Publication Date
TW201818240A true TW201818240A (zh) 2018-05-16
TWI733890B TWI733890B (zh) 2021-07-21

Family

ID=62064583

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106129083A TWI733890B (zh) 2016-11-09 2017-08-28 在豐富執行環境中安全地執行安全應用程式用的計算系統

Country Status (4)

Country Link
US (1) US10564997B2 (zh)
KR (1) KR102511451B1 (zh)
CN (1) CN108062242B (zh)
TW (1) TWI733890B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI791929B (zh) * 2019-11-28 2023-02-11 瑞昱半導體股份有限公司 通用分析裝置與方法
TWI793053B (zh) * 2021-10-29 2023-02-11 大陸商中國銀聯股份有限公司 一種電子設備、可信應用調用方法、裝置、設備及介質

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804830B2 (en) 2014-12-19 2017-10-31 Signalfx, Inc. Anomaly detection using a data stream processing language for analyzing instrumented software
US10394692B2 (en) * 2015-01-29 2019-08-27 Signalfx, Inc. Real-time processing of data streams received from instrumented software
US11237859B2 (en) * 2018-11-28 2022-02-01 Red Hat Israel, Ltd. Securing virtual machines in computer systems
CN109600396A (zh) * 2019-01-23 2019-04-09 浙江安点科技有限责任公司 实现高可靠安全性的防火墙系统
US11487906B2 (en) * 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11640361B2 (en) 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
JP7290166B2 (ja) * 2019-07-22 2023-06-13 日本電気株式会社 セキュリティ管理装置、セキュリティ管理方法、及びプログラム
KR20210026233A (ko) * 2019-08-29 2021-03-10 삼성전자주식회사 디바이스 리소스에 대한 접근을 제어하기 위한 전자 장치 및 그의 동작 방법
CN114490450A (zh) * 2020-11-12 2022-05-13 华为技术有限公司 一种地址转换关系的配置方法及计算机系统
US20220318391A1 (en) * 2021-04-06 2022-10-06 Hewlett Packard Enterprise Development Lp Deferred authentication in a secure boot system
CN113537498B (zh) * 2021-06-30 2022-07-26 电子科技大学 基于TrustZone的可信量化模型推理方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5532793B2 (zh) 1973-09-29 1980-08-27
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US8819675B2 (en) 2007-11-28 2014-08-26 Hitachi, Ltd. Virtual machine monitor and multiprocessor system
US8938782B2 (en) 2010-03-15 2015-01-20 Symantec Corporation Systems and methods for providing network access control in virtual environments
US8386749B2 (en) * 2010-03-16 2013-02-26 Advanced Micro Devices, Inc. Address mapping in virtualized processing system
WO2011143103A2 (en) * 2010-05-10 2011-11-17 Citrix Systems, Inc. Redirection of information from secure virtual machines to unsecure virtual machines
US8468550B2 (en) * 2010-06-18 2013-06-18 At&T Intellectual Property I, L.P. Mobile devices having plurality of virtual interfaces
WO2012058613A2 (en) 2010-10-31 2012-05-03 Mark Lowell Tucker System and method for securing virtual computing environments
US20120255003A1 (en) 2011-03-31 2012-10-04 Mcafee, Inc. System and method for securing access to the objects of an operating system
JP6357158B2 (ja) 2012-10-12 2018-07-11 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 仮想マシンによる安全なデータ処理
FR2997811B1 (fr) * 2012-11-05 2015-01-02 Viaccess Sa Dispositif de traitement de contenus multimedia mettant en oeuvre une pluralite de machines virtuelles.
US20140282543A1 (en) * 2013-03-15 2014-09-18 Ologn Technologies Ag Secure zone on a virutal machine for digital communications
KR101394424B1 (ko) 2013-04-22 2014-05-13 한국인터넷진흥원 하이퍼바이저 기반 침입 방지 플랫폼 및 가상화 네트워크 침입 방지 시스템
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US9785576B2 (en) * 2014-03-27 2017-10-10 Intel Corporation Hardware-assisted virtualization for implementing secure video output path
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9213840B2 (en) * 2014-05-15 2015-12-15 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US9569243B2 (en) * 2014-12-05 2017-02-14 International Business Machines Corporation Offloading and parallelizing translation table operations
GB2536200B (en) * 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Memory management
US9697034B2 (en) * 2015-08-07 2017-07-04 Futurewei Technologies, Inc. Offloading probabilistic computations in data analytics applications
US20180024944A1 (en) * 2016-07-22 2018-01-25 Qualcomm Incorporated Methods and apparatus for access control in shared virtual memory configurations

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI791929B (zh) * 2019-11-28 2023-02-11 瑞昱半導體股份有限公司 通用分析裝置與方法
TWI793053B (zh) * 2021-10-29 2023-02-11 大陸商中國銀聯股份有限公司 一種電子設備、可信應用調用方法、裝置、設備及介質

Also Published As

Publication number Publication date
KR20180051855A (ko) 2018-05-17
CN108062242B (zh) 2023-07-21
US10564997B2 (en) 2020-02-18
US20180129525A1 (en) 2018-05-10
CN108062242A (zh) 2018-05-22
KR102511451B1 (ko) 2023-03-17
TWI733890B (zh) 2021-07-21

Similar Documents

Publication Publication Date Title
TWI733890B (zh) 在豐富執行環境中安全地執行安全應用程式用的計算系統
JP6903682B2 (ja) 仮想リソースビューを使用するデータ保護
US11755748B2 (en) Trusted local memory management in a virtualized GPU
US8893267B1 (en) System and method for partitioning resources in a system-on-chip (SoC)
TWI721060B (zh) 用於輸入/輸出裝置之可縮放虛擬化的位址轉譯設備、方法及系統
BR112015022865B1 (pt) Método e aparelho para ativar seletivamente as operações de um monitor de máquina virtual sob demanda
US10664304B2 (en) Application memory protection using an extended page table switching virtual machine function
JP2013232151A (ja) メモリ保護回路、処理装置、およびメモリ保護方法
US20220180009A1 (en) Peripheral component interconnect express protection controller
US10402576B2 (en) Safe physical function passthrough using virtual machine functions
US10311252B2 (en) Technologies for protecting dynamically generated managed code with protection domains
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
US8006055B2 (en) Fine granularity hierarchiacal memory protection
US10013199B2 (en) Translation bypass by host IOMMU for systems with virtual IOMMU
US9459907B2 (en) Guest controlled malicious payload protection
US11526451B2 (en) Secure address translation services using bundle access control
US20200201691A1 (en) Enhanced message control banks
US10073710B2 (en) Host-driven application memory protection for virtual machines
EP4254203A1 (en) Device memory protection for supporting trust domains
US10140148B1 (en) Copy based IOMMU emulation for out-of-process emulated devices
US10481951B2 (en) Multi-queue device assignment for application groups
KR20230162982A (ko) 페이지 마이그레이션을 제공하기 위한 시스템 및 방법
BR102021001828A2 (pt) Tecnologia para mover dados entre máquinas virtuais sem cópias
US20220222340A1 (en) Security and support for trust domain operation
CN116561824A (zh) 在机密计算架构中管理内存的方法和装置