CN108062242A - 在富执行环境中安全地执行安全应用的计算系统 - Google Patents

在富执行环境中安全地执行安全应用的计算系统 Download PDF

Info

Publication number
CN108062242A
CN108062242A CN201711092602.4A CN201711092602A CN108062242A CN 108062242 A CN108062242 A CN 108062242A CN 201711092602 A CN201711092602 A CN 201711092602A CN 108062242 A CN108062242 A CN 108062242A
Authority
CN
China
Prior art keywords
group
access
virtual machine
normal
virtual
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
CN201711092602.4A
Other languages
English (en)
Other versions
CN108062242B (zh
Inventor
洪性珉
全宇衡
金荣奭
李晟在
赵银玉
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN108062242A publication Critical patent/CN108062242A/zh
Application granted granted Critical
Publication of CN108062242B publication Critical patent/CN108062242B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

一种在富执行环境中安全地执行安全应用的计算系统,其包括处理器,所述处理器运行多个虚拟机,在所述多个虚拟机中分别执行多个操作系统。所述处理器执行管理程序,所述管理程序将所述多个虚拟机分组成正常虚拟机群组及特权虚拟机群组且控制由所述正常虚拟机群组及所述特权虚拟机群组请求进行的硬件存取。所述处理器在所述正常虚拟机群组中执行正常应用,且在所述特权虚拟机群组中执行安全应用。

Description

在富执行环境中安全地执行安全应用的计算系统
[相关申请的交叉参考]
本美国非临时申请基于35U.S.C.§119主张在2016年11月9日在韩国知识产权局(Korean Intellectual Property Office,KIPO)提出申请的韩国专利申请第10-2016-0148716号的优先权,所述韩国专利申请的全部内容并入本申请供参考。
技术领域
本发明概念的示例性实施例涉及计算系统,且更具体来说,涉及在富执行环境中安全地执行安全应用的计算系统。
背景技术
为安全地执行安全应用,已开发出一种提供可信执行环境(trusted executionenvironment,TEE)的技术,例如先进精简指令集机器信任区(Advanced RISC MachinesTrustZone,ARM TrustZone)技术。在这种技术中,在富执行环境(rich executionenvironment,REE)或正常区域中执行正常应用,在与富执行环境或正常区域隔离的可信执行环境或安全区域中执行安全应用,且从而确保安全地执行安全应用。然而,在可信执行环境或安全区域中无法执行复杂的安全应用。
发明内容
一些示例性实施例提供一种在富执行环境中安全地执行安全应用的计算系统。
根据示例性实施例,一种计算系统包括处理器。所述处理器运行多个虚拟机,在所述多个虚拟机中分别执行多个操作系统。所述处理器执行管理程序,所述管理程序将所述多个虚拟机分组成正常虚拟机群组及特权虚拟机群组且控制由所述正常虚拟机群组及所述特权虚拟机群组请求进行的硬件存取。所述处理器在所述正常虚拟机群组中执行正常应用且在所述特权虚拟机群组中执行安全应用。
根据示例性实施例,一种计算系统包括处理器。所述处理器运行多个虚拟机,在所述多个虚拟机中分别执行多个操作系统。所述处理器执行管理程序,所述管理程序控制由所述多个虚拟机请求进行的硬件存取。所述处理器在所述多个虚拟机中的第一个虚拟机中执行正常应用且在所述多个虚拟机中的第二虚拟机中执行安全应用。
根据示例性实施例,一种计算系统包括处理器且提供富执行环境(REE)及可信执行环境(TEE)。所述处理器运行多个虚拟机,在所述多个虚拟机中,在所述富执行环境中分别执行多个富操作系统,且在所述可信执行环境中执行安全操作系统。所述处理器在富执行环境中执行管理程序,所述管理程序将所述多个虚拟机分组成正常虚拟机群组及特权虚拟机群组且控制由所述正常虚拟机群组及所述特权虚拟机群组请求进行的硬件存取。所述处理器在所述可信执行环境中执行第一安全应用,在所述富执行环境的所述正常虚拟机群组中执行正常应用,以及在所述富执行环境的所述特权虚拟机群组中执行第二安全应用,其中所述第二安全应用需要的数据吞吐量大于所述可信执行环境中所述第一安全应用需要的数据吞吐量。
如上所述,根据示例性实施例的计算系统可在正常虚拟机群组中执行正常应用,可在特权虚拟机群组中执行安全应用,且可阻挡来自正常虚拟机群组的对被分配给特权虚拟机群组的至少一个硬件资源的存取请求,从而在富执行环境中安全地执行安全应用。
另外,根据示例性实施例的计算系统可使用虚拟机群组的中间物理地址作为存储器装置的物理地址而不进行地址转换,从而减少虚拟化开销(virtualization overhead)。
根据其他示例性实施例,一种系统包括:存储器装置,包括多个物理页面;处理器;一个或多个主机装置;以及一个或多个硬件防火墙,配置在所述一个或多个主机装置与所述存储器装置之间,其中所述处理器被配置成:运行多个虚拟机,在所述多个虚拟机中分别执行多个操作系统;执行管理程序,所述管理程序控制由所述多个虚拟机请求进行的硬件存取;在所述多个虚拟机中的第一个虚拟机中执行正常应用;以及在所述多个虚拟机中的第二虚拟机中执行安全应用;其中所述处理器及所述一个或多个主机装置分别被配置成存取所述存储器装置中的数据。
附图说明
结合附图阅读以下详细说明,将更清楚地理解说明性的而非限制性的示例性实施例。
图1是用于描述根据示例性实施例的计算系统的软件架构的方块图。
图2是用于描述根据示例性实施例的计算系统的硬件架构的方块图。
图3是用于描述根据示例性实施例的计算系统中的存储器地址转换的实例的图。
图4是说明根据示例性实施例的计算系统中所包括的硬件防火墙的方块图。
图5A及图5B是描述产生正常虚拟机群组及特权虚拟机群组的时间点的实例的图。
图6A是说明图4所示硬件防火墙中所包含的正常存取规则表的实例的图,图6B是说明图4所示硬件防火墙中所包含的特权存取规则表的实例的图,且图6C是说明根据图6A及图6B中的存取规则表的实例的由正常虚拟机群组及特权虚拟机群组存取的存储器装置的图。
图7是说明根据示例性实施例的计算系统的一部分的方块图。
图8是说明根据示例性实施例的计算系统中所包括的硬件特权产生器的方块图。
图9是说明图8所示硬件特权产生器中所包括的上下文表的实例的图。
图10是说明根据示例性实施例的计算系统的一部分的方块图。
图11是用于描述根据示例性实施例的计算系统的软件架构的方块图。
图12是说明根据示例性实施例的计算系统中所包括的硬件防火墙的方块图。
图13是说明根据示例性实施例的计算系统中所包括的硬件特权产生器的上下文表的实例的图。
图14是用于描述根据示例性实施例的计算系统的软件架构的方块图。
[符号的说明]
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是用于描述根据示例性实施例的计算系统的软件架构的方块图。
参照图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 machinemonitor,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 multimediaplayer,PMP)、数字电视、数字照相机、便携式游戏机等。
处理器210可控制计算系统200的总体运行。在一些示例性实施例中,处理器210可为中央处理器(central processing unit,CPU)、应用处理器(application processor,AP)、移动处理器等。在一些示例性实施例中,处理器210可执行包括至少一个正常虚拟机的正常虚拟机群组、包括至少一个特权虚拟机的特权虚拟机群组及管理程序。在一些示例性实施例中,处理器210可包括一级存储器管理单元(stage-1memory management unit,STG1MMU)212及二级存储器管理单元(stage-2memory management unit,STG2MMU)214。一级存储器管理单元212可受控制于操作系统以第一特权等级或异常等级1(exceptionlevel-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)装置、静态随机存取存储器(staticrandom 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播放器、个人数字助理、便携式多媒体播放器、数字电视、数字照相机、便携式游戏机等。
上述是对示例性实施例的说明,而不应被视为对示例性实施例的限制。尽管已阐述了几个示例性实施例,但是所属领域中的技术人员将容易理解,在不实质上背离本发明概念的新颖教示及优点的条件下,在示例性实施例中可进行许多修改。因此,所有这些修改均旨在包含于由权利要求所界定的本发明概念的范围内。因此,应理解,上述是对各种示例性实施例的说明,而不应被视为仅限于所公开的具体示例性实施例,且对所公开的示例性实施例的修改形式以及其他示例性实施例也旨在包含于所附权利要求书的范围内。

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所述的系统,其特征在于,所述存取允许信息包括正常存取允许信息及特权存取允许信息,所述正常存取允许信息指示是否允许所述正常虚拟机群组存取所述存储器装置的多个物理页面中的各个物理页面,且所述特权存取允许信息指示是否允许所述特权虚拟机群组存取所述多个物理页面中的所述各个物理页面,且其中所述一个或多个硬件防火墙中的每一个硬件防火墙包括:
编程界面模块,被配置成从所述管理程序接收所述存取允许信息;
正常存取规则表,被配置成存储所述正常存取允许信息;
特权存取规则表,被配置成存储所述特权存取允许信息;以及
存取允许检查器,被配置成当所述存取请求是在所述正常虚拟机群组中产生时通过参照所述正常存取规则表来选择性地阻挡来自对应的主机装置的对于所述存储器装置的存取请求,以及当所述存取请求是在所述特权虚拟机群组中产生时通过参照所述特权存取规则表来选择性地阻挡所述存取请求。
CN201711092602.4A 2016-11-09 2017-11-08 在富执行环境中安全地执行安全应用的计算系统 Active CN108062242B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN108062242A true CN108062242A (zh) 2018-05-22
CN108062242B CN108062242B (zh) 2023-07-21

Family

ID=62064583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711092602.4A Active CN108062242B (zh) 2016-11-09 2017-11-08 在富执行环境中安全地执行安全应用的计算系统

Country Status (4)

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

Families Citing this family (14)

* 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 삼성전자주식회사 디바이스 리소스에 대한 접근을 제어하기 위한 전자 장치 및 그의 동작 방법
TWI791929B (zh) * 2019-11-28 2023-02-11 瑞昱半導體股份有限公司 通用分析裝置與方法
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的可信量化模型推理方法
CN114021141A (zh) * 2021-10-29 2022-02-08 中国银联股份有限公司 一种电子设备、可信应用调用方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792286A (zh) * 2010-03-16 2012-11-21 超威半导体公司 虚拟化处理系统中的地址映射
US20140282543A1 (en) * 2013-03-15 2014-09-18 Ologn Technologies Ag Secure zone on a virutal machine for digital communications
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US20150304716A1 (en) * 2012-11-05 2015-10-22 Viaccess Device for processing multimedia contents implementing a plurality of virtual machines
US20150332048A1 (en) * 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and Methods Involving Features of Hardware Virtualization, Hypervisor, APIs of Interest, and/or Other Features

Family Cites Families (16)

* 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
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. 仮想マシンによる安全なデータ処理
KR101394424B1 (ko) 2013-04-22 2014-05-13 한국인터넷진흥원 하이퍼바이저 기반 침입 방지 플랫폼 및 가상화 네트워크 침입 방지 시스템
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792286A (zh) * 2010-03-16 2012-11-21 超威半导体公司 虚拟化处理系统中的地址映射
US20150304716A1 (en) * 2012-11-05 2015-10-22 Viaccess Device for processing multimedia contents implementing a plurality of virtual machines
US20140282543A1 (en) * 2013-03-15 2014-09-18 Ologn Technologies Ag Secure zone on a virutal machine for digital communications
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US20150332048A1 (en) * 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and Methods Involving Features of Hardware Virtualization, Hypervisor, APIs of Interest, and/or Other Features

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
TW201818240A (zh) 2018-05-16
KR102511451B1 (ko) 2023-03-17
TWI733890B (zh) 2021-07-21

Similar Documents

Publication Publication Date Title
CN108062242A (zh) 在富执行环境中安全地执行安全应用的计算系统
US9454497B2 (en) Technologies for secure inter-virtual-machine shared memory communication
US10503664B2 (en) Virtual machine manager for address mapping and translation protection
US10157268B2 (en) Return flow guard using control stack identified by processor register
CN101520753B (zh) 数据处理设备和控制虚拟机对安全存储器的访问的方法
US8943288B2 (en) Method of controlling memory access
US10198572B2 (en) Virtual machine manager facilitated selective code integrity enforcement
US8631170B2 (en) Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU
CN105393229A (zh) 虚拟机中的页面错误注入使得经换出的存储器页面映射到虚拟机虚拟化存储器中
CN105164653B (zh) 属性字段的多核页表集合
CN105190570A (zh) 用于虚拟机器的完整性保护的存储器自省引擎
US20190188028A1 (en) Paravirtualized access for device assignment by bar extension
US10057069B2 (en) Securing code loading by a guest in a virtual environment
WO2009001153A1 (en) Memory protection unit in a virtual processing environment
US20060047959A1 (en) System and method for secure computing
US20130031292A1 (en) System and method for managing memory pages based on free page hints
JP2013232151A (ja) メモリ保護回路、処理装置、およびメモリ保護方法
US10664304B2 (en) Application memory protection using an extended page table switching virtual machine function
US8006055B2 (en) Fine granularity hierarchiacal memory protection
KR101724590B1 (ko) 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
CN112256396B (zh) 内存管理方法、系统及安全处理装置、数据处理装置
TW201737091A (zh) 在虛擬化情境中共有客戶機實體位址空間
US5940869A (en) System and method for providing shared memory using shared virtual segment identification in a computer system
US20200201691A1 (en) Enhanced message control banks
CN104298519B (zh) 用于配置操作系统的装置及其方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant