操作系统安全启动方法及装置制造方法

文档序号:6544921阅读:159来源:国知局
操作系统安全启动方法及装置制造方法
【专利摘要】本发明实施例提供一种操作系统安全启动方法及装置。本发明操作系统安全启动方法,包括:对UEFI?BIOS进行签名认证,若认证通过后,对操作系统引导程序进行签名认证;使用安全哈希算法对认证通过后的操作系统引导程序进行度量,将得出的度量结果作为可信根;将可信根作为初始值,依次度量多个操作系统配置文件;获取最终的度量结果与期望的安全值进行比较,验证是否安全启动操作系统。本发明实施例实现了操作系统引导程序通过数字签名认证的方法校验安全性,度量安全的操作系统引导程序产生可信根,根据可信根逐级度量操作系统OS,将可信链由BIOS延伸至OS,解决现有技术中无法保证BootLoader之后启动程序的安全。
【专利说明】操作系统安全启动方法及装置
【技术领域】
[0001]本发明实施例涉及计算机【技术领域】,尤其涉及一种操作系统安全启动方法及装置。
【背景技术】
[0002]在当今的信息时代,保护信息安全,提供一个可信赖的计算环境已经成为信息化的必然要求。随着恶意软件的快速演变,恶意软件正在将基本输入输出系统(Basic InputOutput System,简称BIOS)作为首选攻击目标,对底层固件和启动程序进行攻击的病毒较难防御,所以保护计算机启动过程的可信及安全性尤为重要。
[0003]BIOS固化在计算机主板上的一个只读内存(Read-Only Memory,简称ROM)芯片内,它保存着计算机最重要的基本输入输出的程序、开机自检程序和系统自启动程序、菜单程序。其主要功能是为计算机提供最底层的、最直接的硬件设置、控制和访问。安全启动是统一的可扩展固定接口(Unified Extensible Firmware Interface,简称 UEFI)标准规范定义的一种固件验证方法,规范描述了平台固件如何管理安全证书、固件验证,以及固件和操作系统之间的接口,目的是防止恶意软件的侵入。安全启动采用数据签名和密钥的认证方法。在主板出厂的时候,可以内置一些可靠的公钥,任何想要在这块主板上加载的操作系统或者硬件驱动程序,都必须通过这些密钥的认证,也就是说,这些软件必须用对应的私钥签署过,否则主板拒绝加载。
[0004]整个操作系统的启动过程大致可以分为BIOS启动、启动加载器BootLoader启动、操作系统启动。Boot Loader是操作系统内核运行之前运行的一段小程序,位于主引导记录(Master Boot Record,简称MBR)中,即操作系统引导程序,BIOS启动完成后将控制权移交给BootLoader完成操作系统的加载启动任务。安全启动只能保证启动过程中BIOS及BootLoader程序的可信,无法保证BootLoader之后启动程序的安全。

【发明内容】

