飞地启动及认证的制作方法

文档序号:18702273发布日期:2019-09-17 23:05阅读:421来源:国知局
飞地启动及认证的制作方法

验证飞地(enclave)的真实性的方法依赖远程提供的飞地。此类方法可以使用互联网连接。然而,出于安全原因,一些系统可能无法连接到互联网。

附图说明

在下面的描述中对本公开文件的非限制性示例进行了描述,参考所附的图来阅读所述非限制性示例,且所述非限制性示例不限制权利要求的范畴。在图中,多于一个的图中所出现的相同及相似结构、元件或部件通常用它们所出现的图中相同或相似的编号来标记。图中所图示的组件和特征的尺寸主要是为了呈现的方便及清晰来选择的,不必按比例。参考所附的图:

图1为包括基板管理控制器、预引导环境、预引导启动飞地和预引导引用飞地的系统的框图;

图2为启动预引导启动飞地、启动预引导引用飞地和将加密的密钥存储在设备内的方法的流程图;

图3为启动后引导启动飞地、启动后引导引用飞地和对来自设备的、存储的加密的密钥进行解密的方法的流程图;以及

图4为能够启动启动飞地、启动应用飞地、获得系统特有的封装密钥和启动引用飞地的计算设备的框图。

具体实施方式

在下面的详细描述中,参考了构成其一部分的附图,其中通过图示描绘了可以实现本公开文件的具体示例。要理解,可以使用其它示例,且可以进行结构或逻辑改变,而不背离本公开文件的范畴。

验证飞地的真实性的方法依赖远程提供的飞地。远程提供的飞地可以是可从第三方获得的。在此类示例中,方法可以使用互联网连接将包括飞地的系统与远程提供的飞地进行连接。然而,出于安全原因,一些系统可能无法连接到互联网。例如,“气隙(air-gapped)”系统无法连接到互联网,无法连接到连接到互联网的任意系统,无法直接连接到互联网,和/或可能使用防火墙。

如本文所用的,“飞地”可以至少为存储器中的、从存储器内运行或操作的其它进程或程序保护起来的专有区域。换言之,飞地可以提供具有机密性和完整性的空间。特定的系统软件(即,机器可读指令)可以提供或启动飞地。其它进程、软件、程序、操作系统(os)、管理程序或机器可读指令无法访问或改变飞地中运行的机器可读指令,无论权限级别如何。在另一示例中,飞地为容器或受保护的容器。机器可读指令,诸如英特尔架构中包含的英特尔软件防护扩展指令(sgx),可以用来创建存储器中专有或受保护的区域(例如,飞地)。

如本文所用的,“启动飞地”可以至少为给其它飞地提供服务的特别飞地。启动飞地(le)可以创建和认证启动令牌。le可以访问其它飞地无法访问的启动令牌密钥。le可以使用启动令牌密钥创建和认证启动令牌。尽管其它飞地可以用启动令牌来启动,但环境无法用启动令牌启动le(换言之,无启动令牌也可以启动le)。le还可以称作供应飞地或架构飞地。

如本文所用的,“引用飞地”可以至少为执行其它飞地的证明的飞地。引用飞地(qe)可以从诸如应用飞地(ae)之类的其它飞地接收证明请求或报告。qe可以验证该请求或报告来自真实的源以及真实的飞地。qe接着可以将该请求或报告转换为证明报告或引用,并将证明报告或引用返回给请求的飞地。qe还可以生成用于上文所述的报告的密钥,以及对与其它设备的安全通信信道进行启动或加载。

本文描述的示例可以包括具有预引导环境和后引导环境的系统。制造时或以后通过客户、预引导环境可以启动预引导le。预引导启动飞地可以创建启动令牌。预引导le可以认证启动令牌。预引导le可以使用启动令牌密钥对启动令牌进行签名。该系统的处理器然后可以验证使用正确的密钥对启动令牌进行过认证。预引导环境可以使用认证过的启动令牌来启动或提供预引导qe。预引导qe可以生成密码密钥,诸如公共供应密钥、私有供应密钥、公共证明密钥和/或私有证明密钥之类。上面描述的功能可以确保可以维护系统安全性,同时允许系统证明系统上启动的ae。后引导qe可以从预引导qe可以存储密钥的设备收集证明密钥。预引导qe可以在将密钥存储在设备上之前、对密钥进行加密。证明密钥可以被后引导qe用来创建用于ae的引用。换言之,系统上执行的ae可以接收证明请求。ae可以从后引导qe请求引用。使用证明密钥,后引导qe可以创建用于ae的引用或证明ae的真实性。

相应地,本文提供的各种示例使用预引导环境启动预引导启动飞地(le)。预引导le可以创建用于预引导引用飞地(qe)的启动令牌。预引导le可以认证启动令牌。具有认证过的启动令牌的预引导环境可以启动预引导qe。预引导qe可以生成公共供应密钥、私有供应密钥和证明密钥。预引导qe用公共密钥可以验证设备的真实性。预引导qe用公共供应密钥、私有供应密钥和公共密钥可以保护与设备的通信信道。预引导qe使用系统特有的封装密钥可以对公共供应密钥、私有供应密钥和证明密钥进行加密。预引导qe可以将加密的公共供应密钥、加密的私有供应密钥和加密的证明密钥存储在设备内。

如图1所示,系统100包括基板管理控制器(bmc)102、预引导环境104、预引导le106、预引导qe108和处理器110。预引导环境104可以启动预引导le106和预引导qe108。顾名思义,预引导le106和预引导qe108可以在预引导环境104中操作。预引导le106可以创建和认证启动令牌。启动令牌可以被用来启动或提供其它飞地,诸如预引导qe108之类。预引导qe108可以生成密码密钥,诸如公共供应密钥、私有供应密钥和证明密钥之类。预引导qe可以使用公共供应密钥和私有供应密钥来保护与诸如bmc102之类的其它设备的通信信道。假如其它qe访问另一qe,他们也可以使用密码密钥。例如,在后引导环境中启动的qe可以使用密码密钥来保护与诸如bmc102之类的设备的通信信道。一种将密钥给后引导环境中其它qe的方式是将密钥存储在可访问的位置。在一个示例中,预引导qe108可以使用系统特有的封装密钥对公共供应密钥、私有供应密钥和证明密钥进行加密。预引导qe108接着可以或响应于加密、或一有来自用户的提示,将加密的公共供应密钥、加密的私有供应密钥和加密的证明密钥存储在设备内,例如bmc102。

如本文所用的,“计算设备”可以是存储阵列、存储设备、存储封装体、服务器、台式或膝上计算机、计算机集群、节点、分区、虚拟机或包括控制器、处理资源等的任意其它设备或装置。在本文描述的示例中,“处理资源”可以包括,例如,单个计算设备中包含的、或跨多个计算设备分布的一个处理器或多个处理器。如本文所用的,“处理器”可以至少为中央处理单元(cpu)、基于半导体的微处理器、图形处理单元(gpu)、检索并执行指令的场可编程门阵列(fpga)、适于对机器可读存储介质上存储的指令进行检索并执行的其它电子电路之一或其组合。

如本文所用的,“机器可读存储介质”可以是包含或存储诸如可执行指令、数据等之类的信息的电子、磁、光或其它物理存储装置。例如,本文描述的任意机器可读存储介质可以是随机存取存储器(ram)、易失性存储器、非易失性存储器、闪存、存储驱动(例如,硬盘驱动)、固态驱动、任意类型的存储盘(例如,致密盘、dvd等)等的任一或其组合。本文描述的任意机器可读存储介质可以是非暂时性的。

如本文所用的,“设备”可以是任意微控制器、bmc、电路、cpu、微处理器、gpu、fpga、机箱管理器、机架级管理器、服务器、受信平台模块(tpm)、适于保护与飞地的通信并存储加密的密钥的其它电路、或其组合。例如,设备可以是服务器的bmc。在另一示例中,设备可以是tpm。在此类示例中,设备可以存储诸如来自飞地的加密的密钥之类的数据。在其它示例中,设备可以辅助启动或加载与飞地的安全通信信道。

如本文所用的,“基板管理控制器”可以是使用传感器对服务器或其它硬件的物理状态进行监测、并通过独立的“带外”连接与管理系统进行通信的专用的服务处理器。bmc还可以通过输入/输出控制器(ioctl)接口驱动器、表述性状态转移(rest)应用程序接口(api)或便于bmc和应用之间通信的特定其它系统软件代理,来与在os级执行的应用进行通信。bmc可以对位于服务器机箱的硬件设备进行硬件级的访问。bmc可以能够直接更改硬件设备。bmc可以独立于bmc所处的系统的os进行操作。bmc可以位于被监测的服务器或其它设备的母板或主电路板上。bmc安装在被管理的服务器的母板上、或以其它方式连接到或附于被管理的服务器,这一事实不会妨碍将bmc视为“分立的”。如本文所用的,bmc具有计算设备的子系统的管理能力,且与执行计算设备的os的处理资源相分立。bmc与诸如中央处理单元之类的处理器分立,执行系统上的高级os或管理程序。

