一种bios自更新保护系统及方法_2

文档序号:8258048阅读:来源:国知局
部分通过硬件实现被永久写保护,不可改写;MainBlock所在的FLASH部分由P30根据P33的值来完成对其的写保护控制。
[0047]P30包括FLASH写保护控制单元P31、更新寄存器P32和WO寄存器P33。P31根据B1S配置P33的值,控制P30与P20之间的物理连接线拉高或者拉低,实现对FLASH芯片的写保护。P32和P33分别用于标示更新的状态和FLASH芯片写保护的状态。其中,P32是非易失性的;P33是易失性的,每次开机上电会清零,且在一次上电过程中,其状态只允许改变一次,且只允许从O改为I。
[0048]如图2所示,计算机开机上电的执行过程,及计算机在运行过程中B1S自更新保护流程描述如下:(I)开机上电,B1S的BootBlock先执行,由P23检测MainBlock的完整性;(2)如果MainBlock被篡改,则由P24执行B1S恢复,恢复成功后重启计算机系统。如果MainBlock是完整的,则继续执行第(3)步;(3) B1S的MainBlock执行,P21检测更新标志寄存器P32是否为I ;(4)如果P32为1,则需要进行B1S更新,继续执行第(5)步,否则,不需要B1S更新,则继续执行第(8)步;(5) P21对待更新的B1S文件进行验签,验证其是否是由B1S厂商提供的合法的B1S镜像文件。如果是,则执行第(6)步,进行B1S更新,否则执行第(7)步;(6) P21更新FLASH中的B1S,然后清空更新寄存器P32为0,并重新启动计算机;(7)P21清空更新寄存器P32为O,报警提示,拒绝更新FLASH中的B1S ; (8)P22设置B1S写保护生效,置P33为I ;(9)P31执行B1S写保护设置,使得FLASH芯片的内容不可被更改;(1)MainBlock引导操作系统,操作系统下的应用程序运行,并随时准备接受上层软件对于P32的设置,进行FLASH中的B1S更新。因为物理上FLASH的写保护引脚同控制模块相连,同时,在第(9)步中,将FLASH设置为不可写状态,而操作系统上的软件要想操作FLASH写,必须通过控制模块,这就保证了 FLASH上的B1S代码免于被恶意篡改。
[0049]要进行B1S安全更新,必须先生成可验证其合法性的安全B1S镜像。B1S镜像的生成过程,及对其完整性和合法性进行验证的过程如图3所示。对该过程描述如下:
[0050]由B1S厂商生成待更新的安全B1S镜像,其生成方法,如图3左侧线框内的流程所示:(I)B1S厂商开发编译生成待升级的B1S镜像的纯代码;(2)利用杂凑算法计算B1S镜像的摘要;(3)利用私钥对B1S镜像的摘要进行签名;(4)将B1S镜像、签名和公钥打包,重构成待更新的安全B1S镜像。
[0051]检测待更新B1S合法性的步骤,如图3右侧线框内的流程所示:(I)FLASH中运行的B1S自更新单元利用自己的公钥对待更新B1S的签名进行验签,得到摘要值A ; (2)FLASH中运行的B1S自更新单元利用自己的摘要算法对待更新B1S的代码进行杂凑运算,得到摘要值B ; (3)比较摘要值A和B ; (4)如果A = B,则表明待更新的B1S是合法的,执行B1S安全更新并清除更新寄存器为O ; (5)如果A古B,则表明待更新的B1S是非法的,报警提示,拒绝更新,并清空更新寄存器为O。
[0052]检测B1S的完整性的方法同检测待更新B1S合法性的方法一致,流程描述如下:
(I)FLASH中运行的B1S的完整性检测单元利用自己的公钥对FLASH中运行的B1S的签名进行验签,得到摘要值A ; (2) FLASH中运行的B1S的完整性检测单元利用自己的摘要算法对FLASH中运行的B1S的代码进行杂凑运算,得到摘要值B ; (3)比较摘要值A和B ; (4)如果A = B,则表明FLASH中运行的B1S MainBlock是合法的,系统继续向下执行;(5)如果A古B,则表明FLASH中运行的B1S MainBlock是非法的,由B1S恢复单元执行B1S恢复。
[0053]安全B1S镜像的组成架构如图4所示。B1S BootBlock中还应该包括用于验签的公钥以及进行验签和计算杂凑时用到的算法;B1S MainBlock中还应该包含B1S自身的签名、用于验签的公钥以及进行验签和计算杂凑时用到的算法。验签过程中用到的密钥对由B1S厂商构建,私钥与公钥分别秘密保存,公钥固化到终端B1S中,避免个人构建密钥对将非法B1S文件写入。
[0054]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种B1S自更新保护系统,包括:CPU及配套芯片组、FLASH芯片和控制模块; 所述CPU及配套芯片组用于执行B1S代码的基本功能、B1S检测与恢复功能及B1S更新保护功能; 所述FLASH芯片用于存储系统运行过程中正常执行的B1S代码; 所述控制模块,它与FLASH芯片的写保护引脚相连,用于控制数据写入FLASH芯片,实现对存储B1S代码的FLASH芯片的写保护。
2.根据权利要求1所述的B1S自更新保护系统,其特征在于所述FLASH芯片中的B1S代码,分成BootBlock和MainBlock两部分,BootBlock中还包括B1S检测单元和B1S恢复单元,前者用于检查B1S的完整性,当B1S的完整性检查失败时,用后者实现对B1S的恢复;MainBlcok中还包含B1S自更新单元和FLASH保护配置单元,分别用于执行正常的B1S更新升级和实现对FLASH芯片写保护的配置,防止用户对FLASH芯片中B1S代码的恶意篡改。
3.根据权利要求1所述的B1S自更新保护系统,其特征在于所述控制模块中包括FLASH写保护控制单元、更新寄存器和WO寄存器。FLASH写保护控制单元根据B1S的配置,实现对FLASH芯片的写保护。更新寄存器和WO寄存器分别用于标示更新的状态和FLASH芯片写保护的状态;其中,更新寄存器是非易失性的;W0寄存器是易失性的,且在一次上电过程中,其状态只允许改变一次,且只允许从O改为I。
4.根据权利要求2所述的B1S自更新保护系统,其特征在于所述BootBlock代码所在的FLASH部分是被永久写保护,不可改写的;MainBlock所在的FLASH部分由控制模块根据WO寄存器的值来完成对其的写保护控制。
5.—种B1S自更新保护方法,其特征在于,B1S自更新步骤至少包括: 步骤S1:生成待更新B1S镜像; 步骤S2:设置更新寄存器的状态为1,重启计算机; 步骤S3 =B1S检测单元检测B1S的完整性,如果B1S没有被篡改,则继续向下执行;如果B1S被篡改,则由B1S恢复单元执行对B1S的恢复; 步骤S4 =B1S自更新单元检测更新寄存器,若其值为1,则检测待更新B1S的合法性,并根据检测结果执行安全更新; 步骤S5 =B1S的FLASH保护配置单元置WO寄存器为1,控制模块FLASH写保护控制单元根据WO寄存器的状态执行FLASH硬件写保护,使得上层软件不能对FLASH进行写操作;步骤S6:执行B1S的其它功能,正常启动OS。
6.根据权利要求5所述的B1S自更新保护方法,其特征在于,待更新B1S镜像的生成步骤包括: 步骤S1.1:开发编译生成待升级的B1S镜像的纯代码; 步骤S1.2:利用杂凑算法计算B1S镜像的摘要; 步骤S1.3:利用私钥对B1S镜像的摘要进行签名; 步骤S1.4:将B1S镜像、签名和公钥打包,重构成待更新的B1S镜像;
7.根据权利要求5所述的B1S自更新保护方法,其特征在于,步骤S3中检测B1S的完整性的步骤包括: 步骤S3.1 =FLASH中运行的B1S的完整性检测单元利用自己的公钥对FLASH中运行的B1S的签名进行验签,得到摘要值A ; 步骤S3.2 =FLASH中运行的B1S的完整性检测单元利用自己的摘要算法对FLASH中运行的B1S的代码进行杂凑运算,得到摘要值B ; 步骤S3.3:比较摘要值A和B ; 步骤S3.4:如果A = B,则表明FLASH中运行的B1S MainBlock是合法的,系统继续向下执行; 步骤S3.5:如果A关B,则表明FLASH中运行的B1S MainBlock是非法的,由B1S恢复单元执行B1S恢复。
8.根据权利要求5所述的B1S自更新保护方法,其特征在于,步骤S4中检测待更新B1S合法性的步骤包括: 步骤S4.1 =FLASH中运行的B1S自更新单元利用自己的公钥对待更新B1S的签名进行验签,得到摘要值A ; 步骤S4.2 =FLASH中运行的B1S自更新单元利用自己的摘要算法对待更新B1S的代码进行杂凑运算,得到摘要值B ; 步骤S4.3:比较摘要值A和B ; 步骤S4.4:如果A = B,则表明待更新的B1S是合法的,执行B1S安全更新并清除更新寄存器为O ; 步骤S4.5:如果A古B,则表明待更新的B1S是非法的,报警提示,拒绝更新,并清空更新寄存器为O。
9.根据权利要求5和6所述的B1S自更新保护方法,其特征在于,B1SBootBlock中还应该包括用于验签的公钥以及进行验签和计算杂凑时用到的算法;B1S MainBlock中还应该包含B1S自身的签名、用于验签的公钥以及进行验签和计算杂凑时用到的算法。
10.根据权利要求6和7所述的B1S自更新保护方法,其特征在于,验签过程中用到的密钥对由B1S厂商构建,私钥与公钥分别秘密保存,公钥固化到终端B1S中,避免个人构建密钥对将非法B1S文件写入。
【专利摘要】本发明公开了一种BIOS自更新保护系统及方法,属于计算机系统技术领域。系统包括CPU及配套芯片组、FLASH芯片和控制模块;存储BIOS的FLASH芯片写保护信号引脚与控制电路引脚相连,由控制电路决定是否可执行写操作。当用户需要对BIOS进行更新操作时,改写更新标志寄存器并使用控制电路将写保护信号引脚置为可写状态,计算机重启后在BIOS层进行升级更新,并在更新的过程中使用签名验证机制,保证更新的BIOS的合法性。利用本发明的BIOS更新写保护方法,通过物理硬件方式实现BIOS访问控制,保障了计算机BIOS的安全性,防止恶意病毒篡改BIOS代码,提高了计算机系统的可控性。
【IPC分类】G06F9-445, G06F21-51
【公开号】CN104572168
【申请号】CN201410457560
【发明人】陈小春, 赵丽娜, 张超, 朱立森
【申请人】中电科技(北京)有限公司
【公开日】2015年4月29日
【申请日】2014年9月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1