一种基于主板BIOS的身份认证方案及实现
2009-11-26王越峰孙天泽
王越峰 孙天泽
摘 要:本文在分析BIOS工作原理的基础上, 提出将网络身份认证模块嵌入到主板的BIOS中的方案, 实现机房管理中在BIOS下进行客户端的认证过程。做到降低管理成本, 提高系统安全性, 有效解决计算机机房因不断增加而产生的管理难的问题。
关键词:BIOS 注册认证 机房管理
中图分类号:TP393.07文献标识码:B文章编号:1673-8454(2009)19-0075-03
随着计算机机房规模的不断扩大,就要求提高实验室管理的效率及计算机的利用率,可靠、有效地管理机房中的计算机和系统资源,为了实现这种要求,就必须使用户在进入公共机房正式使用计算机之前进行注册,即完成网络身份认证。同时,随着计算机的发展,一些扩展卡都集成在主板上,为了充分利用主板上的硬件资源,在此提出网络身份认证模块嵌入主板BIOS中的实现方法。
一、BIOS简介
BIOS是只读存储器基本输入/输出系统,它是被固化到计算机中的一组程序,为计算机提供最低级的、最直接的硬件控制,在计算机系统中起着非常重要的作用。BIOS是硬件与软件程序之间的接口,负责解决硬件的即时需求,并按软件对硬件的操作要求具体执行。BIOS的功能包括自检及初始化、硬件中断处理、程序服务处理。
1.自检及初始化
这个部分的功能是启动计算机,包括三个部分,第一个部分是用于计算机刚接通电源时对硬件部分的检测,也叫做加电自检(POST),功能是检查计算机是否良好。第二个部分是初始化,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等,其中很重要的一部分是BIOS设置,主要是对硬件设置的一些参数,当计算机启动时会读取这些参数,并和实际硬件设置进行比较,如果不符合,会影响系统的启动。最后一个部分是引导程序,功能是引导DOS或其他操作系统。BIOS先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到引导记录则会把计算机的控制权转给引导记录,由引导记录把操作系统装入计算机,在计算机启动成功后,BIOS就完成了任务。
2.程序服务处理和硬件中断处理
程序服务处理程序主要是为应用程序和操作系统服务,这些服务主要与输入输出设备有关。为了完成这些操作,BIOS必须直接与计算机的I/O设备打交道,它通过端口发出命令,向各种外部设备传送数据以及从它们那里接收数据,使程序能够脱离具体的硬件操作,而硬件中断处理则分别处理PC机硬件的需求。
BIOS的服务功能是通过调用中断服务程序来实现的,这些服务分为很多组,每组有一个专门的中断。
二、BIOS启动过程
1.CPU通过执行一段位于内存最高端的15字节的代码完成启动。32位机内存最高地址FFFFFFF:0000 JMP BIOS POST。
2.大部分POST TEST通过,BIOS在中断向量表(00000000H——000003FFH)中填写服务例程。
3.BIOS 扫描C0000——DFFFFH 内存映象空间,检查各种扩展的ROM 块,传递控制,此时,扩展ROM 程序可获得控制权,将自身挂到系统上。BIOS 对扩展的ROM 检查从C0000H 开始,以2KB 为增量,直到DFFFFH。每一个有效的扩展的ROM 块,必须建立一个标识供POST 来识别它。适配器的ROM块控制结束,最后返回到 BIOS。
4.继续其他POST。
5.调用INT 19H 的中断向量,执行引导程序,实现系统自举。
三、嵌入程序模块头信息
嵌入到BIOS中的程序模块必须满足一定的要求,否则BIOS无法读取。其头信息如表1所示。
字节0、1组成一个字,值为AA55H,BIOS检测过程中的模块有效标志。
字节2:模块长度,表示ROM中以512字节为一块的信息块的个数。最大值为FFH,即模块的长度不能超过127.5K。
字节3:ROM 可执行程序开始。POST找到有效ROM模块时,远调用ROM模块字节3中的指令,ROM模块可获得控制权,最后执行RETF指令返回BIOS POST。
另外,嵌入模块文件中所有字节进行相加,得到和K,K MOD 100H = 0,K即为计算机系统认可的有效模块校验和。
四、网络身份认证实现原理及嵌入方法
1.网络身份认证实现原理
网络身份认证就是系统通过网络通讯核查用户的身份证明过程,实质上是查明用户是否具有他所请求资源的存取和使用权。用户身份认证是安全系统的第一道防线,目的是防止非法用户访问系统,其方法是由系统提供一定的方式让用户标识自己的名字或身份。
用户标识和鉴定的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法是用一个用户名或者用户标识号来标明用户身份。系统内部记录着所有合法用户的标识,系统鉴别此用户是否是合法用户,若是,则可以进入下一步的核实;若不是,则不能使用系统。为了进一步核实用户,系统常常要求用户输入口令(Password)。通过用户名和口令来鉴定用户的方法简单易行,但用户名与口令容易被人窃取,因此用户身份认证还可以采用比较复杂的计算过程和函数来完成。
基于注册系统安全性的考虑,避免注册的种种弊端,在此提出网络注册中基于BIOS系统的用户身份认证方法。在BIOS下,注册程序作为扩展BIOS,单独生成一个ROM模块,注册程序主要具备如下功能:对进入实验室的用户进行身份认证,合法用户可以使用任何一台计算机,非法用户拒绝登录。注册程序在操作系统引导之前运行,无高层的IP地址协议,故注册程序需要与登录服务器联系,得到自己的IP地址,服务器的MAC地址,使用TCP/IP协议和登录服务器进行通信。登录服务器首先开机,等候客户机的请求。客户机在启动时,必须从网络上得到自身的IP地址,以及服务器的IP地址,因此,首先以广播的方式和服务器进行联络,服务器收到客户机的请求后,向客户机返回客户机的IP地址,以及服务器的IP地址、MAC地址;然后,客户机接收用户的登录信息,并用TCP/IP协议把登录信息发送给服务器,服务器验证登录信息之后,把控制信息发送给客户机,注册认证程序接收到服务器的控制信息后,如果客户是合法用户,则退出注册认证程序,启动计算机。如果为非法用户,则锁定系统,不启动计算机,直到有合法的用户登录为止。
网络身份认证系统的用户身份识别特点为:
(1)满足计算机启动时用户认证的顺序,先认证,后启动计算机。网络身份认证是在操作系统启动之前进行,这样才能保证系统注册认证的安全性,这种身份认证是在启动BIOS的过程中进行的,没有进行任何操作系统的装载。只有当认证结束后,才装载操作系统。
(2)网络身份认证程序进行的认证是在没有任何操作系统的情况下模拟TCP/IP协议。
为提高网络注册程序的安全性,避免其他人对数据的窃取,还可以对系统本身的通讯数据采取加密措施。数据加密是防止数据在存储和传输过程中失密的有效手段。加密的基本思想是根据一定的算法将原始数据(明文)变换为不可直接识别的格式(密文),从而使得不知道解密算法的人无法获知数据的内容。
加密方法主要有替换和置换两种,单独使用这两种方法的任意一种都是不够安全的。但是将这两种方法结合起来就能提供相当高的安全程度。
2.模块嵌入方法
鉴于Award BIOS在市场上非常流行,用户使用也很普遍,本文重点介绍在Award BIOS中嵌入用户模块的方法。Award BIOS嵌入程序设计的基本流程包括:
(1)首先用汇编编写DOS下的COM程序,必须注意到程序是优先于操作系统执行的,所以程序中不能调用任何DOS中断服务。
(2)调试通过后,在COM文件前加上文件头,最后返回指令为RETF,控制文件大小为512字节的整数倍,重新编译生成COM文件。
(3)生成的COM文件,利用其中的checksum工具生成文件的校验码,在值为0的字节处添加相应的16进制数,直到校验和为xx00H为止。
(4)用BIOS分析工具cbrom将文件作为ISA或PCI模块嵌入到BIOS文件中。
(5)用读写BIOS工具awdFlash将新的BIOS文件烧录到主板BIOS中。
3.分析AwardBIOS DOS工具cbrom
cbrom的功能就是在BIOS文件中添加、删除与提取模块,以便满足用户自己的需求,用法如下:
cbrom BIOS文件名 /参数 模块名|RELEASE|EXTRACT
参数说明:
/d 显示BIOS文件中的所有模块文件;
/isa 在BIOS文件中添加或提取用户需要的ISA模块文件,添加时后面必须提供模块名;
/pci 在BIOS文件中添加或提取用户需要的PCI模块文件,添加时后面必须提供模块名;
RELEASE 释放删除BIOS文件中的模块文件;
EXTRACT 从BIOS文件中提取需要的模块文件并进行解压还原。
4.读写AwardBIOS DOS工具awdflash
awdflash的功能就是对主板BIOS进行刷新,以升级新的BIOS提高计算机的运行性能,用法如下:
awdflash BIOS文件名 /参数1/参数2……
参数说明:
/py 自动完成BIOS的刷新;
/sy 备份原来的BIOS到磁盘文件;
/sb 升级BIOS时强行跳过BootBlock模块;
/cp 刷新结束后清除即插即用数据(ESCD);
/cc 更新完BIOS之后清空CMOS;
/cd 刷新BIOS结束后清除DMI数据;
/r 刷新BIOS结束后自动重新启动计算机;
/pn 不运行升级程序;
/sn 不备份系统老的BIOS文件;
/tiny 只占用很少的内存。
五、结束语
随着计算机的不断发展,计算机主板BIOS的存储容量不断增加,这样就给用户将自己研发的运行模块嵌入到主板BIOS中提供了很大的自由空间。另外,主板BIOS的读写及分析工具也由原来的通用变为专用,这些工具主要掌控在主板制造厂家及计算机制造商的手中,避免用户随意在主板BIOS中嵌入模块,以免影响计算机的运行效率及性能,即使必须嵌入的模块,也要经过严格测试后,在不影响计算机的运行性能的情况下才能嵌入。因此,主板BIOS的读写严格控制的趋势,势必强化了BIOS的严密性,用户模块嵌入到主板BIOS中不仅增加了自身的安全性,而且还减少了硬件开销。
参考文献:
[1]沈美明,温冬婵.80x86汇编语言程序设计[M].北京:清华大学出版社,2001.
[2]蔡友家.MASM6.11汇编语言应用[M].北京:机械工业出版社,1998.
[3]钱晓捷,陈涛.16/32位微机原理、汇编语言及接口技术[M].北京:机械工业出版社,2001.
[4]赵士滨.计算机网络技术[M].北京:清华大学出版社,1999.
[5]刘勇.计算机网络及互连技术[M].北京:人民邮电出版社,2000.
[6](美)Craig Zacker著.王建华等译.现代网络技术[M].北京:机械工业出版社,2002.
(编辑:金冉)