如本文所用的,“预引导环境”为可以存储在机器可读存储介质内、且由处理资源执行的机器可读指令。预引导环境可以是在加载操作系统之前可访问的操作环境。预引导环境可以供应有限的功能。预引导环境可以包括用户接口。预引导环境可以允许用户启动并提供飞地。预引导环境可以包括统一的可扩展固件接口(uefi)、基本输入/输出系统(bios)接口或其它平台固件环境。

如本文所用的,“操作系统”为可以存储在机器可读存储介质内、且由处理资源执行的机器可读指令。os可以包括管理计算机硬件和软件资源、以及为计算机程序供应公共服务的系统软件。os可以辅助计算设备硬件和应用之间的通信。os可以包括允许用户与计算设备交互的用户接口。os可以包括层,诸如应用层和核心层之类。高级应用(例如,用户可以与之交互的应用)可以在os的应用层执行,而核心层可以包括对计算设备硬件进行控制的机器可读指令。在计算设备的设置或初始化期间,os可以被安装。在计算设备引导或启动过程期间,os可以载入机器可读存储介质。如上所述,计算设备的处理器或处理资源可以执行来自机器可读存储介质的os。os可以是“后引导环境”的另一术语。例如,在将os载入机器可读存储介质后,计算设备可以处于后引导环境状态。换言之,一旦用户能够与os交互,计算设备可以视作处于后引导环境。

如本文所用的,“密码哈希功能”可以是包括机器可读指令的功能。密码哈希功能可以包括由处理器执行时、可以接收输入的机器可读指令。密码哈希功能接着可以生成与输入相匹配的十六进制串。例如,该输入可以包括数据串(例如,存储器内、由起始存储器地址和结束存储地址所指示的数据结构)。在此类示例中,基于数据串,密码哈希功能输出诸如十六进制串(例如,一系列多个十六进制值)之类的串。进一步地,该输入的任何细微变化都可能改变输出串。在另一示例中,密码哈希功能可以是安全哈希功能(sha)、任意联邦信息处理标准(fips)所认可的哈希功能、任意国家标准与技术协会(nist)所认可的哈希功能、或任意其它密码哈希功能。

如本文所用的,“受信平台模块”或“tpm”可以是内置于计算设备的母板的集成电路。tpm可以是抗篡改或防篡改的。tpm可以用于计算设备上的服务。服务可以包括设备标识、认证、加密、测量、确定设备完整性、密码密钥的安全生成、远程证明和封装的存储。tpm可以包括平台配置寄存器(pcr)。pcr可以存储安全相关的度量。

如本文所用的,“权限级别”可以是机器可读指令的操作级别。权限级别可以是计算设备的用户或机器可读指令可以具有的许可级别。权限级别实现可以在不同的os之间变化。不同的os可以具有若干许可级别。例如,一个用户或一组机器可读指令可能具有完整的管理员权限级别(例如,完全访问计算设备的级别),而其它可能具有有限的权限级别。

如本文所用的,“系统特有的封装密钥”可以是系统唯一的密钥。飞地可以包括定义飞地的数据结构。数据结构可以包括系统特有的信息。此信息可以允许关联到系统的飞地获得封装密钥。换言之,具有系统唯一数据的飞地可以访问封装密钥。例如,响应于来自飞地的、对封装密钥的请求,系统的处理器或特定其它硬件可以对飞地进行验证。进一步地,响应于飞地的验证,处理器或其它硬件可以将系统特有的封装密钥发送给认同的存储器位置。

图2为启动预引导启动飞地、启动预引导引用飞地、且将加密的密钥存储在设备内的方法的流程图。尽管下面参考图1的系统100来描述方法200的执行,但可以使用其它适当的系统或模块,包括但不限于计算设备400。另外,方法200的实现不限于此类示例。

在框202,预引导环境104可以启动预引导le106。在另一示例中,预引导环境104内操作的系统软件可以启动预引导le106。在另一示例中,系统软件和/或预引导环境104可以是bios接口、uefi或其它平台固件环境。在另一示例中,预引导环境104可以响应于用户提示、启动预引导le106。例如,预引导环境104可以包括具有各种选项的用户接口。选项之一可以包括对诸如预引导le106之类的预引导飞地进行启动的选项。在此类示例中,用户可以选择该选项以启动预引导le106。

