安全引导证书的自动发现和安装的制作方法

文档序号:12362807阅读:450来源:国知局
安全引导证书的自动发现和安装的制作方法与工艺

本发明涉及使用UEFI安全引导证书以有助于使用授权的软件和设备,比如选项ROM和操作系统引导加载器。



背景技术:

安全引导防止“未授权”操作系统和软件在启动过程期间加载。在安全引导被启用时,安全引导比对已知良好签名的数据库检查每款软件,包括UEFI驱动器(选项ROM)和操作系统。如果每款软件能够被验证,则固件运行软件和操作系统。UEFI固件包括签名数据库(DB)、撤消的签名数据库(DBX)和密钥登记密钥数据库(KEK)。这些数据库在制造时被存储在UEFI闪存上

签名数据库(DB)和撤消的签名数据库(DBX)列举可以在服务器上被加载的UEFI应用、操作系统加载器(比如微软操作系统加载器或者引导管理器)和UEFI驱动器的签名或者映像哈希以及用于不再被信任的并且不可以被加载的项目的撤消的映像。密钥登记密钥数据库(KEK)是可以用来更新签名数据库和撤消的签名数据库的签名密钥的分离数据库。操作系统的开发者要求在KEK数据库中包括指定的密钥,从而使得开发者可以向签名数据库添加新操作系统或者向撤消的签名数据库添加已知不良映像。在已经添加这些数据库之后以及在最终固件验证和测试之后,除了用正确密钥签名的更新或者由使用固件菜单并且然后生成平台密钥(PK)的在物理上存在的用户的更新之外,锁定固件以防编辑。

UEFI允许有选择地“启用”或者“停用”安全引导。如果安全引导被停用,则可以运行任何映像而没有验证或者授权该映像。如果安全引导被启用,则默认数字证书和/或签名的集合用来引导任何OS或者使用任何选项ROM。默认数字证书和/或签名可以由节点的原始设备制造商提供。如果映像不能被验证,则将不会加载OS或者驱动器。



技术实现要素:

本发明的一个实施例提供一种方法,该方法包括计算节点的统一可扩展固件接口标识在计算节点内的选项ROM或者OS引导加载器,其中选项ROM或者OS引导加载器存储能够使用所需数字证书被验证的签名的映像。该方法还包括确定统一可扩展固件接口没有在撤消数据库中或者在授权数据库中存储所需数字证书。进而另外,该方法包括在除了撤消数据库或者授权数据库之外的数字证书的数据库中自动地标识所需数字证书以及向授权数据库(DB)提供所需数字证书。

本发明的另一实施例提供一种包括非瞬态计算机可读存储介质的计算机程序产品,该非瞬态计算机可读存储介质具有随之体现的程序指令,其中程序指令可由处理器执行以使得处理器执行一种方法。该方法包括计算节点的统一可扩展固件接口标识在计算节点内的选项ROM或者OS引导加载器,其中选项ROM或者OS引导加载器存储能够使用所需数字证书被验证的签名的映像。该方法还包括确定统一可扩展固件接口没有在撤消数据库中或者在授权数据库中存储所需数字证书。进而另外,该方法包括在除了撤消数据库或者授权数据库之外的数字证书的数据库中自动地标识所需数字证书以及向授权数据库(DB)提供所需数字证书。

附图说明

图1是根据本发明的各种实施例的与已知公共数字证书的数据库通信的统一可扩展固件接口(UEFI)的框图。

图2是示出了源预备签名的映像的过程和计算节点验证签名的映像的过程的流程图。

图3是确定映像是否被授权运行的方法的流程图。

图4是向授权数据库自动地提供所需数字证书从而使得可以加载映像的方法的流程图。

具体实施方式

本发明的一个实施例提供一种方法,该方法包括计算节点的统一可扩展固件接口标识在计算节点内的选项ROM或者OS引导加载器,其中选项ROM或者OS引导加载器存储能够使用所需数字证书被验证的签名的映像。该方法还包括确定统一可扩展固件接口没有在撤消数据库中或者在授权数据库中存储所需数字证书。进而另外,该方法包括在除了撤消数据库或者授权数据库之外的数字证书的数据库中自动地标识所需数字证书以及向授权数据库(DB)提供所需数字证书。

UEFI设立菜单可以允许用户选择是否启用安全引导。如果安全引导被停用,则允许所有选项ROM和操作系统(OS)引导加载器加载。如果安全引导被启用,则安全引导在启动过程期间自动地发现在系统内的每个选项ROM和OS引导加载器并且防止加载未被签名的任何选项ROM或者OS引导加载器。UEFI通过探测总线并且标识在BusX、DeviceY、FunctionZ处的任何卡来标识选项ROM或者OS引导加载器。所有卡有能力让选项ROM在它们上被加载。如果安装的卡具有选项ROM可用,则UEFI通过总线读取选项ROM。如果安装的卡没有选项ROM可用,则有可能的是固件可以存储用于卡的代码。UEFI也可以用相似方式“发现”OS引导加载器。一旦发现了OS引导加载器,UEFI就可以标识操作系统而未执行操作系统。通过读取选项ROM或者OS引导加载器,UEFI可以确定OS引导加载器是否被签名并且获得签名的副本。

如果安全引导被启用并且映像被签名,则安全引导确定映像是否被在DBX中的数字证书覆盖。如果必需数字证书在DBX中,则安全引导将不会允许映像加载。数字证书可以响应于各种情形(比如在已经危及映像的源时)被放置在“撤消数据库(DBX)”中。例如,如果签名服务器已经被黑客,则不应使用由该签名服务器签名的映像。因而,由该签名服务器签发的数字证书应当被添加到撤消数据库(DBX)以防止用数字证书验证任何映像。

如果必需数字证书没有在撤消数据库(DBX)中,则安全引导确定数字证书是否在授权数据库(DB)中。如果然后发现证书在授权数据库(DB)中,则证书将允许许多映像仅与证书一起被使用。如果然后没有在授权数据库(DB)中发现证书,则将不会允许映像加载。遗憾的是,如果在撤消数据库(DBX)和授权数据库(DB)中都没有发现必需证书,则不允许加载选项ROM或者OS引导加载器。尽管安全引导防止加载恶意或者不适当映像,但是安全引导也可以仅由于UEFI“遗漏”必需数字证书而防止使用安装的设备和加载签名的映像。

根据本发明的实施例,UEFI设立菜单也可以允许用户选择是否启用自动发现和安装为了授权使用签名的选项ROM和OS引导加载器而需要的数字证书。在启用自动发现和安装特征时,用户不必知道安全引导签名过程或者知道需要哪些数字证书以支持系统中的选项ROM和OS引导加载器。另外,自动发现和安装数字证书可以节省确定设备或者操作系统为什么不会加载或者尝试对所需证书进行定位的用户时间。自动发现和安装数字证书可以用来发现和安装证书到授权数据库(DB)和撤消数据库(DBX)之一或者二者中。

UEFI授权数据库(DB)优选地仅存储数字证书的小型默认列表以便限制意外地授权不应被授权的选项ROM或者OS引导加载器的可能性。因而,如果安全引导确定所需证书从撤消数据库(DBX)和授权数据库(DB)二者遗漏,则UEFI发起在公共UEFI证书的已知数据库中搜索遗漏证书。如果选项ROM或者OS引导加载器映像具有头部,该头部具有关于所需证书的信息,则可以在搜索证书时使用该头部信息。例如,头部可以标识设备的制造商或者包括唯一地标识证书的代码。然而,如果没有有用的头部信息,则搜索可以涉及测试公共UEFI证书的已知数据库中的证书中的每个证书,直至证书中的标识的证书能够对在签名的映像中的数字签名进行解码,从而使得解码的数字签名匹配映像的哈希。以这一方式标识的数字证书是可以向授权数据库(DB)提供的所需数字证书。

