CN105027096A - 保护特权计算操作的结果 - Google Patents

保护特权计算操作的结果 Download PDF

Info

Publication number
CN105027096A
CN105027096A CN201480007923.8A CN201480007923A CN105027096A CN 105027096 A CN105027096 A CN 105027096A CN 201480007923 A CN201480007923 A CN 201480007923A CN 105027096 A CN105027096 A CN 105027096A
Authority
CN
China
Prior art keywords
request
computing device
public
host computing
key
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
CN201480007923.8A
Other languages
English (en)
Other versions
CN105027096B (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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105027096A publication Critical patent/CN105027096A/zh
Application granted granted Critical
Publication of CN105027096B publication Critical patent/CN105027096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

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

Abstract

描述了一组形式化接口(例如,应用程序编程接口(API)),其使用安全方案,诸如非对称(或对称)加密法,以便保护在诸如操作系统(OS)内核和/或管理程序的系统上的特权操作的结果。所述接口允许公开密钥被包括到请求中,以在管理程序和/或内核上执行特权操作。所述内核和/或管理程序使用所述请求中所包括的所述密钥来加密所述特权操作的所述结果。在一些实施方案中,所述请求本身也可被加密,使得任何中间方无法读取所述请求的所述参数和其它信息。

Description

保护特权计算操作的结果
背景技术
随着越来越多的应用和服务可经由网络(诸如因特网)获得,越来越多的内容、应用和/或服务提供商转向诸如云计算的技术。一般来说,云计算是一种通过服务(诸如网络服务)提供对电子资源的访问的方法,其中用于支持那些服务的硬件和/或软件可在任何给定时间动态地缩放以满足对服务的需求。用户或顾客通常将租借、租用或以其它方式偿付通过云对资源的访问,且因此不必购买并维护所需的硬件和/或软件。
许多云计算提供商利用虚拟化以允许多个用户共享底层硬件和/或软件资源。虚拟化可允许计算服务、存储装置或其它资源被划分为各自由特定用户拥有的多个隔离实例(例如,虚拟机)。通常使用运行在主计算装置上的管理程序托管这些虚拟机。在该上下文中,管理程序和客户端操作系统内核充当安全增强机构。例如,管理程序通常控制主机上的各种虚拟机,以及内核控制虚拟机上的各个过程。出于安全原因,管理程序和内核难以修改或更改。然而,由于某些原因,偶尔在运行时可期望修改管理程序或内核的代码,诸如以应用软件补丁、执行安全监控等。
附图说明
将参考附图描述根据本公开的各种实施方案,其中:
图1示出根据各种实施方案的保护管理程序或内核上的特权操作的结果的实例;
图2示出根据各种实施方案的使用非对称加密法来加密被提交到内核或管理程序的请求的实例;
图3示出根据各种实施方案的利用证书机构的实例;
图4示出根据各种实施方案的服务提供商的资源中心环境的实例;
图5示出根据各种实施方案的用于保护在管理程序或内核中执行特权操作的请求的结果的实例过程;
图6示出根据各种实施方案的用于提供可被用来在管理程序或内核中执行特权操作的API的实例过程;
图7示出根据各种实施方案的用于利用请求的加密的实例过程;
图8示出根据各种实施方案的可被利用的实例计算装置的一组通用组件的逻辑布置;以及
图9示出根据各种实施方案的用于实施各方面的环境的实例。
具体实施方式
在以下描述中,各种实施方案将是通过实例的方式说明,而不限于附图中的图形。在本公开中对各种实施方案的引用不一定是相同的实施方案,而这样的引用意味着至少一个。虽然讨论了特定实施方式及其它细节,但是将理解,这样做只是为了说明的目的。相关领域的技术人员将认识到,在不偏离所要求的主题的范围和精神的情况下,可使用其它组件和配置。
根据本公开的各种实施方案的系统和方法可克服用于保护数据(诸如通过在特权系统(例如,操作系统内核、管理程序等)中执行操作而获取的结果)的传统方法中所经历的前述或其它缺点中的一个或多个。具体而言,各种实施方案利用安全方案,诸如非对称(或对称)加密法,以通过将密钥(例如,公开密钥)包括到在管理程序和/或内核上执行特权操作的请求中来保护数据。内核和/或管理程序可使用请求中所包括的密钥来加密特权操作的结果。在一些实施方案中,请求本身也可被加密或签署,使得任何中间方无法读取请求的参数和其它信息,除非这些中间方被授权来查看请求和/或具有被用来解密请求或以其它方式篡改请求的密钥副本或其它机构。根据实施方案,通过使用一组形式化接口(例如,应用程序编程接口(API))将请求提交到内核/管理程序,所述接口使得代码能够被安全地添加到操作系统(OS)内核和/或管理程序和/或在其上进行修改。在运行时可调用这些接口以执行安全监控、取证抓拍(forensic capture)和/或修补软件系统。在各种实施方案中,使用作为参数包括在API请求中的公开密钥加密API请求的结果。
在各种实施方案中,当在主计算装置的管理程序和/或OS内核中执行特权操作时,此处描述的安全方案可用于多租户共享资源环境(例如,云计算环境)。通常,在这种类型的环境中,主计算装置利用虚拟化技术提供与服务提供商(例如,云计算提供商)的不同顾客相关联的一个或多个虚拟机实例。使用管理程序(或其它虚拟化技术)将这些虚拟机实例托管在计算装置上,并且每个虚拟机实例可包含客户端操作系统,包括内核、装置驱动器和其它OS组件。用于托管虚拟机的主计算装置和其它物理资源通常由服务提供商提供,并驻留在资源中心,诸如数据中心、服务器机群、内容传递网络(CDN)、存在点(POP)等。
在这种多租户共享资源环境中,在各种主机机器和在其上操作的虚拟机实例之间执行自省和/或其它数据采集通常是有用的。例如,可能存在导致管理程序或内核进入异常状态的软件漏洞或其它异常。在一些情况下,该异常状态可能是潜在故障,其中如果不进行任何操作来解决这种情况,那么主机装置或虚拟机实例将最终发生故障。检测或解决这些错误中的一些可能需要检查主机装置的运行管理程序和/或内核的存储器。然而,这些组件(例如,管理程序/内核)通常包含非常敏感的信息,对资源的所有者而言对这些信息保密是重要的。
在各种实施方案中,为了保护对这种敏感信息的访问,此处描述的应用程序编程接口(API)可用来提交请求,以在虚拟机的管理程序和/或内核上执行特权操作(例如,检索敏感数据,执行更新等)。为了防止未授权方(例如,数据技术员等)获得对请求的访问,可签署和/或加密该请求。此外,请求可包括(例如,作为参数)可被管理程序/内核用来加密请求的任何结果的公开密钥。因此,具有与公开密钥对应的私有密钥的一方可解密请求的结果。因此,可处理或解译请求的任何中间方(例如,数据技术员)将无法读取请求或破译请求的结果。如果请求被签署以及请求程序的公开密钥是请求的参数且被涵盖在签名中,那么公开密钥无法被作为中间方处理请求的任何人移除或取代。
在一些实施方案中,具有能够解密请求的私有密钥的一方是最初指示中间方执行请求并收集结果的一方。例如,管理员可指示技术员调用请求并收集结果,其中管理员拥有能够解密结果的私有密钥(即,技术员将无法读取结果)。在替代的实施方案中,具有私有密钥的一方是与授权中间方收集结果的一方不同的另一方。例如,服务提供商的管理员可授权技术员发出请求并收集结果。另一方(例如,调查员)可能拥有被用来解密结果的私有密钥。技术员可发出请求,但是技术员将无法读取请求,因为技术员不拥有用于解密结果的私有密钥。类似地,在本实例中,管理员将不被授权来执行请求,或读取所述请求的结果。在各种实施方案的范围内,这种密钥所有权的各种其它实例是可能的。
在一些实施方案中,该安全方案可能被用来收集有关在服务提供商的网络中运行的各种虚拟机实例的敏感数据。在一个实施方案中,中央受信服务可针对资源中心中的所有主机装置生成请求,并且中央服务可将其公开密钥包括在这些请求中。不受信组件(例如,中间方)随后可将这些请求分配到主机装置,并且在本地发出请求。在一些实施方案中,相同的不受信组件可收集结果,并且接收所述结果以传递到中央服务。然后,一旦结果到达中央服务,则可以解密所述结果。
在一个实施方案中,服务提供商可利用安全方案执行推测性数据收集,诸如以检测欺诈或滥用案例,而不违背顾客信任。例如,反欺诈调查员可将特定主机标记为可疑的,并且启动对机器的监控。当监控开始时,请求可使得管理程序开始收集详细的内核或管理程序信息(即,结果)。随后可使用请求中所包括的公开密钥来加密结果。然后,拥有私有密钥的认证方可解密所述采集数据,并执行分析以确定欺诈、滥用服务等。
在另一实施方案中,安全方案可被利用来实施连续的健康检查服务。例如,当特定主机展现性能异常时,健康服务可提交请求以捕获可包括敏感顾客数据的内核/管理程序存储器的快照,并加密操作的结果。因为请求的结果被加密,所以将不太可能对信息进行不当访问。在一些实施方案中,健康服务还可执行随机抽样和/或配置主机或虚拟机实例。例如,服务可获取性能数据的基线,并随后至少部分基于该基线而检测异常。在各种实施方案中,配置文件可基于顾客或基于机器,可包括绝对阈值,或可以是随机的(例如,定期为快照随机选择若干主机)。
在各种实施方案中,将解密密钥(例如,私有密钥)存储在安全位置中。例如,密钥可由服务提供商的安全团队维持。同样地,收集数据的人和可读取收集结果的人是不同方,并且甚至可能无法访问私有密钥。在一个实施方案中,加密数据的密钥(例如,公开密钥)是请求的一部分。在替代的实施方案中,可存在所有主机信任的单个密钥,并且可将该密钥编译到内核。在另一实施方案中,可存在受信的证书机构(CA),其中每个主机从受信CA提取证书。
在一些实施方案中,顾客可指定密钥,并指示服务提供商使用密钥来向顾客提供顾客的VM实例的存储器的加密图像转储。可使用API(诸如网络服务API)将检索存储器转储的请求提交到主计算装置(例如,主计算装置的内核或管理程序)。在一个实施方案中,API请求可包括顾客指定的密钥。在主计算装置的内核或管理程序将存储器转储传送出主计算装置之前,使用顾客指定的密钥加密存储器转储。
图1示出根据各种实施方案的保护在管理程序或内核上的特权操作的结果的实例100。在所图示的实施方案中,可使用一组应用程序编程接口(API)108提交请求107,以在主计算装置101的内核106或管理程序102上执行特权操作。在本实施方案中,主计算装置101包括被图示为管理程序102与特权域(DOM-0)105的组合的虚拟化层。Dom0 105和管理程序102可继而影响多个客户端,诸如客户端115。客户端可以是虚拟机实例,各自具有其相应的操作系统(OS)、内核、装置驱动器、调度器等。Dom-0 105被用来启动并管理主计算装置101上的其它客户端域。虽然虚拟化层在该图中作为单独组件被示出,但是虚拟化层的其它实施方式是可能的,并在本公开的范围内。例如,Dom0的功能、功能子集以及被管理程序102影响的那些功能可被整合到单个组件中。
根据实施方案,请求107可由数据技术员、监控服务、应用程序、顾客或其它组件发起,以便执行任何特权操作,诸如读取管理程序/内核的存储器位置、修改管理程序/内核的代码段等。请求可被签署和/或加密,如下文将参考图2和图3所描述。
根据实施方案,请求107包括(例如,作为参数)公开密钥104,其可被用来对信息以及(例如)提交请求和数字签名的原理的标识符进行加密。如果请求是针对内核106,那么内核可执行特权操作以生成结果,且随后使用请求中所包括的公开密钥104加密结果109。结果109在被传送出内核106和/或主计算装置101之前被加密。类似地,如果请求是针对管理程序,那么管理程序可执行特权操作以生成结果,并在结果离开管理程序之前使用公开密钥194加密结果110。
在一些实施方案中,请求无需被绑定到特定主机。然而,在其它实施方案中,请求可被绑定到选定主机。在至少一个实施方案中,请求可被绑定到特定时间窗(例如,一天、一周等),并且服务提供商可雇佣在所述持续时间中可向各个主机发出请求的若干人。因为数据在其离开内核或管理程序之前被加密,或在其以持久方式存储在主计算装置101上时被加密,所以安全方案使数据技术员或其它中间方112(其可能并不可信)能够发出非常敏感的调用,并从管理程序/内核和/或其它安全组件收集高度敏感的信息。因为这些请求的结果在它们离开内核/管理程序中之前被加密,所以中间方112将无法访问可被包含在那些请求中的敏感信息。在各种实施方案中,所有结果数据可被安全地收集并存储,其中安全位置103中仅已认证或受信方可通过使用被安全地维持的私有密钥111来解密该信息。
图2示出根据各种实施方案的使用非对称加密法签署被提交到内核或管理程序的请求的实例200。在所图示的实施方案中,主计算装置201包括至少一个虚拟化层(被图示为管理程序202和Dom0 205的组合)和一个或多个客户端211。客户端可以是虚拟机实例,各自具有其相应的操作系统(OS)、内核、装置驱动器、调度器等。
根据实施方案,主计算装置201提供一组API 208,其可被用来提交签署和/或加密请求,以在内核(例如,Dom-0内核)或管理程序202上执行特权操作。特权操作可读取存储器中的位置,或可使得管理程序202和/或内核206生成一个或多个结果。因为API请求可被加密,所以内核/管理程序外部的中间方在不拥有私有密钥的情况下将无法读取加密请求,并且将不会知道请求将要执行什么操作。此外,加密请求可包括公开密钥,其可被用来在结果被传输出内核/管理程序之前加密请求的结果。
根据所图示的实施方案,可使用包括公开密钥和私有密钥的非对称密钥对来签署并验证API的请求。在一个实施方案中,对API调用(例如,包括用于加密结果的公开密钥)的至少一些(或所有)参数被规范化和串行化,从而导致字符串签署。该字符串可随后经由基于哈希的消息认证码(HMAC)或非对称加密法被签署,且被发送到API 208。因为API的参数被包括在签名中,所以获取请求(例如,发出请求的代码)的潜在攻击者将无法更改请求,并且将无法从请求移除公开密钥或使用另一密钥取代它。
根据一些实施方案,请求可包含时间戳,其提供基于时间窗的重发保护,其中请求仅在有限的持续时间段有效。在一些实施方案中,请求可包括尤其与主计算装置201相关的唯一值,诸如序号或主机标识符(ID)。虽然这些值可能不是秘密的,但是包括它们可将请求绑定到特定主计算装置201。在这种情况下,将防止潜在攻击者针对不同主计算装置重发请求。在一些实施方案中,请求可由主计算装置201中的受信平台模块(TPM)(未图示)认证,以便增加到主计算装置201的绑定强度。
根据所图示的实施方案,用于签署API请求的私有密钥204不存在于收到请求的主计算装置201上。相反,私有密钥204可被存储在服务提供商的网络202上的安全位置203中,或在另一受信位置中。因此,如果主计算装置201上存在恶意代理,那么他们将无法使用私有密钥204伪造请求。
主计算装置201可包括公开密钥,其可被用来验证已经使用私有密钥204签署的请求的签名。在一个实施方案中,公开密钥207可被编译到主计算装置201的内核206中。在另一实施方案中,公开密钥209可被编译到管理程序202。在一些实施方案中,内核206可存储与存储在管理程序202上的公开密钥209不同的公开密钥207,然而,在其它实施方案中,相同的公开密钥可被用来验证管理程序202和内核206二者上的请求。在再其它实施方案中,不是将实际的公开密钥存储在主计算装置201上,而是相反,主计算装置201可被配置来信任由特定证书机构(CA)证明的任何公开密钥。在那些实施方案中,主计算装置201可从请求程序接收请求,其中请求附带有包括公开密钥的证书。主计算装置201将信任CA的证书,且因此信任作为请求的一部分而被接收的公开密钥。无论公开密钥存储在主计算装置上或随证书一起提供,公开密钥可用来验证使用私有密钥204签署的API请求。例如,如果用户(例如,顾客、服务提供商的技术员、第三方等)想要将更新应用到内核206上的某部分代码上,那么他们可获取对私有密钥204的访问且使用私有密钥签署API请求,以修改适当的部分代码。在接收请求之后,内核206可试图使用公开密钥验证请求,并且如果验证成功,则执行必要的特权操作。
在替代的实施方案(未示出)中,如果HMAC和对称密钥被利用,那么私有密钥可被编译到内核206或管理程序202中。在这种情况下,私有密钥可被混淆且随每个构建而改变,但是密钥实际上可存在于主计算装置201上。可选地,可将整个请求加密到被编译到内核中的密钥,使得请求本身对发出请求的代码不透明。
在一些实施方案中,可根据已随请求提供的密钥(或根据拥有密钥的一方)应用一个或多个限制。例如,由一些参与者签署的请求可能仅被允许来启动/停止主计算装置上的客户端虚拟机。使用由其他参与者(例如,服务提供商的OS团队)持有的密钥来签署的请求可被允许来读取虚拟机或管理程序的存储器。在一个实施方案中,主计算装置201可具有存储于其上的多个不同的公开密钥,其中每个公开密钥与不同实体(例如,用户、团队等)相关的私有密钥相关联。取决于使用哪个实体的私有密钥来签署请求,所请求的操作可被允许或拒绝。在替代的实施方案中,主计算装置201仅可存储与一个私有密钥相关联的一个公开密钥,然而,请求可包括提交请求的用户的身份。基于该身份,主计算装置201可将不同限制应用在对所请求的操作的执行上。例如,主计算装置201可允许一个用户停止/启动客户端,而另一用户可被允许来修改或更新管理程序的代码。任何数量的此类限制(例如,基于每个密钥或基于每一方)是可能的,且在此处描述的实施方案的范围内。
图3示出根据各种实施方案的利用证书机构的实例300。在所图示的实施方案中,主计算装置(例如,主计算装置301上的内核306和/或管理程序302)在启动时间生成由非对称密钥对组成的加密身份。例如,当主计算装置301启动时,管理程序302生成包括私有密钥307和公开密钥309的密钥对。类似地,当Dom0 305被加载时,内核306生成由私有密钥313和公开密钥314组成的密钥对。
在各种实施方案中,可以某种方式公布公开密钥(309、313)。例如,可将公开密钥提供到证书机构310。替代地,可直接将公开密钥提供到请求方。可收集该公开密钥,并且可使用该密钥加密请求。在本实施方案中,由主计算装置301生成的私有密钥(307、314)从未离开主计算装置,并且不存在其它地方。如果请求方可以可靠地从主计算装置301取得公开密钥,那么其可保证使用公开密钥签署的请求将到达该主计算装置301(且仅到达所述主计算装置),因为该请求通过使用公开密钥(309、314)而被签署,其可仅被从未离开主计算装置的私有密钥(307、313)解密。应注意,虽然图3示出其中内核306和虚拟化层302二者颁发它们自己相应的密钥对,但是这不是对所有实施方案的要求或限制。在一些实施方案中,仅管理程序颁发密钥对。在其它实施方案中,仅内核颁发密钥对。但是,在其它实施方案中,管理程序和内核可共享密钥对。
在一些实施方案中,主计算装置301可将被用来签署请求的公开密钥309提供到证书机构(CA)310。CA 310可以是向适当的请求方(例如,签署方311)颁发一个或多个数字证书(312、315)的实体。数字证书证明该方适当地拥有可被用来签署API请求的公开密钥。在本实施方案中,对CA的使用使得请求方在一定程度上相信,私有密钥确实是用于主计算装置301。在一个实施方案中,CA是服务提供商的CA,并且在服务提供商的资源中心内运行。下文将参考图4进一步详细描述资源中心。在另一实施方案中,CA 310是被依赖证书的请求方311和主计算装置301信任的受信第三方。证书机构在本领域中被熟知,且用于许多公开密钥基础设施(PKI)方案中。
在本实施方案中,一旦CA 310向请求方311颁发证书312,则请求方311可使用证书来使API请求在内核306或管理程序302的上下文中执行特权操作。随后,管理程序302或内核306可验证:由特定CA签署并颁发给特定方的任何证书是有效的,且可相应地执行特权操作。
在一些实施方案中,证书机构310还可为将被用来签署请求的结果的公开密钥提供证书,如先前所述。例如,当服务提供商的雇员(例如,数据技术员)需要将敏感请求提交到主计算装置301上的内核/管理程序时,数据技术员首先可从CA 310获取证书。该证书随后可由数据技术员用来证明公开密钥的所有权。以类似方式,自动化组件(诸如监控服务)也可利用CA 310获取一个或多个证书,如此处描述。
在各种实施方案中,图3中所示出的技术可与图2中所示出的技术结合使用。例如,图3的请求方311可具有其私有密钥,请求方可使用该私有密钥来签署请求以执行特权操作。在本实施方案中,请求被签署来确保真实性(即,主计算装置将明确知道请求方生成请求),以及请求可被加密来确保私密性(即,外部方不可破译请求中所包含的信息)。
图4示出根据各种实施方案的服务提供商的资源中心环境的实例400。在所图示的实施方案中,服务提供商(例如,云计算资源提供商)可维持一个或多个资源中心423(例如,数据中心、服务器机群等),其存储服务提供商的物理资源(例如,主机服务器等)。可使用这些物理资源托管可通过网络402(诸如互联网)向用户401提供的若干虚拟机实例或虚拟服务器。例如,当用户想要使用服务提供商的物理资源执行应用程序时,他或她可请求服务提供商为用户提供虚拟机,该虚拟机将被用于部署并执行应用程序。随着用户的应用程序增长,用户可请求提供更多虚拟机以平衡负载,请求创建一个或多个虚拟专用网络(VPN)等。
在所图示的实例中,服务提供商的资源中心423可包括主计算装置(406、407、408、409、410)的一个或多个机架421、422,其中特定机架上的主计算装置被连接到单个架顶式(TOR)交换机(404、405)。这些TOR交换机可进一步连接到一个或多个其它交换机(424、425),这使得主计算装置能够连接到网络。如本公开中通篇使用,网络可以是能够彼此通信的装置的任何有线或无线网络,包括但不限于互联网或其它广域网(WAN)、蜂窝网络、局域网(LAN)、存储区域网络(SAN)、内联网、外联网等。资源中心可包括资源的任何物理或逻辑分组,诸如数据中心、服务器机群、内容传递网络(CDN)、存在点(POP)等。
根据实施方案,每个主计算装置可托管已被提供给服务提供商的顾客的一个或多个虚拟机实例(413、414、415、416、417、418、419),以代表那些顾客执行各种应用程序和服务。每个虚拟机可被配置有其自己的操作系统(OS),包括内核、驱动器、过程管理等。
当顾客想要获取虚拟机实例时,顾客可首先向服务提供商提交请求,指示他们想要使用的VM类型。服务提供商可执行过程以提供将被托管在服务提供商的物理资源(例如,主计算装置)上的虚拟机实例。随后,可代表利用服务提供商的资源的顾客使用虚拟机实例来执行各种应用程序和服务。
根据实施方案,一旦虚拟机实例启动并运行,则修改可能需要被应用到VM的管理程序或内核的代码。例如,服务提供商可能想要将补丁或更新应用到将VM托管在主机上的管理程序的代码。替代地,顾客(或一些其它第三方)可能想要将更新应用到VM的内核的代码。在各种实施方案中,本公开中通篇描述的API使得用户能够通过利用非对称(或对称)加密法以安全模式修改代码。额外地,在这种API请求的结果被传送出内核/管理程序之前,可使用此处描述的安全方案加密所述结果。
图5示出根据各种实施方案的用于保护在管理程序或内核中执行特权操作的请求的结果的实例过程500。虽然该图可以特定序列描绘功能操作,但是过程不一定限于所图示的特定顺序或操作。本领域的技术人员将理解,在该图或其它图中描绘的各种操作可被修改、重新布置、并行执行或适于各种方式。此外,将理解,在不偏离各种实施方案的范围的情况下,某些操作或操作的序列可被添加到过程或从过程省略。再者,此处包含的过程说明旨在向本领域的普通技术人员展现过程流的想法,而不是指定代码执行的实际序列,过程可被实施为不同流程或序列,针对性能进行优化,或另外以各种方式进行修改。
在操作501中,接口(例如,API)由主计算装置提供。接口可用于向可包括安全组件(诸如管理程序)和具有内核的一个或多个虚拟机实例的主计算装置的签署和/或加密请求。
在操作502中,公开密钥作为参数被包括在请求(例如,API请求)中,以在管理程序和/或内核上执行特权操作。公开密钥将被用来加密请求的结果。在一些实施方案中,请求本身可被加密。在整个请求被加密的那些实施方案中,密钥可与被用来加密实际请求的公开密钥不同。在其它实施方案中,密钥可以是与被用来加密请求的密钥相同的密钥。在任何一种情况下,请求中所包括的密钥可被用来加密由内核/管理程序执行的特权操作的结果。
在操作503中,将请求(具有被包括作为参数的密钥)提交到主计算装置上的管理程序或内核。在操作504中,管理程序和/或内核可解密请求,并且执行特权操作以在主计算装置上生成一组结果。例如,在API是网络服务API的实施方案中,在主计算装置上(例如,在虚拟化层内)运行的网络服务器可接收API调用,这在本具体实例中为网络服务API调用。网络服务器可验证请求,并调用特权操作。
在操作505中,由内核/管理程序生成的结果在其被传送出内核/管理程序之前使用请求中所包括的公开密钥进行加密。例如,在将结果提供给数据技术员或监控服务之前,加密所述结果,从而防止数据技术员或监控服务读取请求的结果,除非他们具有对正确私有密钥的访问。
在操作506中,将结果传递到安全位置,诸如服务提供商的内部网络上的远程网络位置。根据实施方案,安全位置存储私有密钥,其可被用来解密使用公开密钥加密的结果。在操作507中,结果可由认证方使用私有密钥进行解密。
应注意,虽然请求在图5中被加密,但是这不是对此处描述的所有实施方案的限制。在一些替代的实施方案中,可能仅使用授权实体的私有密钥来签署请求。在这些实施方案中,请求中所包括的公开密钥是与请求相关联的签名的一部分,且因此无法被未授权实体移除。在其它实施方案中,不签署或加密所述请求。
图6示出根据各种实施方案的用于提供可被用来在管理程序或内核中执行特权操作的API的实例过程600。
在操作601中,提供一个或多个应用程序编程接口(API),其可被用来将签署的请求提交到主计算装置。主计算装置可包括虚拟化层(例如,虚拟机监控器或结合管理程序进行操作的Dom0)和一个或多个客户端(例如,运行具有操作系统内核的客户端操作系统的虚拟机)。
在操作602中,生成了非对称密钥对,其包括私有密钥和对应的公开密钥。私有密钥可被用来加密信息,且公开密钥可被用来解密使用公开密钥加密的信息。
在操作603中,将公开密钥存储在主计算装置上。例如,公开密钥可被编译到操作系统的内核中或管理程序中。替代地,可将密钥存储在主计算装置的受信平台模块(TPM)中。
在操作604中,将私有密钥存储在主计算装置外部的安全位置中。在本实施方案中,私有密钥不存在于主计算装置上,使得驻留在其上的任何恶意代理将无法访问私有密钥。
在操作605中,主计算装置通过API接收请求,要求在管理程序和/或操作系统内核上执行特权操作。根据实施方案,使用公开密钥签署所接收的请求。
在操作606中,主计算装置(例如,内核或管理程序)试图使用存储在主计算装置上的公开密钥来验证请求的签名。如果请求的签名被成功验证,那么可在管理程序/内核上执行特权操作,如操作607中示出。如果无法使用公开密钥成功验证签名,那么特权操作失败(即,不被执行)。
图7示出根据各种实施方案的用于利用请求的加密的实例过程700。在操作701中,主计算装置生成非对称密钥对。例如,主计算装置上的启动过程可生成公开密钥和对应的私有密钥。在操作702中,向受信源公布公开密钥。在一个实施方案中,可直接将公开密钥提供给将使用公开密钥加密请求的请求方。在另一实施方案中,可将公开密钥提供到证书机构,其中证书机构可将证书授予可能希望在内核或管理程序上执行特权操作的认证方。在本实施方案中,证书机构可将公开密钥嵌入证书中,并且使用其自己的公开密钥签署证书。因此,接收证书的一方可验证公开密钥确实被CA证明来自主计算装置。
在操作703中,主计算装置接收执行特权操作的请求。主计算装置随后试图使用存储在主计算装置上的私有密钥解密请求,如在操作704中示出。如果请求可使用私有密钥解密,那么主计算装置可在内核/管理程序上执行特权操作,如在操作705中示出。
可鉴于以下条款描述本公开的各种实施方案:
1.一种用于保护虚拟化计算环境中的数据的计算机实施的方法,所述方法包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
提供接口以在主计算装置上接收API请求,所述主计算装置包括下列项中的至少一个:管理程序或内核;
由所述主计算装置接收在所述管理程序或所述内核上执行特权操作的请求,所述请求使用第一密钥加密,所述请求包括第二密钥作为所述请求的参数,所述第二密钥能够被用来加密信息;其中所述管理程序或所述内核被配置来解密所述请求,并执行所述特权操作以在所述主计算装置上生成一组结果;以及
由所述管理程序或所述内核使用随所述请求提供的所述第二密钥来加密所述一组结果,在所述一组结果被传送出所述管理程序或所述内核到达外部位置之前,加密所述一组结果。
2.根据条款1所述的计算机实施的方法,其进一步包括:
将使用所述第二密钥加密的所述一组结果传送到所述主计算装置外部的位置;以及
使用私有密钥解密所述一组结果。
3.根据条款1所述的计算机实施的方法,其中所述请求由被配置来监控多个主计算装置的监控请求发出,每个主计算装置包括管理一个或多个虚拟机实例的管理程序。
4.根据条款1所述的计算机实施的方法,其中所述特权操作包括:
读取所述主计算装置上的存储器中的位置,所述位置与下列项中的至少一个相关联:所述虚拟机管理器或所述内核。
5.一种计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
生成在主计算装置的虚拟化层上执行特权操作的请求;
获取公开密钥并将所述公开密钥包括在所述请求中,所述公开密钥能够被用来加密信息,所述公开密钥具有对应的私有密钥,所述私有密钥能够被用来解密使用所述公开密钥加密的所述信息;
将包括所述公开密钥的所述请求提交到所述主计算装置的所述虚拟化层,所述虚拟化层被配置来执行所述特权操作以生成结果;且
其中所述虚拟化层被配置来通过使用随所述请求提供的所述公开密钥来加密所述特权操作的所述结果。
6.根据条款5所述的计算机实施的方法,其中所述虚拟化层被配置来在所述结果被传送出所述主计算装置的所述虚拟化层之前加密所述结果。
7.根据条款5所述的计算机实施的方法,其中所述虚拟化层被配置来将所述加密结果传送到所述主计算装置外部的位置;且其中通过使用私有密钥在所述位置处解密所述加密结果。
8.根据条款5所述的计算机实施的方法,其中使用第二密钥加密执行所述特权操作的所述请求,且其中所述请求可通过所述虚拟化层解密。
9.根据条款5所述的计算机实施的方法,其中使用服务私有密钥签署执行所述特权操作的所述请求,且其中所述请求的签名可通过虚拟化层使用服务公开密钥验证。
10.根据条款9所述的计算机实施的方法,其进一步包括:
从证书机构(CA)获取包括所述服务公开密钥的证书。
11.根据条款5所述的计算机实施的方法,其中获取所述公开密钥进一步包括:
使用证书机构(CA)获取证明所述公开密钥的所有权的至少一个证书。
12.根据条款5所述的计算机实施的方法,其中所述请求由监控多个主计算装置的监控服务生成。
13.根据条款12所述的计算机实施的方法,其进一步包括:
至少部分基于与所述多个主计算装置中的至少一个相关联的配置文件,由所述监控服务检测所述多个主计算装置中的至少一个操作异常。
14.根据条款5所述的计算机实施的方法,其中将所述请求绑定到指定持续时间。
15.根据条款5所述的计算机实施的方法,其中所述特权操作修改所述主计算装置上的所述虚拟化层的运行存储器映像。
16.根据条款5所述的计算机实施的方法,其中所述特权操作进一步包括:
读取所述主计算装置上的存储器中的位置,所述位置与所述虚拟化层相关联。
17.一种系统,其包括:
第一计算机系统,其包括至少一个处理器;以及
存储器,其包括在被所述至少一个处理器执行时使得所述计算系统执行下列操作的指令:
从受信方接收在主计算装置的虚拟化层上执行特权操作的请求,所述请求包括公开密钥,所述公开密钥能够被用来加密信息,所述公开密钥具有对应的私有密钥,所述私有密钥能够被用来解密使用所述公开密钥加密的所述信息;以及
向所述主计算装置的应用程序编程接口(API)发出所述请求,其中所述虚拟化层被配置来执行所述特权操作,以产生结果并使用随所述请求提供的所述公开密钥加密所述结果。
18.根据条款17所述的系统,其进一步包括:
所述主计算装置,其中所述主计算装置包括至少一个处理器和存储器,所述存储器包括在被执行时使得所述主计算装置执行下列操作的指令:
执行所述特权操作;
使用随所述请求提供的所述公开密钥加密所述结果;以及
将所述加密结果存储在预定位置中。
19.根据条款18所述的计算系统,其中所述主计算装置被配置来:在所述结果被传送出所述虚拟化层之前,在所述虚拟化层内加密所述结果。
20.根据条款17所述的计算系统,其中使用第二密钥加密执行所述特权操作的所述请求,且其中所述请求由所述虚拟化层解密。
21.一种计算系统,其包括:
至少一个处理器;以及
存储器,其包括在被所述至少一个处理器执行时使得所述计算系统执行下列操作的指令:
接收在主计算装置的虚拟化层上执行特权操作的请求,所述请求包括公开密钥,所述公开密钥能够被用来加密信息,所述公开密钥具有对应的私有密钥,所述私有密钥能够被用来解密使用所述公开密钥加密的所述信息;
在所述主计算装置的所述虚拟化层中执行所述请求以产生结果;以及
使得使用随所述请求提供的所述公开密钥加密所述特权操作的所述结果。
22.根据条款21所述的计算系统,其中所述存储器进一步包括使得所述计算系统执行下列操作的指令:
将所述加密结果传送到所述主计算装置外部的位置,所述位置存储所述私有密钥;且
其中所述结果可通过使用所述私有密钥来解密。
23.根据条款21所述的计算系统,其中使用第二密钥加密执行所述特权操作的所述请求,且其中所述请求可通过所述虚拟化层解密。
24.一种非临时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行下列操作的一个或多个指令序列:
接收在主计算装置的虚拟化层上执行特权操作的请求,所述请求包括公开密钥,所述公开密钥能够被用来加密信息,所述公开密钥具有对应的私有密钥,所述私有密钥能够被用来解密使用所述公开密钥加密的所述信息;在所述主计算装置的所述虚拟化层中执行所述请求以产生结果;以及
使得所述特权操作的所述结果通过使用随所述请求提供的所述公开密钥而被加密。
25.根据条款24所述的非临时性计算机可读存储介质,其进一步包括使得所述一个或多个处理器执行下列操作的指令:
将所述加密结果传送到所述主计算装置外部的位置,所述位置存储所述私有密钥;以及
在所述位置通过使用所述私有密钥解密所述结果。
26.根据条款24所述的非临时性计算机可读存储介质,其中使用第二密钥加密执行所述特权操作的所述请求,且其中所述请求由所述虚拟化层解密。
27.根据条款24所述的非临时性计算机可读存储介质,其中在将所述结果从所述主计算装置传送到外部位置之前,在所述虚拟化层处加密所述结果。
图8示出实例计算装置800的一组通用组件的逻辑布置。在本实例中,装置包括用于执行可存储在存储器装置或元件804中的指令的处理器802。如将对本领域的普通技术人员显而易见的是,装置可包括许多类型的存储器、数据存储或非临时性计算机可读存储媒介,诸如用于供处理器802执行的程序指令的第一数据存储、用于图像或数据的单独存储、用于与其它装置共享信息的可移动存储器等。装置通常将包括某些类型的显示器元件806,诸如触摸屏或液晶显示器(LCD),但是诸如便携式媒介播放器的装置可经由其它装置(诸如通过扬声器)传达信息。如讨论,在许多实施方案中的装置将包括至少一个输入元件808,其能够接收来自用户的传统输入。该传统输入可包括,例如按钮、触摸板、触摸屏、滚轮、操纵杆、键盘、鼠标、小键盘或任何其它此类装置或元件,由此,用户可向装置输入命令。然而,在一些实施方案中,这种装置可能不包括任何按钮,并且可能仅通过可视和语音命令的组合被控制,使得用户可控制装置而无需与装置接触。在一些实施方案中,图8的计算装置800可包括一个或多个网络接口元件808,其通过各种网络,诸如Wi-Fi、蓝牙、RF、有线或无线通信系统进行通信。在许多实施方案中的装置可与网络(诸如互联网)通信,并且可能能够与其它此类装置通信。
如讨论,根据所描述的实施方案,不同的方法可在各种环境中实施。例如,图9示出根据各种实施方案的用于实施方面的环境900的实例。如将理解,虽然基于网络的环境用于解释的目的,但是可适当使用不同环境来实施各种实施方案。系统可包括电子客户端装置902,其可包括任何适当的装置,所述适当的装置可操作以通过适当网络904发送并接收请求、消息或信息,并将信息传达回装置的用户。此类客户端装置的实例包括个人计算机、移动电话、手持式通讯装置、膝上型计算机、机顶盒、个人数据助理、电子书阅读器等。网络可包括任何适当的网络,包括但内联网、互联网、蜂窝网络、局域网或任何其它此类网络或其组合。用于此类系统的组件可至少部分依赖于所选择的网络和/或环境的类型。用于经由此类网络进行通信的协议和组件已被熟知,且此处将不进行详细讨论。通过网络的通信可经由有线或无线连接及其组合来实现。在本实例中,网络包括互联网,而环境包括用于接收请求并响应于此而服务内容的网络服务器906,但是对于其它网络,可使用用于类似目的的替代装置,如将对本领域的普通技术人员显而易见。
所图示的环境包括至少一个应用程序服务器908和数据存储910。应理解,可存在若干应用程序服务器、层或其它元件、过程或组件,其可被链接或以其它方式被配置,可相互作用以执行诸如从适当的数据存储获取数据的任务。如此处使用的术语“数据存储”指的是能够存储、访问并检索数据的任何装置或装置的组合,其可包括在任何标准、分布式或集群环境中的任何组合和任何数量的数据服务器、数据库、数据存储装置和数据存储媒介。应用程序服务器可包括任何适当的硬件和软件,用于根据需要与数据存储集成以执行客户端装置的一个或多个应用程序的方面,和处理大多数的数据访问和应用程序的事务逻辑。应用程序服务器结合数据存储提供访问控制服务,并且能够生成将被传送到用户的内容,诸如文本、图像、音频和/或视频,其可以通过网络服务器以HTML、XML或本实例中另一适当结构化语言伺服于用户。所有请求和响应的处理,以及客户端装置902与应用程序服务器908之间的内容的传递可由网络服务器906来处理。应理解,网络服务器和应用程序服务器不是必需的,而仅仅是示例性组件,因为此处讨论的结构化代码可以在本文另处讨论的任何适当的装置或主机上执行。
数据存储910可包括若干独立的数据表、数据库或用于存储与特定方面相关的数据的其它数据存储机构和媒介。例如,所图示的数据存储包括用于存储生产数据912和用户信息916的机构,其可被用来伺服生产方的内容。数据存储还被示出为包括用于存储日志或会话数据914的机构。应理解,可以存储可能需要被存储在数据存储中的许多其它方面,诸如页面图像信息和访问权信息,其可被存储在上文所列的任意适当的机构中或数据存储910的附加机构中。通过与其相关联的逻辑,数据存储910可操作以接收来自应用程序服务器908的指令,并响应于该指令,获取、更新或以其它方式处理数据。在一个实例中,用户可提交一定类型项目的搜索请求。在这种情况下,数据存储可访问用户信息以验证用户的身份,并且可访问目录详细信息以获取相关该类型项目的信息。然后,信息可以返回至用户,例如,在用户能够经由用户装置902上的浏览器查看网页上列出的结果中。用于特定关注的信息可在浏览器的专用页面或窗口中查看。
每个服务器通常将包括操作系统,其提供用于该服务器的一般管理和操作的可执行程序指令,并且通常将包括用于存储指令的计算机可读存储介质,当指令由服务器的处理器执行时,允许服务器执行其预定功能。操作系统的合适实施方式和服务器的一般功能是已知的或可市售的,并且本领域的普通技术人员可很容易地实现,尤其是在本文公开的情况下。
在一个实施方案中的环境是采用若干计算机系统和组件的分布式计算环境,系统和部件使用一个或多个计算机网络通过通信链路进行互联或直接连接。然而,本领域的普通技术人员将理解,此类系统可以在比图9所示的系统具有更少或更多组件的系统中很好地等效操作。因此,在图9中对系统900的描述实质上应被看作是说明性的,而不应限制本公开的范围。
此处讨论或建议的实施方案可以在多种广泛的操作环境中进一步实施,其在某些情况下可以包括一个或多个用户计算机、计算装置或处理装置。这些装置可以被用于操作许多应用程序中的任何一个。用户或客户端装置可以包括许多通用个人计算机中的任何一个,诸如运行标准操作系统的台式计算机或膝上型计算机,以及运行移动软件和能够支持多种网络和通讯协议的蜂窝、无线和手持装置。此类系统还可以包括多个工作站,工作站可以运行许多市售操作系统和用于例如开发和数据库管理目的的其它已知应用程序中任何一个。这些装置还可以包括其它电子装置,例如虚拟终端、瘦客户端、游戏系统和能够经由网络通信的其它装置。
大多数实施方案利用本领域技术人员所熟悉的至少一种网络,并使用各种商用协议(诸如TCP/IP、OSI、FTP、UPnP,NFS、CIFS和AppleTalk)中的任意协议来支持通信。网络可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网络、红外网络、无线网络及其任意组合。
在利用网络服务器的实施方案中,网络服务器可以运行各种服务器或中间层应用程序中的任意程序,其包括HTTP服务器、FTP服务器、CGI服务器、数据服务器、Java服务器和事务应用服务器。服务器还可能够诸如通过执行一个或多个网络应用程序来执行程序或脚本以作为对来自用户装置的请求的响应,一个或多个网络应用程序可以被实施为以任何编程语言(例如C、C#或C++)或任何脚本语言(例如Perl、Python或TCL)及其组合编写的一个或多个脚本或程序。服务器还可以包括数据库服务器,其包括但不限于那些来自于的市售数据库服务器。
环境可以包括如上讨论的各种数据储存和其它存储器以及存储媒介。这些可以驻留在各个位置上,诸如相对于一个或多个计算机为本地(和/或驻留)或相对于跨网络的任何或所有计算机为远程的存储媒介上。在特定的实施方案设置中,信息可以驻留在本领域技术人员所熟知的存储区域网络(“SAN”)中。类似地,用于执行计算机、服务器或其它网络装置所具功能的任何必要文件可以视情况被本地和/或远程存储。在包括计算化装置的系统中,每个此类装置可包括可以经由总线被电气耦接的硬件元件,元件包括例如至少一个中央处理单元(CPU)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。此类系统还可以包括一个或多个存储装置,例如磁盘驱动器、光存储装置和固态存储装置,诸如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移动媒介装置、存储卡、闪存卡等。
此类装置还可包括计算机可读存储媒介读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等)和如上所述的工作存储器。计算机可读存储媒介读取器可以与计算机可读存储媒介连接,或经配置接收计算机可读存储媒介,其中计算机可读存储媒介表示远程、本地、固定和/或可移动存储装置,以及用于暂时和/或更持久包含、存储、传输和检索计算机可读信息的存储媒介。系统和各种装置通常还将包括多种软件应用程序、模块、服务或位于至少一个工作存储装置内的其它元件,其包括操作系统和应用程序,诸如客户端应用程序或网络浏览器。应当理解,替代实施例可以具有来自上述的无数变化。例如,定制的硬件也可以被使用,且/或特定元件可以在硬件、软件(包括可移植软件,诸如小应用程序)或两者中实施。进一步地,可以采用到其它计算装置(诸如网络输入/输出装置)的连接。
用于包含代码或代码一部分的存储媒介和计算机可读媒介可以包括在本领域已知或使用的任何适当的媒介,其包括存储媒介和通信媒介,诸如但不限于用于信息(例如计算机可读指令、数据结构、程序模块或其它数据)的存储和/或传输的任何方法或技术中实施的易失性和非易失性、可移动和不可移动媒介,其包括RAM、ROM、EEPROM、闪存或其它存储技术产品、CD-ROM、数字通用光盘(DVD)或其它光储存器、盒式磁带、磁带、磁盘储存器或其它磁储存装置,或可以用于存储所需信息并可以由系统装置访问的任何其它媒介。基于本文提供的公开和教导,本领域的普通技术人员将了解实施多种实施方案的其它方式和/或方法。
因此,说明书和附图将被视为说明性的而非限制性的。然而,明显的是,在不偏离权利要求书中提出的本发明的较宽精神和范围的情况下,可以对其做出各种修改和变化。

Claims (15)

1.一种计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
生成在主计算装置的虚拟化层上执行特权操作的请求;
获取公开密钥并将所述公开密钥包括在所述请求中,所述公开密钥能够被用来加密信息,所述公开密钥具有对应的私有密钥,所述私有密钥能够被用来解密使用所述公开密钥加密的所述信息;
将包括所述公开密钥的所述请求提交到所述主计算装置的所述虚拟化层,所述虚拟化层被配置来执行所述特权操作以生成结果;且
其中所述虚拟化层被配置来通过使用随所述请求提供的所述公开密钥来加密所述特权操作的所述结果。
2.根据权利要求1所述的计算机实施的方法,其中所述虚拟化层被配置来在所述结果被传送出所述主计算装置的所述虚拟化层之前加密所述结果。
3.根据权利要求1所述的计算机实施的方法,其中所述虚拟化层被配置来将所述加密结果传送到所述主计算装置外部的位置;且其中通过使用私有密钥而在所述位置解密所述加密结果。
4.根据权利要求1所述的计算机实施的方法,其中使用第二密钥加密执行所述特权操作的所述请求,且其中所述请求可通过所述虚拟化层解密。
5.根据权利要求1所述的计算机实施的方法,其中使用服务私有密钥签署执行所述特权操作的所述请求,且其中所述请求的签名可通过所述虚拟化层使用服务公开密钥验证。
6.根据权利要求5所述的计算机实施的方法,其进一步包括:
从证书机构(CA)获取包括所述服务公开密钥的证书。
7.根据权利要求1所述的计算机实施的方法,其中获取所述公开密钥进一步包括:
使用证书机构(CA)获取证明所述公开密钥的所有权的至少一个证书。
8.根据权利要求1所述的计算机实施的方法,其中所述请求由监控多个主计算装置的监控服务生成。
9.根据权利要求8所述的计算机实施的方法,其进一步包括:
至少部分基于与所述多个主计算装置中的至少一个相关联的配置文件,由所述监控服务检测所述多个主计算装置中的至少一个操作异常。
10.根据权利要求1所述的计算机实施的方法,其中将所述请求绑定到指定持续时间。
11.根据权利要求1所述的计算机实施的方法,其中所述特权操作修改所述主计算装置上的所述虚拟化层的运行存储器映像。
12.根据权利要求1所述的计算机实施的方法,其中所述特权操作进一步包括:
读取所述主计算装置上的存储器中的位置,所述位置与所述虚拟化层相关联。
13.一种系统,其包括:
第一计算机系统,其包括至少一个处理器;以及
存储器,其包括在被所述至少一个处理器执行时使得所述计算系统执行下列操作的指令:
从受信方接收在主计算装置的虚拟化层上执行特权操作的请求,所述请求包括公开密钥,所述公开密钥能够被用来加密信息,所述公开密钥具有对应的私有密钥,所述私有密钥能够被用来解密使用所述公开密钥加密的所述信息;以及
向所述主计算装置的应用程序编程接口(API)发出所述请求,其中所述虚拟化层被配置来执行所述特权操作以产生结果并使用随所述请求提供的所述公开密钥加密所述结果。
14.根据权利要求13所述的系统,其进一步包括:
所述主计算装置,其中所述主计算装置包括至少一个处理器和存储器,所述存储器包括在被执行时使得所述主计算装置执行下列操作的指令:
执行所述特权操作;
使用随所述请求提供的所述公开密钥加密所述结果;以及
将所述加密结果存储在预定位置中。
15.根据权利要求13所述的计算系统,其中使用第二密钥加密执行所述特权操作的所述请求,且其中所述请求由所述虚拟化层解密。
CN201480007923.8A 2013-01-22 2014-01-22 用于保护特权计算操作的结果的计算机实施的方法和系统 Active CN105027096B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,780 US9503268B2 (en) 2013-01-22 2013-01-22 Securing results of privileged computing operations
US13/746,780 2013-01-22
PCT/US2014/012605 WO2014116744A1 (en) 2013-01-22 2014-01-22 Securing results of privileged computing operations

Publications (2)

Publication Number Publication Date
CN105027096A true CN105027096A (zh) 2015-11-04
CN105027096B CN105027096B (zh) 2018-03-16

Family

ID=51208709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480007923.8A Active CN105027096B (zh) 2013-01-22 2014-01-22 用于保护特权计算操作的结果的计算机实施的方法和系统

Country Status (9)

Country Link
US (1) US9503268B2 (zh)
EP (1) EP2948855B1 (zh)
JP (2) JP6321041B2 (zh)
KR (1) KR101704329B1 (zh)
CN (1) CN105027096B (zh)
AU (1) AU2014209471B2 (zh)
CA (1) CA2898907C (zh)
SG (1) SG11201505654YA (zh)
WO (1) WO2014116744A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106372497A (zh) * 2016-08-31 2017-02-01 北京深思数盾科技股份有限公司 一种应用编程接口api 保护方法和保护装置
CN110663027A (zh) * 2017-06-16 2020-01-07 国际商业机器公司 使用硬件保护操作系统配置

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
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
GB2515536A (en) * 2013-06-27 2014-12-31 Ibm Processing a guest event in a hypervisor-controlled system
US9819661B2 (en) * 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US9497221B2 (en) 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9225529B1 (en) * 2013-12-10 2015-12-29 Emc Corporation Encrypted virtual machines in a cloud
IN2013CH06052A (zh) * 2013-12-23 2015-06-26 Cognizant Technology Solutions India Pvt Ltd
US9652276B2 (en) 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
US10628406B1 (en) 2014-09-30 2020-04-21 EMC IP Holding Company LLC Method and system for secure data replication data integrity verification
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
US10110566B2 (en) * 2015-07-21 2018-10-23 Baffle, Inc. Systems and processes for executing private programs on untrusted computers
CN105931042A (zh) * 2015-09-22 2016-09-07 中国银联股份有限公司 一种应用权限管理方法以及智能pos终端
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
US9792143B1 (en) * 2015-10-23 2017-10-17 Amazon Technologies, Inc. Platform secure execution modes
US20170277903A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Data Protection Using Virtual Resource Views
JP6603632B2 (ja) * 2016-08-16 2019-11-06 日本電信電話株式会社 Apiシステム及びデータ暗号化方法
US10270596B2 (en) * 2016-09-16 2019-04-23 International Business Machnines Corporation Generating memory dumps
US10885211B2 (en) 2017-09-12 2021-01-05 Sophos Limited Securing interprocess communications
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
US11042641B2 (en) 2018-09-11 2021-06-22 Amari.Ai Incorporated Deployment and communications gateway for deployment, trusted execution, and secure communications
KR102156174B1 (ko) * 2019-06-25 2020-09-15 아주대학교산학협력단 클라우드 기반의 IoT 시스템에 대한 디지털 포렌식 장치 및 방법
US20210281561A1 (en) * 2020-03-09 2021-09-09 International Business Machines Corporation Certification for connection of virtual communication endpoints
KR20220052007A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 전자 장치 및 그 제어 방법
US11537705B2 (en) * 2020-10-27 2022-12-27 Dell Products L.P. Device access control system
US11829493B2 (en) * 2020-10-27 2023-11-28 Dell Products L.P. Device access control system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture
CN101465848A (zh) * 2007-12-17 2009-06-24 国际商业机器公司 安全数字签名系统
WO2010077388A1 (en) * 2008-12-31 2010-07-08 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US20120117625A1 (en) * 2010-11-09 2012-05-10 Microsoft Corporation Security system for computing resources pre-releases

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410602A (en) * 1993-09-27 1995-04-25 Motorola, Inc. Method for key management of point-to-point communications
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
CA2255285C (en) 1998-12-04 2009-10-13 Certicom Corp. Enhanced subscriber authentication protocol
US6826690B1 (en) 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
JP2002073358A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
JP3938852B2 (ja) 2001-06-20 2007-06-27 富士通株式会社 監視サービス価格提示方法,監視サービス価格提示プログラム,監視サービス価格提示装置
US6944300B2 (en) 2001-06-22 2005-09-13 International Business Machines Corporaton Method for migrating a base chip key from one computer system to another
EP1520217A2 (en) 2002-06-06 2005-04-06 Dick C. Hardt Distributed hierarchical identity management
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
EP1866825A1 (en) 2005-03-22 2007-12-19 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8364638B2 (en) 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
JP2007122303A (ja) 2005-10-27 2007-05-17 Hitachi Ltd 論理区画式計算機システム
JP5054317B2 (ja) 2006-02-08 2012-10-24 株式会社アイ・オー・データ機器 暗号鍵設定方法、ネットワークシステム、管理装置、情報処理端末、および暗号鍵設定プログラム
US8130959B2 (en) * 2006-09-07 2012-03-06 International Business Machines Corporation Rekeying encryption for removable storage media
US8407699B2 (en) * 2008-03-10 2013-03-26 Citrix Systems, Inc. System and method for managing code isolation
US8453143B2 (en) * 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US8208637B2 (en) 2007-12-17 2012-06-26 Microsoft Corporation Migration of computer secrets
US8353015B2 (en) 2008-01-09 2013-01-08 Microsoft Corporation Trusted internet identity
US8595723B2 (en) 2008-06-10 2013-11-26 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a hypervisor during a downtime state
WO2009155574A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US8738932B2 (en) 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US9158912B2 (en) 2009-04-01 2015-10-13 Dell Products L.P. Method and apparatus for a virtual machine hosting network with user devices
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
US8635632B2 (en) * 2009-10-21 2014-01-21 International Business Machines Corporation High performance and resource efficient communications between partitions in a logically partitioned system
US8631404B2 (en) * 2010-02-18 2014-01-14 Red Hat Israel, Ltd. Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels
US8417885B2 (en) * 2010-02-24 2013-04-09 Avaya Inc. Method and apparatus for high availability (HA) protection of a running virtual machine (VM)
JP5467461B2 (ja) 2010-03-17 2014-04-09 曙ブレーキ工業株式会社 ブリーダプラグ
JP2011211255A (ja) 2010-03-26 2011-10-20 Kyocera Corp データ転送システム、通信機器及びデータ転送方法
JP5444104B2 (ja) * 2010-04-21 2014-03-19 株式会社日立製作所 記憶手段の管理方法、仮想計算機システムおよびプログラム
US8300831B2 (en) * 2010-04-26 2012-10-30 International Business Machines Corporation Redundant key server encryption environment
US8473557B2 (en) 2010-08-24 2013-06-25 At&T Intellectual Property I, L.P. Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network
US9304867B2 (en) * 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
KR20120050742A (ko) * 2010-11-11 2012-05-21 삼성에스디에스 주식회사 커널 네이티브 에이피아이의 후킹 처리를 통한 디지털 저작권 관리 장치 및 방법
US8880667B2 (en) 2011-02-09 2014-11-04 Microsoft Corporation Self regulation of the subject of attestation
JP5648544B2 (ja) 2011-03-15 2015-01-07 富士通株式会社 スケジューリングプログラム、および情報処理装置
US20120324446A1 (en) 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing
US8732462B2 (en) * 2011-07-07 2014-05-20 Ziptr, Inc. Methods and apparatus for secure data sharing
JP2013058006A (ja) * 2011-09-07 2013-03-28 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
US8522035B2 (en) 2011-09-20 2013-08-27 Blackberry Limited Assisted certificate enrollment
US9069586B2 (en) * 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US8914629B2 (en) * 2012-01-30 2014-12-16 The Nielsen Company (Us), Llc Intercepting encrypted network traffic for internet usage monitoring
US8688984B2 (en) 2012-04-27 2014-04-01 Google Inc. Providing content to a user across multiple devices
US10255089B2 (en) * 2012-07-31 2019-04-09 Ca, Inc. Self-deleting virtual machines
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101322A1 (en) * 2001-10-25 2003-05-29 Gardner Robert D. Protection of user process data in a secure platform architecture
CN101465848A (zh) * 2007-12-17 2009-06-24 国际商业机器公司 安全数字签名系统
WO2010077388A1 (en) * 2008-12-31 2010-07-08 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US20120117625A1 (en) * 2010-11-09 2012-05-10 Microsoft Corporation Security system for computing resources pre-releases

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106372497A (zh) * 2016-08-31 2017-02-01 北京深思数盾科技股份有限公司 一种应用编程接口api 保护方法和保护装置
CN110663027A (zh) * 2017-06-16 2020-01-07 国际商业机器公司 使用硬件保护操作系统配置
CN110663027B (zh) * 2017-06-16 2023-05-16 国际商业机器公司 用于安全地启动计算系统的方法和系统

Also Published As

Publication number Publication date
CA2898907A1 (en) 2014-07-31
EP2948855A4 (en) 2016-09-14
JP6462103B2 (ja) 2019-01-30
KR20150106923A (ko) 2015-09-22
JP6321041B2 (ja) 2018-05-09
AU2014209471B2 (en) 2017-04-06
JP2018081705A (ja) 2018-05-24
AU2014209471A1 (en) 2015-08-27
JP2016509726A (ja) 2016-03-31
KR101704329B1 (ko) 2017-02-08
WO2014116744A1 (en) 2014-07-31
EP2948855B1 (en) 2019-07-10
EP2948855A1 (en) 2015-12-02
CN105027096B (zh) 2018-03-16
CA2898907C (en) 2018-08-14
US20140208097A1 (en) 2014-07-24
SG11201505654YA (en) 2015-08-28
US9503268B2 (en) 2016-11-22

Similar Documents

Publication Publication Date Title
JP6462103B2 (ja) 特権的コンピューティングオペレーションの結果の保護
US11228449B2 (en) Secure interface for invoking privileged operations
US9882888B2 (en) Revocable shredding of security credentials
US11019068B2 (en) Quorum-based access management
CN105027107B (zh) 迁移计算资源的计算机实现的方法及计算系统
US9117062B1 (en) Stateless and secure authentication
CN104982005A (zh) 虚拟化环境中的特权加密服务
CN102523089B (zh) 用于批处理系统的第二凭证
CN105324779A (zh) 使用安全存储装置的主机恢复
Roy et al. A Study on Google Cloud Platform (GCP) and Its Security
Singh et al. Performance analysis of middleware distributed and clustered systems (PAMS) concept in mobile communication devices using Android operating system
Sahoo Cloud computing and its security measures
US10924286B2 (en) Signing key log management
CN116301890A (zh) 业务处理方法及装置、计算机可读存储介质、电子设备

Legal Events

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