BIOS校验的可信操作系统启动方法
2016-07-23刘炜
刘 炜
(陕西广电网络传媒(集团)股份有限公司 西安分公司,陕西 西安 710038)
BIOS校验的可信操作系统启动方法
刘炜
(陕西广电网络传媒(集团)股份有限公司 西安分公司,陕西 西安 710038)
摘要广电网络中的操作系统,决定了主机安全防护系统中安全防护功能的有效性和自身程序的安全性。文中设计了一种基于BIOS校验的可信操作系统启动方法,通过对操作系统的身份验证来保证可信的操作系统被正确启动,同时运用文件分配表隐藏技术来防止操作系统被破坏和保护硬盘数据。该法校验准确性较高,且数据安全性较好。
关键词安全防护;BIOS校验;可信操作系统;文件分配表隐藏
基本输入输出系统(Basic Input Output System,BIOS)[1]是固化在计算机主板核心的软件系统,其是连接操作系统和硬件设备的桥梁,通过其可对计算机的硬件设备进行基本的输入输出操作。BIOS启动计算机的过程分为硬件启动和操作系统启动两个阶段。BIOS启动和初始化硬件的过程相对封闭和安全,而启动操作系统的阶段则相对复杂和多样,使用者可选择从硬盘或从其他介质启动操作系统等。操作系统启动的多样性,给计算机的访问控制和数据安全带来很多风险。
目前在广电网络系统中,负责视频信号录播的主机系统安全性尤为重要。已经采取的常规安全防护措施,其软件自身的安全性和有效性仍依赖于操作系统的可信性,因此需要在操作系统启动阶段就进行安全防护,真正做到系统可信。已有学者研究针对BIOS的安全问题提出一些安全设计方法和安全机制[2-3]。但由于这些方法的实现过程针对广电系统中的主机来讲并不适用,存在成本高或技术难度大的问题,本文从BIOS的启动阶段设计了一种校验操作系统身份的方法,同时结合硬盘文件分配表FAT的加密隐藏技术,增强了操作系统的可信性,同时不需要额外增加成本,简单易行。
1可信操作系统的启动方法
BIOS的主要功能是计算机加电启动时对CPU寄存器、定时器和各种控制器进行测试,检查其状态;初始化和测试内存、主板芯片组、显示卡以及相关的寄存器;记录系统的设置状态,将中断服务程序导入内存的常驻区域,向操作系统提供中断服务;最后访问硬盘的MBR区,引导操作系统并将计算机的控制权交给操作系统程序。
文件分配表(File Allocation Table,FAT)是用来记录硬盘中所有文件存储位置的数据表。硬盘经过格式化和分区后,会在所属分区中划分3个区域:引导区、文件分配表区和数据区。文件分配表区共保存了两个相同的FAT。这是因文件所占用的存储空间(簇链)及空闲空间的管理均是通过FAT实现的,保存两个即可保证若第一个损坏,还有第二个可以使用。FAT对于硬盘的使用较为重要,假若文件分配表区的FAT丢失或者隐藏,则硬盘上的文件就会因无法定位而不能使用了。通过FAT来定位文件位置的方法可见文献[4]。可信操作系统启动的方法,如图1所示。
图1 BIOS校验操作系统身份的方法
BIOS在启动后会首先进行各种硬件设备的检测和初始化工作,包括对PCI设备的检测和执行扩展的PCI模块程序。本文设计的BIOS验证程序以PCI扩展模块(相比较其他类型的扩展模块,PCI类型的扩展模块兼容性最好[5])的形式内嵌入某种PCI设备当中。这样当BIOS检测该PCI设备时,就会调用该扩展模块程序。此时,PCI模块程序并不会真正进入BIOS验证程序当中,而是查找系统的中断服务表[6],将中断服务INT19H的处理程序地址替换BIOS验证程序的入口地址。之所以这样是因为检测PCI设备时,可能硬盘设备并没有完成初始化,还不能对存储在硬盘上的操作系统进行身份验证;只有在BIOS初始化完成所有硬件,且即将启动操作系统时,进行身份验证最合适。
通常情况下,BIOS在启动操作系统之前,会抛出INT19H的中断。中断处理程序查找能够启动的磁盘,并将引导程序装入内存,开始操作系统的启动工作。利用BIOS启动操作系统时抛出INT19H中断的特点,将中断处理程序替换为BIOS验证程序,同时保存原中断处理程序地址。由验证程序读取硬盘扇区中特定位置的操作系统标志,判断是否为可信的操作系统。若验证通过,则还原中断处理程序的地址,继续执行操作系统启动的流程;否则,BIOS停止启动操作系统和等待用户操作。
当然,BIOS验证程序在验证通过后,还要硬盘FAT表已被加密的数据进行解密还原,使得引导程序能够正确分析操作系统的文件簇,这样才能正常启动操作系统。加密FAT表的目的,就是要保护硬盘中文件不被破坏,提高操作系统的安全性。
2BIOS校验
BIOS验证程序完成对可信操作系统的身份校验,需要经过程序安装、挂载和执行3个步骤。
2.1程序安装
程序安装是指将验证程序以PCI扩展模块的形式嵌入PCI硬件设备中。首先在验证程序的头部中加入扩展头说明。扩展头的汇编语言代码[7]如下
PCI_EXTEND_HEADER:
db "PCIR";
VENDOR_IDdw10ecH;
DEVICE_IDdw8136H;
DATA_POINTERdw0H;
PCI_CFG_SIZEdw18H;
PCI_CFG_VERSIONdb0H;
CLASS_TYPE_LOWdb0H;
CLASS_TYPE_MIDdb0H;
CLASS_TYPE_HIdb2H;
IMAGE_SIZEdw10H;
VERSION_LEVELdw0H;
CODE_TYPEdb0H;
INDICATORdb80H;
PCI_RESERVEDdw0H;
扩展头告诉系统,此程序为一个PCI设备的扩展模块,然后通过BIOS的刷新工具,将此扩展模块安装到特定PCI设备中。
2.2程序挂载
验证程序安装成功后,并不会被BIOS所调用,而是需要通过挂载INT19H中断处理程序后才能被BIOS执行。所谓挂载就是将原程序的入口地址替换为验证程序自身的入口地址。被过载后验证程序才能被调用和进行操作系统的身份验证。
程序挂载的过程代码如下
(1)MOVAX, CS
(2)MOVDS, AX
(3)XORAX, AX
(4)MOVES, AX
(5)MOVEAX, DWORD PTR ES:[19H*4]
(6)MOVCS:OLDINT19, EAX
(7)CLI
(8)MOVAX, CS
(9)SHLEAX, 16
(10)MOVAX, OFFSET CheckOS
(11)MOVDWORD PTR ES:[19H*4], EAX
(12)STI
汇编代码第(1)行~第(5)行,是从系统断表中获取中断INT19H所存储的处理程序的入口地址。 第(6)行保存老的程序入口地址到“OLDINT19”。 第(7)行是禁用系统中断,以便修改系统中断表。 第(8)行~第(11)行将验证程序“CheckOS”的入口地址,替换到中断表INT19H的位置。第(12)行是恢复系统中断。
2.3程序执行
可信操作系统的标志,存储在硬盘的主引导区(MBR),也就是硬盘的第一个扇区。MBR的结构主要分为3个部分:主引导程序、硬盘分区表(DPT)和结尾标志,如图2所示。从图中可知MBR的大小为512Byte。可信操作系统的标志由Mark1和Mark2两部分组成:Mark1存储在主引导程序的最后两个字节(01BCH,01BDH),Mark2存储在DPT的最后两个字节(01FCH,01FDH)。选择这4个位置存储标志,是因不影响主引导程序和DPT中其他位置的有效数据。
图2 MBR的结构
验证程序被调用后,就会去读取硬盘MBR的内容,然后提取出可信标志进行比对。如果是可信的操作系统,则将控制权交给操作系统的引导程序,由其读取MBR中有效的数据,完成操作系统的启动;否则停止启动操作系统。
3特性分析
3.1校验的准确性
操作系统的可信标志,是由验证程序在安装时随机产生的。虽然每台计算机的可信标志各不相同,但对每个可信操作系统来讲又是固定的。
可信操作系统每启动一次,就由驱动程序将可信标志重置一次。重置方法是在原有的标志数值上减1(BIOS验证该标志后再加1)。该驱动程序是随BIOS验证程序一起安装的,其会在操作系统启动后被自动加载运行,直到操作系统关闭或重起;其主要作用是重置可信标志和加密FAT。
引入驱动程序的目的是为了提高BIOS验证的准确度。因存在一块硬盘上被有意或无意安装多个操作系统的可能性,而这些操作系统中只能有一个是可信,其他操作系统均被认为不可信的;所以必须阻止和破坏其他操作系统的安装。一般情况下,在安装操作系统的过程中需要重启计算机两次。若在这两次当中可信标志没有被重置,BIOS验证程序验证可信标志时将会失败,从而停止操作系统的安装,进而保证了可信操作系统的唯一性。
3.2数据的安全性
BIOS启动操作系统除了从硬盘中启动外,还能够根据配置从光盘、USB介质甚至是从网络启动。一旦BIOS从其他方式启动操作系统,则原有的可信操作系统不会被引导,而硬盘中所存储的数据就会脱离可信操作系统和安全软件的保护,存在被破坏和泄漏的风险。
为解决这一问题,需要对硬盘中的FAT进行保护,保护的方法就是FAT隐藏。所谓FAT隐藏,就是通过加密的方式将硬盘FAT中的原始数据进行变换,使其不能被其他任何非可信的操作系统正确解析,硬盘上的文件也就不能使用了。这样的方法起到数据保护的作用,提高了安全性。
当然,在引导可信操作系统时,BIOS验证程序会在校验通过后,立即对FAT的内容进行解密,不会影响系统的启动过程。在操作系统分析FAT的内容完成后,加载驱动程序的时候,由驱动程序对FAT再次进行加密,从而恢复FAT隐藏。
由于操作系统本身的文件大部分情况下均安装在硬盘的第一个分区,即主分区,则对FAT的加密和解密只针对硬盘第一个分区(主分区)的FAT1(主FAT扇区)和FAT2(备用FAT扇区)。这样做的优点是不用加解密其他分区的FAT数据,加快处理速度。加密
算法可采用常见的对称加密机制,如3DES、RC5[8]等,利用MBR中存储的可信标志作为加解密的密钥。
4结束语
本文提出基于BIOS校验的可信操作系统启动方法,可应用在安全级别要求较高的计算机监控系统中。该方法增强了计算机操作系统身份验证的强度,对硬盘数据保护也较为有效。下一步将研究如何自动还原已被破坏的可信操作系统。
参考文献
[1]孙勇,杨义先.基于BIOS和USB盘实现对PC机的安全访问[J].计算机应用研究,2006,23(5):113-114,116.
[2]段晨辉.UEFI BIOS安全增强机制及完整性度量的研究[D].北京:北京工业大学,2014.
[3]赵丽娜,陈小春,张超,等.BIOS安全更新及保护系统设计[J].微型机与应用,2015,34(8):2-4.
[4]刘可嘉,梁阿雷.实现实时FAT文件系统的一种简单方法[J].计算机工程与应用,2008,44(16):70-72.
[5]王晓箴,刘宝旭,藩林. BIOS恶意代码实现及其检测系统设计[J].计算机工程,2010, 36(21):17-18,21.
[6]郑学坚,周斌.微型计算机原理及应用[M].3版.北京:清华大学出版社,2001.
[7]张晓明,白凤凤,李雅红.汇编语言程序设计[M].北京:国防工业出版社,2009.
[8]Schneider B.应用密码学协议、算法与C源程序[M].2版.吴世忠,祝世雄,张文政,等,译.北京:机械工业出版社,2013.
A Trusted Operating System Boot Method Based on BIOS Authentication
LIU Wei
(Xi’an Branch, Shaanxi Radio and Television Network Media (Group), Xi’an 710038, China)
AbstractIn the broadcast television network, for host security protection systems, the effectiveness of the security protection and the security of the own procedures depend on the operating system. Based on BIOS authentication, this paper designs a trusted operating system boot method for the trust operating system to boot properly throughout the authentication on the operating system. The hidden file allocation tables (FAT) technology is adopted to prevent the operating system the data in the hard disk from being damaged. This method offers good accuracy and data security.
Keywordssecurity protection; BIOS authentication; trusted operating system; FAT hide
收稿日期:2015- 11- 20
作者简介:刘炜(1968-),男,硕士,工程师。研究方向:有线电视光电缆网络建设等。
doi:10.16180/j.cnki.issn1007-7820.2016.07.026
中图分类号TP 393
文献标识码A
文章编号1007-7820(2016)07-088-04