[0005]本发明实施例提供一种操作系统安全启动方法及装置,以克服现有技术中无法保证BootLoader之后启动程序的安全。
[0006]第一方面,本发明实施例提供一种操作系统安全启动方法,包括:
[0007]对统一的可扩展固件接口基本输入输出系统UEFI BIOS进行签名认证,若认证通过后,对操作系统引导程序进行签名认证;
[0008]使用安全哈希算法对认证通过后的所述操作系统引导程序进行度量,将得出的度量结果作为可信根;
[0009]将所述可信根作为初始值,依次度量多个操作系统配置文件;
[0010]获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统。
[0011]结合第一方面,在第一方面的第一种可能的实现方式中,所述将所述可信根作为初始值,依次度量多个操作系统配置文件,包括:
[0012]对所述操作系统配置文件使用安全哈希算法进行度量,将度量结果与所述初始值作为安全哈希算法的输入值再次进行度量,将得出的值作为度量结果,并将所述度量结果作为新的初始值对下一个操作系统配置文件进行度量,直至对所有操作系统配置文件度量完成。
[0013]结合第一方面、第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统,包括:
[0014]若最终的所述度量结果与所述期望的安全值一致,则安全启动所述操作系统;若不一致,则不启动所述操作系统。
[0015]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,还包括:
[0016]在可信平台模块TPM上进行安全哈希算法的度量;
[0017]将所述度量结果存储在所述TPM中的平台配置寄存器PCR中。
[0018]第二方面,本发明实施例提供一种操作系统安全启动装置,包括:
[0019]签名认证模块,用于对统一的可扩展固件接口基本输入输出系统UEFI BIOS进行签名认证,若认证通过后,对操作系统弓I导程序进行签名认证;
[0020]度量模块,用于使用安全哈希算法对认证通过后的所述操作系统引导程序进行度量,将得出的度量结果作为可信根;
[0021]所述度量模块,还用于将所述可信根作为初始值,依次度量多个操作系统配置文件;
[0022]验证模块,用于获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统。
[0023]结合第二方面,在第二方面的第一种可能的实现方式中,所述度量模块,具体用于:
[0024]对所述操作系统配置文件使用安全哈希算法进行度量,将度量结果与所述初始值作为安全哈希算法的输入值再次进行度量,将得出的值作为度量结果,并将所述度量结果作为新的初始值对下一个操作系统配置文件进行度量,直至对所有操作系统配置文件度量完成。
[0025]结合第二方面、第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述验证模块,具体用于:
[0026]若最终的所述度量结果与所述期望的安全值一致,则安全启动所述操作系统;若不一致,则不启动所述操作系统。
[0027]结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述度量模块包括可信平台模块TPM,用于在所述TPM上进行安全哈希算法的度量;
[0028]所述装置还包括:平台配置寄存器PCR,用于存储所述度量结果。
[0029]本发明实施例操作系统安全启动方法及装置,通过对UEFI BIOS进行签名认证,若认证通过后,对操作系统引导程序进行签名认证;使用安全哈希算法对认证通过后的所述操作系统引导程序进行度量,将得出的度量结果作为可信根;将所述可信根作为初始值,依次度量多个操作系统配置文件;获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统,实现了操作系统引导程序通过数字签名认证的方法校验安全性,度量安全的操作系统引导程序产生可信根,根据可信根逐级度量操作系统OS,将可信链由BIOS延伸至OS,解决现有技术中无法保证BootLoader之后启动程序即OS启动程序的安全。
【专利附图】