在一个选项中,该方法可以通过依次地测试在撤消数据库和授权数据库中的每个数字证书、直至在撤消数据库和授权数据库中的所有数字证书已经被测试而未标识所需数字证书来确定统一可扩展固件接口没有在撤消数据库中或者在授权数据库中存储所需数字证书。测试可以包括对于每个数字证书用在数字证书中包括的公共密钥对在签名的映像中的数字签名进行解码、预备映像的哈希并且比较解码的数字签名与映像的哈希。然后数字证书可以响应于确定解码的数字签名没有匹配映像的哈希被标识为不是所需数字证书。

在另一选项中,该方法可以通过依次地测试在除了撤消数据库或者授权数据库之外的数字证书的数据库中的每个数字证书、直至标识所需数字证书来在数字证书的数据库中自动地标识所需数字证书。测试可以包括对于每个数字证书用在数字证书中包括的公共密钥对在签名的映像中的数字签名进行解码、预备映像的哈希并且比较解码的数字签名与映像的哈希。数字证书然后可以响应于确定解码的数字证书匹配映像的哈希被标识为所需数字证书。

在又一选项中,该方法可以通过读取在签名的映像中的头部信息以获得用于所需数字证书的标识符来在除了撤消数据库或者授权数据库之外的数字证书的数据库中自动地标识所需数字证书。然后可以在数字证书的数据库中搜索具有标识符的数字证书。

该方法的另一实施例还可以包括使用所需数字证书来验证在选项ROM或者OS引导加载器上存储的签名的映像,并且仅如果签名的映像已经被验证才加载签名的映像。可选地,使用数字证书来验证在选项ROM或者OS引导加载器上存储的签名的映像的步骤可以包括使用在所需数字证书中包括的公共密钥来对签名的映像的数字签名进行解码并且确定解码的数字证书匹配签名的映像的哈希。

公共UEFI证书的已知数据库可以包括一些或者所有已知证书,而UEFI通常地仅包括有望被UEFI使用的默认证书的小型子集。公共UEFI证书的已知数据库也可以被周期地更新。数据库可以被存储在可由节点的UEFI访问的多个位置中的任何位置中。用于存储数字证书的数据库的位置的非限制示例包括计算节点的UEFI闪存的安全锁定区域、管理一个或者多个节点的集成管理模块(IMM)、管理特定架中的多个IMM的机架管理模块(CMM)或者在容纳计算节点的数据中心内的除了节点之外的服务器。证书的数据库的当前副本可以从第三方(比如系统开发者)被下载并且在本地数据中心中安全地存储副本。

一旦遗漏数字证书已经被定位,UEFI就可以在授权数据库(DB)中自动地安装遗漏证书。可选地,提示用户接受或者拒绝使用遗漏证书,从而使得仅如果用户接受使用遗漏证书才将证书安装到授权数据库(DB)中。然后,在已经在授权数据库(DB)中提供遗漏证书之后,安全引导可以允许对应的签名的选项ROM或者OS引导加载器被加载。

在又一选项中,在自动发现和安装选项被启用时,可以在先入先出基础上从撤消数据库(DBX)或者授权数据库(DB)自动地去除不再为了验证选项ROM或者OS引导加载器而需要的数字证书,以节约在这些UEFI数据库中的数据存储空间。优选地,仅如果伴随有确立物理存在才将启用这一致动去除选项。在一个示例中,该方法还可以包括响应于确定选择的数字证书没有用来在计算机节点中验证选项ROM或者OS引导加载器来从计算节点的授权数据库(DB)自动地去除选择的数字证书。在另一示例中,该方法还可以包括标识在计算节点的授权数据库(DB)中的没有用来在计算机节点中验证选项ROM或者OS引导加载器的多个选择的数字证书,并且在先入先出基础上从授权数据库(DB)自动地去除标识的多个选择的数字证书中的至少一个数字证书,以在授权数据库(DB)中提供用于所需数字证书的足够数据存储空间。

