一种基于主板BIOS的身份认证方案及实现 分类: arm-linux-Ubuntu windows驱动程序WDF 2015-05-11 11:02 372人阅读 评论(1) 收藏
一、BIOS简介
BIOS是只读存储器基本输入/输出系统,它是被固化到计算机中的一组程序,为计算机提供最低级的、最直接的硬件控制,在计算机系统中起着非常重要的作用。BIOS是硬件与软件程序之间的接口,负责解决硬件的即时需求,并按软件对硬件的操作要求具体执行。BIOS的功能包括自检及初始化、硬件中断处理、程序服务处理。
1. 自检及初始化
这个部分的功能是启动计算机,包括三个部分,第一个部分是用于计算机刚接通电源时对硬件部分的检测,也叫做加电自检(POST),功能是检查计算机是否良好。第二个部分是初始化,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等,其中很重要的一部分是BIOS设置,主要是对硬件设置的一些参数,当计算机启动时会读取这些参数,并和实际硬件设置进行比较,如果不符合,会影响系统的启动。最后一个部分是引导程序,功能是引导DOS或其他操作系统。BIOS先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到引导记录则会把计算机的控制权转给引导记录,由引导记录把操作系统装入计算机,在计算机启动成功后,BIOS就完成了任务。
2. 程序服务处理和硬件中断处理
程序服务处理程序主要是为应用程序和操作系统服务,这些服务主要与输入输出设备有关。为了完成这些操作,BIOS必须直接与计算机的I/O设备打交道,它
通过端口发出命令,向各种外部设备传送数据以及从它们那里接收数据,使程序能够脱离具体的硬件操作,而硬件中断处理则分别处理PC机硬件的需求。
BIOS的服务功能是通过调用中断服务程序来实现的,这些服务分为很多组,每组有一个专门的中断。
二、BIOS启动过程
1 通过执行一段位于内存最高端的15字节的代码完成启动。32位机内存最高地址FFFFFFF:0000JMPBIOSPOST。
2 2.大部分POSTTEST通过,BIOS在中断向量表(00000000H——
—000003FFH)中填写服务例程。
3.BIOS 扫描C0000——
—DFFFFH内存映象空间,检查各种扩展的ROM块,传递控制,此时,扩展ROM程序可获得控制权,将自身挂到系统上。BIOS对扩展的ROM检查从C0000H开始,以2KB为增量,直到DFFFFH。每一个有效的扩展的ROM块,必须建立一个标识供POST来识别它。适配器的ROM块控制结束,最后返回到BIOS。
4.继续其他POST。
5.调用INT19H的中断向量,执行引导程序,实现系统自举。
三、嵌入程序模块头信息
嵌入到BIOS中的程序模块必须满足一定的要求,否则BIOS无法读取。其头信息如表1所示。
表1
嵌入程序模块头信息
偏移地址 | 长度 | 值 | 说明 |
0 | 1 | 55H | 模块有效标志1 |
1 | 1 | AAH | 模块有效标志2 |
2 | 1 | 模块长度 | 以512字节为单位 |
3 | 3 | 入口执行代码 | 一条远调用跳转指令 |
字节0、1组成一个字,值为AA55H,BIOS检测过程中的模块有效标志。
字节2:模块长度,表示ROM中以512字节为一块的信息块的个数。最大值为FFH,即模块的长度不能超过127.5K。
字节3:ROM可执行程序开始。POST找到有效ROM模块时,远调用ROM模块字节3中的指令,ROM模块可获得控制权,最后执行RETF指令返回BIOSPOST。
另外,嵌入模块文件中所有字节进行相加,得到和K,KMOD100H=0,K即为计算机系统认可的有效模块校验和。
四、网络身份认证实现原理及嵌入方法
1. 网络身份认证实现原理
网络身份认证就是系统通过网络通讯核查用户的身份证明过程,实质上是查明用户是否具有他所请求资源的存取和使用权。用户身份认证是安全系统的第一道防线,目的是防止非法用户访问系统,其方法是由系统提供一定的方式让用户标识自己的名字或身份。
用户标识和鉴定的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法是用一个用户名或者用户标识号来标明用户身份。系统内部记录着所有合法用户的标识,系统鉴别此用户是否是合法用户,若是,则可以进入下一步的核实;若不是,则不能使用系统。为了进一步核实用户,系统常常要求用户输入口令(Password)。通过用户名和口令来鉴定用户的方法简单易行,但用户名与口令容易被人窃取,因此用户身份认证还可以采用比较复杂的计算过程和函数来完成。
基于注册系统安全性的考虑,避免注册的种种弊端,在此提出网络注册中基于BIOS系统的用户身份认证方法。在BIOS下,注册程序作为扩展BIOS,单独生成一个ROM模块,注册程序主要具备如下功能:对进入实验室的用户进行身份认证,合法用户可以使用任何一台计算机,非法用户拒绝登录。注册程序在操作系统引导之前运行,无高层的IP地址协议,故注册程序需要与登录服务器联系,得到自己的IP地址,服务器的MAC地址,使用TCP/IP协议和登录服务器进行通信。登录服务器首先开机,等候客户机的请求。客户机在启动时,必须从网络上得到自身的IP地址,以及服务器的IP地址,因此,首先以广播的方式和服务器进行联络,服务器收到客户机的请求后,向客户机返回客户机的IP地址,以及服务器的IP地址、MAC地址;然后,客户机接收用户的登录信息,并用TCP/IP协议把登录信息发送给服务器,服务器验证登录信息之后,把控制信息发送给客户机,注册认证程序接收到服务器的控制信息后,如果客户是合法用户,则退出注册认证程序,启动计算机。如果为非法用户,则锁定系统,不启动计算机,直到有合法的用户登录为止。
网络身份认证系统的用户身份识别特点为:
1 (1)满足计算机启动时用户认证的顺序,先认证,后启动计算机。网络身份认证是在操作系统启动之前进行,这样才能保证系统注册认证的安全性,这种身份认证是在启动BIOS的过程中进行的,没有进行任何操作系统的装载。只有当认证结束后,才装载操作系统。
2 (2)网络身份认证程序进行的认证是在没有任何操作系统的情况下模拟TCP/IP协议。
为提高网络注册程序的安全性,避免其他人对数据的窃取,还可以对系统本身的通讯数据采取加密措施。数据加密是防止数据在存储和传输过程中失密的有效手段。加密的基本思想是根据一定的算法将原始数据(明文)变换为不可直接识别的格式(密文),从而使得不知道解密算法的人无法获知数据的内容。
加密方法主要有替换和置换两种,单独使用这两种方法的任意一种都是不够安全的。但是将这两种方法结合起来就能提供相当高的安全程度。
2. 模块嵌入方法
鉴于AwardBIOS在市场上非常流行,用户使用也很普遍,本文重点介绍在AwardBIOS中嵌入用户模块的方法。AwardBIOS嵌入程序设计的基本流程包括:
1 (1)首先用汇编编写DOS下的COM程序,必须注意到程序是优先于操作系统执行的,所以程序中不能调用任何DOS中断服务。
2 (2)调试通过后,在COM文件前加上文件头,最后返回指令为RETF,控制文件大小为512字节的整数倍,重新编译生成COM文件。
3 (3)生成的COM文件,利用其中的checksum工具生成文件的校验码,在值为0的字节处添加相应的16进制数,直到校验和为xx00H为止。
4 (4)用BIOS分析工具cbrom将文件作为ISA或PCI模块嵌入到BIOS文件中。
5 (5)用读写BIOS工具awdFlash将新的BIOS文件烧录到主板BIOS中。
3.分析AwardBIOSDOS工具cbrom
cbrom的功能就是在BIOS文件中添加、删除与提取模块,以便满足用户自己的需求,用法如下:
cbromBIOS文件名/参数模块名|RELEASE|EXTRACT
版权声明:本文为博主原创文章,未经博主允许不得转载。