一种UEFIBIOS安全升级机制的设计方法与流程

文档序号:11514754阅读:555来源:国知局

本发明涉及计算机技术领域,具体地说是一种uefibios安全升级机制的设计方法。



背景技术:

uefi是统一可扩展固件接口规范,连接着操作系统和平台固件,为操作系统启动前的运行状态提供了标准的环境。与传统bios相比,uefi采用了全新的启动流程,虽然解决了传统bios的很多问题,具有启动更快、扩展性更好的优点,但uefi也存在一些安全缺陷。uefibios通常是由原始的制造商oem和独立bios供应商合作开发的,以售卖商品的形式分发出去。由于各种原因修补bug是必需的,兼容新硬件、打补丁等各种目的来更新bios。因bios的独特性,以及它在计算机系统中特殊的作用使得由恶意的程序对bios进行的未经授权的更改很可能对计算机系统造成巨大的威胁。恶意的病毒是为了引起持续地拒绝服务威胁,亦或者永久恶意软件攻击。现有技术中在对系统bios进行升级时,直接使用bios供应商提供的升级bios工具对系统bios进行升级,而在升级之前没有验证待升级的bios镜像文件的可信性。

现有技术无法保证所升级的bios镜像文件是没有经过篡改的安全可信的bios镜像,因此可能会将加入恶意代码的bios镜像文件植入到biosflash芯片中。这无疑为系统的安全带来了巨大的威胁。

基于此,本发明提供一种uefibios安全升级机制的设计方法,实现在系统重启时进行bios升级,待升级的bios镜像必须经过数字签名,在对biosflash芯片刷新之前会通过一个rtu(rootoftrustforupdate)模块对待升级的bios镜像进行验证,只有验证通过的bios镜像文件才可以被写入biosflash芯片内。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种uefibios安全升级机制的设计方法。

一种uefibios安全升级机制的设计方法,用于对服务器uefibios的安全升级,其设计过程为:

首先将待升级的bios镜像进行数字签名;然后配置一个信任根模块,在对biosflash芯片刷新之前通过该信任根模块对待升级的bios镜像文件进行验证,只有验证通过的bios镜像文件才可以被写入biosflash芯片内。

对bios升级镜像进行数字签名的具体过程为:在编译生成bios镜像文件后,运用数字签名技术,对bios镜像文件进行签名,数字签名的内容分为两个部分:第一部分为bios本身的信息;第二部分为对bios镜像文件运行密码算法后得出的签名值。

所述bios本身的信息包括发行时间、镜像文件的大小、bios标识号。

进行数字签名后的待升级bios镜像文件缓存到服务器的一个存储位置,当服务器重启时该存储位置的内容被保留并执行转移到信任根模块中,该信任根模块在服务器系统重启时开始被执行。

所述存储位置配置在独立于操作系统的管理模块sp环境中,该sp环境为服务器的硬件管理模块环境,且与主机上操作系统中的管理软件通信,相对应的,通过管理软件和管理模块通信来检查bios镜像文件,如果bios升级镜像存在,它将被从存储位置中读取到主机内存,并由信任根模块对它执行验证。

信任根模块校验待升级的bios镜像文件的过程为:首先将待升级的bios镜像被读取到内存中,信任根模块开始校验bios升级镜像是否完整,如果发现bios升级镜像是可信的,该信任根模块解锁biosflash芯片,把升级镜像写进biosflash芯片;如果bios升级镜像被确定是不可信的,biosflash芯片将不会被刷新。

信任根模块校验bios升级镜像是否完整可信的具体过程为:

在生成bios镜像文件时使用sm3算法生成一个对应的摘要;

bios供应商利用自己的私钥对上述步骤生成的摘要信息进行加密,然后将加密后的密文和待升级的bios镜像文件一起打包发行,同时将对应私钥的公钥提供给客户端;

在客户端升级bios镜像时,信任根模块首先用bios供应商提供的公钥对打包的bios升级文件中的密文进行解密,得到摘要信息,然后用hash函数对收到的原文产生一个摘要信息,与解密的摘要信息进行比对,如果两者相同,则认为bios升级文件是可信的。

当bios升级镜像文件可信时,系统bios通过和spiflash控制器通信来执行系统flash的更新,即由信任根模块将bios升级镜像文件写入biosflash芯片中。

所述biosflash芯片中配置锁机制,该锁机制用于控制只有信任根模块可以在运行时对biosflash芯片进行写访问。

当不存在bios升级镜像文件,或bios升级镜像文件验证失败时,bios通过和spi控制器通信来锁定biosflash芯片到一预先指定区域,该区域包含bios镜像,此时biosflash芯片中的锁机制被设置,该指定区域的访问变为只读且无法被修改。

本发明的一种uefibios安全升级机制的设计方法和现有技术相比,具有以下有益效果:

本发明的一种uefibios安全升级机制的设计方法能够实现对uefibios的安全升级,能够保证所升级的bios镜像文件是未经任何修改的完全可信的,镜像文件中不包含任何非法的未经授权的模块,从而防止在bios闪存中存储不可信的代码,增加了产品的可信功能,有助于提高服务器bios芯片的核心竞争力,实用性强,适用范围广泛,具有很好的推广应用价值。

