CN113645179B - 配置虚拟实体的方法、计算机***和存储介质 - Google Patents

配置虚拟实体的方法、计算机***和存储介质 Download PDF

Info

Publication number
CN113645179B
CN113645179B CN202110410395.2A CN202110410395A CN113645179B CN 113645179 B CN113645179 B CN 113645179B CN 202110410395 A CN202110410395 A CN 202110410395A CN 113645179 B CN113645179 B CN 113645179B
Authority
CN
China
Prior art keywords
computing device
program code
virtual entity
configuration data
verification
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.)
Active
Application number
CN202110410395.2A
Other languages
English (en)
Other versions
CN113645179A (zh
Inventor
J·莱特
C·达文波特
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN113645179A publication Critical patent/CN113645179A/zh
Application granted granted Critical
Publication of CN113645179B publication Critical patent/CN113645179B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3242Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/45587Isolation or security of 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

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

Abstract

本公开涉及响应于对虚拟实体程序代码的验证解锁对信息的访问。在一些示例中,管理控制器包括用于与计算设备进行通信的通信接口,其中,管理控制器与计算设备的处理器是分开的。管理控制器包括管理处理器,用于执行对计算设备的虚拟实体的程序代码的验证,并且响应于对程序代码的验证,解锁对信息存储中的信息的访问以允许计算设备访问该信息,其中,该信息供计算设备的虚拟实体使用,并且其中,在验证之前,管理处理器将阻止对信息存储中信息的访问。

Description

配置虚拟实体的方法、计算机***和存储介质
技术领域
本公开总体上涉及响应于对虚拟实体程序代码的验证解锁对信息的访问。
背景技术
计算设备可以包括虚拟实体,例如容器或虚拟机(VM)。每个虚拟实体可以被初始化并被配置为在计算设备中运行。每个虚拟实体的初始化和配置可以基于配置数据和其他信息。
发明内容
根据本公开的一方面,提供了一种计算机***,包括:管理控制器,包括:存储器,所述存储器用于存储计算设备中的虚拟实体的配置数据的加密版本,其中,所述配置数据定义所述虚拟实体的功能;用于与所述计算设备进行通信的通信接口,其中,所述管理控制器与所述计算设备的处理器是分开的;以及管理处理器,所述管理处理器用于:执行对所述计算设备的所述虚拟实体的程序代码的验证,通过阻止将解密密钥传送到所述计算设备,在所述验证之前阻止对所述管理控制器的所述存储器中的所述配置数据的所述加密版本的访问,以及响应于对所述程序代码的所述验证,通过将所述解密密钥发送到所述计算设备来解锁对所述配置数据的所述加密版本的访问,所述解密密钥能够由所述程序代码在对所述配置数据的所述加密版本进行解密时使用,以产生定义所述虚拟实体的所述功能的解密配置数据;处理器;以及存储介质,所述存储介质存储能够在所述处理器上执行的所述程序代码,以使用定义所述虚拟实体的所述功能的所述解密配置数据来配置所述虚拟实体。
根据本公开的另一方面,提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质包括指令,所述指令在执行时使得***:在所述***的管理控制器的存储器中存储所述***的计算设备中的虚拟实体集群的配置数据的加密版本,所述配置数据定义所述虚拟实体集群中的所述虚拟实体的功能;执行对所述虚拟实体集群的程序代码的验证,其中,所述管理控制器与所述计算设备是分开的,并且即使所述计算设备被断电,所述管理控制器保持由辅助电源供电;通过阻止将解密密钥传送到所述计算设备,在所述验证之前阻止对所述管理控制器的所述存储器中的所述配置数据的所述加密版本的访问;响应于对所述程序代码的所述验证,通过将所述解密密钥发送到所述计算设备来解锁对所述配置数据的所述加密版本的访问;由所述程序代码使用所述解密密钥对所述配置数据的所述加密版本进行解密,以产生定义所述虚拟实体集群中的所述虚拟实体的所述功能的解密配置数据;以及使用定义所述虚拟实体集群中的所述虚拟实体的所述功能的所述解密配置数据来配置所述虚拟实体集群的所述虚拟实体。
根据本公开的另一方面,提供了一种配置虚拟实体的方法,包括:在管理控制器的存储器中存储计算设备中的虚拟实体的配置数据的加密版本,所述配置数据定义所述虚拟实体的功能;由所述管理控制器与所述计算设备通信,其中,所述管理控制器与所述计算设备的处理器是分开的;由所述管理控制器执行对所述计算设备的所述虚拟实体的程序代码的验证;由所述管理控制器,通过阻止将解密密钥传送到所述计算设备,在所述验证之前阻止对所述管理控制器的所述存储器中的所述配置数据的所述加密版本的访问;响应于对所述程序代码的所述验证,由所述管理控制器通过将所述解密密钥发送到所述计算设备来解锁对所述配置数据的所述加密版本的访问;由所述程序代码使用所述解密密钥对所述配置数据的所述加密版本进行解密,以产生定义所述虚拟实体的所述功能的解密配置数据;以及使用定义所述虚拟实体的所述功能的所述解密配置数据来配置所述虚拟实体。
附图说明
根据以下附图描述了本公开的一些实施方式。
图1和图2是根据一些示例的包括虚拟实体和管理控制器的计算机封装的框图。
图3是根据一些示例的管理控制器的框图。
图4是根据一些示例的存储机器可读指令的存储介质的框图。
图5是根据一些示例的过程的流程图。
在这些附图中,相同的附图标记表示相似但不一定相同的元件。附图不一定按比例绘制,并且某些部分的尺寸可能被夸大以更清楚地表明所示出的示例。此外,附图提供了与描述一致的示例和/或实施方式。然而,描述不限于附图中提供的示例和/或实施方式。
具体实施方式
在本公开中,术语“一个(a,an)”或“该(the)”的使用也意图包括复数形式,除非上下文另外明确指出。而且,当在本公开中使用时,术语“包括(includes,including,comprises,comprising)”、“具有(have,having)”指定存在所述要素,但不排除存在或添加其他元素。
“虚拟实体”可以是指计算设备内的逻辑实体,该逻辑实体能够执行虚拟实体的任务,该虚拟实体独立于计算设备中的另一虚拟实体。虚拟实体的一个示例是容器。虚拟实体的另一个示例是虚拟机(VM)。在虚拟实体是容器或VM的示例中,虚拟实体提供了一个可以执行一个程序(或多个程序)的虚拟环境,使得在虚拟环境中执行的(多个)程序与其他虚拟环境(其他容器或VM)的(多个)程序隔离开。
容器类似于VM,但是容器具有宽松的隔离属性,以在容器中执行的多个应用程序之间共享计算设备的主机OS(host OS)。容器提供了一种虚拟化主机OS的方法,以便(容器中的应用程序的)多个工作负载可以在主机OS的单个实例上运行。相反,VM具有在相应的VM中运行的各自的客户机OS(guest OS)。VM中的应用程序在VM的客户机OS的环境中运行。
虚拟实体可以基于配置数据在计算设备中初始化并执行。虚拟实体的“配置数据”可以定义虚拟实体的各种属性。例如,配置数据可以包括规范(例如,以模板的形式),该规范定义虚拟实体的名称,功能和其他属性。作为另一个示例,配置数据可以指定变量的值、将由虚拟实体执行的任务等等。
在某些情况下,虚拟实体的配置数据可能存储在计算设备中不安全或安全性不充分的存储位置中,这可能使攻击者获得未经授权的访问或导致配置数据的损坏。例如,在某些情况下,配置数据可以与计算设备的OS一起存储,这可能遭受攻击者的攻击。攻击者可以指恶意软件、黑客或未经授权执行操作或访问计算设备信息的任何其他实体。攻击者可能会通过以下方法来攻击配置数据:修改配置数据,以使虚拟实体不按预期方式表现;删除或破坏配置数据,以使虚拟实体无法运行;检索配置数据作为窃取数据的一部分等等。
如果配置数据被泄露,则虚拟实体可能根本无法执行,或者可能无法正确执行。在其他情况下,如果配置数据遭到破坏,则攻击者可能获得对计算设备中的资源或数据的未授权访问。在其他示例中,如果配置数据由未授权实体检索,则未授权实体可以以未授权方式使用配置数据。
根据本公开的一些实施方式,与计算设备的处理器分开的管理控制器可以用于验证计算设备中的虚拟实体的程序代码。响应于程序代码的验证,管理控制器解锁对信息存储中的信息的访问以允许计算设备访问信息,其中该信息供计算设备的虚拟实体使用,并且其中管理控制器将在验证之前阻止对信息存储中信息的访问。
图1是计算机封装100的框图,计算机封装100包括计算设备102和基板管理控制器(BMC)104。BMC 104是与计算设备102的处理器106分开的管理控制器的示例。处理器可以包括微处理器、多核微处理器的核、微控制器、可编程集成电路、可编程门阵列或另一硬件处理电路。
BMC 104能够通过计算设备102与BMC 104之间的安全连接108与计算设备102进行通信。
“安全连接”可以指保护BMC 104免受攻击者未经授权的访问的任何通信介质,无论是物理的还是逻辑的。例如,BMC 104可以驻留在可能在计算设备102中运行的程序——诸如应用程序或操作***(OS)——无法访问的通信信道(例如,总线,网络等)上。在其他示例中,可以诸如通过加密机制来保护通过安全连接108的通信,在该加密机制中,对BMC 104和计算设备102之间交换的信息进行加密。
在一些示例中,“计算设备”可以包括以下各项的任意组合或某种组合:服务器计算机、桌面型计算机、笔记本计算机、平板计算机、智能电话、通信节点(例如,交换机、路由器等)、存储服务器、车辆或车辆的控制器等。
尽管图1示出了仅包括一个计算设备102的计算机封装100,但是在其他示例中,计算机封装100可以包括多个计算设备。在这样的示例中,计算机封装100可以是容纳多个计算设备的机架的形式。BMC 104(或多个BMC)可以与计算机封装100中的多个计算设备通信。
如本文所使用的,“BMC”是专用服务控制器,其使用传感器监视计算设备(诸如102)的物理状态,并通过独立的“带外”连接与管理***105(作为示例,远离计算机封装100的管理***105)进行通信。BMC 104还可以通过输入/输出控制器(IOCTL)接口驱动程序、代表性状态传输(REST)应用程序接口(API)或一些其他能够促进BMC 104和应用程序之间通信的***软件代理与在OS级别执行的应用程序进行通信。BMC 104可以具有对位于计算设备中的硬件组件的硬件级别访问。BMC 104可能能够直接修改硬件组件(诸如硬件组件的设置或配置)。BMC 104可以独立于计算设备102的OS 109进行操作。BMC 104可以位于要由BMC104监视的计算设备102的主板或主电路板上。BMC 104安装在受管理的计算设备102的母板上或以其他方式连接或附接到受管理的计算设备102的事实并不妨碍BMC 104被认为与执行OS109的处理资源(例如,计算设备102中的106)是分开的。BMC 104具有管理能力以管理计算设备102的组件。BMC 104的管理能力的示例可以包括以下各项的任意组合或某种组合:功率控制以执行计算设备102的功率管理(例如,响应于检测到的事件,在计算设备的不同的功耗状态之间转换)、计算设备102的热监视和控制(诸如用于监视计算设备的温度并用于控制计算设备的热管理设备)、计算设备102中风扇的风扇控制,基于对计算设备102的各种传感器的监测数据的监视的***健康状况监视、计算设备102的远程访问(例如,以通过网络访问计算设备)、计算设备102的远程重启(以使用远程命令触发计算设备重启)、计算设备102的***设置和部署、用于在计算设备102中实现安全性程序的***安全性等等。
在一些示例中,BMC 104可以为计算设备提供所谓的“熄灯(lights-out)”功能。即使OS109没有安装在计算设备102上或在计算设备102上不起作用,熄灯功能也可以允许诸如***管理员的用户在计算设备102上执行管理操作。
此外,在如图1所示的一些示例中,BMC 104可以依靠由辅助电源110(例如,电池)提供的辅助电力运行;作为结果,计算设备102不必被通电以允许BMC 104执行BMC的操作。由BMC 104提供的服务可被视为“带外”服务,因为OS109可能未运行,并且在某些情况下,计算设备102可能已关闭电源或无法正常运行(例如,计算设备102已经遭受故障或硬件故障)。
BMC 104可以包括通信接口112,诸如网络接口和/或串行接口,管理员或其他实体(例如管理***105)的设备可以使用该通信接口112来与BMC 104进行远程通信。通信接口112可以包括用于通过通信信道发送和接收信号的收发器,以及与用于在通信信道上进行数据通信的通信协议相关联的任何(多个)协议层。BMC 104可以经由专用管理信道(例如,通信接口)提供“带外”服务,并且无论计算设备102是否处于通电状态,该服务都是可用的。
辅助电源110与向计算设备102提供电力的主电源(未示出)是分开的。
BMC 104还包括处理器114和非易失性(non-volatile,NV)存储器116。可以使用非易失性存储器设备(或多个非易失性存储器设备)来实现非易失性存储器116,非易失性存储器设备诸如闪存设备,或即使存储器设备断电仍可保持存储在存储器设备中的数据的其他类型的存储器设备。
非易失性存储器116存储可以在BMC 104的处理器114上执行以验证计算设备102的程序代码的程序代码验证指令118(例如,以固件或软件的形式)。计算设备102的代码包括存储在计算设备102的存储介质128中的以下程序代码(包括机器可读指令):虚拟实体程序代码130,包括引导代码134的固件132,以及OS109。由程序代码验证指令118执行的对程序代码的验证包括以指定顺序验证不同程序代码的验证任务序列(也称为“信任根”序列)。
可以使用存储设备或多个存储设备来实现存储介质128。存储设备的示例可以包括以下各项的任意组合或某种组合:非易失性存储器设备,基于磁盘的存储器设备,易失性存储器设备等。
验证任务序列例如可以包括如下序列。在对计算设备102上电后,程序代码验证指令118从计算设备102的存储介质128中获取启动代码。启动代码可以包括引导代码134的引导块。执行引导代码134以初始化计算设备102的各种电子组件。引导代码134的引导块是指引导代码134的初始部分,用于执行计算设备102的初始启动。
程序代码验证指令118可被执行以验证启动代码,诸如通过基于施加在启动代码上的哈希函数计算哈希值,并将计算出的哈希值与存储的哈希值进行比较,以确定启动代码是否有效(即没有经过未经授权的修改)。哈希函数可以是加密哈希函数,诸如安全哈希算法(SHA)函数、散列消息认证码(HMAC)哈希函数(也称为用于消息认证的密钥散列(Keyed-Hashing for Message Authentication)哈希函数,如在日期为1997年2月的Request for Comments(RFC)6151中所描述的)、bcrypt哈希函数等等。
如果程序代码验证指令118成功验证了启动代码,则BMC 104可将计算设备102的处理器106退出重置,并允许计算设备102提取程序代码的其他部分。例如,当通过BMC 104的程序代码验证指令118验证相应的程序代码时,可以提取引导代码134的连续部分,然后提取固件132。一旦固件132被验证,就可以通过程序代码验证指令118来检索OS109的内核以进行验证,随后对OS109的其余部分进行检索和验证。一旦OS109被验证,则BMC 104的程序代码验证指令118可以验证计算设备102的应用堆栈。在一些示例中,应用堆栈可以包括计算设备102的虚拟实体程序代码130。
当由计算设备102执行时,每个虚拟实体程序代码130在计算设备102中提供相应的虚拟实体。由相应的虚拟实体程序代码130提供的虚拟实体可以包括容器\VM等。当由BMC104执行时,BMC 104的程序代码验证指令118可以验证虚拟实体程序代码130。
验证计算设备102的每一个程序代码可以采用如上所述的哈希值来验证启动代码。在其他示例中,可以基于加密密钥、密码签名等的使用来验证程序代码。加密密钥可用于解密加密的程序代码,以确定加密的程序代码是否可以被成功解密。密码签名可用于确定与程序代码关联的签名是否为有效签名。
如图1所示,非易失性存储器116还存储用于与计算设备102的虚拟实体程序代码130对应的虚拟实体的配置数据136。更具体地,配置数据136可以由相应的虚拟实体程序代码130访问,用于配置要在计算设备102中启动的相应虚拟实体。配置数据136的示例包括上面进一步讨论的那些配置数据。
根据本公开的一些实施方式,存储在BMC 104的非易失性存储器116中的配置数据136保持锁定状态,以禁止计算设备102(或更具体地,计算设备102中的虚拟实体程序代码130)进行访问,直到BMC 104执行的程序代码验证指令118已成功完成验证任务序列。在一些示例中,锁定配置数据136以禁止访问可以是指一种机制或技术。通过使用这种机制或技术,BMC 104拒绝对配置数据136的请求。
在进一步的示例中,锁定配置数据136以禁止访问可以是指防止将密钥(例如加密密钥)传达给虚拟实体程序代码130,以使虚拟实体程序代码130无法解密配置数据136,配置数据可以以加密形式存储在非易失性存储器116中。可以将密钥作为密钥数据138的一部分存储在非易失性存储器116中。一旦将加密密钥(或更具体地,解密密钥)提供给虚拟实体程序代码130,虚拟实体程序代码130就能够解密已加密的配置数据136,以在解密后访问配置数据136。
在一些示例中,密钥数据138还可以包括认证密钥(或多个认证密钥),与多段虚拟实体程序代码130相对应的多个虚拟实体可以使用该认证密钥来对彼此进行认证。例如,多个虚拟实体可以是虚拟实体集群的一部分,并且这样的虚拟实体可以彼此交互以执行指定的任务。通过允许虚拟实体使用认证密钥对彼此进行认证,可以确保虚拟实体之间的交互安全。
图2示出了计算机封装200的示例,该计算机封装200包括布置成提供根据KUBERNETES的容器的计算设备202。KUBERNETES提供了可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,这有助于声明式配置和自动化两者。
KUBERNETES平台包括KUBERNETES控制平面(也称为KUBERNETES“主控者”(master))和若干个(一个或超过一个)的KUBERNETES“工作者”(worker)。主控者和(多个)工作者一起形成集群。
主控者是指用于管理集群状态的进程的集合。主控者的进程可以在主控节点204中执行。“节点”是指工作机,其可以是VM或物理机的形式。
工作者的进程在工作节点206上运行。集群可以包括主控节点204和若干个(一个或超过一个)工作节点206。工作节点206运行容器化的应用程序。更具体地,工作节点206托管容器集(pod),容器集是在工作节点206中运行的应用程序的工作负载的组成部分。主控节点204还托管提供用于管理群集的主控者的进程的容器集。
“容器集”是KUBERNETES环境中的基本执行单元。换句话说,容器集是KUBERNETES对象模型中可以创建或部署的最小和最简单的单元。容器集表示集群中正在运行的进程。容器集可以运行单个容器,也可以运行可以协同工作的多个容器。
容器集封装了应用的容器(或在某些情况下为多个容器)、存储资源、唯一的网络地址(例如Internet协议或IP地址)以及用于管理容器应如何运行的选项。
在一些示例中,KUBERNETES环境中的主控节点204的进程可以包括应用编程接口(API)服务器容器集208、调度器容器集210和控制器管理器容器集212。
API服务器容器集208公开KUBERNETES控制平面的API,其中该API支持诸如通过使用超文本传输协议(HTTP)命令来检索、创建、更新和删除资源。
调度器容器集210可以监视新创建的容器集,并且选择工作节点206以运行每个新创建的容器集。在一些示例中,调度决策考虑的因素可以包括以下各项的任意组合:资源需求、硬件/软件/策略约束、亲和力和反亲和力规范、数据局部性、工作负载间的干扰、期限等。
控制器管理器容器集212可以检测并响应工作节点206何时中断,创建帐户和API访问令牌等。
尽管列出了主控节点204的特定示例进程,但在其他示例中,其他进程也可以在工作节点206中运行。
在KUBERNETES环境中,每个工作节点206可以运行Kubelet容器集214和若干个(一个或超过一个)工作者容器集216。Kubelet容器集214可以与主控者通信,以允许工作节点206由主控者控制(或更具体地,由主控节点204的进程控制)。每个工作者容器集216运行由工作节点206托管的应用程序的工作负载。尽管未显示,工作节点206也可以运行代理容器集,该代理容器集是维护集群的网络规则的网络代理。
计算机封装200进一步包括BMC 104,以执行类似于图1的BMC 104的任务。更具体地,除了图1中描绘的其他程序代码之外,程序代码验证指令118可以验证计算设备202的程序代码,包括用于KUBERNETES主控者和工作者的程序代码。BMC 104可以锁定对存储在BMC的非易失性存储器116中的配置数据136的访问,直到程序代码验证指令118成功验证了计算设备202的程序代码,包括用于在204处的主控节点和工作节点206的程序代码。
图3是根据一些示例的管理控制器300(例如,图1或图2中的BMC 104)的框图。管理控制器300包括与计算设备(例如,图1中的102或图2中的202)通信的通信接口302。管理控制器300与计算设备的处理器分开。
管理控制器300包括执行各种任务的管理处理器304。管理处理器304的任务包括虚拟实体验证任务306,以执行对计算设备的虚拟实体的程序代码的验证。虚拟实体的示例可以包括容器(例如,由图2中的工作节点206中的容器集提供的容器)、VM等。在一些示例中,验证可以基于计算每一个程序代码的哈希值。
管理处理器304的任务包括信息存储解锁任务308,以响应于程序代码的验证,解锁对信息存储(例如,图1或图2中的非易失性存储器116)中的信息(例如,图1或图2中的配置数据126)的访问,从而允许计算设备访问信息。该信息供计算设备的虚拟实体使用,其中,在验证之前,管理处理器304将阻止对信息存储中的信息的访问。
在一些示例中,管理处理器304通过向计算设备发送密钥以解锁对信息存储中的信息的访问。密钥(可以由管理处理器304从信息存储中检索到该密钥)包括解密密钥,该解密密钥用于解密信息存储中的加密信息。
在另外的示例中,被访问的信息存储中的信息可以包括认证密钥,供虚拟实体在彼此进行认证时使用(例如,在虚拟实体是集群的一部分的示例中)。
在另外的示例中,作为计算设备的管理的一部分,管理控制器300可以包括通信接口(例如,图1或图2中的112),用于与远程实体(例如,图1中的105)进行通信。
图4是存储机器可读指令的非暂时性机器可读或计算机可读存储介质400的框图,该机器可读指令在执行时使管理控制器(例如,图1或图2中的104)执行各种任务。
机器可读指令包括虚拟实体程序代码验证指令402,以执行对计算设备(例如,图1中的102或图2中的202)中的虚拟实体集群的程序代码的验证。其中,管理控制器与计算设备是分开的,并且即使计算设备被断电,管理控制器仍由辅助电源(例如,图1或图2中的110)保持供电。
机器可读指令还包括信息存储解锁指令404,以响应于程序代码的验证,解锁对信息存储(例如,图1或图2中的非易失性存储器116)中的信息(例如,图1或2中的配置数据136)的访问,从而允许计算设备访问信息。该信息供虚拟实体集群在彼此交互时使用并用于执行虚拟实体集群中的虚拟实体的任务,并且其中,在验证之前,管理控制器将阻止对信息存储中的信息的访问。
在一些示例中,虚拟实体集群包括主控虚拟实体(例如,KUBERNETES主控者)和工作者虚拟实体(例如,KUBERNETES工作者)。
图5是在一些示例中由管理控制器(例如,图1或图2中的BMC 104)执行的过程500的流程图。过程500包括执行(在502处)与管理控制器分开的计算设备的机器可读指令的验证序列,该验证序列包括对计算设备的引导代码的第一验证和对计算设备中的虚拟实体的程序代码的第二验证。
过程500包括,响应于第一验证和第二验证,解锁(在504处)对信息存储中的信息的访问以允许计算设备访问信息,其中,该信息供虚拟实体在彼此交互时使用并用于执行虚拟实体的任务,并且其中,在验证序列完成之前,管理控制器将阻止对信息存储中的信息的访问。
存储介质(例如,图1中的116或图4中的400)可以包括以下各项的任意组合或某种组合:半导体存储器设备,诸如动态或静态随机存取存储器(DRAM或SRAM),可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存或其他类型的非易失性存储器设备;磁盘,诸如固定磁盘、软盘和可移动磁盘;另一磁性介质,包括磁带;光学介质,诸如光盘(CD)或数字视盘(DVD);或其他类型的存储设备。需要注意的是,可以在一个计算机可读或机器可读存储介质上提供上述讨论的指令,或者可以在分布在具有多个节点的大型***中的多个计算机可读或机器可读存储介质上提供上述讨论的指令。这样的一种或多种计算机可读或机器可读存储介质被认为是物品(或制造品)的一部分。物品或制造品可以指任何制造的单个组件或多个组件。一个或多个存储介质可以位于运行机器可读指令的机器中,也可以位于远程站点,可以通过网络从该远程站点下载机器可读指令以执行。
在前面的描述中,阐述了许多细节以提供对本公开的主题的理解。然而,可以在缺少这些细节中的一些细节的情况下实践实施方式。其他实施方式可以包括对以上讨论的细节的修改和变化。旨在使所附权利要求覆盖这些修改和变型。

Claims (20)

1.一种计算机***,包括:
管理控制器,包括:
存储器,所述存储器用于存储计算设备中的虚拟实体的配置数据的加密版本,其中,所述配置数据定义所述虚拟实体的功能;
用于与所述计算设备进行通信的通信接口,其中,所述管理控制器与所述计算设备的处理器是分开的;以及
管理处理器,所述管理处理器用于:
执行对所述计算设备的所述虚拟实体的程序代码的验证,
通过阻止将解密密钥传送到所述计算设备,在所述验证之前阻止对所述管理控制器的所述存储器中的所述配置数据的所述加密版本的访问,以及
响应于对所述程序代码的所述验证,通过将所述解密密钥发送到所述计算设备来解锁对所述配置数据的所述加密版本的访问,所述解密密钥能够由所述程序代码在对所述配置数据的所述加密版本进行解密时使用,以产生定义所述虚拟实体的所述功能的解密配置数据;
处理器;以及
存储介质,所述存储介质存储能够在所述处理器上执行的所述程序代码,以使用定义所述虚拟实体的所述功能的所述解密配置数据来配置所述虚拟实体。
2.如权利要求1所述的计算机***,其中,所述虚拟实体包括容器,并且其中,对所述程序代码的所述验证包括对所述计算设备中的所述容器的程序代码的验证。
3.如权利要求1所述的计算机***,其中,所述虚拟实体包括虚拟机,并且其中,对所述程序代码的所述验证包括对所述计算设备中的所述虚拟机的程序代码的验证。
4.如权利要求1所述的计算机***,其中,所述存储器还用于存储所述解密密钥。
5.如权利要求1所述的计算机***,其中,所述配置数据还指定变量的值。
6.如权利要求1所述的计算机***,其中,所述虚拟实体的所述程序代码的所述验证基于使用加密密钥来解密所述程序代码。
7.如权利要求1所述的计算机***,其中,所述管理控制器中的所述存储器用于存储认证密钥,并且其中,所述管理处理器用于响应于对所述程序代码的所述验证,解锁对所述认证密钥的访问以允许所述虚拟实体访问所述认证密钥来进行认证。
8.如权利要求1所述的计算机***,其中,所述验证基于计算所述程序代码中的每一个程序代码的哈希值。
9.如权利要求1所述的计算机***,还包括:
用于与远程实体进行通信的通信接口,所述远程实体作为所述计算设备的管理的一部分。
10.如权利要求1所述的计算机***,其中,所述管理控制器是基板管理控制器。
11.如权利要求1所述的计算机***,其中,所述管理处理器用于:
在对所述虚拟实体的所述程序代码的所述验证之前,进一步验证所述计算设备的其他程序代码,其中,所述其他程序代码包括引导代码和操作***(OS)。
12.如权利要求7所述的计算机***,其中,所述虚拟实体用于使用所述认证密钥来对彼此进行认证。
13.一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质包括指令,所述指令在执行时使得***:
在所述***的管理控制器的存储器中存储所述***的计算设备中的虚拟实体集群的配置数据的加密版本,所述配置数据定义所述虚拟实体集群中的所述虚拟实体的功能;
执行对所述虚拟实体集群的程序代码的验证,其中,所述管理控制器与所述计算设备是分开的,并且即使所述计算设备被断电,所述管理控制器保持由辅助电源供电;
通过阻止将解密密钥传送到所述计算设备,在所述验证之前阻止对所述管理控制器的所述存储器中的所述配置数据的所述加密版本的访问;
响应于对所述程序代码的所述验证,通过将所述解密密钥发送到所述计算设备来解锁对所述配置数据的所述加密版本的访问;
由所述程序代码使用所述解密密钥对所述配置数据的所述加密版本进行解密,以产生定义所述虚拟实体集群中的所述虚拟实体的所述功能的解密配置数据;以及
使用定义所述虚拟实体集群中的所述虚拟实体的所述功能的所述解密配置数据来配置所述虚拟实体集群的所述虚拟实体。
14.如权利要求13所述的非暂时性机器可读存储介质,其中,所述虚拟实体集群包括控制虚拟实体和工作者虚拟实体。
15.如权利要求14所述的非暂时性机器可读存储介质,其中,所述控制虚拟实体包括控制节点的进程,所述工作者虚拟实体包括工作节点的进程。
16.如权利要求13所述的非暂时性机器可读存储介质,其中,所述指令在执行时使得所述***在所述管理控制器的所述存储器中存储所述解密密钥。
17.如权利要求13所述的非暂时性机器可读存储介质,其中,所述虚拟实体集群的所述程序代码的所述验证基于使用加密密钥来解密所述程序代码。
18.如权利要求13所述的非暂时性机器可读存储介质,其中,所述指令在执行时使得所述***:
在所述管理控制器的所述存储器中存储认证密钥;以及
响应于对所述程序代码的所述验证,解锁对所述认证密钥的访问以允许所述虚拟实体访问所述认证密钥来对彼此进行认证。
19.一种配置虚拟实体的方法,包括:
在管理控制器的存储器中存储计算设备中的虚拟实体的配置数据的加密版本,所述配置数据定义所述虚拟实体的功能;
由所述管理控制器与所述计算设备通信,其中,所述管理控制器与所述计算设备的处理器是分开的;
由所述管理控制器执行对所述计算设备的所述虚拟实体的程序代码的验证;
由所述管理控制器,通过阻止将解密密钥传送到所述计算设备,在所述验证之前阻止对所述管理控制器的所述存储器中的所述配置数据的所述加密版本的访问;
响应于对所述程序代码的所述验证,由所述管理控制器通过将所述解密密钥发送到所述计算设备来解锁对所述配置数据的所述加密版本的访问;
由所述程序代码使用所述解密密钥对所述配置数据的所述加密版本进行解密,以产生定义所述虚拟实体的所述功能的解密配置数据;以及
使用定义所述虚拟实体的所述功能的所述解密配置数据来配置所述虚拟实体。
20.如权利要求19所述的方法,包括:
在所述管理控制器的所述存储器中存储认证密钥;
响应于对所述程序代码的所述验证,由所述管理控制器解锁对所述认证密钥的访问;以及
由所述虚拟实体访问所述认证密钥来对彼此进行认证。
CN202110410395.2A 2020-04-27 2021-04-16 配置虚拟实体的方法、计算机***和存储介质 Active CN113645179B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/859,321 US11537732B2 (en) 2020-04-27 2020-04-27 Unlocking access of information responsive to validation of program codes of virtual entities
US16/859,321 2020-04-27

Publications (2)

Publication Number Publication Date
CN113645179A CN113645179A (zh) 2021-11-12
CN113645179B true CN113645179B (zh) 2024-04-05

Family

ID=78222405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110410395.2A Active CN113645179B (zh) 2020-04-27 2021-04-16 配置虚拟实体的方法、计算机***和存储介质

Country Status (3)

Country Link
US (1) US11537732B2 (zh)
CN (1) CN113645179B (zh)
DE (1) DE102021105949A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669645B2 (en) * 2021-07-27 2023-06-06 Dell Products L.P. Delegated authorization via chassis management controller
US20220004398A1 (en) * 2021-09-22 2022-01-06 Intel Corporation Integrated circuit package reconfiguration mechanism
US20230131132A1 (en) * 2021-10-21 2023-04-27 Nokia Solutions And Networks Oy Securing containerized applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105659211A (zh) * 2013-09-17 2016-06-08 微软技术许可有限责任公司 虚拟机管理器促进的选择性代码完整性实施
US10461937B1 (en) * 2013-12-18 2019-10-29 Amazon Technologies, Inc. Hypervisor supported secrets compartment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443078B2 (en) * 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US9027087B2 (en) * 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9626512B1 (en) * 2015-03-30 2017-04-18 Amazon Technologies, Inc. Validating using an offload device security component
US11042643B2 (en) * 2015-12-24 2021-06-22 Intel Corporation Trusted deployment of application containers in cloud data centers
US11714910B2 (en) * 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
US11809576B2 (en) * 2020-01-30 2023-11-07 Red Hat, Inc. Establishing secure remote access to debug logs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105659211A (zh) * 2013-09-17 2016-06-08 微软技术许可有限责任公司 虚拟机管理器促进的选择性代码完整性实施
US10461937B1 (en) * 2013-12-18 2019-10-29 Amazon Technologies, Inc. Hypervisor supported secrets compartment

Also Published As

Publication number Publication date
US11537732B2 (en) 2022-12-27
DE102021105949A1 (de) 2021-10-28
CN113645179A (zh) 2021-11-12
US20210334399A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
CN113645179B (zh) 配置虚拟实体的方法、计算机***和存储介质
US8201239B2 (en) Extensible pre-boot authentication
US9984236B2 (en) System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system
US8909940B2 (en) Extensible pre-boot authentication
US8108668B2 (en) Associating a multi-context trusted platform module with distributed platforms
KR101453266B1 (ko) 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시
KR20170085503A (ko) 암호화된 템플릿으로부터 암호화된 가상 머신의 안전한 생성 기법
JP5373062B2 (ja) システム管理コマンドを提供するシステム及び方法
US20070168048A1 (en) Secure processor supporting multiple security functions
US20110296408A1 (en) System and Method for Implementing a Secure Client Hosted Virtualization Service Layer in an Information Handling System
US20120151200A1 (en) Remote management of endpoint computing device with full disk encryption
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
CN109804598B (zh) 信息处理的方法、***及计算机可读介质
EP3884405B1 (en) Secure count in cloud computing networks
US20240005021A1 (en) Virtualizing secure storage of a baseboard management controller to a host computing device
US20230246827A1 (en) Managing use of management controller secrets based on firmware ownership history
EP4258146A1 (en) Computer system, trusted functional assembly, and operation method
US11641281B2 (en) Hashing values using salts and peppers
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
US20220393869A1 (en) Recovery keys
US20220121748A1 (en) Modifications to firmware functionality
Pedone et al. Trusted computing technology and proposals for resolving cloud computing security problems
US12021983B2 (en) Disaggregated key management in a distributed system
US20240163260A1 (en) Persistent data security for data processing units
CN113454624A (zh) 网络凭据的存储

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
GR01 Patent grant
GR01 Patent grant