CN103051451A - 安全托管执行环境的加密认证 - Google Patents

安全托管执行环境的加密认证 Download PDF

Info

Publication number
CN103051451A
CN103051451A CN2012105336109A CN201210533610A CN103051451A CN 103051451 A CN103051451 A CN 103051451A CN 2012105336109 A CN2012105336109 A CN 2012105336109A CN 201210533610 A CN201210533610 A CN 201210533610A CN 103051451 A CN103051451 A CN 103051451A
Authority
CN
China
Prior art keywords
security
protected storage
execution environments
secure execution
ftp
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
CN2012105336109A
Other languages
English (en)
Other versions
CN103051451B (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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN103051451A publication Critical patent/CN103051451A/zh
Application granted granted Critical
Publication of CN103051451B publication Critical patent/CN103051451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Abstract

本申请公开了安全托管执行环境的加密认证,描述了用于为托管计算机提供安全执行环境的实现。安全使能处理器以激活状态建立仅执行由客户端系统标识的软件的硬件受保护的存储器区域。硬件受保护的存储器区域不能由在硬件受保护的存储器区域外部执行的代码访问。将认证传送到客户端系统以表示在其激活状态下仅利用请求标识的软件建立了安全执行环境。

Description

安全托管执行环境的加密认证
相关申请
本申请涉及2011年12月12日提交的且代理机构索引号为MS1-5266US的美国专利申请第13/323562号。
技术领域
本申请涉及一种计算机系统,更具体地涉及安全托管执行环境的加密认证。
背景技术
在常规计算环境中,用户控制对用户的计算系统的物理访问。用户在一定程度上信任其数据中心中的硬件和软件。该信任结合对装置的物理控制为用户提供了其计算系统是安全的一定信心水平。
在托管计算环境中,用户通常不能对用于执行用户的应用的计算系统进行物理控制。除了信任在托管计算环境中执行的硬件和软件之外,用户没有选择而只有相信托管计算提供者不会篡改或窥探用户的代码和数据。用户还相信提供者提供足以防止未经授权的人移除硬盘或篡改系统的物理安全性。并且,用户相信托管计算提供者防止第三方篡改或窃取其数据。托管计算提供者因此可以以保证等的形式而承担一定量的责任,以鼓励用户在提供者的托管计算环境中运行其软件。
发明内容
提供该发明内容以介绍以下在具体实施方式中进一步描述的本公开内容的简化概念。该发明内容不旨在确定所要求保护的主题的关键特征,也不旨在用于确定所要求保护的主题的范围。
本公开内容的实施例使得应用托管服务能够加密地认证其提供抵抗窥探和篡改的安全执行环境,以使得其仅包括例如用户信任的代码和数据。为了服务来自客户端系统的请求以建立安全执行环境,由安全使能处理器来实例化受保护存储器区域。托管计算系统运行证明协议以提供关于安全执行环境中的软件和数据以及安全使能处理器的可验证事实,比如安全使能处理器的制造者和型号以及软件的卖方或代码身份。在成功完成证明协议时,在客户端系统与安全执行环境之间建立加密保护的通信信道,并且在安全执行环境内执行一个或更多个应用。
应用托管服务可使用包括来自信任机构和一个或更多个中介的证书的各种信任证书,以建立从安全使能处理器到信任机构的信任链。这些信任证书可共同地用在证明协议中以认证安全使能处理器的安全性。应用托管服务可被审核以验证应用托管服务的安全使能处理器是物理上安全的并且没有被篡改。审核者可提供可用作证明协议的一部分的审核者证书。替选地,审核者可以其它方式使审核结果可用(例如,在因特网上发布审核结果)。应用托管服务可(在证明协议中)使用由硬件制造者产生的、对于处理器的加密凭证,从而保证安全使能处理器的完整性和适当运行。
附图说明
参照附图阐述具体实施方式。在附图中,附图标记的最左侧的数字标识该附图标记首次出现的图。在不同的图中使用相同的附图标记指示类似或相同的项。
图1是可用于提供安全执行环境的示例系统的示意图。
图2是可用于提供根据实施例的应用托管服务的示例计算系统的框图。
图3是可用于提供根据实施例的客户端系统的示例计算系统的框图。
图4是示出用于实例化安全执行环境的示例处理的流程图。
图5是示出用于验证安全执行环境的建立的示例处理的流程图。
图6示出了根据实施例的受保护存储器区域的迁移的环境。
图7是示出用于迁移安全执行环境的示例处理的流程图。
图8是示出用于重建安全执行环境的示例处理的流程图。
具体实施方式
概述
如上所述,用户对传统托管计算提供者安全地执行用户的应用并且保护用户的数据持有一定程度的信任。本具体实施方式的实施例允许托管计算服务提供如下两者的加密认证:用户的执行环境抵抗篡改和窥探,以及用客户端请求的内容且在没有不信任的代码或数据的情况下来建立用户的执行环境。提供免受外部窥探和篡改的安全执行环境本身可使得不怀好意的托管计算提供者能够用不信任的代码来设置执行环境,该不信任的代码能够窥探或篡改来自该执行环境内的用户代码和数据。并且,仅提供什么都没有而只有用户的信任代码和数据的执行环境本身可使得托管提供者或第三方能够从执行环境外部篡改或窥探该执行环境的内容。但是,本公开的实施例使得托管计算提供者能够加密地认证其提供了安全执行环境,该安全执行环境抵抗外部的窥探和篡改并且不包括不信任的代码和数据。
根据实施例的计算系统包括安全使能处理器,该安全使能处理器被配置成针对客户端系统(比如由托管计算用户或消费者控制的计算装置)实例化包括受保护存储器区域的安全计算环境。客户端系统选择的代码和数据存储在受保护存储器区域中并且仅能被存储在受保护存储器区域中的代码访问,但是不能被在受保护存储器区域之外执行的所有代码访问。在受保护存储器区域之外执行的所有代码包括在可能存在的其它受保护存储器区域中运行的代码。安全执行环境中的代码可以由客户端系统、服务提供者、第三方或所有这些的组合来选择。例如,客户端系统可选择仅在安全执行环境中执行其应用代码(包括支持库)。保护该代码的执行免受计算机上的所有其它代码的影响。
线程可以仅通过安全使能处理器作为中介的特定入口函数而从受保护存储器区域之外的运行代码转换至受保护存储器区域内的运行代码。同样地,线程通过由安全使能处理器作为中介的特定出口函数而从受保护存储器区域内的运行代码转换至受保护存储器区域之外的运行代码。除了访问受保护存储器区域中的代码和数据的能力之外,在受保护存储器区域中运行的代码没有特殊特权。例如,在受保护存储器区域中的代码不需要以处理器的内核模式或特权模式来运行,也不需要访问仅能由处理器的内核模式或特权模式访问的指令,比如I/O指令。硬件受保护的存储器区域被置于公知的初始状态并且然后加载有加载器模块和用户的客户端系统指定的一个或更多个参数,以建立受保护存储器区域的请求激活状态。
信任的执行环境提供如下机制:通过该机制,在受保护存储器区域内运行的用户信任代码向客户端系统认证其正在安全执行环境内运行。安全使能处理器执行证明协议,涉及为客户端系统提供如下认证:建立了安全执行环境,并且在安全执行环境的初始激活状态下,仅执行来自客户端用户的请求中标识(明确地或隐含地)的软件。证明协议可涉及客户端或其它方。证明协议的目的是向客户端系统(或其它系统)加密地验证安全执行环境具有特定特性。这些特性在各种非限制性示例中可包括:
1.安全使能处理器的制造者和型号。
2.发起安全执行环境的代码和数据。
3.软件提供者和关于发起安全执行环境的代码和数据的其它信息。
例如,
a.软件由特定软件开发者/卖方来编写(以及签署)。
b.软件是具有到特定日期为止的安全补丁的特定版本。在各个非限制性实施例中,软件提供者签署包含相关软件模块的摘要(digest)(比如哈希值)的证书。
证明协议的非限制性示例包括:
●直接匿名证明(参考:E.Brickell,J.Camenish,L.Chen.Directanonymous attestation.刊于Proceedings of the 11th ACMconference on computer and communications security,第132-145页,2004年)。
●标准公钥协议,涉及利用安全使能处理器的私钥签署的证明证书。
以下描述了证明协议的各个实施例。实施例不限于以下实施例,并且以下描述的证明协议可包括附加功能,比如具有源于一个或更多个信任证书机构的信任链,而不背离本具体实施方式的范围。一旦以请求激活状态来实例化受保护存储器区域,则安全使能处理器就产生标识硬件受保护的存储器区域的初始激活状态的标识符并且将该标识符存储在仅能由安全使能处理器访问的位置中。该标识符可包括受保护存储器区域的激活状态的摘要(比如哈希值)。该标识符可包括安全使能处理器用于对置于激活状态下的受保护存储器区域中的内容进行解密的公钥。该标识符可以是标识激活状态的某种其它标识符。
加载器模块被执行并且使得安全使能处理器创建由安全使能处理器的私钥签署的证明证书。所签署的证明证书被传送到客户端系统,从而使得客户端系统能够使用与安全使能处理器的私钥对应的、安全使能处理器的已知公钥来验证证明证书是由安全使能处理器签署的。所签署的证明证书还使得客户端系统能够验证客户端系统与在安全使能处理器创建的受保护存储器区域中运行的加载器模块通信。因此,在客户端系统与安全使能处理器之间形成信任关系。包括来自信任机构以及可能来自一个或多个中介的附加证书的信任链可在实施例中用于建立信任关系。
证明证书包括受保护存储器区域的激活状态的标识符。客户端系统将该标识符与请求激活状态的已知标识符进行比较以确定受保护存储器区域的激活状态是请求激活状态,包括加载器模块和一个或更多个参数。由于具有该标识符的证明证书以安全使能处理器的私钥来签署/加密,并且由于在客户端系统与安全使能处理器之间建立信任关系,因此客户端系统能够依赖于标识符来确定受保护存储器区域的激活状态是请求激活状态。
因此,实施例为客户端系统提供如下两者的验证:托管计算提供者建立抵抗篡改和窥探的安全执行环境,以及以请求激活状态来实例化该安全执行环境。所签署的证明证书为客户端系统提供建立了安全执行环境的验证。并且,标识符为客户端系统提供以请求激活状态实例化安全执行环境的验证。然后,客户端系统利用安全执行环境来加载和执行所请求的应用。
尽管安全使能处理器可能可以抵抗偶然的物理攻击,但是其可能易遭受物理篡改。在各个实施例中,托管计算系统还被配置成向客户端系统认证安全使能处理器是物理上安全的,例如,在一个实施例中,托管计算系统被配置成传送由审核实体的私钥签署的审核者证书,从而表明安全使能处理器在特定时间段内没有被物理地篡改。来自审核实体的人员可定期地或连续地监视托管计算服务以确定安全使能处理器是物理上完好的。因此,审核者证书在安全执行环境中为客户端系统提供附加的置信度。在另一个实施例中,客户端系统将安全使能处理器的证书直接呈现给请求处理器的物理安全的验证的审核实体的计算机系统。审核实体的计算机系统以验证安全使能处理器物理上没有被篡改过的证书来响应。
根据本文描述的各个实施例的应用托管服务仅运行在客户端系统已选择的安全执行环境中的代码。与客户端系统相关联的实体可编写在安全执行环境内运行的所有软件,或者该实体可将部分软件向外界供应至实体信任的软件提供者。在一个非限制性示例中,客户端系统可从信任的应用软件卖方选择应用并且从信任的操作系统卖方选择库操作系统。与客户端系统相关联的实体被视为是实体直接创建的软件的部分的软件卖方。软件卖方可提供所签署的二进制文件的如下证书:验证软件各个二进制文件确实分别是软件卖方提供的各个文件以及二进制文件尚未被改变。
对于这些责任划分,应用托管服务作为中介,但是实际上不认证任意系统部件的完整性。安全使能处理器卖方认证安全执行环境。审核实体认证安全执行环境的物理安全。软件提供者认证在安全执行环境内运行的软件。应用托管服务可在各个实施例中执行这些角色中的一些、一个都没有或全部。在实施例中,应用托管服务提供者维持计算设施的可用性,包括提供计算设施、供电和网络连接,并且其它实体比如硬件提供者、软件提供者和审核实体提供所托管的应用的安全的其它各个方面。
应用托管服务的示例包括因特网托管设施、云计算提供者、外界供应的共同数据中心、通过合同运行的共同数据中心以及内容递送网络。
这里描述的处理、系统和装置可以以多种方式来实现。以下参照下列附图来提供示例实现。
用于提供安全执行环境的示例环境
图1是可用于提供安全执行环境的示例系统100的示意图。系统100的各个方面可以在能够实现应用托管计算系统、客户端计算系统等的各种适当类型的计算装置上实现。一个或更多个适当的计算装置可包括一个或更多个个人计算机、服务器、服务器场、数据中心、专用计算机、平板计算机、游戏控制台、智能电话、这些的组合或者能够存储和执行安全执行环境的全部或部分的任意其它一个或更多个计算装置,或者可以是上述的一部分。
应用托管服务102包括存储器104和安全使能处理器106。存储器104包括主机操作系统(OS)108和设置模块110。尽管图1中示出设置模块110与主机OS 108分离,但是设置模块110可以是主机OS 108的部件。另外,应用托管服务102可包括多个处理器,包括多个安全使能处理器,比如安全使能处理器106。主机OS 108和/或设置模块110可在安全使能处理器106上或者在图1中未示出的一个或更多个其它处理器上执行。
系统100执行各种功能,比如但不限于以下中的一个或更多个:(a)用代码和数据初始化安全执行环境;(b)接收客户端请求以将安全执行环境的实例与客户端系统绑定并且对其进行配置以运行客户端的软件;(c)将安全执行环境的实例与客户端绑定并且配置安全执行环境以运行客户端的软件;(d)将要在安全执行环境内运行的软件的认证规范提供给客户端。这些各种功能可取决于具体实施例而以不同的顺序执行。此外,具体实施例可组合功能中的一些。
在一个实施例中,托管服务可在执行上述功能的其它功能之前执行功能(b)。当客户端请求到达时,托管服务初始化安全执行环境(动作a)。托管服务可包括在初始化时在客户端请求中提供的代码和/或数据(例如,参数)。因此,可作为动作(b)的一部分而隐式地执行绑定(动作c)。替选地,托管服务可以用通用代码和数据(不特定于客户端)来初始化安全执行环境(动作a)并且在单独的步骤中将安全执行环境绑定到客户端(动作c)。
在另一个实施例中,托管服务用通用代码和数据来初始化一个或更多个安全执行环境(动作a)。该通用代码和数据可以提供任意应用的通用运行时间环境。当客户端请求到达时(动作b),托管服务从先前初始化的安全执行环境中选择一个安全执行环境并且通过向其发送来自客户端请求的代码或数据来将所选择的安全执行环境绑定到客户端(动作c)。
动作(c)和(d)可以组合。例如,验证密钥交换协议的变型可执行证明协议。证明协议将关于安全执行环境中的软件和数据的可验证属性提供到客户端(动作d),并且在安全执行环境与客户端之间建立共享加密密钥(动作c)。
以下示例是实施例的一个类别的详细描述。设置模块110经由网络114从客户端系统112接收请求,以在应用托管服务102上建立安全执行环境。网络114可以是公共因特网,或者某种其它有线或无线网络类型。实施例不限于任意一种或更多种类型的网络。请求伴随有加载器模块116和一个或更多个参数118的指示。加载器模块116的指示可以是加载器模块116的标识符,或者可以是加载器模块116本身的应用二进制文件或者某种其它指示符。在加载器模块116的指示是标识符的实施例中,其可以是标识加载器模块116和可能标识可以找到加载器模块116的位置的统一资源标识符(URI),比如统一资源定位符(URL)。
设置模块110响应于请求的接收使得安全使能处理器106实例化存储器104内的作为硬件受保护的存储器区域的受保护存储器区域120。设置模块110为安全使能处理器106提供对于加载器模块116和参数118的指针,并且指示安全使能处理器106将受保护存储器区域120置于公知的初始状态(比如受保护存储器区域120内的所有存储器地址和安全使能处理器106内的所有适当寄存器归零或者某种其它公知的初始状态),以及在将受保护存储器区域120置于公知的初始状态之后将加载器模块116和参数118加载到受保护存储器区域120中。首先进入公知的初始状态并且然后加载有加载器模块116和参数118的受保护存储器区域120的实例化表示受保护存储器区域120的请求激活状态。换言之,其表示客户端装置在其设置安全执行环境的请求中指定的安全执行环境的状态。
受保护存储器区域120和安全使能处理器106在受保护存储器区域120中对代码的执行的组合表示安全执行环境。尽管受保护存储器区域120被示出为还包括主机OS 108和设置模块110的连续存储器区域的一部分,但是在替选实施例中受保护存储器区域120可以是单独的存储器区域的一部分,比如与安全使能处理器106在同一集成电路上的、将受保护存储器区域120与应用托管服务102的剩余部分物理上隔离的存储器区域。
安全使能处理器106可被配置成对分别写入受保护存储器区域120和从受保护存储器区域120读取的所有数据进行加密和解密,以防止对受保护存储器区域120的外部窥探。安全使能处理器106还可被配置成产生写入受保护存储器区域120的数据的哈希值或其它摘要,以便在读取受保护存储器区域120的内容时验证内容没有被改变。
作为实例化处理的一部分,安全使能处理器106产生标识受保护存储器区域120的激活状态的标识符122。在各个实施例中,标识符可以是激活状态下的受保护存储器区域120的内容的摘要,比如哈希值。标识符可以是与用于签署存储在受保护存储器区域120中的软件的私钥对应的公钥。激活状态包括加载器模块116、参数118和在实例化时置于受保护存储器区域120中的任意其它代码或数据。标识符122可存储在仅能由安全使能处理器106访问的位置中,比如除了安全使能处理器106之外不可访问的安全使能处理器106内的寄存器或存储器位置中,或者可能在存储器104的区域中被加密。在标识符是激活状态下的受保护存储器区域104的内容的哈希值的实施例中,安全使能处理器使用加密哈希函数(比如MD5消息摘要算法、安全哈希算法SHA-0、SHA-1、SHA-2或者其它哈希函数)来产生哈希值。
在用加载器模块116和参数118实例化受保护存储器区域120时,设置模块110指示安全使能处理器106比如通过入口函数或门来执行加载器模块116,安全使能处理器106使用该入口函数或门以使得安全执行环境能够从安全执行环境外部接收通信。加载器模块116的实例在安全使能处理器上执行并且使得处理器创建由安全使能处理器(SEP)私钥126签署的证明证书124。SEP私钥126以仅能由安全使能处理器106访问的方式永久存储在安全使能处理器106上。因此,只要安全使能处理器106是物理上完好的,接收证明证书124的实体就可以具有所签署的证明证书124是由安全使能处理器106签署的高置信度。
证明证书124可包括标识符122等。加载器模块116然后经由安全使能处理器采用的以使得安全执行环境能够与外部世界通信的出口函数或出口门而将证明证书传送到客户端系统112。替选地,标识符122可利用SEP私钥126来加密并且与证明证书124(其也可使用SEP私钥126签署/加密)分开传送到客户端系统112。
在接收到证明证书124时,客户端系统112使用与安全使能处理器的SEP私钥126对应的SEP公钥128对证明证书124解密。以下描述客户端系统112获得SEP公钥128的手段。
客户端系统112将包含在解密的证明证书124内的标识符122与安全执行环境的请求激活状态的已知标识符130进行比较。对已知标识符130与标识符122匹配的确定为客户端系统112提供受保护存储器区域120的实际激活状态与受保护存储器区域120的请求激活状态匹配的高置信度。在各个非限制性示例中,标识符122的成功验证为客户端系统112提供受保护存储器区域120包括加载器模块116、参数118、在用于建立安全执行环境的请求中明确地或隐含地指定的任意其它代码或数据而没有其它的置信。如以上指出的,证明证书124通过使用仅能由安全使能处理器106访问的SEP私钥来签署/加密。证明证书124包括受保护存储器区域120的激活状态的标识符122,标识符122由安全使能处理器106产生并且可以以使得标识符122仅能由安全使能处理器106访问的方式来安全地存储。
由于加载器模块116或其它代码(比如暗中加载在受保护存储器区域120内的一些恶意代码)无法访问SEP私钥126,因此加载器模块116或其它代码无法在也不改变证明证书124以及使安全使能处理器106的签名无效的情况下改变标识符122。因此,在成功地使用SEP公钥128验证证明证书124是使用SEP私钥126正确地签署的时,并且在成功地验证包括在其中的标识符122与已知标识符130匹配时,客户端系统112可以具有其与以请求激活状态实例化的安全执行环境通信的高置信度。
为了实现该高置信度,客户端系统112与安全使能处理器106形成信任关系。仅处理SEP公钥128可能不足以确立安全使能处理器106是被适当地配置成在应用托管服务102上提供安全执行环境的真实安全使能处理器。因此,提供信任链以保证安全使能处理器106的真实性。
加载器模块116或设置模块110可传送一个或更多个信任证书,比如信任机构(TA)证书132和可能的一个或更多个中间证书134。TA证书132使用信任机构136的私钥来签署。TA证书132标识安全使能处理器106或者可能的一个或更多个中介,并且提供安全使能处理器106的公钥(即,SEP公钥128)或直接在其下的中间机构的公钥。客户端系统112可获得信任机构(TA)公钥138并且使用其对TA证书132解密,并且然后获得其中发布的公钥。对任意中间证书134解密,并且从中间证书134提取任意下层中介的公钥。最终,客户端系统112能够从TA证书132或中间证书134之一获得SEP公钥128。
该处理创建从信任机构136到安全使能处理器106的信任链。基本上,信任机构保证大部分中间中介,中介保证任意较低层级的中介,并且最终中介之一(或者如果不存在中介则为信任机构136)保证安全使能处理器106并提供SEP公钥128。通过以此方式跟随信任链,客户端系统112能够与安全使能处理器106建立信任关系。
信任机构136可以是制造安全使能处理器106的硬件制造者。替选地,信任机构136可以是提供可以是硬件制造者的中介是值得信任的确保的某种其它实体。
在同一或不同的实施例中,设置模块110还被配置成将由审核实体的私钥签署的审核证书140传送到客户端系统112,该审核证书140表示安全使能处理器尚未被篡改。在同一或替选实施例中,客户端系统112为审核实体提供安全使能处理器106的身份(可包括在证明证书中)并且请求审核实体为客户端系统112提供审核证书140。审核实体可采用用于验证安全使能处理器的物理安全的一种或多种机制。例如,审核实体的人员可定期地视察容纳应用托管服务102的各个数据中心,物理上检查计算装置,并且验证安全使能处理器106是物理上无损害的、尚未被篡改或者是完好的。在其它实施例中,审核实体的人员可使用闭路摄像装置连续地监视容纳应用托管服务102的各个数据中心,或者审核实体的人员可对容纳应用托管服务102的各个数据中心内的随机选择的计算装置进行随机检查。取决于所采用的审核处理,审核实体可提供不同水平或程度的物理安全认证以适合于各种客户端的商业需要。在各个实施例中,审核证书140可以是上述信任链的一部分。替选地,审核证书可以是客户端系统112用于进一步验证应用托管服务102提供的设施是安全的单独证书(可能由其自己的信任链来支持)。
一旦客户端系统112验证证明证书124是由安全使能处理器106正确地签署并且其中包含的标识符122与已知标识符130匹配(以及可能在经由TA证书132和各个中间证书134以及比如审核证书140的任意其它证书验证了信任链之后),客户端系统112和加载器模块116可建立加密通信信道。在一个实施例中,为了建立加密通信信道,客户端系统112产生会话密钥,利用SEP公钥128对会话密钥加密,并且将加密的会话密钥传送到加载器模块116。加载器模块116(比如通过安全使能处理器106的入口函数或门)接收会话密钥。加载器模块116使得安全使能处理器106使用SEP私钥126对会话密钥解密,并且加载器模块116使用解密的会话密钥与客户端系统112建立通信。客户端系统112和加载器模块116使用会话密钥来加密地保护其间的通信。
可使用比如以下中描述的各种方法来保护上述证明协议免受各种状态重放攻击:2008年9月2日授予England等人的题为“Multiplexing asecure counter to implement second level secure counters”的美国专利第7,421,579号;2006年6月20日授予England等人的题为“System andmethod for implementing a counter”的美国专利第7,065,607号;以及Bryan Parno,Jacob R.Lorch,John R.Douceur,James Mickens和Jonathan M.McCune发表于Proceedings of the IEEE Symposium onSecurity and Privacy,IEEE,2011年5月的“Memoir:Practical StateContinuity for Protected Modules”。
客户端系统112指示加载器模块116加载并执行应用142。加载器模块116然后将应用142加载到受保护存储器区域120中并执行应用142。替选地,应用142由参数118预先标识并且在建立加密信道时由加载器模块116加载。在其它实施例中,参数118包括应用142的应用二进制文件,并且加载器模块116经由加密信道接收命令以执行应用142。在其它实施例中,作为受保护存储器区域120的激活状态的一部分,加载应用142。在其它实施例中,应用142通过网络114从应用卖方加载。在不背离本公开的范围的情况下可以有其它变型。
应用142可包括比如在2010年7月13日提交的题为“ULTRA-LOWCOST SANDBOXING FOR APPLICATION APPLIANCES”的美国专利申请第12/834,895号中描述的操作系统子系统(有时称为“库OS”)。操作系统子系统在应用处理内提供各种操作系统元件。操作系统子系统还利用应用程序接口(API)的小子集来经由操作系统平台适配层(PAL)与主机操作系统通信,以便为应用141提供基本计算服务。
在任意事件中,在安全执行环境中加载和执行由客户端系统112指定的应用142可以是上述证明协议的最终目标。证明协议因此为与客户端系统112相关联的用户提供应用142在免于来自外部的窥探和篡改并且没有加载不信任内容的安全执行环境内执行的高置信度。
用于提供应用托管服务的示例计算系统
图2是可用于提供根据实施例的应用托管服务的示例计算系统200的框图。计算系统200可被配置为能够实现应用托管服务的任意适当的计算装置。根据各种非限制性示例,适当的计算装置可包括个人计算机(PC)、服务器、服务器场、数据中心、专用计算机、平板计算机、游戏控制台、智能电话、这些的组合或者能够存储和执行应用托管服务的全部或一部分的任意其它计算装置。
在一个示例配置中,计算系统200包括一个或更多个处理器202和存储器204。处理器202包括与安全使能处理器106相同或类似的一个或更多个安全使能处理器。处理器202可包括除安全使能处理器之外的一个或更多个通用或专用处理器。计算系统200还可包含允许与各种其它系统通信的各个通信连接206。计算系统200还可包括通信地耦合到一个或更多个处理器202和存储器204的一个或更多个输入装置比如键盘、鼠标、笔、语音输入装置、触摸输入装置等,以及一个或更多个输出装置210比如显示器、扬声器、打印机等。
存储器204可存储可在处理器202上加载和执行的程序指令以及在这些程序的执行期间生成的和/或可结合这些程序使用的数据。在所示出的示例中,存储器204存储提供计算系统200的基本系统功能以及此外提供计算系统200的其它程序和模块的操作的操作系统212。操作系统212可与主机OS 108相同或类似。
存储器204包括可与设置模块110相同或类似的设置模块214。存储器204包括由安全使能处理器建立的受保护存储器区域216。受保护存储器区域216可与受保护存储器区域120相同或类似。
存储器204包括可与加载器模块116相同或类似的加载器模块218。加载器模块218可在客户端系统请求时被加载到受保护存储器区域216中。存储器204包括可分别与TA证书132和各个中间证书134相同或类似的TA证书220和一个或更多个中间证书222。
存储器204包括可与审核证书140相同或类似的审核证书224。存储器204包括可与维持模块614相同或类似的维持模块226。
用于提供客户端系统的示例计算系统
图3是可用于提供根据实施例的客户端系统的示例计算系统300的框图。计算系统300可被配置为能够实现客户端系统的任意适当计算装置。根据各种非限制性示例,适当计算装置可包括个人计算机(PC)、服务器、服务器场、数据中心、专用计算机、平板计算机、游戏控制台、智能电话、这些的组合或者能够存储和执行客户端系统的所有或部分的任意其它一个或更多个计算装置。
在一个示例配置中,计算系统300包括一个或更多个处理器302和存储器304。计算系统300还可包含允许与各种其它系统通信的各个通信连接306。计算系统300还可包括通信地耦合到各个处理器302和存储器304的一个或更多个输入装置308比如键盘、鼠标、笔、语音输入装置、触摸输入装置等,以及一个或更多个输出装置310比如显示器、扬声器、打印机等。
存储器304可存储可在各个处理器302上加载和执行的程序指令以及在这些程序的执行期间生成的和/或可结合这些程序使用的数据。在所示出的示例中,存储器304存储提供计算系统300的基本系统功能以及此外提供计算系统300的其它程序和模块的操作的操作系统312。
存储器204包括建立模块314,建立模块314被配置成将请求传送到应用托管服务(比如应用托管服务102)以在应用托管服务内建立安全执行环境。请求包括安全执行环境的请求激活状态的指示,比如要加载到安全执行环境中的加载器模块316和一个或更多个参数。
验证模块318被配置成从在应用托管服务的受保护存储器区域中执行的加载器模块316的实例接收加密的证明证书。加密的证明证书用应用托管服务的安全使能处理器的私钥来加密/签署。在各个实施例中,验证模块318被配置成使用安全使能处理器的SEP公钥320对证明证书解密。利用SEP公钥320对证明证书的成功解密表示证明证书是由安全使能处理器加密/签署的。在各个实施例中,验证模块318被配置成接收一个或更多个信任证书比如信任机构证书和一个或更多个中间证书,以在信任机构与安全使能处理器之间建立信任链,如在具体实施方式中的其它地方所描述的。该一个或更多个信任证书可共同保证安全使能处理器的身份和/或表示安全使能处理器是安全的。
在各个实施例中,作为信任链的建立的一部分或除信任链的建立之外,验证模块318被配置为接收由审核实体的私钥签署的审核证书,该审核证书表示安全使能处理器是物理上无损害的。审核证书可由应用托管服务或由某个其它实体来提供。
在各个实施例中,作为信任链的建立的一部分或除信任链的建立之外,验证模块318被配置成为接收比如来自安全使能处理器的制造者的表示安全使能处理器是安全的处理器证书。
在成功建立信任链并且验证比如审核证书和/或处理器证书的任意其它证书是有效的时(比如通过使用其发行者的公钥来对这样的证书解密),验证模块318接受安全使能处理器是合法的安全使能处理器。
验证模块318被配置成从证明证书提取标识符并且将其与已知标识符322比较。已知标识符322表示如在建立模块传送的请求中标识的、安全执行环境的请求激活状态。建立模块314被配置成响应于验证模块318对验证了安全使能处理器的合法性以及摘要与请求激活状态的已知标识符322匹配的验证,建立与在安全执行环境中执行的加载器模块的实例的加密连接。已知标识符322可包括受保护存储器区域的请求激活状态的摘要,比如哈希值。已知标识符322可包括与用于签署请求激活状态下的置于受保护存储器区域中的内容的私钥匹配的公钥。已知标识符322可以是标识初始激活状态的某种其它标识符。在一些实施例中,建立模块314产生用于加密连接的会话密钥,使用安全使能处理器的SEP公钥320对会话密钥加密,并且将加密的会话密钥传送到在应用托管服务的安全执行环境中执行的加载器模块的实例。加密连接利用会话密钥将数据发送到安全执行环境以及从安全执行环境接收数据。在不背离具体实施方式的范围的情况下,可以有建立加密连接的其它实施例。
建立模块314指示在安全执行环境中执行的加载器模块的实例加载用于在安全执行环境内执行的应用324。应用324或加载器模块均不需要包括在计算系统300中。相反,建立模块314可以比如通过提供应用324的URI或URL来指示加载器模块从某个其它位置下载应用324。在发送到应用托管服务的请求中由建立模块314提供的一个或更多个参数可标识用于在安全执行环境内执行的应用324。参数可包括应用324的URI、URL或其它标识符。替选地,参数可包括用于在实例化时直接加载到安全执行环境中的应用324的应用二进制文件。
存储器304还可包括客户端侧维持模块326,客户端侧维持模块326被配置成执行与维持安全执行环境相关联的一个或更多个功能,比如例如,以便在应用托管服务中的计算机之间迁移安全执行环境,或者在应用托管服务中的同一计算机上重建安全执行环境,如参照图6至8更详细地描述的。这样的客户端侧维持功能包括接收作为安全执行环境的迁移的一部分的维持密钥,利用计算系统300的私钥对维持密钥解密,以及将未加密的维持密钥传送到驻留在应用托管服务的迁移计算机比如迁移计算机604上的维持模块比如维持模块614。
用于实例化安全执行环境的示例操作
图4是示出用于实例化安全执行环境的、由应用托管服务执行的示例处理400的流程图。在402处,设置模块比如设置模块110从客户端系统接收请求以在应用托管服务比如应用托管服务102上建立安全执行环境。请求包括加载器模块比如加载器模块116的指示以及一个或更多个参数比如参数118。加载器模块的指示可以是加载器模块的URI或URL(或其它标识符类型),或者可以是加载器模块的应用二进制文件、应用包等。参数可指示请求在安全执行环境中运行的应用。参数可以是请求在安全执行环境中运行的应用的应用二进制文件。参数可以是客户端系统请求置于安全执行环境的受保护存储器区域中的某种其它参数。在各个实施例中,参数可从请求省略。
在404处,主机操作系统将加载器模块和参数放置在要保护的存储器区域中。
在406处,设置模块指示应用托管服务的安全使能处理器(SEP)比如安全使能处理器106响应于请求来实例化包括请求所标识的加载器模块和一个或更多个参数的受保护存储器区域。
在408处,安全使能处理器通过将包括加载器模块和参数的存储器区域置于受保护状态而建立受保护存储器区域。将受保护存储器区域置于公知的初始状态。公知的初始状态可以是受保护存储器区域的所有存储器单元和所有处理器寄存器都被写为零、一或某种其它预定值或值的模式。如在具体实施方式内的其它部分所描述的,一旦安全使能处理器将受保护存储器区域置于公知的初始状态,存储在受保护存储器区域中的数据就不能被在受保护存储器区域外部存储和执行的代码访问。安全使能处理器管理该访问。
在410处,设置模块指示加载器模块在受保护存储器区域内执行。设置模块能够通过安全使能处理器提供的入口门或函数来将指令传递到加载器模块,该入口门或函数使得安全执行环境能够从外部执行环境接收通信。
在412处,安全使能处理器产生受保护存储器区域的内容的标识符。在各个实施例中,标识符可以是激活状态下的受保护存储器区域的内容的摘要,比如哈希值。标识符可以是与用于签署存储在受保护存储器区域中的软件的私钥匹配的公钥。在创建标识符的时刻,受保护存储器区域的内容包括请求中包括的一个或更多个参数和加载器模块,而没有其它数据或代码。因此,受保护存储器区域的内容表示由请求隐含地或明确地标识的请求激活状态。在标识符是摘要的实施例中,可使用各种哈希函数或其它类似的加密函数之一来产生摘要。
在414处,安全使能处理器以仅能由安全使能处理器访问的方式来存储标识符。例如,安全使能处理器可将标识符存储在安全使能处理器的安全寄存器中。安全使能处理器可在存储器位置中存储加密的标识符。但是,在任意情况下,标识符以使得其仅能由安全使能处理器访问的方式来存储。标识符可在加载器模块指示时创建。在替选实施例中,可在实例化受保护存储器区域而没有来自加载器模块的指示的情况下创建标识符。
在416处,在安全执行环境中执行的加载器模块的实例指示安全使能处理器产生包括标识符并且由安全使能处理器的私钥签署的证明证书。安全使能处理器的私钥以仅能由安全使能处理器访问的方式安全地存储在安全使能处理器中。证明证书可包括标识符以外的其它信息,比如时间戳、一个或更多个参数或者其它数据。
在418处,安全使能处理器使用安全使能处理器的私钥对证明证书加密/签署,并且将签署的证明证书提供给在安全执行环境中执行的加载器模块。
在420处,加载器模块为客户端系统提供如下认证:在初始激活状态下建立安全执行环境,以仅执行由客户端系统请求标识的软件。认证可包括签署的证明证书。加载器模块可经由安全使能处理器的出口门或函数传送证明证书,该出口门或函数使得安全执行环境能够与安全执行环境外部的代码通信。
在422处,加载器模块和/或应用托管服务传送共同地保证安全使能处理器的身份和/或表示安全使能处理器是安全的一个或更多个信任证书,比如TA证书132和各个中间证书134。这还可包括由审核实体的私钥签署的、表示安全使能处理器是物理上完好的审核证书。这可包括来自安全使能处理器的制造者的、表示安全使能处理器是安全的处理器证书。在替选实施例中,审核证书和/或处理器证书比如直接从审核实体、硬件制造者或第三方单独递送到客户端系统。在一个非限制性示例中,证明证书可包括标识客户端系统可以取回审核证书的位置的URI。
在424处,加载器模块从客户端系统接收授权消息。
在426处,加载器模块获得要在安全执行环境中执行的一个或更多个应用部件。获得一个或更多个应用部件可包括从应用托管服务的永久存储装置、从远程位置(比如经由在初始激活状态的参数或授权消息或者在某个其它位置中标识的URI)取回该一个或更多个应用部件。获得一个或更多个应用部件可包括比如经由加密保护的通信信道从客户端系统取回一个或更多个应用部件。
客户端系统通过传送URI、URL、其它标识符或者应用二进制文件、应用包或文件系统图像来选择一个或更多个应用部件。URI、URL、其它标识符、应用二进制文件、应用包、文件系统图像等的传送可经由在402处接收的请求在424处接收或者以某种其它方式(比如经由在加载器模块与客户端系统信道之间建立的安全通信连接(使用例如安全套接层(SSL)协议或其它协议))来接收的授权消息中实现。
在各个非限制性实施例中,客户端系统为加载器模块提供加密密钥。在这些实施例中,获得一个或更多个应用部件可包括使用(通过安全通信信道接收的)加密密钥来对一个或更多个部件解密。在各个实施例中,加密密钥可通过安全通信信道无阻碍地传输。在其它实施例中,加密密钥可利用安全使能处理器的公钥来加密并且由代表加载器模块的安全使能处理器解密。在各个实施例中,在不背离公开内容的范围的情况下,在426处获得一个或更多个应用部件可以以不同于图4所示的序列发生。在这样的替选实施例的一个非限制性示例中,可作为初始激活状态的一部分,已获得了一个或更多个应用部件并且将其加载到受保护存储器区域中。在428处,加载器模块使得安全使能应用在受保护存储器区域内执行所获得的一个或更多个应用部件。
用于验证安全执行环境建立的示例操作
图5是示出用于验证安全执行环境的建立的示例处理500的流程图。在502处,客户端系统比如客户端系统112将请求传送到应用托管服务比如应用托管服务102,以建立安全执行环境。请求包括安全执行环境的请求激活状态的指示,比如要加载到安全执行环境的受保护存储器区域中的所请求的加载器模块和一个或更多个参数。
在504处,客户端系统从在应用托管服务的受保护存储器区域中执行的加载器模块的实例接收建立了安全执行环境以在激活状态下仅执行请求标识的软件的认证,比如证明证书。证明证书包括标识符。证明证书的接收表示应用托管服务声称已建立了安全执行环境。标识符标识安全执行环境的受保护存储器区域在其实例化时的内容。在各个实施例中,标识符可以是激活状态下的受保护存储器区域的内容的摘要,比如哈希值。标识符可以是与用于签署存储在受保护存储器区域中的软件的私钥匹配的公钥。
在506处,客户端系统接收一个或更多个信任证书,比如TA证书132和/或中间证书134。如在具体实施方式内的其它部分所描述的,一个或更多个信任证书可验证地并且共同地建立信任机构与应用托管服务的安全使能处理器之间的信任链,以表示安全使能处理器是安全的。
在508处,客户端系统接收由审核实体的私钥签署的、表示安全使能处理器是物理上无损害的审核证书。如在具体实施方式内的其它部分所描述的,审核实体定期地检查应用托管服务的安全使能处理器。
在510处,客户端系统从安全使能处理器的制造者接收表示安全使能处理器是安全的处理器证书。处理器证书可以是在506处接收的信任证书之一。替选地,处理器证书可从保证安全使能处理器的安全和正确运行的安全使能处理器的硬件制造者(或者第三方)单独接收。
在512处,客户端系统比如通过使用各个发行者的公钥验证其真实性来验证在506、508和510处接收的各个证书是正确的。如果证书中的一个或更多个是无效的,则客户端系统可由于无效而拒绝安全执行环境。
在514处,客户端系统获得安全使能处理器的公钥。客户端系统可从在506处接收的信任证书之一获得公钥。替选地,客户端系统可已预先存储了安全使能处理器的公钥。
在516处,客户端系统使用应用托管服务的安全使能处理器的已知公钥来验证证明证书。已知公钥对应于安全使能处理器的私钥。利用公钥的成功解密因此表示证明证书可验证地来自安全使能处理器。
在518处,客户端系统从解密的证明证书提取标识符。并且在520处,客户端系统将标识符与安全执行环境的请求激活状态的已知标识符的预期值进行比较。成功匹配表示应用托管服务的安全使能处理器所实例化的安全执行环境的激活状态是如在502处传送的请求中指定的。
在522处,客户端系统确定标识符是否匹配。如果标识符不匹配,则客户端系统由于没有请求激活状态而拒绝安全执行环境。不匹配的标识符表示安全执行环境的实际激活状态与请求激活状态相比具有更少、更多或不同的代码和数据。标识符的成功匹配连同证明证书和信任证书有效的验证允许客户端系统具有安全执行环境是在没有不信任代码的情况下建立以使得例如安全执行环境仅利用客户端系统信任的代码和数据来建立的高置信度。
在524处,客户端系统对在受保护存储器区域中执行的加载器模块的实例授权,以在安全执行环境内执行一个或更多个应用部件。在实施例中,对加载器模块授权可包括传送要在安全执行环境中执行的一个或更多个应用部件的指示符。指示符可以是要执行的一个或更多个应用部件的URI、URL、其它标识符、或者应用二进制文件、应用包或文件系统图像。在各个实施例中,指示符的传送可以是在502处传送请求的一部分。在其它实施例中,传送指示符可利用单独的消息(比如例如通过使用SSL或其它协议建立的安全连接发送的消息)或者在某个先前时间传送的消息,以便“预先筹备”要在安全执行环境中执行的一个或更多个应用部件。客户端系统可生成要用于对各种消息和/或指示符进行解密的加密密钥并将其传送到加载器模块。
用于维持安全执行环境的示例环境
在传统的托管计算中,托管的消费者执行的迁移或重建由虚拟机监视器来处理。在传统的托管计算迁移中,主机虚拟机监视器检查执行的状态,复制所有存储器页面,将存储器页面写出到盘或者经由网络传输存储器页面,并且在同一或不同的机器上启动执行。但是,由于存储在根据本公开内容的实施例的安全执行环境的受保护存储器区域内的代码和数据不能由在受保护存储器区域外部执行的代码访问,因此主机OS不能检查执行的状态或将状态信息复制到盘以便迁移到另一机器。替代地,在受保护存储器区域内运行的代码处理重建和迁移处理的各个方面。
图6示出了根据实施例的受保护存储器区域的迁移的环境。环境600包括主机计算机602和迁移计算机604。包括受保护存储器区域606和安全使能处理器608的安全执行环境建立在主机计算机602上。以在具体实施方式内的其它部分(具体地,在对图1至5的描述中)描述的方式来实例化受保护存储器区域606。受保护存储器区域606包括在安全执行环境内执行的加载器模块610和应用612。受保护存储器区域606还包括可以是加载器模块610的子部件或应用612的子部件的维持模块614,其包括应用612的库OS子部件的子部件。
主机OS 616确定需要维持安全执行环境。维持安全执行环境可以是为了将安全执行环境从主机计算机602迁移到迁移计算机604的目的。替选地,维持安全执行环境可以是为了在主机计算机602上重建执行的目的。在任意情况下,主机OS 616被配置成调用安全使能处理器608提供的入口门或函数,其允许主机OS 616指示安全执行环境将其当前执行状态维持到永久存储装置。
维持模块614经由入口门接收维持指令,并且作为响应创建加密检查点618。为了实现这一点,维持模块614关闭加载器模块610和应用612的执行(包括例如使得线程停顿)并且将处理器寄存器写入受保护存储器。在该点处,仅一个线程即维持模块614的挂起线程可保持运行。各个存储器页面连同处理器寄存器被枚举和存储作为状态信息620。受保护存储器区域606的内容、包括应用612和状态信息620作为加密检查点618存储在永久存储装置622上。加密检查点618利用维持模块614生成的维持密钥来加密。维持模块614使用客户端系统626的公钥624来对维持密钥加密。替选地,使用迁移安全使能处理器634的公钥或安全使能处理器608的公钥来对维持密钥加密。加密的维持密钥作为密封维持密钥628存储在永久存储装置622中。
在利用执行状态的维持以将执行迁移到迁移计算机604的实施例中,迁移计算机604的迁移主机OS 630使得建立迁移受保护存储器区域632。在利用执行状态的维持以在主机计算机602上在新的受保护存储器区域(例如,由于主机计算机602的重启或出于其它原因)中重建执行的实施例中,主机OS 616使得在主机计算机602上建立新的受保护存储器区域。以在具体实施方式内的其它部分(具体地,在对图1至5的描述中)描述的方式来实例化迁移受保护存储器区域632或要在主机计算机602上建立的新的受保护存储器区域。
在维持执行状态是为了将其迁移到迁移计算机604的实施例中,迁移主机OS 630调用迁移安全使能处理器634的入口门或函数以使得加载器模块610在迁移受保护存储器区域632内开始或执行维持模块614。维持模块614将密封的维持密钥628复制到迁移受保护存储器区域632中并且将密封的维持密钥628传送到客户端系统626。客户端系统626使用客户端系统626的私钥对密封的维持密钥628解密并且经由在迁移计算机604上的安全执行环境的初始化期间建立的加密连接将其传送回维持模块614。替选地,在利用迁移安全使能处理器634的公钥对维持密钥加密的实施例中,使用迁移安全使能处理器634的私钥对密封的维持密钥解封。
在利用维持执行状态以为了在主机计算机602上重建执行的目的的实施例中,主机OS 616调用安全使能处理器608的入口门或函数,以使得加载器模块610在新重建的受保护存储器区域606内开始或执行维持模块614。维持模块614将密封的维持密钥628复制到新重建的受保护存储器区域606内并且将密封的维持密钥628传送到客户端系统626。客户端系统626使用客户端系统626的私钥对密封的维持密钥628解密并且经由在迁移计算机604上的安全执行环境的初始化期间建立的加密连接将其传送回维持模块614。替选地,在利用安全使能处理器608的公钥对维持密钥加密的实施例中,使用安全使能处理器608的私钥对密封的维持密钥解封。
维持模块614将加密检查点618复制到迁移受保护存储器区域632或新重建的受保护存储器区域606中,并且使用解封的维持密钥来对加密检查点618解密。维持模块614使用来自加密检查点618的状态信息620,以重现与来自加载器模块610和应用612的执行线程相关联的存储器页面,并且重现迁移安全使能处理器634或安全使能处理器608中的寄存器。因此,在各个实施例中,将主机计算机602上的安全执行环境的执行迁移到迁移计算机604,或者在主机计算机602上重建该执行。
在各个实施例中,可以在迁移处理开始之前比如在初始化主机计算机602上的安全执行环境的同时实例化迁移计算机604上的安全执行环境。迁移受保护存储器区域632上的维持模块614可以利用客户端系统626的私钥预先构成,以使得其能够对密封的维持密钥628解密而无需将其传送到客户端系统626进行解封。在一些实施例中,取代使用客户端系统626的公钥对维持密钥加密,使用迁移安全使能处理器634的公钥对密封的维持密钥628加密,以使得可以使用迁移安全使能处理器634的私钥对其解密。
用于迁移安全执行环境的示例操作
图7是示出用于迁移安全执行环境的示例处理700的流程图。在702处,在安全执行环境中执行的加载器模块或维持模块经由入口门接收命令,以迁移到迁移计算机比如迁移计算机604。
在704处,维持模块比如维持模块614生成维持密钥。维持密钥用于对安全执行环境的检查点加密。
在706处,维持模块对维持密钥加密。在实施例中,维持模块使用客户端系统比如客户端系统626的公钥对维持密钥加密。在替选实施例中,其中主机迁移计算机的身份是已知的,维持模块使用迁移计算机的安全使能处理器的公钥对维持密钥加密。
在708处,维持模块将加密的维持密钥写入永久存储装置。替选地,维持模块将维持密钥传送到客户端系统,或者传送到迁移计算机上的预先建立的安全执行环境。
在710处,维持模块关闭在安全执行环境中执行的处理和线程的执行,并且将状态信息写入受保护存储器区域。
在712处,维持模块使用维持密钥对受保护存储器区域的内容进行加密以生成检查点。受保护存储器区域的内容包括状态信息,比如与安全执行环境相关联的页面文件和寄存器数据。
在714处,将加密检查点存储在永久存储装置上,比如应用托管服务的硬盘驱动器或某种其它永久存储装置上。替选地,将加密检查点比如通过到迁移计算机的受保护存储器区域的加密通信信道而直接加载到迁移计算机的预先建立的受保护存储器区域中。
在716处,在迁移计算机上初始化受保护存储器区域。迁移计算机的主机操作系统使得迁移计算机的受保护存储器区域中的加载器模块在迁移计算机的安全执行环境内加载和执行维持模块。
在718处,在迁移计算机的安全执行环境内执行的维持模块将加密的维持密钥传送到客户端系统。在替选实施例中,其中使用迁移计算机的安全使能处理器的公钥对维持密钥加密,不将维持密钥传送到客户端系统;替代地,维持模块请求安全使能处理器对维持密钥解密。在又一替选实施例中,其中在迁移计算机上预先建立安全执行环境,迁移计算机上的预先建立的安全执行环境可以已具有客户端系统的私钥,从而消除了将加密的维持密钥传送到客户端系统的需要。在720处,迁移计算机上的安全执行环境接收未加密的维持密钥。
在722处,维持模块使用维持密钥对加密检查点解密,并且将检查点中的状态信息加载到新的安全执行环境的页面文件和寄存器中以恢复执行的状态,并且迁移处理完成。
用于重建安全执行环境的示例操作
图8是示出用于重建安全执行环境的示例处理的流程图。在802处,在安全执行环境中执行的加载器模块或维持模块经由入口门接收命令,以维持安全执行环境的当前状态从而在新的安全执行环境(比如在同一或不同的主机计算机上)中重建执行状态。
在804处,维持模块生成维持密钥。如以下更详细地描述的,维持密钥用于对安全执行环境的检查点加密。
在806处,维持模块对维持密钥加密。在实施例中,维持模块使用客户端系统比如客户端系统626的公钥对维持密钥加密。在替选实施例中,维持模块使用主机计算机的安全使能处理器的公钥对维持密钥加密。
在808处,维持模块将加密的维持密钥写入永久存储装置。替选地,维持模块比如通过到预先建立的安全执行环境的新创建的受保护存储器区域的安全通信信道,将维持密钥传送到客户端系统或者传送到主机计算机上的预先建立的安全执行环境。
在810处,维持模块关闭安全执行环境的执行并且将状态信息写入受保护存储器区域。状态信息可包括与安全执行环境相关联的虚拟存储器页面和寄存器上下文。在812处,维持模块使用维持密钥对状态信息加密以生成检查点。
在814处,将加密检查点存储在永久存储装置上,比如应用托管服务的硬盘驱动器或某种其它永久存储装置。替选地,比如通过到新创建的受保护存储器区域的通信信道将加密检查点直接加载到新建立的受保护存储器区域。
在816处,在主机计算机上初始化新的受保护存储器区域。在818处,主机计算机的主机操作系统将加载器模块和一个或更多个参数放置在要保护的存储器区域中。
在820处,在主机计算机的新创建的安全执行环境内执行的维持模块从永久存储装置读取密封的维持密钥。
在822处,新创建的安全执行环境中的维持模块对维持密钥解封。在使用主机计算机的安全使能处理器的公钥对维持密钥加密的实施例中,维持模块请求安全使能处理器对维持密钥解密。在安全执行环境预先建立在主机计算机上的其他实施例中,主机计算机的安全使能处理器的私钥用于对维持密钥解封。
在824处,维持模块从永久存储装置读取加密检查点。在826处,维持模块使用维持密钥对加密检查点解密,并且将检查点中的状态信息加载到新的安全执行环境的虚拟存储器和寄存器上下文中以恢复执行的状态,并且重建处理完成。
图4、5、7和8图示了示出根据各个实施例的示例处理的流程图。在各个块中示出了这些处理的操作并且参照这些块来进行描述。这些处理被示出为逻辑流程图,该逻辑流程图的每个操作可表示可以用硬件、软件或其组合实现的操作集合。在软件的上下文中,操作表示存储在一个或更多个计算机存储介质上的计算机可执行指令,该指令当由一个或更多个处理器执行时,使得该一个或更多个处理器能够执行所述操作。一般地,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、部件、数据结构等。描述操作的顺序不旨在被解释为限制性的,并且任意数量的所述操作可以以任意顺序组合,被分离成子操作和/或并行地执行以实现处理。根据本公开的各个实施例的处理可仅包括逻辑流程图中图示的一些或所有操作。
计算机可读介质
取决于所使用的计算装置的配置和类型,分别在图2和3中的计算系统200和300的存储器204和304可包括易失性存储器(比如随机存取存储器(RAM))和/或非易失性存储器(比如只读存储器(ROM)、闪存等)。存储器204和304还可包括附加的可拆卸存储装置和/或不可拆卸存储装置,包括但不限于可提供计算机可读指令、数据结构、程序模块和用于计算系统200和300的其它数据的非易失性存储的闪存、磁存储装置、光学存储装置和/或磁带存储装置。
存储器204和304是计算机可读介质的示例。计算机可读介质包括至少两种类型的计算机可读介质,即计算机存储介质和通信介质。
计算机存储介质包括以用于存储信息(比如计算机可读指令、数据结构、程序模块或其它数据)的任意处理或技术实现的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括但不限于相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存储存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、致密盘只读存储器(CD-ROM)、数字通用盘(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储装置、或者可以用于存储用于由计算装置访问的信息的任意其它非传输介质。
相反,通信介质可以以调制数据信号比如载波或其它传输机制实现计算机可读指令、数据结构、程序模块或其它数据。如这里所定义的,计算机存储介质不包括通信介质。
结论
尽管本公开使用特定于结构特征和/或方法动作的语言,但是本发明不限于所描述的具体特征或动作。相反,该具体特征和动作被公开作为实现本发明的说明形式。
附记
附记1.一种方法,包括:
在客户端系统请求时,由计算系统的安全使能处理器建立具有硬件受保护存储器区域的安全执行环境,所述硬件受保护存储器区域包括由客户端系统请求标识的软件,所述硬件受保护存储器区域不能由在所述硬件受保护存储器区域外部执行的代码访问;以及
在激活状态下将表示建立了所述安全执行环境的加密认证提供到所述客户端系统,以仅执行由所述客户端系统请求标识的软件。
附记2.根据附记1所述的方法,其中,所述加密认证还表示所述安全使能处理器是物理上安全的。
附记3.根据附记1所述的方法,其中,所述加密认证包括标识所述硬件受保护存储器区域的所述激活状态的标识符。
附记4.根据附记1所述的方法,其中,所述受保护存储器区域还包括在所述激活状态下由所述客户端系统标识的一个或更多个参数,并且其中,所述加密认证还表示所述激活状态不包括除所述客户端系统标识的所述一个或更多个参数之外的参数。
附记5.根据附记1所述的方法,其中,所述加密认证包括由审核实体的私钥签署的、表示所述安全使能处理器是物理上完好的审核证书。
附记6.根据附记1所述的方法,其中,所述加密认证包括共同地表示所述安全使能处理器是安全的一个或更多个信任证书,所述一个或更多个信任证书包括来自信任机构的信任证书。
附记7.根据附记1所述的方法,其中,所述加密认证包括来自所述安全使能处理器的制造者的处理器证书,所述处理器证书表示所述安全使能处理器是安全的。
附记8.包括多个编程指令的计算机可读介质,所述多个编程指令能够由一个或更多个处理器执行,以使得计算系统:
将请求传送到应用托管服务以建立硬件受保护的安全执行环境,所述请求标识在初始激活状态下要在所述安全执行环境的受保护存储器区域中执行的软件,所述受保护存储器区域不能由在所述受保护存储器区域外部执行的代码访问;
从所述应用托管服务接收表示建立了所述安全执行环境的加密认证,以在所述激活状态下仅执行所述请求标识的软件。
附记9.根据附记8所述的计算机可读介质,其中,所述加密认证还表示所述安全使能处理器是物理上安全的。
附记10.根据附记8所述的计算机可读介质,其中,所述多个编程指令还能够被执行以使得所述计算系统指示所述安全执行环境加载与所述请求标识的软件不同的一个或更多个应用部件,用于在所述安全执行环境内执行。
附记11.根据附记8所述的计算机可读介质,其中,所述加密认证包括标识所述硬件受保护存储器区域的所述激活状态的标识符。
附记12.根据附记8所述的计算机可读介质,其中,所述加密认证包括由审核实体的私钥签署的、表示所述安全使能处理器是物理上无损害的审核证书。
附记13.根据附记8所述的计算机可读介质,其中,所述加密认证包括共同地表示所述安全使能处理器是安全的一个或更多个信任证书,所述一个或更多个信任证书包括来自信任机构的信任证书。
附记14.根据附记8所述的计算机可读介质,其中,所述加密认证包括来自所述安全使能处理器的制造者的处理器证书,所述处理器证书表示所述安全使能处理器是安全的。
附记15.一种计算系统,包括:
存储器;
一个或更多个处理器,包括被配置成在所述存储器上建立受保护存储器区域的安全使能处理器;以及
设置模块,存储在所述存储器上并且能够由所述一个或更多个处理器执行,以:
从客户端系统接收请求以建立安全执行环境,所述请求包括要在所述安全执行环境中加载的加载器模块的指示;
至少部分地响应于所述请求,使得所述安全使能处理器利用包括所述加载器模块的激活状态实例化所述受保护存储器区域;
使得在所述安全执行环境中加载的所述加载器模块的实例执行由所述安全使能处理器的私钥签署的证明证书并且将所述证明证书传送到所述客户端系统,所述证明证书包括所述受保护存储器区域的所述激活状态的指示符。
附记16.根据附记15所述的计算系统,其中,所述安全使能处理器的所述私钥以能够由所述安全使能处理器访问但是不能由所述计算系统的其它部件访问的方式存储在所述安全使能处理器上。
附记17.根据附记15所述的计算系统,还包括所述加载器模块,其中,所述加载器模块能够由所述安全使能处理器执行,以接收利用与所述安全使能处理器的私钥对应的所述安全使能处理器的公钥加密的加密密钥,并且使用所述加密密钥获得要在所述安全执行环境中执行的一个或更多个应用部件。
附记18.根据附记15所述的计算系统,其中,所述指示符包括在所述激活状态下的所述受保护存储器区域的内容的摘要和与用于签署所述激活状态下的所述受保护存储器区域的内容的私钥匹配的公钥中的一个或更多个。
附记19.根据附记15所述的计算系统,其中,所述请求包括表示要加载到所述安全执行环境中的一个或更多个应用部件的参数,并且其中,所述激活状态包括所述参数和所述应用中的一个或更多个。
附记20.根据附记15所述的计算系统,其中,所述设置模块还被配置成将由审核实体的私钥签署的、表示所述安全使能处理器尚未被篡改的审核证书传送到所述客户端系统。

Claims (10)

1.一种方法,包括:
在客户端系统(112)请求时,由计算系统(102,200)的安全使能处理器(106)建立(408)具有硬件受保护存储器区域(120)的安全执行环境,所述硬件受保护存储器区域包括由客户端系统请求标识的软件,所述硬件受保护存储器区域不能由在所述硬件受保护存储器区域外部执行的代码访问;以及
在激活状态下将表示建立了所述安全执行环境的加密认证提供(420)到所述客户端系统,以仅执行由所述客户端系统请求标识的软件。
2.根据权利要求1所述的方法,其中,所述加密认证还表示所述安全使能处理器是物理上安全的。
3.根据权利要求1所述的方法,其中,所述加密认证包括标识所述硬件受保护存储器区域的所述激活状态的标识符(122)。
4.根据权利要求1所述的方法,其中,所述受保护存储器区域还包括在所述激活状态下由所述客户端系统标识的一个或更多个参数(118),并且其中,所述加密认证还表示所述激活状态不包括除所述客户端系统标识的所述一个或更多个参数之外的参数。
5.一种包括多个编程指令的计算机可读介质(304),所述多个编程指令能够由一个或更多个处理器(302)执行,以使得计算系统:
将请求传送(502)到应用托管服务(102)以建立硬件受保护的安全执行环境,所述请求标识在初始激活状态下要在所述安全执行环境的受保护存储器区域(120)中执行的软件,所述受保护存储器区域不能由在所述受保护存储器区域外部执行的代码访问;
从所述应用托管服务接收(506)表示建立了所述安全执行环境的加密认证,以在所述激活状态下仅执行所述请求标识的软件。
6.根据权利要求5所述的计算机可读介质,其中,所述加密认证包括标识所述硬件受保护存储器区域的所述激活状态的标识符(122)。
7.根据权利要求5所述的计算机可读介质,其中,所述加密认证包括由审核实体的私钥签署的、表示所述安全使能处理器是物理上无损害的审核证书(140)。
8.根据权利要求5所述的计算机可读介质,其中,所述加密认证包括共同地表示所述安全使能处理器是安全的一个或更多个信任证书,所述一个或更多个信任证书包括来自信任机构(136)的信任证书(132)。
9.一种计算系统,包括:
存储器(104);
一个或更多个处理器(202),包括被配置成在所述存储器上建立受保护存储器区域(120)的安全使能处理器(106);以及
设置模块(110),存储在所述存储器上并且能够由所述一个或更多个处理器执行,以:
从客户端系统(112)接收(402)请求以建立安全执行环境,所述请求包括要在所述安全执行环境中加载的加载器模块(116)的指示;
至少部分地响应于所述请求,使得(406)所述安全使能处理器利用包括所述加载器模块的激活状态实例化所述受保护存储器区域;
使得(422)在所述安全执行环境中加载的所述加载器模块的实例执行由所述安全使能处理器的私钥(126)签署的证明证书(124)并且将所述证明证书传送到所述客户端系统,所述证明证书包括所述受保护存储器区域的所述激活状态的指示符(122)。
10.根据权利要求9所述的计算系统,其中,所述指示符包括在所述激活状态下的所述受保护存储器区域的内容的摘要和与用于签署所述激活状态下的所述受保护存储器区域的内容的私钥(126)匹配的公钥中的一个或更多个。
CN201210533610.9A 2011-12-12 2012-12-11 安全托管执行环境的加密认证 Active CN103051451B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/323,465 US9413538B2 (en) 2011-12-12 2011-12-12 Cryptographic certification of secure hosted execution environments
US13/323,465 2011-12-12

Publications (2)

Publication Number Publication Date
CN103051451A true CN103051451A (zh) 2013-04-17
CN103051451B CN103051451B (zh) 2017-06-09

Family

ID=48063959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210533610.9A Active CN103051451B (zh) 2011-12-12 2012-12-11 安全托管执行环境的加密认证

Country Status (5)

Country Link
US (2) US9413538B2 (zh)
EP (1) EP2791817B1 (zh)
CN (1) CN103051451B (zh)
ES (1) ES2692900T3 (zh)
WO (1) WO2013090045A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105574414A (zh) * 2014-11-05 2016-05-11 欧贝特科技公司 将文件加载到电子装置中的随机存取存储器中的方法和相关联电子装置
CN108600222A (zh) * 2018-04-24 2018-09-28 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、系统以及终端
CN110249336A (zh) * 2017-01-26 2019-09-17 微软技术许可有限责任公司 使用签名密钥对可信执行环境的寻址
CN110249332A (zh) * 2017-01-26 2019-09-17 微软技术许可有限责任公司 使用加密密钥寻址可信执行环境
CN111917797A (zh) * 2014-04-29 2020-11-10 推特公司 应用间委托的认证
CN112262545A (zh) * 2019-01-04 2021-01-22 百度时代网络技术(北京)有限公司 主机系统与数据处理加速器之间的证明协议

Families Citing this family (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8881270B2 (en) * 2002-12-20 2014-11-04 Creative Mines Llc Method and apparatus for selectively enabling a microprocessor-based system
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
US11620719B2 (en) 2011-09-12 2023-04-04 Microsoft Technology Licensing, Llc Identifying unseen content of interest
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9609456B2 (en) 2012-05-14 2017-03-28 Qualcomm Incorporated Methods, devices, and systems for communicating behavioral analysis information
US9690635B2 (en) 2012-05-14 2017-06-27 Qualcomm Incorporated Communicating behavior information in a mobile computing device
US9298494B2 (en) 2012-05-14 2016-03-29 Qualcomm Incorporated Collaborative learning for efficient behavioral analysis in networked mobile device
US9324034B2 (en) 2012-05-14 2016-04-26 Qualcomm Incorporated On-device real-time behavior analyzer
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
WO2013182376A1 (en) * 2012-06-06 2013-12-12 Nec Europe Ltd. Method and system for executing a secure application on an untrusted user equipment
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US9330257B2 (en) 2012-08-15 2016-05-03 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US9319897B2 (en) 2012-08-15 2016-04-19 Qualcomm Incorporated Secure behavior analysis over trusted execution environment
US9495537B2 (en) 2012-08-15 2016-11-15 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
KR101907486B1 (ko) * 2012-09-14 2018-10-12 한국전자통신연구원 보안성이 우수한 실행환경을 제공하는 이동 컴퓨팅 시스템
US20140229942A1 (en) * 2012-09-21 2014-08-14 Willard Monty Wiseman Isolated guest creation in a virtualized computing system
US10068083B2 (en) * 2012-09-28 2018-09-04 International Business Machines Corporation Secure transport of web form submissions
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
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9684870B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of using boosted decision stumps and joint feature selection and culling algorithms for the efficient classification of mobile device behaviors
US9686023B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors
US9729517B2 (en) * 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9742559B2 (en) * 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
US9503268B2 (en) 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US9491187B2 (en) 2013-02-15 2016-11-08 Qualcomm Incorporated APIs for obtaining device-specific behavior classifier models from the cloud
US8959576B2 (en) * 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
US9245129B2 (en) * 2013-03-15 2016-01-26 Nvidia Corporation System and method for protecting data by returning a protect signal with the data
WO2015026336A1 (en) * 2013-08-21 2015-02-26 Intel Corporation Processing data privately in the cloud
US9563569B2 (en) 2014-01-28 2017-02-07 Red Hat Israel, Ltd. Memory transformation in virtual machine live migration
US9785378B2 (en) 2014-01-28 2017-10-10 Red Hat Israel, Ltd. Tracking transformed memory pages in virtual machine chain migration
US10389709B2 (en) 2014-02-24 2019-08-20 Amazon Technologies, Inc. Securing client-specified credentials at cryptographically attested resources
TWI633458B (zh) * 2014-02-25 2018-08-21 美商凱為公司 用於對受保護的硬體資源的軟體啟用接入的半導體和電腦
US9680872B1 (en) * 2014-03-25 2017-06-13 Amazon Technologies, Inc. Trusted-code generated requests
WO2015168654A1 (en) * 2014-05-01 2015-11-05 Intertrust Technologies Corporation Secure computing systems and methods
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
US9246690B1 (en) 2014-09-03 2016-01-26 Amazon Technologies, Inc. Secure execution environment services
US9442752B1 (en) 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US9491111B1 (en) 2014-09-03 2016-11-08 Amazon Technologies, Inc. Securing service control on third party hardware
US9577829B1 (en) 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
US9584517B1 (en) 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
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
US9754116B1 (en) 2014-09-03 2017-09-05 Amazon Technologies, Inc. Web services in secure execution environments
US9886577B2 (en) * 2014-09-26 2018-02-06 Mcafee, Llc Detection and mitigation of malicious invocation of sensitive code
US9363087B2 (en) * 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
US9684608B2 (en) * 2014-10-28 2017-06-20 Intel Corporation Maintaining a secure processing environment across power cycles
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
US10303879B1 (en) 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
US9940456B2 (en) * 2014-12-16 2018-04-10 Intel Corporation Using trusted execution environments for security of code and data
US9525672B2 (en) * 2014-12-19 2016-12-20 Amazon Technologies, Inc. Multi-faceted compute instance identity
EP3040896A1 (en) * 2014-12-30 2016-07-06 Gemalto Sa Secure element
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
US11102313B2 (en) 2015-08-10 2021-08-24 Oracle International Corporation Transactional autosave with local and remote lifecycles
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US9959100B2 (en) 2015-08-12 2018-05-01 Oracle International Corporation Efficient storage and transfer of iOS binary files
US10013668B2 (en) * 2015-08-14 2018-07-03 Oracle International Corporation Secure storage of enterprise certificates for cloud services
US10452497B2 (en) 2015-08-14 2019-10-22 Oracle International Corporation Restoration of UI state in transactional systems
US10419514B2 (en) 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US9749141B2 (en) 2015-09-25 2017-08-29 Qualcomm Incorporated Secure boot devices, systems, and methods
US10582012B2 (en) 2015-10-16 2020-03-03 Oracle International Corporation Adaptive data transfer optimization
US20170177863A1 (en) * 2015-12-16 2017-06-22 Wind River Systems, Inc. Device, System, and Method for Detecting Malicious Software in Unallocated Memory
CN106899542B (zh) * 2015-12-17 2021-04-20 中兴通讯股份有限公司 安全接入方法、装置及系统
EP3408784A1 (en) * 2016-01-29 2018-12-05 British Telecommunications public limited company Secure data storage
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10721237B2 (en) 2016-08-05 2020-07-21 Oracle International Corporation Hierarchical processing for a virtual directory system for LDAP to SCIM proxy service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
WO2018053258A1 (en) 2016-09-16 2018-03-22 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US20180096412A1 (en) * 2016-09-30 2018-04-05 Mark E. Scott-Nash Digital brokerage service for iot micro compute services
CN109804378A (zh) 2016-10-21 2019-05-24 惠普发展公司 ,有限责任合伙企业 Bios安全
US10482034B2 (en) * 2016-11-29 2019-11-19 Microsoft Technology Licensing, Llc Remote attestation model for secure memory applications
US11165565B2 (en) * 2016-12-09 2021-11-02 Microsoft Technology Licensing, Llc Secure distribution private keys for use by untrusted code
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10783235B1 (en) * 2017-05-04 2020-09-22 Amazon Technologies, Inc. Secure remote access of computing resources
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
GB2565282B (en) * 2017-08-02 2021-12-22 Vnc Automotive Ltd Remote control of a computing device
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US11308132B2 (en) 2017-09-27 2022-04-19 Oracle International Corporation Reference attributes for related stored objects in a multi-tenant cloud service
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
WO2019084908A1 (en) * 2017-11-03 2019-05-09 Nokia Technologies Oy Method and apparatus for trusted computing
US11943368B2 (en) * 2017-11-03 2024-03-26 Microsoft Technology Licensing, Llc Provisioning trusted execution environment based on chain of trust including platform
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
KR20210041540A (ko) * 2018-05-28 2021-04-15 로얄 뱅크 오브 캐나다 보안 전자 트랜잭션 플랫폼을 위한 시스템 및 방법
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US11443072B2 (en) 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
US11126757B2 (en) * 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
GB2578628B (en) * 2018-11-01 2021-09-15 Trustonic Ltd Device attestation techniques
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
US11251942B2 (en) 2019-01-09 2022-02-15 Alibaba Group Holding Limited Secure communication channel between encryption/decryption component and trusted execution environment
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11625505B2 (en) * 2019-08-19 2023-04-11 Microsoft Technology Licensing, Llc Processor with network stack domain and system domain using separate memory regions
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11470118B2 (en) 2019-11-01 2022-10-11 Microsoft Technology Licensing, Llc Processor with network processing stack having separate binary
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
US11388146B2 (en) * 2020-01-10 2022-07-12 Bitglass, Llc Secure low-latency trapdoor proxy
US11374981B2 (en) * 2020-01-17 2022-06-28 Cisco Technology, Inc. Software usage description (SUD) for installable applications
US11888972B2 (en) 2020-02-26 2024-01-30 Red Hat, Inc. Split security for trusted execution environments
US11630683B2 (en) 2020-02-26 2023-04-18 Red Hat, Inc. Low latency launch for trusted execution environments
US11461021B2 (en) 2020-03-09 2022-10-04 SK Hynix Inc. Computing system and operating method thereof
US11455102B2 (en) * 2020-03-09 2022-09-27 SK Hynix Inc. Computing system and operating method thereof
US11620411B2 (en) 2020-03-24 2023-04-04 Red Hat, Inc. Elastic launch for trusted execution environments
US11423160B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for analysis and authorization for use of executable environment data in a computing system using hash outputs
US11263109B2 (en) 2020-04-16 2022-03-01 Bank Of America Corporation Virtual environment system for validating executable data using accelerated time-based process execution
US11425123B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for network isolation of affected computing systems using environment hash outputs
US11528276B2 (en) 2020-04-16 2022-12-13 Bank Of America Corporation System for prevention of unauthorized access using authorized environment hash outputs
US11481484B2 (en) 2020-04-16 2022-10-25 Bank Of America Corporation Virtual environment system for secure execution of program code using cryptographic hashes
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
US11783042B2 (en) * 2020-06-17 2023-10-10 Qualcomm Incorporated Access control system and method for isolating mutually distrusting security domains
US11611431B2 (en) * 2020-07-01 2023-03-21 Red Hat, Inc. Network bound encryption for recovery of trusted execution environments
US11372982B2 (en) 2020-07-02 2022-06-28 Bank Of America Corporation Centralized network environment for processing validated executable data based on authorized hash outputs
EP4182820A1 (en) * 2020-07-14 2023-05-24 Gapfruit AG Computing device for establishing a trusted execution environment
US11741221B2 (en) 2020-07-29 2023-08-29 Red Hat, Inc. Using a trusted execution environment to enable network booting
US20230239163A1 (en) * 2022-01-26 2023-07-27 Microsoft Technology Licensing, Llc Establishing pki chain of trust in air gapped cloud
US20230418477A1 (en) * 2022-06-27 2023-12-28 Western Digital Technologies, Inc. Security indicator on a data storage device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060156418A1 (en) * 2005-01-10 2006-07-13 Ibm Corporation Method and apparatus for preventing unauthorized access to data
CN1906560A (zh) * 2003-11-19 2007-01-31 英特尔公司 用于在开放平台上实现用户身份模块(sim)能力的方法和装置
CN101448255A (zh) * 2007-11-27 2009-06-03 飞力凯网路股份有限公司 服务提供系统、服务提供服务器以及信息终端设备
US20110302415A1 (en) * 2010-06-02 2011-12-08 Vmware, Inc. Securing customer virtual machines in a multi-tenant cloud

Family Cites Families (200)

* 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
AU2331099A (en) 1998-01-22 1999-08-09 Intelogis, Inc. Method and apparatus for universal data exchange gateway
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
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
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
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
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
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
US6876996B2 (en) 2001-11-14 2005-04-05 Sun Microsystems, Inc. Method and apparatus for using a shared library mechanism to facilitate sharing of metadata
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
US8255548B2 (en) 2002-06-13 2012-08-28 Salesforce.Com, Inc. Offline web services API to mirror online web services API
US9171049B2 (en) 2002-06-13 2015-10-27 Salesforce.Com, Inc. Offline simulation of online session between client and server
US7421579B2 (en) 2002-06-28 2008-09-02 Microsoft Corporation Multiplexing a secure counter to implement second level secure counters
US7065607B2 (en) 2002-06-28 2006-06-20 Microsoft Corporation System and method for implementing a counter
US20040015537A1 (en) 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
US7694139B2 (en) * 2002-10-24 2010-04-06 Symantec Corporation Securing executable content using a trusted computing platform
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
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
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
US8332652B2 (en) * 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
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
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
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
EP1771998B1 (en) 2004-07-23 2015-04-15 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
EP1811387A4 (en) 2004-08-25 2016-04-13 Nec Corp INFORMATION COMMUNICATION DEVICE AND PROGRAMMING ENVIRONMENTAL CONTROL METHOD
US20060179430A1 (en) 2004-11-18 2006-08-10 Besbris David G Service grouping
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
US20060161982A1 (en) 2005-01-18 2006-07-20 Chari Suresh N Intrusion detection system
US9525666B2 (en) 2005-01-31 2016-12-20 Unisys Corporation Methods and systems for managing concurrent unsecured and cryptographically 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
US7685593B2 (en) 2005-05-12 2010-03-23 Microsoft Corporation Systems and methods for supporting multiple gaming console emulation environments
US7496495B2 (en) 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
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
US7447896B2 (en) 2005-12-12 2008-11-04 Microsoft Corporation OS mini-boot for running multiple environments
US8539481B2 (en) 2005-12-12 2013-09-17 Microsoft Corporation Using virtual hierarchies to build alternative namespaces
US20070174910A1 (en) 2005-12-13 2007-07-26 Zachman Frederick J Computer memory security platform
CN101346727A (zh) 2005-12-27 2009-01-14 日本电气株式会社 程序运行控制方法、其设备以及运行控制程序
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
US20080127348A1 (en) 2006-08-31 2008-05-29 Kenneth Largman Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy ware
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
US8064598B2 (en) * 2007-02-26 2011-11-22 Nokia Corporation Apparatus, method and computer program product providing enforcement of operator lock
US8452853B2 (en) 2007-03-05 2013-05-28 International Business Machines Corporation Browser with offline web-application architecture
US20100064234A1 (en) 2007-03-09 2010-03-11 Ghost, Inc. System and Method for Browser within a Web Site and Proxy Server
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
JP5079084B2 (ja) 2007-05-09 2012-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システムの操作を防止するための方法及びデータ処理システム
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
CN100498816C (zh) 2007-11-19 2009-06-10 南京大学 一种高安全等级操作系统的参照监视器实现方法
US8505029B1 (en) 2007-11-26 2013-08-06 Adobe Systems Incorporated Virtual machine communication
US20090164994A1 (en) 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
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
US8671404B2 (en) 2008-02-12 2014-03-11 Red Hat, Inc. Distributing and managing virtual machines
US20090210871A1 (en) 2008-02-20 2009-08-20 Zak Dechovich System and method for software application migration
US8538811B2 (en) 2008-03-03 2013-09-17 Yahoo! Inc. Method and apparatus for social network marketing with advocate referral
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
US8364983B2 (en) 2008-05-08 2013-01-29 Microsoft Corporation Corralling virtual machines with encryption keys
US8424082B2 (en) 2008-05-08 2013-04-16 Google Inc. Safely executing an untrusted native code module on a computing device
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US20110191494A1 (en) 2008-05-27 2011-08-04 Turanyi Zoltan Richard System and method for backwards compatible multi-access with proxy mobile internet protocol
US8276145B2 (en) 2008-06-27 2012-09-25 Microsoft Corporation Protected mode scheduling of operations
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
CN101655798B (zh) 2008-08-18 2013-03-27 联想(北京)有限公司 一种虚拟机环境中应用程序部署和运行的装置及方法
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
US9185208B2 (en) 2008-12-23 2015-11-10 At&T Mobility Ii Llc Calendar-callback voicemail
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
US8954752B2 (en) * 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
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
US20110257992A1 (en) 2010-02-19 2011-10-20 Covermymeds, Llc Apparatus and method for processing prior authorizations for prescription drugs
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
EP2980695B1 (en) 2010-05-09 2017-04-12 Citrix Systems, Inc. Methods and systems for forcing an application to store data in a secure storage location
EP2569705A4 (en) 2010-05-09 2014-05-14 Citrix Systems Inc SYSTEMS AND METHOD FOR CREATING AND DISTRIBUTING ENCRYPTED VIRTUAL PLATES
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
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
JP2012008756A (ja) * 2010-06-24 2012-01-12 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
CN102314450B (zh) 2010-06-30 2014-11-26 国际商业机器公司 用于增强网页浏览的方法和设备
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
US9058577B2 (en) 2010-08-09 2015-06-16 Epmod, Inc. Network centric structured communications network
US9436502B2 (en) 2010-12-10 2016-09-06 Microsoft Technology Licensing, Llc Eventually consistent storage and transactions in cloud based environment
US8903705B2 (en) 2010-12-17 2014-12-02 Microsoft Corporation Application compatibility shims for minimal client computers
US8972746B2 (en) 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
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
US8875240B2 (en) 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
US8745434B2 (en) 2011-05-16 2014-06-03 Microsoft Corporation Platform for continuous mobile-cloud services
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
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
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
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
CN1906560A (zh) * 2003-11-19 2007-01-31 英特尔公司 用于在开放平台上实现用户身份模块(sim)能力的方法和装置
US20060156418A1 (en) * 2005-01-10 2006-07-13 Ibm Corporation Method and apparatus for preventing unauthorized access to data
CN101448255A (zh) * 2007-11-27 2009-06-03 飞力凯网路股份有限公司 服务提供系统、服务提供服务器以及信息终端设备
US20110302415A1 (en) * 2010-06-02 2011-12-08 Vmware, Inc. Securing customer virtual machines in a multi-tenant cloud

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111917797A (zh) * 2014-04-29 2020-11-10 推特公司 应用间委托的认证
CN111917797B (zh) * 2014-04-29 2022-11-25 推特公司 应用间委托的认证
US11539698B2 (en) 2014-04-29 2022-12-27 Twitter, Inc. Inter-application delegated authentication
CN105574414A (zh) * 2014-11-05 2016-05-11 欧贝特科技公司 将文件加载到电子装置中的随机存取存储器中的方法和相关联电子装置
CN110249336A (zh) * 2017-01-26 2019-09-17 微软技术许可有限责任公司 使用签名密钥对可信执行环境的寻址
CN110249332A (zh) * 2017-01-26 2019-09-17 微软技术许可有限责任公司 使用加密密钥寻址可信执行环境
CN110249332B (zh) * 2017-01-26 2023-05-23 微软技术许可有限责任公司 使用加密密钥寻址可信执行环境
CN108600222A (zh) * 2018-04-24 2018-09-28 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、系统以及终端
CN108600222B (zh) * 2018-04-24 2021-01-29 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、系统以及终端
CN112262545A (zh) * 2019-01-04 2021-01-22 百度时代网络技术(北京)有限公司 主机系统与数据处理加速器之间的证明协议
CN112262545B (zh) * 2019-01-04 2023-09-15 百度时代网络技术(北京)有限公司 主机系统与数据处理加速器之间的证明协议

Also Published As

Publication number Publication date
CN103051451B (zh) 2017-06-09
US9413538B2 (en) 2016-08-09
US9425965B2 (en) 2016-08-23
US20130151846A1 (en) 2013-06-13
EP2791817A4 (en) 2014-10-22
ES2692900T3 (es) 2018-12-05
EP2791817B1 (en) 2018-07-25
EP2791817A1 (en) 2014-10-22
US20130151848A1 (en) 2013-06-13
WO2013090045A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
CN103051451A (zh) 安全托管执行环境的加密认证
US10491379B2 (en) System, device, and method of secure entry and handling of passwords
KR101544722B1 (ko) 부인 방지 방법, 이를 위한 결제 관리 서버 및 사용자 단말기
JP4067985B2 (ja) アプリケーション認証システムと装置
CN101512536B (zh) 认证游戏装置的系统和方法
US8132722B2 (en) System and method for binding a smartcard and a smartcard reader
ES2599985T3 (es) Validación en cualquier momento para los tokens de verificación
CN103390124B (zh) 安全输入和处理口令的设备、系统和方法
US11763301B2 (en) Systems, methods and apparatuses for securely storing and providing payment information
US20150310427A1 (en) Method, apparatus, and system for generating transaction-signing one-time password
US20100250949A1 (en) Generation, requesting, and/or reception, at least in part, of token
US7194759B1 (en) Used trusted co-servers to enhance security of web interaction
US20130173923A1 (en) Method and system for digital content security cooperation
US20150047001A1 (en) Application program execution device
CN117063174A (zh) 用于通过基于app的身份的app间相互信任的安全模块及方法
CN114912131B (zh) 数据加密方法、系统以及电子设备
JP2002217895A (ja) データ・アプリケーション格納方法及び、コマンド実行方法及びシステム及びデータ・アプリケーション格納プログラム及びデータ・アプリケーション格納プログラムを格納した記憶媒体及びコマンド実行プログラム及びコマンド実行プログラムを格納した記憶媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150610

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

Effective date of registration: 20150610

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant