CN117795514A - 安全访客的证明 - Google Patents

安全访客的证明 Download PDF

Info

Publication number
CN117795514A
CN117795514A CN202280054156.0A CN202280054156A CN117795514A CN 117795514 A CN117795514 A CN 117795514A CN 202280054156 A CN202280054156 A CN 202280054156A CN 117795514 A CN117795514 A CN 117795514A
Authority
CN
China
Prior art keywords
secure guest
attestation
attestation request
guest
secure
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
CN202280054156.0A
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 CN117795514A publication Critical patent/CN117795514A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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
    • 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/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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital 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
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

可信执行环境获取证明请求。证明请求至少包括证明密钥。基于获取证明请求,计算一个或多个完整性度量,并且计算至少使用证明密钥。将一个或多个完整性度量提供给实体,并且一个或多个完整性度量将被用于验证安全访客已经使用所选择的安全访客映像和所选择的安全访客元数据来启动。

Description

安全访客的证明
背景技术
一个或多个方面一般涉及促进计算环境内的处理,尤其涉及改进这样的处理。
计算环境可以支持虚拟化,其中计算环境的管理程序或虚拟机管理器托管各种访客(guest),诸如计算环境的虚拟机或虚拟服务器。虚拟机可以访问***资源,并且可以执行操作***,诸如访客操作***。不同的访客可以由不同的所有者拥有,并且在这些访客中,一些可以是安全访客。
传统的管理程序具有对所托管的访客的完全控制。特别地,管理程序具有检查甚至修改所托管的访客的存储器的能力。然而,安全访客是可由不完全可信的管理程序托管的访客。这种安全访客的映像(image)在加载时将受到保护,并且在访客的整个生命周期内将保持对分配给访客的资源(例如,存储器、CPU寄存器)的内容的保护。访客的保护至少包括完整性保护(例如管理程序不能恶意地改变任何访客状态),并且另外可以包括保持在安全访客中运行的初始映像、代码和数据的机密性。
安全访客的用户可能希望获取与安全访客有关的某些信息。因此,用于获取这种信息的处理将变得容易。
发明内容
通过提供一种用于促进计算环境内的处理的计算机程序产品,克服了现有技术的缺点,并且提供了附加的优点。该计算机程序产品包括一个或多个计算机可读存储介质和共同存储在该一个或多个计算机可读存储介质上以执行一种方法的程序指令。该方法包括由可信执行环境获取证明请求。证明请求至少包括证明密钥。基于获取证明请求,计算一个或多个完整性度量,并且计算至少使用证明密钥。将一个或多个完整性度量提供给实体。一个或多个完整性度量将被用于验证安全访客已经使用所选择的安全访客映像和所选择的安全访客元数据来启动。这使得请求实体能够确保安全访客是正确的安全访客,从而在计算环境中提供进一步的安全性。
在一个示例中,证明请求包括受完整性保护的证明请求结构,并且证明密钥被维护在证明请求结构的加密部分中。这对证明请求结构、证明密钥以及与其相关联的处理提供了保护保护。该保护确保在从请求实体到可信执行环境的传输期间不能修改请求结构,并且确保在传输期间在请求结构的加密部分中的数据保持机密。
作为示例,证明请求结构可由可信执行环境独家地解释。证实证明请求结构的完整性保护,并且基于证明请求结构的成功验证,可信执行环境解密证明请求结构的加密部分以获取要在计算一个或多个完整性度量中使用的证明密钥。通过验证完整性保护,安全性得以维持。如果验证不成功,则证明请求的处理失败。
在一个示例中,提供一个或多个完整性度量还包括提供要用于验证安全访客的可信执行环境的选择信息。选择信息包括例如安全访客的运行时数据。
此外,在一个示例中,一个或多个完整性度量包括基于至少安全访客的映像和一个或多个安全访客元数据计算的计算验证代码。作为示例,基于安全访客的运行时数据进一步计算计算验证代码。安全访客的运行时数据包括例如发出证明请求的安全访客的运行实例的唯一标识。通过在返回的完整性度量中包括用于标识运行的安全访客实例的数据,该数据也被返回给请求实体。请求实体然后可以使用该数据来确定是否由可信执行环境针对相同的安全访客实例处理了多个(例如,两个)请求。
在一个示例中,基于安全访客的特定数据进一步计算计算验证代码。
作为一个示例,证明请求经由对可信执行环境的不可拦截调用从安全访客获取。此外,在一个示例中,证明请求包括安全访客的特定数据。安全访客的特定数据将与证明密钥一起用于计算一个或多个完整性度量。
此外,在一个示例中,实体是安全访客,并且提供还包括向安全访客提供安全访客的运行时数据。在一个示例中,安全访客的运行时数据、一个或多个完整性度量和安全访客的特定数据将被进一步提供给请求实体以用于验证安全访客。
作为示例,安全访客的特定数据包括会话的会话信息,会话由请求实体用于连接到安全访客以向安全访客提交将在证明请求中使用的证明请求结构。
在一个示例中,证明请求由可信执行环境经由不可拦截调用从安全访客获取。该不可拦截调用包括例如证明请求结构,该证明请求结构包括安全访客的特定数据和证明密钥。
本文还描述并要求保护与一个或多个方面相关的计算机实现的方法和***。此外,本文还描述并要求保护与一个或多个方面相关的服务。
通过本文所述的技术实现了额外的特征和优点。其它实施例和方面在本文中详细描述,且被视为要求保护的方面的一部分。
附图说明
在说明书结尾处的权利要求中作为示例特别指出并清楚地要求了一个或多个方面。从结合附图的以下详细描述中,一个或多个方面的前述和目的、特征和优点将变得显而易见,在附图中:
图1描绘了包含和使用本发明的一个或多个方面的计算环境的一个示例;
图2描绘了根据本发明的一个或多个方面的证明查询的一个示例;
图3描绘了根据本发明的一个或多个方面使用的与证明请求结构相关的描述的一个示例;
图4A-4B描绘了根据本发明的一个或多个方面处理证明请求的一个示例;
图5描绘了根据本发明的一个或多个方面的证明过程的一个示例;
图6A-6C描绘了根据本发明的一个或多个方面的促进计算环境内的处理的一个示例;
图7A描绘了用于结合和使用本发明的一个或多个方面的计算环境的另一示例;
图7B描绘了根据本发明一个或多个方面的图7A的存储器的进一步细节;
图8描绘了根据本发明的一个或多个方面的云计算环境的一个实施例;以及
图9描绘了根据本发明的一个或多个方面的抽象模型层的一个示例。
具体实施方式
根据本发明的一个或多个方面,提供了一种能力以便于在计算环境中进行处理。作为示例,该能力包括便于验证安全访客是使用例如特定安全访客映像和安全访客元数据启动的特定安全访客。在一个示例中,针对不能由例如中间人***实施(perpetrate)的安全访客上的会话提供验证。在进一步的方面,该能力包括促进确定安全访客的多个(例如,两个)实例是否是相同的安全访客实例。
参考图1描述了用于结合和使用本发明的一个或多个方面的计算环境的一个实施例。作为示例,计算环境基于由纽约Armonk的国际商业机器公司提供的z/指令集架构。z/Architecture指令集架构的一个实施例在题为“z/Architecture Principles of Operation”的出版物中描述,IBM出版物No.SA22-7832-12,第十三版,2019年9月,其通过引用整体并入本文。然而,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(也称为超管理程序(ultravisor))和处理器固件116。管理程序114的一个示例是由纽约Armonk的国际商业机器公司提供的管理程序。管理程序有时被称为主机(host)。z/VM是国际商业机器公司在至少一个管辖权内的商标或注册商标。
在一个或多个实施例中,可信执行环境115可以至少部分地在被配置成执行例如诸如本文所描述的过程的硬件和/或固件中实现。可信执行环境是利用存储器保护硬件来实施存储器保护的可信固件和/或硬件。访客的所有者可以通过使用嵌入在主机密钥文档中的公共主机密钥来安全地将信息传递(例如使用IBM安全执行)到可信执行环境。为了处理机密信息,可信执行环境使用匹配的私有主机密钥。私有主机密钥是服务器(例如IBM服务器)专用的,并且是硬件保护的。
处理器固件116包括例如处理器的微码或毫码。它包括例如在实现更高级的机器代码时使用的硬件级指令和/或数据结构。在一个实施例中,它包括例如通常作为微码或毫码传送的专有代码,其包括可信软件、特定于底层硬件的微码或毫码、并且控制操作***对***硬件的访问。
中央处理器复合体的虚拟机支持提供了操作大量虚拟机112的能力,每个虚拟机能够与不同的程序120一起操作并且运行客户操作***122,诸如操作***。每个虚拟机112能够用作单独的***。也就是说,每个虚拟机可以被独立地重置,运行客户操作***,并且利用不同的程序来操作。在虚拟机中运行的操作***或应用程序看起来可以访问整个且完整的***,但是实际上,仅有一部分是可用的。尽管z/VM和Linux作为示例提供,但是根据本发明的一个或多个方面,可以使用其他虚拟机管理器和/或操作***。注册商标是按照来自Linus Torvalds的专有被许可人Linux基金会的分许可人在全球范围内使用的。
在一个实施例中,一个或多个访客112是安全访客。参考图2,安全访客200由管理程序(例如管理程序114)以管理程序不能观察安全访客的状态(例如存储器、寄存器等)的方式启动。例如,在机密计算的一个实施例中,管理程序可以启动/停止安全访客,并且管理程序知道用于启动安全访客的数据位于何处,但是它不能查看正在运行的安全访客。用于加载/启动安全访客的数据可以以管理程序不能看到安全访客的方式被加密。安全访客映像的所有者将机密数据放在安全访客元数据中,然后连同安全访客元数据一起生成安全访客映像。在安全访客被加载之后,与安全访客的状态的任何交互由诸如可信执行环境115的可信执行环境来处理。
在一个实施例中,为了启动安全访客,管理程序将管理程序先前加载到存储器中的安全访客映像210和安全访客元数据220传递到可信执行环境115。元数据是完整性的并且至少部分地被机密保护,并且仅由可信执行环境解释。基于安全访客元数据中的信息,可信执行环境然后可以实施加载到存储器中的安全访客映像的完整性,保护包含加载的映像的安全访客的存储器不被管理程序访问,并且可能在启动安全访客之前解密安全访客映像。
在加载或启动安全访客之后,可能希望验证安全访客是例如已经使用特定安全访客映像和元数据启动的特定安全访客。因此,根据本发明的一个或多个方面,询问这是否是特定安全访客250。作为示例,该询问由请求实体做出,例如安全访客的所有者或用户。为了提供对这样的询问的回答,收集信息并且计算一个或多个度量(例如,散列、消息认证码、密码签名等)并且使用该一个或多个度量来确定(例如,由安全访客外部的请求实体)安全访客是否是特定安全访客。在一个示例中,为了计算一个或多个度量,使用证明请求结构。证明请求结构由例如安全访客的所有者或用户在安全访客外部准备。
参考图3描述了与证明请求结构相关的描述的一个示例。如图3所示,在一个示例中,与证明请求结构相关的描述300(这里也称为证明请求结构描述300)包括多个条目302,并且每个条目302具有名称310、缩写(abbr)312和条目的简短描述(内容)314,以及保护指示(保护)316,其指示内容(例如内容314)是否受到完整性保护或受到例如只能由目标***获取的请求保护密钥的完整性和机密保护(例如加密)。在一个实例中,内容314包括请求结构的数据/属性,以及名称310、缩写词312及保护指示316提供关于内容314的信息。
作为示例,证明请求结构的一个条目318包括客户公钥(由请求实体提供),并且一个或多个其他条目320包括密钥槽1-N,每个密钥槽包括由目标主机/可信执行环境的主机密钥保护的请求保护密钥。客户公钥和密钥槽用于向可信执行环境安全地传送一组可能的目标***的请求保护密钥(例如使用(椭圆曲线)Diffie-Hellman技术),其中每个密钥槽寻址一个目标***。作为另一示例,证明请求结构描述的另一条目322包括证明密钥,缩写AK(参见缩写312),其例如是512位基于散列的消息认证码(HMAC)密钥(参见内容314),其被加密,如保护指示316所指示的。证明请求结构的附加条目324包括请求结构标签,该请求结构标签包含可以用于验证请求结构的完整性的数据。另外,认证请求结构描述300中可以包括更少和/或其他信息。证明请求结构描述300可以包括附加的、更少的和/或其它的条目,和/或每个条目可以具有附加的、更少的和/或其它的信息。此外,证明请求结构(例如,内容314)可包括额外的、更少的和/或其他数据/属性。存在许多可能性。
根据本发明的一个或多个方面,使用证明请求结构来验证或证明安全访客是特定安全访客。参考图4A-4B描述了这种处理的一个示例。
首先参考图4A,在一个示例中,在安全访客之外准备的并包括例如证明密钥402的证明请求结构400(例如,具有与内容314类似的内容)由安全访客410获取(例如,发送、提供、接收、拉取等)。安全访客410从例如安全访客状态计算本地数据412(例如连接信息和/或其它信息)。例如,本地数据是安全访客特定的,并且包括例如当例如向安全访客提交证明结构时由请求实体(例如,请求验证)用于连接到安全访客的会话信息。
此外,安全访客410执行对可信执行环境420的调用414。调用包括例如证明请求结构和本地数据。可信执行环境获取(例如,接收、被提供、拉取等)具有自变量(argument)的调用,包括证明请求结构。使用***特定私钥(又称,主机密钥)424,可信执行环境检查证明请求结构的完整性。例如,请求保护密钥从本文所述的密钥槽之一中提取,并且该密钥用于执行请求的完整性检查。基于成功的验证,可信执行环境继续执行证明请求,包括最初提取包括在请求结构中的证明密钥402。
可信执行环境确定可信执行环境的运行时数据422,诸如作为示例的安全访客实例的标识符(例如,发出证明请求的安全访客的运行实例的唯一标识)和固件版本。可信执行环境420进一步获取安全访客映像432和安全访客元数据434的一个或多个度量(例如,散列、消息认证代码、密码签名等)430。
基于接收到调用,参考图4B,可信执行环境420使用证明密钥402确定证明数据,例如用于一个或多个度量430的验证标签,诸如消息认证代码标签,本地数据412和可信执行环境的运行时数据422。该证明数据与可信执行环境的运行时数据422一起被返回给安全访客410。安全访客然后将证明数据(例如,证明数据450)、可信执行环境的运行时数据422和本地数据412返回给安全访客外部的请求实体(例如,安全访客的所有者或用户、其他实体)。证明数据450例如由证明密钥进行完整性保护,并且例如由安全访客外部的请求实体进行评估。
参考图5描述了用于验证安全访客是具有特定安全访客元数据的特定安全访客的证明过程的一个实施例的进一步细节。
在一个实施例中,诸如安全访客所有者、用户或其他实体之类的请求实体(这里也称为请求者)知道安全访客映像和安全访客元数据的一个或多个度量(例如,散列、消息认证码、密码签名等)500。请求实体生成例如证明密钥,并且将证明密钥包括在证明请求结构中502。证明请求结构可以由请求实体、另一实体生成或者是预先存在的。它包括证明密钥和可选的其它信息,如这里所述。请求实体将证明请求发送到与请求实体具有经定义关系(例如,由请求实体拥有)的安全访客504。
安全访客接收包括例如证明请求结构的证明请求,并且确定特定于安全访客的本地数据506。例如,本地数据包括例如会话的会话信息,会话当向安全访客提交证明结构时由请求实体(例如,请求验证)用来连接到安全访客。此外,安全访客调用具有证明请求结构和本地安全访客特定数据作为调用的自变量的可信执行环境功能508。
可信执行环境接收包括证明请求结构和本地数据的调用,并检查证明请求结构的完整性510。例如,可信执行环境确定证明请求结构的度量(例如,散列、消息认证代码、密码签名等),并将其与对应的已知值进行比较。如果它具有与已知值的预定义关系(例如,相等),则证明请求结构的完整性被验证。用于保护度量的请求保护密钥(例如,消息认证代码、签名)可被包括在由可信执行环境可用的***特定私钥(也称为主机密钥)保护的证明请求结构中。
基于成功验证证明请求结构的完整性,可信执行环境(例如,使用请求保护密钥)解密证明请求结构的加密部分以从加密部分提取证明密钥。可信执行环境使用证明密钥来计算至少一个完整性度量,诸如验证标签(也称为标签;例如,消息认证代码标签),其表示安全访客映像、一个或多个安全访客元数据度量、用于安全访客的本地数据和安全访客的可信执行环境运行时数据的组合512。完整性度量的计算可以使用现在已知或以后开发的一种或多种技术。可信执行环境将计算出的完整性度量(例如,验证标签)和安全访客的可信执行环境运行时数据(例如,发出证明请求的安全访客的运行实例的唯一标识)返回给安全访客516。
安全访客将所计算的完整性度量(例如,验证标签,诸如消息认证代码标签)、安全访客的可信执行环境运行时数据、和安全访客的本地数据(例如,会话信息)返回给请求实体520。
请求实体接收返回的数据522,其可以用于确定安全访客是否是特定安全访客。例如,安全访客所有者将所获取的验证标签(例如,在512中计算的和在516、520中返回的)与已知值(例如,预先存在的或计算的)进行比较,并且如果它们具有预定义关系(例如,相等),则验证该安全访客是具有特定安全访客元数据的特定安全访客。
如本文所述,提供了证明可信执行环境调用,该证明可信执行环境调用例如仅可从安全访客调用。该调用取得例如证明请求结构(或至少证明密钥)并选择本地数据(例如,会话信息)作为自变量,并且返回例如可信执行环境特定运行时数据(例如,发出证明请求的安全访客的运行实例的唯一ID)和一个或多个安全访客度量的验证标签(例如,消息认证代码或其他度量)、本地数据以及特定可信执行环境运行时数据,其使用诸如消息认证代码密钥等证明密钥被计算出。
有效的安全访客利用由请求实体准备的接收证明请求结构和本地数据(例如,专用于例如用于接收请求的会话的数据,例如由用户打开的SSH(安全外壳)或TLS(传输层安全)会话的客户证书)来调用功能。
在一个或多个方面,定义了证明请求结构,其中该请求结构由例如请求保护密钥来保护。使用可信执行环境的私钥(又称,主机密钥)将请求保护密钥安全地传递到可信执行环境。可选地,如果使用选择技术(例如,椭圆曲线Diffie-Hellman)来传送请求保护密钥,则请求结构包含客户的公钥。使用请求保护密钥对请求的一部分进行机密保护(加密);该部分包含例如证明密钥(例如消息认证码密钥)和可选的随机数。在一个示例中,请求结构包括应当证明哪些度量的指示。
在另一方面,证明功能被添加到可从安全访客调用的可信执行环境。证明功能例如将证明请求结构作为自变量。可选地,证明功能针对本地安全访客特定数据采取第二自变量。该功能例如向该功能返回安全访客映像的一个或多个度量、安全访客映像的元数据、由请求定义的任何附加数据、以及可选地来自第二自变量的本地数据,所有这些都使用证明密钥经由例如消息认证码而链接在一起。
在另一方面,为了防御中间人***,在有效安全访客中提供服务以提供远程证明功能。服务将例如在会话内接收到的请求结构作为自变量。服务导出特定于连接/会话的数据以发出请求(会话特定数据可从打开连接/会话的客户的证书、会话号等导出)。服务调用证明可信执行环境调用,其中请求结构作为一个自变量并且证书作为另一自变量。
在一个方面,可选地,可以在请求结构中选择的要包括在度量中的数据包括例如属于私钥的公钥、用于在启动安全访客时对安全访客元数据进行解包的可信执行环境、固件发布和/或安全访客ID,作为示例。
使用该功能的有效安全访客可以接收由请求实体或其它实体准备的请求结构,并且可以使用特定于用于接收请求的会话的数据作为本地数据,例如,由用户打开的安全外壳或传输层安全会话的客户证书。有效的安全访客将把证明功能的结果传递给请求实体,然后请求实体可以验证该结果,因为识别了安全访客和用于登录到安全访客的会话。
本发明的一个或多个方面不可分地依赖于计算机技术,并便于计算机内的处理,从而提高其性能。通过能够验证安全访客并为计算环境提供保护来促进处理。
参考图6A-6C描述了与本发明的一个或多个方面相关的便于计算环境内的处理的一个实施例的进一步细节。
参考图6A,在一个实施例中,可信执行环境获取证明请求600。证明请求至少包括证明密钥602。基于获取证明请求,计算一个或多个完整性度量,并且计算至少使用证明密钥604。一个或多个完整性度量被提供给实体606,并且一个或多个完整性度量将被用于验证安全访客已经使用所选择的安全访客映像和所选择的安全访客元数据来启动608。这使得请求实体能够确保安全访客是正确的安全访客,从而在计算环境中提供进一步的安全性。
在一个示例中,证明请求包括受完整性保护的证明请求结构610,并且证明密钥被维护在证明请求结构的加密部分中612。这提供了对证明请求结构、证明密钥以及与其相关联的处理的保护。
作为示例,证明请求结构可由可信执行环境独家地解释614。验证615证明请求结构的完整性保护,并且基于证明请求结构的成功验证,可信执行环境解密证明请求结构的加密部分以获取要在计算一个或多个完整性度量中使用的证明密钥616。通过验证完整性保护,安全性得以维持。如果验证不成功,则证明请求的处理失败。
在一个示例中,提供一个或多个完整性度量还包括提供要用于验证安全访客的可信执行环境的选择信息618。选择信息包括例如安全访客的运行时数据620。
此外,在一个示例中,并且参考图6B,一个或多个完整性度量包括基于至少安全访客的映像和一个或多个安全访客元数据计算的计算验证代码630。作为示例,基于安全访客的运行时数据进一步计算计算验证代码632。安全访客的运行时数据包括例如发出证明请求的安全访客的运行实例的唯一标识634。通过在返回的完整性度量中包括用于标识运行的安全访客实例的数据,该数据也被返回给请求实体。请求实体然后可以使用该数据来确定是否由可信执行环境针对相同的安全访客实例处理了多个(例如,两个)请求。
在一个示例中,基于安全访客的特定数据进一步计算计算验证代码636。
作为一个示例,证明请求经由对可信执行环境的不可拦截调用来从安全访客获取638。此外,在一个示例中,证明请求包括安全访客的特定数据640。安全访客的特定数据将与证明密钥一起使用以确定一个或多个完整性度量642。
此外,在一个示例中,实体是安全访客,并且提供还包括向安全访客提供安全访客的运行时数据644。在一个示例中,安全访客的运行时数据、一个或多个完整性度量和安全访客的特定数据将被进一步提供给请求实体以用于验证安全访客646。
作为示例,参考图6C,安全访客的特定数据包括会话的会话信息,会话由请求实体用于连接到安全访客,以向安全访客提交将在证明请求中使用的证明请求结构650。
在一个示例中,证明请求由可信执行环境经由不可拦截调用从安全访客获取652。不可拦截调用包括例如证明请求结构,该证明请求结构包括安全访客的特定数据和证明密钥654。
其它变化和实施例是可能的。
本发明的各方面可由许多类型的计算环境使用。参考图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.根据前述权利要求中的任一项所述的计算机程序产品,其中,提供所述一个或多个完整性度量还包括:提供要用于验证所述安全访客的所述可信执行环境的选择信息,所述选择信息包括所述安全访客的运行时数据。
5.根据前述权利要求中的任一项所述的计算机程序产品,其中,所述一个或多个完整性度量包括:至少基于所述安全访客的映像和一个或多个安全访客元数据所计算的计算验证代码。
6.根据权利要求5所述的计算机程序产品,其中,进一步基于所述安全访客的运行时数据来计算所述计算验证代码。
7.根据权利要求6所述的计算机程序产品,其中,所述安全访客的所述运行时数据包括发出所述证明请求的所述安全访客的运行实例的唯一标识。
8.根据权利要求6所述的计算机程序产品,其中,进一步基于所述安全访客的特定数据来计算所述计算验证代码。
9.根据前述权利要求中的任一项所述的计算机程序产品,其中,所述证明请求经由对所述可信执行环境的不可拦截调用从所述安全访客获取,并且其中,所述证明请求还包括所述安全访客的特定数据,所述安全访客的所述特定数据将与所述证明密钥一起使用以计算所述一个或多个完整性度量,并且其中,所述实体是所述安全访客,并且所述提供还包括向所述安全访客提供所述安全访客的运行时数据,其中,所述安全访客的运行时数据、所述一个或多个完整性度量和所述安全访客的所述特定数据还将被提供给请求实体以用于验证所述安全访客。
10.根据权利要求9所述的计算机程序产品,其中,所述安全访客的所述特定数据包括会话的会话信息,所述会话由所述请求实体用于连接到所述安全访客以向所述安全访客提交将在所述证明请求中使用的证明请求结构。
11.根据前述权利要求中的任一项所述的计算机程序产品,其中,所述证明请求由所述可信执行环境经由不可拦截调用从所述安全访客获取,所述不可拦截调用包括证明请求结构,所述证明请求结构包括所述证明密钥和所述安全访客的特定数据。
12.一种用于促进计算环境内的处理的计算机***,所述计算机***包括:
存储器;以及
与所述存储器通信的至少一个处理器,其中,所述计算机***被配置为执行一种方法,所述方法包括:
由可信执行环境获取证明请求,所述证明请求至少包括证明密钥;
基于获取所述证明请求,计算一个或多个完整性度量,所述计算至少使用所述证明密钥;以及
将所述一个或多个完整性度量提供给实体,所述一个或多个完整性度量将被用于验证安全访客已经使用所选择的安全访客映像和所选择的安全访客元数据来启动。
13.根据权利要求12所述的计算机***,其中,所述证明请求包括受完整性保护的证明请求结构,并且其中,所述证明密钥被维护在所述证明请求结构的加密部分中。
14.根据前述权利要求12至13中的任一项所述的计算机***,其中,提供所述一个或多个完整性度量还包括:提供要用于验证所述安全访客的所述可信执行环境的选择信息,所述选择信息包括所述安全访客的运行时数据。
15.根据权利要求14所述的计算机***,其中,所述安全访客的所述运行时数据包括发出所述证明请求的所述安全访客的运行实例的唯一标识。
16.根据权利要求12至15中的任一项所述的计算机***,其中,所述证明请求经由对所述可信执行环境的不可拦截调用从所述安全访客获取,并且其中,所述证明请求还包括所述安全访客的特定数据,所述安全访客的所述特定数据将与所述证明密钥一起使用以计算所述一个或多个完整性度量,并且其中,所述实体是所述安全访客,并且所述提供还包括向所述安全访客提供所述安全访客的运行时数据,其中,所述安全访客的运行时数据、所述一个或多个完整性度量和所述安全访客的所述特定数据还将被提供给请求实体以用于验证所述安全访客。
17.一种促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
由可信执行环境获取证明请求,所述证明请求至少包括证明密钥;
基于获取所述证明请求,计算一个或多个完整性度量,所述计算至少使用所述证明密钥;以及
将所述一个或多个完整性度量提供给实体,所述一个或多个完整性度量将被用于验证安全访客已经使用所选择的安全访客映像和所选择的安全访客元数据来启动。
18.根据权利要求17所述的计算机实现的方法,其中,所述证明请求包括受完整性保护的证明请求结构,并且其中,所述证明密钥被维护在所述证明请求结构的加密部分中。
19.根据前述权利要求17至18中的任一项所述的计算机实现的方法,其中,提供所述一个或多个完整性度量还包括:提供要用于验证所述安全访客的所述可信执行环境的选择信息,所述选择信息包括所述安全访客的运行时数据。
20.根据权利要求17至19中的任一项所述的计算机实现的方法,其中,所述证明请求经由对所述可信执行环境的不可拦截调用从所述安全访客获取,并且其中,所述证明请求还包括所述安全访客的特定数据,所述安全访客的所述特定数据将与所述证明密钥一起使用以计算所述一个或多个完整性度量,并且其中,所述实体是所述安全访客,并且所述提供还包括向所述安全访客提供所述安全访客的运行时数据,其中,所述安全访客的运行时数据、所述一个或多个完整性度量和所述安全访客的所述特定数据还将被提供给请求实体以用于验证所述安全访客。
CN202280054156.0A 2021-08-05 2022-08-03 安全访客的证明 Pending CN117795514A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/395,053 2021-08-05
US17/395,053 US20230044731A1 (en) 2021-08-05 2021-08-05 Attestation of a secure guest
PCT/EP2022/071774 WO2023012201A1 (en) 2021-08-05 2022-08-03 Attestation of a secure guest