在一个实施例中,数字证书可以是将公共密钥绑定到源(比如原始设备制造商(OEM))的X509证书。数字证书也可以是由认证当局签发的X509证书。认证当局(CA)是签发数字证书的受信任的第三方,该数字证书包括公共密钥和该公共密钥的所有者的验证的身份。

本发明的实施例还可以包括使用平台密钥(PK)和密钥登记密钥(KEK)数据库。需要平台密钥(PK)来验证密钥登记密钥(KEK),并且需要密钥登记密钥(KEK)来验证授权数据库(DB)或者撤消数据库(DBX)。

图1是根据本发明的各种实施例的包括与已知公共数字证书40的数据库通信的统一可扩展固件接口(UEFI)20的计算节点10的框图。UEFI 20包括安全引导22,该安全引导22可以是由UEFI执行的软件模块。UEFI 20还包括撤销数据库(DBX)24、授权数据库(DB)26和密钥登记密钥数据库(KEK)28。撤消数据库(DBX)24存储用于未被授权加载的映像的数字证书30和数字签名32。授权数据库(DB)26存储用于被授权加载的数字证书34和数字签名36。

显示设备50包括用于显示UEFI设立菜单52的屏幕,该菜单52允许用户选择各种设置。如图所示,菜单52包括用于启用安全引导的第一按钮54和用于启用用于自动地发现和安装证书的第二按钮56。已经选择了(见复选标记)两个按钮52、54,从而使得UEFI将执行本发明的一个或者多个实施例。

因而,安全引导22可以标识包括签名的映像14的一个或者多个选项ROM 12和包括签名的映像18的一个或者多个OS引导加载器16。安全引导22可以包括用于确定选项ROM 12或者OS引导加载器16的签名的映像14、18是否被授权加载和运行的逻辑。具体而言,安全引导22可以对于签名的映像14、18中的每个映像确定是否有与签名的映像关联的、在撤消数据库(DBX)24中的证书30或者在授权数据库(DB)26中的证书34。如果证书包含公共密钥(该公共密钥对来自签名的映像的数字证书进行解码,从而使得解码的数字签名匹配映像的哈希)则证书与签名的映像关联。如果这样的关联的证书在撤消数据库(DBX)24中,则安全引导防止映像被加载。另外,安全引导22可以对于签名的映像14、18中的每个映像确定是否有与签名的映像关联的、在撤消数据库(DBX)24中或者在授权数据库(DB)26中的签名32。如果签名匹配签名的映像的哈希则签名与映像关联。以下参照图3进一步描述使用证书和签名以确定是否加载和运行映像或者防止加载并且拒绝映像。

UEFI 20也如为了认证对系统的各种改变而需要的那样允许用户断定“物理存在”42。物理存在42的非限制示例是物理地位于计算节点10上的按钮或者开关,从而使得在适当时间按压按钮向UEFI指示授权的用户存在于数据中心中并且打算授权对系统的提出的改变。例如,可能在关断安全引导之前或者在向或者从撤销数据库或者授权数据库添加或者去除证书之前需要断定物理存在。此外,UEFI 20还允许用户断定用来对密钥登记密钥(KEK)数据库的更新进行签名或者关断安全引导的平台密钥(PK)44。

图2是示出了源(源ABC)60预备签名的映像的过程和计算节点(节点123)70验证签名的映像的过程的流程图。源60获得数字映像61,比如将被选项ROM或者OS引导加载器使用的软件代码。数字映像61被输入给哈希化算法或者函数62以生成哈希值63。然后,哈希值63和私有密钥64(来自用于源60的公共/私有秘钥对)被输入到签名算法65以生成数字签名66。映像61和数字签名66被组合成被称为签名的映像67的文件。源60在计算节点70中安装的选项ROM或者OS引导加载器71(也见图1中的选项ROM 12和OS引导加载器16)中提供签名的映像67。