在另一示例中,系统100的处理器110可以对启动的预引导le106的真实性或受信性进行验证。如上所述,飞地可以包括数据结构。例如,预引导le106可以包括数据结构。该数据结构的一个域可以包括来自私/公共密钥对的私钥。系统100的处理器110可以包括私/公共密钥对的公共密钥的哈希值。在此类示例中,处理器110可以使用私/公共密钥对的公共密钥的哈希对来自私/公共密钥对的私钥的签名进行验证。在验证签名的情况下,预引导le106可以被视为受信的或真实的(换言之,验证过的)。

在框204,预引导le106可以创建用于预引导qe108的启动令牌。在一个示例中,启动令牌可以是数据结构。在进一步的示例中,该数据结构可以包含启动飞地的信息。在一个示例中,启动令牌可以包含系统100特有的、来自预引导le106的、密钥密码校验和(例如,基于密码的消息认证码(cmac))。换言之,启动令牌可以包括系统100特有的信息。进一步地,该信息可以允许系统100启动飞地而无需远程服务器。

在框206,预引导le106可以认证启动令牌。换句话说,预引导le106可以用启动令牌密钥对启动令牌进行签名。在另一示例中,系统100的控制寄存器或存储器位置可以包含启动令牌密钥。在一个示例中,存储器位置可以是处理器110和/或预引导le106所确定的、认同的存储器位置。在进一步的示例中,预引导le106可以使用具有启动令牌密钥的cmac对启动令牌进行签名。在另一示例中,启动令牌可以包括对预引导qe108中、可以允许预引导qe108访问系统特有的封装密钥的属性进行设置的提示或信息。在另一示例中,生成启动令牌时,预引导le106可以对它进行认证。在另一示例中,预引导环境104可以自动地或用用户输入认证启动令牌。在另一示例中,预引导环境104可以对预引导le106所生成并认证的启动令牌进行验证。响应于由预引导环境104对启动令牌进行验证,预引导环境104可以用cmac对启动令牌进行签名或认证。

在框208,预引导环境104可以响应于启动令牌的认证、启动预引导qe108。在一个示例中,当认证启动令牌时,预引导环境104可以用启动令牌自动地启动预引导qe108。在另一示例中,认证启动令牌后,用户输入可以提示预引导环境104启动预引导qe108。

在框210,预引导qe108可以生成公共供应密钥、私有供应密钥和证明密钥。在另一示例,预引导qe108可以生成公共证明密钥和私有证明密钥。进一步地,证明密钥可以用来远程证明系统100上启动的ae。

如上所述,预引导qe108可以生成密钥。密钥可以包括公共供应密钥和私有供应密钥。公共供应密钥可以被认为是qe的身份。换言之,公共供应密钥可以是从qe到设备(例如,bmc102)的共享信息。在此类示例中,qe能够使用公共供应密钥、私有供应密钥和设备的公共密钥对与已被验证是真实的设备的安全通信进行启动或加载。私有供应密钥可以是qe用来计算共享秘密或共享密钥的私有或秘密信息。例如,qe可以使用公共供应密钥和私有供应密钥来发起与设备(例如,bmc102)的密钥交换。

预引导qe108还可以生成证明密钥。在另一示例中,预引导qe108可以生成私有证明密钥和公共供应密钥。qe可以使用私有证明密钥对证明引用或报告进行签名。其它应用或设备能够使用公共证明密钥来验证证明报告或引用中的签名是真实的。在此类示例中,预引导qe108可以将公共证明密钥存储在设备中,或存储在随时可用的特定其它位置。当qe对证明引用或报告进行签名、并将该引用或报告发送给第三方时,第三方可以通过用公共证明密钥对签名进行检查、确保该引用或报告是真实的。

在框212,预引导qe108可以用设备的、被硬编码到预引导qe的公共密钥对该设备(例如,bmc102)的真实性进行验证。在另一示例中,预引导qe108可以使用该设备提供的数字证书验证该设备(例如,bmc102)的真实性。

在框214,预引导qe108用公共供应密钥和私有供应密钥可以保护与设备(例如,bmc102)的通信信道。在此类示例中,预引导qe108可以发起与设备(例如,bmc102)的密钥交换(例如,diffie-hellman密钥交换),以启动或加载安全的通信信道。

