CN103136468B - 协助用于硬件保护的应用程序的系统服务请求交互 - Google Patents

协助用于硬件保护的应用程序的系统服务请求交互 Download PDF

Info

Publication number
CN103136468B
CN103136468B CN201210537282.XA CN201210537282A CN103136468B CN 103136468 B CN103136468 B CN 103136468B CN 201210537282 A CN201210537282 A CN 201210537282A CN 103136468 B CN103136468 B CN 103136468B
Authority
CN
China
Prior art keywords
application program
hardware protection
user model
processor
umhpic
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.)
Active
Application number
CN201210537282.XA
Other languages
English (en)
Other versions
CN103136468A (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.)
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 CN103136468A publication Critical patent/CN103136468A/zh
Application granted granted Critical
Publication of CN103136468B publication Critical patent/CN103136468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/602Providing cryptographic facilities or services
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Casings For Electric Apparatus (AREA)
  • Medical Preparation Storing Or Oral Administration Devices (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及协助用于硬件保护的应用程序的系统服务请求交互。本文描述了提供平台适配层的实现方式,所述平台适配层使得应用程序能够在用户模式硬件保护的隔离容器内执行,同时利用驻留在隔离容器之外的主机平台资源。平台适配层协助应用程序和主机平台之间的系统服务请求交互。作为所述协助的一部分,平台适配层的安全服务组件进行安全相关动作。

Description

协助用于硬件保护的应用程序的系统服务请求交互
相关申请
本申请与同时提交的代理机构案号为MS1-5267US的美国专利申请第13/323,465号相关。
技术领域
本发明总体上涉及数据处理领域,并且更具体地涉及协助(facilitate)用于硬件保护的应用程序的系统服务请求交互。
背景技术
常规的软件应用依赖于各种操作系统功能。操作系统可提供一组应用编程接口(API),用于提供基本计算服务,比如线程调度,存储器分配,虚拟存储器,设备访问等等。另外,操作系统可提供API的丰富特征集合,所述API提供另外的操作系统服务,比如图形用户界面(GUI)服务,剪贴板服务等等。
某些启用安全性的处理器能够提供安全执行环境。这种启用安全性的处理器提供受保护的存储空间,所述启用安全性的处理器确保保存在受保护的存储空间中的代码和数据不能被在受保护的存储空间之外的代码访问。启用安全性的处理器提供定义明确的出口函数和入口函数(下面称为门(gate)),所述出口函数和入口函数允许执行在位于受保护的存储空间内的代码和在该环境之外的代码之间传递。启用安全性的处理器不允许访问输入或输出装置或者在受保护的存储空间内的内核模式执行。结果,启用安全性的处理器的受保护存储区限制过多,以致于不能运行常规的软件应用。
发明内容
提供本“发明内容”部分是为了介绍下面在“具体实施方式”部分中进一步说明的本公开的简化概念。“发明内容”部分并不意图识别要求保护的主题的基本特征,也不意图用于确定要求保护的主题的范围。
应用程序在启用安全性的处理器提供的用户模式硬件保护的隔离容器(UMHPIC)内执行。作为应用程序的一部分,在UMHPIC内执行的库操作系统实现大多数的操作系统请求,包括高级请求。UMHPIC感知平台适配层(U-PAL)使得不具有UMHPIC的特定知识的应用程序能够在UMHPIC内执行,同时利用驻留在UMHPIC之外的操作系统资源。U-PAL包括下述安全服务组件:其在UMHPIC内执行,并代表应用程序确保线程调度、文件系统交互和资源分配被正确处理。U-PAL包括具有驻留在UMHPIC内的置信部分和在外部执行环境中以用户模式执行的非置信部分的转换(thunking)组件。置信转换组件通过由启用安全性的处理器控制的出口门,将系统调用传给非置信转换组件。非置信转换组件通过由启用安全性的处理器控制的入口门,将系统调用结果从操作系统传给UMHPIC。
附图说明
参考附图,进行详细说明。在附图中,附图标记的最左侧的数字标识其中首先出现该附图标记的图。在不同的附图中使用相同的附图标记指示相似或相同的项目。
图1是在UMHPIC中执行应用程序的安全执行环境的示意图。
图2是可用于提供根据实施例的安全执行环境的示例性计算系统的框图。
图3是示出为在UMHPIC中执行的应用程序提供安全性的示例性进程的流程图。
图4是示出协助在UMHPIC中执行的应用程序和在UMHPIC之外执行的主机平台之间的资源请求交互的示例性进程的流程图。
图5是示出处理来自主机平台的执行请求和异步通知的示例性进程的流程图。
具体实施方式
概述
如上所述,常规的软件应用程序依赖于操作系统功能的丰富特征集合。本申请的实施例使得没有为在安全执行环境内运行而专门编写的应用程序(未修改的应用程序)能够在安全执行环境(下面称为用户模式硬件保护的隔离容器(UMHPIC))内执行,而不信任在安全执行环境之外的任何代码。虽然在UMHPIC之外的代码,比如主机操作系统可以拒绝对在UMHPIC内的代码的服务,但是在UMHPIC之外的代码不能篡改或探听UMHPIC内的代码的执行。在UMHPIC内执行常规的未修改的应用程序通常会必需信任在UMHPIC外运行的“主机”操作系统。由于以下三个原因,未修改的应用程序通常信任主机操作系统:首先,常规应用程序利用源自操作系统的丰富多变的服务;其次,未修改的应用程序未被配置成调用(invoke)启用安全性的处理器的特定入口门和出口门以使得执行和数据能够在UMHPIC和外部执行环境之间传递;再次,就其安全性来说,应用程序依赖于操作系统的正确工作。本“具体实施方式”部分的实施例还使沙箱环境(如在美国申请第12/834,895号(“ULTRA-LOWCOSTSANDBOXINGFORAPPLICATIONAPPLIANCES”)中描述的沙箱环境)能够在UMHPIC内执行。
在本“具体实施方式”部分中说明的实施例包括部分驻留在UMHPIC内且部分驻留在外部执行环境中的UMHPIC感知平台适配层(U-PAL)。U-PAL协助在UMHPIC中执行的应用程序和在UMHPIC之外执行的主机平台之间的系统资源请求交互。而且,作为所述协助的一部分,执行一个或更多个安全性相关动作。除了其它动作之外,安全性相关动作允许应用程序利用主机平台访问资源,即使主机平台在UMHPIC之外执行,并且由此是“非置信”代码。
在实施例中,应用程序包括在其UMHPIC内的置信库操作系统;大多数的操作系统请求由库操作系统实现,库操作系统根据需要调用U-PAL的服务;U-PAL进而从主机操作系统调用服务。U-PAL的置信部分(即,驻留在UMHPIC内且在UMHPIC内执行的部分)向在UMHPIC内执行的应用程序提供服务接口。U-PAL的非置信部分(即,驻留在UMHPIC之外并在UMHPIC之外以用户模式执行的部分)例如通过主计算机系统提供的平台适配层(PAL)而与操作系统对接。
U-PAL包括安全服务组件和转换(thunking)组件。安全服务组件在UMHPIC内执行,由此从应用程序的角度来看是“置信”组件。安全服务组件代表未修改的应用程序核查所有系统服务(包括线程调度、文件系统交互和资源分配)被正确处理,从而允许非置信主机操作系统。转换组件包括驻留在UMHPIC内的置信部分和在UMHPIC外以用户模式执行的非置信部分两者。转换组件向包括安全服务组件的U-PAL的置信部分提供对在UMHPIC之外执行的主机操作系统功能的访问。转换组件和安全服务组件一起允许未修改的应用程序(比如和库OS一起打包的应用程序)在UMHPIC内执行。
这里描述的进程、系统和设备可以用多种方式实现。下面参考以下各附图提供示例性的实现方式。
在UMHPIC中执行未修改的应用程序的示例性环境
图1是在UMHPIC中执行应用程序的安全执行环境的示意图。系统100的各个方面可以在能够针对未修改的应用程序实现安全执行环境的各种适当的计算设备类型上实现。适当的计算设备可包括一个或更多个个人计算机、服务器、服务器群、数据中心、专用计算机、平板计算机、游戏控制台、智能电话、这些设备的组合、或能够保存和执行用于执行未修改的应用程序的全部或部分安全执行环境的任何其它计算设备,或者是上述这些设备的部分。
系统100包括启用安全性的处理器102,处理器102被配置成实例化包括UMHPIC104的安全执行环境。UMHPIC104驻留在用户模式存储器106或存储器108内的受保护存储区中。除了通过由启用安全性的处理器102提供的、允许在UMHPIC104上执行的代码将执行和数据转入和转出UMHPIC104的特定入口门和出口门之外,对在UMHPIC104之外的代码来说,保存在UMHPIC104中的代码和数据是不可访问的。
线程经由出口门退出UMHPIC104以返回到不受保护的存储器。出口门可被直接调用(call),比如通过调用指令,或者可被间接调用,比如通过处理器异常。可以用加密机制保护UMHPIC104;例如,启用安全性的处理器102被配置成加密对UMHPIC104的写入操作以及解密读取操作。此外,可用密码哈希(内联或者带外)跟踪UMHPIC104,使得启用安全性的处理器102能够核查存储器未被更改的读取操作。在其它实施例中,UMHPIC104所驻留的存储器空间可以与启用安全性的处理器102在相同的芯片上,并且存储器空间可被隔离,使得当执行进入入口门时,启用安全性的处理器102能够访问该存储器空间。在各个实施例中,可以在单个芯片(比如片上系统(SOC))内实现启用安全性的处理器102,或者可以横跨系统100的处理器和另外的芯片集实现启用安全性的处理器102。
应用程序110在UMHPIC104内执行。即,启用安全性的处理器102按照下述方式执行应用程序110:该方式使得除了通过下面更详细说明的明确定义的入口门和出口门之外,防止包括非置信代码112或主机操作系统(OS)114的在UMHPIC104之外执行的代码篡改或探听UMHPIC104内的代码或数据。例如,保存在UMHPIC104外的线程执行代码不能访问保存在UMHPIC104中的数据。启用安全性的处理器102可通过各种技术保护UMHPIC内的代码和数据免于探听或篡改,这些技术包括(但不限于):当数据留开处理器时,对所述数据加密;对数据进行签名以检测外部篡改;阻止来自I/O设备的直接存储器存取(DMA)操作;隔离高速缓冲存储器;或者利用直接保存在处理器上的存储器。这提供防止非置信代码-即在UMHPIC104之外运行的任何代码-探听或者篡改UMHPIC104的内容的保护。
非置信代码112在UMHPIC之外以用户模式执行。启用安全性的处理器102按照阻止非置信代码112访问UMHPIC104内的代码和数据的方式执行非置信代码112。多个UMHPIC是可能的,启用安全性的处理器102可以在另一个UMHPIC内执行非置信代码112。即使在另一个UMHPIC内执行,从UMHPIC104的角度来看,非置信代码112也是“非置信的”。在一些启用安全性的处理器中,UMHPIC可被嵌套:保护内部UMHPIC免被外部UMHPIC中的代码和在该外部UMHPIC之外的所有代码影响。在嵌套UMHPIC的情况下,外部UMHPIC的代码不被内部UMHPIC信任;外部UMHPIC的代码不能篡改或探听内部UMHPIC的代码和数据。
初始化进程-例如在同时提交的代理机构案号为MS1-5267US的相关美国专利申请第13/323,465号中说明的初始化进程-可用于按照下述方式初始化UMHPIC104:该方式向客户端系统提供UMHPIC104是用客户端的置信代码和数据建立的而不是用非置信代码或数据建立的置信度(confidence),从而向客户端系统提供应用程序110在系统100上正确执行的置信度。
可在诸如“云计算”服务的托管(hosted)计算服务的情况下实例化UMHPIC104,其中客户端系统初始化UMHPIC104,以便在云计算服务上安全地执行应用程序110。因而从客户端系统的角度来看,系统100的在UMHPIC104和启用安全性的处理器102之外的所有部分都是“非置信的”。本申请的实施例使应用程序110能够在UMHPIC内执行,并且仍能够从诸如主机OS114的“非置信的”主机操作系统访问操作系统功能。
在各个实施例中,应用程序110包括一个或更多个子组件。在通常的实施例中,应用程序的一个或更多个子组件包括库操作系统(OS)116,库操作系统116可以与在2010年7月13日提交的标题为“ULTRA-LOWCOSTSANDBOXINGFORAPPLICATIONAPPLIANCES”的美国专利申请第12/834,895号中描述的隔离的OS子系统相同或相似。美国专利申请第12/834,895号描述了下述“应用程序沙箱”:其被配置成与操作系统的其它元件分离地在隔离的应用程序进程内运行各个操作系统元件(有时称为“库OS”)。在美国专利申请第12/834,895号中描述的应用程序沙箱保护主机操作系统不被应用程序篡改或探听,但是不一定保护应用程序不被主机操作系统篡改或探听。在美国专利申请第12/834,895号中描述的隔离的OS子系统向应用程序提供API的丰富集合,以便直接提供应用程序被设计成使用的操作系统功能。隔离的OS子系统也利用应用编程接口(API)的小子集以通过操作系统平台适配层(PAL)与主机操作系统通信,以便向应用程序提供基本计算服务。主机PAL118可以与在美国专利申请第12/834,895号中描述的主机操作系统PAL相同或相似。在实施例中,主机PAL118可包括陷阱指令。在可替选实施例中,主机PAL118包括根据低级主机OS114抽象(abstract)来创建高级抽象的库。主机PAL118(如果存在的话)和主机OS114共同包括在主机平台130中。
库OS116可被配置成向应用程序110提供操作系统服务的第一子集(比如在一个非限制性示例中,是上面说明的服务的“丰富”集合)并调用主机OS114向应用程序110提供操作系统服务的第二子集(比如在一个非限制性示例中,是上面说明的基本计算服务)。本公开的实施例并不局限于执行与库OS(比如库OS116)一起打包的应用程序,比如应用程序110。在各个实施例中,省略了主机PAL118和/或库OS116。在至少一个实施例中,省略了库OS116,应用程序110由执行虚拟机(其进而可由“客户”操作系统和应用程序组成)的用户模式处理器仿真器组成。
UMHPIC感知PAL(U-PAL)120部分驻留在UMHPIC104内,并且部分驻留在用户模式存储器106的非置信部分中。在各个实施例中,应用程序110没有被修改用于在UMHPIC104内执行,并且应用程序110在其未修改的版本中被配置成通过主机平台130提供的服务接口来直接与主机平台130对接。因此,U-PAL120协助在UMHPIC中执行的应用程序110和在UMHPIC之外执行的主机平台130的一个或更多个组件之间的系统资源请求交互。而且,U-PAL120的安全服务组件122执行一个或更多个安全相关动作。U-PAL120向应用程序110提供在UMHPIC104内仿真由主机平台130提供的接口的服务接口。U-PAL120的驻留在UMHPIC104之外的部分被配置成诸如经平台接口通过主机PAL118与主机OS114对接。在可替选实施例中,主机PAL118可以是U-PAL120的子组件。在其它实施例,比如省略库OS116和主机PAL118的那些实施例中,U-PAL120仿真由主机OS114提供的全部或者部分的服务接口。例如,U-PAL120可提供应用程序110被配置成使用的丰富API的部分或者完整的集合。
U-PAL120包括安全服务组件122和转换组件124。安全服务组件122完全驻留在UMHPIC104内,并执行安全相关动作。安全服务组件进行安全相关动作,比如验证主机平台返回的句柄,验证存储器分配,确保线程调度遵守预期的语义学(例如,互斥原语确实提供互斥),验证对主机平台130进行的各种调用的结果,更新这样的验证所需要的数据结构,加密数据,借助数字签名或消息认证码来保护数据的完整性,保护数据免于回放攻击,安全地提供随机数。应用程序110可以是未修改的,并且不被设计成在非置信计算系统上的UMHPIC104内执行。因此,应用程序110可以是在假定它所运行于其上的计算系统是可信的情况下开发的。因而,应用程序110不一定被配置成验证主机OS114正确地工作。不过,由于从UMHPIC104的角度看,计算系统100不可信,因此不认为主机平台130正确地工作。因此,安全服务组件122执行安全相关动作,所述动作导致按照预期的和适当的方式工作的虚拟平台。
在一个非限制示例中,安全服务组件122验证响应于应用程序110和/或库OS116进行的设备访问的API调用而由主机平台130返回的接口句柄是正确的。例如,它可确定接口句柄是否是先前提供给应用程序110和/或库OS116的接口句柄的副本。这样的接口句柄可用于访问设备,比如I/O设备,联网设备或者其它类型的设备。在另一个非限制性示例中,安全服务组件122验证主机平台130返回的存储器分配是正确的。例如,它可确保新的存储器分配不会与先前分配给应用程序110的存储器重叠。这种重叠的存储器分配会使应用程序110意外地重写它自己的数据,从而可能使它以不可预测的方式工作。
在另一个非限制性示例中,安全服务组件122被配置成保护待写入主机平台130的文件系统上的文件的数据。这种保护可包括加密、添加数字签名或消息认证码、和/或防范回放攻击的措施,如以下文献中描述的那些措施:在2008年9月2日颁发给England等的标题为“Multiplexingasecurecountertoimplementsecondlevelsecurecounters”的美国专利第7,421,579号;在2006年6月20日颁发给England等的标题为“Systemandmethodforimplementingacounter”的美国专利第7,065,607号;以及在BryanParno,JacobR.Lorch,JohnR.Douceur,JamesMickens和JonathanM.McCune所著的“Memoir:PracticalStateContinuityforProtectedModules”(发表于ProceedingsoftheIEEESymposiumonSecurityandPrivacy,IEEE,2011年5月)中所述的。应用程序110本身可被配置成以不受保护的形式将数据写入文件系统,因为如上所述应用程序110可以在假定它所运行于其上的计算系统是可信的情况下开发的。因此,当应用程序110和/或库OS116发出将数据写入文件系统的API调用时,安全服务组件122在将调用中的保护数据传给主机平台130之前代表应用程序110保护数据。安全服务组件还被配置成不保护和/或核查从主机平台读取的数据,因为应用程序110可以不被配置成从文件系统接收保护数据并且因为它可以不核查数字签名或消息认证码并且可以不检查回放攻击。在另一个实施例中,利用受保护的虚拟文件系统,可能利用加密、数字签名、消息认证码和/或防止回放攻击的措施;避免向主机平台130暴露可信的文件名和元数据,安全服务组件122可实现所有文件系统访问。
应用程序110可被配置成从主机平台130请求线程调度服务。然而,行为失常的非置信主机平台130可能按照使应用程序110不正确执行的方式调度线程。例如,如果应用程序110的一个线程获得锁定,则行为失常的操作系统可允许另一个线程同时获得相同的锁定,从而使线程同时工作并导致不可预测的结果。因此,安全服务组件122可包括用户模式线程调度器,所述用户模式线程调度器被配置成代表应用程序110和/或库OS116处理线程调度。例如,如果应用程序110和库OS116只具有一个执行线程,则可以不需要这样的用户模式线程调度器。如果应用程序110和/或库OS116对与线程调度相关的主机功能的调用进行调用,则安全服务组件122可确定自己处理线程调度调用,而不是将它传送给主机平台130。
U-PAL120的转换组件124提供将API调用从安全服务组件122传给主机平台130的能力。转换组件的置信部分,即置信转换组件126在UMHPIC104内执行并被配置成编排(marshal)与对主机平台130的调用相关联的参数,调用由启用安全性的处理器102提供的出口门,以及将编排的参数传出至非置信转换组件128。因此,置信转换组件126起到将调用从安全服务组件122传递到主机平台130的作用。
置信转换组件126还通过由非置信转换组件128调用的入口门,接收来自主机平台130的执行请求和对主机平台130进行的调用的结果。置信转换组件126解组(unmarshal)与这些执行请求和结果相关联的各种参数,并将它们传送给安全服务组件122以便验证。
非置信转换组件128(也是转换组件124的一部分)在UMHPIC104之外执行。它被配置成解组由置信转换组件126经出口门传给它的参数并代表UMHPIC104对主机平台130进行对应的调用(比如通过主机PAL118,调用对主机OS114的操作系统调用)。非置信转换组件128从主机平台130接收执行请求和来自系统调用的结果,编排用于执行请求和结果的对应参数,调用入口门,并将这样编排的组件传送给置信转换组件126。因此,非置信转换组件128起到用于来自主机平台130的调用结果和执行请求的入口点的作用。
在通常的实施例中,非置信转换组件128在UMHPIC104外部以用户模式执行,并且可通过明确的出口门被置信转换组件126调用。在可替选实施例中,非置信转换组件128作为主机平台130的子组件而执行,并可以从在置信转换组件126内发出的系统调用或陷阱指令调用。
转换组件124被配置成调用启用安全性的处理器102的入口和出口函数,从而允许它在UMHPIC104和外部执行环境之间传送参数和执行,反之亦然。如在其它地方所指出的,应用程序110可以未被修改,并且可以不知道它在UMHPIC104内执行,由此可以不被配置成调用启用安全性的处理器102的出口门,以便将调用传出至主机平台130。同样地,主机PAL118也可以未被修改成为在UMHPIC104内执行的应用程序提供支持,由此可以不被配置成调用启用安全性的处理器102的入口门,以便将执行请求和源于调用的结果传回给应用程序110。因此,转换组件124提供代表应用程序110和主机PAL118调用启用安全性的处理器102的入口门和出口门的能力。安全服务组件122提供代表应用程序110处理线程执行、保护写入非置信存储装置的应用程序数据和验证主机平台130行为的能力,并采取对应的安全相关动作。转换组件124和安全服务组件122一起允许应用程序110在UMHPIC104内执行,同时仍然利用由“非置信的”主机OS114提供的系统资源。
提供安全执行环境的示例性计算设备
图2是可用于提供根据实施例的安全执行环境的示例性计算系统的框图。计算系统200可被配置成能够实现安全执行环境的任何适当的计算设备。根据各个非限制性示例,适当的计算设备可以包括个人计算机(PC)、服务器、服务器群、数据中心、专用计算机、平板计算机、游戏控制台、智能电话、这些设备的组合,或者能够保存和执行全部或部分的安全执行环境的任何其它计算设备。
在一种示例性配置中,计算系统200包括一个或更多个处理器202,和存储器204。处理器202包括与启用安全性的处理器102相同或相似的一个或更多个启用安全性的处理器。处理器202可包括不同于启用安全性的处理器的一个或更多个通用或专用处理器。计算系统200还可包含允许与各个其它系统通信的通信连接206。计算系统200还可包括与处理器202和存储器204通信耦接的一个或更多个输入设备208(比如键盘、鼠标、笔、语音输入设备、触摸输入设备等)和一个或更多个输出设备210(比如显示器、扬声器、打印机等)。
存储器204可以保存可加载到处理器202并在处理器202上可执行的程序指令、以及在这些程序的执行期间生成的和/或可以和这些程序结合使用的数据。在例示的示例中,存储器204保存操作系统212,操作系统212提供计算系统200的基本系统功能,并且除了别的以外,提供计算系统200的其它程序和模块的操作。操作系统212可以与主机OS114相同或相似。
存储器204的多个部分可被包含在UMHPIC内,如在“具体实施方式”部分的其它地方所描述的。存储器204可被划分在与处理器在相同物理芯片上的存储器和在其它芯片上的存储器之间。存储器204包括U-PAL214,U-PAL214可以与U-PAL120相同或相似。存储器204包括应用程序216,应用程序216可以与应用程序110相同或相似。应用程序216可包括库OS,如在此“具体实施方式”内的其它地方所描述的,所述库OS被配置成与主机PAL218对接,主机PAL218可以与主机PAL118相同或相似。存储器204包括非置信代码220,非置信代码220可以与非置信代码112相同或相似。
在UMHPIC中执行应用程序的示例性操作
图3是示出向在诸如UMHPIC104的UMHPIC中执行的应用程序(如应用程序110)提供安全性的示例性进程300的流程图。在302,应用程序在UMHPIC内执行,如在“具体实施方式”部分内的其它地方所描述的。
在304,诸如U-PAL120的U-PAL协助在UMHPIC内执行的应用程序和在UMHPIC之外执行的主机平台之间的资源分配请求交互。所述协助可包括将来自应用程序的请求和来自主机平台的结果传出和传入UMHPIC,如在“具体实施方式”部分内的其它地方所描述的。所述协助可包括调用入口门和出口门以及编排参数,如在“具体实施方式”部分内的其它地方所描述的。所述协助可包括将系统资源请求传给主机平台以及从主机平台接收相关的结果。
在306,U-PAL的安全服务组件(如安全服务组件122)执行安全相关动作,作为所述协助的一部分。在各个实施例中,安全相关动作可包括:对来自与系统服务请求交互相关联的应用程序的数据加密;解密与针对应用程序的系统服务请求交互相关联的数据;保持簿记数据结构,以保存关于系统服务请求交互的信息;核查作为系统服务请求交互的一部分的由主机平台提供的资源分配结果的正确性;检查重叠的存储器分配;确定设备句柄是否是复制的设备句柄;进行线程调度服务等等,如在“具体实施方式”部分中的其它地方所描述的。可以在不脱离本公开的范围的情况下进行其它安全相关动作。
图4是示出协助在UMHPIC内执行的应用程序和在UMHPIC外部执行的主机平台(比如主机平台130)之间的资源请求交互的示例性进程400的流程图。在401,应用程序在UMHPIC中执行。
在402,在UMHPIC中执行的应用程序发出对系统服务的调用。UMHPIC由启用安全性的处理器(如启用安全性的处理器102)提供。启用安全性的处理器提供用于将执行传出UMHPIC的至少一个出口门和用于将执行传入UMHPIC中的至少一个入口门。调用可以来自包括库OS(如库OS116)的应用程序的任何子组件,包括库OS的应用程序和任何子组件可以未修改而在UMHPIC内执行,并且可以不具有传递在UMHPIC之外的执行的天生能力。
在404,U-PAL的安全服务组件(如U-PAL120的安全服务组件122)接收来自应用程序的调用。安全服务组件在UMHPIC内执行。
在405,U-PAL可以在调用参数被发送给主机平台之前,对调用参数中的伪装(cloak)数据进行操作。例如,U-PAL可对将由主机平台写入永久存储装置中的数据加密。
在406,U-PAL的置信转换组件(如U-PAL120的置信转换组件126)编排调用的参数。对于一些参数,比如对于标量值,编排操作可以是空操作。对于其它参数,编排操作可以更复杂。例如,如果调用是将缓冲区写入盘的调用,则置信转换组件可以在受保护存储区之外的不受保护的存储器中分配临时缓冲区,将内容从受保护存储区中的缓冲区复制到不受保护的存储器中的临时缓冲区,并更新调用参数中的缓冲区指针以指向临时缓冲区。在另一个示例中,参数可包括含有丰富指针的数据结构,置信转换组件可将其序列化(serialize)到临时缓冲区中。
在408,置信转换组件调用由启用安全性的处理器提供的UMHPIC的出口门,以将执行传递给在UMHPIC之外执行的非置信转换组件(如U-PAL120的非置信转换组件128)的代码。
在410,非置信转换组件解组调用参数。对于一些参数,比如对于标量值,解组操作可以是空操作。对于其它参数,解组操作可以更复杂。例如,解组操作可以反序列化含有丰富指针的数据结构。各个实施例可以包括非置信转换组件和置信转换组件之间的优化和/或额外协调,以改善性能。可以使用用于编排和解组的各种优化。
在412,非置信转换组件将调用发给主机平台,如主机平台130。在414,主机平台完成所请求的系统服务。
在416,当执行从主机平台返回非置信转换组件时,非置信组件编排调用的结果。对于一些结果,比如对于标量值,编排操作可以是空操作。对于其它结果,编排操作可以更复杂。例如,编排操作可以使含有丰富指针的数据结构序列化。
在418,非置信转换组件调用由启用安全性的处理器提供的UMHPIC的入口门,以将执行传递给在UMHPIC内执行的置信转换组件的代码。
在420,置信转换组件解组调用的结果。对于一些结果,比如对于标量值,解组操作可以是空操作。对于其它结果,解组操作可以更复杂。例如,如果调用是从盘读取缓冲区的调用,则置信转换组件可将数据从不受保护的存储器中的临时缓冲区复制到受保护的存储区中的缓冲区,并且更新结果参数中的缓冲区指针以指向最终的缓冲区。在另一个示例中,参数可以包括含有丰富指针的数据结构,置信转换组件可以使之反序列化。
在421,安全服务组件可解密从主机平台提供的存储装置读取的数据,还可核查数字签名或消息认证码,以核查数据的完整性。它还可以进行被设计成防范回放攻击的核查。例如,当从硬盘上的页文件读取虚拟存储页面时,也可对虚拟存储页面应用这些步骤。如在“具体实施方式”部分中的其它地方所描述的,安全服务组件保护由在UMHPIC中执行的应用程序写入主机存储系统的数据。这是因为主机平台及其存储服务(包括主机平台提供的任何文件系统)不被在UMHPIC中执行的应用程序信任。然而,应用程序本身可以未修改成在UMHPIC中执行,由此可被配置成在不保护数据的情况下将数据写入文件系统中。因此,从文件系统读取的数据由安全服务组件解密和/或核查,因为应用程序未被配置成接收保护数据,并且可以未配备成解密和核查保护数据。在实施例中,作为一种优化,解密步骤421可以和解组步骤420相结合。
在422,安全服务组件对照簿记数据结构核查返回的结果,以核查结果一致并且可信。在实施例中,调用可以是对系统资源或服务的请求,安全服务组件核查响应于该系统请求而返回的结果对所请求的资源或服务来说有效。在各个实施例中,系统资源可以是分配的存储器资源、联网资源、输入/输出资源、或者其它系统资源。
安全服务组件可以利用簿记数据结构核查来自主机平台的任何非置信服务的输出。例如,簿记数据结构可以使得安全服务组件能够验证来自主机平台的接口句柄和存储器分配是正确的。在其中结果是资源或接口句柄的实施例中,安全服务组件核查返回的资源或接口句柄不是先前提供的资源句柄的副本,以避免句柄回放攻击。在其中结果是分配给应用程序的存储器的指示的实施例中,安全服务组件核查分配的存储器先前未被分配给该应用程序(这会使应用程序重写它自己的数据,并以意料不到的方式工作),是该应用程序能够访问的,并且不位于保留的或者无效的地址范围之内。在通常的实施例中,簿记数据结构包括用于保存与存储器分配、资源句柄和线程标识符中的一个或更多个相关的数据的结构。
在424,如果调用结果的对照簿记数据结构的核查确定所述结果有效并由此是可信的,则执行进行下去。
在426,如果在422的核查的结果包括结果中的一个或更多个无效,则安全服务组件将失败结果返回给应用程序。在一些实施例中,失败结果是与该服务请求相关的错误码;例如,关于盘读取服务请求的公知“盘读取错误”结果。在一些实施例中,失败可作为导致应用程序立即终止的灾难性故障,被递送给应用程序。
在428,如果在422的核查的结果包括结果有效,则安全服务组件以适合于服务请求的类型的方式,更新簿记数据结构。例如,如果服务请求是分配存储器的新区域,则安全服务组件可更新存储器分配的表格;安全服务组件还可向启用安全性的处理器发出将存储器的新区域添加到UMHPIC的受保护存储区中的指令。
在430,安全服务组件将调用的成功结果提供给应用程序,所述应用程序继续其执行。
图5是示出用于处理来自诸如主机平台130的主机平台的执行请求和/或异步事件的通知的示例性进程500的流程图。在502,诸如非置信转换组件128的非置信转换组件从诸如主机OS114或者主机PAL118的主机平台接收执行请求或异步通知。各种明确定义的参数伴随请求和异步通知。
在504,非置信转换组件编排伴随请求和通知的参数。即,非置信转换组件经由到在UMHPIC内执行的进程的入口门来变换参数,以使参数适合于进入UMHPIC,比如UMHPIC104。
在506,非置信转换组件调用由启用安全性的处理器提供的入口门,以将与请求和通知相关联的编排参数传给UMHPIC。在508,在UMHPIC内执行的置信转换组件(如置信转换组件126)经由入口门接收编排的参数。
在510,置信转换组件解组从非置信转换层接收的参数。解组参数涉及变换编排的参数,从而重新产生执行请求或异步通知。在512,置信转换组件将解组的参数传给在UMHPIC内执行的安全服务组件,比如安全服务组件122。
在514,安全服务组件执行安全相关动作。这些动作可包括核查主机平台提供的执行请求或异步通知是有效的。
在516,安全服务组件将执行请求或异步通知传给在UMHPIC中执行的应用程序和/或库OS。
图3-5描绘了示出根据各个实施例的示例性进程的流程图。在各个块中图示了这些进程的操作,并且参考这些块概述了这些进程的操作。这些进程被图示成逻辑流程图,其每个操作可代表可用硬件、软件或它们的组合实现的一组操作。在软件的情况下,操作代表保存在一个或更多个计算机存储介质上的计算机可执行指令,当被一个或更多个处理器执行时,所述计算机可执行指令使所述一个或更多个处理器能够进行所描述的操作。通常,计算机可执行指令包括执行特定功能或者实现特定的抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述各个操作的顺序不意图被解释成限制性的,任意数目的所述操作可按照任何顺序组合,分离成子操作,和/或并行地进行以实现所述进程。根据本公开的各个实施例的进程可以包括在逻辑流程图中描绘的仅仅一些操作或者所有的操作。
计算机可读介质
取决于所使用的计算设备的配置和类型,图2中的计算系统200的存储器204可包括易失性存储器(比如随机存取存储器(RAM))和/或非易失性存储器(比如只读存储器(ROM)、闪速存储器等)。存储器204还可包括可为计算系统200提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储的附加可拆卸存储装置和/或不可拆卸的存储装置,包括(但不限于)闪速存储器、磁存储装置、光存储装置、和/或磁带存储装置。
存储器204是计算机可读介质的示例。计算机可读介质包括至少两种类型的计算机可读介质,即计算机存储介质和通信介质。
计算机存储介质包括在存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的任何进程或技术中实现的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括(但不限于)相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器或者其它存储器技术、致密盘只读存储器(CD-ROM)、数字通用光盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储设备、或者可用于保存信息以由计算设备访问的任何其它非传输介质。
相反,通信介质可以将计算机可读指令、数据结构、程序模块或其它数据包含在调制数据信号(如载波或者其它传输机构)中。如这里所定义的,计算机存储介质不包括通信介质。
关于包括以上各实施例的实施方式,还公开下述方案:
1.一种方法,包括:
在用户模式硬件保护的隔离容器UMHPIC中执行应用程序,所述UMHPIC由启用安全性的处理器保护,所述启用安全性的处理器至少提供用于将执行传送到所述UMHPIC之外的出口门和用于将执行返回到所述UMHPIC中的入口门;
通过在所述UMHPIC中执行的UMHPIC感知平台适配层,协助所述应用程序和在所述UMHPIC外部执行的主机平台的一个或更多个组件之间的系统服务请求交互;以及
通过所述UMHPIC感知平台适配层的安全服务组件,进行安全相关动作,作为所述协助的一部分。
2.根据方案1所述的方法,其中,所述安全相关动作包括对来自所述应用程序并且与所述系统服务请求交互相关联的数据进行加密。
3.根据方案1所述的方法,其中,所述安全相关动作包括保持簿记数据结构以保存关于所述系统服务请求交互的信息。
4.根据方案1所述的方法,其中,所述安全相关动作包括对用于所述应用程序的并且与所述系统服务请求交互相关联的数据进行解密。
5.根据方案1所述的方法,其中,所述系统服务请求交互包括资源分配请求,以及其中,所述安全相关动作包括核查作为所述系统服务请求交互的一部分的由所述主机平台提供的资源分配结果的正确性。
6.根据方案5所述的方法,其中,所述资源分配结果包括存储器资源的指示,以及其中,所述核查资源分配结果的正确性包括检查重叠的存储器分配。
7.根据方案1所述的方法,其中,所述安全相关动作包括进行线程调度服务。
8.一种系统,包括:
一个或更多个处理器,所述一个或更多个处理器包括启用安全性的处理器,所述启用安全性的处理器被配置成至少提供分别用于将执行传给用户模式硬件保护的隔离容器UMHPIC和将执行从所述UMHPIC传出的入口门和出口门;
包括所述UMHPIC的存储器;和
至少部分在所述UMHPIC之内的能够由启用安全性的处理器执行的UMHPIC感知平台适配层,用以协助在所述UMHPIC中执行的应用程序和在所述UMHPIC外部执行的主机平台的一个或更多个组件之间的系统服务请求交互,所述UMHPIC感知平台适配层包括:
在所述UMHPIC内的能够由所述启用安全性的处理器执行的安全服务组件,用以进行安全相关动作,作为所述系统服务请求交互的协助的一部分。
9.根据方案8所述的系统,其中,所述安全相关动作包括对来自所述应用程序并且与所述系统服务请求交互相关联的数据进行加密。
10.根据方案8所述的系统,其中,所述UMHPIC感知平台适配层被配置成在所述UMHPIC内创建簿记数据结构,以及其中,所述安全相关动作包括保持所述簿记数据结构以保存关于所述系统服务请求交互的信息。
11.根据方案8所述的系统,其中,所述安全相关动作包括对用于所述应用程序的并且与所述系统服务请求交互相关联的数据进行解密。
12.根据方案8所述的系统,其中,所述系统服务请求交互是资源分配请求,以及其中,所述安全相关动作包括核查作为所述系统服务请求交互的一部分的由所述主机平台提供的资源分配结果的正确性。
13.根据方案8所述的系统,其中,所述资源分配结果包括存储器资源的指示,其中,所述核查资源分配结果的正确性包括检查重叠的存储器分配。
14.根据方案8所述的系统,其中,所述安全相关动作包括进行线程调度服务。
15.根据方案8所述的系统,其中,所述UMHPIC感知平台适配层还包括转换组件,所述转换组件被配置成编排和解组与所述系统服务请求交互相关联的参数,作为对所述系统服务请求交互的协助的一部分。
16.一种包括多个编程指令的计算机可读存储介质,所述多个编程指令能够由计算设备的一个或更多个处理器执行,以使计算设备:
协助在用户模式硬件保护的隔离容器UMHPIC内执行的应用程序和在所述UMHPIC之外执行的主机平台之间的系统服务请求交互,所述UMHPIC由启用安全性的处理器提供,所述启用安全性的处理器被配置成至少提供用于将执行传出所述UMHPIC之外的出口门和用于将执行传入所述UMHPIC中的入口门;
代表所述应用程序进行安全相关动作,作为对所述系统服务请求交互的协助的一部分。
17.根据方案16所述的计算机可读存储介质,其中,所述安全相关动作包括对来自所述应用程序并且与所述系统服务请求交互相关联的数据进行加密。
18.根据方案16所述的计算机可读存储介质,其中,所述系统服务请求交互包括资源分配请求,以及其中,所述安全相关动作包括核查作为所述系统服务请求交互的一部分的由所述主机平台提供的资源分配结果的正确性。
19.根据方案18所述的计算机可读存储介质,其中,所述资源分配结果包括存储器资源的指示,以及其中,所述核查资源分配结果的正确性包括检查重叠的存储器分配。
20.根据方案18所述的计算机可读存储介质,其中,所述资源分配结果包括设备句柄,以及其中,所述核查资源分配结果的正确性包括确定所述设备句柄是否是重复的设备句柄。
结论
虽然本公开利用特定于结构特征和/或方法动作的语言,但是本发明不局限于所描述的具体特征或动作。反而,具体特征和动作作为实现本发明的说明性形式而被公开。

Claims (7)

1.一种为在用户模式硬件保护的隔离容器中执行的应用程序提供安全性的方法,包括:
在所述用户模式硬件保护的隔离容器(104)中执行(302)所述应用程序(110),所述用户模式硬件保护的隔离容器由启用安全性的处理器(102)保护,所述启用安全性的处理器至少提供用于将执行传送到所述用户模式硬件保护的隔离容器之外的出口门和用于将执行返回到所述用户模式硬件保护的隔离容器中的入口门;
通过在所述用户模式硬件保护的隔离容器中执行的用户模式硬件保护的隔离容器感知平台适配层(120),协助(304)所述应用程序和在所述用户模式硬件保护的隔离容器外部执行的主机平台(130)的一个或更多个组件之间的系统服务请求交互;以及
利用所述用户模式硬件保护的隔离容器感知平台适配层的安全服务组件(122),进行(306)安全相关动作,作为所述协助的一部分。
2.根据权利要求1所述的方法,其中,所述安全相关动作包括对来自所述应用程序并且与所述系统服务请求交互相关联的数据进行加密(405)。
3.根据权利要求1所述的方法,其中,所述安全相关动作包括保持(428)簿记数据结构以保存关于所述系统服务请求交互的信息。
4.一种为在用户模式硬件保护的隔离容器中执行的应用程序提供安全性的系统,包括:
一个或更多个处理器(202),所述一个或更多个处理器包括启用安全性的处理器(102),所述启用安全性的处理器被配置成至少提供分别用于将执行传送给所述用户模式硬件保护的隔离容器(104)和将执行从所述用户模式硬件保护的隔离容器(104)传出的入口门和出口门;
包括所述用户模式硬件保护的隔离容器的存储器(108);和
至少部分在所述用户模式硬件保护的隔离容器之内的能够由启用安全性的处理器执行的用户模式硬件保护的隔离容器感知平台适配层(120),用以协助在所述用户模式硬件保护的隔离容器中执行的应用程序和在所述用户模式硬件保护的隔离容器外部执行的主机平台的一个或更多个组件之间的系统服务请求交互,所述用户模式硬件保护的隔离容器感知平台适配层包括:
在所述用户模式硬件保护的隔离容器内的能够由所述启用安全性的处理器执行的安全服务组件(122),用以进行安全相关动作,作为对所述系统服务请求交互的协助的一部分。
5.根据权利要求4所述的系统,其中,所述系统服务请求交互是资源分配请求,以及其中,所述安全相关动作包括核查作为所述系统服务请求交互的一部分的由所述主机平台提供的资源分配结果的正确性。
6.根据权利要求5所述的系统,其中,所述资源分配结果包括存储器资源的指示,其中,核查资源分配结果的正确性包括检查重叠的存储器分配。
7.根据权利要求4所述的系统,其中,所述安全相关动作包括进行线程调度服务。
CN201210537282.XA 2011-12-12 2012-12-12 协助用于硬件保护的应用程序的系统服务请求交互 Active CN103136468B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/323,562 US9389933B2 (en) 2011-12-12 2011-12-12 Facilitating system service request interactions for hardware-protected applications
US13/323,562 2011-12-12

Publications (2)

Publication Number Publication Date
CN103136468A CN103136468A (zh) 2013-06-05
CN103136468B true CN103136468B (zh) 2016-08-03

Family

ID=48496285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210537282.XA Active CN103136468B (zh) 2011-12-12 2012-12-12 协助用于硬件保护的应用程序的系统服务请求交互

Country Status (12)

Country Link
US (1) US9389933B2 (zh)
EP (1) EP2791857B1 (zh)
JP (1) JP6083097B2 (zh)
KR (1) KR102073433B1 (zh)
CN (1) CN103136468B (zh)
AU (1) AU2012352754B2 (zh)
BR (1) BR112014014153B1 (zh)
CA (1) CA2857586C (zh)
IN (1) IN2014CN03961A (zh)
MX (1) MX345408B (zh)
RU (1) RU2621001C2 (zh)
WO (1) WO2013090044A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9141979B1 (en) * 2013-12-11 2015-09-22 Ca, Inc. Virtual stand-in computing service for production computing service
US20150278512A1 (en) * 2014-03-28 2015-10-01 Intel Corporation Virtualization based intra-block workload isolation
GB2525596B (en) 2014-04-28 2021-05-26 Arm Ip Ltd Access control and code scheduling
US9922200B2 (en) 2014-06-30 2018-03-20 Microsoft Technology Licensing, Llc Securely storing content within public clouds
US10044695B1 (en) 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US9491111B1 (en) * 2014-09-03 2016-11-08 Amazon Technologies, Inc. Securing service control on third party hardware
US10061915B1 (en) 2014-09-03 2018-08-28 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US10079681B1 (en) 2014-09-03 2018-09-18 Amazon Technologies, Inc. Securing service layer on third party hardware
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
GB201516227D0 (en) * 2015-09-14 2015-10-28 Horne Stephen And Hemmer Fabian And Von Oven Peter Running applications on a computer device
US10664179B2 (en) * 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US9798641B2 (en) 2015-12-22 2017-10-24 Intel Corporation Method to increase cloud availability and silicon isolation using secure enclaves
US10936331B2 (en) 2017-02-23 2021-03-02 International Business Machines Corporation Running a kernel-dependent application in a container
US10146707B2 (en) 2017-03-14 2018-12-04 International Business Machines Corporation Hardware-based memory protection
US10795647B2 (en) * 2017-10-16 2020-10-06 Adobe, Inc. Application digital content control using an embedded machine learning module
CN109040137B (zh) * 2018-10-10 2021-04-09 杭州安恒信息技术股份有限公司 用于检测中间人攻击的方法、装置以及电子设备
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
CN109922056B (zh) 2019-02-26 2021-09-10 创新先进技术有限公司 数据安全处理方法及其终端、服务器
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
CN113297566B (zh) * 2020-05-15 2024-04-02 阿里巴巴集团控股有限公司 沙箱实现方法、装置、设备和存储介质
US11475140B1 (en) * 2020-11-24 2022-10-18 Amazon Technologies, Inc. Enclave-based cryptography services in edge computing environments
CN113791865B (zh) * 2021-09-08 2024-07-26 山石网科通信技术股份有限公司 容器安全的处理方法及装置、存储介质和处理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN101174293A (zh) * 2007-11-19 2008-05-07 南京大学 一种高安全等级操作系统的参照监视器实现方法
CN101632083A (zh) * 2007-05-09 2010-01-20 国际商业机器公司 用于防止计算机系统被操控的方法和数据处理系统
CN102077209A (zh) * 2008-06-27 2011-05-25 微软公司 受保护模式操作调度

Family Cites Families (191)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4874164A (en) 1986-07-18 1989-10-17 Commodore-Amiga, Inc. Personal computer apparatus for block transfer of bit-mapped image data
US5819091A (en) 1994-12-22 1998-10-06 Arendt; James Wendell User level control of degree of client-side processing
US5754830A (en) 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5815686A (en) 1996-09-12 1998-09-29 Silicon Graphics, Inc. Method and apparatus for address space translation using a TLB
US5926631A (en) 1997-08-15 1999-07-20 International Business Machines Corporation Network computer emulator systems, methods and computer program products for personal computers
CN100397372C (zh) * 1998-01-22 2008-06-25 英纳瑞公司 用于通用数据交换网关的方法和装置
US6721288B1 (en) 1998-09-16 2004-04-13 Openwave Systems Inc. Wireless mobile devices having improved operation during network unavailability
US6546425B1 (en) 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8060656B2 (en) 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7136645B2 (en) 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6357003B1 (en) 1998-10-21 2002-03-12 Silicon Graphics, Inc. Advanced firmware boot sequence x86 computer system that maintains legacy hardware and software compatibility
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6668376B1 (en) 2000-01-07 2003-12-23 Ricoh Company, Ltd. System and method for automatically loading a device driver
US7287259B2 (en) 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
US6665731B1 (en) 2000-05-16 2003-12-16 Intel Corporation Method for remotely accessing component management information
US6760815B1 (en) 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6865591B1 (en) 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
US6813670B1 (en) 2000-09-26 2004-11-02 Microsoft Corporation Automatic server-side plug-and-play without user intervention
US20020069192A1 (en) 2000-12-04 2002-06-06 Aegerter William Charles Modular distributed mobile data applications
US6832273B2 (en) 2000-12-21 2004-12-14 Microsoft Corporation System and method to specify extended configuration descriptor information in USB devices
US6931429B2 (en) * 2001-04-27 2005-08-16 Left Gate Holdings, Inc. Adaptable wireless proximity networking
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US6799173B2 (en) 2001-11-14 2004-09-28 Sun Microsystems, Inc. Method and apparatus for sharing code containing references to non-shared objects
US6981268B2 (en) 2001-12-05 2005-12-27 Microsoft Corporation System and method for persisting and resolving application assembly binds
US7185359B2 (en) 2001-12-21 2007-02-27 Microsoft Corporation Authentication and authorization across autonomous network systems
US7275105B2 (en) 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
KR100444996B1 (ko) 2002-02-08 2004-08-21 삼성전자주식회사 인터넷을 통한 디바이스 드라이버 자동 설치 및 유지 보수방법 및 그 시스템
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US6954852B2 (en) 2002-04-18 2005-10-11 Ardence, Inc. System for and method of network booting of an operating system to a client computer using hibernation
US7676538B2 (en) 2002-05-02 2010-03-09 Bea Systems, Inc. Systems and methods for application view transactions
US9171049B2 (en) 2002-06-13 2015-10-27 Salesforce.Com, Inc. Offline simulation of online session between client and server
US8255548B2 (en) 2002-06-13 2012-08-28 Salesforce.Com, Inc. Offline web services API to mirror online web services API
US7065607B2 (en) 2002-06-28 2006-06-20 Microsoft Corporation System and method for implementing a counter
US7421579B2 (en) 2002-06-28 2008-09-02 Microsoft Corporation Multiplexing a secure counter to implement second level secure counters
US20040015537A1 (en) 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7536688B2 (en) 2003-02-28 2009-05-19 Azul Systems Segmented virtual machine
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US7788669B2 (en) 2003-05-02 2010-08-31 Microsoft Corporation System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory
US7444337B2 (en) 2004-03-09 2008-10-28 Ntt Docomo, Inc. Framework and associated apparatus for the adaptive replication of applications with server side code units
US7530103B2 (en) * 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US7383537B2 (en) 2003-08-20 2008-06-03 Microsoft Corporation Debugging an application that employs rights-managed content
US7774762B2 (en) 2003-09-15 2010-08-10 Trigence Corp. System including run-time software to enable a software application to execute on an incompatible computer platform
US7519814B2 (en) 2003-09-15 2009-04-14 Trigence Corp. System for containerization of application sets
US20080222160A1 (en) 2003-09-15 2008-09-11 Macdonald Craig Method and system for providing a program for execution without requiring installation
US20050076186A1 (en) 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US7441011B2 (en) 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US20050091226A1 (en) 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7496768B2 (en) 2003-10-24 2009-02-24 Microsoft Corporation Providing secure input and output to a trusted agent in a system with a high-assurance execution environment
US20050108171A1 (en) 2003-11-19 2005-05-19 Bajikar Sundeep M. Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform
US20050177635A1 (en) 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7272782B2 (en) 2003-12-19 2007-09-18 Backweb Technologies, Inc. System and method for providing offline web application, page, and form access in a networked environment
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7444621B2 (en) 2004-02-20 2008-10-28 Microsoft Corporation Method and system for providing a common operating system
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
US7574709B2 (en) 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
US7584502B2 (en) 2004-05-03 2009-09-01 Microsoft Corporation Policy engine and methods and systems for protecting data
US20060005047A1 (en) * 2004-06-16 2006-01-05 Nec Laboratories America, Inc. Memory encryption architecture
US7769720B2 (en) 2004-06-16 2010-08-03 Hewlett-Packard Development Company, L.P. Systems and methods for migrating a server from one physical platform to a different physical platform
US7587755B2 (en) 2004-07-02 2009-09-08 Citrix Systems, Inc. System and method for executing interactive applications with minimal privileges
US9083765B2 (en) 2004-07-02 2015-07-14 Oracle International Corporation Systems and methods of offline processing
WO2006012610A2 (en) 2004-07-23 2006-02-02 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
US20090024757A1 (en) 2004-07-30 2009-01-22 Proctor David W Automatic Protocol Determination For Portable Devices Supporting Multiple Protocols
US7613862B2 (en) 2004-08-10 2009-11-03 Intel Corporation Embedded driver for bus-connected device
CN101006433B (zh) 2004-08-25 2012-01-11 日本电气株式会社 信息通信装置和程序执行环境控制方法
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
WO2006055838A2 (en) 2004-11-18 2006-05-26 America Online, Inc. Runtime environment
US9450966B2 (en) 2004-11-29 2016-09-20 Kip Sign P1 Lp Method and apparatus for lifecycle integrity verification of virtual machines
US7721138B1 (en) 2004-12-28 2010-05-18 Acronis Inc. System and method for on-the-fly migration of server from backup
US20060156418A1 (en) 2005-01-10 2006-07-13 Ibm Corporation Method and apparatus for preventing unauthorized access to data
US20060161982A1 (en) 2005-01-18 2006-07-20 Chari Suresh N Intrusion detection system
US20120084566A1 (en) 2010-10-04 2012-04-05 Edward Chin Methods and systems for providing and controlling cryptographic secure communications across unsecured networks
US7996493B2 (en) 2005-03-10 2011-08-09 Microsoft Corporation Framework for managing client application data in offline and online environments
US7496495B2 (en) 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US7685593B2 (en) 2005-05-12 2010-03-23 Microsoft Corporation Systems and methods for supporting multiple gaming console emulation environments
US7363463B2 (en) 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US20060294518A1 (en) 2005-06-28 2006-12-28 Richmond Michael S Method, apparatus and system for a lightweight virtual machine monitor
US7844442B2 (en) 2005-08-16 2010-11-30 Exent Technologies, Ltd. System and method for providing a remote user interface for an application executing on a computing device
US20070283324A1 (en) 2005-08-30 2007-12-06 Geisinger Nile J System and method for creating programs that comprise several execution layers
US20070074191A1 (en) 2005-08-30 2007-03-29 Geisinger Nile J Software executables having virtual hardware, operating systems, and networks
US7523323B2 (en) 2005-09-15 2009-04-21 Intel Corporation Method and apparatus for quick resumption
US7703081B1 (en) 2005-09-22 2010-04-20 Symantec Corporation Fast system call hooking on x86-64 bit windows XP platforms
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US7836303B2 (en) 2005-12-09 2010-11-16 University Of Washington Web browser operating system
US8539481B2 (en) 2005-12-12 2013-09-17 Microsoft Corporation Using virtual hierarchies to build alternative namespaces
US7447896B2 (en) 2005-12-12 2008-11-04 Microsoft Corporation OS mini-boot for running multiple environments
US20070174910A1 (en) 2005-12-13 2007-07-26 Zachman Frederick J Computer memory security platform
US20090307781A1 (en) * 2005-12-27 2009-12-10 Nec Corporation Program execution control method, its device, and execution control program for same
EP1811421A1 (en) * 2005-12-29 2007-07-25 AXSionics AG Security token and method for authentication of a user with the security token
US7627728B1 (en) 2005-12-29 2009-12-01 Symantec Operating Corporation System and method for efficient generation of application snapshots
US20070169116A1 (en) 2006-01-18 2007-07-19 Dell Products L.P. Method and system for automated installation of system specific drivers
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7743026B2 (en) 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
WO2007109921A1 (en) * 2006-03-28 2007-10-04 Intel Corporation Methods and apparatus to implement annotation based thunking
US7913252B2 (en) 2006-04-11 2011-03-22 Installfree, Inc. Portable platform for executing software applications in a virtual environment
US7747785B2 (en) 2006-04-14 2010-06-29 Microsoft Corporation Instant messaging plug-ins
US8104041B2 (en) 2006-04-24 2012-01-24 Hewlett-Packard Development Company, L.P. Computer workload redistribution based on prediction from analysis of local resource utilization chronology data
US8117554B1 (en) 2006-04-25 2012-02-14 Parallels Holdings, Ltd. Seamless integration of non-native widgets and windows with dynamically scalable resolution into native operating system
US7725305B2 (en) 2006-06-08 2010-05-25 Microsoft Corporation Partial virtualization on computing device
US7812985B2 (en) 2006-06-09 2010-10-12 Kabushiki Kaisha Toshiba System and method for rerouting of document processing jobs
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US20080005472A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Running applications from removable media
US7644264B1 (en) 2006-10-17 2010-01-05 Symantec Corporation Method and system for creating and deploying disk images
US8171502B2 (en) 2006-11-29 2012-05-01 Sony Ericsson Mobile Communications Ab Methods, devices and computer program products for automatically installing device drivers from a peripheral device onto a host computer
US20080127182A1 (en) 2006-11-29 2008-05-29 Newport William T Managing Memory Pages During Virtual Machine Migration
US8452853B2 (en) 2007-03-05 2013-05-28 International Business Machines Corporation Browser with offline web-application architecture
US20100153569A1 (en) 2007-03-09 2010-06-17 Ghost, Inc. System and Method for a Virtual Hosted Operating System
US8037039B2 (en) 2007-04-20 2011-10-11 Microsoft Corporation Runtime class database operation
US20080276012A1 (en) 2007-05-04 2008-11-06 Joe Mesa Driver Loading via a PnP Device
US8875266B2 (en) 2007-05-16 2014-10-28 Vmware, Inc. System and methods for enforcing software license compliance with virtual machines
ITRM20070347A1 (it) * 2007-06-21 2008-12-22 Space Software Italia S P A Metodo e sistema per la interazione e cooperazione di sensori, attuatori e robot
US20090064196A1 (en) 2007-08-31 2009-03-05 Microsoft Corporation Model based device driver code generation
US20090094337A1 (en) 2007-10-08 2009-04-09 Eric Wilfred Bruno Dias Method of accessing web e-mail off-line
US8505029B1 (en) 2007-11-26 2013-08-06 Adobe Systems Incorporated Virtual machine communication
JP4740926B2 (ja) 2007-11-27 2011-08-03 フェリカネットワークス株式会社 サービス提供システム、サービス提供サーバ、及び情報端末装置
US20090164994A1 (en) 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US8671404B2 (en) 2008-02-12 2014-03-11 Red Hat, Inc. Distributing and managing virtual machines
US8156503B2 (en) 2008-02-12 2012-04-10 International Business Machines Corporation System, method and computer program product for accessing a memory space allocated to a virtual machine
US20090210871A1 (en) 2008-02-20 2009-08-20 Zak Dechovich System and method for software application migration
US7971049B2 (en) 2008-03-31 2011-06-28 Symantec Corporation Systems and methods for managing user configuration settings
US8782604B2 (en) 2008-04-11 2014-07-15 Oracle International Corporation Sandbox support for metadata in running applications
US8359593B2 (en) 2008-04-21 2013-01-22 Vmware, Inc. Computer machine migration of file system images using a redo-log file
US8424082B2 (en) 2008-05-08 2013-04-16 Google Inc. Safely executing an untrusted native code module on a computing device
US8364983B2 (en) 2008-05-08 2013-01-29 Microsoft Corporation Corralling virtual machines with encryption keys
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
WO2009147468A2 (en) 2008-05-27 2009-12-10 Telefonaktiebolaget L M Ericsson (Publ) System and method for backwards compatible multi-access with proxy mobile internet protocol
US9176754B2 (en) 2008-07-16 2015-11-03 Google Inc. Method and system for executing applications using native code modules
US8285670B2 (en) * 2008-07-22 2012-10-09 International Business Machines Corporation Dynamically maintaining coherency within live ranges of direct buffers
US20100211663A1 (en) 2008-07-28 2010-08-19 Viewfinity Inc. Management of pool member configuration
CN101640589B (zh) * 2008-07-29 2012-11-07 华为技术有限公司 在安全可移动媒介之间共享许可的方法及装置
CN101645020A (zh) 2008-08-04 2010-02-10 优诺威讯国际有限公司 虚拟操作系统创建方法
US7886183B2 (en) 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
JP2010044579A (ja) 2008-08-12 2010-02-25 Brother Ind Ltd 周辺装置、プログラム、およびドライバインストールシステム
TW201007574A (en) 2008-08-13 2010-02-16 Inventec Corp Internet server system and method of constructing and starting a virtual machine
US8381288B2 (en) 2008-09-30 2013-02-19 Intel Corporation Restricted component access to application memory
JP4966942B2 (ja) 2008-10-01 2012-07-04 株式会社日立製作所 仮想pc管理方法、仮想pc管理システム、および仮想pc管理プログラム
US8291261B2 (en) 2008-11-05 2012-10-16 Vulcan Technologies Llc Lightweight application-level runtime state save-and-restore utility
US8782670B2 (en) 2009-04-10 2014-07-15 Open Invention Network, Llc System and method for application isolation
US8103837B2 (en) * 2008-12-17 2012-01-24 Hewlett-Packard Development Company, L.P. Servicing memory read requests
TWI384378B (zh) 2008-12-29 2013-02-01 Ind Tech Res Inst 網頁應用程式執行方法
US8117317B2 (en) 2008-12-31 2012-02-14 Sap Ag Systems and methods for integrating local systems with cloud computing resources
US8230121B2 (en) * 2009-01-05 2012-07-24 Sierra Wireless, Inc. Method and apparatus for identifying a device handle in a computer system
US8214829B2 (en) 2009-01-15 2012-07-03 International Business Machines Corporation Techniques for placing applications in heterogeneous virtualized systems while minimizing power and migration cost
US8112480B2 (en) 2009-01-16 2012-02-07 Microsoft Corporation Signaling support for sharer switching in application sharing
US8019861B2 (en) 2009-01-29 2011-09-13 Vmware, Inc. Speculative virtual machine resource scheduling
US10203993B2 (en) 2009-02-18 2019-02-12 International Business Machines Corporation Method and system for continuous optimization of data centers by combining server and storage virtualization
US8769068B2 (en) 2009-02-24 2014-07-01 Telcordia Technologies, Inc. System and method for policy based management for a high security MANET
US8418236B1 (en) 2009-04-10 2013-04-09 Open Invention Network Llc System and method for streaming application isolation
JP5289153B2 (ja) 2009-04-14 2013-09-11 キヤノン株式会社 情報処理装置及びその制御方法、並びにコンピュータプログラム
US8751627B2 (en) 2009-05-05 2014-06-10 Accenture Global Services Limited Method and system for application migration in a cloud
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
JP2010267135A (ja) 2009-05-15 2010-11-25 Toshiba Corp メモリコントローラ
US8150971B2 (en) 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
US20100332629A1 (en) 2009-06-04 2010-12-30 Lauren Ann Cotugno Secure custom application cloud computing architecture
US20110004878A1 (en) 2009-06-30 2011-01-06 Hubert Divoux Methods and systems for selecting a desktop execution location
WO2011027191A1 (en) 2009-09-02 2011-03-10 Telenor Asa A method, system, and computer readable medium for controlling access to a memory in a memory device
US8285987B1 (en) 2009-12-04 2012-10-09 The United States Of America As Represented By The Secretary Of The Air Force Emulation-based software protection
US8479286B2 (en) 2009-12-15 2013-07-02 Mcafee, Inc. Systems and methods for behavioral sandboxing
US8645977B2 (en) 2010-02-04 2014-02-04 Microsoft Corporation Extensible application virtualization subsystems
US8301856B2 (en) 2010-02-16 2012-10-30 Arm Limited Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
RU101231U1 (ru) * 2010-03-02 2011-01-10 Закрытое акционерное общество "Лаборатория Касперского" Система управления безопасностью мобильного вычислительного устройства
US20110231670A1 (en) 2010-03-16 2011-09-22 Shevchenko Oleksiy Yu Secure access device for cloud computing
US8880773B2 (en) 2010-04-23 2014-11-04 Red Hat, Inc. Guaranteeing deterministic bounded tunable downtime for live migration of virtual machines over reliable channels
EP2569693B1 (en) 2010-05-09 2015-08-12 Citrix Systems, Inc. Methods and systems for forcing an application to store data in a secure storage location
CN102971722B (zh) 2010-05-09 2015-01-07 思杰系统有限公司 用于创建和传送加密的虚拟盘的系统和方法
US8640187B2 (en) 2010-05-28 2014-01-28 Red Hat, Inc. Systems and methods for providing an fully functional isolated execution environment for accessing content
JP2013528872A (ja) 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
US8166211B2 (en) 2010-06-07 2012-04-24 Vmware, Inc. Safely sharing USB devices
US8935317B2 (en) 2010-06-23 2015-01-13 Microsoft Corporation Dynamic partitioning of applications between clients and servers
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8972995B2 (en) * 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US9436502B2 (en) 2010-12-10 2016-09-06 Microsoft Technology Licensing, Llc Eventually consistent storage and transactions in cloud based environment
US8972746B2 (en) 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US8903705B2 (en) 2010-12-17 2014-12-02 Microsoft Corporation Application compatibility shims for minimal client computers
US8832452B2 (en) 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves
US20120179485A1 (en) 2011-01-07 2012-07-12 Independa, Inc. Systems and methods for integrated care management
US20120203932A1 (en) 2011-02-08 2012-08-09 Microsoft Corporation Multi-master media metadata synchronization
US9483284B2 (en) 2011-02-25 2016-11-01 Red Hat, Inc. Version compatibility determination
US9891939B2 (en) 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US8839363B2 (en) 2011-04-18 2014-09-16 Bank Of America Corporation Trusted hardware for attesting to authenticity in a cloud environment
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US8745434B2 (en) 2011-05-16 2014-06-03 Microsoft Corporation Platform for continuous mobile-cloud services
US20130031371A1 (en) 2011-07-25 2013-01-31 Alcatel-Lucent Usa Inc. Software Run-Time Provenance
US20130036431A1 (en) 2011-08-02 2013-02-07 Microsoft Corporation Constraining Execution of Specified Device Drivers
US20130054734A1 (en) 2011-08-23 2013-02-28 Microsoft Corporation Migration of cloud applications between a local computing device and cloud
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
KR101874081B1 (ko) 2012-06-07 2018-07-03 에스케이테크엑스 주식회사 개선된 보안 기능 기반의 클라우드 서비스 시스템 및 이를 지원하는 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN101632083A (zh) * 2007-05-09 2010-01-20 国际商业机器公司 用于防止计算机系统被操控的方法和数据处理系统
CN101174293A (zh) * 2007-11-19 2008-05-07 南京大学 一种高安全等级操作系统的参照监视器实现方法
CN102077209A (zh) * 2008-06-27 2011-05-25 微软公司 受保护模式操作调度

Also Published As

Publication number Publication date
KR20140101367A (ko) 2014-08-19
MX345408B (es) 2017-01-30
BR112014014153B1 (pt) 2021-08-17
AU2012352754A1 (en) 2014-07-03
US9389933B2 (en) 2016-07-12
MX2014007102A (es) 2014-07-28
RU2621001C2 (ru) 2017-05-30
IN2014CN03961A (zh) 2015-10-23
AU2012352754B2 (en) 2017-10-19
JP6083097B2 (ja) 2017-02-22
CN103136468A (zh) 2013-06-05
US20130152209A1 (en) 2013-06-13
EP2791857A1 (en) 2014-10-22
JP2015500543A (ja) 2015-01-05
KR102073433B1 (ko) 2020-02-04
CA2857586A1 (en) 2013-06-20
RU2014123659A (ru) 2015-12-20
EP2791857B1 (en) 2019-08-07
CA2857586C (en) 2019-04-23
WO2013090044A1 (en) 2013-06-20
BR112014014153A2 (pt) 2017-06-13
EP2791857A4 (en) 2015-06-03

Similar Documents

Publication Publication Date Title
CN103136468B (zh) 协助用于硬件保护的应用程序的系统服务请求交互
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
CN112639778A (zh) 指针认证及指针认证方案之间的动态切换
US8996883B2 (en) Securing inputs from malware
EP3552093B1 (en) Application piracy prevention with secure enclave protection of automatically modularized functions
US20200134171A1 (en) System and method for providing secure execution environments using virtualization technology
US8812873B2 (en) Secure execution of a computer program using binary translators
CN112384914B (zh) 用于保护人工智能模型的方法、设备和存储介质
US10303885B2 (en) Methods and systems for securely executing untrusted software
EP3913513A1 (en) Secure debug of fpga design
US8972745B2 (en) Secure data handling in a computer system
US11886899B2 (en) Privacy preserving introspection for trusted execution environments
CN114996719B (zh) 可信处理单元的隐私数据及金融隐私数据的安全分析方法
Vinck et al. Sharing is caring: Secure and efficient shared memory support for mvees
KR20180011847A (ko) 가상 기계들을 위한 상태 정보 보호
US20220129593A1 (en) Limited introspection for trusted execution environments
Mofrad et al. Securing big data scientific workflows via trusted heterogeneous environments
US11513825B2 (en) System and method for implementing trusted execution environment on PCI device
CN104008327A (zh) 一种安全输入方法和系统
KR102192328B1 (ko) Sgx 상의 입력 채널을 보호하기 위한 고립된 인터럽트 핸들러를 포함하는 프로세서 및 인터럽트 처리 방법
Qiu A Performance Analysis of Hardware-assisted Security Technologies

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1185160

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150616

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150616

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1185160

Country of ref document: HK