System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种BIOS下变量区防篡改系统及方法技术方案_技高网

一种BIOS下变量区防篡改系统及方法技术方案

技术编号:40827395 阅读:2 留言:0更新日期:2024-04-01 14:49
本发明专利技术涉及计算机安全技术领域,具体涉及一种BIOS下变量区防篡改系统及方法,能够对BIOS内变量区实现防篡改,不影响BIOS运行。本发明专利技术由BIOS中增加实现的DXE驱动来完成相关功能,将BIOS变量区在Flash上以明文的方式存储;将保存BIOS的flash中额外划出加密记录区和加密区,用于存放加密的相关数据,通过修改相应的工程文件,本发明专利技术中实现的DXE驱动模块在必要驱动模块加载后优先加载运行,加密解密在BIOS的前段和后段,对BIOS的运行无影响。

【技术实现步骤摘要】

本专利技术涉及计算机安全,具体涉及一种bios下变量区防篡改系统及方法。


技术介绍

1、随着国家信息化建设的持续深化,信息安全问题已经逐渐成为制约国家信息化发展的主要障碍之一。

2、其中bios(basic input/0utput system)在计算机中起到了最基础的而又最重要的作用,它为计算机提供最底层、最直接的硬件控制,计算机的原始操作都是依照固化在bios里的内容来实现的。它是硬件与软件程序之间的一个接口,负责解决硬件的即时需求,并按照软件对硬件的操作要求具体执行,但是bios被非法入侵者篡改后,攻击者会依靠计算机的其他途径或环境来携带恶意代码进行破坏计算机或者窃取计算机中的关键数据,而传统计算机架构和信息安全产品无法满足需求。

3、当前的bios会将运行过程中用到的部分保存到flash中,而保存的数据结构是公开的数据结构。恶意用户在能够接触到设备的情况下,可以通过专用的设备读取出flash数据,在根据已有的数据结构分析出保存的变量数据,从而篡改数据影响bios的执行,但是现有技术中,如果要实现bios下变量区防篡改,需要使用另外的芯片对bios固件进行整体度量。


技术实现思路

1、有鉴于此,本专利技术提供了一种bios下变量区防篡改系统及方法,能够对bios内变量区实现防篡改,不影响bios运行。

2、为实现上述目的,本专利技术技术方案如下:

3、一种bios下变量区防篡改系统,保存bios的flash中额外划出两个区域:加密记录区和加密区,用于存放加密的相关数据;其中加密记录区由加密区头和加密记录组成,加密区头用于标示加密记录区,保存加密记录区的相关参数和加密区域的相关参数;加密记录用于记录每一次的加密状态,用于校验加密的状态和数据的恢复;加密区用于保存加密后的变量区数据,加密区大小大于等于原变量区的大小;

4、其中,所述防篡改系统相应的工程文件修改为:实现dxe驱动模块在必要驱动模块加载后优先加载运行。

5、其中,所述dxe驱动模块运行起来后注册endofdxe事件处理函数,为后续变量修改后进行加密处理。

6、本专利技术还提供了一种bios下变量区防篡改方法,基于本专利技术所述系统实现,包括如下步骤:

7、步骤1,计算机系统启动,进行必要的初始化;

8、步骤2,读取加密记录,根据加密记录的格式依次检查加密记录数据,判断每一条加密记录是否有效,遍历所有加密记录,若找到有效的加密记录则执行步骤3,否则执行步骤4;

9、步骤3,根据有效的加密记录,进行加密区域的解密;解密完成后,对解密内容进行格式校验;校验成功后,将解密数据写入到原变量区域,写入完成后,更新加密记录的状态;

10、步骤4,进入bios正常运行过程,在完成bios的相关驱动的执行后,触发回调,开始处理变量区的加密,加密完成后引导计算机系统启动。

11、其中,所述步骤4中,加密过程具体如下:

12、首先读取原变量区,根据变量记录格式依次解析,在解析出来的结果中去掉其中重复无效的变量记录;遍历变量区,去掉无效变量后生成加密数据;

13、在加密记录区域增加一条加密记录即写入加密记录项,保存本次加密的相关信息;

14、将生成的加密数据加密后写入加密区域,判断加密区域写入是否完成,若完成则更新加密记录项状态,标记加密成功,将原变量区擦除,开始引导计算机系统启动;若加密区域写入一直未完成则显示器件读写错误。

