CN113544674A - 用于安全接口控件的安全执行客户机所有者控制 - Google Patents

用于安全接口控件的安全执行客户机所有者控制 Download PDF

Info

Publication number
CN113544674A
CN113544674A CN202080019284.2A CN202080019284A CN113544674A CN 113544674 A CN113544674 A CN 113544674A CN 202080019284 A CN202080019284 A CN 202080019284A CN 113544674 A CN113544674 A CN 113544674A
Authority
CN
China
Prior art keywords
secure
client
request
metadata
interface control
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.)
Pending
Application number
CN202080019284.2A
Other languages
English (en)
Inventor
R·宾德根
J·布拉德伯里
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN113544674A publication Critical patent/CN113544674A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Landscapes

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

Abstract

一种方法、计算机程序产品和***,其中,安全接口控件基于元数据确定安全客户机的功能。安全接口控件(“SC”)获得获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据,其中,元数据包括指示是否允许用映像生成的安全客户机获得对特定请求的响应的控制符。SC在运行期间从用映像生成的安全客户机截获请求。SC根据控制符确定是否允许安全客户机获得对该请求的响应。如果允许,SC在计算***内开始完成该请求。如果不允许,SC忽略该请求。

Description

用于安全接口控件的安全执行客户机所有者控制
背景技术
在当今的计算机***和信息传输网络中,密码元件是重要的技术组件。信息可以以加密安全的形式存储或传输,以避免对存储或传输的信息的未经授权访问。在某些情况下,可以使用基于纯软件的技术,在其他情况下,可以使用硬件支持和特定于安全性的元件来进行此类数据保护。
虚拟机监控程序(hypervisor)或虚拟机管理器可以控制可访问***资源的各种客户机(例如,虚拟机、虚拟服务器)。由公共虚拟机监控程序管理的不同客户机可以由不同的所有者生成。这些客户机中有些可能是安全客户机。传统的虚拟机监控程序可以完全控制受托管的所有客户机。特别是,虚拟机监控程序能够检查甚至修改受托管的客户机的所有内存。在云环境中,这种设置要求虚拟机监控程序及其管理员完全可信。
安全客户机(secure guest)是可以由不(完全)可信的虚拟机监控程序托管的客户机。这样的客户机的映像在加载时将受到保护,并且,对分配给客户机的资源(例如,内存、CPU寄存器)的内容的保护将在客户机的整个生命周期内保持。客户机的保护至少包括完整性保护(例如,虚拟机监控程序不能恶意更改任何客户机状态),此外还可以包括维护客户机中运行的初始映像、代码和数据的机密性。
发明内容
通过提供一种方法克服了现有技术的缺点并提供了额外的优势,该方法使所有者能够利用安全接口控件来管理安全客户机的功能。所述方法例如包括:由计算***中的安全接口控件获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据,其中,安全接口控件通信地耦合到虚拟机监控程序,其中,虚拟机监控程序管理一个或多个客户机,其中,元数据包括一个或多个控制符,其中,所述一个或多个控制符的每个控制符向安全接口控件指示是否允许用映像生成的安全客户机获得对特定请求的响应;由安全接口控件在安全客户机的运行期间通过虚拟机监控程序从用映像生成的安全客户机截获请求;由安全接口控件基于所述一个或多个控制符确定是否允许安全客户机获得对所述请求的响应;由安全接口控件基于确定允许安全客户机获得所述响应,在计算***内开始执行所述请求;以及由安全接口控件基于确定不允许安全客户机获得所述响应而忽略所述请求。
通过提供一种计算机程序产品克服了现有技术的缺点并提供了额外的优势,该计算机程序产品使所有者能够利用安全接口控件来管理安全客户机的功能。该计算机程序产品一种计算机可读存储介质,可由一个或多个处理器读取,并存储由所述一个或多个处理器执行的指令,所述指令用于执行一种方法。所述方法例如包括:由计算***中的所述一个或多个处理器获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据,其中,所述一个或多个处理器通信地耦合到虚拟机监控程序,其中,虚拟机监控程序管理一个或多个客户机,其中,元数据包括一个或多个控制符,其中,所述一个或多个控制符的每个控制符向所述一个或多个处理器指示是否允许用映像生成的安全客户机获得对特定请求的响应;由一个或多个处理器在安全客户机的运行期间通过虚拟机监控程序从用映像生成的安全客户机截获请求;由所述一个或多个处理器基于所述一个或多个控制符确定是否允许安全客户机获得对所述请求的响应;由所述一个或多个处理器基于确定允许安全客户机获得所述响应,在计算***内开始执行所述请求;以及由所述一个或多个处理器基于确定不允许安全客户机获得所述响应而忽略所述请求。
通过提供一种***克服了现有技术的缺点并提供了额外的优势,该***使所有者能够利用安全接口控件来管理安全客户机的功能。所述***包括存储器、与所述存储器通信的一个或多个处理器以及可由一个或多个处理器通过存储器执行的程序指令,所述程序指令用以执行一种方法,所述方法例如包括:通过计算***中的一个或多个处理器获得元数据,其中,一个或多个处理器通信地耦合到虚拟机监控程序,其中,虚拟机监控程序管理一个或多个客户机,元数据链接到安全客户机的映像,由所有者启动并由虚拟机监控程序管理,其中,元数据包括一个或多个控制符,其中一个或多个控制符的每个控制符向一个或多个处理器指示是否允许使用该映像生成的安全客户机获得对特定请求的响应;在安全客户机的运行期间,由一个或多个处理器通过虚拟机监控程序从使用该映像生成的安全客户机截获请求;由所述一个或多个处理器基于所述一个或多个控制符确定是否允许安全客户机获得对所述请求的响应;基于确定安全客户机被允许获得响应,由一个或多个处理器开始在计算***内实现请求;以及基于确定不允许安全客户机获得响应,由一个或多个处理器忽略该请求。
本文还描述并要求保护与一个或多个方面有关的方法和***。此外,还描述了可要求保护的与一个或多个方面有关的服务。
通过本文描述的技术实现了额外的特征。本文详细描述了其他实施例和方面,并将其视为所要求保护的方面的一部分。例如,在本发明的一些实施例中,允许安全客户机获得响应,并且该方法进一步包括:由安全接口控件和/或一个或多个处理器获得对请求的响应;以及通过所述安全接口控件和/或所述一个或多个处理器向所述安全客户机发送所述响应。
在本发明的一些实施例中,安全接口控件和/或所述一个或多个处理器获得元数据进一步包括:由安全接口控件和/或所述一个或多个处理器链接到安全客户机的映像的元数据的一部分,其中,元数据受完整性保护,并且,该部分是由用私钥导出的密钥加密的,包括安全客户机的引导映像的加密度量。
在本发明的一些实施例中,元数据的加密部分包括一个或多个控制符。
在本发明的一些实施例中,所述请求从包含以下的组中选择:对安全接口控件的输出用于导出页的包装密钥的请求;对安全接口控件的生成安全客户机的引导映像的更新版本的元数据的请求;允许安全接口控件使用元数据中提供的密钥加密数据并将加密的数据返回给安全客户机的请求。
在本发明的一些实施例中,对所述请求的响应从包含以下的组中选择:用于导出页面的包装密钥;用于安全客户机的引导映像的更新版本的元数据以及加密数据,其中,加密的数据是由安全接口控件和/或一个或多个处理器利用元数据中提供的密钥加密的。
在本发明的一些实施例中,私钥由安全接口控件和/或所述一个或多个处理器拥有,并仅由安全接口控件和/或所述一个或多个处理器使用。
在本发明的一些实施例中,用私钥导出的密钥在安全接口控件和/或所述一个或多个处理器与所有者之间共享。
在本发明的一些实施例中,元数据包括从利用抗冲突单向函数计算的安全客户机的引导映像导出的值。
在本发明的一些实施例中,所述一个或多个控制符各自包括各种特征的正指定或负指定,其中,正指定表示允许安全客户机获得对特定请求的响应,负指定表示不允许客户机获得对特定请求的响应。
在本发明的一些实施例中,元数据是安全客户机不可访问的。
在本发明的一些实施例中,确定是否允许安全客户机获得对请求的响应的安全接口控件和/或所述一个或多个处理器确定是否允许安全客户机获得对所述请求的响应进一步包括由安全接口控件和/或所述一个或多个处理器在所述一个或多个控制符中识别与所述请求相关的控制符;以及由安全接口控件和/或所述一个或多个处理器确定所述控制是否启用或限制安全客户机接收对所述请求的响应。
附图说明
在说明书的结尾处的权利要求中特别指出并明确要求保护作为示例的一个或多个方面。从以下结合附图的详细描述中,上述以及一个或多个方面的目的、特征和优点显而易见,其中:
图1是示出本发明的一些实施例的某些方面的工作流;
图2示出了本发明的一些实施例的各个方面;
图3是示出本发明的一些实施例的某些方面的工作流;
图4示出了可在云计算环境中使用的计算节点的一个实施例;
图5示出了根据本发明实施例的云计算环境;和
图6示出了根据本发明实施例的抽象模型层。
具体实施方式
附图进一步展示了本发明,并且与本发明的详细描述一起用于解释本发明的原理,在附图中,贯穿单独的视图,相同的参考号指代相同或功能相似的元件,并且这些附图被结合在本说明书中并且形成说明书的一部分。如本领域技术人员所理解的,提供附图是为了便于理解并且示出本发明的某些实施例的方面。本发明不限于附图中所描绘的实施例。
如本领域技术人员所理解的,贯穿本申请所提及的程序代码包括软件和硬件两者。例如,本发明的某些实施例中的程序代码包括固定功能硬件,而其他实施例利用所描述的功能的基于软件的实现方式。某些实施例组合两种类型的程序代码。也被称为一个或多个程序的程序代码的一个实例在图4中被描绘为具有一组(至少一个)程序模块42的程序/实用工具40,该程序/实用工具可以被存储在存储器28中。
术语“客户机***”或“客户机”可以表示例如在虚拟机监控程序上的虚拟机(VM)中执行的操作***。可以将用户分配给客户机***。可以将特定的加密密钥分配给客户机***。所述虚拟机监控程序可用于执行此类分配。客户机***例如可以是运行或执行客户机操作***的虚拟机,即VM。
术语“内容”可以表示任何基于字符的字符串。该字符串可以包括可读文本或任何其他二进制数据。
术语“数据模式”基本上可以是内容的另一个表达。数据模式可以表示可读字符串,或者可以包括二进制数据。在本文档的上下文中,对数据模式没有附加要求。它也可以是预定义的、随机选择的或以其他方式确定的。
术语“客户机加密单元”可表示适于在客户机***内或作为客户机***的一部分或作为客户机***使用的服务执行加密和/或解密操作的模块。
如上所述,安全客户机是可以由不(完全)可信的虚拟机监控程序托管的客户机。这样的客户机的映像在加载时将受到保护,并且,对分配给客户机的资源(例如,内存、CPU寄存器)的内容的保护将在客户机的整个生命周期内保持。客户机的保护至少包括完整性保护(例如,虚拟机监控程序不能恶意更改任何客户机状态),此外还可以包括维护客户机中运行的初始映像、代码和数据的机密性。
在本发明的实施例中,由于安全客户机必须受到完整性保护(并且安全客户机是安全的,而虚拟机监控程序则可能不是完全可信的),为了管理这样的安全客户机,计算机***的安全接口控件(例如,可信组件、可信固件)接管托管客户机所涉及的某些任务,并仅向虚拟机监控程序授予对安全客户机的有限访问权。具体而言,安全接口控件向虚拟机监控程序提供不涉及检查或修改安全客户机的客户机状态(和/或安全客户机的映像)的访问权。
在本发明的实施例中,当部署安全客户机时,所有者准备(安全客户机的)客户机映像以及一些安全客户机元数据。如本文将讨论的,客户机元数据可以包括验证客户机的完整性以及可能维护客户机的机密性所需的秘密(例如,加密密钥)。由于安全客户机元数据中的秘密仅为客户机所有者和安全接口控件所知,元数据的一部分(即,包含秘密的部分)被用私钥/公钥对进行加密,并用在安全接口控件和客户机所有者之间安全地协商的密钥以加密方式链接到客户机映像,私钥/公钥对中的私钥由安全接口控件安全地维护。
本发明的实施例包括计算机实现的方法、计算机程序产品、以及计算机***—其包括在至少一个处理电路和/或硬件上执行的程序代码,所述处理电路和/或硬件包括程序代码,所述程序代码使安全执行(SE)客户机的所有者能够指示硬件、固件或其组合形式的安全接口控件在SE客户机运行期间启用和/或禁用该所有者的给定SE客户机的各种操作。因此,通过利用安全接口控件,SE所有者可以逐个映像(即,逐个安全客户机)地启用或禁用每个客户机映像的各种功能。在本发明的实施例中,所有者通过以加密方式链接到安全客户机的引导映像的映像元数据来传递给定安全客户机的细节,安全接口控件则针对该给定安全客户机强制执行这些指定细节。在本发明的一些实施例中,与安全客户机相关联的元数据受到完整性保护(例如,至少一部分元数据的可能被加密)。元数据可以包含由程序代码从安全客户机的引导映像导出的值,其由程序代码利用抗冲突单向函数(例如,加密哈希函数)计算出。抗冲突函数为这些值提供了安全性,因为抗冲突函数的应用使得构建可导出其相同值的替代映像在计算上不可行。在本发明的一些实施例中,元数据包括各种特征的特定正和负指定。在本发明的一些实施例中,元数据包括安全客户机的安装数据(例如,安全执行(SE)报头)。
在本发明的实施例中,当安全接口控件评估是否为给定的安全客户机启用或禁用功能(例如,识别元数据中的正指标或负指标)时,安全接口控件读取元数据中每个功能的单独控制符。在本发明的实施例中,针对正在运行的安全客户机,安全接口控件获得(来自包括但不限于安全客户机的***组件的)每个请求,确定该请求是否是可允许的,如果是可允许的,将该请求发送给相关控件以供执行,如果是不可允许的,则忽略该请求。在本发明的实施例中,安全接口控件基于与安全客户机相关联的元数据中的值允许和/或忽略的请求,包括但不限于:1)对安全接口控件的输出用于导出页的包装密钥的请求(例如,支持由安全接口控件生成的密钥加密的虚拟机监控程序驱动的客户机转储,其由元数据中提供的密钥加密);2)对安全接口控件的生成安全客户机的引导映像的更新版本的元数据的请求;和/或3)允许安全接口控件使用元数据中提供的密钥加密数据并将加密的数据返回给安全客户机的请求。元数据支持对功能的细粒度控制,例如,关于第一项,通过元数据,SE客户机所有者可以决定是否允许安全接口控件导出用于加密导出的数据的密钥,即使仅使用安全接口控件和所有者共享的密钥进行加密。
图1是示出本发明的一些实施例的某些功能的工作流100。如图1所示,在本发明的实施例中,为了实现安全执行,安全客户机以加密方式链接到元数据,元数据基于仅可由安全接口控件访问的私有主机密钥安全地通信到安全接口控件(例如,可信硬件和/或软件组件、可信固件、ultravisor)。在本发明的实施例中,安全客户机的所有者控制安全接口控件行为,允许或禁止安全客户机的执行上的某些操作。与现有的安全客户机安全性方法相比,本发明的实施例的优点在于,由安全接口控件强制实施的元数据中的细粒度控制允许所有者限制操作或启用操作以解决特定的安全问题。例如,所有者可以控制安全接口控件是否可以导出用于加密导出的数据的密钥,即使数据仅使用安全接口控件和所有者共享的密钥加密。在本发明的一些实施例中,用在安全接口控件与所有者之间共享的私钥来导出密钥。在本发明的实施例中,在至少一个处理电路上执行和/或由硬件提供的程序代码约束安全客户机的执行。
参考图1,在本发明的一些实施例中,安全接口控件(例如,硬件、软件、固件、组合等)从安全客户机的所有者获得链接到要被启动的安全客户机的元数据(110)。在本发明的一些实施例中,元数据是受完整性保护的,并且以加密方式链接到将由(SE)所有者启动的安全客户机的引导映像。元数据包含控件,每个控制符表示对安全客户机的限制。在本发明的一个实施例中,安全接口控件从现在启动的安全客户机获得要求安全接口控件完成某活动的请求(120)。安全接口控件分析元数据,以基于元数据分析来确定是否允许所请求的活动(130)。如果安全接口控件基于元数据确定不允许该活动,则安全接口控件向安全客户机返回错误(135)。在本发明的一些实施例中,安全接口控件忽略该请求。根据安全接口控件的配置,对不允许的请求的响应可能会有所不同。如果安全接口控件基于元数据确定确定允许该活动,则安全接口控件执行和/或推进(例如,写入、读取、传输)所请求的活动(140)。因此,安全接口控件拒绝与元数据描述的限制冲突的请求。在安全客户机运行时,由安全接口控件来阻止和允许各种请求。
这里是安全客户机可以请求安全接口控件执行和/或推进的活动的非限制性的列表—安全接口控件可以基于元数据确定这些活动是否受到约束:1)安全客户机可以请求安全接口控件输出用于导出页的包装密钥(例如,为了支持由安全接口控件生成的密钥加密的虚拟机监控程序驱动的客户机转储,其由元数据中提供的密钥加密);2)安全客户机可以请求安全接口控件为安全客户机的引导映像的更新版本生成元数据;3)安全客户机可以请求安全接口控件用安全客户机元数据中提供的密钥加密数据,并返回加密的数据。
图2是包括本发明的一些实施例的各个方面的技术环境200。构成图2的技术环境200的组件例示了安全接口控件如何使客户机所有者能够通过对每个所有者唯一的加密来控制客户机映像的功能,以及安全接口控件如何在运行时启用/禁用给定的安全客户机的特定特征。为了安全执行,安全客户机210以加密方式链接到元数据240,元数据240基于仅可由安全接口控件230访问的私有主机密钥安全地通信到安全接口控件230(例如,可信固件、ultravisor、可信组件等)。安全客户机210的所有者基于所有者的偏好控制安全接口控件230,允许或禁止安全客户机210的执行上的某些操作。例如,由所有者通过安全接口控件230允许的功能可限于允许安全客户机210的所有者关心或不关心的攻击的操作。例如,所有者可以在以加密方式链接到安全客户机210的映像的元数据240中填充是否使安全客户机210能用用于加密元数据部分的密钥,即使元数据是仅使用安全客户机210与所有者共享的密钥加密的。在本发明的一些实施例中,使用在安全接口控件230与安全客户机210的所有者之间共享的私钥来导出密钥。安全接口控件230根据如在与安全客户机210相关联的元数据240中所记的所有者的偏好,在安全客户机210的运行时期间控制安全客户机210的操作。
在本发明的一些实施例中,安全客户机210(例如,虚拟机、虚拟服务器)由虚拟机监控程序230(例如,虚拟机管理器)控制。安全接口控件250通过虚拟机监控程序230从安全客户机210获得与安全客户机240相关联的元数据。该元数据240受完整性保护(并且,元数据230的一部分,即安全客户机的秘密250也受机密性保护(即被加密))。在本发明的一些实施例中,元数据240以加密方式链接到安全客户机240的引导映像。在本发明的一些实施例中,安全客户机的秘密250包含在安全客户机的安装数据(例如,安全执行(SE)报头)中。在本发明的一些实施例中,元数据240包含从安全客户机210的引导映像导出的值,这些值是利用抗冲突单向函数(例如,加密散列函数)计算的,使得构造可导出其相同值的替代映像在计算上是不可行的。
如图2所示,链接到安全客户机240的元数据包括秘密250。在本发明的一些实施例中,客户机的元数据受到完整性保护,并且通过使用安全接口控件230所拥有的私钥导出的密钥对秘密进行加密。导出的密钥可以保护给定客户机的引导映像的加密度量(cryptographic measure)。在本发明的一些实施例中,元数据240中包含秘密250的部分由只有安全接口控件230能计算出的密钥来加密。元数据240无需是安全客户机210自身可访问的。
元数据240链接到安全客户机210的映像,秘密250以加密方式链接到安全客户机的映像,但它不是客户机的一部分。相反,如本文所述,它被独立地传输到安全接口控件(例如,固件、可信组件、软件、硬件等)(例如,图1、110)。在本发明的实施例中,秘密250作为客户机元数据的一部分通过安全通道(即,加密的)被传输,并以加密方式链接到客户机。在本发明的一些实施例中,元数据240以加密方式链接到客户机(例如,含有客户机映像的签名),因此一个客户机的元数据不可能被误用为另一个客户机的元数据。因此,可信组件可以验证客户机和元数据/机密是否是属于一起的。传输(例如,独立地,通过安全信道)到安全接口控件230的元数据240受完整性和机密性保护。
除了包括秘密250之外,元数据240进一步包括控制符260,安全接口控件230利用该控制符来启用和禁止各种功能。安全客户机210与技术环境200的各种元素之间的交互,是由安全接口控件230基于将元数据240中的控制符260与***设置270进行比较而确定的。安全接口控件230拒绝来自安全客户机210的与元数据240(例如,控制符260)描述的限制相冲突的请求。在本发明的一些实施例中,元数据240包含表示安全接口控件230的能力的控制符260,如果控制符为正(positive),则可以启用该能力;如果控制符为负(negative),则可以禁用该能力。
在本发明的一些实施例中,安全接口控件230通过读取每个控件的控制符260来评估安全客户机210的元数据240。当运行安全客户机210时,安全接口控件230可以检查来自技术环境200(包括来自安全客户机210)的各种组件的每个请求,以确定是否允许执行该请求。如果允许,则运行的安全客户机210将采取针对该请求的控件的操作(写入、读取、传输等),以完成该请求。如果安全接口控件230确定该请求是不允许的,则安全接口控件230可以忽略或以其他方式拒绝该请求。因此,安全接口控件230可以基于安全客户机210的元数据240控制来自安全客户机210和影响安全客户机210的请求。
图3是示出本发明的一些实施例的各个方面的工作流300。在本发明的实施例中,计算***中的安全接口控件获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据,其中,安全接口控件通信地耦合到虚拟机监控程序,其中,虚拟机监控程序管理一个或多个客户机,其中,元数据包括一个或多个控制符,其中,所述一个或多个控制符的每个控制符向安全接口控件指示是否允许用映像生成的安全客户机获得对特定请求的响应(310)。元数据本身可能是安全客户机不可访问的。作为获得元数据的一部分,在本发明的一些实施例中,安全接口控件解密链接到安全客户机的映像的元数据的一部分。元数据受完整性保护,并且,在本发明的一些实施例中,该部分是由用私钥导出的密钥加密的,加密的部分包括安全客户机的引导映像的加密度量。私钥可以由安全接口控件拥有,并且只能由安全接口控件使用。用私钥导出的密钥(例如,仅)可以在安全接口控件与所有者之间共享。在本发明的一些实施例中,元数据包括利用抗冲突单向函数计算的、从安全客户机的引导映像导出的值。
如图2所示,一个或多个控制符(如图2、260)是元数据(如图2、240)的一部分。在本发明的一些实施例中,该一个或多个控制符包含在元数据的加密的部分中。安全接口控件可以解密元数据的该部分,该部分链接到安全客户机的引导映像,其中,元数据受完整性保护,并且,该部分是由用私钥导出的密钥加密的,包括安全客户机的引导映像的加密度量。控制符可以包括各种功能的正指定或负指定,正指定表示允许安全客户机获得对特定请求的响应,负指定表示不允许客户机获得对特定请求的响应。
回到图3,安全接口控件在安全客户机的运行期间通过虚拟机监控程序从用映像生成的安全客户机截获请求(320)。由本发明的一些实施例的方面处理的请求的一些非限制性示例包括:对安全接口控件的输出用于导出页的包装密钥的请求;对安全接口控件的生成安全客户机的引导映像的更新版本的元数据的请求;允许安全接口控件使用元数据中提供的密钥加密数据并将加密的数据返回给安全客户机的请求。在本发明的实施例中,安全接口控件向所请求的安全客户机提供的对请求的响应的一些非限制性示例包括:用于导出页面的包装密钥;用于安全客户机的引导映像的更新版本的元数据以及加密数据,其中,加密的数据是由安全接口控件利用元数据中提供的密钥加密的。
参考图3,安全接口控件基于一个或多个控制符来确定是否允许安全客户机获得对请求的响应(330)。为了确定是否允许安全客户机获得对请求的响应,在本发明的一些实施例中,安全接口控件在一个或多个控制符中识别与请求相关的控制符(334)。安全接口控件确定该控制符是否启用或限制由安全客户机接收对请求的响应(336)。
基于确定允许安全客户机获得响应,安全接口控件在计算***内开始执行请求(340)。基于确定不允许安全客户机获得响应,安全接口控件忽略请求(345)。
在本发明的一些实施例中,安全接口控件确定允许安全客户机获得响应的,安全接口控件获得对请求的响应(350)。安全接口控件将响应发送给安全客户机(360)。
本发明的实施例包括计算机实现的方法、计算机程序产品和计算机***,其中,计算***中的安全接口控件—其可以是固件、硬件和软件中的任何一个或其组合—获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据。虚拟机监控程序管理一个或多个客户机,元数据包含一个或多个控制符。所述一个或多个控制符的每个指示符向安全接口控件指示是否允许用映像生成的安全客户机获得对特定请求的响应。安全接口控件在安全客户机的运行期间通过虚拟机监控程序从用映像生成的安全客户机截获请求。安全接口控件基于所述一个或多个控制符确定是否允许安全客户机获得对所述请求的响应。安全接口控件基于确定允许安全客户机获得所述响应,在计算***内开始执行所述请求。安全接口控件基于确定不允许安全客户机获得所述响应而忽略所述请求。
在本发明的一些实施例中,在允许安全客户机获得响应的情况下,安全接口控件获得对请求的响应,并将响应发送给安全客户机。
在本发明的一些实施例中,安全接口控件获得元数据进一步包括:安全接口控件解密链接到安全客户机的映像的元数据的一部分,其中,元数据受完整性保护,并且,该部分是由用私钥导出的密钥加密的,包括安全客户机的引导映像的加密度量。在本发明的一些实施例中,元数据的加密部分包括一个或多个控制符。
在本发明的一些实施例中,所述请求从包含以下的组中选择:对安全接口控件的输出用于导出页的包装密钥的请求;对安全接口控件的生成安全客户机的引导映像的更新版本的元数据的请求;允许安全接口控件使用元数据中提供的密钥加密数据并将加密的数据返回给安全客户机的请求。
在本发明的一些实施例中,对所述请求的响应从包含以下的组中选择:用于导出页面的包装密钥;用于安全客户机的引导映像的更新版本的元数据以及加密数据,其中,加密的数据是由安全接口控件利用元数据中提供的密钥加密的。
在本发明的一些实施例中,私钥由安全接口控件拥有,并由安全接口控件专用。
在本发明的一些实施例中,用私钥导出的密钥在安全接口控件与所有者之间共享。
在本发明的一些实施例中,元数据包括利用抗冲突单向函数计算的从安全客户机的引导映像导出的值。
在本发明的一些实施例中,所述一个或多个控制符各自包括用于各种特征的正指定或负指定,其中,正指定表示允许安全客户机获得对特定请求的响应,负指定表示不允许客户机获得对特定请求的响应。
在本发明的一些实施例中,元数据是安全客户机不可访问的。
在本发明的一些实施例中,确定是否允许安全客户机获得对请求的响应的安全接口控件进一步包括:安全接口控件在所述一个或多个控制符中识别与所述请求相关的控制符。安全接口控件确定该控制符是否启用或限制安全客户机接收对所述请求的响应。
现在参考图4,计算节点的示例的示意图,计算节点可以是云计算节点10。云计算节点10只是合适的云计算节点的一个示例,并不是要对本文描述的本发明实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够实现和/或执行上文所述的任何功能。在本发明的一个实施例中,安全客户机210(图2)、安全接口控件230(图2)和/或虚拟机监控程序220(图2)都可以理解为在云计算节点10(图4)上执行,如果不是在云计算节点10上执行,则是在包括云计算节点10的各方面的一个或多个通用计算节点上执行。
在云计算节点10中有一个计算机***/服务器12,其可与许多其他通用或专用计算***环境或配置一起运行。可能适合与计算机***/服务器12一起使用的已知计算***、环境和/或配置的示例包括但不限于个人计算机***、服务器计算机***、瘦客户端、厚客户端、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机***、大型计算机***以及包括上述任何***或设备的分布式云计算环境,等等。
计算机***/服务器12可在计算机***正在执行的计算机***可执行指令(例如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机***/服务器12可在分布式云计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机***存储介质中。
如图4所示,可以用作云计算节点10的计算机***/服务器12以通用计算设备的形式示出。计算机***/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、***存储器28和将包括***存储器28的各种***组件耦合到处理器16的总线18。
总线18代表几种总线结构中的一种或多种,包括内存总线或内存控制器、***总线、加速图形端口以及使用各种总线结构中的任何一种的处理器或本地总线。作为示例而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和***组件互连(PCI)总线。
计算机***/服务器12通常包括各种计算机***可读介质。这种介质可以是计算机***/服务器12可访问的任何可用介质,包括易失性和非易失性介质、可移动和不可移动介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存32。计算机***/服务器12还可以包括其他可移动/不可移动、易失性/非易失性计算机***存储介质。仅作为示例,可以提供存储***34用于读取和写入不可移动、非易失性磁介质(未示出,通常称为“硬盘驱动器”)。尽管未示出,但可以提供用于读取和写入可移动非易失性磁盘(例如,“软盘”)的磁盘驱动器以及用于读取或写入可移动非易失性光盘(例如CD-ROM、DVD-ROM或其他光学介质)的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据媒体接口连接到总线18。如下文将进一步描述和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置用于执行本发明实施例的功能。
具有一组(至少一个)程序模块42的程序/实用程序40可作为示例而非限制存储在存储器28中,操作***、一个或多个应用程序、其他程序模块和程序数据中也是如此。操作***、一个或多个应用程序、其他程序模块和程序数据或其某些组合中的每一个可以包括联网环境的实现。程序模块42通常执行如本文所述的本发明实施例的功能和/或方法。
计算机***/服务器12还可以与诸如键盘、指针设备、显示器24等的一个或多个外部设备14通信;与使用户能够与计算机***/服务器12交互的一个或多个设备通信;和/或与使计算机***/服务器12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口22发生。计算机***/服务器12还可以通过网络适配器20与例如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)的一个或多个网络通信,。如图所示,网络适配器20通过总线18与计算机***/服务器12的其他组件通信。应理解,尽管未示出,但其他硬件和/或软件组件也可与计算机***/服务器12结合使用。示例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID***、磁带机和数据存档存储***等。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供商的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务提供商进行人工交互。
广泛的网络接入:通过网络提供功能,并通过标准机制进行访问,所述标准机制促进由异构的瘦客户端或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。资源池化:提供者的计算资源被汇集起来以使用多租户模型来服务于多个消费者,不同的物理和虚拟资源根据需要被动态分配和重新分配。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制权或知识,但可能能够指定更高抽象层级的位置(例如,国家、州或数据中心)。快速弹性:可以快速且弹性地配置功能,在某些情况下自动地快速扩展,迅速释放以快速收缩。对于消费者而言,可用于配置的功能通常看起来是无限的,可以在任何时间以任何数量购买。
度量的服务:云***通过利用与服务类型(例如,存储、处理、带宽和活动用户帐户)相适应的某种抽象级别的计量功能来自动控制和优化资源使用。可以监视、控制和报告资源使用情况,为所使用服务的提供者和使用者提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的功能是使用在云基础设施上运行的提供者的应用。这些应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作***、存储或甚至个体应用功能的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。
平台即服务(PaaS):向消费者提供的功能是在云基础结构上部署消费者创建或获取的应用,所述应用是用提供者所支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
基础设施即服务(IaaS):向消费者提供的功能是提供消费者能够部署和运行可包括操作***和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础结构,而是具有对操作***、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
部署模型如下:
私有云:云基础结构仅为组织运营。它可以由组织或第三方管理,并且可存在于场所内或场所外。
社区云:云基础结构由多个组织共享,并支持具有共同关注点(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可存在于场所内或场所外。
公共云:云基础结构可供公众或大型行业团体使用,并由销售云服务的组织拥有。
混合云:云基础结构是由两个或更多个云(私有、社区或公共的)组成的,这些云仍然是唯一性实体,但通过标准化或专有技术来绑定在一起,这些技术实现数据和应用的可移植性(例如,用于云之间的负载平衡的云突发)。
云计算环境是面向服务的,着重于无状态性、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础架构。
现在参见图5,描绘说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N)可与云计算节点10通信。节点10可以彼此通信。它们可以在一个或多个网络中,诸如在上文所述的私有云、社区云、公共云或混合云或其组合中,被物理地或虚拟地分组(未示出)。这允许云计算环境50提供基础结构、平台和/或软件作为服务,云消费者不需要为其在本地计算设备上维护资源。应当理解,图5中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备进行通信。
现在参见图6,示出了由云计算环境50(图5)提供的一组功能抽象层。应预先理解,图6中所示的部件、层和功能旨在仅是说明性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供以下虚拟实体的示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作***74;以及虚拟客户端75。
在一个示例中,管理层80可提供下文所描述的功能。资源供应81提供用于执行云计算环境内的任务的计算资源和其他资源的动态获取。计量和定价82在云计算环境内利用资源时提供成本跟踪,并针对这些资源的消费进行计费或开票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户83为消费者和***管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)计划和履行85为根据SLA预期的云计算资源的未来要求提供云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟教室教育交付93;数据分析处理94;事务处理95;以及在运行期间通过安全接口控件控制安全客户机的功能96。
本发明可以是任何可能的集成技术细节水平的***、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或介质),所述计算机可读程序指令用于致使处理器执行本发明的各方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片或具有记录在其上的指令的凹槽中的凸起结构),以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令并且转发这些计算机可读程序指令以便存储在对应的计算/处理设备内的计算机可读存储介质中。
用于执行本技术方案的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,集成电路的配置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过使用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的各方面。
在此参照根据技术方案的实施例的方法、装置(***)和计算机程序产品的流程图和/或框图来描述本技术方案的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中指定的功能和动作。
附图中的流程图和框图示出了根据本技术方案的不同实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的***来实现,所述基于专用硬件的***执行指定的功能或动作或执行专用硬件与计算机指令的组合。
在此使用的术语仅用于描述具体实施例的目的并且不旨在是限制性的。如在此使用的,单数形式“一个”、“一种”和“该”旨在也包括复数形式,除非上下文另外清楚地指示。将进一步理解的是,当在本说明书中使用术语“包括”和/或“包含”时,其指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。
以下权利要求中的所有装置或步骤加功能元件(如有)的相应结构、材料、动作和等效物旨在包括用于与具体权利要求的其他权利要求元件组合执行功能的任何结构、材料或动作。出于说明和描述的目的已经给出了对一个或多个实施例的描述,但是并不旨在是详尽的或限于所公开的形式。许多修改和变化对本领域的普通技术人员将是明显的。实施例的选择和描述方式是为了最好地解释各个方面和实际应用,使得本领域普通技术人员能够理解具有适合于所预期的特定用途的不同修改的不同实施例。

Claims (20)

1.一种计算机实现的方法,包括:
由计算***中的安全接口控件获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据,其中,安全接口控件通信地耦合到虚拟机监控程序,其中,虚拟机监控程序管理一个或多个客户机,其中,元数据包括一个或多个控制符,其中,所述一个或多个控制符的每个控制符向安全接口控件指示是否允许用映像生成的安全客户机获得对特定请求的响应;
由安全接口控件在安全客户机的运行期间通过虚拟机监控程序从用映像生成的安全客户机截获请求;
由安全接口控件基于所述一个或多个控制符确定是否允许安全客户机获得对所述请求的响应;
由安全接口控件基于确定允许安全客户机获得所述响应,在计算***内开始执行所述请求;和
由安全接口控件基于确定不允许安全客户机获得所述响应而忽略所述请求。
2.根据权利要求1所述的计算机实现的方法,其中,允许安全客户机获得所述响应,所述方法进一步包括:
由安全接口控件获得对所述请求的响应;和
由安全接口控件向安全客户机发送所述响应。
3.根据权利要求1或2所述的计算机实现的方法,其中,获得元数据进一步包括:
由安全接口控件解密链接到安全客户机的映像的元数据的一部分,其中,元数据受完整性保护,并且,该部分是由用私钥导出的密钥加密的,包括安全客户机的引导映像的加密度量。
4.根据权利要求3所述的计算机实现的方法,其中,元数据的加密部分包括一个或多个控制符。
5.根据权利要求3或4所述的计算机实现方法,其中,所述请求从包含以下的组中选择:对安全接口控件的输出用于导出页的包装密钥的请求;对安全接口控件的生成安全客户机的引导映像的更新版本的元数据的请求;允许安全接口控件使用元数据中提供的密钥加密数据并将加密的数据返回给安全客户机的请求。
6.根据权利要求3至5其中之一所述的计算机实现的方法,其中,对所述请求的响应从包含以下的组中选择:用于导出页面的包装密钥;用于安全客户机的引导映像的更新版本的元数据以及加密数据,其中,加密的数据是由安全接口控件利用元数据中提供的密钥加密的。
7.根据权利要求3至6其中之一所述的计算机实现的方法,其中,私钥由安全接口控件拥有,并且仅由安全接口控件使用。
8.根据权利要求7所述的计算机实现的方法,其中,用私钥导出的密钥在安全接口控件与所有者之间共享。
9.根据权利要求1至8其中之一所述的计算机实现的方法,其中,元数据包括利用抗冲突单向函数计算的从安全客户机的引导映像导出的值。
10.根据权利要求1至9其中之一所述的计算机实现的方法,其中,所述一个或多个控制符各自包括用于各种特征的正指定或负指定,其中,正指定表示允许安全客户机获得对特定请求的响应,负指定表示不允许客户机获得对特定请求的响应。
11.根据权利要求1至10其中之一所述的计算机实现的方法,其中,元数据是安全客户机不可访问的。
12.根据权利要求1至11其中之一所述的计算机实现的方法,其中,确定是否允许安全客户机获得对所述请求的响应进一步包括:
由安全接口控件在所述一个或多个控制符中识别与所述请求相关的控制符;和
由安全接口控件确定该控制符是否启用或限制安全客户机接收对所述请求的响应。
13.一种计算机程序产品,包括:
一种计算机可读存储介质,可由一个或多个处理器读取,并存储由所述一个或多个处理器执行的指令,所述指令用于执行一种方法,该方法包括:
由计算***中的所述一个或多个处理器获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据,其中,所述一个或多个处理器通信地耦合到虚拟机监控程序,其中,虚拟机监控程序管理一个或多个客户机,其中,元数据包括一个或多个控制符,其中,所述一个或多个控制符的每个控制符向所述一个或多个处理器指示是否允许用映像生成的安全客户机获得对特定请求的响应;
由一个或多个处理器在安全客户机的运行期间通过虚拟机监控程序从用映像生成的安全客户机截获请求;
由所述一个或多个处理器基于所述一个或多个控制符确定是否允许安全客户机获得对所述请求的响应;
由所述一个或多个处理器基于确定允许安全客户机获得所述响应,在计算***内开始执行所述请求;和
由所述一个或多个处理器基于确定不允许安全客户机获得所述响应而忽略所述请求。
14.根据权利要求13所述的计算机程序产品,其中,允许安全客户机获得所述响应,所述方法进一步包括:
由所述一个或多个处理器获得对所述请求的响应;和
由所述一个或多个处理器向安全客户机发送所述响应。
15.根据权利要求13或14所述的计算机程序产品,其中,获得元数据进一步包括:
由所述一个或多个处理器解密链接到安全客户机的映像的元数据的一部分,其中,元数据受完整性保护,并且,该部分是由用私钥导出的密钥加密的,包括安全客户机的引导映像的加密度量。
16.根据权利要求13至15其中之一所述的计算机程序产品,其中,所述请求从包含以下的组中选择:对安全接口控件的输出用于导出页的包装密钥的请求;对安全接口控件的生成安全客户机的引导映像的更新版本的元数据的请求;允许安全接口控件使用元数据中提供的密钥加密数据并将加密的数据返回给安全客户机的请求。
17.根据权利要求13至16其中之一所述的计算机程序产品,其中,对所述请求的响应从包含以下的组中选择:用于导出页面的包装密钥;用于安全客户机的引导映像的更新版本的元数据以及加密数据,其中,加密的数据是由安全接口控件利用元数据中提供的密钥加密的。
18.根据权利要求13至17其中之一所述的计算机程序产品,其中,私钥由安全接口控件拥有,并且仅由安全接口控件使用。
19.根据权利要求13至18其中之一所述的计算机程序产品,其中,用私钥导出的密钥在安全接口控件与所有者之间共享。
20.一种***,包括:
存储器;
与存储器通信的一个或多个处理器;
可由一个或多个处理器通过存储器执行的程序指令,用以执行一种方法,所述方法包括:
由计算***中的所述一个或多个处理器获得链接到将由所有者启动并由虚拟机监控程序管理的安全客户机的映像的元数据,其中,所述一个或多个处理器通信地耦合到虚拟机监控程序,其中,虚拟机监控程序管理一个或多个客户机,其中,元数据包括一个或多个控制符,其中,所述一个或多个控制符的每个控制符向所述一个或多个处理器指示是否允许用映像生成的安全客户机获得对特定请求的响应;
由一个或多个处理器在安全客户机的运行期间通过虚拟机监控程序从用映像生成的安全客户机截获请求;
由所述一个或多个处理器基于所述一个或多个控制符确定是否允许安全客户机获得对所述请求的响应;
由所述一个或多个处理器基于确定允许安全客户机获得所述响应,在计算***内开始执行所述请求;和
由所述一个或多个处理器基于确定不允许安全客户机获得所述响应而忽略所述请求。
CN202080019284.2A 2019-03-08 2020-02-27 用于安全接口控件的安全执行客户机所有者控制 Pending CN113544674A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/296,478 2019-03-08
US16/296,478 US11354421B2 (en) 2019-03-08 2019-03-08 Secure execution guest owner controls for secure interface control
PCT/EP2020/055098 WO2020182477A1 (en) 2019-03-08 2020-02-27 Secure execution guest owner controls for secure interface control

Publications (1)

Publication Number Publication Date
CN113544674A true CN113544674A (zh) 2021-10-22

Family

ID=69714045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080019284.2A Pending CN113544674A (zh) 2019-03-08 2020-02-27 用于安全接口控件的安全执行客户机所有者控制

Country Status (10)

Country Link
US (1) US11354421B2 (zh)
EP (1) EP3935536B1 (zh)
JP (1) JP7445358B2 (zh)
CN (1) CN113544674A (zh)
AU (1) AU2020233906B2 (zh)
BR (1) BR112021017440A2 (zh)
CA (1) CA3132759A1 (zh)
IL (1) IL284922B2 (zh)
TW (1) TWI786373B (zh)
WO (1) WO2020182477A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354421B2 (en) 2019-03-08 2022-06-07 International Business Machines Corporation Secure execution guest owner controls for secure interface control
CN113139175A (zh) 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法
US20230040577A1 (en) * 2021-08-05 2023-02-09 International Business Machines Corporation Secure guest image and metadata update
US11947687B2 (en) 2021-09-27 2024-04-02 International Business Machines Corporation Trusted system upgrade and secrets transfer in a secure computing environment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4353552B2 (ja) * 1998-06-18 2009-10-28 富士通株式会社 コンテンツサーバ,端末装置及びコンテンツ送信システム
US7424543B2 (en) 1999-09-08 2008-09-09 Rice Iii James L System and method of permissive data flow and application transfer
WO2012003486A1 (en) 2010-07-01 2012-01-05 Neodana, Inc. A system and method for virtualization and cloud security
US20120054486A1 (en) 2010-08-31 2012-03-01 MindTree Limited Securing A Virtual Environment And Virtual Machines
US9525752B2 (en) 2010-10-22 2016-12-20 Litl Llc Method and apparatus for providing contextual services
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
US8863109B2 (en) 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
GB2515536A (en) 2013-06-27 2014-12-31 Ibm Processing a guest event in a hypervisor-controlled system
US9418229B2 (en) 2013-10-28 2016-08-16 Disney Enterprises, Inc. Firmware security
US9519498B2 (en) * 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9652276B2 (en) 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
US9858140B2 (en) 2014-11-03 2018-01-02 Intel Corporation Memory corruption detection
GB2532415A (en) * 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
US10230528B2 (en) 2015-05-04 2019-03-12 Intel Corporation Tree-less integrity and replay memory protection for trusted execution environment
GB201603469D0 (en) 2016-02-29 2016-04-13 Ibm Securely removing system capabilities from a logical partition
US10218696B2 (en) 2016-06-30 2019-02-26 Microsoft Technology Licensing, Llc Targeted secure software deployment
US10237245B2 (en) 2016-07-15 2019-03-19 International Business Machines Corporation Restricting guest instances in a shared environment
US10691803B2 (en) 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US11354421B2 (en) 2019-03-08 2022-06-07 International Business Machines Corporation Secure execution guest owner controls for secure interface control

Also Published As

Publication number Publication date
EP3935536A1 (en) 2022-01-12
TWI786373B (zh) 2022-12-11
TW202101266A (zh) 2021-01-01
WO2020182477A1 (en) 2020-09-17
EP3935536B1 (en) 2023-08-16
BR112021017440A2 (pt) 2021-11-16
US11354421B2 (en) 2022-06-07
IL284922B2 (en) 2024-03-01
AU2020233906A1 (en) 2021-06-10
US20220222357A1 (en) 2022-07-14
US20200285759A1 (en) 2020-09-10
CA3132759A1 (en) 2020-09-17
JP7445358B2 (ja) 2024-03-07
AU2020233906B2 (en) 2023-01-19
IL284922B1 (en) 2023-11-01
IL284922A (en) 2021-09-30
EP3935536C0 (en) 2023-08-16
JP2022523770A (ja) 2022-04-26

Similar Documents

Publication Publication Date Title
AU2020234675B2 (en) Binding secure keys of secure guests to a hardware security module
JP7397557B2 (ja) セキュア実行ゲスト所有者環境制御
US11533174B2 (en) Binding secure objects of a security module to a secure guest
EP3935536B1 (en) Secure execution guest owner controls for secure interface control
US11366894B1 (en) Secure computing resource deployment using homomorphic encryption
US11150926B2 (en) Native code generation for cloud services
US12050700B2 (en) Secure execution guest owner controls for secure interface control
US11907405B2 (en) Secure data storage device access control and sharing

Legal Events

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

Ref country code: HK

Ref legal event code: DE

Ref document number: 40057234

Country of ref document: HK