一种通过bios和内核实现安全可信认证的方法

文档序号:6548764阅读:352来源:国知局
一种通过bios和内核实现安全可信认证的方法
【专利摘要】本发明提供一种通过BIOS和内核实现安全可信认证的方法,在BIOS的NVSTORAGE区域中添加对操作系统内核签名进行解密的私钥,通过在UEFIBIOS中添加虚拟设备驱动程序,在DXE阶段的初期将虚拟设备驱动程序加载到UEFI运行环境中,在随后过程中,DXE驱动程序通过对BIOS的签名进行非对称加密,将加密后的结果保存于一块预先定义的保留内存区域,在BIOS自检结束后将操作系统内核文件加载到内存中,通过搜索标志性字符,获得内核代码的加密签名,UEFIBIOS通过对NVSTORAGE的访问读取存储在其中的私钥,利用私钥对操作系统签名进行解密,如果解密后的签名是可信任的,那么BIOS将跳转到内核代码进而将控制权移交给操作系统,否则将提示用户操作系统未通过认证,并提示用户是否继续运行。
【专利说明】—种通过BIOS和内核实现安全可信认证的方法
【技术领域】
[0001]本发明涉及计算机应用【技术领域】,具体地说是一种通过BIOS和内核实现安全可信认证的方法。
【背景技术】
[0002]信息安全技术的发展除了建立在操作系统级别上的安全机制,还进一步延伸到了固件层。固件BIOS处于计算机系统的底层,如果BIOS遭到攻击,被恶意代码修改,会造成计算机系统的彻底奔溃,或导致计算机系统被恶意者从底层控制。为了解决BIOS系统面临的安全问题,业界提出了可信计算的概念。新版本的UEFI标准中加入了关于可信启动、数字签名和数字摘要等服务的定义,这些定义符合可信计算组织制定的可信平台规范,可用于固件执行过程中的完整性检查和身份认证。在可信计算领域,以数字认证技术为核心,通过禁止固件中未知代码的运行或者部分限制其行为来避免对系统的启动造成危害。在实际应用中,这种方法存在部分缺陷,其中包括缺乏灵活的安全管理机制和缺乏对上层操作系统的保护。

【发明内容】

[0003]本发明的目的是提供一种一种通过BIOS和内核实现安全可信认证的方法。
[0004]本发明的目的是按以下方式实现的,步骤如下:
在BIOS的NVSTORAGE区域中添加对操作系统内核签名进行解密的私钥,通过在UEFIBIOS中添加虚拟设备驱动程序,在DXE阶段的初期将虚拟设备驱动程序加载到UEFI运行环境中,在随后过程中,DXE驱动程序通过对BIOS的签名进行非对称加密,将加密后的结果保存于一块预先定义的保留内存区域,在BIOS自检结束后将操作系统内核文件加载到内存中,通过搜索标志性字符,获得内核代码的加密签名,UEFI BIOS通过对NVSTORAGE的访问读取存储在其中的私钥,利用私钥对操作系统签名进行解密,如果解密后的签名是可信任的,那么BIOS将跳转到内核代码进而将控制权移交给操作系统,否则将提示用户操作系统未通过认证,并提示用户是否继续运行。
[0005]所述的安全可信认证的方法,在Linux内核中添加代码,对BIOS的签名进行解密和认证,内核代码必须预先存储对BIOS签名进行解密用的私钥,操作系统内核在获得可信认证并运行后,内核代码通过对内存的访问,获得BIOS启动过程中存储在保留内存区域中的BIOS加密签名,利用内核预先保留的私钥对BIOS签名进行解密,如果解密后的签名是可信任的,那么内核将继续运行并加载操作系统至登陆界面,如果解密后的签名是不可信任的或者没有找到签名,那么内核代码将提示用户该操作系统所运行的平台是未获得认证的,并提示用户是否继续运行。
[0006]所述的安全可信认证的方法,移除对操作系统的签名认证部分,只对BIOS签名进行认证,同时将BIOS中存储的私钥改变为对BIOS签名进行解密的私钥,操作系统内核只对BIOS进行签名认证,BIOS不对操作系统进行认证,那么使用未获得认证的操作系统也可以启动,但是只有获得认证的内核是可信任的,这种方法相比对操作系统的签名认证,安全性较低,但是使用该方法可判断出用户是否使用了认证的操作系统,这种方法的好处是内核中无需存放私钥,公钥和私钥都由BIOS产生,BIOS可以对公钥和私钥进行动态更新,操作系统内核通过对BIOS的访问获得私钥,并对内存中的BIOS签名进行解密。
[0007]本发明的有益效果是:UEFI固件的灵活性和开放性给计算机安全技术带来了新的发展空间。相比传统的BIOS,UEFI更像一个微操作系统,可在操作系统载入之前操控所有的硬件资源,且具有实现更复杂逻辑运算的能力。本文描述的是通过在UEFI BIOS和Linux内核中分别添加代码实现安全可信认证的一种方法。该方法可应用于没有TPM或TCM芯片的计算机系统中。
[0008]这是一种比较安全的可信认证方法,如果存储在BIOS的NVSTORAGE中的私钥被盗取,没有获得操作系统内核中存储的私钥,是无法进入操作系统的。如果操作系统内核中的私钥被盗取,在没有获得BIOS中存储的私钥,也无法加载操作系统。即使BIOS和系统内核中的私钥都被盗取,如果不知道BIOS的加密签名在内存中的存放位置,以及操作系统签名在内核中的位置,也同样无法获得认证。
【专利附图】