15、其中,加密方法采用对称加密,其中加密密钥由两部分组成:基础密钥和昆仑bios授权序列号,基础密钥存放于代码段中,启动后加密密钥由基础密钥和bios授权序列号计算得出。

16、其中,所述步骤1中,修改相应的工程文件,实现dxe驱动模块在必要驱动模块加载后优先加载运行。

17、其中,dxe驱动模块运行起来后注册endofdxe事件处理函数,为后续变量修改后进行加密处理。

18、有益效果:

19、1、本专利技术是对bios内变量区的一种防篡改方法,由bios中增加实现的dxe驱动来完成相关功能,将bios变量区在flash上以明文的方式存储;将保存bios的flash中额外划出加密记录区和加密区,用于存放加密的相关数据,通过修改相应的工程文件,本专利技术中实现的dxe驱动模块在必要驱动模块加载后优先加载运行,对bios的运行无影响,加密解密在bios的前段和后段。

20、2、本专利技术的防篡改方法,在启动前使用对称加密对flash上数据解密,bios阶段结束后将变量区加密后写回到flash区域上,能够防止物理手段获取bios后,被篡改信息,影响bios执行。

21、3、本专利技术加密方法采用对称加密,可以采用国密sm4实现。其中加密密钥由两部分组成,基础密钥和昆仑bios授权序列号,基础密钥存放于代码段中,启动后加密密钥由基础密钥和bios授权序列号计算得出,确保不同机器的bios解密密钥不同。

22、4、本专利技术处理变量区的加密中,根据变量记录格式依次解析。在解析出来的结果中去掉其中重复无效的变量记录,在加密记录区域增加一条加密记录,保存本次加密的相关信息,将加密后的数据保存到加密区域,完成后更新加密记录的信息,最后擦除原变量区,开始引导计算机系统启动。

本文档来自技高网...

【技术保护点】

1.一种BIOS下变量区防篡改系统,其特征在于,保存BIOS的flash中额外划出两个区域:加密记录区和加密区,用于存放加密的相关数据;其中加密记录区由加密区头和加密记录组成,加密区头用于标示加密记录区,保存加密记录区的相关参数和加密区域的相关参数;加密记录用于记录每一次的加密状态,用于校验加密的状态和数据的恢复;加密区用于保存加密后的变量区数据,加密区大小大于等于原变量区的大小;

2.如权利要求1所述的系统,其特征在于,所述DXE驱动模块运行起来后注册EndOfDxe事件处理函数,为后续变量修改后进行加密处理。

3.一种BIOS下变量区防篡改方法,其特征在于,基于如权利要求1或2所述系统实现,包括如下步骤:

4.如权利要求3所述的方法,其特征在于,所述步骤4中,加密过程具体如下:

5.如权利要求3或4所述的方法,其特征在于,加密方法采用对称加密,其中加密密钥由两部分组成:基础密钥和昆仑BIOS授权序列号,基础密钥存放于代码段中,启动后加密密钥由基础密钥和BIOS授权序列号计算得出。

6.如权利要求3或4所述的方法,其特征在于,所述步骤1中,修改相应的工程文件,实现DXE驱动模块在必要驱动模块加载后优先加载运行。

7.如权利要求3或4所述的方法,其特征在于,DXE驱动模块运行起来后注册EndOfDxe事件处理函数,为后续变量修改后进行加密处理。

...

【技术特征摘要】

1.一种bios下变量区防篡改系统,其特征在于,保存bios的flash中额外划出两个区域:加密记录区和加密区,用于存放加密的相关数据;其中加密记录区由加密区头和加密记录组成,加密区头用于标示加密记录区,保存加密记录区的相关参数和加密区域的相关参数;加密记录用于记录每一次的加密状态,用于校验加密的状态和数据的恢复;加密区用于保存加密后的变量区数据,加密区大小大于等于原变量区的大小;

2.如权利要求1所述的系统,其特征在于,所述dxe驱动模块运行起来后注册endofdxe事件处理函数,为后续变量修改后进行加密处理。

3.一种bios下变量区防篡改方法,其特征在于,基于如权利要求1或2所述系...

【专利技术属性】
技术研发人员:陈小春张超朱立森孙亮张驰张家定
申请(专利权)人:昆仑太科北京技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1