Publications (1)

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

Family

ID=83115432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280054156.0A Pending CN117795514A (zh) 2021-08-05 2022-08-03 安全访客的证明

Country Status (7)

Country Link
US (1) US20230044731A1 (zh)
EP (1) EP4381404A1 (zh)
KR (1) KR20240021937A (zh)
CN (1) CN117795514A (zh)
CA (1) CA3217422A1 (zh)
TW (1) TW202307712A (zh)
WO (1) WO2023012201A1 (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 (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788763B2 (en) * 2011-10-13 2014-07-22 International Business Machines Corporation Protecting memory of a virtual guest
KR101769353B1 (ko) * 2012-03-22 2017-08-18 한국전자통신연구원 증강 방송 스트림 송출 장치 및 방법, 및 증강 방송 서비스 제공 장치 및 방법
US11989332B2 (en) * 2016-08-11 2024-05-21 Intel Corporation Secure public cloud with protected guest-verified host control
US10379894B1 (en) * 2016-09-27 2019-08-13 Amazon Technologies, Inc. Lineage-based trust for virtual machine images
US10338957B2 (en) * 2016-12-27 2019-07-02 Intel Corporation Provisioning keys for virtual machine secure enclaves
US10878101B2 (en) * 2018-09-07 2020-12-29 Raytheon Company Trusted booting by hardware root of trust (HRoT) device
US11159321B2 (en) * 2018-12-19 2021-10-26 Alclear, Llc Digital notarization using a biometric identification service
US11164179B2 (en) * 2019-01-22 2021-11-02 Apple, Inc. Secure credential storage and retrieval
US11256785B2 (en) * 2019-07-09 2022-02-22 Microsoft Technologly Licensing, LLC Using secure memory enclaves from the context of process containers
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
US20220141026A1 (en) * 2020-11-02 2022-05-05 Intel Corporation Graphics security with synergistic encryption, content-based and resource management technology
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
US11893410B2 (en) * 2021-01-13 2024-02-06 Vmware, Inc. Secure storage of workload attestation reports in a virtualized and clustered computer system

Also Published As

Publication number Publication date
CA3217422A1 (en) 2023-02-09
TW202307712A (zh) 2023-02-16
US20230044731A1 (en) 2023-02-09
WO2023012201A1 (en) 2023-02-09
EP4381404A1 (en) 2024-06-12
KR20240021937A (ko) 2024-02-19

Similar Documents

Publication Publication Date Title
US20170300309A1 (en) Application deployment and monitoring in a cloud environment to satisfy integrity and geo-fencing constraints
JP7397557B2 (ja) セキュア実行ゲスト所有者環境制御
KR102551935B1 (ko) 보안 운영 체제 이미지의 점진적 복호화 및 무결성 검증
US10984108B2 (en) Trusted computing attestation of system validation state
AU2020426828B2 (en) Reserving one or more security modules for secure guest
TWI808749B (zh) 用於安全客體映像及後設資料更新之電腦程式產品、電腦系統及電腦實施方法
CN117813605A (zh) 开源容器数据管理
CN117795514A (zh) 安全访客的证明
US11829495B2 (en) Confidential data provided to a secure guest via metadata
US11809607B2 (en) Customization of multi-part metadata of a secure guest
US11645092B1 (en) Building and deploying an application
JP2024528930A (ja) セキュア・ゲストの証明
JP2024528833A (ja) セキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータの更新
JP2024528835A (ja) セキュアなゲストの多部分メタデータのカスタマイゼーション

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: 40104308

Country of ref document: HK