附图说明

附图1是本发明的实现架构图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步说明。

如附图1所示,本发明提供一种uefibios安全升级机制的设计方法,实现对uefibios的安全升级,从而防止在biosflash闪存芯片中存储不可信的代码。

本发明的技术关键点就是,在系统重启时biosflash闪存更新之前,执行rtu模块,对bios待升级的镜像文件的签名部分进行验证。若验证通过,则rtu将解锁biosflash闪存,把bios待升级镜像写进biosflash闪存;若验证不通过,bios闪存将不会被刷新,从而在源头上确保了uefibios系统的可信和安全。

在bios系统层面,对uefibios安全升级,在本发明中,为了启动bios升级,为了将来bios可以访问sp环境,主机上的系统管理软件可以和sp通信,发送bios升级镜像文件存储在sp(serviceprocessor)环境中。

在启动过程中会验证和刷新bios升级镜像,这时作为bios的一部分而被执行的rtu会控制系统。biosflash的spi控制器只能由host主机访问。

上述描述中的rtu模块为信任根模块,其英文全称为rootoftrustforupdate。rtu作为系统bios的一部分被执行,在系统重启时控制主机端。所有spiflash区域在系统重启时都被解锁。在系统的flash中,rtu没有和系统bios的剩余部分分离。系统bios,在执行不受信任的代码(比如,可选roms)前,优先执行rtu。

其设计过程为:首先将待升级的bios镜像进行数字签名;然后配置一个信任根模块,在对biosflash芯片刷新之前通过该信任根模块对待升级的bios镜像文件进行验证,只有验证通过的bios镜像文件才可以被写入biosflash芯片内。

具体为:

一、对bios升级镜像进行数字签名:

在编译生成bios镜像文件后,运用数字签名技术,对bios镜像文件进行签名。数字签名的内容分为两个部分:第一部分即为bios本身的信息,包括发行时间、镜像文件的大小、bios标识号等;第二部分即对bios镜像文件运行密码算法后得出的签名值。

二、将经过数字签名的待升级的bios镜像缓存到一个存储位置,当服务器重启时这个存储位置的内容会被保留。

所述存储位置配置在独立于操作系统的管理模块sp环境中,该sp环境为服务器的硬件管理模块环境,且与主机上操作系统中的管理软件通信,sp环境又指带sp芯片的环境,是serviceprocessor的缩写,sp芯片是一种管理服务器或pc机的硬件管理模块。它独立于操作系统,可以监控系统在任何时刻的软硬件状态。你可以对一台有sp的机器进行远程开关机,只要机器是插上电源。sp最主要是监控和管理服务器的硬件状态,如风扇转速,cpu温度等等,并在故障时候发出警报。现在绝大多数服务器都有sp,如sun的所有服务器都有sp控制模块。ipmi是业界的sp标准,它定义了一种标准的平台管理协议。现在大部分的sp都是基于ipmi标准来设计的。

三、当服务器重启时,执行转移到rtu。

四、待升级的bios镜像被读取到内存中,rtu校验bios升级镜像是完整的。如果发现bios升级镜像是可信的,如果必要的话rtu将解锁bios闪存,把升级镜像写进bios闪存。如果bios升级镜像被确定是不可信的,bios闪存将不会被刷新。

五、在执行不可信的代码(包括可选rom)之前,对bios闪存的锁机制会被使能。

进一步的,本发明的uefibios升级过程通过如下步骤实现:

1)被数字签名的bios升级镜像被缓存到一个存储位置,当服务器重启时这个存储位置的内容会被保留;

2)系统重启,rtu被执行;

3)系统和sp通信来检查bios升级镜像。如果bios升级镜像存在,它将被从sp中读取到主机内存(在rtu执行期间只能由系统bios写入),并由rtu对它执行验证,验证过程如下:

在生成bios镜像文件时使用sm3算法生成一个对应的摘要;

bios供应商利用自己的私钥对上述步骤中生成的摘要信息进行加密,然后将加密后的密文和待升级的bios镜像一起打包发行,同时将对应私钥的公钥提供给客户端;

在客户端升级bios镜像时,首先用bios供应商提供的公钥对打包的bios升级文件中的密文进行解密,得到摘要信息,然后用hash函数对收到的原文产生一个摘要信息,与解密的摘要信息进行比对,如果两者相同,则认为bios升级文件是可信的;

4)如果bios升级镜像是可信的,系统bios通过和spiflash控制器通信来执行系统flash的更新,即由rtu将bios升级镜像写入biosflash闪存,在bios闪存中必须存在一种锁机制,这样除了rtu没有实体可以在运行时对bios闪存进行写访问;

5)如果sp指出不存在bios升级镜像,或者如果bios升级镜像验证失败,bios会通过和spi控制器通信来锁定biosflash闪存到“锁直到重置”区域,这个区域包含bios镜像。当锁被设置,对这个spi区域锁寄存器的访问会变为只读,这样“锁直到重置”设置就不能被修改。这个区域锁会被优先执行,然后再退出bios的rtu部分;

6)bios升级完成后,系统bios会强迫系统重启,之后从新的镜像开始执行。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

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