在密钥交换的示例中,qe(例如,预引导qe108或后引导qe)可以与设备对公共供应密钥进行共享,设备可以与qe对公共密钥进行共享。例如,x和y。qe可以使用私有供应密钥来执行计算,并将结果发送给设备。设备可以做同样的事,除了使用该设备已知的特定值。例如,qe可以计算并发送a=xamody,而设备可以计算并发送b=xbmody。qe接着可以用该设备的结果和私有供应密钥来执行计算,这可以等于该设备用来自qe的结果和该设备已知的密钥所执行的计算。下面方程式的左边可以是qe所执行的计算,而右边可以是设备所执行的计算:

bamody=abmody

结果可以被视为用来对qe与设备之间的通信进行加密/解密的共享秘钥。

在框216,预引导qe108用系统特有的封装密钥可以对公共供应密钥、私有供应密钥和证明密钥进行加密。在另一示例中,预引导qe108还可以对私有证明密钥和公共证明密钥进行加密。在一个示例中,系统特有的封装密钥可以与系统100上提供的任意飞地相关联。在另一示例中,预引导le106可以从系统100或系统100的处理器110请求系统特有的封装密钥。响应于对系统特有的封装密钥的请求,该系统的处理器110可以发送系统特有的封装密钥至预引导le106所指定的地址。在进一步的示例中,预引导qe108可以从指定的地址收集系统特有的封装密钥。在另一示例中,系统100的处理器110可以验证对系统特有的封装密钥进行请求的飞地为le。在请求的飞地不是le的情况下,那么处理器110无法发送系统特有的封装密钥给指定的地址。在另一示例中,预引导qe108可以用私/公共密钥对的私钥进行签名,类似于预引导le106。进一步地,预引导qe106可以从系统100请求系统特有的封装密钥。在此类示例中,且如上所述,系统100或系统100的处理器110可以包括私/公共密钥对的公共密钥的哈希值。在此类示例中,处理器110可以使用私/公共密钥对的公共密钥的哈希对来自私/公共密钥对的私钥的签名进行验证。在验证签名的情况下,预引导qe108可以被认为是受信或真实的(换言之,验证过的),且可以访问系统特有的封装密钥。

在框218,预引导qe108可以将加密的公共供应密钥、加密的私钥供应密钥和加密的证明密钥存储在设备(例如,bmc102)内。响应于安全的通信信道的建立,预引导qe108可以继续将上文所述的加密的公共供应密钥、加密的私有供应密钥和加密的证明密钥存储在设备(例如,bmc102)内。在另一示例中,预引导qe108还可以将加密的公共证明密钥和加密的私有证明密钥存储在设备(例如,bmc102)内。

在一个示例中,设备可以是bmc102。在另一示例中,设备可以是受信平台模块(tpm)。在另一示例中,设备可以是上文所述的组件、特定其它组件或微控制器的特定组合。

图3为启动后引导启动飞地、启动后引导引用飞地和对存储的、来自设备的加密的密钥进行解密的方法的流程图。尽管下面未参考具体系统来描述方法300的执行,但可以使用适当的系统或方法。诸如系统100或计算设备400之类的系统可以用来执行方法300。尽管上文所述的系统100对具有预引导环境104的系统进行了描述,但在加载系统100os之后,系统100可以被认为处于后引导环境(例如,包括后引导环境)。

在框302,后引导环境可以启动后引导le。如所述的,后引导环境可以包括os。在另一示例中,后引导环境可以包括启动飞地的机器可读指令。在进一步的示例中,机器可读指令可以包括启动后引导飞地的指令。在一个示例中,用户可以提示后引导环境启动后引导le。在另一示例中,响应于系统100进入后引导环境状态,后引导环境可以自动地启动后引导le。

在框304,后引导le可以创建用于后引导qe的第二启动令牌(换言之,不同于第一启动令牌)。在一个示例中,第二启动令牌可以是数据结构。在进一步的示例中,数据结构可以包含启动飞地的信息。在一个示例中,启动令牌可以包含系统100特有的信息。进一步地,该信息可以允许系统100验证le的真实性而无需远程服务器。

在框306,后引导le可以对用于后引导qe的第二启动令牌进行验证。类似于上面描述的用于预引导le106的过程,后引导le106可以包括使用系统中的控制寄存器或存储器位置认证第二启动令牌的机器可读指令。在另一示例中,系统100的控制寄存器或存储器位置可以包含启动令牌密钥。在一个示例中,该存储器位置可以为处理器110和后引导le所确定的、认同的存储器位置。在进一步的示例中,后引导le可以使用具有启动令牌密钥的cmac对启动令牌进行签名。在另一示例中,启动令牌可以包括对后引导qe中、可以允许后引导qe访问系统特有的封装密钥的属性进行设置的提示或信息。在另一示例中,在启动令牌生成时,后引导le可以自动对它进行认证。在另一示例中,后引导环境可以是自动的或者利用用户输入,用户输入可以提示后引导环境认证启动令牌。在另一示例中,后引导环境可以对后引导le所生成并认证的启动令牌进行验证。响应于由后引导环境对启动令牌进行验证,后引导环境可以使用cmac认证启动令牌或对启动令牌进行签名。

在另一示例中,系统100的处理器110可以验证所启动的后引导le的真实性或受信性。如所述的,飞地可以包括数据结构。例如,后引导le可以包括数据结构。数据结构的一个域可以包括来自私/公共密钥对的私钥的签名。系统100的处理器110可以包括私/公共密钥对的公共密钥的哈希值。在此类示例中,处理器110可以使用私/公共密钥对的公共密钥的哈希值对来自私/公共密钥对的私钥的签名进行验证。例如,处理器110可以对可以存储在处理器内的私/公共密钥对的公共密钥的哈希值和存储在后引导le的数据结构中的私/公共密钥对的公共密钥的哈希值进行比较。处理器110接着可以使用私/公共密钥对的公共密钥对后引导le的签名进行验证。在验证签名的情况下,后引导le可以被认为是受信或真实的(换言之,验证过的)。

在框308,后引导环境可以用第二启动令牌启动后引导qe。响应于第二启动令牌的认证。在一个示例中,当认证第二启动令牌时,后引导环境可以用第二启动令牌自动地启动后引导qe。在另一示例中,认证第二启动令牌后,用户输入可以提示后引导环境启动后引导qe。

在框310,后引导qe可以从设备收集加密的密钥。响应于后引导qe的启动,后引导qd可以收集加密的公共供应密钥、加密的私有供应密钥和加密的证明密钥。在另一示例中,后引导qe可以收集加密的私有证明密钥和加密的公共证明密钥。

在另一示例中,在收集加密的公共供应密钥、加密的私有供应密钥和加密的证明密钥(即加密的私有证明密钥和加密的公共证明密钥)之前,后引导qe用上文所述的公共密钥可以对设备的真实性进行认证。在一个示例中,该设备可以供应公共密钥给试图对设备进行认证的任意其它组件或程序(诸如后引导qe之类)。在另一示例中,后引导qe可以使用嵌入的数字证书对后引导qe的真实性进行验证。

在框312,后引导qe用系统特有的封装密钥可以解密密钥。在一个示例中,响应于收集加密的公共供应密钥、加密的私有供应密钥和加密的证明密钥(即加密的使用证明密钥和加密的公共证明密钥),后引导qe还可以收集系统特有的封装密钥。在进一步的示例中,后引导qe可以是系统特有的。换言之,后引导qe是在系统上启动的,且来自系统。在此类示例中,可以用与预引导qe106相同的私/公共密钥对的私钥对后引导qe进行签名。系统100或系统100的处理器110可以对后引导qe进行验证,类似于上面描述的预引导qe106验证。例如,系统100或系统100的处理器110可以包括私/公共密钥对的公共密钥的哈希值。在此类示例中,处理器110可以使用私/公共密钥对的公共密钥的哈希对来自私/公共密钥对的私钥的签名进行验证。在验证签名的情况下,后引导qe108可以被认为是受信或真实的(换言之,验证过的),且可以访问系统特有的封装密钥(来自认同的地址或位置)。一旦后引导qe具有系统特有的封装密钥,后引导qe可以使用系统特有的封装密钥对加密的公共供应密钥、加密的私有供应密钥和加密的证明密钥(即加密的私有证明密钥和加密的公共证明密钥)进行解密。

在另一示例中,后引导qe可以保护与设备的通信信道。后引导qe可以使用解密的公共供应密钥和私有供应密钥来启动或加载安全的通信信道。在此类示例中,后引导qe可以以与上面描述的用于预引导qe108的相同的方式,发起与设备的密钥交换(例如,diffie-hellman密钥交换)。例如,后引导qe可以与设备共享解密的公共供应密钥。后引导qe和设备可以执行与上面相同的计算,以得到共享的秘密或共享的密钥。在另一示例中,后引导qe可以建立与其它设备、远程系统或请求系统100上的ae的证明的任意其它系统/组件的安全通信信道。

在另一示例中,后引导le可以启动ae。远程系统可以请求qe对ae的真实性进行证明。在此类示例中,后引导qe可以提供关于ae的真实性的报告或引用给ae(将该报告供应给远程系统的ae)。后引导qe可以使用解密的证明密钥(即解密的私有证明密钥和解密的公共证明密钥)来创建报告。在另一示例中,远程系统可以使用公共证明密钥来验证证明引用。

如所述的,图1为包括bmc102、预引导环境104、预引导le106、预引导qe108和处理器110的系统100的框图。在一个示例中,bmc102可以存储来自预引导qe108的密钥(诸如,公共供应密钥、加密的私有供应密钥、公共证明密钥和加密的私有证明密钥)。bmc102还可以响应于后引导qe对密钥的请求,提供密钥(诸如,公共供应密钥、加密的私有供应密钥、公共证明密钥和加密的私有证明密钥)。在另一示例中,bmc102可以提供与bmc102相关联的公共密钥。与bmc102相关联的密钥可以用来对bmc102的真实性进行验证。

如上所述,系统100可以包括预引导环境104。在一个示例中,预引导环境104可以启动预引导le106和预引导qe108。在进一步的示例中,响应于来自预引导le106的启动令牌的认证,预引导环境104可以启动预引导qe108。在另一示例中,一有来自用户的输入或机器可读指令的执行,上面描述的功能就可以自动发生。

如上所述,系统100可以包括预引导le106。预引导le106可以创建用于其它飞地的启动令牌。预引导le106还可以认证启动令牌或签名。例如,预引导le106可以创建用于预引导qe108的启动令牌,且在创建启动令牌后、可以自动或通过用户提示认证启动令牌。在另一示例中,预引导le106可以创建和认证用于其它的启动令牌。例如,其它飞地可以包括其它预引导le或ae。在另一示例中,预引导le106还可以获得系统100特有的封装密钥。

如上所述,系统100可以包括预引导qe108。在一个示例中,预引导qe108可以生成私有供应密钥、公共供应密钥、公共证明密钥和私有证明密钥。在另一示例中,预引导qe108可以验证bmc102的真实性。在此类示例中,预引导qe108可以用上文所述的公共密钥对bmc102的真实性进行验证。在另一示例中,预引导qe108可以用嵌入的数字证书对bmc102的真实性进行验证。

在一个示例中,响应于验证bmc102的真实性,预引导qe108可以保护与bmc102的通信信道。预引导qe108可以用密钥交换(例如,diffie-hellman交换)对通信信道进行保护。例如,在diffie-hellman交换中,公共供应密钥可以是预引导qe108和bmc102之间的起始或共用值,而私有供应密钥可以是预引导qe108用来计算共享秘密的值(在此类示例中,bmc102可以包括对共享秘密进行计算的特定私有值)。在另一示例中,可以使用对通信信道进行保护的不同方法。在另一示例中,预引导qe108可以对私有供应密钥和私有证明密钥进行加密。在进一步的示例中,预引导qe108可以用来自预引导le106的、系统100特有的封装密钥对私有供应密钥和私有证明密钥进行加密。响应于对通信信道进行保护、且对私有供应密钥和私有证明密钥进行加密,预引导qe108可以对bmc102的机器可读存储介质上加密的私有供应密钥、公共供应密钥、公共证明密钥和加密的私有证明密钥进行传递和加密。

在另一示例中,系统100可以包括后引导环境。后引导环境可以执行与上文所述的飞地相关的、与预引导环境104相似的功能。例如,后引导环境可以启动后引导le和后引导qe。在进一步的示例中,后引导环境可以使用认证过的启动令牌启动后引导qe。在另一示例中,后引导环境可以启动ae。后引导环境可以用或无需认证过的启动令牌启动ae。

在另一示例中,系统100可以包括后引导le。后引导le可以创建和认证用于其它飞地的启动令牌。例如,后引导le可以创建和认证用于后引导qe的启动令牌。在另一示例中,后引导le可以创建和认证用于其它飞地的启动令牌。例如,其它飞地可以包括其他后引导le、qe或ae。在另一示例中,后引导le还可以获得系统100特有的封装密钥。

在另一示例中,系统100可以包括后引导qe。在一个示例中,后引导qe可以对加密的私有供应密钥、公共供应密钥、公共证明密钥和加密的私有证明密钥进行检索。在进一步的示例中,后引导qe可以响应于从后引导le获得系统100特有的封装密钥,对加密的私有供应密钥和加密的私有证明密钥进行解密。在另一示例中,后引导qe可以从ae接收对引用(或证明引用、报告或证明报告)的请求。换言之,ae可以从后引导qe请求引用(或证明报告、报告或证明报告)。响应于接收到对引用或报告的请求,后引导qe可以生成引用或报告。一旦生成引用或报告,后引导qe就可以发送引用或报告给ae。在进一步的示例中,ae可以发送引用或报告给最初请求证明的远程系统。

图4为根据一个示例、能够启动启动飞地、认证启动令牌、启动应用飞地、获得系统特有的封装密钥和启动引用飞地的计算设备的框图。计算设备400可以包括处理资源402和机器可读存储介质404。处理资源402可以执行机器可读存储介质404中包含的指令。指令可以包括启动le的指令406。在一个示例中,le可以创建和认证启动令牌。在另一示例中,处理资源402可以执行在离线或在线模式中(换言之,分别在预引导或后引导环境中)启动le的指令406。在另一示例中,处理资源402可以使用启动令牌启动其它飞地。在一个示例中,处理资源402可以使用认证过的启动令牌启动其它飞地。

机器可读存储介质404可以包括启动ae的指令408。在另一示例中,ae可以用于各种目的。ae可以与远程系统进行通信。该通信可能是安全的,或可能包括安全信息。为了确保维护安全性,远程系统可以请求ae证明真实性。换言之,远程系统可以从ae请求证明引用。在一个示例中,响应于ae从远程系统接收证明请求,ae可以请求证明引用。例如,ae可以从qe请求证明引用。

机器可读存储介质404可以包括获得系统特有的封装密钥的指令410。在一个示例中,计算设备400可以将系统特有的封装密钥存储在处理资源402的控制寄存器内。在进一步的示例中,计算设备400上启动的飞地可以访问或使用系统特有的封装密钥。

机器可读存储介质404可以包括启动qe的指令412。响应于启动令牌的认证,处理资源402可以执行启动qe的指令414。在一个示例中,处理资源402可以执行在预引导环境中启动qe的指令414。在此类示例中,qe可以生成公共供应密钥、私有供应密钥、公共证明密钥和私有证明密钥。在进一步的示例中,qe可以使用公共供应密钥来建立与bmc的安全的、加密的通信信道。进一步地,qe可以验证bmc是真实的。在离线或预引导环境中、且响应于qe离线启动,qe可以对生成的公共供应密钥、私有供应密钥、公共证明密钥、私有证明密钥或其特定组合进行加密。进一步地,qe可以将加密的密钥存储在bmc的机器可读存储介质内。

在另一示例中,处理资源402可以执行在后引导环境中启动qe的指令412。在此类示例中,qe可以从bmc获得公共供应密钥、私有供应密钥、公共证明密钥和私有证明密钥(其中一些可以是加密的)。在进一步的示例中,在密钥是加密的(或一些密钥是加密的)的情况下,qe可以对获得的密钥进行解密。qe可以使用可以由qe从计算设备400获得的系统特有的封装密钥。在此类示例中,响应于来自ae的、对证明引用的请求,qe可以创建证明引用。qe接着可以用私有证明密钥对证明引用进行签名。qe然后可以将签名过的证明引用发送给ae。

尽管图2至图3的流程图示出了特定的执行次序,但执行次序可以不同于所描绘的。例如,相对于所示的次序,可以打乱两个或更多框或箭头的执行次序。而且,所示的连续两个或更多框可以并行或部分并行地执行。所有此类变化都在本公开文件的范畴内。

使用本公开文件的示例的非限制性详细描述对本公开文件进行了描述,且本公开文件不旨在对本公开文件的范畴进行限制。应该理解,关于一个示例所描述的特征和/或操作可以用于其它示例,且不是本公开文件的所有示例都具有特定图中所图示的、或关于示例之一所描述的特征和/或操作。本领域人员将想到所描述的示例的变化。而且,术语“包括”、“包含”、“具有”和其缀词用在本公开文件和/或权利要求中时,将意指“包括但未必限于”。

注意,上面描述的一些示例可以包括可能不是本公开文件所必需的、且旨在作为示例的结构、动作或结构及动作的细节。如本领域公知的,本文描述的结构及动作是执行相同功能的等同物可替换的,即使结构或动作不同。因此,本公开文件的范畴仅限于如权利要求中所用的元件及限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1