CN114930328A - 将安全模块的安全对象绑定到安全访客 - Google Patents
将安全模块的安全对象绑定到安全访客 Download PDFInfo
- Publication number
- CN114930328A CN114930328A CN202080092527.5A CN202080092527A CN114930328A CN 114930328 A CN114930328 A CN 114930328A CN 202080092527 A CN202080092527 A CN 202080092527A CN 114930328 A CN114930328 A CN 114930328A
- Authority
- CN
- China
- Prior art keywords
- security
- secure
- security module
- guest
- binding property
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
安全模块的至少一个安全对象被绑定到安全访客上。可信组件确定安全访客的元数据是否包括安全模块的机密绑定属性。基于确定元数据包括机密绑定属性,可信组件在选择模式中为安全访客配置安全模块。选择模式防止某些操作被与安全访客相关联的管理程序拦截。可信组件拦截安全模块通信并且使用机密绑定属性对安全模块通信的一个或多个安全对象执行密码操作以提供密码结果。将包括密码结果的安全模块通信的结果提供给接收器。
Description
背景技术
一个或多个方面一般涉及计算环境内的处理,尤其涉及保护此类环境内的数据。
在计算环境中,密码元件是保护数据中的有用技术组件。可以以加密安全形式存储或传输信息,以便避免对所存储或传输的信息的未授权访问。在一些情况下,可以使用基于软件的技术来执行这样的数据保护;在其他情况下,可以使用硬件支持和安全性特定元素。这些特定元件可以被称为硬件安全模块(HSM),其可以用作计算环境的计算机或信息传输***的一部分。
硬件安全模块可包括特定电路以提供用于数据加密和数据解密的功能。功能还可以包括生成和存储用于访客(guest)***(也称为访客)的加密密钥。不同访客(例如,虚拟机、虚拟服务器等)由管理程序或虚拟机管理器控制。由公共管理程序管理的不同访客可以由不同的所有者生成。传统管理程序对其托管的访客具有完全控制。具体地,管理程序具有检查甚至修改托管的访客的存储器的能力。在云环境中,管理程序及其管理员将是完全可信的。
发明内容
通过提供一种用于促进计算环境内的处理的计算机程序产品来克服现有技术的缺点并且提供附加的优点。该计算机程序产品包括可由至少一个处理电路读取并且存储用于执行方法的指令的至少一个计算机可读存储介质。该方法包括将计算环境的安全模块的至少一个安全对象绑定到计算环境的安全访客。该安全访客被配置成使用该安全模块。绑定包括由计算环境的可信组件确定安全访客的元数据是否包括安全模块的机密绑定属性。基于确定元数据包括机密绑定属性,可信组件在选择模式中为安全访客配置安全模块。选择模式防止某些操作被与安全访客相关联的管理程序拦截。可信组件拦截安全模块通信。使用该机密绑定属性在该安全模块通信的一个或多个安全对象上执行密码操作以提供密码结果。向接收器提供安全模块通信的结果。结果包括密码结果。
本文还描述并要求保护与一个或多个方面有关的计算机实施的方法和***。进一步,本文还描述并可要求保护与一个或多个方面有关的服务。
通过本文描述的技术实现附加特征和优点。其他实施例和方面在本文中详细描述,并且被认为是所要求保护的方面的一部分。
附图说明
一个或多个方面被特别指出并且被清楚地要求保护作为说明书结尾处的权利要求书中的示例。从下面结合附图的详细描述中,一个或多个方面的上述目标、特征以及优点显而易见,其中:
图1A描述了结合和使用本发明的一个或多个方面的计算环境的一个示例;
图1B描绘了根据本发明的一个或多个方面的图1A的计算环境的进一步细节;
图2描绘了利用硬件安全模块的某些方法经历的潜在安全问题的一个示例;
图3描绘了根据一个或多个方面的与将安全模块的安全对象绑定到安全访客相关联的处理的一个实施例;
图4描绘了根据一个或多个方面的将请求转发到安全模块的流程的一个示例;
图5描绘了根据一个或多个方面的将请求的结果返回至安全访客的流程的一个示例;
图6A描述了结合和使用本发明的一个或多个方面的计算环境的另一个实例;
图6B示出图6A的存储器的进一步细节;
图7描绘了云计算环境的一个实施例;以及
图8描述了抽象模型层的一个示例。
具体实施方式
根据一个或多个方面,提供了一种将计算环境的安全模块的多个安全对象绑定到该计算环境的一个安全访客的能力。安全对象包括例如机密属性(也称为秘密),诸如密钥或用于导出密钥的材料;附加信息,诸如对象的一个或多个属性;和/或确保附加信息不与安全对象分离的完整性保护数据。安全对象的一个或多个部分可以重叠。在一个实施例中,机密属性由安全模块的选择密钥(诸如主密钥或另一提供的密钥(例如,访客密钥))包装。安全模块的配置包括将选择密钥安全地存储在安全模块的存储器中。数据可以由安全模块以未加密的形式接收并且可以在安全模块上进行加密,反之亦然。加密和/或解密操作可以在硬件或软件或其任何组合中在安全模块上执行。在一个示例中,安全模块是硬件安全模块(HSM),其例如是可插拔组件或单独连接到计算机***的组件。在一个特定示例中,硬件安全模块是密码卡;然而,存在其他示例。
参考图1A描述了结合和使用本发明的一个或多个方面的计算环境的一个实施方式。在一个示例中,计算环境基于由纽约州阿蒙克的国际商业机器公司提供的z/Architecture硬件架构。IBM公开号SA22-7832-11,第十二版,2017年9月,在“z/Architecture Principles of Operation”中描述了z/Architecture硬件架构的一个实施例,特此将其通过引用全文并入本文。IBM和z/Architecture是国际商业机器公司在至少一个管辖区域中的注册商标或商标。
计算环境还可以基于其他架构;z/Architecture硬件架构仅是一个示例。
如图1A所示,计算环境100包括,例如,以通用计算设备的形式示出的计算机***102。计算机***102可以包括但不限于经由一个或多个总线和/或其他连接120彼此耦合的一个或多个处理器或处理单元104(例如,中央处理单元(CPU))、存储器106(例如,***存储器、主内存存储器、主存储器、中央存储器或存储装置)以及一个或多个输入/输出(I/O)接口108。
总线120表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、***总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)、微通道体系结构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)局部总线和***组件互连(PCI)。
存储器106可包含(例如)高速缓冲存储器,例如共享高速缓冲存储器122,其可耦合到处理器104的本地高速缓冲存储器123。进一步,存储器106可以包括一个或多个程序或应用124、操作***126和一个或多个计算机可读程序指令128。计算机可读程序指令128可以被配置成执行本发明的多个方面的实施例的功能。
计算机***102还可经由例如I/O接口108与一个或多个外部装置130、一个或多个网络接口132和/或一个或多个数据存储装置134通信。示例外部设备包括用户终端、磁带驱动器、指示设备、显示器等。网络接口132使计算机***102能够与一个或多个网络通信,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网),提供与其他计算设备或***的通信。
数据存储设备134可以存储一个或多个程序136、一个或多个计算机可读程序指令138、和/或数据等。该计算机可读程序指令可以被配置成用于执行本发明的多个方面的实施例的功能。
计算机***102可以包括和/或耦合到可移动/不可移动、易失性/非易失性计算机***存储介质。例如,它可以包括和/或耦合到不可移动、非易失性磁介质(通常被称为“硬盘驱动器”)、用于从可移动、非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器、和/或用于从可移动、非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。应当理解,其他硬件和/或软件部件可以与计算机***102结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器和数据归档存储***等。
计算机***102可以与许多其他通用或专用计算***环境或配置一起操作。可以适用于计算机***102的众所周知的计算***、环境和/或配置的示例包括但不限于个人计算机(PC)***、服务器计算机***、瘦客户机、厚客户机、手持式或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机***、大型计算机***和包括以上***或设备中的任一个的分布式云计算环境等。
参考图1B描述结合和/或使用本发明的一个或多个方面的计算环境(例如,计算环境100)的一个实施例的进一步细节。在一个示例中,计算环境100是共享计算环境,其包括***(诸如计算机***102)和安全模块(诸如硬件安全模块(HSM)150),安全模块包括一个或多个选择密钥(例如,主密钥152)。在本文的示例中,安全模块是硬件安全模块;然而,在其他实施例中,可以使用其他安全模块。
在一个示例中,计算机***102包括诸如可信固件160的可信组件以及与包括一个或多个安全访客180的一个或多个访客(例如,虚拟机(VM))交互的管理程序170。管理程序170的一个示例是由纽约州阿蒙克的国际商业机器公司提供的z/VM管理程序。z/VM是国际商业机器公司在至少一个管辖区域中的注册商标或商标。管理程序有时被称为主机。管理程序管理在计算机***内执行的访客。
访客或访客***例如是在管理程序上的虚拟机(VM)中执行的操作***。管理程序用于将一个或多个硬件安全模块(例如,硬件安全模块150)分配给访客***。指派给访客的特定硬件安全模块(例如,硬件安全模块150)可配置有密码主密钥(例如,主密钥152;又名包装密钥),其用于包装访客的密钥以为访客提供安全密钥。
这些访客中的一个或多个被认为是安全访客。安全访客是保护其状态和存储器免受管理程序访问的访客。使用例如元数据启动安全访客,所述元数据以机密性保护和完整性保护的方式被传输到可信组件(例如,可信固件160)并且包括机密绑定属性(例如,HSM机密绑定属性162)。
根据本发明的方面,安全访客(例如安全访客180)的安全密钥被认为是无效的(又名损坏的)安全密钥182。其被破坏,使得其在被包括另一访客的另一组件占用时不可用。如本文所描述的,在一个方面中,安全密钥是安全对象的一部分,并且特定访客的安全对象被绑定到特定安全模块上。如在此所使用的,安全对象的绑定包括将该安全对象的至少一部分绑定到该具体访客和该具体安全模块上。
可信固件160包括例如机密绑定属性(又名,绑定秘密,例如,绑定密钥或用于导出绑定密钥的资料),诸如用于执行由安全模块(例如,HSM150)生成的安全对象到安全访客(例如,安全访客180)的HSM绑定的安全访客162的HSM机密绑定属性。在一个示例中,HSM机密绑定属性162经由安全访客的元数据被传递到可信组件(例如可信固件160)。
在一个示例中,可信固件160还包括描述安全访客(例如,安全访客180)的HSM配置的控制块164。在该配置中列出的硬件安全模块被配置为处于管理程序传递模式的安全访客,使得由访客发出的密码操作不被管理程序(例如,管理程序170)拦截。相反,它们被可信组件(例如,可信固件160)拦截。如本文所使用的,固件包括例如处理器的微代码。其包括例如在更高级机器代码的实现中使用的硬件级指令和/或数据结构。在一个实施例中,其包括例如通常作为微代码递送的专有代码,微代码包括可信软件或特定于底层硬件的微代码,并控制操作***对***硬件的访问。
在一个实施例中,硬件安全模块(例如,硬件安全模块150)包括至少一个主密钥152或对未授权方不可访问的其他选择密钥。该主密钥用于对硬件安全模块的用户可用的密钥进行加密(即,包装)。术语‘主密钥’可表示存储在HSM上的加密/解密密钥。在一个实施例中,主密钥不被传送出它存储在其上的硬件安全模块。由HSM主密钥包装的密钥称为安全密钥。
存在支持具有完整性保护的安全对象(也称为安全密钥对象)的硬件安全模块。在一个示例中,安全对象包含例如由硬件安全模块的主密钥加密的有效密钥。此外,在一个示例中,其包含可以由硬件安全模块使用来验证安全对象是由硬件安全模块用当前主密钥创建的数据。该完整性保护由硬件安全模块生成,因为它依赖于主密钥。这种完整性保护的安全对象的示例是例如EP11模式中的加密快速适配器(Crypto Express Adapters)的安全密钥对象,其包括由主密钥包装的密钥,该包装的密钥的消息认证码(MAC)被级联到该主密钥上。例如,使用从主密钥导出的密钥来计算MAC。
硬件安全模块(例如,硬件安全模块150)是防篡改的并且保护机密属性(例如,安全访客的密钥)免受未授权的访问(例如,未调度的物理***、物理渗透等)。硬件安全模块可被指派给不同虚拟资源,诸如虚拟机(VM),并且在虚拟环境中,硬件安全模块可能不知道其从虚拟机或访客到另一虚拟机或访客的重新指派。
VM分配的灵活性可造成安全问题。在高度敏感的托管信息技术(IT)环境中,托管访客(例如,安全访客)的所有者希望确保他们的安全密钥(例如,由他们的HSM的主密钥包装)不能被他们不拥有的不可信访客使用,即使访客被黑客攻击或以其他方式受到危害和/或安全密钥和/或其他数据被获取。
图2示出了这种安全问题的一个示例。如图2所示,在一个示例中,硬件安全模块(HSM)(诸如硬件安全模块150)包含未经授权方不可访问的主密钥(诸如主密钥152)。主密钥152被硬件安全模块的程序代码用来加密(即,包装)硬件安全模块的程序代码使得硬件安全模块的用户可用的密钥。由硬件安全模块主密钥152包装的密钥被称为安全密钥。
在一个示例中,访客200(访客1)拥有安全密钥220,从硬件安全模块150向访客200提供管理程序(例如,管理程序(HV)170)。如本文中所指示的,硬件安全模块是防篡改的并且保护机密属性(例如,秘密,诸如密钥)免受未授权的访问(例如,未调度的物理***、物理渗透等);然而,访客200不具有可比的安全性,并且因此可表示漏洞。在虚拟环境中,因为管理程序170像硬件安全模块那样控制资源到其访客的分配,所以硬件安全模块150可能不知道其从一个访客(即,VM)到另一个访客(即,VM)的重新分配。因此,如果恶意用户利用第二访客210,访客2,侵入给定的访客200,访客1,并且由第二访客210保留分配给访客200的安全密钥220,则存在安全漏洞。因此,第二访客210可获得(230)访客200的安全密钥220。如果管理程序(例如管理程序170)将硬件安全模块150分配给访客2 210,则访客2能够使用安全密钥220。
以上对密钥的获取在高度敏感的托管IT环境中尤其成问题,其中托管访客的所有者希望维持比主机环境的管理员更积极的安全性。在共享计算环境(例如,共享计算环境100)中,各种访客可由不同实体拥有,并且硬件安全模块150可仅属于那些实体中的某些实体。因此,访客所有者(诸如向其分配安全密钥(例如,安全密钥220)的访客200的所有者)期望维护其安全密钥220,该安全密钥220由硬件安全模块150的主密钥152包装。该访客所有者不希望安全密钥220由其他访客(例如,不可信访客)使用,所述其他访客由利用共享计算环境中的资源的不同实体拥有。例如,在图2中,第一访客200和第二访客210具有不同的所有者,并且访客200的所有者想要确保即使访客200被黑客攻击,如图2所示,并且安全密钥220和/或其他数据被获取(230),除了安全密钥220最初被分配给的访客200的所有者之外,它也不能被任何所有者利用。这是通过本发明的一个或多个方面解决的。
根据本发明的一个或多个方面,安全访客不能访问在由可信组件维护的安全访客的运行实例外部可用的有效安全对象(例如,包括安全密钥)。如果无效安全对象能够访问正确的硬件安全模块机密绑定属性,则由可信组件使其可与硬件安全模块一起使用。
在一个方面,可信组件(例如,可信固件160)使用硬件安全模块机密绑定属性(例如,机密绑定属性162,如密钥或从中导出密钥的资料)来将由安全访客使用的一个或多个安全对象与适当的硬件安全模块进行绑定。例如,可信组件使用机密绑定属性来修改安全访客与硬件安全模块一起使用的安全对象的一个或多个完整性保护字段。完整性保护字段用于将例如密钥的属性(例如,密钥的目的(例如,签名、加密等))加密绑定到密钥值。当安全对象被从硬件安全模块发送到安全访客时,可信固件使用机密绑定属性来加密或以其他方式改变安全对象的完整性保护字段中的一个或多个,使得安全访客接收被绑定到由可信组件运行的其实例的安全对象。当安全访客将经修改的安全对象发送回硬件安全模块以用于新操作时,可信组件拦截操作并且解密或以其他方式移除对安全对象的完整性保护的改变,使得硬件安全模块接收它可以使用的安全对象。
可信组件维护例如安全访客被允许访问的每个硬件安全模块的硬件安全模块机密绑定属性(例如,机密绑定属性162)。可信组件强制执行安全访客仅可以访问硬件安全模块,对于该硬件安全模块,硬件安全模块机密绑定属性被包含在访客的元数据中。此外,在一个实施例中,可信组件强制在管理程序传递模式下配置安全访客可访问的硬件安全模块,这意味着访客发出的密码操作(例如,加密/解密)不被管理程序拦截。相反,它在一个或多个方面中绕过管理程序并且被可信组件拦截。
在一个实施例中,可以为访客配置多于一个安全模块,每个安全模块具有其自己的特定的机密绑定属性。进一步,在一个实施例中,安全访客的所有者可以选择使用包含与第一访客相同的机密绑定属性的基础结构来准备一个或多个其他安全访客,使得同一所有者拥有的多个访客可以交换修改的密钥对象。这允许另一访客在第一访客失败的情况下接管计算,从而提供高可用性解决方案。
参见图3-5描述了关于将硬件安全模块的安全对象绑定到安全访客的进一步细节。具体地,图3示出将安全模块(例如HSM 150)的安全对象绑定到安全访客(例如安全访客180)的逻辑的一个示例;图4描绘了用于向安全模块发送请求的逻辑的一个示例;并且图5描绘了用于向安全访客返回请求的结果的逻辑的一个示例。
首先,参考图3,描述将安全模块(例如,硬件安全模块150)的安全对象绑定到安全访客(例如,安全访客180)的一个实施例。在一个实施例中,绑定是被配置为使用安全模块(例如,硬件安全模块150)的安全访客的安全对象的绑定,并且该绑定基于安全模块的机密绑定属性(例如,密钥),该机密绑定属性被加密地链接到安全访客的映像并且被安全地提供给可信组件(例如,可信固件160)作为安装被提供用于启动安全访客的映像的安全访客的元数据的一部分。
查询300,确定安全访客(例如,安全访客180)的元数据是否具有机密绑定属性(例如,机密绑定属性162)。在步骤302,如果元数据不包含机密绑定属性,则该处理完成。否则,在步骤304,处理继续,其中安全模块(例如,硬件安全模块150)被配置用于选择模式。在一个示例中,可信组件(例如,可信固件160)为管理程序传递模式配置安全模块,其中由访客发出的密码操作不被管理该访客的管理程序拦截。在z/Architecture硬件体系结构的一个示例中,通过配置例如z/Architecture硬件体系结构的(例如开始解释性执行(SIE)指令的)加密控制块来执行该配置。在一个例子中,可信组件(例如,可信固件160)验证管理程序为安全访客配置的每个安全模块是否存在该硬件安全模块的机密绑定属性,并且从加密控制块消除在安全访客的元数据中不存在机密绑定属性的安全模块的每个配置,并且保护该加密控制块在安全访客的生命周期期间不被管理程序修改。
进一步地,在步骤306,在一个实施例中,可信组件拦截一个或多个安全模块通信。如参照图4进一步描述的,在步骤308,例如,可信组件拦截对安全模块的请求,并且在将请求转发到安全模块之前使用机密绑定属性验证包含安全密钥的请求的无效对象(在此被称为安全密钥对象)。此外,如参考图5进一步描述的,在步骤310,可信组件拦截由安全模块处理的请求的结果并且使用机密绑定属性使包含返回安全访客的安全密钥(在本文中称为安全密钥对象)的结果的对象无效。
参见图4,在步骤400,在一个示例中,安全访客向安全模块(例如,硬件安全模块150)提交请求(也称为安全模块通信)。该请求(其是加密请求,诸如例如对数据、文本等进行加密或解密的请求;生成密钥等)包括例如一个或多个无效对象,其包括一个或多个无效安全密钥。在步骤402,该请求被可信组件(例如,可信固件160)拦截,并且在步骤404,该可信组件搜索该请求以寻找包括安全密钥的对象。如果发现包括安全密钥的对象(查询406),则在步骤408,使用机密绑定属性的或从机密绑定属性导出的密钥(例如,从机密绑定属性获得的密钥)对被指定为包含完整性数据的对象的至少一部分进行解密。处理然后继续到步骤404。然而,如果没有找到对象或者没有找到进一步的对象(查询406),则在步骤410,作为结果的请求被转发到硬件安全模块。所得请求(在本文中可称为密码结果)包括例如一个或多个有效的安全对象(假设在查询406处找到密钥对象),其绑定到与机密绑定属性相关联的安全模块(例如,HSM150)。
参考图5,在一个示例中,在步骤500,安全模块(例如,硬件安全模块150)返回请求的结果。该请求再次是例如加密请求。在步骤502,结果的返回被可信组件(例如,可信固件160)拦截,并且在步骤504,可信组件在结果中搜索包含安全密钥的对象。如果发现包括安全密钥的对象(查询506),在步骤508,则使用机密绑定属性的密钥或从机密绑定属性导出的密钥(例如,从机密绑定属性获得的密钥)对被指定为包含完整性数据(例如,消息认证代码)的对象的至少一部分进行加密。处理然后继续到步骤504。然而,如果未发现含有安全密钥的对象或另外的对象(查询506),则在步骤510,将可能修改的结果转发到安全访客。在本文中可被称为密码结果的结果包括例如一个或多个无效安全对象(假设在查询506处找到密钥对象),其绑定到与机密绑定属性相关联的安全模块(例如,HSM150)。
本文描述了一种将安全模块的安全对象(例如,包括安全密钥)绑定到安全访客的能力。在一个或多个方面,硬件安全模块被配置给安全访客,使得如果硬件安全模块被配置给使用不同机密绑定属性的另一访客,则从安全访客取得的无密钥资料和/或其他数据可使得另一访客能够与所配置的硬件安全模块一起使用所取得的密钥。在一个或多个方面中,可信固件(又名Ultramaster(UV))强制将安全访客配置为(例如,仅)以管理程序传递模式访问硬件安全模块。用于启动(引导)安全访客的元数据包含要被配置到安全访客的每个硬件安全模块的机密绑定属性(例如,秘密,诸如密钥/或导出密钥的资料)。元数据受到完整性保护并且被加密地绑定到安全访客的引导映像,并且其被安全(即,受到机密和完整性保护)传递到可信固件。可信固件拦截从安全访客到硬件安全模块的每个请求。使用该机密绑定属性,它使有待返回给该安全访客的包含安全密钥的每个对象无效。使用该机密绑定属性,它在将该请求转发到该硬件安全模块之前验证由该安全访客发送到该硬件安全模块的请求中的每个无效对象。
如本文所描述的,安全对象包括例如硬件安全模块保护的密钥,如由安全存储在硬件安全模块中的主密钥包装的密钥或包含硬件安全模块保护的密钥的任何对象(如中间计算状态)。这样的安全对象包括例如不同的(可能重叠的部分),包括例如仅可以由硬件安全模块覆盖的实际秘密(例如,包装密钥)、可由软件使用硬件安全模块解释的一些附加信息(类似于对象的属性)、和确保附加信息不与安全对象分离的一些完整性保护数据(安全数据和完整性数据可重叠)。
为了在安全访客的安全对象上发生无效和验证,管理程序不能干扰从安全访客到安全模块(例如,硬件安全模块)的任何请求。因此,被配置为安全访客的硬件安全模块以管理程序传递模式配置,即,所述管理程序不拦截所述安全访客对所述硬件安全模块的任何请求。
可信固件拦截例如安全访客对硬件安全模块的每个请求。对于发送到硬件安全模块的每个请求,可信固件拦截请求,并且对于请求中包括安全密钥对象的每个安全对象,在将请求转发到硬件安全模块之前,用包含固定完整性保护的数据来替换损坏的完整性保护数据。
通过使用硬件安全模块机密绑定属性的密钥或从硬件安全模块机密绑定属性导出的密钥对包含已破坏的完整性保护的数据进行解密,来从包含已破坏的完整性保护的数据中导出包含固定完整性保护的数据。
在一个示例中,对于由硬件安全模块返回的每个响应,可信固件拦截响应,并且对于包括安全密钥对象的响应中的每个安全对象,在将响应转发到安全访客之前,由包含损坏的完整性保护的数据替换包含完整性保护的数据。
通过使用硬件安全模块机密绑定属性的密钥或从硬件安全模块机密绑定属性中导出的密钥对包含完整性保护的数据进行加密,来从包含完整性保护的数据中导出包含损坏的完整性保护的数据。
本文描述了各个方面。在不背离本发明的各方面的精神的情况下,许多变型和实施例是可能的。应注意,除非另有不一致之处,否则本文所述的每个方面或特征及其变体可与任何其他方面或特征组合。
在一个或多个方面,不需要孤立(enclave)或类似技术。进一步,不要求硬件安全模块能够建立安全信道的端点(基于非对称密码)。也不需要特殊的硬件安全模块、密钥管理器或密钥分发服务。进一步,为了将安全模块的安全密钥绑定到安全访客,可信固件不需要跟踪对安全模块开放的任何会话也不需要跟踪由安全模块创建的密钥集。
本发明的一个或多个方面与计算机技术紧密联系并且促进计算机内的处理,从而改善其性能。本发明的实施例与计算有着不可分割的联系,至少因为它们旨在解决对计算而言唯一的问题并提供也在此范围内的技术办法。本发明的各实施例将安全模块(例如,硬件安全模块)的安全对象(例如,包括安全密钥)绑定到属于特定所有者的特定访客(例如,VM)。图2中所示的问题(本发明的某些实施例的方面用来解决)专用于计算(即,未授权的访客获得对授权访客的安全包装密钥的访问)。考虑到问题和方法两者都是计算特定的,本发明的实施例与计算不可分割地联系起来。
其他类型的计算环境还可以合并和使用本发明的一个或多个方面,包括但不限于仿真环境,其示例参考图6A描述。在该示例中,计算环境35包括例如经由例如一个或多个总线43和/或其他连接,彼此耦合的本地中央处理单元(CPU)37、存储器39和一个或多个输入/输出设备和/或接口41。作为示例,计算环境35可以包括由国际商业机器公司(阿芒克,纽约)提供的处理器;和/或基于由国际商业机器公司、英特尔公司或其他公司提供的架构的其他机器。PowerPC是在至少一个管辖区域中的国际商业机器公司的商标或注册商标。英特尔是英特尔公司或其子公司在美国和其他国家的商标或注册商标。
本机中央处理单元37包括一个或多个本机寄存器45,诸如在环境内处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
此外,本地中央处理单元37执行存储在存储器39中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器39中的仿真器代码47。该代码使得在一个架构中配置的计算环境能够仿真另一架构。例如,仿真器代码47允许基于除了z/Architecture硬件架构之外的架构的机器(诸如PowerPC处理器或其他服务器或处理器)仿真z/Architecture硬件架构,并且执行基于z/Architecture硬件架构开发的软件和指令。
参照图6B描述与仿真器代码47相关的进一步细节。存储在存储器39中的访客指令49包括被开发为在不同于原生CPU 37的架构的架构中执行的软件指令(例如,与机器指令相关)。例如,访客指令49可能已经被设计成在z/Architecture处理器上执行,但取而代之的是在本地CPU 37(其可以是例如Intel处理器)上仿真。在一个示例中,仿真器代码47包括指令提取例程51,以从存储器39获得一个或多个访客指令49,并且可选地提供对所获得的指令的本地缓冲。其还包括指令转换例程53,以确定已经获得的访客指令的类型并将访客指令转换成一个或多个对应的本机指令55。该转换包括,例如,识别要由访客指令执行的函数并选择执行该函数的本地指令。
进一步,仿真器代码47包括仿真控制例程57,以使本机指令被执行。仿真控制例程57可使本机CPU 37执行仿真一个或多个先前获得的访客指令的本机指令例程,且在此执行结束时,将控制返回到指令提取例程以仿真下一访客指令或一组访客指令的获得。原生指令55的执行可包含将数据从存储器39加载到寄存器中;将数据从寄存器存储回到存储器;或执行如由翻译例程确定的某一类型的算术或逻辑操作。
例如,每一例程以软件实施,所述软件存储在存储器中且由原生中央处理单元37执行。在其他示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合来实现。可使用原生CPU的寄存器45或通过使用存储器39中的位置来仿真经仿真处理器的寄存器。在各实施例中,访客指令49、本机指令55和仿真器代码47可驻留在同一存储器中或可分布在不同存储器设备之间。
一个或多个方面可涉及云计算。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可单方面根据需要自动提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供商进行人为交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:供应商的计算资源被池化以使用多租户模型服务于多个消费者,其中根据需求动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云***通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同访客端设备访问应用。消费者不管理或控制包括网络、服务器、操作***、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作***和应用。消费者不管理或控制底层云基础设施,而是具有对操作***、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参考图7,描述了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点52,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N。节点52可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图7中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点52和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图8,示出了由云计算环境50(图7)提供的一组功能抽象层。应提前理解,图8中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层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控制器耦合到***。网络适配器也可以耦合到***,以使得数据处理***能够通过居间的私有或公共网络耦合到其他数据处理***或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些可用类型的网络适配器。
本文中使用的术语仅用于描述具体实施方式的目的,而并非旨在进行限制。如本文中使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应当理解,当在本说明书中使用术语“包括(comprises)”和/或“包含(comprising)”时,其指定所述特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合的存在或添加。
以下权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等效物(如果有的话)旨在包括用于结合如具体要求保护的其他要求保护的元件来执行所述功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了对一个或多个实施例的描述,但并不旨在是详尽的或限于所公开的形式。对于本领域普通技术人员而言,许多修改和变化将是显而易见的。选择和描述实施例以便最好地解释各个方面和实际应用,并且使本领域的其他普通技术人员能够理解具有适合于预期的特定用途的不同修改的不同实施例。
Claims (20)
1.一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:
至少一个计算机可读存储介质,所述至少一个计算机可读存储介质可由至少一个处理电路读取并存储用于执行一种方法的指令,所述方法包括:
将所述计算环境的安全模块的至少一个安全对象绑定到所述计算环境的安全访客,所述安全访客被配置为使用所述安全模块,并且其中所述绑定包括:
由所述计算环境的可信组件确定所述安全访客的元数据是否包括所述安全模块的机密绑定属性;
由所述可信组件基于确定所述元数据包括所述机密绑定属性,在选择模式中配置用于所述安全访客的所述安全模块,所述选择模式防止某些操作由与所述安全访客相关联的管理程序拦截;
由所述可信组件拦截安全模块通信;
使用所述机密绑定属性对所述安全模块通信的一个或多个安全对象执行密码操作以提供密码结果;以及
向接收器提供所述安全模块通信的结果,所述结果包括所述密码结果。
2.根据权利要求1所述的计算机程序产品,其中,所述安全模块通信是从所述安全访客至所述安全模块的请求,所述密码操作包括解密操作以对所述请求的所述一个或多个安全对象中的安全对象的至少一部分进行解密,并且其中,所述接收器是所述安全模块。
3.根据权利要求2所述的计算机程序产品,其中,所述解密操作包括解密包括加密的完整性保护的所述安全对象内的数据,所述解密使用从所述机密绑定属性中获得的密钥。
4.根据权利要求1所述的计算机程序产品,其中,所述安全模块通信包括由所述安全模块基于处理所述请求返回的请求的结果,所述密码操作包括加密所述结果的所述一个或多个安全对象中的安全对象的至少一部分的加密操作,并且其中,所述接收器是所述安全访客。
5.根据权利要求4所述的计算机程序产品,其中,所述加密操作包括对所述安全对象内的数据进行加密,所述安全对象包括使用所述安全模块的选择密钥计算的完整性保护以使所述安全对象无效,所述加密使用从所述机密绑定属性中获得的密钥。
6.根据权利要求5所述的计算机程序产品,其中,所述方法进一步包括从所述安全访客获得包括一个或多个无效对象的请求,并且其中,所述密码操作包括解密所述一个或多个无效对象内的数据以验证所述一个或多个无效对象,所述解密使用从所述机密绑定属性中获得的所述密钥。
7.根据权利要求1所述的计算机程序产品,其中,所述安全模块包括硬件安全模块。
8.根据权利要求1所述的计算机程序产品,其中,所述选择模式是管理程序传递模式。
9.根据权利要求1所述的计算机程序产品,其中,所述可信组件防止所述管理程序改变被配置为所述安全访客的一组安全模块。
10.根据权利要求1所述的计算机程序产品,其中,所述机密绑定属性包括密钥或导出所述密钥的资料。
11.根据权利要求1所述的计算机程序产品,其中,所述一个或多个安全对象包括至少一个或多个安全密钥。
12.根据权利要求1所述的计算机程序产品,其中,所述方法进一步包括基于确定所述安全访客的所述元数据不包括所述机密绑定属性,由所述可信组件防止将所述安全模块配置到所述安全访客。
13.一种用于促进计算环境内的处理的计算机***,所述计算机***包括:
存储器;以及
与所述存储器通信的处理器,其中所述计算机***被配置为执行一种方法,所述方法包括:
将所述计算环境的安全模块的至少一个安全对象绑定到所述计算环境的安全访客,所述安全访客被配置为使用所述安全模块,并且其中所述绑定包括:
由所述计算环境的可信组件确定所述安全访客的元数据是否包括所述安全模块的机密绑定属性;
由所述可信组件基于确定所述元数据包括所述机密绑定属性,在选择模式中配置用于所述安全访客的所述安全模块,所述选择模式防止某些操作由与所述安全访客相关联的管理程序拦截;
由所述可信组件拦截安全模块通信;
使用所述机密绑定属性对所述安全模块通信的一个或多个安全对象执行密码操作以提供密码结果;以及
向接收器提供所述安全模块通信的结果,所述结果包括所述密码结果。
14.根据权利要求13所述的计算机***,其中,所述安全模块通信是从所述安全访客至所述安全模块的请求,所述密码操作包括解密操作以对所述请求的所述一个或多个安全对象中的安全对象的至少一部分进行解密,并且其中,所述接收器是所述安全模块。
15.根据权利要求14所述的计算机***,其中,所述解密操作包括解密包括加密的完整性保护的所述安全对象内的数据,所述解密使用从所述机密绑定属性中获得的密钥。
16.根据权利要求13所述的计算机***,其中,所述安全模块通信包括由所述安全模块基于处理所述请求返回的请求的结果,所述密码操作包括加密所述结果的所述一个或多个安全对象中的安全对象的至少一部分的加密操作,并且其中,所述接收器是所述安全访客。
17.根据权利要求16所述的计算机***,其中,所述加密操作包括对所述安全对象内的数据进行加密,所述安全对象包括使用所述安全模块的选择密钥计算的完整性保护以使所述安全对象无效,所述加密使用从所述机密绑定属性中获得的密钥。
18.一种促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
将所述计算环境的安全模块的至少一个安全对象绑定到所述计算环境的安全访客,所述安全访客被配置为使用所述安全模块,并且其中所述绑定包括:
由所述计算环境的可信组件确定所述安全访客的元数据是否包括所述安全模块的机密绑定属性;
由所述可信组件基于确定所述元数据包括所述机密绑定属性,在选择模式中配置用于所述安全访客的所述安全模块,所述选择模式防止某些操作由与所述安全访客相关联的管理程序拦截;
由所述可信组件拦截安全模块通信;
使用所述机密绑定属性对所述安全模块通信的一个或多个安全对象执行密码操作以提供密码结果;以及
向接收器提供所述安全模块通信的结果,所述结果包括所述密码结果。
19.如权利要求18所述的计算机实现的方法,其中,所述安全模块通信是从所述安全访客至所述安全模块的请求,所述密码操作包括解密操作以对所述请求的所述一个或多个安全对象中的安全对象的至少一部分进行解密,并且其中,所述接收器是所述安全模块。
20.根据权利要求18所述的计算机实施的方法,其中,所述安全模块通信包括由所述安全模块基于处理所述请求返回的请求的结果,所述密码操作包括加密所述结果的所述一个或多个安全对象中的安全对象的至少一部分的加密操作,并且其中,所述接收器是所述安全访客。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/775,851 | 2020-01-29 | ||
US16/775,851 US11533174B2 (en) | 2020-01-29 | 2020-01-29 | Binding secure objects of a security module to a secure guest |
PCT/IB2020/061733 WO2021152383A1 (en) | 2020-01-29 | 2020-12-10 | Binding secure objects of security module to secure guest |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114930328A true CN114930328A (zh) | 2022-08-19 |
Family
ID=76969495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080092527.5A Pending CN114930328A (zh) | 2020-01-29 | 2020-12-10 | 将安全模块的安全对象绑定到安全访客 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11533174B2 (zh) |
JP (1) | JP2023511834A (zh) |
CN (1) | CN114930328A (zh) |
DE (1) | DE112020005625T5 (zh) |
GB (1) | GB2607794A (zh) |
WO (1) | WO2021152383A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11475167B2 (en) * | 2020-01-29 | 2022-10-18 | International Business Machines Corporation | Reserving one or more security modules for a secure guest |
US20230039894A1 (en) * | 2021-08-05 | 2023-02-09 | International Business Machines Corporation | Deferred reclaiming of secure guest resources |
GB2624693A (en) * | 2022-11-28 | 2024-05-29 | Ibm | Updating secure guest metadata of a specific guest instance |
WO2024115150A1 (en) * | 2022-11-29 | 2024-06-06 | International Business Machines Corporation | Extending secure guest metadata to bind the secure guest to an hsm |
WO2024115147A1 (en) * | 2022-11-29 | 2024-06-06 | International Business Machines Corporation | Selecting an hsm for association to a secure guest |
GB2624868A (en) * | 2022-11-29 | 2024-06-05 | Ibm | Updating secure guest metadata of a specific guest instance |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494189A (en) | 1982-04-26 | 1985-01-15 | International Business Machines Corporation | Method and means for switching system control of CPUs |
EP0610677A3 (en) | 1993-02-12 | 1995-08-02 | Ibm | Communication device management module operating in two modes. |
US6453392B1 (en) | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
US7143287B2 (en) | 2004-10-21 | 2006-11-28 | International Business Machines Corporation | Method and system for verifying binding of an initial trusted device to a secured processing system |
US7639819B2 (en) | 2005-06-16 | 2009-12-29 | Oracle International Corporation | Method and apparatus for using an external security device to secure data in a database |
US8315394B2 (en) | 2007-10-24 | 2012-11-20 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for encrypting data on storage devices using an intermediate key |
US8826039B2 (en) | 2010-02-02 | 2014-09-02 | Broadcom Corporation | Apparatus and method for providing hardware security |
US8375437B2 (en) | 2010-03-30 | 2013-02-12 | Microsoft Corporation | Hardware supported virtualized cryptographic service |
US8856504B2 (en) * | 2010-06-07 | 2014-10-07 | Cisco Technology, Inc. | Secure virtual machine bootstrap in untrusted cloud infrastructures |
US20120179909A1 (en) | 2011-01-06 | 2012-07-12 | Pitney Bowes Inc. | Systems and methods for providing individual electronic document secure storage, retrieval and use |
CN103368973B (zh) | 2013-07-25 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 一种云操作***安全体系 |
CN103701607A (zh) | 2013-12-25 | 2014-04-02 | 国家电网公司 | 一种虚拟机环境下可信平台模块的虚拟化方法 |
US9652631B2 (en) | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9928080B2 (en) | 2014-09-30 | 2018-03-27 | International Business Machines Corporation | Hardware security module access management in a cloud computing environment |
US9767293B2 (en) | 2015-02-13 | 2017-09-19 | International Business Machines Corporation | Content based hardware security module assignment to virtual machines |
US10284534B1 (en) | 2015-06-26 | 2019-05-07 | EMC IP Holding Company LLC | Storage system with controller key wrapping of data encryption key in metadata of stored data item |
US9720721B2 (en) | 2015-07-01 | 2017-08-01 | International Business Machines Corporation | Protected guests in a hypervisor controlled system |
US10833858B2 (en) | 2017-05-11 | 2020-11-10 | Microsoft Technology Licensing, Llc | Secure cryptlet tunnel |
EP3635912B1 (en) | 2017-05-31 | 2023-06-28 | Crypto4A Technologies Inc. | Integrated multi-level network appliance, platform and system, and remote management method and system therefor |
-
2020
- 2020-01-29 US US16/775,851 patent/US11533174B2/en active Active
- 2020-12-10 CN CN202080092527.5A patent/CN114930328A/zh active Pending
- 2020-12-10 GB GB2212344.2A patent/GB2607794A/en active Pending
- 2020-12-10 WO PCT/IB2020/061733 patent/WO2021152383A1/en active Application Filing
- 2020-12-10 DE DE112020005625.2T patent/DE112020005625T5/de active Pending
- 2020-12-10 JP JP2022539306A patent/JP2023511834A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US11533174B2 (en) | 2022-12-20 |
GB202212344D0 (en) | 2022-10-12 |
DE112020005625T5 (de) | 2022-09-01 |
US20210234681A1 (en) | 2021-07-29 |
GB2607794A (en) | 2022-12-14 |
JP2023511834A (ja) | 2023-03-23 |
WO2021152383A1 (en) | 2021-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020234675B2 (en) | Binding secure keys of secure guests to a hardware security module | |
US11533174B2 (en) | Binding secure objects of a security module to a secure guest | |
WO2020182482A1 (en) | Secure execution guest owner environmental controls | |
AU2020233906B2 (en) | Secure execution guest owner controls for secure interface control | |
AU2020426828B2 (en) | Reserving one or more security modules for secure guest | |
JP2023551527A (ja) | 準同型暗号化を使用したセキュアなコンピューティング・リソース配置 | |
US10366227B2 (en) | Secure debugging in a trustable computing environment | |
TWI808749B (zh) | 用於安全客體映像及後設資料更新之電腦程式產品、電腦系統及電腦實施方法 | |
US11201730B2 (en) | Generating a protected key for selective use | |
US11995197B2 (en) | Sensitive data encryption | |
US11829495B2 (en) | Confidential data provided to a secure guest via metadata | |
US11645092B1 (en) | Building and deploying an application |
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 |