如这里所用,术语“哈希”或者“哈希函数”是指将可变大小的数字数据转换成固定大小的数字数据并且使得仅使用来自哈希函数的输出数据(即,哈希)来重建输入数据(即,消息或者映像)不能实行、变更输入数据而未引起输出数据的改变不能实行和两个输入数据集合产生相同输出数据不能实行的数学函数。

在计算节点70中,安全引导可以从签名的映像67读取映像61和数字签名66二者。映像61被输入给是与哈希化算法62相同的函数的哈希化算法或者函数72以生存哈希值73。数字证书80包括公共密钥82。如果从对映像61进行签名的源60获得数字证书80,则公共密钥82是包括私有密钥64的公共/私有秘钥对的部分并且将能够对数字签名66进行解码以生成被私有密钥64编码的相同哈希值63。因此,数字签名66和公共密钥82被输入到签名算法74,并且然后(在步骤75)比较签名算法74的输出与哈希值73。如果(在步骤76)确定签名算法74的输出没有匹配哈希值73,则映像61被标识为无效并且将防止加载映像61。无效映像可以具有已经被自从原有图像61被源60签名起嵌入的恶意代码危及的映像。然而,如果(在步骤76)确定签名算法74的输出匹配哈希值73,则映像61是被源60签名的原有映像。

图3是确定映像是否被授权加载和运行的方法90的流程图。根据该方法,如果映像格式不正确(按照步骤92),则拒绝加载映像(按照步骤104)。如果映像格式正确(按照步骤92)并且映像被签名(按照步骤94),则该方法确定(在步骤96中)映像是否在撤消数据库(DBX)中具有关联的证书。如果映像在撤消数据库(DBX)中具有关联的证书(按照步骤96),则拒绝加载映像(按照步骤104)。

如果映像在撤消数据库(DBX)中没有关联的证书(按照步骤96),则该方法确定(按照步骤98)映像是否在授权数据库(DB)中具有关联的证书。如果映像在授权数据库(DB)中具有关联的证书(按照步骤98),但是映像在撤消数据库(DBX)中具有关联的签名(按照步骤102),则拒绝加载映像(按照步骤104)。反言之,如果映像在授权数据库(DB)中具有关联的证书(按照步骤98),但是映像在撤消数据库(DBX)中没有关联的签名(按照步骤102),则允许加载和运行映像(按照步骤106)。

如果映像在撤消数据库(DBX)(按照步骤96)或者授权数据库(DB)(按照步骤98)中没有关联的证书,则该方法确定(按照步骤100)是否在授权数据库(BD)中有与映像关联的签名。如果在授权数据库(BD)中没有签名(按照步骤100),则拒绝加载映像(按照步骤104)。然而,如果映像在授权数据库(DB)中具有关联的签名(按照步骤100),但是映像也在撤消数据库(DBX)中具有关联的签名(按照步骤102),则拒绝加载映像(按照步骤104)。反言之,如果映像在授权数据库(DB)中具有关联的签名(按照步骤100),但是映像在撤消数据库(DBX)中没有关联的签名(按照步骤102),则可以加载和运行映像(按照步骤106)。

图4是向授权数据库自动地提供所需数字证书、从而使得可以加载映像的方法110的流程图。步骤112包括计算节点的统一可扩展固件接口标识在计算节点内的选项ROM或者OS引导加载器,其中选项ROM或者OS引导加载器存储能够使用所需数字证书被验证的签名的映像。步骤114包括确定统一可扩展固件接口没有在撤消数据库中或者在授权数据库中存储所需数字证书。步骤116包括在除了撤消数据库或者授权数据库之外的数字证书数据库中自动地标识所需数字证书。然后,步骤118包括向授权数据库提供所需数字证书。

许多修改和变化将为本领域普通技术人员所清楚而未脱离本发明的范围和精神实质。选择和描述实施例以便最好地说明本发明的原理和实际应用并且使本领域普通技术人员能够对于有如与设想的特定使用相适应的各种修改的各种实施例理解本发明。

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