CN107077428A - 保护应用秘密免受操作系统攻击 - Google Patents

保护应用秘密免受操作系统攻击 Download PDF

Info

Publication number
CN107077428A
CN107077428A CN201580053298.5A CN201580053298A CN107077428A CN 107077428 A CN107077428 A CN 107077428A CN 201580053298 A CN201580053298 A CN 201580053298A CN 107077428 A CN107077428 A CN 107077428A
Authority
CN
China
Prior art keywords
kernel
access
page
service
memory
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
CN201580053298.5A
Other languages
English (en)
Other versions
CN107077428B (zh
Inventor
D.B.普罗伯特
J.恩格尔
A.阿玛德
A.U.基尚
J.E.兰格
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107077428A publication Critical patent/CN107077428A/zh
Application granted granted Critical
Publication of CN107077428B publication Critical patent/CN107077428B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

各个实施例提供了用于保护应用秘密免受操作系统攻击的技术和设备。在一些示例中,应用通过安全执行环境的隔离用户模式执行,同时依赖于执行在单独的执行环境内的操作系统进行资源管理和系统服务。代理内核可以控制操作系统对于与安全执行环境相关联的数据的访问。此外,在提供资源管理和系统服务期间,代理内核可以充当隔离用户模式应用与操作系统之间的透明接口。

Description

保护应用秘密免受操作系统攻击
背景技术
许多应用包含必须被保护以免受未经授权的访问的秘密。此外,在系统软件可以被信任的假设下,许多计算架构需要将这些秘密暴露给系统软件,诸如操作系统(OS)内核。举例来说,在OS内核内执行的OS组件完全有权访问系统存储器,因此有权访问存储在系统存储器内的应用秘密。因此,应用秘密的安全容易受到被破解的和/或恶意的系统软件的攻击。
对应用的执行进行隔离是被利用来保护应用数据免受未经授权的访问的一种安全性实践。隔离常常包括向应用提供受严格控制的资源集合。但是隔离主要是被用来保护应用免受运行在相同系统上的不可信任的应用的侵害。此外,隔离技术通常需要使用两个操作系统或两个虚拟机,这是效率低下、资源密集的,和/或需要对应用代码做出修改。
发明内容
本公开描述了用于保护应用秘密免受操作系统的未经授权的访问并且同时依赖于操作系统进行资源管理的系统和方法。这样的秘密可以包括加密密钥、口令、受保护的内容和/或应用二进制代码。此外,OS资源管理可以包括资源分配、存储器管理、存储器调度、CPU调度、线程创建和/或线程同步。
举例来说,计算设备可以实施一种方法,所述方法包括管理操作系统执行环境以及管理安全执行环境,其中操作系统执行环境包括第一用户模式和第一内核模式,安全执行环境包括第二用户模式和第二内核模式。此外,计算设备可以在安全执行环境的第二用户模式内执行隔离进程,并且通过第二内核模式向隔离进程提供第一内核模式的一项或更多项系统服务。此外,计算设备可以限制或禁用第一用户模式和第一内核模式对一个或更多存储器页面的访问。在一些实例中,所述一个或更多存储器页面可以存储与隔离进程相关联的秘密。
提供本发明内容以便以简化形式介绍下面将在具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在被用来帮助确定所要求保护的主题的范围。术语“技术”例如可以在整个文档中指代通过前面描述的情境所允许的(多个)系统、(多种)方法、计算机可读指令、(多个)模块、算法、硬件逻辑和/或(多项)操作。
附图说明
将参照附图来阐述具体实施方式。在图中,附图标记的最左侧数字标识该附图标记首次出现的图。不同图中的相同附图标记的使用指示类似的或相同的项目或特征。
图1是描绘出根据各个示例的用于保护应用秘密免受操作系统攻击的环境的框图。
图2是描绘出根据各个示例的用于保护应用秘密免受操作系统攻击的环境的框图。
图3是描绘出根据各个示例的用于向隔离的用户模式进程透明地提供内核服务的环境的框图。
图4是图示出了根据一些示例的用于保护应用秘密免受操作系统攻击的过程的流程图。
图5是图示出了根据一些示例的用于保护应用秘密免受操作系统攻击的过程的流程图。
图6是图示出了根据一些示例的用于保护应用秘密免受操作系统攻击的过程的流程图。
图7是根据一些示例的计算设备的框图。
具体实施方式
下面的详细描述一般地涉及通过使用代理内核和隔离用户模式来保护应用秘密免受操作系统的侵害。在各个示例中,各种技术和架构生成与正常执行环境分开的安全执行环境。安全执行环境可以包括内核模式和用户模式。此外,正常执行环境的OS内核无法访问属于执行在安全执行环境内的进程的应用数据,但是所述进程依赖于所述OS内核进行资源管理。
关于执行在正常执行环境内的进程,处理器可以具有两种不同模式:用户模式和内核模式。此外,处理器的模式可以确定关于所能实施的操作的类型和范围的限制。因此,处理器可以根据当前正在执行的进程在两种模式之间进行切换。通常来说,用户应用进程运行在用户模式下,而属于OS内核的进程运行在内核模式中。
此外,当用户模式应用的执行开始时,OS内核创建用于所述应用的进程。所述进程可以为应用提供无法由其他用户模式应用改动的私有虚拟地址空间。此外,所述进程运行在其虚拟地址空间内,并且所述进程无法访问为OS内核保留的虚拟地址。限制用户模式应用的虚拟地址空间可以防止所述应用改动并且可能损害OS数据。但是当处理器处于内核模式时,其被假设正在执行受信任的应用,因此内核模式进程可以执行任何指令以及引用任何虚拟地址。因此,应用秘密可以由被破解的和/或恶意的OS内核或者任何内核模式进程进行访问。为了保护应用秘密,这里所描述的示例可以禁用内核模式进程对于应用秘密的访问,同时依赖于内核模式进程进行内核服务。
安全执行环境可以包括第二内核模式和第二用户模式。代理内核可以运行在第二内核模式中,并且一个或更多应用可以作为隔离用户模式应用执行在安全执行环境的用户模式中。为了隐藏隔离用户模式应用的应用数据,代理内核可以管理对于与安全执行环境相关联的虚拟地址的访问。举例来说,代理内核可以禁用OS内核对于与隔离用户模式应用相关联的虚拟地址空间的访问。此外,代理内核可以访问为所述内核保留的虚拟地址。
在一些示例中,代理内核可以实施两个或更多虚拟信任等级。对于两个虚拟信任等级,较高虚拟信任等级可以访问正常执行环境的虚拟地址空间和安全执行环境的虚拟地址空间。但是较低虚拟信任等级无法访问安全执行环境的虚拟地址空间。此外,与安全执行环境相关联的虚拟地址可以存储属于代理内核和隔离用户模式应用的数据。此外,执行在正常执行环境内的进程被指派到较低虚拟信任等级。因此,给定OS内核属于较低虚拟信任等级并且无法访问属于较高虚拟信任等级的数据,因而可以保护属于隔离用户模式应用的数据免受OS内核的侵害。
与隔离用户模式进程相关联的各个单独的存储器页面可以具有不同的可访问性规则。举例来说,第一存储器页面可以对于较低虚拟信任等级内的进程具有执行只读保护权利,而第二存储器页面可以对于较低虚拟信任等级内的进程具有只读保护权利。此外,与隔离用户模式进程相关联的各个单独的存储器页面可以对于较低虚拟信任等级进程和较高虚拟信任等级进程具有不同的可访问性规则。举例来说,一些隔离用户模式页面(诸如对应于进程的栈或堆的存储器页面)对于执行在较低虚拟信任等级内的进程可以是不可访问的。但是在一些示例中,存储器页面可以在执行在较低虚拟信任等级和较高虚拟信任等级内的进程之间共享。因此,针对执行在较低虚拟信任等级内的进程对于共享存储器页面的访问保护可以是只读可执行或只读不可执行。
例如,在Windows环境中,诸如ntdll和/或kernel32之类的共享库可以是较低虚拟信任等级内的进程只读可执行的。把共享存储器页面的访问保护设定成只读防止执行在较低虚拟信任等级内的进程恶意修改可由较高虚拟信任等级内的进程使用的存储器页面。访问保护可以包括执行、执行读、执行读写、执行写时拷贝、执行读写、无访问、只读、读写、写时拷贝等等。
如这里所使用的“执行”允许对于页面的执行访问;“执行读”允许对于页面的执行或只读访问;“执行读写”允许对于页面的执行、只读或者读/写访问;“执行写时拷贝”允许对于文件映射对象的被映射视图的执行、只读或者写时拷贝访问;“无访问”禁用对于页面的所有访问;“只读”允许对于页面的只读访问;“读写”允许对于页面的只读或读/写访问;“写时拷贝”允许对于文件映射对象的被映射视图的只读或写时拷贝访问。
在一些示例中,内核服务可以在较高虚拟信任模式内执行。在执行内核服务之前,代理内核可以实施内核服务的代码完整性检查。此外,代理内核可以在执行期间把对应于内核服务的代码的访问保护设定成只读。
此外,代理内核可以充当隔离用户模式应用与用于提供OS服务的OS内核之间的透明接口。在一些示例中,除了诸如应用配置管理之类的API(应用程序接口)、GUI(图形用户界面)服务以及用户界面组件之外,执行在正常执行环境的内核模式中的OS服务还可以提供基本计算原语,诸如线程、虚拟存储器以及文件访问。举例来说,OS内核可以确定何时把指派给隔离用户模式应用进程的虚拟存储器从物理存储器移除并且分页到次要存储装置。此外,OS内核可以实施对于存储和取回与执行在安全执行环境内的进程相关联的分页数据所需要的所有I/O。
在一些示例中,隔离用户模式应用可以通过系统调用来请求OS内核服务。结果是,处理器可以陷入到安全执行环境的内核模式中。一旦发生去到代理内核的切换,代理内核就可以满足所述请求或者把系统调用调遣到OS内核。
在一些示例中,代理内核可以提供内核服务。举例来说,代理内核可以提供OS内核服务的一个子集。因此,如果系统调用对应于代理内核所提供的服务,则代理内核可以使用包含在代理内核中的逻辑来满足所述请求。
举例来说,代理内核可以为隔离用户模式应用供应密码服务。代理内核可以满足诸如来自隔离用户模式应用的针对密码服务的请求。在安全执行环境内提供密码服务保护隔离用户模式应用免受这样的风险,即对于可能涉及隔离用户模式应用秘密的密码服务依赖不可信任的内核。
在一些示例中,代理内核不能包括调度功能。举例来说,OS内核可以确定何时把执行在安全执行环境中的线程调度到CPU核心上。作为另一个示例,OS内核可以切换到执行在安全执行环境中的进程的情境中。因此,执行在安全执行环境内的线程和进程只能回调到正常执行环境中。
如果代理内核不提供与系统调用相关联的OS内核服务,则代理内核可以把系统调用调遣到OS内核。代理内核可以通过系统缓冲器经由封送(marshaling)向OS内核安全地提供与系统调用有关的应用数据。举例来说,代理内核可以使用拷贝复原技术模拟引用调用(call by reference)。
封送可以包括以下过程:把对象的存储器表示转换为适合于存储或传送的数据格式,和/或以适当的数据格式传送或存储所述对象。封送还可以包括在各个进程和/或程序之间传输对象和/或数据的过程。一旦所封送的对象被发送到存储装置或者被传送,则所封送对象可以被解封成原始对象。
在一些其他示例中,代理内核可以把应用数据拷贝到虚拟地址,并且允许内核访问所述虚拟地址。此外,代理内核可以把应用数据放置在内核已经分配给应用的存储器位置处。因此,代理内核可以相对于内核透明地进行操作。
代理内核可以保持与安全执行环境相关联的存储器页面的散列以便确保数据完整性。在一些示例中,代理内核可以在把存储器页面的内容读取到存储器中之前使用存储器页面的散列对存储器页面进行验证。附加地并且可替换地,与安全执行环境相关联的存储器页面可以在被写入到次要存储装置(比如硬盘)之前被加密,并且在随后可用于安全执行环境时被解密。此外,一旦页面被代理内核释放,就可以在改变其用途之前将其归零。
在一些示例中,管理程序可以管理正常执行环境和安全执行环境。此外,管理程序可以提供包括正常执行环境和安全执行环境的虚拟分区。此外,正常执行环境和安全执行环境可以利用虚拟分区的访客物理地址空间。在一些示例中,管理程序可以包括:Microsoft Hyper-VTM、Citrix XENServerTM、VMWare ESXTM等等。此外,一个或更多访客OS可以在由管理程序提供的虚拟分区内执行。访客OS可以包括Microsoft WindowsTMOS、Linux/BSD/UNIX OS、Apple® OS XTM等等。
将参照图1-7进一步描述各个示例。
示例环境
图1描绘出包括根据各个示例的用于保护应用秘密免受操作系统的未经授权的访问的计算设备100的环境。在一些示例中,计算设备100的各个设备和/或组件包括可以通过一个或更多共享系统缓冲器106彼此通信的OS执行环境102和安全执行环境104。
OS执行环境102可以提供用于代码执行的框架并且为应用提供共同的服务。在一些示例中,OS执行环境102可以包括用户模式108和内核模式110。用户应用(诸如可以是非特权进程的进程A 112)可以在用户模式108中执行,而诸如内核服务114之类的OS组件可以在内核模式110中执行。
进程A 112可以通过系统调用请求一项或更多项内核服务114。在一些示例中,系统调用可以触发特权指令的实施,诸如进程创建或者输入/输出操作。此外,内核服务114可以管理与进程A 112的执行有关的进程A内核数据116。在一些示例中,进程内核数据(诸如进程A内核数据116)可以包括与存储器管理有关的数据(例如虚拟地址空间、进程句柄表等等)。
安全执行环境104可以提供保护用户应用秘密免受内核服务114(其可能是不可信任的内核服务)的侵害的执行环境。安全执行环境104可以包括用户模式118和内核模式120。在一些示例中,代理内核122可以执行在安全执行环境104的内核模式120中。此外,进程B 124可以作为隔离用户模式应用执行在安全执行环境104的用户模式118中。
当在安全执行环境104内执行时,进程B 124仍然可以从OS执行环境102的内核服务114请求服务。举例来说,当进程B 124执行时,内核服务114可以为进程B 124提供私有虚拟地址空间(也就是用户空间)。但是代理内核122可以确定对于进程B 124的用户空间的存储器访问保护。举例来说,代理内核122可以禁用内核服务114对于进程B 124的用户空间的访问。
在一些示例中,代理内核122可以为进程B 124提供OS内核服务。举例来说,代理内核122可以通过依赖于其自身的内核逻辑来满足由进程B 124发出的内核服务请求。所述内核逻辑可以包括内核服务114的系统调用API的一个子集。在一些示例中,代理内核124可以为执行在安全执行环境104内的进程提供密码服务。在安全执行环境104内实施密码服务可以保护机密密码信息免于被暴露给潜在地不可信任的内核服务114。
代理内核122可以向OS执行环境102的内核服务114发送内核服务请求。举例来说,进程B 124可以通过系统调用请求内核服务,并且代理内核122可以把与进程B 124的系统调用相关联的参数封送到内核服务114。在一些实例中,所封送的参数的至少一部分可以作为内核数据128被存储在正常执行环境102内。
在一些实例中,代理内核122可以使用共享系统缓冲器106将参数封送到内核服务114。在封送参数之前,代理内核可以确定将把与进程B 124相关联的哪些数据提供给内核服务114。举例来说,代理内核122可以确保被映射到内核数据(诸如安全执行环境104的进程B内核数据126)的一个或更多存储器页面对于内核服务114是不可访问的,同时使得被映射到内核数据(诸如OS执行环境102的进程B内核数据128)的一个或更多存储器页面是可访问的。
除了控制对于执行在安全执行环境的用户模式118内的进程的存储器访问保护之外,代理内核122还可以确定对于与安全执行环境104的内核模式120相关联的虚拟地址空间的存储器访问保护。举例来说,内核模式120可以包括与进程B 124的执行有关的内核数据126。此外,代理内核122可以控制执行在OS执行环境102内的进程对于内核数据126的访问。举例来说,代理内核可以禁用内核服务114对内核数据126的访问。此外,代理内核122可以防止与其进程相关联的虚拟存储器在没有首先被加密的情况下被分页。
图2描绘出包括根据各个示例的用于保护应用秘密免受操作系统的未经授权的访问的计算设备200的环境。如图2中所示,计算设备200可以包括管理程序202以及一个或更多虚拟分区,诸如虚拟分区204-1、204-2等等。
管理程序202可以包括“裸机(bare metal)”管理程序,其运行在计算设备200上而没有介入的OS,并且实际上包括其自身的最小OS。在一些示例中,管理程序202可以管理虚拟分区204。此外,各个单独的虚拟分区204可以包括由管理程序202创建的虚拟机(VM)。此外,各个单独的虚拟分区204可以包括访客OS内核,诸如访客OS内核206-1、206-2等等。在一些示例中,访客OS内核206可以包括Microsoft WindowsTMOS、Linux/BSD/UNIX OS、Apple®OS等等的内核。
在图2的所图示出的示例中,虚拟分区204-1可以包括较低虚拟信任等级208(诸如OS执行环境102)、较高虚拟信任等级210(诸如安全执行环境104)以及系统缓冲器212。在一些示例中,系统缓冲器212可以被用来在较低虚拟信任等级208与较高虚拟信任等级210之间进行通信。此外,对于较低虚拟信任等级208与较高虚拟信任等级210之间的通信可以使用一种或更多种进程间通信方法,诸如消息传递、同步、共享存储器页面以及远程规程调用(RPC)。
较低虚拟信任等级208可以包括访客OS内核206-1(诸如内核服务114)、虚拟进程A214以及与进程A 214相关联的内核数据216。此外,较高虚拟信任等级210可以包括代理内核218(诸如代理内核122)、虚拟进程B 220以及与虚拟进程B 220相关联的内核数据222。
管理程序202可以为各个单独的虚拟分区204提供虚拟操作平台(例如虚拟机(VM))。所述虚拟操作平台可以包括对于各个单独的虚拟分区204而言是私有的虚拟存储器地址区段以及处理器的虚拟视图。举例来说,管理程序202可以为访客OS内核206-1提供访客物理地址。此外,执行在虚拟分区204-1内的虚拟进程214和220可以通过由访客OS内核206-1控制的页表访问访客物理地址。页表通常记录其所涉及的存储器页面的属性(例如存储器访问保护),其中包括规定页面内容可以被访问的程度。除了管理程序202所许可的之外,虚拟容器204-1之外的资源和活动对于虚拟容器204-1内的虚拟进程214和220是不可见的。
此外,管理程序202可以包括页面和地址转换表224(例如二级地址转换、扩展页表等等),其跟踪哪一个虚拟容器206被许可使用计算设备201内的存储器和/或存储装置的每一个部分。举例来说,页面和地址转换表224可以把虚拟容器204的虚拟存储器地址区段中的访客物理地址映射到计算设备201的系统物理地址。
较高虚拟信任等级210的代理内核218可以保护属于执行在较高虚拟信任等级210内的进程的数据。举例来说,较高虚拟信任等级210可以防止访客OS内核206-1访问与虚拟进程B相关联的内核数据222。在一些示例中,管理程序的页面和地址转换表224可以被扩展,以便许可代理内核218控制较低虚拟信任等级208对于正由较高虚拟信任等级210使用的虚拟地址的访问。附加地或可替换地,代理内核218可以改动OS内核206-1的一个或更多页表,以便许可代理内核218控制较低虚拟信任等级208对于正由较高虚拟信任等级210使用的系统物理地址的访问。
表内的每一项映射可以被称作一个页表条目。页表条目可以包括多个属性字段集合,诸如用于较低虚拟信任等级208的属性集合、用于较高虚拟信任等级210的属性集合以及其他属性集合。举例来说,映射到内核数据222的页面条目可以具有对于较低虚拟信任等级208被配置成“无访问”的属性集合。
管理程序202可以包括输入输出存储器管理单元(IOMMU)226。IOMMU 226可以把设备可见的虚拟地址映射到系统物理地址,从而为虚拟分区204提供对于计算设备201的硬件的贯通(passthrough)访问。在一些示例中,IOMMU 226可以免受直接存储器访问攻击。
图3描绘出根据各个示例的用于向隔离用户模式进程透明地提供内核服务的架构300。在一些示例中,环境300的各个设备和/或组件可以包括管理程序302(诸如管理程序202)、内核服务304(诸如内核服务114和/或访客OS内核206-1)、代理内核306(诸如代理内核120和/或218)以及一个或更多系统缓冲器308(诸如系统缓冲器106和/或212)。如图3中所示,管理程序302可以管理包括内核服务302和代理内核306的虚拟分区310。在一些示例中,内核服务304和代理内核306可以通过系统缓冲器308进行通信。
内核服务304可以包括系统服务表312、存储器管理器314、调度器316和跨模式调遣器318。系统服务表312可以包括指向内核服务304的功能的功能指针。此外,系统服务表312可以由内核服务304在页表层级进行保护,因此只有内核模式服务302可以从系统服务表310进行读取和写入。
存储器管理器314可以管理由管理程序302提供给内核服务304的访客物理地址。在某些情况下,存储器管理器314可以包括在虚拟分区310内实施虚拟寻址方案。此外,存储器管理器314可以向执行在虚拟分区310内的进程分配用户空间。此外,存储器管理器314可以保留和提交存储器,创建防护页面、管理堆以及应用文件映射。举例来说,存储器管理器314可以确定何时把指派给执行在虚拟分区310内的进程的虚拟存储器从物理存储器移除以及分页到次要存储装置。
调度器316可以确定何时为执行在虚拟分区310内的线程和进程提供对于虚拟资源的访问。举例来说,调度器316可以确定何时把执行在虚拟分区310内的线程调度到虚拟CPU核心上。作为另一个示例,调度器316可以在执行在虚拟分区310内的各个进程之间实施情境切换。
跨模式调遣器318可以管理内核服务304与代理内核306之间的通信。此外,跨模式调遣器318可以确定是否要把接收自代理内核306的通信路由到系统服务表312、存储器管理器314或调度器316中的至少一个。此外,跨模式调遣器318可以通过系统缓冲器308发送和接收通信。
代理内核306可以包括陷阱代码(trap code)320、页表管理器322、系统调用处理程序324、中断处理程序326、异常处理程序328、跨模式调遣器330、内核逻辑332以及密码服务模块334。陷阱代码320可以从虚拟分区310内的另一模式切换到代理内核306。取决于中断或陷阱的类型,陷阱代码320可以把中断或陷阱传递到页表管理器322、系统调用处理程序324、中断处理程序326或异常处理程序328。中断处理程序326可以处置接收自正在隔离用户模式(诸如用户模式118,图3中未示出)中执行的进程的安全中断。在一些示例中,内核服务304无法掩蔽或者生成针对代理内核的中断。异常处理程序328可以处置接收自正在隔离用户模式中执行的进程的异常。在一些示例中,异常处理程序328可以与内核服务304所提供的异常处理程序相同。跨模式调遣器330可以管理内核服务304与代理内核306之间的通信。
系统调用处理程序324可以处置接收自正在隔离用户模式中执行的进程的系统调用。此外,系统调用处理程序324可以确定内核逻辑332可以满足与系统调用相关联的服务请求。此外,系统调用处理程序324可以把服务请求提供到内核逻辑332。内核逻辑332可以进一步满足请求,并且处理器可以切换回到正在隔离用户模式中执行的进程。
此外,系统调用处理程序324可以确定是否应当由内核服务304满足服务请求。如果系统调用处理程序确定应当由内核服务304满足服务请求,则系统调用处理程序324可以把与系统调用相关联的参数提供到封送器/解封器(marshaler/unmarshaler)336。此外,封送器/解封器336可以对系统调用和系统调用参数进行格式化以供内核服务304使用。在一些示例中,封送器/解封器336还可以保护与生成系统调用的隔离用户模式进程相关联的数据。此外,如果内核服务304在服务请求的满足期间返回数据,则封送器/解封器336可以对所返回的数据进行格式化以供代理内核306使用。
页表管理器322可以充当用于与代理内核306相关联的隔离用户模式的存储器管理单元。在一些示例中,代理内核306可以保持由内核服务304保持的页表的影子表338。此外,页表管理器322可以监测虚拟分区310内的系统调用,以便确保影子表与内核服务304所保持的页表同步。举例来说,影响页表的系统调用可能需要由内核服务304和代理内核306进行处置,以便允许更新页表及其影子表二者。此外,在一些示例中,在内核服务304内模仿发生在代理内核306内的页面故障,以便确保由内核服务304保持的页表反映出代理内核306内的操作。
此外,页表管理器322可以控制访客物理地址存储器页面的存储器访问属性。举例来说,页表管理器322可以保持一个表,该表标识出一个或更多访客物理地址页面以及内核服务304和代理内核306对于各个单独的访客物理地址页面的存储器访问属性。举例来说,所述表可以指示,内核服务304无权访问某一访客物理地址页面,而代理内核306则对于所述访客物理地址页面具有执行只读访问权利。
在一些示例中,页表管理器322可以处置在与代理内核306相关联的隔离用户模式内的进程的执行期间发生的页面故障。举例来说,当与隔离用户模式进程相关联的存储器页面被提交时,代理内核306可以释放所述存储器页面,并且允许内核服务304访问与所述存储器页面相关联的虚拟地址。在某些情况下,所释放的存储器在其可以由另一进程访问之前可以被归零。
此外,页表管理器322可以通过管理加密和密码验证来保护与代理内核306相关联的存储器页面。举例来说,页表管理器322可以在页面故障处置期间针对散列验证存储器页面。此外,页表管理器322可以保持经过修改的存储器页面的散列,并且在存储器页面提交期间验证存储器页面。
举例来说,如果某一存储器页面仅对于代理内核306是可访问的,则代理内核306可以在内核服务304把所述存储器页面分页到次要存储装置之前对所述存储器页面进行加密。响应于页面故障,页表管理器可以禁用内核服务304对于存储器页面的访问,并且随后指示对存储器页面进行解密。在存储器页面被解密之后,代理内核306可以使用先前计算的密码散列来验证存储器页面的完整性。如果存储器页面可以由内核服务304访问但是不可由内核服务304修改(例如读取访问和/或执行访问),则页表管理器322可以在内核服务304的访问期间通过以下操作确保存储器页面的完整性:在向内核服务304提供访问之前计算密码散列,并且在代理内核306后来访问存储器页面时使用所述密码散列对存储器页面进行验证。
在一些示例中,所述加密、散列化和验证可以由密码服务模块334实施。在一些示例中,密码服务模块334可以利用受信任平台模块(TPM)340安全地实施存储器页面的加密、散列化和验证。此外,密码服务模块334可以包括多个加密密钥。举例来说,密码服务模块334可以包括用于各个单独的隔离用户模式应用的根加密密钥。在一些示例中,所述根加密密钥可以在隔离用户模式进程的创建期间被提供给代理内核306。此外,密码服务模块334可以将一个或更多加密密钥用于安全的通信和安全的存储。此外,在一些示例中,隔离用户模式进程不能有权访问密码服务模块334的加密密钥。举例来说,与隔离用户模式应用相比,代理内核306可以具有更高程度的存储器访问许可。
图4是根据一些示例的建立用于隔离用户模式应用的受保护地址空间的流程图400。举例来说,流程图400可以在隔离用户模式进程的创建期间被使用。
在402处,向内核发送创建隔离用户模式进程的请求,其中包括标识出一个或更多秘密的数据。例如在Windows环境中,可以调用NtCreateUserProcess。作为另一个示例,在Linux环境中,可以调用fork()。此外,所述请求可以包括标识根加密密钥、存储加密密钥、通信加密密钥、页面散列和/或用以在进程内运行的二进制代码的数据。举例来说,所述请求可以包括标识已加密页面散列以及被用来生成页面散列的已加密密钥的数据。
在404处,内核可以为进程分配私有用户空间。例如,在WindowsTM环境或Apple®iOS环境中,内核可以为进程分配私有虚拟地址空间。
在406处,代理内核可以禁用内核对于进程的私有用户空间的访问。举例来说,代理内核可以改动被映射到用户空间的页面条目的属性集合。举例来说,代理内核可以把所述属性集合配置成只读。
在408处,代理内核可以对与所述请求相关联的一个或更多秘密进行解密和/或验证。举例来说,代理内核可以对在所述请求中标识出的已加密密钥进行解密,并且使用所述密钥对在所述请求中标识出的页面散列进行验证。
图5是根据一些示例的经由代理内核向隔离用户模式进程透明地提供内核服务的流程图500。举例来说,流程图500可以被用来服务于来自隔离用户模式进程的系统调用。
在502处,代理内核可以从隔离用户模式进程接收针对内核服务的系统调用。举例来说,代理内核可以从隔离用户模式应用的进程接收针对设备的请求。在一些示例中,所述系统调用可以陷入到代理内核的安全执行环境中。此外,在一些示例中,代理内核可以确定其本地内核逻辑是否可以满足服务请求。
在504处,代理内核可以通过系统缓冲器把系统调用的一个或更多参数封送到内核服务。例如在Windows环境中,代理内核可以向内核发送包括针对设备的请求的消息调用。此外,可以把与设备请求相关联的一项或更多项属性转变到在内核的正常执行环境内的适当格式。此外,可以通过系统缓冲器把经过转变的属性提供给内核。
在某些情况下,代理内核可以在确定服务请求无法由代理内核的内核逻辑满足之后把系统调用和系统调用的参数传输到内核服务。
在506处,代理内核可以通过系统缓冲器从内核接收服务请求的一项或更多项结果。例如在Windows环境中,代理内核可以接收与服务请求相关联的返回数值。在某些情况下,。
在508处,代理内核可以将服务请求的一项或更多项结果解封。在510处,代理内核可以把已解封的结果发送到隔离用户模式进程。举例来说,如果设备请求包括读取,则已解封的结果可以包含从被请求的设备读取的数据。
图6是用于安全地管理被分配给隔离用户模式进程的虚拟存储器的过程的流程图600。举例来说,在向次要存储装置和从次要存储装置分页与隔离用户模式进程相关联的数据时,可以使用在流程图600中图示出的过程。
在602处,内核服务模块可以标识与隔离用户模式进程相关联的存储器页面以便写入到次要存储装置。举例来说,存储器管理器314(图6中未示出)可以标识出某一存储器页面应当被写入到硬盘,这至少部分地基于所述存储器管理器把所述物理存储器页面重新应用到另一种用途。
在604处,代理内核可以计算存储器页面的散列。举例来说,页表管理器322(图6中未示出)可以指示密码服务模块334(图6中未示出)计算存储器页面的第一密码散列。
在606处,代理内核可以对存储器页面进行加密,并且为一项或更多项内核服务提供对于已加密存储器页面的访问。举例来说,密码服务模块334可以对存储器页面进行加密,并且页表管理器322可以为一项或更多项内核服务提供只读访问。因此,一项或更多项内核服务可以对存储器页面进行管理,但是没有权利访问其内容。
在608处,一项或更多项内核服务可以把已加密存储器页面存储到次要存储装置。举例来说,存储器管理器314(图6中未示出)可以把已加密存储器页面存储到硬盘上的页面文件。
在610处,一项或更多项内核服务可以把已加密存储器页面从次要存储装置加载到物理存储器中。举例来说,存储器管理器314可以至少部分地基于页面故障的发生把已加密存储器页面从硬盘加载到物理存储器中。
在612处,代理内核可以禁用一项或更多项内核服务对于存储器页面的访问,并且对已加密存储器页面进行解密。举例来说,页表管理器322可以禁用一项或更多项内核服务304(图6中未示出)对于已加密存储器页面的访问,并且随后密码服务模块334可以对已加密存储器页面进行解密。
在614处,代理内核可以把存储器页面与密码散列进行比较。举例来说,密码服务模块334可以计算存储器页面的第二散列,并且页表管理器322可以将第一和第二密码散列进行比较,以便验证存储器页面的完整性。
这里所描述和/或在附图中描绘的流程图中的任何例程描述、元件或块应当被理解成潜在地表示包括用于实施所述例程中的特定逻辑功能或元件的一条或更多条可执行指令的代码模块、代码段或代码部分。替换的实施方式被包括在这里所描述的示例的范围内,其中如本领域技术人员将理解的,取决于所涉及的功能,各个元件或功能可以被删除或者按照与所示出或讨论的顺序不同的顺序来执行,包括基本上同步地执行或者按照相反的顺序执行。
图7图示出了可以被用来实施这里所描述的模块和功能的计算设备700的示例配置。举例来说,计算设备100和/或计算设备200可以包括类似于计算设备700的架构。
计算设备700可以包括能够诸如通过系统总线714或其他适当的连接彼此通信的至少一个处理器702、存储器704、(多个)通信接口706、显示设备708、其他输入/输出(I/O)设备710以及一个或更多大容量存储设备712。
处理器702可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器702可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器702可以被配置成获取并且执行存储在存储器704、大容量存储设备712或者其他计算机可读介质中的计算机可读指令。
存储器704和大容量存储设备712是用于存储指令的计算机存储介质的示例,所述指令由处理器702执行来实施前面所描述的各种功能。举例来说,存储器704一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备712一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器704和大容量存储设备712在这里都可以被统称为存储器或计算机存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非瞬时性介质,所述计算机程序代码可以由处理器702作为被配置成实施在这里的示例中所描述的操作和功能的特定机器来执行。
虽然在图7中被图示成存储在计算设备700的存储器704中,但是模块716、718和720或者其部分可以使用可由计算设备700访问的任何形式的计算机可读介质来实施。如这里所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机存储介质和通信介质。
计算机存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算设备访问的任何其他非传送介质。
与此相对,通信介质可以在诸如载波或其他传送机制之类的已调数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。这里所定义的计算机存储介质不包括通信介质。
计算设备700还可以包括一个或更多通信接口706,以用于诸如通过网络、直接连接等等与其他设备交换数据,正如前面所讨论的那样。通信接口706可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口706还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备708,以用于向用户显示信息和图像。其他I/O设备710可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
存储器704可以包括用于根据这里所描述的示例基于分块方案(blockingscheme)链接各条记录的模块和组件。存储器704可以包括用于实施各种功能的多个模块,诸如管理程序模块716(诸如管理程序202)、一个或更多虚拟分区模块(诸如718-1和718-2)。管理程序模块716可以被用来管理一个或更多虚拟分区,诸如虚拟分区718-1或718-2。此外,虚拟分区模块718-1可以包括较低虚拟信任等级720(诸如较低虚拟信任等级208)和较高虚拟信任等级722(诸如较高虚拟信任等级210)。此外,虚拟分区模块718-2可以包括访客OS 724(诸如访客OS 206-2)。存储器704还可以包括实施其他特征的其他模块726以及包括中间计算等等的其他数据728。
示例条款
A:一种方法,所述方法包括:管理包括第一用户模式和第一内核模式的操作系统执行环境;管理包括第二用户模式和第二内核模式的安全执行环境;在安全执行环境的第二用户模式内执行隔离进程;通过第二内核模式向隔离进程提供第一内核模式的一项或更多项系统服务;以及通过禁用第一用户模式和第一内核模式对于一个或更多存储器页面的访问,保护隔离进程免受来自系统服务的攻击。
B:如段落A所述的方法,其中,禁用访问包括禁用对于存储器页面的读取、写入或执行访问中的至少一个。
C:如段落A或B所述的方法,其中,禁用访问包括,禁用写入访问而许可读取或执行访问中的至少一个。
D:如段落A-C当中的任一段落所述的方法,其中,操作系统执行环境和安全执行环境由管理程序管理。
E:如段落A-D当中的任一段落所述的方法,所述方法还包括:由第一内核模式的一项或更多项服务把所述一个或更多存储器页面分配到隔离进程;对所述一个或更多存储器页面进行加密以形成一个或更多已加密存储器页面;以及由第一内核模式的一项或更多项服务把所述一个或更多已加密存储器页面存储到硬盘。
F:如段落A-E当中的任一段落所述的方法,所述方法还包括:由第一内核模式的一项或更多项服务至少部分地基于页面故障把所述一个或更多已加密存储器页面加载到物理存储器中;对所述一个或更多已加密存储器页面进行解密以形成一个或更多已解密存储器页面;以及验证所述一个或更多已解密存储器页面的完整性。
G:如段落A-F当中的任一段落所述的方法,所述方法还包括:通过第二内核模式的代理服务从隔离进程向第一内核模式的一项或更多项系统服务中的一项系统服务发送系统调用;确定将要提供到第一内核模式的一项或更多项服务的系统调用参数;以及通过系统缓冲器把系统调用参数封送到第一内核模式的一项或更多项服务。
H:如段落A-G当中的任一段落所述的方法,所述方法还包括:由第一内核模式的一项或更多项系统服务通过第二内核模式的代理服务把与系统调用的执行相关联的数据透明地传输到隔离进程。
I:一种在其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于配置计算机实施如段落A-H当中的任一段落所述的方法。
J:一种设备,所述设备包括:在其上具有用于配置计算机实施如段落A-H当中的任一段落所述的方法的计算机可执行指令的计算机可读介质,适于执行所述指令以便实施如段落A-H当中的任一段落所述的方法的处理单元。
K:一种包括用于实施如段落A-H当中的任一段落所述的方法的构件的系统。
L:一种系统,所述系统包括:一个或更多处理器;存储器;被映射到存储器的一个或更多地址的地址空间;与针对地址空间的第一访问权利相关联的第一信任等级;与针对地址空间的第二访问权利相关联的第二信任等级,其中第二访问权利与第一访问权利相比提供对于地址空间的更高程度的访问;根据第一访问策略在第一信任等级中执行在所述一个或更多处理器上的内核;根据第二访问策略在第二信任等级中执行在所述一个或更多处理器上的代理内核;以及在第二信任等级中执行在所述一个或更多处理器上的一个或更多应用进程,其中代理内核在应用进程与内核之间透明地传输服务请求而不会把所述一个或更多应用进程的秘密暴露给内核。
M:如段落L所述的系统,所述系统还包括:根据第一访问策略对于内核而言可访问的地址空间内的第一组地址以及地址空间内的第二组地址,其中内核根据第一策略对于第二组地址具有有限的访问,并且代理内核根据第二访问策略对于第二组地址具有完全的访问。
N:如段落L或M所述的系统,所述系统还包括:根据第二访问策略在第二信任等级中执行的页表管理器模块,所述模块被编程来:保持内核的页表的影子表;以及确定与被映射到第二组地址的访客物理地址页面相关联的页面故障的发生。
O:如段落L-N当中的任一段落所述的系统,其中,第一访问策略包括以下各项当中的至少一项:禁用对于第二组地址空间的读取、写入或执行访问中的至少一个;或者禁用写入访问而许可对于地址空间的读取和执行访问中的至少一个。
P:如段落L-O当中的任一段落所述的系统,所述系统还包括:被编程来部分地基于密码散列对访客物理地址页面进行验证的密码模块。
Q:如段落L-P当中的任一段落所述的系统,其中,所述地址空间与由管理程序提供的访客物理地址相关联,并且第一信任等级和第二信任等级表示由管理程序提供的虚拟分区的虚拟信任等级。
R:如段落L-Q当中的任一段落所述的系统,所述系统还包括用于在应用进程与内核之间透明地传输服务请求的系统缓冲器。
S:一种在其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在执行时配置计算机实施包括以下项的动作:生成为用户应用创建隔离用户模式进程的系统调用;由内核为隔离用户模式进程分配虚拟地址空间;以及禁用内核对虚拟地址空间的访问,其中通过由代理内核修改被映射到虚拟地址空间的一个或更多访客物理地址存储器页面的存储器访问属性来禁用对于虚拟地址空间的访问。
T:如段落S所述的计算机可读介质,所述计算机可读介质还包括:生成所述一个或更多访客物理地址存储器页面的第一密码散列;至少部分地基于页面故障的发生而生成所述一个或更多访客物理地址存储器页面的第二密码散列;以及至少部分地基于第一密码散列与第二密码散列的比较对所述一个或更多存储器页面进行验证。
U:如段落S-T当中的任一段落所述的计算机可读介质,其中,所述系统调用表示第一系统调用,并且所述动作还包括:由隔离用户模式进程生成请求由内核提供的一项或更多项内核服务的第二系统调用;把与第二系统调用相关联的参数封送到内核;以及从内核向隔离用户模式进程提供一项或更多项服务。
V:如段落S-U当中的任一段落所述的计算机可读介质,其中,所述动作还包括由内核切换到隔离用户模式进程的情境。
W:如段落S-V当中的任一段落所述的计算机可读介质,其中,禁用访问包括以下各项当中的至少一项:禁用对于所述一个或更多存储器页面的读取、写入或执行访问中的至少一个;或者禁用写入访问而许可对于所述一个或更多存储器页面的读取和执行访问中的至少一个。
结论
虽然已经通过特定于结构特征和/或方法动作的语言描述了各个技术,但是应当理解的是,所附权利要求书不一定受限于所描述的特征或动作。相反,所述特征和动作是作为这样的技术的示例实施方式来描述的。
在各个单独的块中图示出了示例过程的操作并且参照这些块对其进行了概括。所述过程被描述成块的逻辑流,其中的每一个块可以表示能够通过硬件、软件或者硬件与软件的组合来实施的一项或更多项操作。在软件的情境中,所述操作表示存储在一个或更多计算机可读介质上的计算机可执行指令,所述计算机可执行指令在由一个或更多处理器执行时使得所述一个或更多处理器能够实施所述的操作。一般地,计算机可执行指令包括实施特定功能或者实施特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等等。各项操作被描述的顺序不旨在被解释成限制,并且任意数目的所描述的操作可以被按照任意顺序执行、按照任意顺序组合、细分成多项子操作和/或并行地执行,以便实施所描述的过程。所描述的过程可以由与一个或更多设备101、201和/或700相关联的资源实施,诸如一个或更多内部或外部CPU或GPU,和/或诸如FPGA、DSP或其他类型的加速器之类的一个或更多硬件片。
前面所描述的所有方法和过程都可以被具体实现在由一台或更多台通用计算机或处理器执行的软件代码模块中并且通过该软件代码模块被完全自动化。所述代码模块可以被存储在任何类型的计算机可读存储介质或其他计算机存储设备中。其中一些或所有方法可以可替换地被具体实现在专用计算机硬件中。
除非明确地另行声明,否则尤其诸如“可以”、“可能”、“也许”或“会”之类的条件语言在该情境内应被理解为表现出:某些示例包括某些特征、元件和/或步骤,而其他示例则不包括所述特征、元件和/或步骤。因此,这样的条件语言一般不旨在暗示对于一个或更多示例而言以任何方式需要某些特征、元件和/或步骤,也不在暗示一个或更多示例必然包括这样的逻辑:在具有或不具有用户输入或提示的情况下决定是否将在任何特定示例中包括或者实施某些特征、元件和/或步骤。除非明确地另行声明,否则诸如短语“X、Y或Z中的至少一个”之类的合取语言应当被理解成表现出,某一项目、术语等等可以是X、Y或Z或者其某种组合。这里所描述的和/或在附图中描绘出的流程图中的任何例程描述、元件或块应当被理解成潜在地表示包括用于实施所述例程中的特定逻辑功能或元件的一条或更多条可执行指令的代码模块、代码段或代码部分。替换的实施方式被包括在这里所描述的示例的范围内,其中如本领域技术人员将理解的,取决于所涉及的功能,各个元件或功能可以被删除或者按照与所示出或讨论的顺序不同的顺序来执行,其中包括基本上同步地执行或者按照相反的顺序执行。应当强调的是,可以对前面描述的示例做出许多变化和修改,其中的元件应当被理解成处于其他可接受的示例当中。所有这样的修改和变化在这里旨在被包括在本公开的范围内并且受到所附权利要求书的保护。

Claims (15)

1.一种保护应用秘密的方法,所述方法包括:
管理包括第一用户模式和第一内核模式的操作系统执行环境;
管理包括第二用户模式和第二内核模式的安全执行环境;
在安全执行环境的第二用户模式内执行隔离进程;
通过第二内核模式向隔离进程提供第一内核模式的一项或更多项系统服务;以及
通过禁用第一用户模式和第一内核模式对于一个或更多存储器页面的访问,来保护隔离进程免受来自系统服务的攻击。
2.如权利要求1所述的方法,其中,禁用访问包括禁用对于存储器页面的读取、写入或执行访问中的至少一个。
3.如权利要求1所述的方法,其中,禁用访问包括禁用写入访问而许可读取或执行访问中的至少一个。
4.如权利要求1所述的方法,其中,操作系统执行环境和安全执行环境由管理程序管理。
5.如权利要求1所述的方法,所述方法还包括:
由第一内核模式的一项或更多项系统服务把所述一个或更多存储器页面分配给隔离进程;
对所述一个或更多存储器页面进行加密以形成一个或更多已加密存储器页面;以及
由第一内核模式的一项或更多项系统服务把所述一个或更多已加密存储器页面存储到硬盘。
6.如权利要求5所述的方法,所述方法还包括:
由第一内核模式的一项或更多项系统服务部分地基于页面故障把所述一个或更多已加密存储器页面加载到物理存储器中;
对所述一个或更多已加密存储器页面进行解密以形成一个或更多已解密存储器页面;以及
验证所述一个或更多已解密存储器页面的完整性。
7.如权利要求1-6当中的任一条所述的方法,所述方法还包括:
通过第二内核模式的代理服务从隔离进程向第一内核模式的一项或更多项系统服务中的一项服务发送系统调用;
确定将要提供给第一内核模式的一项或更多项系统服务的系统调用参数;以及
通过包括共享存储器页面的系统缓冲器把系统调用参数封送到第一内核模式的一项或更多项系统服务。
8.如权利要求7所述的方法,其中,所述方法还包括由第一内核模式的一项或更多项系统服务通过第二内核模式的代理服务把与系统调用的执行相关联的数据透明地传输到隔离进程。
9.一种系统,所述系统包括:
一个或更多处理器;
存储器;
被映射到存储器的一个或更多地址的地址空间;
与针对地址空间的第一访问权利相关联的第一信任等级;
与针对地址空间的第二访问权利相关联的第二信任等级,其中第二访问权利与第一访问权利相比提供对于地址空间的更高程度的访问;
根据第一访问权利在第一信任等级中执行在所述一个或更多处理器上的内核;
根据第二访问权利在第二信任等级中执行在所述一个或更多处理器上的代理内核;以及
在第二信任等级中执行在所述一个或更多处理器上的一个或更多应用进程,其中代理内核在应用进程与内核之间透明地传输服务请求而不把所述一个或更多应用进程的秘密暴露给内核。
10.如权利要求9所述的系统,所述系统还包括根据第一访问权利对于内核而言可访问的地址空间内的第一组地址以及地址空间内的第二组地址,其中内核根据第一访问权利对于第二组地址具有有限的访问,并且代理内核根据第二访问权利对于第二组地址具有完全的访问。
11.如权利要求10所述的系统,所述系统还包括:
根据第二访问策略在第二信任等级中执行的页表管理器模块,所述模块被编程来:
保持内核的页表的影子表;以及
确定与被映射到第二组地址的访客物理地址页面相关联的页面故障的发生。
12.如权利要求11所述的系统,其中,第一访问策略包括以下各项当中的至少一项:
禁用对于第二组地址的读取、写入或执行访问中的至少一个;或者
禁用写入访问而许可对于第二组地址的读取和执行访问中的至少一个。
13.如权利要求11所述的系统,所述系统还包括被编程来部分地基于密码散列对访客物理地址页面进行验证的密码模块。
14.如权利要求13所述的系统,其中,所述地址空间与由管理程序提供的访客物理地址相关联,并且第一信任等级和第二信任等级表示由管理程序提供的虚拟分区的虚拟信任等级。
15.如权利要求9-14当中的任一条所述的系统,所述系统还包括用于在应用进程与内核之间透明地传输服务请求的系统缓冲器。
CN201580053298.5A 2014-09-30 2015-09-29 保护应用秘密的方法、电子系统和计算机存储介质 Active CN107077428B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/502,965 US9628279B2 (en) 2014-09-30 2014-09-30 Protecting application secrets from operating system attacks
US14/502965 2014-09-30
PCT/US2015/052762 WO2016053923A1 (en) 2014-09-30 2015-09-29 Protecting application secrets from operating system attacks

Publications (2)

Publication Number Publication Date
CN107077428A true CN107077428A (zh) 2017-08-18
CN107077428B CN107077428B (zh) 2020-08-14

Family

ID=54325714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580053298.5A Active CN107077428B (zh) 2014-09-30 2015-09-29 保护应用秘密的方法、电子系统和计算机存储介质

Country Status (5)

Country Link
US (1) US9628279B2 (zh)
EP (1) EP3201820B1 (zh)
KR (1) KR102355213B1 (zh)
CN (1) CN107077428B (zh)
WO (1) WO2016053923A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595983A (zh) * 2018-04-24 2018-09-28 许昌学院 一种基于硬件安全隔离执行环境的硬件架构、及应用上下文完整性度量方法
CN109547450A (zh) * 2018-11-29 2019-03-29 北京元心科技有限公司 运行安全执行域的方法、装置、电子设备及计算机介质
CN110135201A (zh) * 2019-04-28 2019-08-16 阿里巴巴集团控股有限公司 一种基于独立运行环境的网页取证方法及装置
WO2023098536A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 一种运行进程的方法及装置

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015095352A1 (en) * 2013-12-17 2015-06-25 Sequitur Labs, Inc. Method and system for dynamic runtime selection and modification of conditional expressions in computations
US10725770B2 (en) * 2015-01-19 2020-07-28 Vmware, Inc. Hot-swapping operating systems using inter-partition application migration
US10445123B2 (en) 2015-01-19 2019-10-15 Vmware, Inc. Hypervisor exchange with virtual-machine consolidation
US20160210069A1 (en) * 2015-01-21 2016-07-21 Bitdefender IPR Management Ltd. Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
US9904803B2 (en) * 2015-03-25 2018-02-27 Intel Corporation Technologies for hardening data encryption with secure enclaves
US11422840B2 (en) * 2015-08-28 2022-08-23 Vmware, Inc. Partitioning a hypervisor into virtual hypervisors
US10210324B2 (en) * 2015-11-23 2019-02-19 Armor Defense Inc. Detecting malicious instructions on a virtual machine
US10073710B2 (en) * 2016-02-25 2018-09-11 Red Hat Israel, Ltd. Host-driven application memory protection for virtual machines
US9779248B1 (en) 2016-03-30 2017-10-03 Microsoft Technology Licensing, Llc Protection of secured boot secrets for operating system reboot
US10289853B2 (en) 2016-03-31 2019-05-14 Microsoft Technology Licensing, Llc Secure driver platform
WO2017209876A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. Buffer manager
US10261919B2 (en) * 2016-07-08 2019-04-16 Hewlett Packard Enterprise Development Lp Selective memory encryption
CN115688129A (zh) 2016-08-25 2023-02-03 郑在落 在锁定、中间和解锁模式的数据处理终端及其相关方法
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10083129B2 (en) * 2016-08-29 2018-09-25 Red Hat Israel, Ltd. Code loading hardening by hypervisor page table switching
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US10498712B2 (en) 2016-11-10 2019-12-03 Ernest Brickell Balancing public and personal security needs
US10855465B2 (en) 2016-11-10 2020-12-01 Ernest Brickell Audited use of a cryptographic key
US11405201B2 (en) 2016-11-10 2022-08-02 Brickell Cryptology Llc Secure transfer of protected application storage keys with change of trusted computing base
US11398906B2 (en) 2016-11-10 2022-07-26 Brickell Cryptology Llc Confirming receipt of audit records for audited use of a cryptographic key
US10311217B2 (en) * 2016-12-09 2019-06-04 Microsoft Technology Licensing, Llc Application piracy prevention with secure enclave protection of automatically modularized functions
US10528746B2 (en) * 2016-12-27 2020-01-07 Intel Corporation System, apparatus and method for trusted channel creation using execute-only code
US20180181755A1 (en) * 2016-12-28 2018-06-28 Intel Corporation Execution of software with monitoring of return oriented programming exploits
US10198202B2 (en) 2017-02-24 2019-02-05 Red Hat, Inc. Safe userspace device access for network function virtualization using an IOMMU to map supervisor memory to a reserved range of application virtual addresses
US10509733B2 (en) 2017-03-24 2019-12-17 Red Hat, Inc. Kernel same-page merging for encrypted memory
US10209917B2 (en) 2017-04-20 2019-02-19 Red Hat, Inc. Physical memory migration for secure encrypted virtual machines
US10445257B2 (en) * 2017-04-30 2019-10-15 Microsoft Technology Licensing, Llc Execution of subset of driver code in separate protection domain
US10650157B2 (en) * 2017-04-30 2020-05-12 Microsoft Technology Licensing, Llc Securing virtual execution environments
US10652245B2 (en) 2017-05-04 2020-05-12 Ernest Brickell External accessibility for network devices
US10348706B2 (en) 2017-05-04 2019-07-09 Ernest Brickell Assuring external accessibility for devices on a network
US10379764B2 (en) 2017-05-11 2019-08-13 Red Hat, Inc. Virtual machine page movement for encrypted memory
EP3418933A1 (de) * 2017-06-19 2018-12-26 Siemens Aktiengesellschaft Edge-gerät und verfahren zum betrieb eines edge-geräts
US11354420B2 (en) 2017-07-21 2022-06-07 Red Hat, Inc. Re-duplication of de-duplicated encrypted memory
KR102075701B1 (ko) 2017-11-24 2020-02-10 서울대학교산학협력단 명령어 레벨 데이터 격리 방법 및 장치
US10719362B2 (en) * 2018-10-10 2020-07-21 Oracle International Corporation Managing multiple isolated execution contexts in a single process
US11748178B2 (en) * 2019-04-02 2023-09-05 Intel Corporation Scalable and accelerated function as a service calling architecture
US11194639B2 (en) * 2019-05-19 2021-12-07 International Business Machines Corporation Executing system calls in isolated address space in operating system kernel
US10853263B1 (en) * 2019-07-23 2020-12-01 Ati Technologies Ulc Unified kernel virtual address space for heterogeneous computing
CN112541166A (zh) * 2019-09-20 2021-03-23 杭州中天微系统有限公司 一种方法、系统和计算机可读存储介质
US11614956B2 (en) 2019-12-06 2023-03-28 Red Hat, Inc. Multicast live migration for encrypted virtual machines
CN111177703B (zh) * 2019-12-31 2023-03-31 青岛海尔科技有限公司 操作系统数据完整性的确定方法及装置
CN111709023B (zh) * 2020-06-16 2023-04-28 全球能源互联网研究院有限公司 一种基于可信操作系统的应用隔离方法及系统
KR20220057005A (ko) * 2020-10-29 2022-05-09 삼성전자주식회사 전자 장치 및 이를 이용한 메모리 보호 방법

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10261779A (ja) * 1996-12-27 1998-09-29 Sgs Thomson Microelectron Srl 半導体メモリ装置を実現するためのメモリブロック及びその製造方法
US20040078568A1 (en) * 2002-10-16 2004-04-22 Duc Pham Secure file system server architecture and methods
EP1655682A2 (en) * 2004-11-08 2006-05-10 Microsoft Corporation System and Method of Aggregating the Knowledge Base of Antivirus Software Applications
US20080148300A1 (en) * 2006-10-26 2008-06-19 Archer Charles J Providing Policy-Based Operating System Services in a Hypervisor on a Computing System
US20110082962A1 (en) * 2009-10-01 2011-04-07 Vmware, Inc. Monitoring a data structure in a virtual machine
CN102043927A (zh) * 2010-12-29 2011-05-04 北京深思洛克软件技术股份有限公司 一种用于数据泄密防护的计算机系统
US8327187B1 (en) * 2009-09-21 2012-12-04 Tilera Corporation Low-overhead operating systems
US20130097354A1 (en) * 2011-10-13 2013-04-18 International Business Machines Corporation Protecting memory of a virtual guest
KR101414580B1 (ko) * 2013-01-24 2014-07-16 한남대학교 산학협력단 다중 등급 기반 보안 리눅스 운영 시스템
CN103955438A (zh) * 2014-05-21 2014-07-30 南京大学 基于硬件辅助虚拟化技术的进程内存保护方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
US7530103B2 (en) * 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US7516331B2 (en) * 2003-11-26 2009-04-07 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
US7624240B1 (en) * 2006-10-17 2009-11-24 Vmware, Inc. Separate swap files corresponding to different virtual machines in a host computer system
US8364910B2 (en) * 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US9740637B2 (en) * 2007-10-30 2017-08-22 Vmware, Inc. Cryptographic multi-shadowing with integrity verification
WO2009088175A2 (en) 2008-01-04 2009-07-16 Markany Inc. Virtual application program system, storing device, method for executing virtual application program and method for protecting virtual environment
KR100960358B1 (ko) * 2008-03-28 2010-05-28 티에스온넷(주) 다중 등급 보안 방식에 기초한 강제적 프로세스 메모리접근 제어 방법 및 이를 프로그램화하여 수록한 컴퓨터로읽을 수 있는 기록매체
US8782670B2 (en) 2009-04-10 2014-07-15 Open Invention Network, Llc System and method for application isolation
US9372711B2 (en) * 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US8776245B2 (en) 2009-12-23 2014-07-08 Intel Corporation Executing trusted applications with reduced trusted computing base
US20110296164A1 (en) * 2010-05-28 2011-12-01 Mcafee, Inc. System and method for providing secure network services
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
KR101155123B1 (ko) * 2010-10-26 2012-06-11 한국과학기술원 커널 코드의 오류로부터 응용 프로그램의 메모리를 보호하는 장치 및 방법
US8375221B1 (en) 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
US9146767B2 (en) 2012-06-19 2015-09-29 Raytheon Company Secure cloud hypervisor monitor
US9049208B2 (en) * 2012-10-18 2015-06-02 Broadcom Corporation Set top box architecture supporting mixed secure and unsecure media pathways
US10198572B2 (en) * 2013-09-17 2019-02-05 Microsoft Technology Licensing, Llc Virtual machine manager facilitated selective code integrity enforcement
US20150082378A1 (en) * 2013-09-18 2015-03-19 Apcera, Inc. System and method for enabling scalable isolation contexts in a platform
WO2015176048A1 (en) * 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Aspects of hardware virtualization, hypervisors, code detection

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10261779A (ja) * 1996-12-27 1998-09-29 Sgs Thomson Microelectron Srl 半導体メモリ装置を実現するためのメモリブロック及びその製造方法
US20040078568A1 (en) * 2002-10-16 2004-04-22 Duc Pham Secure file system server architecture and methods
EP1655682A2 (en) * 2004-11-08 2006-05-10 Microsoft Corporation System and Method of Aggregating the Knowledge Base of Antivirus Software Applications
US20080148300A1 (en) * 2006-10-26 2008-06-19 Archer Charles J Providing Policy-Based Operating System Services in a Hypervisor on a Computing System
US8327187B1 (en) * 2009-09-21 2012-12-04 Tilera Corporation Low-overhead operating systems
US20110082962A1 (en) * 2009-10-01 2011-04-07 Vmware, Inc. Monitoring a data structure in a virtual machine
CN102043927A (zh) * 2010-12-29 2011-05-04 北京深思洛克软件技术股份有限公司 一种用于数据泄密防护的计算机系统
US20130097354A1 (en) * 2011-10-13 2013-04-18 International Business Machines Corporation Protecting memory of a virtual guest
KR101414580B1 (ko) * 2013-01-24 2014-07-16 한남대학교 산학협력단 다중 등급 기반 보안 리눅스 운영 시스템
CN103955438A (zh) * 2014-05-21 2014-07-30 南京大学 基于硬件辅助虚拟化技术的进程内存保护方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李弼翀: "Windows Nt6.x安全特性下的Rootkit研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595983A (zh) * 2018-04-24 2018-09-28 许昌学院 一种基于硬件安全隔离执行环境的硬件架构、及应用上下文完整性度量方法
CN109547450A (zh) * 2018-11-29 2019-03-29 北京元心科技有限公司 运行安全执行域的方法、装置、电子设备及计算机介质
CN110135201A (zh) * 2019-04-28 2019-08-16 阿里巴巴集团控股有限公司 一种基于独立运行环境的网页取证方法及装置
WO2023098536A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 一种运行进程的方法及装置

Also Published As

Publication number Publication date
EP3201820B1 (en) 2023-10-25
KR102355213B1 (ko) 2022-01-24
KR20170067740A (ko) 2017-06-16
US9628279B2 (en) 2017-04-18
CN107077428B (zh) 2020-08-14
WO2016053923A1 (en) 2016-04-07
US20160092678A1 (en) 2016-03-31
EP3201820A1 (en) 2017-08-09

Similar Documents

Publication Publication Date Title
CN107077428A (zh) 保护应用秘密免受操作系统攻击
US20230128711A1 (en) Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine
JP7428770B2 (ja) コンピュータプログラム、コンピュータ可読記憶媒体及び装置
CN107454958B (zh) 使用多个嵌套页表隔离客户机代码和数据
CN108509250A (zh) 具有受保护的访客机验证主机控制的安全公共云
JP6913636B2 (ja) 共有ページ
JP6893479B2 (ja) 所有権テーブルを用いたデータ処理装置及び方法
US8738932B2 (en) System and method for processor-based security
CN107667350A (zh) 基于虚拟化的平台保护技术
JP4876053B2 (ja) トラステッド・デバイス集積回路
CN107690621A (zh) 受保护的异常处置
CN109800050A (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
CN113434453A (zh) 片上系统及其操作方法
CN107526974A (zh) 一种信息密码保护装置和方法
CN106030602B (zh) 基于虚拟化的块内工作负荷隔离
US9411979B2 (en) Embedding secret data in code
US8972745B2 (en) Secure data handling in a computer system
JP6672341B2 (ja) 仮想マシンの状態情報の保護
US20230236870A1 (en) Safe entropy source for encrypted virtual machines
US10691356B2 (en) Operating a secure storage device
US20230342169A1 (en) Encrypted memory guest/host communication
CN117494108B (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