【附图说明】
[0030]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本发明操作系统安全启动方法实施例一的流程图;
[0032]图1A为本发明操作系统安全启动方法实施例一的执行过程示意图;
[0033]图2为本发明操作系统安全启动装置实施例一的结构示意图;
[0034]图3为本发明操作系统安全启动设备实施例一的结构示意图。
【具体实施方式】
[0035]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]图1为本发明操作系统安全启动方法实施例一的流程图。图1A为本发明操作系统安全启动方法实施例一的执行过程示意图。本实施例的执行主体为操作系统安全启动装置,该装置可以通过软件和/或硬件实现。如图1所示,本实施例的方法可以包括:
[0037]步骤101、对统一的可扩展固件接口基本输入输出系统UEFI BIOS进行签名认证,若认证通过后,对操作系统弓I导程序进行签名认证。
[0038]具体地,如图1A所示,操作系统启动时,首先对UEFI BIOS进行签名认证,认证通过后,读取磁盘中的操作系统引导程序,进行签名认证。签名认证可以采用CA数字签名认证。使用安全启动的方法保证BIOS的安全性,签名认证过程透明,用户接受度高。
[0039]多操作系统启动程序(GRand Unified Bootloader,简称GRUB)是一种操作系统引导程序。用来引导不同系统,如windows, Iinux等。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
[0040]在UEFI BIOS签名认证时,同时可以认证Option Rom签名,硬件单板会兼容第三方网卡以及独立磁盘冗余阵列(Redundant Array of Independent Disks,简称RAID)卡等外设,并且外接卡的厂商都会提供传统的Option Rom 二进制文件或者可扩展固件接口(Extensible Firmware Interface简称EFI)驱动程序给操作系统UEFI BIOS,在操作系统启动过程中UEFI BIOS会通过调用Option Rom代码来完成外接卡的初始化。
[0041]步骤102、使用安全哈希算法对认证通过后的操作系统引导程序进行度量,将得出的度量结果作为可信根。
[0042]具体地,安全哈希算法(Secure Hash Algorithm,简称SHA)的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
[0043]使用安全哈希算法对认证通过后的操作系统引导程序进行度量,得出信息摘要即度量结果,作为可信根,进一步对操作系统内核文件等进行度量。
[0044]步骤103、将可信根作为初始值,依次度量多个操作系统配置文件。
[0045]可选地,将可信根作为初始值,依次度量多个操作系统配置文件,包括:
[0046]对操作系统配置文件使用安全哈希算法进行度量,将度量结果与初始值作为安全哈希算法的输入值再次进行度量,将得出的值作为度量结果,并将度量结果作为新的初始值对下一个操作系统配置文件进行度量,直至对所有操作系统配置文件度量完成。
[0047]具体地,如图1A所示,操作系统配置文件包括虚拟机监视器Xen、操作系统内核文件如linux Kernel、根文件系统Initrd、模块Module、关键系统文件等,对多个操作系统配置文件进行度量可以采用如下方法:将可信根作为初始值NO,对第一个操作系统配置文件使用安全哈希算法进行度量,将度量结果VALUE与初始值NO作为安全哈希算法的输入值再次进行度量,将得出的值作为度量结果NI,并存储该度量结果,即可以采用公式NI =SHA(N0+VALUE),并将度量结果作为新的初始值对下一个操作系统配置文件进行度量,即令NO = NI,进行上述过程,直至对所有操作系统配置文件度量完成,并保存所有操作系统配置文件度量的度量结果。
[0048]步骤104、获取最终的度量结果与期望的安全值进行比较,验证是否安全启动操作系统。
[0049]可选地,获取最终的度量结果与期望的安全值进行比较,验证是否安全启动操作系统,包括:
[0050]若最终的度量结果与期望的安全值一致,则安全启动操作系统;若不一致,则不启动操作系统。
[0051]具体地,获取步骤103中存储的最终的度量结果与预先设定的期望的安全值进行比较,若一致,则安全启动操作系统;若不一致,则不启动操作系统。
[0052]可选地,本实施例的方法,还可以包括:
[0053]在可信平台模块TPM上进行安全哈希算法的度量;
[0054]将度量结果存储在TPM中的平台配置寄存器PCR中。
[0055]具体地,可以米用可信计算模块(Trusted Platform Module,简称TPM) 2.0进行安全哈希算法的度量,ΤΡΜ2.0芯片符合可信计算组织(Trusted Computing Group,简称TCG)定义的TPM标准规范。度量过程中的度量结果可以存储在TPM中的平台配置寄存器(Platform Configuration Registers,简称 PCR)中。
[0056]本实施例,通过对基本输入输出系统BIOS进行签名认证,若认证通过后,对操作系统引导程序进行签名认证;使用安全哈希算法对认证通过后的所述操作系统引导程序进行度量,将得出的度量结果作为可信根;将所述可信根作为初始值,依次度量多个操作系统配置文件;获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统,实现了操作系统引导程序通过数字签名认证的方法校验安全性,度量安全的操作系统引导程序产生可信根,根据可信根逐级度量操作系统OS,将可信链由BIOS延伸至OS,解决现有技术中无法保证BootLoader之后启动程序即OS启动程序的安全。
[0057]图2为本发明操作系统安全启动装置实施例一的结构示意图,如图2所示,本实施例的操作系统安全启动装置20可以包括:签名认证模块201、度量模块202、验证模块203,其中,签名认证模块201,用于对统一的可扩展固件接口基本输入输出系统UEFI BIOS进行签名认证,若认证通过后,对操作系统引导程序进行签名认证;度量模块202,用于使用安全哈希算法对认证通过后的所述操作系统引导程序进行度量,将得出的度量结果作为可信根;度量模块202,还用于将所述可信根作为初始值,依次度量多个操作系统配置文件;验证模块203,用于获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统。
[0058]可选地,度量模块202,具体用于:
[0059]对所述操作系统配置文件使用安全哈希算法进行度量,将度量结果与所述初始值作为安全哈希算法的输入值再次进行度量,将得出的值作为度量结果,并将所述度量结果作为新的初始值对下一个操作系统配置文件进行度量,直至对所有操作系统配置文件度量完成。
[0060]可选地,验证模块203,具体用于:
[0061]若最终的所述度量结果与所述期望的安全值一致,则安全启动所述操作系统;若不一致,则不启动所述操作系统。
[0062]可选地,度量模块202可以包括可信平台模块TPM2020,用于在所述TPM上进行安全哈希算法的度量;
[0063]操作系统安全启动装置20还可以包括:平台配置寄存器PCR204,用于存储所述度
量结果。
[0064]本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0065]图3为本发明操作系统安全启动设备实施例一的结构示意图。如图3所示,本实施例提供的操作系统安全启动设备30包括处理器301和存储器302。操作系统安全启动设备30还可以包括发射器303、接收器304。发射器303和接收器304可以和处理器301相连。在硬件实现上,发射器、接收器、处理器可以封闭到一个芯片,或者分别用一个芯片来实现。其中,发射器303用于发送数据或信息,接收器304用于接收数据或信息,存储器302存储执行指令,当操作系统安全启动设备30运行时,处理器301与存储器302之间通信,处理器301调用存储器302中的执行指令,用于执行方法实施例一所述的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0066]在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。[0067]所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0068]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0069]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种操作系统安全启动方法,其特征在于,包括: 对统一的可扩展固件接口基本输入输出系统UEFI BIOS进行签名认证,若认证通过后,对操作系统引导程序进行签名认证; 使用安全哈希算法对认证通过后的所述操作系统引导程序进行度量,将得出的度量结果作为可信根; 将所述可信根作为初始值,依次度量多个操作系统配置文件; 获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统。
2.根据权利要求1所述的方法,其特征在于,所述将所述可信根作为初始值,依次度量多个操作系统配置文件,包括: 对所述操作系统配置文件使用安全哈希算法进行度量,将度量结果与所述初始值作为安全哈希算法的输入值再次进行度量,将得出的值作为度量结果,并将所述度量结果作为新的初始值对下一个操作系统配置文件进行度量,直至对所有操作系统配置文件度量完成。
3.根据权利要求1或2所述的方法,其特征在于,所述获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统,包括: 若最终的所述度量结果与所述期望的安全值一致,则安全启动所述操作系统;若不一致,则不启动所述操作系统。
4.根据权利要求3所述的方法,其特征在于,还包括: 在可信平台模块TPM上进行安全哈希算法的度量; 将所述度量结果存储在所述TPM中的平台配置寄存器PCR中。
5.一种操作系统安全启动装置,其特征在于,包括: 签名认证模块,用于对统一的可扩展固件接口基本输入输出系统UEFIB10S进行签名认证,若认证通过后,对操作系统引导程序进行签名认证; 度量模块,用于使用安全哈希算法对认证通过后的所述操作系统引导程序进行度量,将得出的度量结果作为可信根; 所述度量模块,还用于将所述可信根作为初始值,依次度量多个操作系统配置文件; 验证模块,用于获取最终的度量结果与期望的安全值进行比较,验证是否安全启动所述操作系统。
6.根据权利要求5所述的装置,其特征在于,所述度量模块,具体用于: 对所述操作系统配置文件使用安全哈希算法进行度量,将度量结果与所述初始值作为安全哈希算法的输入值再次进行度量,将得出的值作为度量结果,并将所述度量结果作为新的初始值对下一个操作系统配置文件进行度量,直至对所有操作系统配置文件度量完成。
7.根据权利要求5或6所述的装置,其特征在于,所述验证模块,具体用于: 若最终的所述度量结果与所述期望的安全值一致,则安全启动所述操作系统;若不一致,则不启动所述操作系统。
8.根据权利要求7所述的装置,其特征在于,所述度量模块包括可信平台模块TPM,用于在所述TPM上进行安全哈希算法的度量; 所述装置还包括:平台配置寄存器PCR,用于存储所述度量结果。
【文档编号】G06F21/44GK103927490SQ201410172838
【公开日】2014年7月16日 申请日期:2014年4月25日 优先权日:2014年4月25日
【发明者】杨青, 蒋小安, 施迅 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1