一种基于BIOS扩展的计算机安全增强系统及其方法与流程

文档序号:12786790阅读:318来源:国知局
一种基于BIOS扩展的计算机安全增强系统及其方法与流程

本发明属于计算机安全技术领域,具体涉及一种基于BIOS扩展的计算机安全增强系统及其工作方法。



背景技术:

一般的BIOS层安全增强技术的实现是通过在BIOS源代码中增加一些模块来完成,这种方式存在很大的局限性。首先,现在广泛使用的商用计算机大都是基于Intel X86平台,这些平台的BIOS几乎全是由国外几家BIOS厂商生产的,介于知识产权的限制,我们无法获得BIOS的源代码对系统进行安全性增强;另外,通过源代码的修改来升级已经大量使用的商用计算机的成本较高,可行性低。



技术实现要素:

有鉴于此,本发明提供了一种基于BIOS扩展的计算机安全增强系统及其工作方法,通过由BIOS加载一个独立开发运行的安全增强系统块来实现可信链的传递以及操作系统启动的控制,实现了在不修改BIOS源码的情况下,在BIOS阶段执行并实现信任链的传递和控制操作系统启动的低成本的方法。

为了达到上述目的,本发明的技术方案为:

一种基于BIOS扩展的计算机安全增强系统,该系统与计算机互联,用于在计算机的操作系统启动之前对基本输入输出系统BIOS进行安全增强,其特征在于,该系统包括扩展程序加载模块、BIOS交互模块、身份认证模块、硬件认证模块、软件认证模块、算法支持模块和引导控制模块;

扩展程序加载模块与基本输入输出系统BIOS互联,从BIOS中获取中断向 量INT19H或者修改INT19H的第一条指令,并先于操作系统运行本安全增强系统,建立可信链;扩展程序加载模块保存了原INT19H中断向量以及修改前的INT19H的第一条指令,该安全增强系统执行完成后,利用所保存的INT19H中断向量以及修改前的INT19H的第一条指令还原INT19H,从而正常启动操作系统;

BIOS交互模块与BIOS互联,并在身份认证模块、硬件认证模块、软件认证模块以及引导控制模块的控制下调用BIOS基础服务;

算法支持模块为身份认证模块、硬件认证模块以及软件认证模块提供算法支持;

身份认证模块与扩展程序加载模块互联,身份认证模块在BIOS扩展程序启动时对用户类型进行验证:如果用户不进行任何操作,则该用户类型为普通用户;若用户输入管理员口令并且通过验证,则该用户类型为管理员用户;

硬件认证模块对计算机系统连接的关键硬件设备完整性进行度量,度量过程如下:硬件认证模块记录并存储系统所连接的关键设备的特征值,并在系统开机时进行特征值对比,若有不同,即关键设备被替换或者卸载,则根据登录的用户类型进行相应的动作;

软件认证模块用于对操作系统内核关键文件进行度量,该度量过程如下:软件认证模块读取文件列表中列出的文件,并将文件中数据传送给算法支持模块中进行哈希运算获得标准哈希值,将文件与标准哈希值对应存储,在系统开机时,软件认证模块计算对应文件的哈希值并与标准哈希值进行对比,若有不同,则根据用户类型进行相应动作;

引导控制模块用于根据用户类型控制用户所用的启动设备:控制普通用户通过硬盘启动操作系统,而管理员用户则根据BIOS设置的启动顺序通过关键设备即可启动操作系统。

进一步地,关键设备包括显卡、网卡、硬盘、光驱以及BIOS。

进一步地,安全增强系统作为软件程序烧写在PCI-E板卡的非易失存储空间内,将该PCI-E板卡通过PCI总线接入到操作系统中。

进一步地,安全增强系统作为软件程序烧写到BIOS的FLASH芯片中。

进一步地,算法支持模块包括连接在PCI总线上的算法芯片及其驱动程序。

进一步地,采用连接了上述安全增强系统的计算机,执行如下步骤:

步骤一:启动计算机,在操作系统启动前,启动BIOS,在BIOS的上电自检POST阶段,扩展程序加载模块钩挂启动操作系统的中断向量INT19H,并保存原始的INT19H中断向量和INT19H第一条跳转指令,扩展程序加载模块退出,BIOS继续完成操作系统的初始化;

步骤二:在BIOS执行INT19H时,加载安全增强系统中的各模块;

