CN117795509A - 安全客机映像和元数据更新 - Google Patents

安全客机映像和元数据更新 Download PDF

Info

Publication number
CN117795509A
CN117795509A CN202280054017.8A CN202280054017A CN117795509A CN 117795509 A CN117795509 A CN 117795509A CN 202280054017 A CN202280054017 A CN 202280054017A CN 117795509 A CN117795509 A CN 117795509A
Authority
CN
China
Prior art keywords
image
updated
secure guest
execution environment
trusted execution
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
CN202280054017.8A
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 CN117795509A publication Critical patent/CN117795509A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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/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/54Monitoring 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 adding security routines or objects to programs
    • 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
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • 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/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/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • 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/45575Starting, stopping, suspending or resuming 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/033Test or assess software
    • 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)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Debugging And Monitoring (AREA)

Abstract

安全客机生成针对安全客机的更新的映像,并且计算针对更新的映像的一个或多个测量。安全客机将一个或多个测量提供给可信执行环境,并从可信执行环境获得针对更新的映像的元数据。该元数据是基于安全客机的元数据和获得一个或多个测量而生成的。

Description

安全客机映像和元数据更新
技术领域
一个或多个方面一般涉及促进计算环境内的处理,尤其涉及改进这样的处理。
背景技术
计算环境可以支持虚拟化,其中计算环境的管理程序或虚拟机管理器托管各种客机(guest),诸如计算环境的虚拟机或虚拟服务器。虚拟机可以访问系统资源,并且可以执行操作系统,诸如客机操作系统。不同的客机可以由不同的所有者拥有,并且在这些客机中,一些客机可以是安全客机。
传统的管理程序具有对所托管的客机的完全控制。特别地,管理程序具有检查甚至修改所托管的客机的存储器的能力。然而,安全客机是可由不完全可信的管理程序托管的客机。这种安全客机的映像在被加载时将受到保护,并且在客机的整个生命周期内将保持对分配给客机的资源(例如,存储器、CPU寄存器)的内容的保护。客机的保护至少包括完整性保护(例如,管理程序不能恶意地改变任何客机状态),并且另外可以包括维护在安全客机中运行的初始映像、代码和数据的机密性。
将促进与安全客机相关联的处理,包括安全客机的映像和/或元数据。
发明内容
通过提供一种用于促进计算环境内的处理的计算机程序产品,克服了现有技术的缺点,并且提供了附加的优点。该计算机程序产品包括一个或多个计算机可读存储介质和共同存储在该一个或多个计算机可读存储介质上以执行方法的程序指令。该方法包括由安全客机生成用于安全客机的更新的映像,以及计算用于更新的映像的一个或多个测量。安全客机将一个或多个测量提供给可信执行环境,并从可信执行环境获得更新的映像的元数据。该元数据是基于安全客机的元数据和获得一个或多个测量而生成的。通过生成更新的安全客机映像并获得与其相关联的运行的安全客机的元数据,可以对安全客机进行改变(例如,应用安全修复、更新配置等),其在下一次引导时对于安全客机可用,从而提供灵活性和/或增强。
在一个示例中,安全客机获得指示要生成更新的映像的映像更新请求结构。向可信执行环境提供映像更新请求结构,并且基于映像更新请求结构从可信执行环境获得请求句柄。请求句柄将被用于生成更新的映像。
在一个示例中,生成更新的映像包括使用请求句柄来从可信执行环境请求加密密钥,构造安全客机的更新的明文映像,以及使用加密密钥来加密更新的明文映像以获得加密的映像。加密的映像是该更新的映像。
作为示例,计算一个或多个测量包括基于加密的映像来更新该更新的明文映像的一个或多个初始测量,以获得被提供给可信执行环境的一个或多个测量。例如,利用请求句柄来提供一个或多个测量。
在一个示例中,加密密钥是从可信执行环境获得的受保护密钥。例如,受保护密钥将由调用可信执行环境的安全客机的实例独占地使用,并且加密密钥的明文值对于安全客机是未知的。使用受保护密钥为数据和处理提供了安全性。
作为示例,更新的明文映像包括多个存储器页,并且对更新的明文映像进行加密包括使用受保护密钥对多个存储器页进行加密。
在一个示例中,获得更新的映像的元数据是基于调用可信执行环境处的功能来创建更新的映像的元数据,并且该调用提供请求句柄和一个或多个测量作为自变量。作为示例,自变量还包括更新的映像的其它元数据。
作为示例,映像更新请求结构是受完整性保护的,包括加密部分,并且可由可信执行环境独占地解释。该保护确保在从安全客机到可信执行环境的传输期间不能修改请求结构,确保请求结构的加密部分中的数据在传输期间保持机密,并且确保加密数据的明文值仅可由可信执行环境访问。
在一个示例中,映像更新请求结构的加密部分包括从发布映像更新请求的安全客机的元数据的加密部分中的机密数据导出的数据。使用来自映像更新请求结构的该数据,可信执行环境可以验证请求结构的创建者具有被假定为安全客机映像的所有者所独占的知识。
此外,在一个示例中,基于向可信执行环境提供映像更新请求结构,从可信执行环境获得对映像更新请求结构的质询。该质询例如基于从映像更新请求结构的加密部分获得的机密数据。安全客机从选择实体获得对质询的响应,并向可信执行环境提供对质询的响应。基于提供对质询的响应,从可信执行环境获得质询是否成功的指示。基于该质询成功,继续生成更新的映像。该质询保护映像更新请求结构免受脆弱性。
在一个示例中,映像更新请求结构包括指定对要用于计算更新的映像的元数据的先前安全客机元数据的一个或多个改变的一个或多个指示和数据。
作为示例,安全客机的更新的映像和更新的映像的元数据被存储到引导设备。这使得更新的映像和元数据在引导过程期间可用。
本文还描述并要求保护与一个或多个方面相关的计算机实现的方法和系统。此外,本文还描述并要求保护与一个或多个方面相关的服务。
通过本文所述的技术实现了额外的特征和优点。其它实施例和方面在本文中详细描述,且被视为所主张的方面的一部分。
附图说明
在说明书结尾处的权利要求中作为示例特别指出并清楚地要求了一个或多个方面。从结合附图的以下详细描述中,一个或多个方面的前述和对象、特征和优点将变得显而易见,在附图中:
图1描绘了结合和使用本发明的一个或多个方面的计算环境的一个示例;
图2描绘了根据本发明的一个或多个方面的用于启动安全客机的安全客机映像和安全客机元数据的一个示例;
图3描绘了与根据本发明的一个或多个方面使用的映像更新请求结构相关的描述的一个示例;
图4描绘了根据本发明的一个或多个方面的生成安全客机的更新的映像和相关联的元数据的一个示例;
图5A-5B描绘了根据本发明的一个或多个方面的生成更新的安全客机映像和更新的安全客机元数据的生成过程的一个示例;
图6A-6C描绘了根据本发明的一个或多个方面的促进计算环境内的处理的一个示例;
图7A描绘了用于结合和使用本发明的一个或多个方面的计算环境的另一示例;
图7B描绘了根据本发明的一个或多个方面的图7A的存储器的进一步细节;
图8描绘了根据本发明的一个或多个方面的云计算环境的一个实施例;以及
图9描绘了根据本发明的一个或多个方面的抽象模型层的一个示例。
具体实施方式
根据本发明的一个或多个方面,提供了一种用于促进在计算环境中的处理的能力。作为示例,该能力包括使安全客机能够创建针对安全客机的更新的映像以及针对更新的安全客机映像的更新的元数据。这在例如应用影响安全客机映像的安全修复时、在利用属于定制的安全客机映像的新所有者的机密数据来定制通用安全客机映像时和/或出于其它原因可能是有用的。如在此所使用的,更新的映像或更新的元数据是指更新的映像或新的映像或元数据。为了方便起见使用术语“更新”。
参考图1描述了用于结合和使用本发明的一个或多个方面的计算环境的一个实施例。作为示例,计算环境基于由纽约,阿蒙克,国际商业机器公司提供的指令集架构。在“z/Architecture Principles of Operation”,IBM出版号SA22-7832-12,第十三版,2019年九月中描述了z/Architecture指令集架构的一个实施例,该出版物通过引用整体并入本文。然而,z/Architecture指令集架构仅是一个示例架构;国际商业机器公司和/或其他实体的其他架构和/或其他类型的计算环境可以包括和/或使用本发明的一个或多个方面。z/Architecture和IBM是国际商业机器公司在至少一个司法管辖区的商标或注册商标。
参考图1,在一个示例中,计算环境100包括中央处理器复合体(CPC)102。中央处理器复合体102例如是IBM服务器(或由国际商业机器公司或其它实体提供的其它服务器或机器),并且包括多个组件,例如耦合到一个或多个处理器单元(也称为处理器)110和输入/输出(I/O)子系统111的存储器104(也称为系统存储器、主存储器、主存、中央存储、存储)。示例处理器单元110包括一个或多个通用处理器(也称为中央处理器或中央处理单元(CPU))和/或一个或多个其它处理器。IBM Z是国际商业机器公司在至少一个管辖区内的商标或注册商标。
I/O子系统111可以是中央处理器复合体的一部分或与其分离。它引导主存储器104和耦合到中央处理器复合体的输入/输出控制单元108以及输入/输出(I/O)设备106之间的信息流。
可以使用许多类型的I/O设备。一种特定类型是数据存储设备140。数据存储设备140可以存储一个或多个程序142、一个或多个计算机可读程序指令144和/或数据等。计算机可读程序指令可以被配置成执行本发明的各方面的实施例的功能。
中央处理器复合体102可包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或向其写入的光盘驱动器。可理解,其它硬件和/或软件组件可以与中央处理器复合体102结合使用。示例包括但不限于:微码或毫码、设备驱动、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据档案存储系统等。
此外,中央处理器复合体102可以与许多其它通用或专用计算系统环境或配置一起操作。适合与中央处理器复合体102一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。
在一个或多个实施例中,中央处理器复合体102提供虚拟化支持,其中存储器104包括例如一个或多个虚拟机112(也称为客机)、管理虚拟机的虚拟机管理器(诸如管理程序114)、可信执行环境115(也称为超管理程序)和处理器固件116。管理程序114的一个示例是由纽约Armonk的国际商业机器公司提供的处理器资源/系统管理器(PR/SMTM)。PR/SM是国际商业机器公司在至少一个管辖区内的商标或注册商标。
在一个或多个实施例中,可信执行环境115可以至少部分地在被配置为执行例如诸如本文所描述的过程的硬件和/或固件中实现。可信执行环境是利用存储器保护硬件来实施存储器保护的可信固件和/或硬件。客机的所有者可以通过使用嵌入在主机密钥文档中的公共主机密钥来安全地将信息传递(例如使用IBM安全执行)到可信执行环境。为了处理机密信息,可信执行环境使用匹配的私有主机密钥。私有主机密钥是服务器(例如IBM服务器)专用的,并且是硬件保护的。
处理器固件116包括例如处理器的微码或毫码。它包括例如在实现更高级的机器代码时使用的硬件级指令和/或数据结构。在一个实施例中,它包括例如通常作为包括可信软件的微码或毫码、底层硬件专用的微码或毫码来递送的专有代码,并且控制操作系统对系统硬件的访问。
中央处理器复合体的虚拟机支持提供了操作大量虚拟机112的能力,每个虚拟机能够与不同的程序120一起操作并且运行客机操作系统122,诸如操作系统。每个虚拟机112能够用作单独的系统。也就是说,每个虚拟机可以被独立地重置,运行访客操作系统,并且利用不同的程序来操作。在虚拟机中运行的操作系统或应用程序看似访问整个系统,但是实际上,仅有一部分是可用的。尽管作为示例提供z/VM和Linux,但是根据本发明的一个或多个方面,可以使用其它虚拟机管理器和/或操作系统。注册商标/>是根据来自Linus Torvalds的专有被许可人Linux基金会的分许可人在全球基础上使用的。
在一个实施例中,一个或多个客机112是安全客机。参考图2,安全客机200由管理程序(例如,管理程序114)以管理程序不能观察安全客机的状态(例如,存储器、寄存器等)的方式启动。例如,在加密计算的一个实施例中,管理程序可以启动/停止安全客机,并且管理程序知道用于启动安全客机的数据位于何处,但是它不能查看正在运行的安全客机。用于加载/启动安全客机的数据可以以管理程序不能看到安全客机的方式被加密。安全客机映像的所有者将机密数据放在安全客机元数据中,然后连同安全客机元数据一起生成安全客机映像。在安全客机被加载之后,由可信执行环境(诸如可信执行环境115)来处理与安全客机的状态的任何交互。
在一个实施例中,为了启动安全客机,管理程序将安全客机映像210和安全客机元数据220传递到可信执行环境115。元数据是完整性的并且至少部分地被机密保护,并且仅由可信执行环境解释。基于安全客机元数据中的信息,可信执行环境然后可以实施加载到存储器中的安全客机映像的完整性,保护包含加载的映像的安全客机的存储器不被管理程序访问,并且在启动安全客机之前潜在地解密安全客机映像。
安全客机映像和安全客机元数据被加密链接,使得例如只有知道由安全客机元数据保护的机密数据的主体才能执行安全客机映像的有效修改。安全客机元数据被设计成可由可信执行环境独占性地解释。
根据本发明的一个或多个方面,可以更新安全客机映像(例如,用于引导安全客机)和与其相关联的元数据。作为示例,可以更新映像和元数据以应用影响安全客机映像的修复(例如,安全修复),使得可以在下一次采用被应用的修复来引导安全客机映像;用属于定制的安全客机映像的新所有者的机密数据来定制通用安全客机映像,使得可以引导定制的安全客机映像等。尽管提供了用于更新安全客机映像和与其相关联的元数据的示例,但是还可以提供附加的、更少的和/或其它的示例。
在一个示例中,安全客机映像和与其相关联的元数据的更新是基于经由例如更新请求结构提供的请求,下面进一步描述更新请求结构的示例。更新请求结构(在此也称为映像更新请求结构或请求结构)例如是受完整性保护的,并且请求结构的一个或多个部分可以由例如请求结构保护密钥保密地保护。例如,请求结构是由请求结构保护密钥保护的AES-GCM(高级加密标准-伽罗瓦计数器模式)。其由请求结构保护密钥进行完整性保护:例如,CPK(客机公钥)-公共ECDH(椭圆曲线Diffie-Hellman)密钥(来自由客户选择的临时密钥对),以及描述由客户选择的相同请求结构保护密钥(例如,用于AES-GCM保护请求结构的请求结构保护密钥)的一组密钥槽。
请求结构可由可信执行环境独占地解释(例如,可信执行环境独占地验证请求结构的完整性,并且请求结构的加密部分由可信执行环境独占地解密)。请求结构可包括例如一个或多个密钥槽,每个密钥槽包含由目标主机/可信执行环境的主机密钥保护的请求结构保护密钥(RPK);要由可信执行环境功能提供的映像加密密钥的指示:使用用于加密原始(在更新之前)安全客机映像的密钥或者使用新的随机密钥-使用原始密钥的选项可被限制为选择使用受保护密钥用于映像加密的请求;要由可信执行环境功能提供的映像加密密钥将是明文密钥还是受保护密钥的指示(例如,密钥令牌的明文值对安全客机不可见但可由系统的可信硬件/固件提供的功能解释为加密密钥的密钥令牌);和/或关于哪些安全客机元数据属性或机密数据将被改变以及如何改变的信息。请求结构可包括附加的、更少的和/或其它的数据/属性。存在许多可能性。
参考图3描述了与映像更新请求结构相关的描述的一个特定示例。如图3所示,在一个实例中,与请求结构相关的描述300(在此也称为请求结构描述300)包括多个条目302,并且每个条目302具有例如名称310、缩写(abbrev)312和条目的简短描述(内容)314,以及关于内容(例如内容314)是否受到完整性保护或者是否受到由例如请求保护密钥(其例如只能由目标系统获得)的完整性和机密两者的保护(例如加密)的保护指示(保护)316。在一个示例中,内容314包括请求结构的数据/属性,并且名称310、缩写312及保护指示316提供关于内容314的信息。
作为示例,请求结构的描述的一个条目318包括客户公钥(由请求实体提供),并且一个或多个其它条目320包括密钥槽1-N,每个密钥槽包括由目标主机/可信执行环境的主机密钥保护的请求结构保护密钥。客户公共密钥和密钥槽用于向可信执行环境安全地传送一组可能的目标系统的请求保护密钥(例如使用(椭圆曲线)Diffie-Hellman技术),其中每个密钥槽寻址一个目标系统。
一个或多个其它条目302包括例如由请求保护密钥加密的以下数据:
条目322包括一个或多个请求标志(缩写为RF),其可以提供某些指示,例如质询指示(下面描述)。在一个示例中,请求的加密部分包括认证数据(例如,基于来自安全客机元数据的加密部分的机密数据生成的数据);
条目324包括一个或多个改变指示(例如,位图中的一个或多个位),其提供一种或多种类型的改变(例如,使用新的随机映像加密密钥、替换原始(预先更新的)安全客机元数据的其它机密数据、修改原始安全客机元数据的控制标志等);以及
条目326包括改变数据,其根据改变指示提供某些加密数据(例如,将替换来自原始安全客机元数据的密钥)。
另外,更少和/或其它信息可以包括在映像更新请求结构描述300中。可以提供附加的、更少的和/或其它的条目,和/或每个条目可以具有附加的、更少的和/或其它的信息。此外,更新请求结构(例如,内容314)可以包括附加的、更少的和/或其它的数据/属性。存在许多可能性。
根据本发明的一个或多个方面,使用请求结构来生成更新的安全客机映像和相关联的更新的元数据。参考图4描述了该处理的一个示例。在一个示例中,安全客机400向可信执行环境发出调用(诸如生成安全客机元数据初始化调用402),以初始化与要更新的映像相关联的元数据的更新。该初始化调用包括例如请求结构404(例如,具有类似于内容314的内容),其由例如安全客机所有者410在安全客机外部准备,并且由安全客机获得(例如,提供、接收、拉取、检索等)。对可信执行环境的调用向安全客机400返回请求句柄(handle),并且可选地,可返回对请求的有效性的质询。由安全客机从可信执行环境接收到的质询被转发412到安全客机所有者。安全客机所有者基于所有者对安全客机元数据和请求结构的知识来计算对质询的响应414,如下所述,并将该响应发送到安全客机。安全客机从安全客机所有者接收响应,并且调用可信执行环境来响应质询416。如果质询不成功,则取消更新。例如,安全客机使用例如生成元数据取消调用440来调用可信执行环境以取消更新。然而,如果质询成功,则可信执行环境改变到允许处理与请求句柄相关联的进一步的映像更新请求功能的状态,并且映像和元数据的更新使用被验证的请求句柄来继续。
为了继续更新,在一个示例中,安全客机400针对请求句柄向可信执行环境请求418映像加密密钥(例如,受保护密钥)。例如,可信执行环境提供由调用可信执行环境的安全客机的实例独占使用的受保护密钥。在该示例中,加密密钥的明文值对于安全客机是未知的。
此外,在一个示例中,在安全客机内生成更新的映像,并且利用更新的映像加密密钥对映像进行加密。为了更新映像,在一个示例中,安全客机使用更新技术(例如,使用红帽软件包管理器(RPM)更新功能)向安全客机提供更新(例如,安全修复、配置改变等),然后使用标准映像生成工具(例如,Dracut)提取更新的映像。作为示例,更新的映像被加密并被写入磁盘或引导分区,使得它可被用于基于更新的安全客机映像来引导安全客机。
作为更新的一部分,在一个示例中,对作为更新的安全客机映像的一部分的存储器的每个页422(或其它单元)执行打包操作420。对于每一页,打包操作包括例如使用映像加密密钥(例如,受保护密钥)对页进行加密;累积更新的安全客机映像的测量(例如,完整性测量,诸如基于现在已知或以后开发的技术计算的散列、验证码(例如,消息认证码)、签名等);以及对更新的安全客机映像的其它元数据(例如,更新的安全客机映像的起始地址;更新的安全客机映像的页数等)进行更新。
此外,安全客机向可信执行环境发出生成新安全客机元数据-完成调用430,其包括作为输入的选择数据,该选择数据包括更新的安全客机映像的测量和安全客机映像的其它元数据432,并且返回更新的安全客机元数据434。
在一个示例中,更新的安全客机映像与更新的安全客机元数据一起被存储到引导设备,替换旧的映像和元数据。
参考图5A-5B描述了生成更新的映像和更新的元数据的一个实施例的进一步细节。首先参考图5A,安全客机所有者生成安全客机映像更新请求结构,其内容类似于例如内容314,并且将该请求结构发送到安全客机500。安全客机接收请求结构并调用可信执行环境功能(被称为生成安全客机元数据调用-初始化),其中请求结构作为自变量。可信执行环境获得(例如,接收、提供、检索、拉取等)调用并返回请求句柄502。可选地,它还可以返回质询以使得安全客机的所有者能够指示请求的有效性,这可能影响请求句柄的有效性。
为了进一步描述,在一个实施例中,初始化功能是可从(例如,仅)安全客机调用的,并且如所指示的,将安全客机映像更新请求结构作为自变量。该调用是对可信执行环境的,该可信执行环境基于该调用使用例如客户公钥(例如,在条目318中描述的)和请求结构的一个或多个密钥槽(例如,在条目320中描述的)来解包(例如,解密)请求结构。它导出请求结构保护密钥,使用请求结构保护密钥来解密请求结构,并验证请求结构的完整性(例如,使用一个或多个测量,诸如计算散列、消息认证码、加密签名等)。如果原始映像需要针对安全客机元数据计算的认证,则使用来自原始(例如,在更新之前)安全客机元数据的机密数据(例如,密钥、密码等)来验证认证数据。
如果初始化功能指示要执行质询,则请求质询功能504。如果可选地选择质询,则由可信执行环境返回质询指示,并且将等待质询状态与请求句柄相关联。质询可包含例如随机数、主机的公共主机密钥的散列、请求的时间戳、安全客机的引导时间(验证解包的映像)的时间戳以及对于安全客机映像或安全客机唯一的数据。参照图5B描述执行质询的一个实施例。
参考图5B,在一个实施例中,质询处理过程550包括例如安全客机所有者从安全客机接收质询552。安全客机所有者使用原始(预先更新的)安全客机元数据的机密数据(例如,密钥、密码等)来计算对质询的响应554。安全客机所有者向安全客机发送对质询的响应556。安全客机接收对质询的响应,并且调用被称为对质询的响应的可信执行环境功能,这导致返回代码,该返回代码指示质询是否被可信执行环境成功验证558。在一个示例中,对质询的响应的功能是可从客机调用的,并且该调用包括请求句柄和对质询的响应作为自变量。可信执行环境评估该响应是否等于用原始安全客机元数据的机密数据对质询的加密,并且如果是,则将初始化状态与请求句柄相关联。
安全客机确定质询是否失败,如果是,则其取消安全客机映像更新560。例如,它调用被称为生成安全客机元数据取消的可信执行环境功能。在一个示例中,该功能是可从安全客机调用的,并且包括请求句柄作为自变量。取消操作使请求句柄无效。
在成功地执行质询之后,如果有的话,处理返回到生成图5A的安全客机映像和元数据。基于成功地执行质询,或者如果未选择质询,则将初始化状态与请求句柄相关联。
安全客机使用请求句柄来调用被称为获取映像加密密钥的可信执行环境功能,这导致例如提供受保护的映像加密密钥。在一个示例中,获取映像加密密钥功能是可从安全客机调用的,并且具有作为自变量的请求句柄。可信执行环境评估请求句柄引用的请求是否处于受保护映像加密密钥可被返回的状态(例如,质询被传递)。取决于该请求,可信执行环境或者取得旧的映像加密密钥或者生成新的映像加密密钥(例如,随机密钥)。如果要使用受保护密钥(例如,IBM Z计算机上可用的CPACF(中央处理器辅助加密功能)受保护密钥),则映像加密密钥将被转换成由调用安全客机可用的受保护密钥。返回映像加密密钥(例如,受保护的密钥)。
安全客机构造更新的明文安全客机映像510,并初始化更新的安全客机映像的测量512。安全客机映像包括一个或多个存储器页(或其它单元),并且对于每一页,安全客机使用受保护的映像加密密钥对更新的安全客机映像的页进行加密,并对更新的安全客机映像的(多个)测量进行更新514。
安全客机调用被称为生成新安全客机元数据-完成的可信执行环境功能,其包括请求句柄、更新的安全客机映像的(多个)测量和可选的其它安全客机映像元数据作为自变量,并返回更新的安全客机元数据516。更新的安全客机元数据包括例如新版本(如果请求的话)、新随机初始化值、安全客机映像测量的替换、映像密钥的替换(如果请求的话)以及先前其它安全客机元数据的替换。
安全客机将更新的安全客机映像和元数据存储到引导设备518,替换任何旧的映像和元数据。
如这里所描述的,在一个或多个方面中,更新安全客机的映像的过程包括例如由安全客机接收来自安全客机映像所有者的更新请求;由安全客机调用可信执行环境功能以初始化映像更新请求;可选地,由安全客机从可信执行环境接收对映像更新请求的质询,其被提供给安全客机所有者;由安全客机从安全客机所有者接收响应,并且将响应提供给可信执行环境,可信执行环境基于响应验证映像更新请求;由安全客机基于成功验证映像更新请求来生成更新的安全客机映像;执行对更新的安全客机映像的测量;使用加密密钥对更新的安全客机映像进行加密;基于更新的安全客机的测量,调用可信执行环境以生成更新的安全客机元数据;以及将加密的更新的安全客机映像和更新的元数据存储到引导设备,以替换旧映像。
在一个示例中,在更新请求中提供的映像更新请求结构是受完整性保护的,并且包括加密部分。其目标是具有可信执行域的一个或多个系统,使得只有目标可信执行环境可以验证请求结构的完整性,并且只有目标可信执行环境可以解密请求结构的加密部分。
在一个示例中,安全客机的完整性保护的元数据包括控制信息,该控制信息可用于确定是否允许安全客机的映像更新,并且指示允许的映像更新的类型。
本发明的一个或多个方面不可分地依赖于计算机技术,并促进计算机内的处理,从而提高其性能。通过从运行的安全客机内部实现安全客机映像的更新并且为更新的安全客机映像生成安全客机元数据,来促进处理。
参考图6A-6C描述了与本发明的一个或多个方面相关的促进计算环境内的处理的一个实施例的进一步细节。
参考图6A,在一个实施例中,安全客机生成安全客机的更新的映像600,并且计算更新的映像的一个或多个测量602。安全客机将一个或多个测量提供给可信执行环境604,并从可信执行环境获得更新的映像的元数据,其中该元数据基于安全客机的元数据并获得一个或多个测量而生成606。通过生成更新的安全客机映像并获得与运行的安全客机相关联的元数据,可以对安全客机进行改变(例如,应用安全修复、更新配置等),其将在下一次引导时对安全客机可用,从而提供灵活性和/或增强。
在一个示例中,安全客机获得指示要生成更新的映像的映像更新请求结构608。映像更新请求结构被提供给可信执行环境610,并且基于映像更新请求结构从可信执行环境获得请求句柄612。请求句柄将被用于生成更新的映像614。
在一个示例中,生成更新的映像包括使用请求句柄来从可信执行环境请求加密密钥616,构造安全客机的更新的明文映像618,以及使用加密密钥来加密更新的明文映像以获得加密的映像,加密的映像是更新的映像620。
作为示例,计算一个或多个测量包括基于加密映像来对更新的明文映像的一个或多个初始测量进行更新以获得提供给可信执行环境的一个或多个测量622。例如,利用请求句柄提供一个或多个测量624。
在一个示例中,参考图6B,加密密钥是从可信执行环境获得的受保护密钥630。受保护密钥例如将由调用可信执行环境的安全客机的实例独占使用,并且加密密钥的明文值对于安全客机是未知的632。使用受保护密钥为数据和处理提供了安全性。
作为示例,更新的明文映像包括多个存储器页634,并且对更新的明文映像进行加密包括使用受保护密钥对多个存储器页进行加密636。
在一个示例中,获得更新的映像的元数据是基于调用可信执行环境处的功能来创建更新的映像的元数据638,并且该调用提供请求句柄和一个或多个测量作为自变量640。作为示例,自变量还包括更新的映像的其它元数据642。
作为示例,映像更新请求结构是受完整性保护的,包括加密部分,并且可由可信执行环境独占地解释644。该保护确保在从安全客机到可信执行环境的传输期间不能修改请求结构,确保请求结构的加密部分中的数据在传输期间保持机密,并且确保加密数据的明文值仅可由可信执行环境访问。
在一个示例中,参考图6C,映像更新请求结构的加密部分包括从发布映像更新请求的安全客机的元数据的加密部分中的机密数据导出的数据660。使用来自映像更新请求结构的该数据,可信执行环境可以验证请求结构的创建者具有被假定为安全客机映像的所有者所独占的知识。
此外,在一个示例中,基于向可信执行环境提供映像更新请求结构,从可信执行环境获得对映像更新请求结构的质询662。该质询例如基于从映像更新请求结构的加密部分获得的机密数据664。安全客机从所选择的实体获得对质询的响应666,并向可信执行环境提供对质询的响应668。基于提供对质询的响应,从可信执行环境获得质询是否成功的指示670。基于质询成功,继续生成更新的映像672。在一个示例中,对可信执行环境的用于提供响应的调用可包括请求句柄作为附加自变量。质询保护映像更新请求结构免受脆弱性。例如,如果质询不成功或者只要质询尚未用有效响应来应答,则可信执行环境不接受生成更新的映像的元数据的最终调用。
在一个示例中,映像更新请求结构包括一个或多个指示和数据,其指定对要用于计算更新的映像的元数据的先前安全客机元数据的一个或多个改变674。
作为示例,安全客机的更新的映像和更新的映像的元数据被存储到引导设备676。这使得更新的映像和元数据在引导过程期间可用。
其它变化和实施例是可能的。
本发明的各方面可由许多类型的计算环境使用。参考图7A描述了用于结合和使用本发明的一个或多个方面的计算环境的另一实施例。在该示例中,计算环境36包括经由例如一个或多个总线40和/或其它连接彼此耦合的例如本机中央处理单元(CPU)37、存储器38、以及一个或多个输入/输出设备和/或接口39。作为示例,计算环境36可包括纽约Armonk的国际商业机器公司提供的处理器;加利福尼亚州Palo Alto的惠普公司提供的具有/>II处理器的HP Superdome;和/或基于由国际商业机器公司、惠普、英特尔公司、甲骨文和/或其它公司提供的架构的其它机器。PowerPC是国际商业机器公司在至少一个管辖区内的商标或注册商标。Intel和Itanium是英特尔公司或其子公司在美国和其它国家的商标或注册商标。
本机中央处理单元37包括一个或多个本机寄存器41,诸如在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
此外,本机中央处理单元37执行存储在存储器38中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器38中的仿真器代码42。该代码使得在一个架构中配置的计算环境能够仿真另一架构。例如,仿真器代码42允许基于z/Architecture指令集架构之外的架构的机器(诸如PowerPC处理器、HP Superdome服务器或其它)来仿真z/Architecture指令集架构,并且执行基于z/Architecture指令集架构开发的软件和指令。
参考图7B描述了与仿真器代码42有关的进一步细节。存储在存储器38中的访客指令43包括软件指令(例如,与机器指令相关),其被开发为在不同于本机CPU37的架构中执行。例如,访客指令43可以被设计为基于z/Architecture指令集架构在处理器上执行,但是替代地,在本机CPU37上被仿真,其可以是例如Intel Itanium II处理器。在一个示例中,仿真器代码42包括指令获取例程44,以从存储器38获得一个或多个访客指令43,并且可选地为所获得的指令提供本地缓冲。它还包括指令转译例程45,以确定所获得的访客指令的类型,并且将访客指令转译成一个或多个对应的本机指令46。该转译包括例如标识要由访客指令执行的功能以及选择(一个或多个)本机指令来执行该功能。
此外,仿真器代码42包括仿真控制例程47以使得执行本机指令。仿真控制例程47可以使本机CPU37执行仿真一个或多个先前获得的访客指令的本机指令的例程,并且在该执行结束时,将控制返回到指令获取例程以仿真下一个访客指令或一组访客指令的获得。本机指令46的执行可包括将数据从存储器38加载到寄存器中;将数据从寄存器存储回存储器;或者执行由转换例程确定的某种类型的算术或逻辑操作。
例如,每个例程以软件实现,该软件存储在存储器中并由本机中央处理单元37执行。在其它示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合实现。被仿真的处理器的寄存器可使用本机CPU的寄存器41或通过使用存储器38中的位置来仿真,在实施例中,访客指令43、本机指令46和仿真器代码42可驻留在相同的存储器中,或者可分配在不同的存储器设备之间。
根据本发明的一个或多个方面,可被仿真的指令、命令或调用包括此处所描述的可信执行环境调用。此外,根据本发明的一个或多个方面,可仿真本发明的其它指令、命令、功能、操作、调用和/或一个或多个方面。
上述计算环境仅是可以使用的计算环境的示例。可以使用其它环境,包括但不限于,非分区环境、分区环境、云环境和/或仿真环境;实施例不限于任何一种环境。尽管在此描述了计算环境的各种示例,但是本发明的一个或多个方面可以与许多类型的环境一起使用。这里提供的计算环境仅仅是示例。
每个计算环境能够被配置为包括本发明的一个或多个方面。
一个或多个方面可以涉及云计算。
可理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,该可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,该软件可包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图8,描述了说明性的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点52,本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点52可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。可理解,图8中所示的计算设备54A-N的类型仅旨在说明,并且计算节点52和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图9,示出了由云计算环境50(图8)提供的一组功能抽象层。可预先理解,图9中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层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)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可被提供给计算机或其它可编程数据处理装置的处理器以产生机器,使得经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其它设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其它可编程装置或其它设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
除了上述之外,可以由提供客户环境管理的服务提供商来提供、部署、管理、服务等一个或多个方面。例如,服务提供商可以创建、维护、支持等执行一个或多个客户的一个或多个方面的计算机代码和/或计算机基础设施。作为回报,服务提供商可以例如在订阅和/或费用协议下从客户接收支付。另外或替代地,服务提供商可以从向一个或多个第三方销售广告内容接收支付。
在一个方面,可以部署应用以执行一个或多个实施例。作为一个示例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础结构。
作为另一方面,可以部署计算基础设施,包括将计算机可读代码集成到计算系统中,其中与计算系统结合的代码能够执行一个或多个实施例。
作为又一方面,可以提供一种用于集成计算基础设施的过程,包括将计算机可读代码集成到计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个实施例。与计算机系统结合的代码能够执行一个或多个实施例。
尽管上文描述了各种实施例,但这些仅是实例。例如,其它架构的计算环境可用于结合和/或使用一个或多个方面。此外,可以使用不同的指令、命令、功能、调用和/或操作。另外,可以使用不同类型的结构。许多变化是可能的。
本文描述了各个方面。此外,在不背离本发明的各方面的精神的情况下,许多变化是可能的。应当注意,除非另外不一致,否则本文所述的每个方面或特征及其变型可与任何其它方面或特征组合。
此外,其它类型的计算环境也可以受益并被使用。作为示例,适于存储和/或执行程序代码的数据处理系统是可用的,其包括通过系统总线直接或间接耦合到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间采用的本地存储器、大容量存储装置和缓冲存储器,其提供至少一些程序代码的临时存储以减少在执行期间必须从大容量存储装置取得代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备、DASD、磁带、CD、DVD、拇指驱动器和其它存储介质等)可以直接或通过中间I/O控制器耦合到系统。网络适配器也可耦合到系统,以使数据处理系统能够通过中间专用或公共网络耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是几种可用的网络适配器类型。
本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,在本说明书中使用术语“包括”和/或“包含”时,指定所描述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
如果存在,下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。出于说明和描述的目的呈现了对一个或多个实施例的描述,但是该描述不旨在是穷尽的或者限于所公开的形式。许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释各个方面和实际应用,并且使本领域的其它普通技术人员能够理解具有适合于所设想的特定用途的各种修改的各种实施例。

Claims (20)

1.一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质和共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令用于执行方法,所述方法包括:
由安全客机生成针对所述安全客机的更新的映像;
计算针对所述更新的映像的一个或多个测量;
由所述安全客机将所述一个或多个测量提供给可信执行环境;以及
从所述可信执行环境获得所述更新的映像的元数据,所述元数据是基于所述安全客机的元数据以及获得所述一个或多个测量而生成的。
2.根据权利要求1所述的计算机程序产品,其中,所述方法还包括:
由所述安全客机获得指示要生成所述更新的映像的映像更新请求结构;
向所述可信执行环境提供所述映像更新请求结构;以及
基于所述映像更新请求结构,从所述可信执行环境获得请求句柄,所述请求句柄要被用于生成所述更新的映像。
3.根据权利要求2所述的计算机产品,其中生成所述更新的映像包括:
使用所述请求句柄来从所述可信执行环境请求加密密钥;
构造所述安全客机的更新的明文映像;
使用所述加密密钥对所述更新的明文映像进行加密以获得加密的映像,所述加密的映像是所述更新的映像;以及
其中,计算所述一个或多个测量包括基于所述加密的映像来更新所述更新的明文映像的一个或多个初始测量,以获得被提供给所述可信执行环境的所述一个或多个测量,采用所述请求句柄来提供所述一个或多个测量。
4.根据权利要求3所述的计算机程序产品,其中,所述加密密钥是从所述可信执行环境获得的受保护密钥,其中所述受保护密钥将由调用所述可信执行环境的所述安全客机的实例独占地使用,并且所述加密密钥的明文值对于所述安全客机是未知的。
5.根据权利要求4所述的计算机程序产品,其中,所述更新的明文映像包括多个存储器页,并且其中,对所述更新的明文映像进行加密包括使用所述受保护密钥对所述多个存储器页进行加密。
6.根据权利要求2所述的计算机程序产品,其中,获得所述更新的映像的所述元数据是基于调用所述可信执行环境处的功能来创建所述更新的映像的所述元数据,所述调用提供所述请求句柄和所述一个或多个测量作为自变量。
7.根据权利要求6所述的计算机程序产品,其中,所述自变量还包括所述更新的映像的其它元数据。
8.根据权利要求2所述的计算机程序产品,其中,所述映像更新请求结构是受完整性保护的,包括加密部分,并且能够由所述可信执行环境独占地解释。
9.根据权利要求8所述的计算机程序产品,其中,所述映像更新请求结构的所述加密部分包括从发布映像更新请求的安全客机的元数据的加密部分中的机密数据导出的数据。
10.根据权利要求2所述的计算机程序产品,其中,所述方法还包括:
基于向所述可信执行环境提供所述映像更新请求结构来从所述可信执行环境获得对所述映像更新请求结构的质询,所述质询基于从所述映像更新请求结构的加密部分获得的机密数据;
由所述安全客机从所选择的实体获得对所述质询的响应;
从所述安全客机向所述可信执行环境提供对所述质询的响应;
基于提供对所述质询的所述响应,从所述可信执行环境获得所述质询是否成功的指示;以及
基于所述质询成功而继续生成所述更新的映像。
11.根据权利要求2所述的计算机程序产品,其中,所述映像更新请求结构包括一个或多个指示和数据,所述一个或多个指示和数据指定对要用于计算所述更新的映像的所述元数据的先前安全客机元数据的一个或多个改变。
12.根据前述权利要求中任一项所述的计算机程序产品,其中,所述方法还包括将所述安全客机的所述更新的映像和所述更新的映像的所述元数据存储到引导设备。
13.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
与所述存储器通信的至少一个处理器,其中,所述计算机系统被配置为执行一种方法,所述方法包括:
由安全客机生成针对所述安全客机的更新的映像;
计算针对所述更新的映像的一个或多个测量;
由所述安全客机将所述一个或多个测量提供给可信执行环境;以及
从所述可信执行环境获得所述更新的映像的元数据,所述元数据是基于所述安全客机的元数据以及获得所述一个或多个测量而生成的。
14.根据权利要求13所述的计算机系统,其中,所述方法还包括:
由所述安全客机获得指示要生成所述更新的映像的映像更新请求结构;
向所述可信执行环境提供所述映像更新请求结构;以及
基于所述映像更新请求结构,从所述可信执行环境获得请求句柄,所述请求句柄要被用于生成所述更新的映像。
15.根据权利要求14所述的计算机系统,其中,生成所述更新的映像包括:
使用所述请求句柄来从所述可信执行环境请求加密密钥;
构造所述安全客机的更新的明文映像;
使用所述加密密钥对所述更新的明文映像进行加密以获得加密的映像,所述加密的映像是所述更新的映像;以及
其中,计算所述一个或多个测量包括基于所述加密的映像来更新所述更新的明文映像的一个或多个初始测量,以获得被提供给所述可信执行环境的所述一个或多个测量,采用所述请求句柄来提供所述一个或多个测量。
16.根据权利要求14所述的计算机系统,其中,获得所述更新的映像的所述元数据是基于调用所述可信执行环境处的功能来创建所述更新的映像的所述元数据,所述调用提供所述请求句柄和所述一个或多个测量作为自变量。
17.一种用于促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
由安全客机生成针对所述安全客机的更新的映像;
计算针对所述更新的映像的一个或多个测量;
由所述安全客机将所述一个或多个测量提供给可信执行环境;以及
从所述可信执行环境获得所述更新的映像的元数据,所述元数据是基于所述安全客机的元数据以及获得所述一个或多个测量而生成的。
18.根据权利要求17所述的计算机实现的方法,还包括:
由所述安全客机获得指示要生成所述更新的映像的映像更新请求结构;
向所述可信执行环境提供所述映像更新请求结构;以及
基于所述映像更新请求结构,从所述可信执行环境获得请求句柄,所述请求句柄要被用于生成所述更新的映像。
19.根据权利要求18所述的计算机实现的方法,其中,生成所述更新的映像包括:
使用所述请求句柄来从所述可信执行环境请求加密密钥;
构造所述安全客机的更新的明文映像;
使用所述加密密钥对所述更新的明文映像进行加密以获得加密的映像,所述加密的映像是所述更新的映像;以及
其中,计算所述一个或多个测量包括基于所述加密的映像来更新所述更新的明文映像的一个或多个初始测量,以获得被提供给所述可信执行环境的所述一个或多个测量,采用所述请求句柄来提供所述一个或多个测量。
20.根据权利要求18所述的计算机实现的方法,其中,获得所述更新的映像的所述元数据是基于调用所述可信执行环境处的功能来创建所述更新的映像的所述元数据,所述调用提供所述请求句柄和所述一个或多个测量作为自变量。
CN202280054017.8A 2021-08-05 2022-08-02 安全客机映像和元数据更新 Pending CN117795509A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/395,089 2021-08-05
US17/395,089 US20230040577A1 (en) 2021-08-05 2021-08-05 Secure guest image and metadata update
PCT/EP2022/071764 WO2023012198A1 (en) 2021-08-05 2022-08-02 Secure guest image and metadata update

Publications (1)

Publication Number Publication Date
CN117795509A true CN117795509A (zh) 2024-03-29

Family

ID=83115416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280054017.8A Pending CN117795509A (zh) 2021-08-05 2022-08-02 安全客机映像和元数据更新

Country Status (6)

Country Link
US (1) US20230040577A1 (zh)
KR (1) KR20240022582A (zh)
CN (1) CN117795509A (zh)
CA (1) CA3217381A1 (zh)
TW (1) TWI808749B (zh)
WO (1) WO2023012198A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829495B2 (en) * 2021-08-05 2023-11-28 International Business Machines Corporation Confidential data provided to a secure guest via metadata

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839221B2 (en) * 2007-09-10 2014-09-16 Moka5, Inc. Automatic acquisition and installation of software upgrades for collections of virtual machines
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US11500988B2 (en) * 2019-03-08 2022-11-15 International Business Machines Corporation Binding secure keys of secure guests to a hardware security module
US11354421B2 (en) * 2019-03-08 2022-06-07 International Business Machines Corporation Secure execution guest owner controls for secure interface control
US20220114249A1 (en) * 2020-10-09 2022-04-14 Huawei Technologies Co., Ltd. Systems and methods for secure and fast machine learning inference in a trusted execution environment
US11709700B2 (en) * 2021-01-13 2023-07-25 Vmware, Inc. Provisioning identity certificates using hardware-based secure attestation in a virtualized and clustered computer system

Also Published As

Publication number Publication date
CA3217381A1 (en) 2023-02-09
TWI808749B (zh) 2023-07-11
KR20240022582A (ko) 2024-02-20
WO2023012198A1 (en) 2023-02-09
US20230040577A1 (en) 2023-02-09
TW202307711A (zh) 2023-02-16

Similar Documents

Publication Publication Date Title
US11533174B2 (en) Binding secure objects of a security module to a secure guest
AU2020426828B2 (en) Reserving one or more security modules for secure guest
KR102551935B1 (ko) 보안 운영 체제 이미지의 점진적 복호화 및 무결성 검증
CN117795509A (zh) 安全客机映像和元数据更新
US11809607B2 (en) Customization of multi-part metadata of a secure guest
WO2023012201A1 (en) Attestation of a secure guest
CN117940900A (zh) 存储安全虚拟机的诊断状态
US11157240B2 (en) Perform cryptographic computation scalar multiply instruction
US11829495B2 (en) Confidential data provided to a secure guest via metadata
EP4381401A1 (en) Secure guest image and metadata update
EP4381404A1 (en) Attestation of a secure guest
EP4381403A1 (en) Customization of multi-part metadata of a secure guest
EP4381400A1 (en) Confidential data provided to a secure guest via metadata

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