响应于对虚拟实体程序代码的验证解锁对信息的访问

文档序号:1834653 发布日期:2021-11-12 浏览:1次 >En<

阅读说明:本技术 响应于对虚拟实体程序代码的验证解锁对信息的访问 (Unlocking access to information in response to authentication of virtual entity program code ) 是由 J·莱特 C·达文波特 于 2021-04-16 设计创作,主要内容包括:本公开涉及响应于对虚拟实体程序代码的验证解锁对信息的访问。在一些示例中,管理控制器包括用于与计算设备进行通信的通信接口,其中,管理控制器与计算设备的处理器是分开的。管理控制器包括管理处理器,用于执行对计算设备的虚拟实体的程序代码的验证,并且响应于对程序代码的验证,解锁对信息存储中的信息的访问以允许计算设备访问该信息,其中,该信息供计算设备的虚拟实体使用,并且其中,在验证之前,管理处理器将阻止对信息存储中信息的访问。(The present disclosure relates to unlocking access to information in response to authentication of virtual entity program code. In some examples, the management controller includes a communication interface to communicate with the computing device, wherein the management controller is separate from a processor of the computing device. The management controller includes a management processor to perform authentication of program code of a virtual entity of the computing device and, in response to the authentication of the program code, unlock access to information in an information store to allow the computing device to access the information, wherein the information is for use by the virtual entity of the computing device, and wherein, prior to the authentication, the management processor is to prevent access to the information in the information store.)

具体实施方式

在本公开中,术语“一个(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被认为与执行OS 109的处理资源(例如,计算设备102中的106)是分开的。BMC 104具有管理能力以管理计算设备102的组件。BMC 104的管理能力的示例可以包括以下各项的任意组合或某种组合:功率控制以执行计算设备102的功率管理(例如,响应于检测到的事件,在计算设备的不同的功耗状态之间转换)、计算设备102的热监视和控制(诸如用于监视计算设备的温度并用于控制计算设备的热管理设备)、计算设备102中风扇的风扇控制,基于对计算设备102的各种传感器的监测数据的监视的系统健康状况监视、计算设备102的远程访问(例如,以通过网络访问计算设备)、计算设备102的远程重启(以使用远程命令触发计算设备重启)、计算设备102的系统设置和部署、用于在计算设备102中实现安全性程序的系统安全性等等。

在一些示例中,BMC 104可以为计算设备提供所谓的“熄灯(lights-out)”功能。即使OS 109没有安装在计算设备102上或在计算设备102上不起作用,熄灯功能也可以允许诸如系统管理员的用户在计算设备102上执行管理操作。

此外,在如图1所示的一些示例中,BMC 104可以依靠由辅助电源110(例如,电池)提供的辅助电力运行;作为结果,计算设备102不必被通电以允许BMC 104执行BMC的操作。由BMC 104提供的服务可被视为“带外”服务,因为OS 109可能未运行,并且在某些情况下,计算设备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,以及OS 109。由程序代码验证指令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来检索OS 109的内核以进行验证,随后对OS 109的其余部分进行检索和验证。一旦OS 109被验证,则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);或其他类型的存储设备。需要注意的是,可以在一个计算机可读或机器可读存储介质上提供上述讨论的指令,或者可以在分布在具有多个节点的大型系统中的多个计算机可读或机器可读存储介质上提供上述讨论的指令。这样的一种或多种计算机可读或机器可读存储介质被认为是物品(或制造品)的一部分。物品或制造品可以指任何制造的单个组件或多个组件。一个或多个存储介质可以位于运行机器可读指令的机器中,也可以位于远程站点,可以通过网络从该远程站点下载机器可读指令以执行。

在前面的描述中,阐述了许多细节以提供对本公开的主题的理解。然而,可以在缺少这些细节中的一些细节的情况下实践实施方式。其他实施方式可以包括对以上讨论的细节的修改和变化。旨在使所附权利要求覆盖这些修改和变型。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种人流统计分析系统及其方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类