步骤三:采用身份认证模块进对用户类型进行验证;

步骤四:采用硬件认证模块对操作系统连接的关键硬件设备完整性进行度量,并在计算机屏幕上显示硬件度量结果;

步骤五:采用软件认证模块用于对操作系统内核关键文件进行度量,并在计算机屏幕上显示文件度量结果;

步骤六:执行启动控制模块,根据当前用户类型,选择直接从硬盘启动操作系统或者将启动操作系统的权限交还给BIOS的INT19H。

进一步地,安全增强系统作为软件程序烧写在PCI-E板卡的非易失存储空间内,将该PCI-E板卡接入到计算机系统中;算法支持模块包括连接在PCI总线上的算法芯片及其驱动程序;

则步骤二中,BIOS执行时,操作系统工作在实模式,在BIOS执行INT19H时,扩展程序加载模块钩挂了INT19H之后,安全增强系统获得对系统的控制权,将系统切换至保护模式,建立BIOS交互库函数,实现安全增强系统与BIOS的 交互;同时扫描PCI总线上的算法芯片,并建立算法芯片与驱动程序的映射;

步骤五中,在软件认证模块读取操作系统内核关键文件时,BIOS交互模块调用BIOS提供的读磁盘中断向量INT13H,同时将CPU切换到实地址模式下,执行完INT13H读取到内核关键文件后,则再次将CPU切换到保护模式下,继续执行软件认证模块。

有益效果:

(1)本方案成本低,通用性较好,在绝大多数X86体系结构的机器上都能正常运行,在PCI/PCI-E板卡存在非易失性存储器的情况下可以将最常见的x86计算机升级为可信安全计算机而不需要修改原有的任何硬件/软件。

(2)在PCI/PCI-E板卡存在非易失性存储器的情况下,理论上只要PCI/PCI-E板卡上的存储空间足够大,就可以突破Option ROM 64KB的限制,可以做更复杂的权限控制功能,例如可以根据策略选择度量的项目和度量失败的动作,记录度量日志供操作系统上层安全软件使用,加载更多的文件系统,实现度量失败后的备份/恢复功能等。

附图说明

图1为计算机安全增强系统物理架构图;

图2为BIOS扩展程序架构图;

图3为BIOS扩展程序执行流程图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明的目的还在于提供一种计算机安全增强系统,该系统通过PCI/PCIE 总线接口与计算机处理器/芯片组相连;该系统还提供算法芯片(也可以采用软算法),实现杂凑算法服务,提供非易失性存储器芯片(该存储芯片可以是单独的ROM芯片,也可以是存放BIOS的FLASH芯片的一部分)用于存放BIOS扩展程序。计算机安全增强系统的物理架构如图1所示。

本发明的一种基于BOS扩展的计算机安全增强方法,即BIOS扩展程序,包括扩展程序加载模块、BIOS交互模块、身份认证模块、硬件认证模块、软件认证模块、算法支持模块和引导控制模块。BIOS扩展程序的架构如图2所示。

扩展程序加载模块,即整个BIOS扩展程序的加载器。该模块主要负责钩挂INT19H或者修改INT19H第一条指令,确保将可信链传递给本程序,使本程序可以先于操作系统而运行。同时扩展程序加载模块还保存了原始的INT19H中断向量以及INT19H第一条指令,以便在整个BIOS扩展程序度量成功时还原INT19H,从而正常启动操作系统。

BIOS交互模块,是调用BIOS基础服务的模块。供PCI板卡设备使用的非易失性存储空间有限,也不需要对所有的硬件进行驱动,比如RAID卡。因此使用此BIOS交互模块来调用BIOS已经可以提供的基础服务。例如,BIOS扩展程序中的软件认证模块读取文件,必须调用BIOS提供的读磁盘中断INT13H。由于BIOS提供的中断都是实模式下的中断,软件认证模块运行在保护模式下,无法直接调用,BIOS交互模块在调用INT13H时将CPU切换到实地址模式下,执行完INT13H则再次将CPU切换到保护模式下,继续执行其它BIOS扩展程序。

身份认证模块,是指在BIOS扩展程序启动时对用户身份进行验证的模块。如果用户不进行任何操作,则默认登录普通用户;若用户输入管理员口令并且通过验证,则登录管理员用户。普通用户在引导控制模块执行后只能通过硬盘 启动操作系统,而管理员用户可以在引导控制模块执行后,根据BIOS设置的BBS顺序启动操作系统。身份认证模块是BIOS扩展程序的硬件认证、软件认证、引导控制执行的基础。