【附图说明】
[0009]图1是通过BIOS和内核实现安全可信认证方法的流程图。
【具体实施方式】
[0010]参照说明书附图对本发明的方法作以下详细地说明。
[0011]在BIOS的NVSTORAGE区域中添加对操作系统内核签名进行解密的私钥。通过在UEFI BIOS中添加虚拟设备驱动程序,在DXE阶段的初期将虚拟设备驱动程序加载到UEFI运行环境中。在随后过程中,DXE驱动程序通过对BIOS的签名进行非对称加密,将加密后的结果保存于一块预先定义的保留内存区域。在BIOS自检结束后将操作系统内核文件加载到内存中,通过搜索标志性字符,获得内核代码的加密签名。UEFI BIOS通过对NVSTORAGE的访问读取存储在其中的私钥,利用私钥对操作系统签名进行解密,如果解密后的签名是可信任的,那么BIOS将跳转到内核代码进而将控制权移交给操作系统。否则将提示用户操作系统未通过认证,并提示用户是否继续运行。
[0012]在Linux内核中添加代码,对BIOS的签名进行解密和认证。内核代码必须预先存储对BIOS签名进行解密用的私钥。操作系统内核在获得可信认证并运行后,内核代码通过对内存的访问,获得BIOS启动过程中存储在保留内存区域中的BIOS加密签名,利用内核预先保留的私钥对BIOS签名进行解密,如果解密后的签名是可信任的,那么内核将继续运行并加载操作系统至登陆界面。如果解密后的签名是不可信任的或者没有找到签名,那么内核代码将提示用户该操作系统所运行的平台是未获得认证的,并提示用户是否继续运行。
[0013]这是一种比较安全的可信认证方法,如果存储在BIOS的NVSTORAGE中的私钥被盗取,没有获得操作系统内核中存储的私钥,是无法进入操作系统的。如果操作系统内核中的私钥被盗取,在没有获得BIOS中存储的私钥,也无法加载操作系统。即使BIOS和系统内核中的私钥都被盗取,如果不知道BIOS的加密签名在内存中的存放位置,以及操作系统签名在内核中的位置,也同样无法获得认证。[0014]移除对操作系统的签名认证部分,只是对BIOS签名进行认证,同时将BIOS中存储的私钥改变为对BIOS签名进行解密的私钥。操作系统内核只对BIOS进行签名认证。BIOS不对操作系统进行认证。那么使用未获得认证的操作系统也可以启动,但是只有获得认证的内核是可信任的。这种方法相比上面所述安全性较低,但是使用该方法可判断出用户是否使用了认证的操作系统。这种方法的好处是内核中无需存放私钥。公钥和私钥都由BIOS产生,BIOS可以对公钥和私钥进行动态更新。操作系统内核通过对BIOS的访问获得私钥,并对内存中的BIOS签名进行解密。
实施例
[0015]如附图所示,具体操作步骤如下:
1.在UEFI的BIOS源代码中添加DXE驱动程序,编译BIOS源代码产生可执行的ROM文
件;
2.更新刚编译的BIOS文件到系统Firmware中;
3.在Linux内核中添加对BIOS签名进行认证的代码,更新操作系统内核;
4.开机启动系统,进入操作系统。
[0016]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【权利要求】
1.一种通过BIOS和内核实现安全可信认证的方法,其特征在于步骤如下: 在BIOS的NVSTORAGE区域中添加对操作系统内核签名进行解密的私钥,通过在UEFIBIOS中添加虚拟设备驱动程序,在DXE阶段的初期将虚拟设备驱动程序加载到UEFI运行环境中,在随后过程中,DXE驱动程序通过对BIOS的签名进行非对称加密,将加密后的结果保存于一块预先定义的保留内存区域,在BIOS自检结束后将操作系统内核文件加载到内存中,通过搜索标志性字符,获得内核代码的加密签名,UEFI BIOS通过对NVSTORAGE的访问读取存储在其中的私钥,利用私钥对操作系统签名进行解密,如果解密后的签名是可信任的,那么BIOS将跳转到内核代码进而将控制权移交给操作系统,否则将提示用户操作系统未通过认证,并提示用户是否继续运行。
2.根据权利要求1所述的安全可信认证的方法,其特征在于在Linux内核中添加代码,对BIOS的签名进行解密和认证,内核代码必须预先存储对BIOS签名进行解密用的私钥,操作系统内核在获得可信认证并运行后,内核代码通过对内存的访问,获得BIOS启动过程中存储在保留内存区域中的BIOS加密签名,利用内核预先保留的私钥对BIOS签名进行解密,如果解密后的签名是可信任的,那么内核将继续运行并加载操作系统至登陆界面,如果解密后的签名是不可信任的或者没有找到签名,那么内核代码将提示用户该操作系统所运行的平台是未获得认证的,并提示用户是否继续运行。
3.根据权利要求1所述的安全可信认证的方法,其特征在于移除对操作系统的签名认证部分,只对BIOS签名进行认证,同时将BIOS中存储的私钥改变为对BIOS签名进行解密的私钥,操作系统内核只对BIOS进行签名认证,BIOS不对操作系统进行认证,那么使用未获得认证的操作系统也可以启动,但是只有获得认证的内核是可信任的,这种方法相比对操作系统的签名认证,安全性较低,但是使用该方法可判断出用户是否使用了认证的操作系统,这种方法的好处是内核中无需存放私钥,公钥和私钥都由BIOS产生,BIOS可以对公钥和私钥进行动态更新,操作系统内核通过对BIOS的访问获得私钥,并对内存中的BIOS签名进行解密。
【文档编号】G06F21/62GK104008342SQ201410247708
【公开日】2014年8月27日 申请日期:2014年6月6日 优先权日:2014年6月6日
【发明者】鄢建龙 申请人:山东超越数控电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1