硬件认证模块,是指对本机关键硬件设备完整性进行度量的模块。该模块会记录并存储关键设备(显卡,网卡,硬盘,光驱,BIOS等)的特征值,在开机时进行度量。如果设备被替换/卸载,BIOS扩展程序可以及时发现并根据登录的用户类型(管理员/普通用户)进行相应的动作(继续/重启)。

软件认证模块,是指对操作系统内核关键文件进行度量的模块。该模块读取文件列表中列出的文件,并将数据传送给算法芯片进行哈希运算,然后将预期值存储在非易失性存储器中。开机时,该模块计算对应文件的哈希值并与存储在非易失性存储器中的数据进行对比,若文件被篡改或者删除,其哈希值会发生变化,BIOS扩展程序给出报警并根据登录的用户类型(管理员/普通用户)做出相应动作(继续/重启)。

算法支持模块,是针对算法芯片的驱动程序模块。该模块为整个可信模块提供基础算法服务。在没有算法芯片的情况下,此模块使用软件代码实现相关的算法函数。

引导控制模块,是指根据用户身份控制启动设备的模块。对于普通用户,不允许其从本机硬盘以外的其他设备启动,引导控制模块会直接引导操作系统装载器启动操作系统;对于管理员用户,则将控制权交回给BIOS,系统则通过BIOS中设定的启动顺序,从硬盘、网卡、光驱、U盘等设备进行启动。

本发明的基于BIOS扩展的安全增强方法,即BIOS扩展程序的执行流程如图3所示,描述如下:

步骤一:根据BIOS和PCI规范,在BIOS POST阶段,BIOS会加载PCI 设备的扩展程序到内存中执行。此时本发明的BIOS扩展程序取得CPU的控制权,由于BIOS尚未执行完毕,许多资源还未就绪,CPU还处于实模式下,在此时不宜执行复杂的安全功能程序。故扩展程序加载模块钩挂启动操作系统的中断INT19H,从而保证在启动操作系统时控制权再次回到BIOS扩展程序。同时扩展程序加载模块还保存了原始的INT19H中断向量和INT19H第一条跳转指令,从而在度量结束后可以将控制权还给BIOS。完成这个动作后,扩展程序加载模块执行RETF退出,将CPU控制权还给BIOS,使BIOS继续完成系统初始化的操作。

步骤二:在BIOS执行INT19H时,BIOS扩展程序再次获得控制权,此时控制权就保持在安全功能模块程序中。BIOS扩展程序将CPU切换到保护模式,建立BIOS交互库函数,初始化内存,加载非易失性存储器的驱动,加载非易失性存储器文件系统,建立磁盘驱动与BIOS提供的INT13H的映射等。

步骤三:执行PCI Scan,扫描PCI总线上的算法芯片,若找到算法芯片,则建立算法函数与PCI/PCI-E板卡上算法芯片设备驱动的映射,否则建立算法函数与软哈希算法的映射。

步骤四:如果存放BIOS扩展程序的空间不够大,那么需要将部分功能模块(BIOS交互库的一部分代码模块,甚至是部分安全功能模块),例如字库模块,磁盘文件系统模块,控制台模块等放到单独的非易失性存储空间中(例如FLASH芯片,硬盘扇区等),主体的BIOS扩展程序加载非易失性存储器空间内的程序模块,并执行相应模块的符号链接和模块初始化操作。如果存放BIOS扩展程序的空间足够大,则不需要执行此步骤,直接执行步骤五。

步骤五:弹出文字提示用户进行登录,登录成功则为管理员用户,超时无动作或者登录失败则为普通用户。

步骤六:对系统关键硬件进行认证,验证硬件是否被修改/替换/卸载。在屏幕上打印度量的结果,并根据登录的用户类型(管理员/普通用户)做出相应动作(继续/重启)。

步骤七:对操作系统软件进行认证,验证文件是否被修改/删除。在屏幕上打印度量的结果,并根据登录的用户类型(管理员/普通用户)做出相应动作(继续/重启)。

步骤八:执行启动控制模块,根据登录的用户类型,选择直接从磁盘启动操作系统或者将启动操作系统的权限交还给BIOS的INT19H。

综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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